/* ============================================================
   BIJOUX HÉLÈNE RIU — Cart & Checkout
   Pages: /panier, /commande, confirmation commande
   Vars: --night #0E0B1A, --gold #D4B570, --amethyst #6B4A8C,
         --moon #F4EFE6 (cream), --serif Cormorant Garamond
   ============================================================ */

/* ── VARIABLES LOCALES ──────────────────────────────────── */
:root {
  --cream: var(--moon, #F4EFE6);
  --night-card: #14102A;
  --amethyst-border: rgba(107, 74, 140, 0.3);
  --gold-border: rgba(212, 181, 112, 0.35);
  --input-bg: rgba(30, 24, 50, 0.7);
}

/* ================================================================
   CART — /panier
   ================================================================ */

/* ── Layout 2 colonnes ── */
#cart,
.page-cart #content-wrapper,
#main.cart-overview {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 24px;
}

/* v=1.4 — Bootstrap .row force display:flex, on override via flexbox + spécificité @media */
@media (min-width: 992px) {
  .page-cart .cart-grid.row,
  #cart .cart-grid.row,
  .cart-grid {
    display: flex !important;
    flex-wrap: nowrap !important;
    gap: 24px !important;
    align-items: start;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }

  .page-cart .cart-grid-body.col-lg-8,
  #cart .cart-grid-body.col-lg-8,
  .cart-grid-body {
    flex: 0 0 62% !important;
    max-width: 62% !important;
    min-width: 0;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  .page-cart .cart-grid-right.col-lg-4,
  #cart .cart-grid-right.col-lg-4,
  .cart-grid-right {
    flex: 0 0 36% !important;
    max-width: 36% !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    position: sticky;
    top: 24px;
  }
}

/* ── Titre page ── */
.page-cart h1,
#js-checkout-process h1 {
  font-family: var(--serif) !important;
  font-weight: 300 !important;
  color: var(--cream) !important;
  font-size: 2.2rem !important;
  letter-spacing: 0.04em !important;
  margin-bottom: 32px !important;
}

/* ── Cart item ligne ── */
.cart-item,
.cart-overview .cart-item {
  display: flex;
  align-items: center;
  gap: 16px;
  background: var(--night-card);
  border: 1px solid rgba(255,255,255,0.06);
  border-radius: 8px;
  padding: 16px;
  margin-bottom: 12px;
  transition: border-color 0.2s;
}

.cart-item:hover {
  border-color: var(--amethyst-border);
}

/* Image produit carrée 80×80 */
.cart-item .product-image,
.cart-item .product-line-image img {
  width: 80px !important;
  height: 80px !important;
  object-fit: cover !important;
  border-radius: 4px !important;
  flex-shrink: 0 !important;
}

/* Titre produit */
.cart-item .product-name,
.cart-item .product-line-info .label,
.cart-item .product-line-info a {
  font-family: var(--serif) !important;
  color: var(--cream) !important;
  font-size: 1.05rem !important;
  font-weight: 400 !important;
  text-decoration: none !important;
}

/* Prix produit */
.cart-item .product-price,
.cart-item .price,
.cart-item .unit-price-cart {
  color: var(--gold) !important;
  font-weight: 500 !important;
  font-size: 1rem !important;
}

/* Quantity controls 44×44 */
.cart-item .bootstrap-touchspin,
.cart-item .qty {
  display: flex;
  align-items: center;
  gap: 4px;
}

.cart-item .bootstrap-touchspin .btn,
.cart-item .input-group-btn .btn,
.cart-item .touchspin-down,
.cart-item .touchspin-up {
  width: 44px !important;
  height: 44px !important;
  min-width: 44px !important;
  min-height: 44px !important;
  background: rgba(107,74,140,0.15) !important;
  border: 1px solid var(--amethyst-border) !important;
  color: var(--gold) !important;
  border-radius: 6px !important;
  font-size: 1.2rem !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  transition: background 0.2s !important;
}

.cart-item .bootstrap-touchspin .btn:hover,
.cart-item .touchspin-down:hover,
.cart-item .touchspin-up:hover {
  background: rgba(107,74,140,0.3) !important;
}

.cart-item .form-control.input-group,
.cart-item input[name="product-quantity-spin"] {
  width: 44px !important;
  height: 44px !important;
  text-align: center !important;
  background: var(--night-card) !important;
  border: 1px solid var(--amethyst-border) !important;
  color: var(--cream) !important;
  border-radius: 6px !important;
}

/* Bouton supprimer item */
.cart-item .remove-from-cart,
.cart-item .js-cart-line-product-remove {
  color: rgba(212,181,112,0.4) !important;
  font-size: 1.1rem !important;
  transition: color 0.2s !important;
  margin-left: auto;
}

.cart-item .remove-from-cart:hover,
.cart-item .js-cart-line-product-remove:hover {
  color: var(--gold) !important;
}

/* ── Voucher / Code promo ── */
#cart-coupon-form,
.cart-voucher,
#promo-code {
  display: flex;
  gap: 12px;
  align-items: stretch;
  margin-top: 20px;
  flex-wrap: nowrap;
}

#cart-coupon-form input,
.cart-voucher input,
#promo-code input[type="text"] {
  flex: 1 !important;
  background: var(--input-bg) !important;
  border: 1px solid var(--amethyst-border) !important;
  border-radius: 6px !important;
  color: var(--cream) !important;
  padding: 12px 16px !important;
  font-family: var(--sans) !important;
  font-size: 0.9rem !important;
}

#cart-coupon-form input::placeholder,
.cart-voucher input::placeholder,
#promo-code input::placeholder {
  color: rgba(244,239,230,0.35) !important;
}

#cart-coupon-form .btn-apply,
#cart-coupon-form button[type="submit"],
.cart-voucher button,
#promo-code .apply-voucher {
  background: transparent !important;
  border: 1px solid var(--gold) !important;
  color: var(--gold) !important;
  padding: 12px 20px !important;
  border-radius: 6px !important;
  font-family: var(--sans) !important;
  font-size: 0.85rem !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  white-space: nowrap !important;
  cursor: pointer !important;
  transition: background 0.2s, color 0.2s !important;
}

#cart-coupon-form .btn-apply:hover,
#cart-coupon-form button[type="submit"]:hover,
.cart-voucher button:hover,
#promo-code .apply-voucher:hover {
  background: var(--gold) !important;
  color: var(--night) !important;
}

/* ── Panier vide ── */
.cart-empty-info,
#cart .cart-empty,
.page-cart .cart-overview.js-cart .no-items {
  text-align: center !important;
  padding: 80px 24px !important;
}

.cart-empty-info h2,
.page-cart .cart-overview .no-items h2,
.cart-empty-info p {
  font-family: var(--serif) !important;
  font-style: italic !important;
  color: rgba(244,239,230,0.55) !important;
  font-size: 1.3rem !important;
  font-weight: 300 !important;
  margin-bottom: 24px !important;
}

.cart-empty-info .btn-cta,
.page-cart .cart-overview .no-items a.btn,
#cart .cart-empty a {
  display: inline-block !important;
  border: 1px solid var(--gold) !important;
  color: var(--gold) !important;
  padding: 14px 32px !important;
  border-radius: 6px !important;
  font-family: var(--sans) !important;
  font-size: 0.85rem !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  text-decoration: none !important;
  transition: background 0.2s, color 0.2s !important;
}

.cart-empty-info .btn-cta:hover,
#cart .cart-empty a:hover {
  background: var(--gold) !important;
  color: var(--night) !important;
}

/* ── Récapitulatif sticky ── */
.cart-summary,
#cart-summary-product-list,
.js-cart-summary,
.cart-detailed-totals,
.cart-grid-right .card {
  background: var(--night-card) !important;
  border: 1px solid var(--amethyst-border) !important;
  border-radius: 10px !important;
  padding: 24px !important;
}

.cart-summary .cart-summary-line,
.cart-detailed-totals .cart-summary-line {
  display: flex !important;
  justify-content: space-between !important;
  padding: 8px 0 !important;
  color: rgba(244,239,230,0.7) !important;
  font-size: 0.9rem !important;
  border-bottom: 1px solid rgba(255,255,255,0.05) !important;
}

.cart-summary .cart-summary-line:last-child,
.cart-detailed-totals .cart-summary-line:last-child {
  border-bottom: none !important;
}

/* Ligne total principale */
.cart-summary-totals .cart-summary-line.cart-total,
.cart-detailed-totals .cart-total,
.cart-summary-line.cart-total {
  font-family: var(--serif) !important;
  font-size: 1.6rem !important;
  font-weight: 500 !important;
  color: var(--gold) !important;
  padding-top: 16px !important;
  margin-top: 8px !important;
  border-top: 1px solid var(--gold-border) !important;
  border-bottom: none !important;
}

.cart-summary .cart-summary-line .value,
.cart-detailed-totals .cart-summary-line .value {
  color: var(--cream) !important;
  font-weight: 400 !important;
}

.cart-summary .cart-total .value,
.cart-detailed-totals .cart-total .value {
  color: var(--gold) !important;
}

/* Bouton confirmer panier */
.checkout a.btn,
.checkout .btn-primary,
#cart .checkout .btn {
  width: 100% !important;
  padding: 16px !important;
  background: var(--gold) !important;
  border: none !important;
  color: var(--night) !important;
  font-family: var(--sans) !important;
  font-size: 0.85rem !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  font-weight: 600 !important;
  border-radius: 6px !important;
  cursor: pointer !important;
  margin-top: 16px !important;
  transition: opacity 0.2s !important;
  display: block !important;
  text-align: center !important;
  text-decoration: none !important;
}

.checkout a.btn:hover,
.checkout .btn-primary:hover {
  opacity: 0.85 !important;
  color: var(--night) !important;
}

/* ── Reassurance 4 icônes 2×2 ── */
.cart-reassurance,
.cart-grid-right .reassurance {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 16px !important;
  margin-top: 20px !important;
}

