/*
 * HBUREAUTIQUE V55 - PARCOURS COMMANDE / CHECKOUT
 * Scope strict : pages commande uniquement.
 * Aucun template fonctionnel, hook paiement, transporteur, adresse ou panier n'est modifié.
 */

/* =========================================================
   1. CONTENEUR GENERAL - SOUS LA BARRE BLEUE UNIQUEMENT
   ========================================================= */
body#order #center_column,
body#order-opc #center_column,
body#module-bankwire-payment #center_column,
body#module-cheque-payment #center_column,
body#order-confirmation #center_column {
  font-family: Montserrat, Arial, sans-serif !important;
  color: #173b5d !important;
}

body#order #center_column > .page-heading,
body#order-opc #center_column > .page-heading,
body#module-bankwire-payment #center_column > .page-heading,
body#module-cheque-payment #center_column > .page-heading,
body#order-confirmation #center_column > .page-heading {
  margin: 0 0 16px !important;
  padding: 20px 22px !important;
  border: 1px solid #dce8f0 !important;
  border-radius: 16px !important;
  background: #fff !important;
  color: #082f63 !important;
  box-shadow: 0 8px 24px rgba(17,73,111,.05) !important;
  text-transform: none !important;
  font: 700 25px/32px Montserrat, Arial, sans-serif !important;
}

body#order .page-heading .heading-counter,
body#order-opc .page-heading .heading-counter {
  float: right !important;
  margin: 4px 0 0 !important;
  padding: 6px 11px !important;
  border-radius: 999px !important;
  background: #eef6fb !important;
  color: #5d778b !important;
  font: 600 11px/16px Montserrat, Arial, sans-serif !important;
  text-transform: none !important;
}

/* =========================================================
   2. ETAPES COMMANDE
   ========================================================= */
body#order ul.step,
body#order-opc ul.step,
body#module-bankwire-payment ul.step,
body#module-cheque-payment ul.step {
  display: grid !important;
  grid-template-columns: repeat(5, minmax(0,1fr)) !important;
  gap: 8px !important;
  overflow: visible !important;
  margin: 0 0 18px !important;
  padding: 8px !important;
  border: 1px solid #dce8f0 !important;
  border-radius: 16px !important;
  background: #fff !important;
  box-shadow: 0 8px 24px rgba(17,73,111,.045) !important;
}

body#order ul.step li,
body#order-opc ul.step li,
body#module-bankwire-payment ul.step li,
body#module-cheque-payment ul.step li {
  float: none !important;
  width: auto !important;
  min-width: 0 !important;
  border: 0 !important;
  border-radius: 11px !important;
  background: #f7fafc !important;
  overflow: hidden !important;
}

body#order ul.step li a,
body#order ul.step li span,
body#order-opc ul.step li a,
body#order-opc ul.step li span,
body#module-bankwire-payment ul.step li a,
body#module-bankwire-payment ul.step li span,
body#module-cheque-payment ul.step li a,
body#module-cheque-payment ul.step li span {
  display: flex !important;
  align-items: center !important;
  min-height: 48px !important;
  height: auto !important;
  padding: 9px 11px !important;
  border: 0 !important;
  border-radius: 11px !important;
  color: #60798d !important;
  background: transparent !important;
  text-shadow: none !important;
  text-decoration: none !important;
  white-space: normal !important;
  font: 700 11px/15px Montserrat, Arial, sans-serif !important;
}

body#order ul.step li a:after,
body#order ul.step li span:after,
body#order-opc ul.step li a:after,
body#order-opc ul.step li span:after,
body#module-bankwire-payment ul.step li a:after,
body#module-bankwire-payment ul.step li span:after,
body#module-cheque-payment ul.step li a:after,
body#module-cheque-payment ul.step li span:after {
  display: none !important;
}

body#order ul.step li.step_done,
body#order-opc ul.step li.step_done,
body#module-bankwire-payment ul.step li.step_done,
body#module-cheque-payment ul.step li.step_done {
  background: #edf6fc !important;
}

body#order ul.step li.step_done a,
body#order-opc ul.step li.step_done a,
body#module-bankwire-payment ul.step li.step_done a,
body#module-cheque-payment ul.step li.step_done a {
  color: #0a4e9a !important;
  border: 0 !important;
}

