/**
 * Blocs WooCommerce — panier et commande.
 *
 * Ces écrans ne sont pas rendus par des gabarits PHP mais par des blocs React
 * qui embarquent leur propre thème clair. On ne les réécrit pas : on repointe
 * leurs variables et on corrige ce qui reste en dur.
 */

.dg-wide { width: 100%; max-width: none; }

/* Les blocs exposent leur palette : la repointer corrige d'un coup les
   champs, les panneaux et les séparateurs. */
.wp-block-woocommerce-cart,
.wp-block-woocommerce-checkout,
.wc-block-components-form,
.woocommerce {
  --wp--preset--color--contrast: var(--dg-ink);
  --wp--preset--color--base: var(--dg-surface);
  --wc-blocks-color-text: var(--dg-ink);
  --wc-blocks-color-background: var(--dg-surface);
}

/* ---------- champs de saisie ---------- */
.wc-block-components-text-input input[type="text"],
.wc-block-components-text-input input[type="email"],
.wc-block-components-text-input input[type="tel"],
.wc-block-components-text-input input[type="number"],
.wc-block-components-textarea,
.wc-blocks-components-select__select,
.wc-block-components-combobox input {
  background: var(--dg-surface-2) !important;
  border: 1px solid var(--dg-line-strong) !important;
  border-radius: var(--dg-r-sm) !important;
  color: var(--dg-ink) !important;
  font-family: var(--dg-font-body) !important;
  padding: 22px 14px 8px !important;
}
.wc-block-components-textarea { padding: 14px !important; }
.wc-block-components-text-input input:focus,
.wc-blocks-components-select__select:focus,
.wc-block-components-combobox input:focus {
  outline: 2px solid var(--dg-accent) !important; outline-offset: 1px;
  border-color: var(--dg-accent) !important;
}

/* Le libellé flotte au-dessus du champ : blanc sur blanc, il disparaissait. */
.wc-block-components-text-input label,
.wc-blocks-components-select__label,
.wc-block-components-combobox label {
  color: var(--dg-faint) !important; font-family: var(--dg-font-body) !important;
}
.wc-block-components-text-input.is-active label,
.wc-block-components-combobox.is-active label { color: var(--dg-accent) !important; }
.wc-blocks-components-select__container { background: transparent !important; border: 0 !important; }
.wc-blocks-components-select__expand { fill: var(--dg-faint); }

/* ---------- cases, radios, panneaux ---------- */
.wc-block-components-checkbox .wc-block-components-checkbox__input,
.wc-block-components-radio-control__input {
  border-color: var(--dg-line-strong) !important; background: var(--dg-surface-2) !important;
}
.wc-block-components-checkbox .wc-block-components-checkbox__input:checked,
.wc-block-components-radio-control__input:checked {
  background: var(--dg-accent) !important; border-color: var(--dg-accent) !important;
}
.wc-block-components-checkbox__label, .wc-block-components-radio-control__label { color: var(--dg-ink) !important; }
.wc-block-components-radio-control-accordion-option,
.wc-block-components-radio-control__option,
.wc-block-components-panel,
.wc-block-components-order-summary,
.wc-block-checkout__payment-method .wc-block-components-radio-control {
  background: var(--dg-surface) !important;
  border-color: var(--dg-line) !important; border-radius: var(--dg-r) !important;
}
.wc-block-components-radio-control__option--checked-option-highlighted,
.wc-block-components-radio-control-accordion-option--checked-option-highlighted {
  border-color: var(--dg-accent) !important;
}

/* ---------- titres, totaux, boutons ---------- */
.wc-block-components-title, .wc-block-components-checkout-step__title {
  font-family: var(--dg-font-display) !important; font-weight: 600 !important;
  color: var(--dg-ink) !important; letter-spacing: -.02em;
}
.wc-block-components-checkout-step__description, .wc-block-components-totals-item__label { color: var(--dg-muted) !important; }
.wc-block-components-totals-item__value, .wc-block-formatted-money-amount { color: var(--dg-ink) !important; }
.wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
  color: var(--dg-accent) !important; font-family: var(--dg-font-display); font-weight: 700;
}
.wc-block-components-button:not(.is-link) {
  background: var(--dg-accent) !important; color: var(--dg-bg-deep) !important;
  border: 0 !important; border-radius: var(--dg-r) !important;
  font-family: var(--dg-font-body) !important; font-weight: 700 !important;
}
.wc-block-components-button:not(.is-link):hover { background: var(--dg-accent-soft) !important; }
.wc-block-components-button.is-link, .wc-block-components-panel__button { color: var(--dg-ink-2) !important; }
.wc-block-cart__submit-button, .wc-block-components-checkout-place-order-button { width: 100%; }

/* ---------- lignes d'articles ---------- */
.wc-block-cart-items__row, .wc-block-components-order-summary-item {
  border-color: var(--dg-line) !important;
}
.wc-block-components-product-name { color: var(--dg-ink) !important; font-weight: 700; text-decoration: none; }
.wc-block-components-product-metadata { color: var(--dg-muted) !important; }
.wc-block-cart-item__image img, .wc-block-components-order-summary-item__image img { border-radius: var(--dg-r-sm); }
.wc-block-components-quantity-selector {
  background: var(--dg-surface-2); border: 1px solid var(--dg-line-strong) !important; border-radius: var(--dg-r-sm);
}
.wc-block-components-quantity-selector__input { background: none !important; color: var(--dg-ink) !important; }
.wc-block-components-quantity-selector__button { color: var(--dg-muted) !important; }
.wc-block-components-quantity-selector__button:hover { color: var(--dg-accent) !important; }
.wc-block-cart-item__remove-link { color: var(--dg-faint) !important; }
.wc-block-cart-item__remove-link:hover { color: var(--dg-error) !important; }

.wc-block-components-notice-banner { background: var(--dg-surface) !important; border-color: var(--dg-line-strong) !important; color: var(--dg-ink) !important; }
.wc-block-components-notice-banner.is-success { border-left-color: var(--dg-accent) !important; }
.wc-block-components-notice-banner.is-error { border-left-color: var(--dg-error) !important; }

/* Deux colonnes réelles sur grand écran. */
@media (min-width: 1000px) {
  .wc-block-checkout__form, .wp-block-woocommerce-cart-items-block { padding-right: var(--dg-s-6); }
}

/* --- Correctif Klarna / Stripe Payment Element ---------------------------
   WooCommerce Blocks pose line-height:0 sur le conteneur .wc-block-components-text-input
   (les enfants label/input ont leur propre line-height explicite, 22px et 25px).
   Le plugin Stripe lit ce conteneur pour construire l'apparence des Elements et
   recopie ce 0 dans les regles .Text et .Text--redirect : le texte de redirection
   Klarna se retrouve alors dessine sur une seule ligne, illisible.
   On redonne une valeur saine au conteneur, sans effet visuel sur ses enfants. */
.wc-block-components-form .wc-block-components-text-input,
.wc-block-components-text-input { line-height: 1.45 !important; }