.cart-reassurance-item {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  text-align: center !important;
  gap: 8px !important;
  padding: 12px 8px !important;
  background: rgba(107,74,140,0.07) !important;
  border-radius: 8px !important;
  border: 1px solid rgba(107,74,140,0.12) !important;
}

.cart-reassurance-item svg,
.cart-reassurance-item .icon {
  width: 32px !important;
  height: 32px !important;
  color: var(--gold) !important;
  fill: var(--gold) !important;
}

.cart-reassurance-item span,
.cart-reassurance-item .label {
  font-size: 13px !important;
  color: var(--cream) !important;
  font-family: var(--sans) !important;
  font-weight: 300 !important;
  line-height: 1.3 !important;
}

/* ================================================================
   CHECKOUT — /commande
   ================================================================ */

/* ── Step indicator ── */
#checkout-process,
.checkout-process {
  max-width: 900px;
  margin: 0 auto;
  padding: 0 24px;
}

.step-title,
.checkout-steps .step-edit,
nav.checkout-step {
  background: transparent !important;
}

/* Steps container */
.js-checkout-process {
  counter-reset: checkout-step;
}

/* Numéro étape gold */
.checkout-steps .step-number,
.step-title .step-number,
.-current .step-title .step-number,
.-complete .step-title .step-number {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 32px !important;
  height: 32px !important;
  border-radius: 50% !important;
  background: var(--gold) !important;
  color: var(--night) !important;
  font-family: var(--sans) !important;
  font-weight: 600 !important;
  font-size: 0.85rem !important;
  flex-shrink: 0 !important;
}

/* Etape non active */
.checkout-steps .-unreachable .step-number,
nav.checkout-step:not(.-current):not(.-complete) .step-number {
  background: rgba(107,74,140,0.25) !important;
  color: rgba(244,239,230,0.4) !important;
}

/* Ligne progress amethyst */
.checkout-steps,
.checkout-steps-list {
  position: relative !important;
}

.step-title {
  display: flex !important;
  align-items: center !important;
  gap: 12px !important;
  padding: 20px 0 !important;
  cursor: pointer !important;
}

.step-title h1,
.step-title .h3,
.step-title h3 {
  font-family: var(--serif) !important;
  color: var(--cream) !important;
  font-size: 1.25rem !important;
  font-weight: 400 !important;
  margin: 0 !important;
}

nav.checkout-step:not(.-current) .step-title h1,
nav.checkout-step:not(.-current) .step-title h3 {
  color: rgba(244,239,230,0.45) !important;
}

/* ── Cards étapes ── */
.checkout-step.-current .content,
nav.checkout-step.-current > .content,
.step-content {
  background: var(--night-card) !important;
  border: 1px solid rgba(255,255,255,0.07) !important;
  border-radius: 10px !important;
  padding: 28px !important;
  margin-bottom: 16px !important;
}

/* Séparateur entre steps */
nav.checkout-step {
  border-bottom: 1px solid rgba(107,74,140,0.15) !important;
}

nav.checkout-step:last-child {
  border-bottom: none !important;
}

/* ── Adresses cards sélectionnables ── */
.address-item,
.address-alias,
.js-address-form .address-item {
  background: rgba(20,16,42,0.6) !important;
  border: 2px solid rgba(255,255,255,0.06) !important;
  border-radius: 8px !important;
  padding: 16px !important;
  cursor: pointer !important;
  transition: border-color 0.2s, background 0.2s !important;
  margin-bottom: 12px !important;
}

.address-item:hover {
  border-color: var(--amethyst-border) !important;
  background: rgba(107,74,140,0.08) !important;
}

/* Active = border gold + check */
.address-item.selected,
.address-item input[type="radio"]:checked + .address-alias,
.js-address-item.-selected {
  border-color: var(--gold) !important;
  background: rgba(212,181,112,0.05) !important;
}

.address-item .address-alias h6,
.address-item .address-header .h4 {
  color: var(--cream) !important;
  font-family: var(--serif) !important;
  font-size: 1rem !important;
  font-weight: 500 !important;
}

.address-item address,
.address-item .address {
  color: rgba(244,239,230,0.6) !important;
  font-size: 0.875rem !important;
  line-height: 1.6 !important;
}

/* Checkmark icône gold */
.address-item.selected::after,
.js-address-item.-selected::after {
  content: '✓' !important;
  position: absolute !important;
  top: 12px !important;
  right: 16px !important;
  color: var(--gold) !important;
  font-size: 1.2rem !important;
}

.address-item {
  position: relative !important;
}

/* ── Carriers / Transporteurs ── */
.delivery-options-list,
#js-delivery {
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
}

.delivery-option,
.carrier-block,
.carrier-item {
  display: flex !important;
  align-items: center !important;
  gap: 16px !important;
  padding: 14px 16px !important;
  border-radius: 8px !important;
  border: 1px solid rgba(255,255,255,0.06) !important;
  margin-bottom: 10px !important;
  cursor: pointer !important;
  transition: background 0.2s, border-color 0.2s !important;
  background: transparent !important;
}

.delivery-option:hover,
.carrier-item:hover {
  background: rgba(107,74,140,0.1) !important;
  border-color: var(--amethyst-border) !important;
}

.delivery-option input[type="radio"]:checked ~ .carrier-block,
.delivery-option.selected,
.carrier-item.selected {
  background: rgba(107,74,140,0.12) !important;
  border-color: var(--gold-border) !important;
}

.delivery-option label,
.carrier-name {
  color: var(--cream) !important;
  font-family: var(--sans) !important;
  font-weight: 400 !important;
  flex: 1 !important;
  cursor: pointer !important;
}

.delivery-option .carrier-delay,
.carrier-delay {
  color: rgba(244,239,230,0.5) !important;
  font-size: 0.82rem !important;
}

.delivery-option .carrier-price,
.carrier-price {
  color: var(--gold) !important;
  font-weight: 500 !important;
  white-space: nowrap !important;
}

/* ── Paiement radios ── */
#payment-option-list,
.payment-options {
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
}

.payment-option,
#payment-option-list li {
  padding: 14px 16px !important;
  border-radius: 8px !important;
  border: 1px solid rgba(255,255,255,0.06) !important;
  margin-bottom: 10px !important;
  cursor: pointer !important;
  transition: border-color 0.2s, background 0.2s !important;
}

.payment-option:hover,
#payment-option-list li:hover {
  background: rgba(107,74,140,0.08) !important;
  border-color: var(--amethyst-border) !important;
}

.payment-option label,
#payment-option-list .payment-name {
  color: var(--cream) !important;
  cursor: pointer !important;
  display: flex !important;
  align-items: center !important;
  gap: 12px !important;
}

/* ── Conditions checkbox ── */
.condition-label,
#conditions-to-approve .condition-label {
  display: flex !important;
  align-items: flex-start !important;
  gap: 12px !important;
  color: var(--cream) !important;
  font-size: 0.875rem !important;
  line-height: 1.6 !important;
  margin-bottom: 16px !important;
}

.condition-label input[type="checkbox"] {
  width: 18px !important;
  height: 18px !important;
  accent-color: var(--gold) !important;
  flex-shrink: 0 !important;
  margin-top: 2px !important;
}

.condition-label a {
  color: var(--gold) !important;
  text-decoration: underline !important;
}

/* ── Submit final ── */
#payment-confirmation .btn,
#payment-confirmation button,
.payment-confirmation .btn-primary,
#payment-confirmation .btn-primary {
  width: 100% !important;
  padding: 0 24px !important;
  height: 56px !important;
  background: var(--gold) !important;
  border: none !important;
  border-radius: 6px !important;
  color: var(--night) !important;
  font-family: var(--sans) !important;
  font-size: 0.9rem !important;
  font-weight: 600 !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  cursor: pointer !important;
  transition: opacity 0.2s !important;
  margin-top: 20px !important;
}

#payment-confirmation .btn:hover,
#payment-confirmation button:hover {
  opacity: 0.85 !important;
}

/* ── Order summary sidebar checkout ── */
#js-checkout-summary,
.checkout-order-summary,
.cart-grid-right .checkout-summary {
  background: var(--night-card) !important;
  border: 1px solid var(--amethyst-border) !important;
  border-radius: 10px !important;
  padding: 24px !important;
  position: sticky !important;
  top: 24px !important;
}

.checkout-summary-products {
  max-height: 280px !important;
  overflow-y: auto !important;
}

.checkout-summary-products::-webkit-scrollbar { width: 4px; }
.checkout-summary-products::-webkit-scrollbar-track { background: transparent; }
.checkout-summary-products::-webkit-scrollbar-thumb { background: var(--amethyst-border); border-radius: 2px; }

/* ================================================================
   ORDER CONFIRMATION
   ================================================================ */

#order-confirmation,
.page-order-confirmation #content-wrapper {
  max-width: 800px;
  margin: 0 auto;
  padding: 40px 24px;
  text-align: center;
}

/* Message succès */
.order-confirmation-summary h3,
#order-confirmation h3,
.confirmation-message {
  font-family: var(--serif) !important;
  color: var(--cream) !important;
  font-size: 2rem !important;
  font-weight: 300 !important;
  letter-spacing: 0.04em !important;
  margin-bottom: 16px !important;
}

.order-confirmation-summary .subtitle,
#order-confirmation p.lead,
.confirmation-subtitle {
  color: rgba(244,239,230,0.6) !important;
  font-size: 1rem !important;
  margin-bottom: 40px !important;
}

/* Icône succès */
.order-confirmation-summary .checkmark-icon,
#order-confirmation .icon-check-circle {
  color: #7BC47F !important;
  font-size: 3.5rem !important;
  margin-bottom: 16px !important;
  display: block !important;
}

/* Table récapitulatif commande */
.order-details-table,
#order-items table,
#order-confirmation table {
  width: 100% !important;
  border-collapse: separate !important;
  border-spacing: 0 !important;
  background: var(--night-card) !important;
  border: 1px solid var(--amethyst-border) !important;
  border-radius: 10px !important;
  overflow: hidden !important;
  text-align: left !important;
  margin: 0 0 24px !important;
}