body#order ul.step li.step_current,
body#order ul.step li.step_current_end,
body#order-opc ul.step li.step_current,
body#order-opc ul.step li.step_current_end,
body#module-bankwire-payment ul.step li.step_current,
body#module-bankwire-payment ul.step li.step_current_end,
body#module-cheque-payment ul.step li.step_current,
body#module-cheque-payment ul.step li.step_current_end {
  background: linear-gradient(135deg,#0a4e9a 0%,#0875c7 100%) !important;
  box-shadow: 0 6px 16px rgba(10,78,154,.18) !important;
}

body#order ul.step li.step_current span,
body#order ul.step li.step_current_end span,
body#order-opc ul.step li.step_current span,
body#order-opc ul.step li.step_current_end span,
body#module-bankwire-payment ul.step li.step_current span,
body#module-bankwire-payment ul.step li.step_current_end span,
body#module-cheque-payment ul.step li.step_current span,
body#module-cheque-payment ul.step li.step_current_end span {
  color: #fff !important;
}

body#order ul.step li.step_todo,
body#order-opc ul.step li.step_todo,
body#module-bankwire-payment ul.step li.step_todo,
body#module-cheque-payment ul.step li.step_todo {
  background: #f7fafc !important;
}

body#order ul.step li.step_todo span,
body#order-opc ul.step li.step_todo span,
body#module-bankwire-payment ul.step li.step_todo span,
body#module-cheque-payment ul.step li.step_todo span {
  color: #8095a5 !important;
}

/* =========================================================
   3. CARTE PRINCIPALE ET SOUS-TITRES
   ========================================================= */
body#order #order-detail-content,
body#order .addresses,
body#order .order_carrier_content,
body#order .paiement_block,
body#order-opc #order-detail-content,
body#order-opc .addresses,
body#order-opc .order_carrier_content {
  margin-bottom: 16px !important;
  padding: 16px !important;
  border: 1px solid #dce8f0 !important;
  border-radius: 16px !important;
  background: #fff !important;
  box-shadow: 0 8px 24px rgba(17,73,111,.045) !important;
}

body#order .page-subheading,
body#order-opc .page-subheading,
body#module-bankwire-payment .page-subheading,
body#module-cheque-payment .page-subheading,
body#order-confirmation .page-subheading {
  margin: 0 0 13px !important;
  padding: 0 0 9px !important;
  border-bottom: 1px solid #e5edf2 !important;
  color: #0b416f !important;
  text-transform: none !important;
  font: 700 16px/22px Montserrat, Arial, sans-serif !important;
}

/* =========================================================
   4. RECAPITULATIF PANIER
   ========================================================= */
body#order #order-detail-content.table-responsive,
body#order-opc #order-detail-content.table-responsive {
  overflow: hidden !important;
}

body#order #cart_summary,
body#order-opc #cart_summary {
  width: 100% !important;
  margin: 0 !important;
  border: 0 !important;
  border-collapse: separate !important;
  border-spacing: 0 !important;
  background: transparent !important;
}

body#order #cart_summary thead th,
body#order-opc #cart_summary thead th {
  padding: 11px 10px !important;
  border: 0 !important;
  border-bottom: 1px solid #dbe7ef !important;
  background: #f4f8fb !important;
  color: #567086 !important;
  text-transform: none !important;
  font: 700 10px/14px Montserrat, Arial, sans-serif !important;
}

body#order #cart_summary tbody td,
body#order-opc #cart_summary tbody td {
  padding: 12px 10px !important;
  border: 0 !important;
  border-bottom: 1px solid #e9eff4 !important;
  color: #526d82 !important;
  background: #fff !important;
  font: 500 10.5px/15px Montserrat, Arial, sans-serif !important;
}

body#order #cart_summary tbody td.cart_description .product-name a,
body#order-opc #cart_summary tbody td.cart_description .product-name a {
  color: #133d66 !important;
  text-decoration: none !important;
  font: 700 11px/16px Montserrat, Arial, sans-serif !important;
}

body#order #cart_summary tbody td.cart_product img,
body#order-opc #cart_summary tbody td.cart_product img {
  width: auto !important;
  height: auto !important;
  max-width: 92px !important;
  max-height: 72px !important;
  padding: 5px !important;
  border: 1px solid #e1e9ef !important;
  border-radius: 10px !important;
  background: #fff !important;
  object-fit: contain !important;
}