#order-confirmation table thead th,
.order-details-table thead th {
  background: rgba(107,74,140,0.12) !important;
  color: var(--gold) !important;
  font-family: var(--sans) !important;
  font-size: 0.8rem !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  padding: 14px 20px !important;
  border-bottom: 1px solid var(--amethyst-border) !important;
}

#order-confirmation table tbody td,
.order-details-table tbody td {
  color: var(--cream) !important;
  padding: 14px 20px !important;
  border-bottom: 1px solid rgba(255,255,255,0.05) !important;
  font-size: 0.9rem !important;
}

#order-confirmation table tbody tr:last-child td,
.order-details-table tbody tr:last-child td {
  border-bottom: none !important;
}

/* Rappel email */
.order-confirmation-email,
#order-confirmation .email-reminder,
.confirmation-email-info {
  background: rgba(107,74,140,0.08) !important;
  border: 1px solid var(--amethyst-border) !important;
  border-radius: 8px !important;
  padding: 16px 24px !important;
  color: rgba(244,239,230,0.7) !important;
  font-size: 0.875rem !important;
  margin: 24px 0 !important;
  text-align: center !important;
}

.order-confirmation-email strong,
.confirmation-email-info strong {
  color: var(--gold) !important;
}

/* Contact info */
.order-confirmation-contact,
#order-confirmation .contact-info {
  color: rgba(244,239,230,0.55) !important;
  font-size: 0.85rem !important;
  margin-top: 16px !important;
}

.order-confirmation-contact a,
#order-confirmation .contact-info a {
  color: var(--gold) !important;
  text-decoration: none !important;
}

/* ================================================================
   ALERTS / ERREURS
   ================================================================ */

.alert-danger,
.alert.alert-danger {
  background: rgba(224, 122, 95, 0.15) !important;
  border: none !important;
  border-left: 3px solid #E07A5F !important;
  color: #FFD8CC !important;
  border-radius: 0 6px 6px 0 !important;
  padding: 14px 18px !important;
  font-size: 0.875rem !important;
  margin-bottom: 16px !important;
}

.alert-warning,
.alert.alert-warning {
  background: rgba(212, 181, 112, 0.12) !important;
  border-left: 3px solid var(--gold) !important;
  color: var(--gold) !important;
  border-radius: 0 6px 6px 0 !important;
  padding: 14px 18px !important;
  font-size: 0.875rem !important;
  margin-bottom: 16px !important;
}

.alert-success,
.alert.alert-success {
  background: rgba(123, 196, 127, 0.12) !important;
  border-left: 3px solid #7BC47F !important;
  color: #B8E8BB !important;
  border-radius: 0 6px 6px 0 !important;
  padding: 14px 18px !important;
  font-size: 0.875rem !important;
  margin-bottom: 16px !important;
}

/* ================================================================
   MOBILE
   ================================================================ */

@media (max-width: 991px) {
  /* Stack 1 colonne */
  .cart-grid {
    grid-template-columns: 1fr !important;
    gap: 24px !important;
  }

  .cart-grid-right {
    position: static !important;
  }

  /* Steps checkout en accordion */
  .checkout-step.-current .content,
  nav.checkout-step.-current > .content,
  .step-content {
    padding: 16px !important;
  }

  .step-title h1,
  .step-title h3 {
    font-size: 1.05rem !important;
  }

  .cart-summary,
  #cart-summary-product-list,
  .cart-detailed-totals,
  .cart-grid-right .card {
    padding: 16px !important;
  }

  #order-confirmation,
  .page-order-confirmation #content-wrapper {
    padding: 24px 16px !important;
  }

  .confirmation-message,
  .order-confirmation-summary h3,
  #order-confirmation h3 {
    font-size: 1.5rem !important;
  }
}

@media (max-width: 767px) {
  /* CTA sticky bottom mobile */
  .page-cart .checkout,
  #cart .checkout {
    position: fixed !important;
    bottom: 0 !important;
    left: 0 !important;
    right: 0 !important;
    z-index: 900 !important;
    padding: 12px 16px !important;
    background: rgba(14,11,26,0.97) !important;
    backdrop-filter: blur(12px) !important;
    border-top: 1px solid var(--amethyst-border) !important;
  }

  .page-cart .checkout .btn,
  #cart .checkout a.btn {
    margin-top: 0 !important;
  }

  /* Espace pour le CTA fixe */
  #cart .cart-grid {
    padding-bottom: 90px !important;
  }

  /* Tableaux order confirmation scrollables */
  #order-confirmation .table-responsive,
  .order-details-table {
    overflow-x: auto !important;
  }

  .cart-reassurance {
    gap: 10px !important;
  }

  .cart-reassurance-item span,
  .cart-reassurance-item .label {
    font-size: 11px !important;
  }
}

/* === CHECKOUT 80 DÉFAUTS === */