body#order #cart_summary .label-success,
body#order-opc #cart_summary .label-success {
  display: inline-flex !important;
  align-items: center !important;
  min-height: 25px !important;
  padding: 0 9px !important;
  border: 0 !important;
  border-radius: 999px !important;
  background: #e9f8ed !important;
  color: #1c963c !important;
  font: 700 10px/25px Montserrat, Arial, sans-serif !important;
}

body#order #cart_summary .cart_quantity_input,
body#order-opc #cart_summary .cart_quantity_input {
  height: 34px !important;
  width: 46px !important;
  border: 1px solid #d4e1ea !important;
  border-radius: 8px !important;
  background: #fff !important;
  color: #153f69 !important;
  box-shadow: none !important;
}

body#order #cart_summary .cart_quantity_button a,
body#order-opc #cart_summary .cart_quantity_button a {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 29px !important;
  height: 29px !important;
  margin: 2px !important;
  padding: 0 !important;
  border: 1px solid #d7e4ec !important;
  border-radius: 7px !important;
  background: #f8fbfd !important;
  color: #0a4e9a !important;
  box-shadow: none !important;
}

body#order #cart_summary tfoot td,
body#order-opc #cart_summary tfoot td {
  padding: 8px 10px !important;
  border: 0 !important;
  background: #fbfdfe !important;
  color: #60788b !important;
  font: 600 10.5px/15px Montserrat, Arial, sans-serif !important;
}

body#order #cart_summary tfoot td#total_price_container,
body#order-opc #cart_summary tfoot td#total_price_container {
  color: #e91379 !important;
  background: #fbfdfe !important;
  font: 700 22px/28px Montserrat, Arial, sans-serif !important;
}

body#order #cart_summary tfoot td.total_price_container span,
body#order-opc #cart_summary tfoot td.total_price_container span {
  color: #173b5d !important;
  text-transform: none !important;
  font: 700 12px/18px Montserrat, Arial, sans-serif !important;
}

/* Bon de réduction : on conserve la fonctionnalité, seulement plus propre */
body#order .cart_voucher,
body#order-opc .cart_voucher {
  padding: 12px !important;
  border-radius: 12px !important;
  background: #f7fafc !important;
}
body#order .cart_voucher h4,
body#order-opc .cart_voucher h4 {
  margin: 0 0 8px !important;
  padding: 0 !important;
  color: #214f72 !important;
  text-transform: none !important;
  font: 700 12px/17px Montserrat, Arial, sans-serif !important;
}
body#order .cart_voucher #discount_name,
body#order-opc .cart_voucher #discount_name {
  height: 38px !important;
  border: 1px solid #d6e3eb !important;
  border-radius: 9px !important;
  box-shadow: none !important;
}

/* =========================================================
   5. ADRESSES
   ========================================================= */
body#order .addresses .select,
body#order-opc .addresses .select {
  margin-bottom: 12px !important;
}

body#order #id_address_invoice.form-control,
body#order #id_address_delivery.form-control,
body#order-opc #id_address_invoice.form-control,
body#order-opc #id_address_delivery.form-control {
  width: min(100%, 360px) !important;
  height: 40px !important;
  border: 1px solid #d6e3eb !important;
  border-radius: 9px !important;
  background: #fff !important;
  color: #244f70 !important;
  box-shadow: none !important;
}

body#order .address_delivery,
body#order .address_invoice,
body#order-opc .address_delivery,
body#order-opc .address_invoice {
  min-height: 190px !important;
  padding: 16px !important;
  border: 1px solid #dfe9ef !important;
  border-radius: 14px !important;
  background: #fbfdfe !important;
}

body#order .address_title,
body#order-opc .address_title {
  margin-bottom: 11px !important;
  color: #0b416f !important;
  font: 700 14px/19px Montserrat, Arial, sans-serif !important;
}

body#order .address li,
body#order-opc .address li {
  margin-bottom: 4px !important;
  color: #60788a !important;
  font: 500 10.5px/15px Montserrat, Arial, sans-serif !important;
}

body#order #ordermsg textarea,
body#order-opc #ordermsg textarea {
  min-height: 105px !important;
  padding: 11px !important;
  border: 1px solid #d6e3eb !important;
  border-radius: 11px !important;
  background: #fff !important;
  box-shadow: none !important;
  resize: vertical !important;
}

/* =========================================================
   6. LIVRAISON / TRANSPORTEURS
   ========================================================= */
body#order .order_carrier_content,
body#order-opc .order_carrier_content {
  padding: 16px !important;
}

body#order .delivery_option > div,
body#order-opc .delivery_option > div {
  margin: 0 0 10px !important;
}

body#order .delivery_option > div > table.resume.delivery_option_carrier,
body#order-opc .delivery_option > div > table.resume.delivery_option_carrier {
  width: 100% !important;
  min-height: 66px !important;
  margin: 0 !important;
  border: 1px solid #dce8f0 !important;
  border-radius: 13px !important;
  background: #fff !important;
  overflow: hidden !important;
  font-weight: 500 !important;
  box-shadow: none !important;
}

body#order .delivery_option > div > table.resume.delivery_option_carrier:hover,
body#order-opc .delivery_option > div > table.resume.delivery_option_carrier:hover {
  border-color: #9bc9e7 !important;
  background: #fbfdff !important;
}

body#order .delivery_option_carrier.selected,
body#order-opc .delivery_option_carrier.selected {
  border-color: #0a75bf !important;
  box-shadow: 0 0 0 2px rgba(10,117,191,.08) !important;
}

body#order .delivery_option > div > table.resume.delivery_option_carrier td,
body#order-opc .delivery_option > div > table.resume.delivery_option_carrier td {
  padding: 11px 12px !important;
  border: 0 !important;
  color: #526e83 !important;
  font: 500 10.5px/15px Montserrat, Arial, sans-serif !important;
}

body#order .delivery_option_logo img,
body#order-opc .delivery_option_logo img,
body#order .order_carrier_logo,
body#order-opc .order_carrier_logo {
  width: auto !important;
  height: auto !important;
  max-width: 90px !important;
  max-height: 44px !important;
  object-fit: contain !important;
}

body#order .delivery_option_price,
body#order-opc .delivery_option_price {
  color: #0a4e9a !important;
  text-align: right !important;
  font-weight: 700 !important;
}

body#order .delivery_option_radio input,
body#order-opc .delivery_option_radio input {
  accent-color: #0a75bf !important;
  transform: scale(1.12) !important;
}

/* =========================================================
   7. PAIEMENT - TOUS LES MODES RESTENT INTACTS
   ========================================================= */
body#order .payment_module,
body#order-opc .payment_module {
  margin: 0 0 10px !important;
  border: 1px solid #dce8f0 !important;
  border-radius: 13px !important;
  background: #fff !important;
  color: #173b5d !important;
  box-shadow: 0 4px 14px rgba(17,73,111,.035) !important;
  overflow: hidden !important;
  letter-spacing: 0 !important;
}

body#order .payment_module:after,
body#order-opc .payment_module:after {
  right: 18px !important;
  color: #0a75bf !important;
  font-size: 17px !important;
}

body#order .payment_module a,
body#order-opc .payment_module a {
  min-height: 68px !important;
  padding: 20px 52px 20px 88px !important;
  background-color: #fff !important;
  color: #173b5d !important;
  text-decoration: none !important;
  font: 600 11px/17px Montserrat, Arial, sans-serif !important;
}

body#order .payment_module a:hover,
body#order-opc .payment_module a:hover {
  background-color: #f8fbfd !important;
}

body#order .payment_module a span,
body#order-opc .payment_module a span {
  color: #173b5d !important;
  font-weight: 700 !important;
}

/* Les images/icônes de chaque module restent celles du module d'origine */
body#order .payment_module img,
body#order-opc .payment_module img {
  max-height: 34px !important;
  width: auto !important;
  object-fit: contain !important;
}

/* =========================================================
   8. BOUTONS / NAVIGATION
   ========================================================= */
body#order .cart_navigation,
body#order-opc .cart_navigation {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 12px !important;
  clear: both !important;
  margin: 14px 0 6px !important;
}

body#order .cart_navigation .button-medium,
body#order-opc .cart_navigation .button-medium,
body#order .cart_navigation .standard-checkout,
body#order-opc .cart_navigation .standard-checkout {
  float: none !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 43px !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 10px !important;
  background: #e91379 !important;
  color: #fff !important;
  box-shadow: none !important;
  text-decoration: none !important;
  text-shadow: none !important;
}

body#order .cart_navigation .button-medium span,
body#order-opc .cart_navigation .button-medium span,
body#order .cart_navigation .standard-checkout span,
body#order-opc .cart_navigation .standard-checkout span {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 43px !important;
  padding: 0 18px !important;
  border: 0 !important;
  border-radius: 10px !important;
  background: transparent !important;
  color: #fff !important;
  text-shadow: none !important;
  font: 700 11px/16px Montserrat, Arial, sans-serif !important;
}