/* CTA COMMANDER 56px */
.cart-summary .checkout .btn, .cart-detailed-totals .btn, .order-button,
.bj-btn-place-order, button[name="place-order"] {
  min-height: 56px !important;
  font-size: 15px !important;
  font-weight: 600 !important;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  background: var(--gold, #D4B570) !important;
  color: var(--night, #0E0B1A) !important;
  border-radius: 8px !important;
}

/* CTA CONTINUER (steps adresse/livraison/paiement) */
#customer-form button[type=submit], #delivery-address footer button,
#shipping footer button, .bj-step-content button[type=submit],
.bj-btn-continue, button[name="continue"] {
  background: var(--gold, #D4B570) !important;
  color: var(--night, #0E0B1A) !important;
  min-height: 56px !important;
  width: 100% !important;
  max-width: 320px !important;
  font-size: 15px !important;
  font-weight: 600 !important;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  border-radius: 8px !important;
  border: 0 !important;
}
@media (min-width: 992px) {
  #delivery-address footer, #shipping footer, .bj-step-content footer {
    display: flex; justify-content: flex-end;
  }
  #delivery-address footer button { width: auto !important; min-width: 240px; }
}

/* Radios civilité custom */
input[type=radio] {
  appearance: none !important;
  width: 20px !important;
  height: 20px !important;
  border: 2px solid var(--amethyst, #6B4A8C) !important;
  border-radius: 50% !important;
  background: rgba(255,255,255,0.04) !important;
  cursor: pointer;
  vertical-align: middle;
  margin: 0 8px 0 0;
  position: relative;
}
input[type=radio]:checked {
  border-color: var(--gold, #D4B570) !important;
  background: radial-gradient(circle, var(--gold) 0 7px, transparent 8px) !important;
}

/* Checkboxes custom */
input[type=checkbox] {
  appearance: none !important;
  width: 20px !important;
  height: 20px !important;
  border: 2px solid var(--amethyst, #6B4A8C) !important;
  border-radius: 4px !important;
  background: rgba(255,255,255,0.04) !important;
  cursor: pointer;
  vertical-align: middle;
  margin: 0 8px 0 0;
  position: relative;
}
input[type=checkbox]:checked {
  border-color: var(--gold) !important;
  background: var(--gold) !important;
}
input[type=checkbox]:checked::after {
  content: ""; position: absolute;
  left: 5px; top: 1px; width: 6px; height: 11px;
  border: solid var(--night); border-width: 0 2px 2px 0;
  transform: rotate(45deg);
}

/* Summary sticky desktop */
@media (min-width: 992px) {
  .bj-cart-summary-sticky, .cart-summary, #js-checkout-summary {
    position: sticky !important;
    top: 80px !important;
    max-height: calc(100vh - 100px);
    overflow-y: auto;
  }
}

/* Image produit panier — fond ink */
.cart-item .product-image, td.product-thumbnail, .cart-image,
.cart-item img, #blockcart-modal .product-image {
  background: var(--ink, #14102A) !important;
  border-radius: 6px;
  padding: 4px;
}


/* === PANIER LAYOUT FIX FINAL === */
/* Bootstrap col-lg-8/col-lg-4 handles 2 columns >= 992px natively.
   We reinforce with flex to avoid PS/module overrides. */
@media (min-width: 992px) {
  .cart-grid.row {
    display: flex !important;
    flex-wrap: nowrap !important;
    align-items: flex-start !important;
    gap: 0 !important;
  }
  .cart-grid-body.col-lg-8 {
    flex: 0 0 62% !important;
    max-width: 62% !important;
    min-width: 0 !important;
    padding-right: 24px !important;
  }
  .cart-grid-right.col-lg-4 {
    flex: 0 0 38% !important;
    max-width: 38% !important;
    position: sticky !important;
    top: 100px !important;
    align-self: flex-start !important;
  }
}
@media (max-width: 991px) {
  .cart-grid.row {
    flex-direction: column !important;
  }
  .cart-grid-body, .cart-grid-right {
    flex: 0 0 100% !important;
    max-width: 100% !important;
  }
}
.cart-grid-body, .cart-detailed-body, .cart-items {
  min-width: 0 !important;
  overflow: visible !important;
}

/* Voucher — fermé par défaut, ouvert via JS toggle */
/* Bootstrap 3 adds "in" on page-load = ouvert. On force fermé et seul JS ouvre. */
#promo-code.collapse {
  display: none !important;
}
#promo-code.collapse.show {
  display: block !important;
}
/* NE PAS afficher .collapse.in automatiquement (BS3) : PS l'ajoute au chargement,
   on le retire via hook JS; voir override ci-dessous si JS désactivé */
/* #promo-code.collapse.in { display: block !important; } */

.bj-promo-toggle {
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: var(--gold) !important;
  text-decoration: none !important;
  font-size: 0.9rem;
  padding: 8px 0;
}
.bj-promo-toggle:hover {
  opacity: 0.8;
}

/* ── Voucher — conteneur en colonne ── */
/* Force le block-promo à être block pour contenir le form + discounts en colonne */
body .block-promo.bj-voucher-block {
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  overflow: hidden !important;
}

body .block-promo.bj-voucher-block .cart-voucher,
body .cart-voucher.js-cart-voucher {
  display: block !important;
  width: 100% !important;
  overflow: hidden !important;
}

/* Formulaire code promo */
body .promo-code,
body .bj-promo-form {
  display: block !important;
  width: 100% !important;
}

body .bj-promo-input-group {
  display: flex !important;
  flex-wrap: nowrap !important;
  gap: 8px !important;
  width: 100% !important;
}

body .bj-promo-input-group input[type="text"],
body .bj-promo-input-group .promo-input {
  flex: 1 1 0 !important;
  min-width: 0 !important;
  width: auto !important;  /* override theme.css .block-promo .promo-input{width:50%} */
}

body .bj-promo-input-group button {
  flex-shrink: 0 !important;
  white-space: nowrap !important;
}

/* Discounts block — sous le form, pas à côté */
body p.block-promo.promo-highlighted,
body ul.js-discount.promo-discounts {
  display: block !important;
  width: 100% !important;
  float: none !important;
  clear: both !important;
  position: static !important;
}

/* Texte "Profitez de nos offres exclusives" et liste remises — contenus dans la sidebar */
p.block-promo.promo-highlighted {
  font-size: 0.8rem !important;
  color: rgba(244,239,230,0.55) !important;
  white-space: normal !important;
  word-break: break-word !important;
  margin: 8px 0 4px !important;
  padding: 0 !important;
  max-width: 100% !important;
  overflow-wrap: break-word !important;
}

ul.js-discount.promo-discounts {
  list-style: none !important;
  padding: 0 !important;
  margin: 0 0 8px !important;
}

ul.js-discount.promo-discounts .cart-summary-line {
  flex-wrap: wrap !important;
  font-size: 0.8rem !important;
  color: rgba(212,181,112,0.85) !important;
  border-bottom: none !important;
  padding: 2px 0 !important;
}

ul.js-discount.promo-discounts .cart-summary-line .label {
  white-space: normal !important;
  word-break: break-word !important;
  min-width: 0 !important;
}

/* ── Total ligne — flex aligné ── */
.cart-summary-line,
.cart-detailed-totals .cart-summary-line {
  display: flex !important;
  justify-content: space-between !important;
  align-items: baseline !important;
  gap: 8px !important;
}

/* Total ligne ne déborde pas */
.cart-summary-line .value,
.cart-summary-line .label {
  white-space: nowrap !important;
}

/* Total TTC — taille réduite pour tenir dans la sidebar */
.cart-summary-totals .cart-summary-line.cart-total,
.cart-detailed-totals .cart-total,
.cart-summary-line.cart-total {
  font-size: 1.25rem !important;
}

/* ── Qty stepper mobile — targets 44px ── */
/* PS classic utilise .js-touchspin + boutons ^/v dans un input-group */
.cart-item .js-touchspin-up,
.cart-item .js-touchspin-down,
.cart-item .btn.touchspin-up,
.cart-item .btn.touchspin-down,
.cart-item .input-group-btn .btn {
  width: 44px !important;
  min-width: 44px !important;
  height: 44px !important;
  min-height: 44px !important;
  padding: 0 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  background: rgba(107,74,140,0.15) !important;
  border: 1px solid var(--amethyst-border) !important;
  color: var(--gold) !important;
  border-radius: 6px !important;
  font-size: 1.1rem !important;
  cursor: pointer !important;
}

/* Input qty centré entre les boutons */
.cart-item input[name="product-quantity-spin"],
.cart-item .js-cart-line-product-quantity {
  width: 44px !important;
  height: 44px !important;
  text-align: center !important;
  padding: 0 !important;
  background: var(--night-card) !important;
  border: 1px solid var(--amethyst-border) !important;
  color: var(--cream) !important;
  border-radius: 6px !important;
  font-size: 1rem !important;
}

/* ── Checkout sidebar — pas de scroll horizontal ── */
#js-checkout-summary,
.checkout-order-summary,
.cart-grid-right .card,
.cart-grid-right .card-block {
  overflow: hidden !important;
  max-width: 100% !important;
}

/* Sidebar panier — tout le contenu reste dans la carte */
.cart-grid-right {
  overflow: hidden !important;
}

/* ── Step progress indicator ── */
.checkout-steps .step-number {
  transition: background 0.2s, color 0.2s !important;
}

/* Etape complète = checkmark */
nav.checkout-step.-complete .step-number::after {
  content: '✓' !important;
  font-size: 0.75rem !important;
}

/* Ligne de progression entre steps */
nav.checkout-step.-complete {
  border-bottom: 1px solid rgba(212,181,112,0.2) !important;
}

/* ── Payment icons ── */
.payment-logo,
.payment-option img,
#payment-option-list img {
  height: 28px !important;
  width: auto !important;
  object-fit: contain !important;
  vertical-align: middle !important;
  opacity: 0.85 !important;
  border-radius: 4px !important;
}

/* ── Tunnel mobile ── */
@media (max-width: 767px) {
  /* Checkout sidebar descend sous le form */
  .checkout .cart-grid,
  .page-order .cart-grid {
    flex-direction: column !important;
  }

  /* CTA confirm commande sticky bottom */
  #payment-confirmation {
    position: sticky !important;
    bottom: 0 !important;
    z-index: 100 !important;
    background: rgba(14,11,26,0.97) !important;
    padding: 12px 16px !important;
    backdrop-filter: blur(12px) !important;
    border-top: 1px solid var(--amethyst-border) !important;
  }
}

/* === ITER 1 FIX — 2026-04-25 === */

/* BUG: .cart-grid (sans .row) reste 2-col sur mobile.
   On force 1-col sous 991px pour tous les variants du sélecteur. */
@media (max-width: 991px) {
  .cart-grid:not(.row) {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 20px !important;
  }
  .cart-grid:not(.row) .cart-grid-right {
    position: static !important;
  }
}

/* BUG: cart-grid-right coupé desktop — overflow safe */
@media (min-width: 992px) {
  .cart-grid:not(.row) {
    grid-template-columns: 64fr 36fr !important;
    width: 100% !important;
    max-width: 100% !important;
    overflow: visible !important;
  }
  #cart,
  .page-cart #content-wrapper {
    overflow: visible !important;
  }
}

/* ================================================================
   ITER 17 — POLISH CHECKOUT 2ND PASS — 2026-04-25
   ================================================================ */

/* ── Steps progress bar : ligne entre étapes ── */
.checkout-steps,
#js-checkout-process {
  position: relative !important;
}

/* Ligne horizontale reliant les bulles numéro */
.checkout-steps::before,
#js-checkout-process::before {
  content: '' !important;
  position: absolute !important;
  top: 36px !important;
  left: 16px !important;
  right: 16px !important;
  height: 2px !important;
  background: linear-gradient(
    to right,
    rgba(212,181,112,0.5) 0%,
    rgba(107,74,140,0.25) 100%
  ) !important;
  z-index: 0 !important;
  pointer-events: none !important;
}

/* Bulle step numéro au-dessus de la ligne */
.checkout-steps .step-number,
.step-title .step-number {
  position: relative !important;
  z-index: 1 !important;
}