body#order .cart_navigation .button-medium:hover,
body#order-opc .cart_navigation .button-medium:hover,
body#order .cart_navigation .standard-checkout:hover,
body#order-opc .cart_navigation .standard-checkout:hover {
  background: #cf106a !important;
}

body#order .cart_navigation .button-exclusive,
body#order-opc .cart_navigation .button-exclusive {
  float: none !important;
  margin: 0 !important;
  color: #537189 !important;
  background: transparent !important;
  font: 600 10.5px/16px Montserrat, Arial, sans-serif !important;
}

body#order .address_add .button,
body#order .address_update .button,
body#order-opc .address_add .button,
body#order-opc .address_update .button {
  min-height: 36px !important;
  padding: 0 12px !important;
  border: 1px solid #b9d0df !important;
  border-radius: 9px !important;
  background: #f8fbfd !important;
  color: #0a4e9a !important;
  box-shadow: none !important;
  text-shadow: none !important;
  font: 700 10px/34px Montserrat, Arial, sans-serif !important;
}

/* =========================================================
   9. FORMULAIRES CONNEXION CHECKOUT / ADRESSES
   ========================================================= */
body#order form.std,
body#order-opc form.std {
  color: #526e83 !important;
}

body#order form.std .form-control,
body#order-opc form.std .form-control {
  height: 40px !important;
  border: 1px solid #d6e3eb !important;
  border-radius: 9px !important;
  background: #fff !important;
  color: #244f70 !important;
  box-shadow: none !important;
}

body#order form.std textarea.form-control,
body#order-opc form.std textarea.form-control {
  height: auto !important;
  min-height: 95px !important;
}

body#order form.std label,
body#order-opc form.std label {
  color: #3f6079 !important;
  font: 600 10.5px/16px Montserrat, Arial, sans-serif !important;
}

/* =========================================================
   10. CONFIRMATIONS PAIEMENT / COMMANDE
   ========================================================= */
body#module-bankwire-payment .box,
body#module-cheque-payment .box,
body#order-confirmation .box,
body#module-bankwire-payment .order-confirmation,
body#module-cheque-payment .order-confirmation,
body#order-confirmation .order-confirmation {
  padding: 20px !important;
  border: 1px solid #dce8f0 !important;
  border-radius: 16px !important;
  background: #fff !important;
  color: #526e83 !important;
  box-shadow: 0 8px 24px rgba(17,73,111,.045) !important;
  line-height: 1.7 !important;
}

/* =========================================================
   11. RESPONSIVE
   ========================================================= */
@media (max-width: 990px) {
  body#order ul.step,
  body#order-opc ul.step,
  body#module-bankwire-payment ul.step,
  body#module-cheque-payment ul.step {
    grid-template-columns: 1fr 1fr !important;
  }

  body#order #order-detail-content,
  body#order-opc #order-detail-content {
    overflow: visible !important;
  }

  body#order #order-detail-content #cart_summary tr,
  body#order-opc #order-detail-content #cart_summary tr {
    margin-bottom: 10px !important;
    padding: 10px !important;
    border: 1px solid #e0e9ef !important;
    border-radius: 12px !important;
    background: #fff !important;
  }

  body#order #order-detail-content #cart_summary td,
  body#order-opc #order-detail-content #cart_summary td {
    padding: 6px 10px !important;
    background: transparent !important;
  }
}

@media (max-width: 640px) {
  body#order ul.step,
  body#order-opc ul.step,
  body#module-bankwire-payment ul.step,
  body#module-cheque-payment ul.step {
    grid-template-columns: 1fr !important;
  }

  body#order .page-heading .heading-counter,
  body#order-opc .page-heading .heading-counter {
    float: none !important;
    display: inline-block !important;
    margin-top: 8px !important;
  }

  body#order .cart_navigation,
  body#order-opc .cart_navigation {
    flex-direction: column-reverse !important;
    align-items: stretch !important;
  }

  body#order .cart_navigation .button-medium,
  body#order-opc .cart_navigation .button-medium,
  body#order .cart_navigation .standard-checkout,
  body#order-opc .cart_navigation .standard-checkout {
    width: 100% !important;
  }

  body#order .payment_module a,
  body#order-opc .payment_module a {
    min-height: 58px !important;
    padding: 16px 42px 16px 70px !important;
  }
}