/* Etape current : bulle gold pleine + shadow */
nav.checkout-step.-current .step-number {
  background: var(--gold, #D4B570) !important;
  color: var(--night, #0E0B1A) !important;
  box-shadow: 0 0 0 4px rgba(212,181,112,0.2) !important;
}

/* Etape complete : checkmark + gold doux */
nav.checkout-step.-complete .step-number {
  background: rgba(212,181,112,0.15) !important;
  color: var(--gold, #D4B570) !important;
  border: 2px solid var(--gold, #D4B570) !important;
}

nav.checkout-step.-complete .step-number::before {
  content: '✓' !important;
  font-size: 0.8rem !important;
  font-weight: 700 !important;
}

/* Masquer le texte numérique sur complete */
nav.checkout-step.-complete .step-number > span:not(:empty) {
  display: none !important;
}

/* Titre étape current : cream plein */
nav.checkout-step.-current .step-title h1,
nav.checkout-step.-current .step-title h3,
nav.checkout-step.-current .step-title .h3 {
  color: var(--cream, #F4EFE6) !important;
  font-weight: 500 !important;
}

/* ── Cart item : qty stepper élégant ── */
/* Groupe stepper — display flex centré */
.cart-item .input-group.bootstrap-touchspin,
.cart-item .product-quantity .input-group {
  display: inline-flex !important;
  align-items: center !important;
  gap: 0 !important;
  border: 1px solid rgba(107,74,140,0.3) !important;
  border-radius: 8px !important;
  overflow: hidden !important;
  background: rgba(20,16,42,0.7) !important;
}

/* Boutons - et + du stepper */
.cart-item .js-touchspin-down,
.cart-item .js-touchspin-up,
.cart-item .btn.touchspin-down,
.cart-item .btn.touchspin-up,
.cart-item .input-group-btn .btn {
  width: 38px !important;
  height: 38px !important;
  min-width: 38px !important;
  min-height: 38px !important;
  background: transparent !important;
  border: none !important;
  color: var(--gold, #D4B570) !important;
  font-size: 1.15rem !important;
  font-weight: 300 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  transition: background 0.15s !important;
  cursor: pointer !important;
}

.cart-item .js-touchspin-down:hover,
.cart-item .js-touchspin-up:hover,
.cart-item .btn.touchspin-down:hover,
.cart-item .btn.touchspin-up:hover {
  background: rgba(212,181,112,0.12) !important;
}

/* Input qty */
.cart-item input[name="product-quantity-spin"],
.cart-item .js-cart-line-product-quantity {
  width: 38px !important;
  height: 38px !important;
  border: none !important;
  border-left: 1px solid rgba(107,74,140,0.2) !important;
  border-right: 1px solid rgba(107,74,140,0.2) !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: var(--cream, #F4EFE6) !important;
  text-align: center !important;
  font-size: 0.95rem !important;
  font-weight: 500 !important;
  padding: 0 !important;
}

/* Image produit panier 80px */
.cart-item .product-line-image img,
.cart-item .product-image img,
.cart-item td.product-thumbnail img {
  width: 80px !important;
  height: 80px !important;
  min-width: 80px !important;
  object-fit: cover !important;
  border-radius: 6px !important;
  flex-shrink: 0 !important;
}

/* Bouton supprimer : icône discrète, visible au hover row */
.cart-item .remove-from-cart,
.cart-item .js-cart-line-product-remove {
  opacity: 0.35 !important;
  transition: opacity 0.2s !important;
  color: var(--cream, #F4EFE6) !important;
  font-size: 0.9rem !important;
  padding: 6px !important;
  border-radius: 4px !important;
}

.cart-item:hover .remove-from-cart,
.cart-item:hover .js-cart-line-product-remove {
  opacity: 0.7 !important;
}

.cart-item .remove-from-cart:hover,
.cart-item .js-cart-line-product-remove:hover {
  opacity: 1 !important;
  color: #E07A5F !important;
  background: rgba(224,122,95,0.1) !important;
}

/* ── Cart summary sticky desktop renforcé ── */
@media (min-width: 992px) {
  .cart-grid-right,
  .cart-grid-right.col-lg-4 {
    position: sticky !important;
    top: 80px !important;
    align-self: flex-start !important;
  }

  .cart-grid-right .card,
  .cart-grid-right .cart-summary,
  .cart-grid-right #js-checkout-summary,
  .cart-grid-right .checkout-order-summary {
    max-height: calc(100vh - 120px) !important;
    overflow-y: auto !important;
  }
}

/* ── Adresses : carte sélectionnée border gold prominent ── */
/* Override avec sélecteur plus fort */
.js-address-form .address-item.selected,
.address-selector .address-item.selected,
.address-item.-selected,
.address-item input[type="radio"]:checked + label,
.address-item:has(input[type="radio"]:checked) {
  border: 2px solid var(--gold, #D4B570) !important;
  background: rgba(212,181,112,0.07) !important;
  box-shadow: 0 0 0 3px rgba(212,181,112,0.12) !important;
}

/* Indicateur checkmark sur adresse sélectionnée */
.address-item:has(input[type="radio"]:checked)::after,
.address-item.selected::after,
.address-item.-selected::after {
  content: '✓' !important;
  position: absolute !important;
  top: 10px !important;
  right: 14px !important;
  width: 22px !important;
  height: 22px !important;
  background: var(--gold, #D4B570) !important;
  color: var(--night, #0E0B1A) !important;
  border-radius: 50% !important;
  font-size: 0.75rem !important;
  font-weight: 700 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  line-height: 1 !important;
}

/* ── Livraison : carte transporteur claire ── */
.delivery-option,
.carrier-block {
  position: relative !important;
}

/* Badge "gratuit" / prix bien visible */
.delivery-option .carrier-price,
.carrier-price {
  font-size: 1rem !important;
  font-weight: 600 !important;
  color: var(--gold, #D4B570) !important;
  min-width: 60px !important;
  text-align: right !important;
}

/* Délai de livraison — ligne séparée sous le nom */
.delivery-option .carrier-delay,
.carrier-delay {
  display: block !important;
  font-size: 0.8rem !important;
  color: rgba(244,239,230,0.45) !important;
  margin-top: 2px !important;
}

/* Option sélectionnée — border gold */
.delivery-option input[type="radio"]:checked ~ *,
.delivery-option.selected,
.delivery-option:has(input[type="radio"]:checked) {
  border-color: var(--gold, #D4B570) !important;
  background: rgba(212,181,112,0.06) !important;
  box-shadow: 0 0 0 3px rgba(212,181,112,0.1) !important;
}

/* Logo transporteur */
.delivery-option .carrier-logo img,
.carrier-logo img {
  height: 28px !important;
  width: auto !important;
  object-fit: contain !important;
  opacity: 0.85 !important;
  border-radius: 3px !important;
}

/* ── Paiement : icônes cohérentes ── */
/* Container option paiement */
.payment-option,
#payment-option-list li {
  display: flex !important;
  align-items: center !important;
  gap: 12px !important;
}

/* Logo paiement unifié */
.payment-option img,
.payment-logo,
#payment-option-list img {
  height: 32px !important;
  width: auto !important;
  max-width: 56px !important;
  object-fit: contain !important;
  border-radius: 4px !important;
  opacity: 0.9 !important;
  flex-shrink: 0 !important;
}

/* Option paiement sélectionnée */
.payment-option:has(input[type="radio"]:checked),
#payment-option-list li:has(input[type="radio"]:checked) {
  border-color: var(--gold, #D4B570) !important;
  background: rgba(212,181,112,0.06) !important;
}

/* Nom méthode paiement */
.payment-option .payment-name,
#payment-option-list .payment-name {
  color: var(--cream, #F4EFE6) !important;
  font-size: 0.95rem !important;
  flex: 1 !important;
}

/* ── CTA Commander — 56-64px gold filled prominent ── */
/* Ciblage large pour PS9 */
#payment-confirmation .btn,
#payment-confirmation button,
#payment-confirmation .btn-primary,
.payment-confirmation .btn-primary,
button[data-module-name],
#place-order,
.js-payment-button {
  width: 100% !important;
  min-height: 60px !important;
  height: auto !important;
  padding: 0 32px !important;
  background: var(--gold, #D4B570) !important;
  border: none !important;
  border-radius: 8px !important;
  color: var(--night, #0E0B1A) !important;
  font-family: var(--sans, 'Lato', sans-serif) !important;
  font-size: 1rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase !important;
  cursor: pointer !important;
  transition: transform 0.15s, box-shadow 0.15s, opacity 0.15s !important;
  box-shadow: 0 4px 20px rgba(212,181,112,0.25) !important;
  margin-top: 24px !important;
  display: block !important;
  text-align: center !important;
  line-height: 60px !important;
  text-decoration: none !important;
}

#payment-confirmation .btn:hover,
#payment-confirmation button:hover,
.js-payment-button:hover {
  opacity: 0.92 !important;
  transform: translateY(-1px) !important;
  box-shadow: 0 6px 28px rgba(212,181,112,0.35) !important;
}

/* ── Récap commande final : alignement labels/valeurs ── */
/* Table récap — colonnes bien alignées */
#order-items table,
#order-confirmation table,
.order-details-table {
  table-layout: fixed !important;
}

#order-confirmation table th:nth-child(1),
#order-items table th:nth-child(1) {
  width: 50% !important;
}

#order-confirmation table th:not(:nth-child(1)),
#order-items table th:not(:nth-child(1)) {
  width: auto !important;
  text-align: right !important;
}

#order-confirmation table td:not(:nth-child(1)):not(:nth-child(2)),
#order-items table td:not(:nth-child(1)):not(:nth-child(2)) {
  text-align: right !important;
}

/* Bloc totaux récap — grille labels/valeurs */
.order-confirmation-table .order-line-totals,
#order-totals .order-totals {
  display: flex !important;
  flex-direction: column !important;
  gap: 6px !important;
}

/* Chaque ligne label/valeur */
#order-subtotals .order-subtotal,
#order-totals .order-total,
.order-line,
.order-subtotal,
.order-shipping,
.order-total {
  display: flex !important;
  justify-content: space-between !important;
  align-items: baseline !important;
  padding: 8px 20px !important;
  border-bottom: 1px solid rgba(255,255,255,0.05) !important;
}

#order-totals .order-total,
.order-total-amount {
  border-top: 1px solid var(--gold-border, rgba(212,181,112,0.35)) !important;
  border-bottom: none !important;
  font-family: var(--serif, 'Cormorant Garamond') !important;
  font-size: 1.3rem !important;
  color: var(--gold, #D4B570) !important;
  font-weight: 500 !important;
  margin-top: 4px !important;
  padding-top: 12px !important;
}

/* Valeurs à droite */
.order-confirmation-table td:last-child,
#order-subtotals .amount,
#order-totals .amount {
  text-align: right !important;
  white-space: nowrap !important;
  color: var(--cream, #F4EFE6) !important;
}

/* ── Mobile : sticky CTA bottom commande ── */
@media (max-width: 767px) {
  /* CTA Commander sticky */
  #payment-confirmation {
    position: sticky !important;
    bottom: 0 !important;
    z-index: 200 !important;
    background: rgba(14,11,26,0.98) !important;
    backdrop-filter: blur(16px) !important;
    -webkit-backdrop-filter: blur(16px) !important;
    padding: 12px 16px 20px !important;
    border-top: 1px solid rgba(212,181,112,0.2) !important;
    margin: 0 -16px !important;
  }

  #payment-confirmation .btn,
  #payment-confirmation button,
  .js-payment-button {
    margin-top: 0 !important;
    min-height: 56px !important;
    line-height: 56px !important;
    font-size: 0.9rem !important;
  }

  /* Espace pour éviter que le CTA sticky masque le contenu */
  #js-checkout-process,
  .checkout-process {
    padding-bottom: 100px !important;
  }

  /* Steps : masquer la ligne horizontale sur mobile */
  .checkout-steps::before,
  #js-checkout-process::before {
    display: none !important;
  }

  /* Adresses en colonne sur mobile */
  .address-selector .row,
  .js-address-form .row {
    flex-direction: column !important;
  }

  .address-selector .col-sm-6,
  .js-address-form .col-sm-6 {
    width: 100% !important;
    max-width: 100% !important;
    flex: 0 0 100% !important;
  }

  /* Livraison — layout compact */
  .delivery-option {
    flex-wrap: wrap !important;
    gap: 8px !important;
  }

  /* Paiement — icônes pleine largeur */
  .payment-option img,
  .payment-logo {
    height: 28px !important;
  }
}

/* ================================================================
   ITER 31 — Checkout 3e passe polish
   v=1.31
   ================================================================ */

/* ── Free shipping progress bar ─────────────────────────────── */
.free-shipping-bar {
  background: rgba(30, 24, 50, 0.7);
  border: 1px solid var(--gold-border);
  border-radius: 8px;
  padding: 12px 16px;
  margin-bottom: 16px;
  font-family: var(--serif, 'Cormorant Garamond', serif);
}

.free-shipping-bar__label {
  font-size: 0.8rem;
  color: var(--cream);
  margin-bottom: 6px;
  display: flex;
  justify-content: space-between;
}

.free-shipping-bar__label span {
  color: var(--gold, #D4B570);
  font-weight: 600;
}

.free-shipping-bar__track {
  height: 6px;
  background: rgba(244, 239, 230, 0.15);
  border-radius: 3px;
  overflow: hidden;
}

.free-shipping-bar__fill {
  height: 100%;
  background: linear-gradient(90deg, var(--amethyst, #6B4A8C), var(--gold, #D4B570));
  border-radius: 3px;
  transition: width 0.4s ease;
}

.free-shipping-bar--unlocked .free-shipping-bar__fill {
  background: var(--gold, #D4B570);
}

.free-shipping-bar--unlocked .free-shipping-bar__label span {
  color: #7fcf7f;
}

/* ── Gift wrap toggle ────────────────────────────────────────── */
.gift-wrap-option {
  background: var(--night-card, #14102A);
  border: 1px solid var(--amethyst-border);
  border-radius: 8px;
  padding: 14px 16px;
  margin-bottom: 16px;
  display: flex;
  align-items: center;
  gap: 12px;
  cursor: pointer;
  transition: border-color 0.2s;
}

.gift-wrap-option:hover,
.gift-wrap-option.active {
  border-color: var(--gold, #D4B570);
}

.gift-wrap-option__toggle {
  position: relative;
  width: 40px;
  height: 22px;
  flex-shrink: 0;
}

.gift-wrap-option__toggle input {
  opacity: 0;
  width: 0;
  height: 0;
  position: absolute;
}

.gift-wrap-option__slider {
  position: absolute;
  inset: 0;
  background: rgba(244, 239, 230, 0.15);
  border-radius: 11px;
  transition: background 0.2s;
}

.gift-wrap-option__slider::after {
  content: '';
  position: absolute;
  top: 3px;
  left: 3px;
  width: 16px;
  height: 16px;
  background: var(--cream, #F4EFE6);
  border-radius: 50%;
  transition: transform 0.2s;
}

.gift-wrap-option__toggle input:checked + .gift-wrap-option__slider {
  background: var(--gold, #D4B570);
}

.gift-wrap-option__toggle input:checked + .gift-wrap-option__slider::after {
  transform: translateX(18px);
}

.gift-wrap-option__label {
  font-family: var(--serif, 'Cormorant Garamond', serif);
  font-size: 0.9rem;
  color: var(--cream, #F4EFE6);
}

.gift-wrap-option__price {
  margin-left: auto;
  font-size: 0.8rem;
  color: var(--gold, #D4B570);
  font-weight: 600;
}

/* ── Order notes textarea ────────────────────────────────────── */
.order-notes {
  margin-bottom: 16px;
}

.order-notes label {
  display: block;
  font-family: var(--serif, 'Cormorant Garamond', serif);
  font-size: 0.85rem;
  color: var(--cream, #F4EFE6);
  margin-bottom: 6px;
  letter-spacing: 0.04em;
}

.order-notes textarea,
#order_message,
textarea[name="message"] {
  width: 100%;
  background: var(--input-bg, rgba(30, 24, 50, 0.7)) !important;
  border: 1px solid var(--amethyst-border) !important;
  border-radius: 8px !important;
  color: var(--cream, #F4EFE6) !important;
  font-family: var(--serif, 'Cormorant Garamond', serif) !important;
  font-size: 0.9rem !important;
  padding: 10px 14px !important;
  resize: vertical;
  min-height: 80px;
  transition: border-color 0.2s;
}

.order-notes textarea:focus,
#order_message:focus,
textarea[name="message"]:focus {
  border-color: var(--gold, #D4B570) !important;
  outline: none !important;
  box-shadow: 0 0 0 2px rgba(212, 181, 112, 0.15) !important;
}

/* ── Payment method tooltip security ────────────────────────── */
.payment-option {
  position: relative;
}

.payment-security-tooltip {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 0.72rem;
  color: rgba(244, 239, 230, 0.55);
  cursor: help;
  position: relative;
}

.payment-security-tooltip::before {
  content: attr(data-tip);
  position: absolute;
  bottom: calc(100% + 6px);
  left: 50%;
  transform: translateX(-50%);
  background: var(--night-card, #14102A);
  border: 1px solid var(--gold-border);
  color: var(--cream, #F4EFE6);
  font-size: 0.72rem;
  padding: 6px 10px;
  border-radius: 6px;
  white-space: nowrap;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.2s;
  z-index: 10;
}

.payment-security-tooltip:hover::before {
  opacity: 1;
}

.payment-security-badge {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  background: rgba(127, 207, 127, 0.08);
  border: 1px solid rgba(127, 207, 127, 0.2);
  border-radius: 4px;
  padding: 3px 8px;
  font-size: 0.7rem;
  color: #7fcf7f;
  margin-left: 8px;
}

/* ── Trust badges ────────────────────────────────────────────── */
.trust-badges {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  margin: 16px 0;
  justify-content: center;
}

.trust-badge {
  display: flex;
  align-items: center;
  gap: 6px;
  background: var(--night-card, #14102A);
  border: 1px solid var(--amethyst-border);
  border-radius: 8px;
  padding: 8px 12px;
  font-size: 0.72rem;
  color: var(--cream, #F4EFE6);
  font-family: var(--serif, 'Cormorant Garamond', serif);
  flex: 1 1 calc(33% - 10px);
  min-width: 100px;
  max-width: 160px;
  text-align: center;
  justify-content: center;
}

.trust-badge svg,
.trust-badge .icon {
  width: 18px;
  height: 18px;
  color: var(--gold, #D4B570);
  flex-shrink: 0;
}

.trust-badge--secure { border-color: rgba(127, 207, 127, 0.2); }
.trust-badge--secure svg { color: #7fcf7f; }

/* ── Estimated delivery date ─────────────────────────────────── */
.estimated-delivery {
  background: rgba(107, 74, 140, 0.08);
  border: 1px solid var(--amethyst-border);
  border-left: 3px solid var(--amethyst, #6B4A8C);
  border-radius: 0 8px 8px 0;
  padding: 10px 14px;
  margin-bottom: 14px;
  font-size: 0.82rem;
  color: var(--cream, #F4EFE6);
  display: flex;
  align-items: center;
  gap: 8px;
}

.estimated-delivery__icon {
  color: var(--gold, #D4B570);
  flex-shrink: 0;
}

.estimated-delivery__date {
  font-weight: 600;
  color: var(--gold, #D4B570);
}

/* ── Order summary collapsible mobile ───────────────────────── */
.order-summary-toggle {
  display: none;
  width: 100%;
  background: var(--night-card, #14102A);
  border: 1px solid var(--gold-border);
  border-radius: 8px;
  padding: 14px 16px;
  color: var(--cream, #F4EFE6);
  font-family: var(--serif, 'Cormorant Garamond', serif);
  font-size: 0.9rem;
  cursor: pointer;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 12px;
}

.order-summary-toggle__caret {
  transition: transform 0.25s;
  color: var(--gold, #D4B570);
}

.order-summary-toggle[aria-expanded="true"] .order-summary-toggle__caret {
  transform: rotate(180deg);
}

.order-summary-collapsible {
  overflow: hidden;
  transition: max-height 0.3s ease;
}

/* ── "Continuer mes achats" link ─────────────────────────────── */
.continue-shopping,
a.continue-shopping,
.cart-continue-link,
a[data-link-action="continue-shopping"] {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: rgba(244, 239, 230, 0.65) !important;
  font-family: var(--serif, 'Cormorant Garamond', serif);
  font-size: 0.85rem;
  text-decoration: none !important;
  border-bottom: 1px solid transparent;
  padding-bottom: 1px;
  transition: color 0.2s, border-color 0.2s;
  letter-spacing: 0.04em;
}

.continue-shopping:hover,
a.continue-shopping:hover,
.cart-continue-link:hover,
a[data-link-action="continue-shopping"]:hover {
  color: var(--gold, #D4B570) !important;
  border-bottom-color: var(--gold, #D4B570);
}

/* ── Sticky cart summary mobile bottom ──────────────────────── */
.sticky-cart-summary-mobile {
  display: none;
}

.sticky-cart-summary-mobile__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.sticky-cart-summary-mobile__total {
  font-family: var(--serif, 'Cormorant Garamond', serif);
  font-size: 1rem;
  font-weight: 700;
  color: var(--cream, #F4EFE6);
}

.sticky-cart-summary-mobile__total span {
  color: var(--gold, #D4B570);
}

.sticky-cart-summary-mobile__cta {
  background: var(--gold, #D4B570) !important;
  color: var(--night, #0E0B1A) !important;
  border: none;
  border-radius: 6px;
  padding: 10px 20px;
  font-family: var(--serif, 'Cormorant Garamond', serif);
  font-size: 0.85rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  cursor: pointer;
  text-transform: uppercase;
  text-decoration: none;
  display: inline-block;
  transition: opacity 0.2s;
}

.sticky-cart-summary-mobile__cta:hover {
  opacity: 0.88;
}

/* ── Empty cart redirect CTA ─────────────────────────────────── */
.cart-empty,
#cart-empty,
.cart-overview--empty {
  text-align: center;
  padding: 60px 24px;
}

.cart-empty__icon {
  font-size: 3rem;
  color: var(--amethyst, #6B4A8C);
  opacity: 0.5;
  margin-bottom: 16px;
}

.cart-empty__title {
  font-family: var(--serif, 'Cormorant Garamond', serif);
  font-size: 1.5rem;
  color: var(--cream, #F4EFE6);
  margin-bottom: 8px;
}

.cart-empty__subtitle {
  font-size: 0.9rem;
  color: rgba(244, 239, 230, 0.55);
  margin-bottom: 28px;
}

.cart-empty__cta,
a.cart-empty__cta {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: transparent;
  border: 2px solid var(--gold, #D4B570);
  color: var(--gold, #D4B570) !important;
  border-radius: 8px;
  padding: 12px 28px;
  font-family: var(--serif, 'Cormorant Garamond', serif);
  font-size: 0.9rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  text-decoration: none !important;
  transition: background 0.2s, color 0.2s;
}

.cart-empty__cta:hover,
a.cart-empty__cta:hover {
  background: var(--gold, #D4B570);
  color: var(--night, #0E0B1A) !important;
}

/* ── Iter 31 Mobile overrides ────────────────────────────────── */
@media (max-width: 767px) {
  .trust-badges {
    gap: 8px;
  }

  .trust-badge {
    font-size: 0.68rem;
    padding: 6px 10px;
    flex: 1 1 calc(33% - 8px);
    min-width: 80px;
  }

  .order-summary-toggle {
    display: flex;
  }

  .sticky-cart-summary-mobile {
    display: block;
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    background: var(--night-card, #14102A);
    border-top: 1px solid var(--gold-border);
    padding: 12px 16px;
    z-index: 900;
    backdrop-filter: blur(8px);
  }

  .free-shipping-bar {
    margin-bottom: 12px;
  }

  .estimated-delivery {
    font-size: 0.78rem;
  }
}

/* ── Iter 43 Polish 4e passe ─────────────────────────────────── */

/* Order success page */
.page-order-confirmation .card {
  background: var(--night-card, #14102A);
  border: 1px solid var(--gold-border, rgba(212,181,112,0.25));
  border-radius: 10px;
}
.page-order-confirmation .order-confirmation-table {
  color: var(--cream, #F5F0E8);
}
.page-order-confirmation .order-confirmation-table th {
  color: var(--gold, #D4B570);
  border-bottom: 1px solid var(--gold-border, rgba(212,181,112,0.25));
  font-weight: 600;
  padding: 10px 12px;
}
.page-order-confirmation .order-confirmation-table td {
  padding: 10px 12px;
  border-bottom: 1px solid rgba(255,255,255,0.05);
}
.page-order-confirmation .alert-success {
  background: rgba(212,181,112,0.12);
  border: 1px solid var(--gold, #D4B570);
  border-radius: 8px;
  color: var(--gold, #D4B570);
  padding: 16px 20px;
}
.confirmation-order-products-title {
  color: var(--gold, #D4B570);
  font-size: 1.1rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  margin-bottom: 16px;
}

/* Save card option */
#conditions-to-approve .save-card-option,
.payment-option .save-card,
.js-save-payment-option {
  display: flex;
  align-items: center;
  gap: 10px;
  background: rgba(212,181,112,0.06);
  border: 1px solid var(--gold-border, rgba(212,181,112,0.25));
  border-radius: 8px;
  padding: 10px 14px;
  margin-top: 8px;
  font-size: 0.88rem;
  color: var(--cream, #F5F0E8);
  cursor: pointer;
  transition: background 0.2s, border-color 0.2s;
}
.js-save-payment-option:hover {
  background: rgba(212,181,112,0.12);
  border-color: var(--gold, #D4B570);
}
.js-save-payment-option input[type="checkbox"] {
  accent-color: var(--gold, #D4B570);
  width: 16px;
  height: 16px;
}

/* Address validation inline */
.address-form .form-group.has-error .form-control,
.checkout-step .form-group.has-error input,
.checkout-step .form-group.has-error select {
  border-color: #e74c3c !important;
  box-shadow: 0 0 0 2px rgba(231,76,60,0.18);
}
.address-form .form-group.has-success .form-control,
.checkout-step .form-group.has-success input {
  border-color: #27ae60 !important;
  box-shadow: 0 0 0 2px rgba(39,174,96,0.15);
}
.form-group .help-block {
  font-size: 0.78rem;
  margin-top: 4px;
}
.form-group.has-error .help-block {
  color: #e74c3c;
}
.form-group.has-success .help-block {
  color: #27ae60;
}

/* Coupon stacking display */
.promo-code-applied + .promo-code-applied,
.cart-voucher + .cart-voucher {
  margin-top: 4px;
}
.promo-codes-stack {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin-bottom: 8px;
}
.promo-code-tag {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: rgba(212,181,112,0.10);
  border: 1px solid var(--gold-border, rgba(212,181,112,0.25));
  border-radius: 20px;
  padding: 4px 12px 4px 10px;
  font-size: 0.82rem;
  color: var(--gold, #D4B570);
}
.promo-code-tag .remove-voucher {
  color: var(--gold, #D4B570);
  opacity: 0.6;
  background: none;
  border: none;
  cursor: pointer;
  padding: 0;
  font-size: 0.9rem;
  line-height: 1;
  transition: opacity 0.2s;
}
.promo-code-tag .remove-voucher:hover {
  opacity: 1;
}

/* Estimated total live update animation */
@keyframes totalPulse {
  0%   { opacity: 1; }
  40%  { opacity: 0.4; }
  100% { opacity: 1; }
}
.cart-total.updating .value,
#cart-subtotal-products.updating,
.js-total-amount.updating {
  animation: totalPulse 0.6s ease;
}
.js-total-amount {
  transition: color 0.3s;
}

/* Shipping method icons (Colissimo / Mondial Relay) */
.delivery-option label {
  display: flex;
  align-items: center;
  gap: 10px;
  position: relative;
}
.delivery-option label[for*="colissimo"]::before,
.delivery-option label[for*="Colissimo"]::before {
  content: "📦";
  font-size: 1.1rem;
  flex-shrink: 0;
}
.delivery-option label[for*="mondial"]::before,
.delivery-option label[for*="Mondial"]::before,
.delivery-option label[for*="relay"]::before,
.delivery-option label[for*="Relay"]::before {
  content: "🏪";
  font-size: 1.1rem;
  flex-shrink: 0;
}
.delivery-option label[for*="express"]::before,
.delivery-option label[for*="Express"]::before {
  content: "⚡";
  font-size: 1.1rem;
  flex-shrink: 0;
}
.carrier-name {
  font-weight: 500;
  color: var(--cream, #F5F0E8);
}
.carrier-delay {
  font-size: 0.8rem;
  color: rgba(245,240,232,0.6);
}
.carrier-price {
  margin-left: auto;
  font-weight: 600;
  color: var(--gold, #D4B570);
}

/* Tax breakdown collapsible */
.tax-breakdown {
  border-top: 1px solid var(--gold-border, rgba(212,181,112,0.15));
  margin-top: 8px;
  padding-top: 8px;
}
.tax-breakdown-toggle {
  display: flex;
  align-items: center;
  justify-content: space-between;
  cursor: pointer;
  font-size: 0.85rem;
  color: rgba(245,240,232,0.7);
  user-select: none;
  padding: 4px 0;
}
.tax-breakdown-toggle::after {
  content: "▸";
  transition: transform 0.2s;
  font-size: 0.75rem;
}
.tax-breakdown-toggle.open::after {
  transform: rotate(90deg);
}
.tax-breakdown-detail {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.3s ease;
}
.tax-breakdown-detail.open {
  max-height: 200px;
}
.tax-breakdown-row {
  display: flex;
  justify-content: space-between;
  font-size: 0.82rem;
  color: rgba(245,240,232,0.6);
  padding: 3px 0;
}
.tax-breakdown-row .tax-label {
  color: rgba(245,240,232,0.5);
}
.tax-breakdown-row .tax-amount {
  color: var(--cream, #F5F0E8);
}

/* Order notes character counter */
.order-notes-wrapper {
  position: relative;
}
.order-notes-counter {
  position: absolute;
  bottom: 8px;
  right: 12px;
  font-size: 0.75rem;
  color: rgba(245,240,232,0.4);
  pointer-events: none;
  transition: color 0.2s;
}
.order-notes-counter.near-limit {
  color: #e67e22;
}
.order-notes-counter.at-limit {
  color: #e74c3c;
}
textarea#delivery_message,
textarea[name="delivery_message"] {
  padding-bottom: 28px;
}

/* Express checkout buttons (PayPal / Apple Pay) */
.express-checkout {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-bottom: 20px;
}
.express-checkout-divider {
  display: flex;
  align-items: center;
  gap: 12px;
  color: rgba(245,240,232,0.4);
  font-size: 0.8rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  margin-bottom: 4px;
}
.express-checkout-divider::before,
.express-checkout-divider::after {
  content: "";
  flex: 1;
  height: 1px;
  background: var(--gold-border, rgba(212,181,112,0.2));
}
.btn-paypal-express,
[data-module-name="ps_checkout"] .paypal-button-container,
.paypal-button {
  border-radius: 8px !important;
  overflow: hidden;
}
.btn-applepay,
apple-pay-button {
  --apple-pay-button-width: 100%;
  --apple-pay-button-height: 44px;
  --apple-pay-button-border-radius: 8px;
  --apple-pay-button-padding: 0;
  --apple-pay-button-box-sizing: border-box;
  display: block;
  width: 100%;
}
.express-checkout-note {
  text-align: center;
  font-size: 0.78rem;
  color: rgba(245,240,232,0.45);
  margin-top: 2px;
}

/* ================================================================
   ITER 51 POLISH — Passe 5
   ================================================================ */

/* ── 1. Quantity selector +/- accessible ────────────────────── */
/* Focus ring visible pour navigation clavier */
.cart-item .js-touchspin-down:focus-visible,
.cart-item .js-touchspin-up:focus-visible,
.cart-item .btn.touchspin-down:focus-visible,
.cart-item .btn.touchspin-up:focus-visible,
.cart-item input[name="product-quantity-spin"]:focus-visible,
.cart-item .js-cart-line-product-quantity:focus-visible {
  outline: 2px solid var(--gold, #D4B570) !important;
  outline-offset: 2px !important;
  z-index: 1 !important;
}
/* Disabled state : bouton - quand qty=1 */
.cart-item .js-touchspin-down[disabled],
.cart-item .btn.touchspin-down[disabled] {
  opacity: 0.35 !important;
  cursor: not-allowed !important;
  pointer-events: none !important;
}
/* aria-label implicite via ::after pour screen readers (visually hidden) */
.cart-item .js-touchspin-down .sr-only,
.cart-item .js-touchspin-up .sr-only {
  position: absolute;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden;
  clip: rect(0,0,0,0);
  white-space: nowrap;
  border: 0;
}

/* ── 2. Address autocomplete dropdown ───────────────────────── */
/* PS AddressCompletion / Google Places / browser native */
.address-autocomplete-dropdown,
.pac-container,
ul.ui-autocomplete[role="listbox"] {
  background: var(--night-card, #14102A) !important;
  border: 1px solid var(--gold-border, rgba(212,181,112,0.3)) !important;
  border-radius: 8px !important;
  box-shadow: 0 8px 32px rgba(0,0,0,0.5) !important;
  overflow: hidden !important;
  font-family: inherit !important;
  z-index: 9999 !important;
}
.address-autocomplete-dropdown li,
.pac-item,
ul.ui-autocomplete li {
  padding: 9px 14px !important;
  color: var(--cream, #F4EFE6) !important;
  font-size: 0.88rem !important;
  border-bottom: 1px solid rgba(107,74,140,0.15) !important;
  cursor: pointer !important;
  transition: background 0.15s !important;
}
.address-autocomplete-dropdown li:last-child,
.pac-item:last-child,
ul.ui-autocomplete li:last-child {
  border-bottom: none !important;
}
.address-autocomplete-dropdown li:hover,
.pac-item:hover,
ul.ui-autocomplete li:hover,
ul.ui-autocomplete li.ui-state-active {
  background: rgba(107,74,140,0.2) !important;
  color: var(--gold, #D4B570) !important;
}
.pac-item-query,
.pac-matched {
  color: var(--gold, #D4B570) !important;
  font-weight: 500 !important;
}
/* Icône Google Maps — discrète */
.pac-icon {
  filter: brightness(0.6) sepia(1) hue-rotate(280deg) !important;
}
.pac-logo::after {
  filter: brightness(0.5) !important;
}

/* ── 3. Payment iframe Stripe/PayPal ────────────────────────── */
/* Conteneur iframe paiement */
#payment-confirmation iframe,
.js-payment-option-form iframe,
[data-module-name="ps_checkout"] iframe,
.stripe-payment-form iframe,
.paypal-iframe-container iframe {
  border: 1px solid var(--amethyst-border, rgba(107,74,140,0.3)) !important;
  border-radius: 8px !important;
  background: rgba(20,16,42,0.5) !important;
  transition: border-color 0.2s !important;
  min-height: 44px !important;
  width: 100% !important;
}
/* Wrapper Stripe Elements */
.StripeElement,
.__PrivateStripeElement {
  background: var(--input-bg, rgba(30,24,50,0.7)) !important;
  border: 1px solid var(--amethyst-border, rgba(107,74,140,0.3)) !important;
  border-radius: 8px !important;
  padding: 12px 14px !important;
  transition: border-color 0.2s, box-shadow 0.2s !important;
}
.StripeElement--focus,
.StripeElement--invalid:not(.StripeElement--empty) + .StripeElement--focus {
  border-color: var(--gold, #D4B570) !important;
  box-shadow: 0 0 0 2px rgba(212,181,112,0.15) !important;
}
.StripeElement--invalid {
  border-color: #e74c3c !important;
}
/* PayPal SPB wrapper */
[data-funding-source] .paypal-button {
  border-radius: 8px !important;
  overflow: hidden !important;
}

/* ── 4. Card form 3D-Secure modal ───────────────────────────── */
/* Overlay backdrop 3DS */
#three-ds-modal,
.modal-3ds,
[id*="3ds"],
[class*="3ds-modal"] {
  position: fixed !important;
  inset: 0 !important;
  background: rgba(14,11,26,0.88) !important;
  backdrop-filter: blur(6px) !important;
  z-index: 99999 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}
#three-ds-modal .modal-dialog,
.modal-3ds .modal-dialog,
[id*="3ds"] .modal-dialog {
  background: var(--night-card, #14102A) !important;
  border: 1px solid var(--gold-border, rgba(212,181,112,0.3)) !important;
  border-radius: 12px !important;
  box-shadow: 0 24px 64px rgba(0,0,0,0.7) !important;
  max-width: 480px !important;
  width: 94vw !important;
  overflow: hidden !important;
}
#three-ds-modal .modal-header,
.modal-3ds .modal-header {
  background: rgba(107,74,140,0.12) !important;
  border-bottom: 1px solid var(--amethyst-border) !important;
  padding: 14px 20px !important;
  color: var(--cream, #F4EFE6) !important;
  font-family: var(--serif, "Cormorant Garamond"), serif !important;
  font-size: 1.05rem !important;
}
#three-ds-modal iframe,
.modal-3ds iframe {
  border: none !important;
  border-radius: 0 !important;
  width: 100% !important;
  min-height: 400px !important;
}
/* Spinner 3DS chargement */
#three-ds-modal .loading-spinner,
.modal-3ds .loading-spinner {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 40px;
  color: var(--gold, #D4B570);
  font-size: 0.88rem;
  gap: 12px;
}
#three-ds-modal .loading-spinner::before,
.modal-3ds .loading-spinner::before {
  content: "";
  width: 22px;
  height: 22px;
  border: 2px solid var(--gold-border, rgba(212,181,112,0.3));
  border-top-color: var(--gold, #D4B570);
  border-radius: 50%;
  animation: spin3ds 0.8s linear infinite;
}
@keyframes spin3ds {
  to { transform: rotate(360deg); }
}

/* ── 5. Order summary tooltip "?" hover ─────────────────────── */
.order-summary-tooltip,
.cart-summary-line .tooltip-trigger,
[data-toggle="tooltip"][data-placement] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background: rgba(107,74,140,0.25);
  border: 1px solid var(--amethyst-border, rgba(107,74,140,0.3));
  color: rgba(245,240,232,0.6);
  font-size: 0.68rem;
  font-weight: 600;
  font-style: normal;
  cursor: help;
  position: relative;
  vertical-align: middle;
  margin-left: 5px;
  transition: background 0.2s, border-color 0.2s;
  flex-shrink: 0;
}
.order-summary-tooltip:hover,
.cart-summary-line .tooltip-trigger:hover {
  background: rgba(107,74,140,0.4);
  border-color: var(--gold-border, rgba(212,181,112,0.35));
  color: var(--gold, #D4B570);
}
/* Popover au survol */
.order-summary-tooltip::after,
.cart-summary-line .tooltip-trigger::after {
  content: attr(data-tooltip);
  position: absolute;
  bottom: calc(100% + 8px);
  left: 50%;
  transform: translateX(-50%);
  background: var(--night-card, #14102A);
  border: 1px solid var(--gold-border, rgba(212,181,112,0.3));
  color: var(--cream, #F4EFE6);
  font-size: 0.72rem;
  font-weight: 400;
  font-style: normal;
  padding: 7px 11px;
  border-radius: 6px;
  white-space: nowrap;
  max-width: 220px;
  white-space: normal;
  text-align: center;
  line-height: 1.4;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.2s;
  z-index: 100;
  box-shadow: 0 4px 16px rgba(0,0,0,0.4);
}
/* Flèche tooltip */
.order-summary-tooltip::before,
.cart-summary-line .tooltip-trigger::before {
  content: "";
  position: absolute;
  bottom: calc(100% + 3px);
  left: 50%;
  transform: translateX(-50%);
  border: 5px solid transparent;
  border-top-color: var(--gold-border, rgba(212,181,112,0.3));
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.2s;
  z-index: 101;
}
.order-summary-tooltip:hover::after,
.order-summary-tooltip:hover::before,
.cart-summary-line .tooltip-trigger:hover::after,
.cart-summary-line .tooltip-trigger:hover::before {
  opacity: 1;
}

/* ── 6. Apple Pay button native style ───────────────────────── */
apple-pay-button,
.btn-applepay {
  --apple-pay-button-width: 100%;
  --apple-pay-button-height: 48px;
  --apple-pay-button-border-radius: 8px;
  --apple-pay-button-padding: 0px 0px;
  --apple-pay-button-box-sizing: border-box;
  display: block;
  width: 100%;
  height: 48px;
  border-radius: 8px;
  overflow: hidden;
  /* Ombre subtile harmonisée avec le thème sombre */
  filter: drop-shadow(0 2px 8px rgba(0,0,0,0.4));
  transition: filter 0.2s, transform 0.15s;
}
apple-pay-button:hover,
.btn-applepay:hover {
  filter: drop-shadow(0 4px 14px rgba(0,0,0,0.55));
  transform: translateY(-1px);
}
apple-pay-button:active,
.btn-applepay:active {
  transform: translateY(0);
  filter: drop-shadow(0 1px 4px rgba(0,0,0,0.3));
}
/* Fallback si Apple Pay non disponible */
apple-pay-button:not(:defined) {
  display: none !important;
}

/* ── 7. Express checkout divider décoratif ──────────────────── */
/* Remplacement de la version basique en v2 avec ornements */
.express-checkout-divider {
  display: flex;
  align-items: center;
  gap: 10px;
  color: rgba(245,240,232,0.38);
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  margin: 4px 0;
  user-select: none;
}
.express-checkout-divider::before,
.express-checkout-divider::after {
  content: "";
  flex: 1;
  height: 1px;
  /* Dégradé ornemental gold vers transparent */
  background: linear-gradient(
    90deg,
    transparent 0%,
    var(--gold-border, rgba(212,181,112,0.2)) 40%,
    var(--gold-border, rgba(212,181,112,0.2)) 60%,
    transparent 100%
  );
}
/* Petit losange central décoratif */
.express-checkout-divider .divider-ornament,
.express-checkout-divider span {
  position: relative;
  flex-shrink: 0;
}
.express-checkout-divider span::before,
.express-checkout-divider span::after {
  content: "◆";
  font-size: 0.45rem;
  color: rgba(212,181,112,0.25);
  vertical-align: middle;
  margin: 0 3px;
}
/* Conteneur express checkout — espacement raffiné */
.express-checkout {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-bottom: 22px;
  padding: 16px;
  background: rgba(14,11,26,0.4);
  border: 1px solid rgba(107,74,140,0.15);
  border-radius: 10px;
}
/* === fin iter 51 passe 5 === */

