/**
 * Les Jardins de Courances — adaptation WooCommerce
 *
 * Cette feuille est chargée après WooCommerce. Elle traduit les composants
 * classiques et Blocks vers le Design System sans toucher aux contrôles
 * métier spécifiques : paniers S/M/XL, quantités, suppressions et filtres.
 */

:root {
  --woocommerce: #7fa05f;
  --wc-primary: #b7c08d;
  --wc-primary-text: #2e3b26;
  --wc-secondary: #fbf6ea;
  --wc-secondary-text: #2e3b26;
  --wc-highlight: #e8b54b;
  --wc-highligh-text: #2e3b26;
  --wc-content-bg: #fffdf4;
  --wc-subtext: #7c7563;
  --wc-green: #6f9252;
  --wc-red: #c94732;
  --wc-orange: #e8b54b;
  --wc-blue: #6fa8cf;
  --wc-form-color-background: #fffdf7;
  --wc-form-color-text: #2e3b26;
  --wc-form-border-color: rgba(46, 59, 38, .22);
  --wc-form-border-radius: 2px;
  --wc-form-border-width: 1px;
  --wc-destructive: #c94732;
  --wc-card-border-radius: 3px;
}

/* -------------------------------------------------------------------------
   Actions WooCommerce — même géométrie que les boutons standards JDC
   ------------------------------------------------------------------------- */

:where(
  .woocommerce a.button,
  .woocommerce button.button,
  .woocommerce input.button,
  .wc-block-cart__submit-button,
  .wc-block-components-checkout-place-order-button,
  .wc-block-components-totals-coupon__button,
  .wc-block-components-address-form__button,
  .wc-block-components-button:not(.wc-block-components-quantity-selector__button)
) {
  min-height: 42px;
  padding: 11px 20px;
  border: 1px solid #9ead73;
  border-radius: 3px;
  background:
    radial-gradient(circle at 18% 12%, rgba(255, 253, 244, .34), transparent 31%),
    radial-gradient(circle at 82% 88%, rgba(127, 160, 95, .16), transparent 38%),
    #b7c08d;
  box-shadow:
    0 5px 12px rgba(46, 59, 38, .13),
    0 1px 3px rgba(46, 59, 38, .09);
  color: #2e3b26;
  font: 700 .75rem/1.2 "DM Sans", sans-serif;
  letter-spacing: .015em;
  text-align: center;
  text-decoration: none;
  transform: translateY(0);
  transition:
    background-color .18s ease,
    border-color .18s ease,
    box-shadow .18s ease,
    transform .18s ease;
}

/* Parcours JDC : le retrait est choisi avant le paiement. Les boutons
   express Square/Wallet contournent ce choix et restent donc masqués. */
body.jdc-woocommerce-ui.woocommerce-checkout .wc-block-components-express-payment,
body.jdc-woocommerce-ui.woocommerce-checkout .wc-block-components-express-payment--checkout,
body.jdc-woocommerce-ui.woocommerce-checkout .wc-square-credit-card-payment,
body.jdc-woocommerce-ui.woocommerce-checkout .wc-square-google-pay,
body.jdc-woocommerce-ui.woocommerce-checkout [class*="square-express"],
body.jdc-woocommerce-ui.woocommerce-checkout #wc-square-digital-wallet,
body.jdc-woocommerce-ui.woocommerce-checkout #express-payment-method-square-credit-card,
body.jdc-woocommerce-ui.woocommerce-checkout .wc-square-wallet-buttons,
body.jdc-woocommerce-ui.woocommerce-cart #wc-square-digital-wallet,
body.jdc-woocommerce-ui.woocommerce-cart #wc-square-wallet-divider,
body.jdc-woocommerce-ui.woocommerce-cart #express-payment-method-square-credit-card {
  display: none !important;
}

/* Une seule route logistique : retrait sur place. */
body.jdc-woocommerce-ui.woocommerce-checkout .wc-block-components-shipping-rates-control__package .wc-block-components-radio-control__option[for*="flat_rate"],
body.jdc-woocommerce-ui.woocommerce-checkout .wc-block-components-shipping-rates-control__package label[for*="flat_rate"] {
  display: none !important;
}

body.jdc-woocommerce-ui.woocommerce-checkout .wc-block-components-shipping-rates-control__package {
  margin-top: 8px;
}

:where(
  .woocommerce a.button,
  .woocommerce button.button,
  .woocommerce input.button,
  .wc-block-cart__submit-button,
  .wc-block-components-checkout-place-order-button,
  .wc-block-components-totals-coupon__button,
  .wc-block-components-address-form__button,
  .wc-block-components-button:not(.wc-block-components-quantity-selector__button)
):hover {
  border-color: #8f9c66;
  background:
    radial-gradient(circle at 24% 18%, rgba(255, 253, 244, .46), transparent 34%),
    radial-gradient(circle at 76% 82%, rgba(232, 181, 75, .14), transparent 42%),
    #aab77f;
  box-shadow:
    0 7px 16px rgba(46, 59, 38, .16),
    0 2px 4px rgba(46, 59, 38, .10);
  color: #2e3b26;
  transform: translateY(-1px);
}

:where(
  .woocommerce a.button,
  .woocommerce button.button,
  .woocommerce input.button,
  .wc-block-cart__submit-button,
  .wc-block-components-checkout-place-order-button,
  .wc-block-components-totals-coupon__button,
  .wc-block-components-address-form__button,
  .wc-block-components-button:not(.wc-block-components-quantity-selector__button)
):focus-visible {
  outline: 2px solid #e8b54b;
  outline-offset: 3px;
}

/* Contrôles fonctionnels : jamais transformés en CTA. */
:where(
  .wc-block-components-quantity-selector__button,
  .jdc-cart-line-remove,
  .jdc-cart-quantity-button,
  .jdc-shop-basket-remove,
  .jdc-sort-pill,
  .wc-block-product-filter-chips__item
) {
  box-shadow: none;
  font-family: "DM Sans", sans-serif;
  transform: none;
}

/* Le bouton de fermeture des notices reste une icône compacte. */
.wc-block-components-notice-banner > .wc-block-components-button {
  width: 16px;
  min-width: 16px;
  height: 16px;
  min-height: 16px;
  margin: 6px 0 0 auto;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  color: currentColor;
  transform: none;
}

/* -------------------------------------------------------------------------
   Champs classiques, Blocks et Select2
   ------------------------------------------------------------------------- */

:where(
  .woocommerce form .form-row input.input-text,
  .woocommerce form .form-row textarea,
  .woocommerce form .form-row select,
  .wc-block-components-text-input input,
  .wc-block-components-textarea,
  .wc-block-components-combobox .wc-block-components-combobox-control input,
  .wc-block-components-select .wc-block-components-select__select,
  .woocommerce .select2-container .select2-selection
) {
  box-sizing: border-box;
  min-height: 42px;
  border: 1px solid rgba(46, 59, 38, .22);
  border-radius: 2px;
  background-color: #fffdf7;
  box-shadow: none;
  color: #2e3b26;
  font-family: "DM Sans", sans-serif;
}

:where(
  .woocommerce form .form-row input.input-text,
  .woocommerce form .form-row textarea,
  .woocommerce form .form-row select,
  .wc-block-components-text-input input,
  .wc-block-components-textarea,
  .wc-block-components-combobox .wc-block-components-combobox-control input,
  .wc-block-components-select .wc-block-components-select__select,
  .woocommerce .select2-container .select2-selection
):focus {
  border-color: #7fa05f;
  outline: 2px solid rgba(232, 181, 75, .28);
  outline-offset: 1px;
  box-shadow: none;
}

/* Radios, cases, quantités et upload gardent leur propre géométrie. */
:where(
  .woocommerce input[type="checkbox"],
  .woocommerce input[type="radio"],
  .wc-block-components-checkbox input,
  .wc-block-components-radio-control input,
  .quantity input,
  input[type="file"]
) {
  min-height: 0;
  box-shadow: none;
}

/* -------------------------------------------------------------------------
   Messages, paniers et surfaces transactionnelles
   ------------------------------------------------------------------------- */

:where(
  .woocommerce-message,
  .woocommerce-info,
  .woocommerce-error,
  .wc-block-components-notice-banner
) {
  border-radius: 3px;
  background-color: #fffdf4;
  box-shadow: none;
  color: #2e3b26;
  font-family: "DM Sans", sans-serif;
}

.woocommerce-message,
.wc-block-components-notice-banner.is-success {
  border-color: #7fa05f;
}

.woocommerce-info,
.wc-block-components-notice-banner.is-info {
  border-color: #6fa8cf;
}

.woocommerce-error,
.wc-block-components-notice-banner.is-error {
  border-color: #c94732;
}

:where(
  .wc-block-cart,
  .wc-block-checkout,
  .wc-block-components-sidebar,
  .woocommerce-account .woocommerce-MyAccount-content
) {
  color: #2e3b26;
  font-family: "DM Sans", sans-serif;
}

@media (prefers-reduced-motion: reduce) {
  :where(
    .woocommerce a.button,
    .woocommerce button.button,
    .woocommerce input.button,
    .wc-block-components-button
  ) {
    transition: none;
  }
}

/* -------------------------------------------------------------------------
   Panier rempli — contrat terminal après les styles des Blocks WooCommerce
   ------------------------------------------------------------------------- */

body.jdc-woocommerce-ui.woocommerce-cart main,
body.jdc-woocommerce-ui.woocommerce-cart .wp-site-blocks > main {
  box-sizing: border-box;
  width: min(1400px, calc(100% - 64px));
  max-width: 1400px;
  margin-inline: auto;
}

body.jdc-woocommerce-ui.woocommerce-cart .wp-block-post-title {
  margin: clamp(30px, 5vw, 62px) 0 clamp(22px, 3vw, 36px);
  color: #2e3b26;
  font: 500 clamp(2.35rem, 4.5vw, 3.5rem)/1 var(--jdc-font-display, "Cormorant Garamond", serif);
}

.jdc-cart-journey {
  margin: 0 0 24px;
  border: 1px solid #d5dec1;
  border-radius: 4px;
  background:
    radial-gradient(ellipse 24% 80% at 100% 0, rgba(169, 193, 133, .18), transparent 72%),
    #fffdf4;
}

.jdc-cart-journey ol {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  margin: 0;
  padding: 0;
  border-bottom: 1px solid #e1e5d5;
  list-style: none;
}

.jdc-cart-journey li {
  position: relative;
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 54px;
  padding: 12px 20px;
  color: #929887;
  font: 650 .7rem/1.25 "DM Sans", sans-serif;
}

.jdc-cart-journey li + li::before {
  content: "";
  position: absolute;
  top: 14px;
  bottom: 14px;
  left: 0;
  width: 1px;
  background: #e1e5d5;
}

.jdc-cart-journey li span {
  display: grid;
  place-items: center;
  width: 24px;
  height: 24px;
  border: 1px solid #cfd6bf;
  border-radius: 50%;
  background: #faf6ec;
  font-size: .64rem;
}

.jdc-cart-journey li.is-current {
  color: #2e3b26;
}

.jdc-cart-journey li.is-current span {
  border-color: #7fa05f;
  background: #e3eacf;
  color: #405334;
}

.jdc-cart-practical {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
  padding: 16px 20px;
}

.jdc-cart-practical p {
  position: relative;
  margin: 0;
  padding-left: 22px;
}

.jdc-cart-practical p::before {
  content: "✓";
  position: absolute;
  left: 0;
  color: #7fa05f;
  font-weight: 800;
}

.jdc-cart-practical strong,
.jdc-cart-practical small {
  display: block;
}

.jdc-cart-practical strong {
  color: #405334;
  font: 700 .68rem/1.3 "DM Sans", sans-serif;
}

.jdc-cart-practical small {
  margin-top: 3px;
  color: #8a8e7e;
  font: 400 .6rem/1.4 "DM Sans", sans-serif;
}

body.jdc-woocommerce-ui.woocommerce-cart .wc-block-cart,
body.jdc-woocommerce-ui.woocommerce-cart .wc-block-components-sidebar-layout.wc-block-cart {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) 340px !important;
  gap: 28px !important;
  align-items: start !important;
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
}

body.jdc-woocommerce-ui.woocommerce-cart .wc-block-cart__main,
body.jdc-woocommerce-ui.woocommerce-cart .wc-block-components-main.wc-block-cart__main {
  box-sizing: border-box;
  width: 100% !important;
  min-width: 0 !important;
  padding-right: 0 !important;
}

body.jdc-woocommerce-ui.woocommerce-cart .wc-block-cart__sidebar,
body.jdc-woocommerce-ui.woocommerce-cart .wc-block-components-sidebar.wc-block-cart__sidebar {
  box-sizing: border-box;
  width: 340px !important;
  min-width: 0 !important;
  max-width: 340px !important;
  margin: 0 !important;
  overflow: hidden;
}

body.jdc-woocommerce-ui.woocommerce-cart .wc-block-cart-items {
  width: 100% !important;
  table-layout: fixed;
  border-spacing: 0 10px !important;
}

body.jdc-woocommerce-ui.woocommerce-cart .wc-block-cart-items__header th {
  padding: 0 16px 10px !important;
}

body.jdc-woocommerce-ui.woocommerce-cart .wc-block-cart-items__header th:last-child {
  width: 132px;
  text-align: right;
}

body.jdc-woocommerce-ui.woocommerce-cart .wc-block-cart-items__row > td {
  padding: 16px !important;
}

body.jdc-woocommerce-ui.woocommerce-cart .wc-block-cart-item__image {
  width: 86px;
}

body.jdc-woocommerce-ui.woocommerce-cart .wc-block-cart-item__image img {
  width: 82px;
  height: 82px;
  border: 1px solid #e1e5d5;
  background: #faf6ec;
}

body.jdc-woocommerce-ui.woocommerce-cart .wc-block-cart-item__wrap {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  column-gap: 18px;
  min-height: 82px;
  padding-left: 16px;
}

body.jdc-woocommerce-ui.woocommerce-cart .wc-block-components-product-name,
body.jdc-woocommerce-ui.woocommerce-cart .wc-block-cart-item__prices,
body.jdc-woocommerce-ui.woocommerce-cart .wc-block-components-product-metadata {
  grid-column: 1;
}

body.jdc-woocommerce-ui.woocommerce-cart .wc-block-cart-item__quantity {
  grid-column: 1;
  margin-top: 8px;
}

body.jdc-woocommerce-ui.woocommerce-cart .wc-block-cart-item__total {
  width: 132px !important;
  overflow: visible;
  white-space: nowrap;
}

body.jdc-woocommerce-ui.woocommerce-cart .wc-block-cart-item__remove-link::before {
  content: "";
  width: 17px;
  height: 19px;
  background:
    linear-gradient(currentColor, currentColor) 4px 6px / 1.5px 9px no-repeat,
    linear-gradient(currentColor, currentColor) 8px 6px / 1.5px 9px no-repeat,
    linear-gradient(currentColor, currentColor) 12px 6px / 1.5px 9px no-repeat,
    linear-gradient(currentColor, currentColor) 2px 3px / 13px 1.5px no-repeat,
    linear-gradient(currentColor, currentColor) 5px 0 / 7px 1.5px no-repeat;
}

body.jdc-woocommerce-ui.woocommerce-cart .wc-block-cart__sidebar .wc-block-components-totals-item {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 18px;
}

body.jdc-woocommerce-ui.woocommerce-cart .wc-block-cart__sidebar .wc-block-components-totals-item__value {
  flex: 0 0 auto;
  max-width: 48%;
  overflow: visible;
  white-space: nowrap;
  text-align: right;
}

body.jdc-woocommerce-ui.woocommerce-cart .wc-block-cart__sidebar::after {
  content: "Retrait au domaine · paiement sur place";
  display: block;
  margin-top: 18px;
  padding-top: 16px;
  border-top: 1px solid rgba(46, 59, 38, .13);
  color: #858b78;
  font: 600 .62rem/1.4 "DM Sans", sans-serif;
  letter-spacing: .035em;
  text-align: center;
}

@media (max-width: 980px) {
  body.jdc-woocommerce-ui.woocommerce-cart main,
  body.jdc-woocommerce-ui.woocommerce-cart .wp-site-blocks > main {
    width: min(100% - 36px, 1400px);
  }

  body.jdc-woocommerce-ui.woocommerce-cart .wc-block-cart,
  body.jdc-woocommerce-ui.woocommerce-cart .wc-block-components-sidebar-layout.wc-block-cart {
    grid-template-columns: 1fr !important;
  }

  body.jdc-woocommerce-ui.woocommerce-cart .wc-block-cart__sidebar,
  body.jdc-woocommerce-ui.woocommerce-cart .wc-block-components-sidebar.wc-block-cart__sidebar {
    position: static;
    width: 100% !important;
    max-width: none !important;
  }
}

@media (max-width: 640px) {
  .jdc-cart-journey ol,
  .jdc-cart-practical {
    grid-template-columns: 1fr;
  }

  .jdc-cart-journey li + li::before {
    top: 0;
    right: 16px;
    bottom: auto;
    left: 16px;
    width: auto;
    height: 1px;
  }

  body.jdc-woocommerce-ui.woocommerce-cart .wc-block-cart-items__row > td {
    padding: 12px !important;
  }

  body.jdc-woocommerce-ui.woocommerce-cart .wc-block-cart-item__image {
    width: 64px;
  }

  body.jdc-woocommerce-ui.woocommerce-cart .wc-block-cart-item__image img {
    width: 60px;
    height: 60px;
  }

  body.jdc-woocommerce-ui.woocommerce-cart .wc-block-cart-item__wrap {
    display: block;
    min-height: 60px;
    padding-left: 10px;
  }
}

/* -------------------------------------------------------------------------
   Mon compte — espace client JDC
   ------------------------------------------------------------------------- */

.jdc-woocommerce-ui.woocommerce-account .jdc-page-hero {
  padding-block: clamp(30px, 3.5vw, 44px) !important;
}

.jdc-woocommerce-ui.woocommerce-account .jdc-page-hero .wp-block-post-title {
  max-width: 760px;
  margin-bottom: 0;
  font-family: var(--jdc-font-display, "Cormorant Garamond", serif);
  font-size: clamp(2.15rem, 3.8vw, 3rem) !important;
  font-weight: 500;
  line-height: .98;
}

.jdc-woocommerce-ui.woocommerce-account .jdc-page-content {
  width: min(1180px, calc(100% - 48px));
  margin-top: clamp(28px, 4vw, 48px) !important;
}

.jdc-woocommerce-ui.woocommerce-account .jdc-page-content > .wp-block-post-content,
.jdc-woocommerce-ui.woocommerce-account .jdc-page-content > .wp-block-post-content > .woocommerce {
  width: 100%;
  max-width: none;
}

.jdc-woocommerce-ui.woocommerce-account .woocommerce {
  display: grid;
  grid-template-columns: minmax(210px, 250px) minmax(0, 1fr);
  align-items: start;
  gap: 28px;
  color: #2e3b26;
}

/* Le conteneur de notices est un enfant direct du shortcode. Vide, il ne
   doit pas occuper la première cellule de la grille ; renseigné, il s'étend
   au-dessus des deux colonnes. */
.jdc-woocommerce-ui.woocommerce-account .woocommerce > .woocommerce-notices-wrapper {
  grid-column: 1 / -1 !important;
}

.jdc-woocommerce-ui.woocommerce-account .woocommerce > .woocommerce-notices-wrapper:not(:has(.woocommerce-message, .woocommerce-info, .woocommerce-error)) {
  display: none !important;
}

.jdc-woocommerce-ui.woocommerce-account .woocommerce-MyAccount-navigation,
.jdc-woocommerce-ui.woocommerce-account .woocommerce-MyAccount-content {
  float: none;
  width: auto;
}

.jdc-woocommerce-ui.woocommerce-account .woocommerce-MyAccount-navigation {
  grid-column: 1;
}

.jdc-woocommerce-ui.woocommerce-account .woocommerce-MyAccount-content {
  grid-column: 2;
}

.jdc-woocommerce-ui.woocommerce-account .woocommerce-MyAccount-navigation {
  position: sticky;
  top: 22px;
  overflow: hidden;
  padding: 12px;
  border: 1px solid #cbd9ae;
  border-radius: 4px;
  background:
    radial-gradient(circle at 10% 0, rgba(183, 192, 141, .22), transparent 34%),
    #fffdf4;
  box-shadow: 0 12px 30px rgba(46, 59, 38, .10);
}

.jdc-woocommerce-ui.woocommerce-account .woocommerce-MyAccount-navigation img.avatar {
  display: block;
  width: 72px;
  height: 72px;
  margin: 4px auto 8px;
  border: 4px solid #fffdf4;
  border-radius: 50%;
  box-shadow: 0 0 0 1px #a9c185;
  object-fit: cover;
}

.jdc-woocommerce-ui.woocommerce-account .woocommerce-MyAccount-navigation > p,
.jdc-woocommerce-ui.woocommerce-account .woocommerce-MyAccount-navigation .woocommerce-MyAccount-navigation-user {
  margin: 0 0 14px;
  color: #2e3b26;
  font: 700 .76rem/1.3 "DM Sans", sans-serif;
  text-align: center;
}

.jdc-woocommerce-ui.woocommerce-account .woocommerce-MyAccount-navigation ul {
  display: grid;
  gap: 5px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.jdc-woocommerce-ui.woocommerce-account .woocommerce-MyAccount-navigation li {
  margin: 0;
  padding: 0;
  border: 0;
}

.jdc-woocommerce-ui.woocommerce-account .woocommerce-MyAccount-navigation a {
  position: relative;
  display: flex;
  align-items: center;
  min-height: 46px;
  padding: 10px 12px 10px 43px;
  border: 1px solid transparent;
  border-radius: 3px;
  color: #4e5b43;
  font: 650 .78rem/1.25 "DM Sans", sans-serif;
  text-decoration: none;
  transition: background-color .16s ease, border-color .16s ease, color .16s ease;
}

.jdc-woocommerce-ui.woocommerce-account .woocommerce-MyAccount-navigation a::before {
  position: absolute;
  left: 13px;
  display: grid;
  place-items: center;
  width: 20px;
  height: 20px;
  color: #7f965f;
  font-size: 1rem;
  line-height: 1;
}

.jdc-woocommerce-ui.woocommerce-account .woocommerce-MyAccount-navigation-link--dashboard a::before { content: "⌂"; }
.jdc-woocommerce-ui.woocommerce-account .woocommerce-MyAccount-navigation-link--orders a::before { content: "▤"; }
.jdc-woocommerce-ui.woocommerce-account .woocommerce-MyAccount-navigation-link--edit-address a::before { content: "⌖"; }
.jdc-woocommerce-ui.woocommerce-account .woocommerce-MyAccount-navigation-link--edit-account a::before { content: "○"; }
.jdc-woocommerce-ui.woocommerce-account .woocommerce-MyAccount-navigation-link--customer-logout a::before { content: "↗"; }

.jdc-woocommerce-ui.woocommerce-account .woocommerce-MyAccount-navigation a:hover {
  border-color: #d9e2c2;
  background: #f4f5e9;
  color: #2e3b26;
}

.jdc-woocommerce-ui.woocommerce-account .woocommerce-MyAccount-navigation .is-active a {
  border-color: #a9c185;
  background: #e3eacf;
  color: #2e3b26;
  font-weight: 750;
}

.jdc-woocommerce-ui.woocommerce-account .woocommerce-MyAccount-navigation .is-active a::after {
  content: "";
  position: absolute;
  top: 8px;
  bottom: 8px;
  left: 0;
  width: 3px;
  background: #7fa05f;
}

.jdc-woocommerce-ui.woocommerce-account .woocommerce-MyAccount-navigation-link--customer-logout {
  margin-top: 8px;
  padding-top: 8px !important;
  border-top: 1px solid rgba(46, 59, 38, .12) !important;
}

.jdc-woocommerce-ui.woocommerce-account .woocommerce-MyAccount-content {
  position: relative;
  min-height: 420px;
  overflow: hidden;
  padding: clamp(26px, 4vw, 46px);
  border: 1px solid #d5dec1;
  border-radius: 4px;
  background:
    radial-gradient(ellipse 28% 42% at 100% 0, rgba(169, 193, 133, .25), transparent 70%),
    radial-gradient(ellipse 24% 30% at 86% 16%, rgba(232, 181, 75, .13), transparent 72%),
    #fffdf4;
  box-shadow: 0 14px 34px rgba(46, 59, 38, .10);
}

.jdc-woocommerce-ui.woocommerce-account .woocommerce-MyAccount-content::after {
  content: "";
  position: absolute;
  z-index: 0;
  top: -54px;
  right: -38px;
  width: 210px;
  height: 210px;
  border: 1px solid rgba(127, 160, 95, .18);
  border-radius: 50%;
  box-shadow: inset 0 0 0 22px rgba(255, 253, 244, .24);
  pointer-events: none;
}

.jdc-woocommerce-ui.woocommerce-account .woocommerce-MyAccount-content > * {
  position: relative;
  z-index: 1;
}

.jdc-woocommerce-ui.woocommerce-account .woocommerce-MyAccount-content > p {
  max-width: 780px;
  margin: 0 0 20px;
  color: #56624d;
  font: 400 .92rem/1.75 "DM Sans", sans-serif;
}

.jdc-woocommerce-ui.woocommerce-account .woocommerce-MyAccount-content > p:first-child {
  color: #2e3b26;
  font-size: 1.05rem;
}

.jdc-woocommerce-ui.woocommerce-account .woocommerce-MyAccount-content a:not(.button):not(.jdc-account-quick-link) {
  color: #405334;
  text-decoration-color: #a9c185;
  text-underline-offset: 3px;
}

.jdc-account-quick-links {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  margin-top: 32px;
}

.jdc-account-quick-link {
  display: grid;
  grid-template-columns: 38px minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
  min-height: 126px;
  padding: 18px;
  border: 1px solid #d5dec1;
  border-radius: 3px;
  background: rgba(250, 246, 236, .82);
  color: #2e3b26;
  text-decoration: none;
  transition: background-color .16s ease, border-color .16s ease, transform .16s ease;
}

.jdc-account-quick-link:hover {
  border-color: #a9c185;
  background: #f1f4e4;
  transform: translateY(-2px);
}

.jdc-account-quick-link-icon {
  display: grid;
  place-items: center;
  width: 38px;
  height: 38px;
  border: 1px solid #a9c185;
  border-radius: 50%;
  background: #e3eacf;
}

.jdc-account-quick-link-icon svg {
  width: 20px;
  height: 20px;
  fill: none;
  stroke: #405334;
  stroke-width: 1.6;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.jdc-account-quick-link strong,
.jdc-account-quick-link small {
  display: block;
}

.jdc-account-quick-link strong {
  font: 700 .78rem/1.25 "DM Sans", sans-serif;
}

.jdc-account-quick-link small {
  margin-top: 6px;
  color: #7c7563;
  font: 400 .66rem/1.45 "DM Sans", sans-serif;
}

.jdc-account-quick-link > i {
  color: #7f965f;
  font: normal 1.35rem/1 var(--jdc-font-display, serif);
}

.jdc-woocommerce-ui.woocommerce-account .woocommerce-MyAccount-content h2,
.jdc-woocommerce-ui.woocommerce-account .woocommerce-MyAccount-content h3,
.jdc-woocommerce-ui.woocommerce-account .woocommerce-MyAccount-content legend {
  color: #2e3b26;
  font-family: var(--jdc-font-display, "Cormorant Garamond", serif);
  font-weight: 500;
}

.jdc-woocommerce-ui.woocommerce-account .woocommerce-MyAccount-content table {
  border-color: #dde3cf;
  border-radius: 3px;
  background: rgba(255, 253, 244, .72);
}

.jdc-woocommerce-ui.woocommerce-account .woocommerce-MyAccount-content table th {
  background: #eef2df;
  color: #667256;
  font: 700 .64rem/1.3 "DM Sans", sans-serif;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.jdc-woocommerce-ui.woocommerce-account .woocommerce-MyAccount-content table td {
  font: 500 .76rem/1.45 "DM Sans", sans-serif;
}

.jdc-woocommerce-ui.woocommerce-account .woocommerce-Address {
  box-sizing: border-box;
  padding: 22px;
  border: 1px solid #d5dec1;
  border-radius: 3px;
  background: #faf6ec;
}

.jdc-woocommerce-ui.woocommerce-account .woocommerce-MyAccount-content fieldset {
  margin-top: 24px;
  padding: 22px;
  border: 1px solid #d5dec1;
  border-radius: 3px;
}

@media (max-width: 900px) {
  .jdc-woocommerce-ui.woocommerce-account .woocommerce {
    grid-template-columns: 1fr;
  }

  .jdc-woocommerce-ui.woocommerce-account .woocommerce-MyAccount-navigation {
    position: static;
    grid-column: 1;
  }

  .jdc-woocommerce-ui.woocommerce-account .woocommerce-MyAccount-content {
    grid-column: 1;
  }

  .jdc-woocommerce-ui.woocommerce-account .woocommerce-MyAccount-navigation ul {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .jdc-woocommerce-ui.woocommerce-account .woocommerce-MyAccount-navigation-link--customer-logout {
    margin-top: 0;
    padding-top: 0 !important;
    border-top: 0 !important;
  }

  .jdc-account-quick-links {
    grid-template-columns: 1fr;
  }

  .jdc-account-quick-link {
    min-height: 92px;
  }
}

@media (max-width: 560px) {
  .jdc-woocommerce-ui.woocommerce-account .jdc-page-content {
    width: min(100% - 28px, 1180px);
  }

  .jdc-woocommerce-ui.woocommerce-account .woocommerce-MyAccount-navigation ul {
    grid-template-columns: 1fr;
  }

  .jdc-woocommerce-ui.woocommerce-account .woocommerce-MyAccount-content {
    min-height: 0;
    padding: 22px 18px;
  }
}

/* Panier classique WooCommerce — structure stable et entièrement maîtrisée. */
body.jdc-woocommerce-ui.woocommerce-cart .woocommerce {
  clear: both;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(320px, 380px);
  gap: clamp(28px, 4vw, 56px);
  row-gap: 24px;
  align-items: start;
  width: min(1200px, calc(100% - 48px));
  max-width: 1200px;
  margin-inline: auto;
  margin-bottom: clamp(72px, 10vw, 136px);
}

body.jdc-woocommerce-ui.woocommerce-cart .woocommerce-cart-form,
body.jdc-woocommerce-ui.woocommerce-cart .cart-collaterals {
  float: none !important;
  min-width: 0;
  width: auto !important;
  margin: 0 !important;
}

body.jdc-woocommerce-ui.woocommerce-cart .woocommerce > .jdc-cart-journey {
  grid-column: 1 / -1;
  width: 100%;
  margin: 0;
}

body.jdc-woocommerce-ui.woocommerce-cart .woocommerce-cart-form {
  grid-column: 1;
}

body.jdc-woocommerce-ui.woocommerce-cart .cart-collaterals {
  grid-column: 2;
}

body.jdc-woocommerce-ui.woocommerce-cart table.shop_table {
  width: 100%;
  border: 0;
  border-collapse: separate;
  border-spacing: 0 10px;
}

body.jdc-woocommerce-ui.woocommerce-cart table.shop_table thead th {
  padding: 0 12px 8px;
  border: 0;
  color: #898977;
  font: 700 .68rem/1.2 "DM Sans", sans-serif;
  letter-spacing: .12em;
  text-transform: uppercase;
}

body.jdc-woocommerce-ui.woocommerce-cart table.shop_table tbody tr.cart_item td {
  padding: 14px 12px;
  border-top: 1px solid rgba(46, 59, 38, .14);
  border-bottom: 1px solid rgba(46, 59, 38, .14);
  background: var(--card-cream-alt, #fffdf4);
  box-shadow: 0 3px 12px rgba(46, 59, 38, .045);
  vertical-align: middle;
}

body.jdc-woocommerce-ui.woocommerce-cart table.shop_table tbody tr.cart_item td:first-child {
  border-left: 1px solid rgba(46, 59, 38, .14);
  border-radius: 4px 0 0 4px;
}

body.jdc-woocommerce-ui.woocommerce-cart table.shop_table tbody tr.cart_item td:last-child {
  border-right: 1px solid rgba(46, 59, 38, .14);
  border-radius: 0 4px 4px 0;
}

body.jdc-woocommerce-ui.woocommerce-cart .product-thumbnail {
  width: 104px;
  padding-left: 14px !important;
}

body.jdc-woocommerce-ui.woocommerce-cart table.shop_table .product-remove {
  display: none !important;
}

body.jdc-woocommerce-ui.woocommerce-cart .product-thumbnail img {
  display: block;
  width: 84px;
  height: 84px;
  max-width: none;
  object-fit: cover;
  border: 1px solid rgba(46, 59, 38, .12);
  background: #f5f0e4;
}

body.jdc-woocommerce-ui.woocommerce-cart .product-name a {
  color: #2e3b26;
  font: 500 clamp(1.08rem, 1.4vw, 1.3rem)/1.18 "Playfair Display", serif;
  text-decoration: none;
}

body.jdc-woocommerce-ui.woocommerce-cart .product-price,
body.jdc-woocommerce-ui.woocommerce-cart .product-subtotal {
  color: #405334;
  font-size: .9rem;
  font-weight: 500;
  white-space: nowrap;
}

body.jdc-woocommerce-ui.woocommerce-cart .product-price {
  margin-top: 5px;
  color: var(--sand-700, #7c7563);
  font-size: .82rem;
  font-weight: 500;
}

body.jdc-woocommerce-ui.woocommerce-cart .product-subtotal {
  color: var(--green-900, #2e3b26);
  font-weight: 700;
}

body.jdc-woocommerce-ui.woocommerce-cart .product-quantity .quantity {
  display: none;
}

body.jdc-woocommerce-ui.woocommerce-cart .jdc-cart-quantity {
  display: inline-flex;
  align-items: center;
  min-height: 34px;
  border: 1px solid rgba(46, 59, 38, .22);
  background: #fffdf4;
}

body.jdc-woocommerce-ui.woocommerce-cart .jdc-cart-quantity__button {
  display: grid;
  place-items: center;
  width: 32px;
  height: 34px;
  padding: 0;
  border: 0;
  background: transparent;
  color: #557046;
  font: 400 1rem/1 "DM Sans", sans-serif;
}

body.jdc-woocommerce-ui.woocommerce-cart .jdc-cart-quantity__button:hover {
  background: #edf2dc;
}

body.jdc-woocommerce-ui.woocommerce-cart .jdc-cart-quantity__remove {
  display: grid;
  place-items: center;
  width: 28px;
  height: 32px;
  margin-left: 8px;
  color: #536649;
  font-size: 0;
  text-decoration: none;
}

body.jdc-woocommerce-ui.woocommerce-cart .jdc-cart-quantity__remove::before {
  content: "";
  width: 15px;
  height: 18px;
  background:
    linear-gradient(currentColor, currentColor) 3px 6px / 1.5px 9px no-repeat,
    linear-gradient(currentColor, currentColor) 7px 6px / 1.5px 9px no-repeat,
    linear-gradient(currentColor, currentColor) 11px 6px / 1.5px 9px no-repeat,
    linear-gradient(currentColor, currentColor) 1px 3px / 13px 1.5px no-repeat,
    linear-gradient(currentColor, currentColor) 4px 0 / 7px 1.5px no-repeat;
}

body.jdc-woocommerce-ui.woocommerce-cart .jdc-cart-quantity__remove:hover {
  color: #a64a39;
}

body.jdc-woocommerce-ui.woocommerce-cart .jdc-cart-quantity__input {
  width: 34px;
  height: 32px;
  padding: 0;
  border: 0;
  background: transparent;
  color: #2e3b26;
  font: 500 .85rem/1 "DM Sans", sans-serif;
  text-align: center;
}

body.jdc-woocommerce-ui.woocommerce-cart .product-quantity input.qty {
  width: 54px;
  height: 38px;
  border: 0;
  background: transparent;
  color: #2e3b26;
  text-align: center;
}

body.jdc-woocommerce-ui.woocommerce-cart .product-remove a {
  color: #536649;
  font-size: 1.4rem;
  text-decoration: none;
}

body.jdc-woocommerce-ui.woocommerce-cart .cart-collaterals .cart_totals {
  position: sticky;
  top: 96px;
  box-sizing: border-box;
  width: 100%;
  padding: 28px;
  border: 1px solid #9fba78;
  border-radius: 4px;
  background: var(--card-cream-alt, #fffdf4);
  box-shadow: 0 15px 34px rgba(46, 59, 38, .10);
}

body.jdc-woocommerce-ui.woocommerce-cart .cart_totals h2 {
  margin: 0 0 20px;
  color: #6f9252;
  font: 700 .72rem/1.2 "DM Sans", sans-serif;
  letter-spacing: .16em;
  text-transform: uppercase;
}

body.jdc-woocommerce-ui.woocommerce-cart .cart_totals table th,
body.jdc-woocommerce-ui.woocommerce-cart .cart_totals table td {
  padding-block: 12px;
  border-bottom: 1px solid var(--border-subtle, rgba(46, 59, 38, .10));
  font-size: .88rem;
}

body.jdc-woocommerce-ui.woocommerce-cart .cart_totals table tr:last-child th,
body.jdc-woocommerce-ui.woocommerce-cart .cart_totals table tr:last-child td {
  border-bottom: 0;
}

/* L’expédition n’est pas proposée dans le parcours JDC actuel. */
body.jdc-woocommerce-ui.woocommerce-cart .cart_totals .woocommerce-shipping-totals,
body.jdc-woocommerce-ui.woocommerce-cart .cart_totals .shipping,
body.jdc-woocommerce-ui.woocommerce-cart .cart_totals .shipping-calculator-button {
  display: none !important;
}

body.jdc-woocommerce-ui.woocommerce-cart .cart_totals table {
  border-spacing: 0;
}

body.jdc-woocommerce-ui.woocommerce-cart .wc-proceed-to-checkout a.checkout-button {
  display: block;
  width: 100%;
  box-sizing: border-box;
  margin: 20px 0 0;
  padding: 14px 18px;
  border: 1px solid #9ead73;
  border-radius: 3px;
  background: #b7c08d;
  color: #2e3b26;
  text-align: center;
  box-shadow: 0 5px 12px rgba(46, 59, 38, .13);
}

@media (max-width: 900px) {
  body.jdc-woocommerce-ui.woocommerce-cart .woocommerce {
    width: min(100% - 28px, 720px);
  }

  body.jdc-woocommerce-ui.woocommerce-cart .woocommerce {
    grid-template-columns: 1fr;
    margin-bottom: 72px;
  }

  body.jdc-woocommerce-ui.woocommerce-cart .woocommerce-cart-form,
  body.jdc-woocommerce-ui.woocommerce-cart .cart-collaterals {
    grid-column: 1;
  }

  body.jdc-woocommerce-ui.woocommerce-cart .woocommerce > .jdc-cart-journey {
    grid-column: 1;
  }

  body.jdc-woocommerce-ui.woocommerce-cart .cart-collaterals .cart_totals {
    position: static;
  }
}

@media (max-width: 560px) {
  body.jdc-woocommerce-ui.woocommerce-cart table.shop_table thead {
    display: none;
  }

  body.jdc-woocommerce-ui.woocommerce-cart main,
  body.jdc-woocommerce-ui.woocommerce-cart .wp-site-blocks > main {
    padding-bottom: 24px !important;
  }

  body.jdc-woocommerce-ui.woocommerce-cart .woocommerce {
    display: block;
    width: calc(100% - 28px);
    margin-bottom: 44px;
  }

  body.jdc-woocommerce-ui.woocommerce-cart .woocommerce-cart-form {
    width: 100%;
  }

  body.jdc-woocommerce-ui.woocommerce-cart table.shop_table tbody tr.cart_item {
    display: grid;
    grid-template-columns: 76px minmax(0, 1fr) auto;
    grid-template-areas:
      "thumb name subtotal"
      "thumb price subtotal"
      "thumb quantity subtotal";
    gap: 0 10px;
    align-items: center;
    margin-bottom: 8px;
    border: 1px solid rgba(46, 59, 38, .14);
    border-radius: 4px;
    background: var(--card-cream-alt, #fffdf4);
  }

  body.jdc-woocommerce-ui.woocommerce-cart table.shop_table tbody tr.cart_item td {
    border: 0;
    padding: 6px 0;
    background: transparent;
    box-shadow: none;
  }

  body.jdc-woocommerce-ui.woocommerce-cart .product-thumbnail {
    grid-area: thumb;
    width: auto;
    padding: 10px 0 10px 10px !important;
  }

  body.jdc-woocommerce-ui.woocommerce-cart .product-thumbnail img {
    width: 76px;
    height: 76px;
  }

  body.jdc-woocommerce-ui.woocommerce-cart .product-name {
    grid-area: name;
    padding-top: 12px !important;
  }

  body.jdc-woocommerce-ui.woocommerce-cart .product-price {
    grid-area: price;
  }

  body.jdc-woocommerce-ui.woocommerce-cart .product-quantity {
    grid-area: quantity;
    padding-bottom: 12px !important;
  }

  body.jdc-woocommerce-ui.woocommerce-cart .product-subtotal {
    grid-area: subtotal;
    align-self: center;
    padding-right: 10px !important;
    font-size: .86rem;
  }

  body.jdc-woocommerce-ui.woocommerce-cart .product-remove {
    display: none !important;
  }
}

/* Mobile panier — neutralise le responsive natif WooCommerce qui injecte
   des libellés pseudo-éléments et transforme chaque ligne en tableau vertical. */
@media (max-width: 560px) {
  body.jdc-woocommerce-ui.woocommerce-cart table.shop_table_responsive,
  body.jdc-woocommerce-ui.woocommerce-cart table.shop_table_responsive tbody,
  body.jdc-woocommerce-ui.woocommerce-cart table.shop_table_responsive tr.cart_item {
    display: block !important;
    width: 100% !important;
  }

  body.jdc-woocommerce-ui.woocommerce-cart table.shop_table_responsive tr.cart_item {
    display: grid !important;
    grid-template-columns: 74px minmax(0, 1fr) auto !important;
    grid-template-areas:
      "thumb name subtotal"
      "thumb price subtotal"
      "thumb quantity subtotal" !important;
    align-items: center !important;
    gap: 0 12px !important;
  }

  body.jdc-woocommerce-ui.woocommerce-cart table.shop_table_responsive tr.cart_item > td,
  body.jdc-woocommerce-ui.woocommerce-cart table.shop_table_responsive tr.cart_item > td::before {
    display: block !important;
    width: auto !important;
    float: none !important;
    clear: none !important;
    content: none !important;
  }

  body.jdc-woocommerce-ui.woocommerce-cart table.shop_table_responsive tr.cart_item > td.product-thumbnail {
    display: block !important;
    grid-area: thumb !important;
    padding: 10px 0 10px 10px !important;
  }

  body.jdc-woocommerce-ui.woocommerce-cart table.shop_table_responsive tr.cart_item > td.product-thumbnail img {
    display: block !important;
    width: 64px !important;
    height: 64px !important;
    max-width: 64px !important;
    object-fit: cover !important;
  }

  body.jdc-woocommerce-ui.woocommerce-cart table.shop_table_responsive tr.cart_item > td.product-name {
    grid-area: name !important;
    padding: 10px 0 2px !important;
    text-align: left !important;
  }

  body.jdc-woocommerce-ui.woocommerce-cart table.shop_table_responsive tr.cart_item > td.product-price {
    grid-area: price !important;
    padding: 0 !important;
    text-align: left !important;
  }

  body.jdc-woocommerce-ui.woocommerce-cart table.shop_table_responsive tr.cart_item > td.product-quantity {
    grid-area: quantity !important;
    padding: 4px 0 10px !important;
    text-align: left !important;
  }

  body.jdc-woocommerce-ui.woocommerce-cart table.shop_table_responsive tr.cart_item > td.product-subtotal {
    grid-area: subtotal !important;
    align-self: center !important;
    padding: 0 10px 0 0 !important;
    text-align: right !important;
  }

  body.jdc-woocommerce-ui.woocommerce-cart .product-name a {
    font-size: 1.05rem;
  }

  body.jdc-woocommerce-ui.woocommerce-cart .cart-coupon,
  body.jdc-woocommerce-ui.woocommerce-cart .coupon {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
  }

  body.jdc-woocommerce-ui.woocommerce-cart .coupon input,
  body.jdc-woocommerce-ui.woocommerce-cart .coupon button {
    min-height: 42px;
  }
}

/* Connexion : même surface que l'espace client, sans grille latérale. */
.jdc-woocommerce-ui.woocommerce-account:not(.logged-in) .woocommerce {
  display: block;
  width: min(520px, 100%);
  margin-inline: auto;
}

.jdc-woocommerce-ui.woocommerce-account:not(.logged-in) .woocommerce-form-login {
  margin: 0;
  padding: clamp(24px, 5vw, 42px);
  border: 1px solid #d5dec1;
  border-radius: 4px;
  background:
    radial-gradient(ellipse 34% 42% at 100% 0, rgba(169, 193, 133, .23), transparent 72%),
    #fffdf4;
  box-shadow: 0 14px 34px rgba(46, 59, 38, .10);
}

.jdc-woocommerce-ui.woocommerce-account:not(.logged-in) .woocommerce-form-login > p:first-child {
  margin-top: 0;
  color: #56624d;
  font: 400 .84rem/1.65 "DM Sans", sans-serif;
}

.jdc-woocommerce-ui.woocommerce-account:not(.logged-in) .woocommerce-form-login .form-row {
  margin-bottom: 16px;
}

.jdc-woocommerce-ui.woocommerce-account:not(.logged-in) .woocommerce-form-login label {
  color: #667256;
  font: 700 .66rem/1.3 "DM Sans", sans-serif;
  letter-spacing: .07em;
  text-transform: uppercase;
}

.jdc-woocommerce-ui.woocommerce-account:not(.logged-in) .woocommerce-form-login__rememberme {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 42px;
  margin-right: 12px;
  text-transform: none;
}

.jdc-woocommerce-ui.woocommerce-account:not(.logged-in) .woocommerce-LostPassword {
  margin-bottom: 0;
  font: 500 .72rem/1.4 "DM Sans", sans-serif;
}

/* Chargements WooCommerce : palette sauge, jamais violette ou bleue. */
.jdc-woocommerce-ui .wc-block-components-spinner,
.jdc-woocommerce-ui .wc-block-components-spinner::after {
  color: #7fa05f;
}

.jdc-woocommerce-ui .wc-block-components-spinner::after {
  border-color: #b7c994 transparent #7fa05f transparent;
}

/* -------------------------------------------------------------------------
   Page panier — état vide et panier rempli
   ------------------------------------------------------------------------- */

.jdc-woocommerce-ui.woocommerce-cart main,
.jdc-woocommerce-ui.woocommerce-cart .wp-site-blocks > main {
  width: min(1180px, calc(100% - 48px));
  margin-inline: auto;
}

.jdc-woocommerce-ui.woocommerce-cart .wp-block-post-title {
  margin-bottom: clamp(24px, 4vw, 46px);
}

.jdc-empty-cart {
  box-sizing: border-box;
  width: min(760px, 100%);
  margin: 0 auto clamp(72px, 9vw, 120px);
  padding: clamp(36px, 6vw, 64px) clamp(24px, 7vw, 76px) 34px;
  border: 1px solid rgba(126, 160, 95, .48);
  border-radius: 4px;
  background: #fffdf4;
  box-shadow: 0 18px 42px rgba(46, 59, 38, .09);
  color: #2e3b26;
  text-align: center;
}

.jdc-empty-cart__medallion {
  display: grid;
  place-items: center;
  width: 76px;
  height: 76px;
  margin: -76px auto 20px;
  border: 7px solid #faf6eb;
  border-radius: 50%;
  background: #b7c994;
  box-shadow: 0 0 0 1px #8eaa68;
  color: #2e3b26;
}

.jdc-empty-cart__medallion svg {
  width: 34px;
  height: 34px;
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.7;
}

.jdc-empty-cart__kicker {
  margin: 0 0 13px;
  color: #6f9252;
  font: 700 .72rem/1.2 "DM Sans", sans-serif;
  letter-spacing: .18em;
  text-transform: uppercase;
}

.jdc-empty-cart h2 {
  max-width: 590px;
  margin: 0 auto 16px;
  color: #2e3b26;
  font: 400 clamp(2rem, 4.2vw, 3rem)/1.02 "Playfair Display", serif;
}

.jdc-empty-cart__intro {
  max-width: 560px;
  margin: 0 auto 26px;
  color: #6f705f;
  font: 400 .98rem/1.65 "DM Sans", sans-serif;
}

.jdc-empty-cart__action {
  margin: 0 auto;
}

.jdc-empty-cart__action .wp-block-button__link {
  min-width: 220px;
}

.jdc-empty-cart__reassurance {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 8px 24px;
  margin: 34px 0 0;
  padding: 22px 0 0;
  border-top: 1px solid rgba(46, 59, 38, .12);
  color: #7d836f;
  font: 600 .72rem/1.4 "DM Sans", sans-serif;
  list-style: none;
}

.jdc-empty-cart__reassurance li::before {
  content: "✓";
  margin-right: 7px;
  color: #7fa05f;
  font-weight: 800;
}

/* Structure remplie : liste lisible à gauche, synthèse stable à droite. */
.jdc-woocommerce-ui .wc-block-cart {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) minmax(320px, 380px);
  gap: clamp(24px, 3vw, 42px);
  align-items: start;
}

.jdc-woocommerce-ui .wc-block-cart__main,
.jdc-woocommerce-ui .wc-block-cart__sidebar {
  width: auto !important;
  max-width: none !important;
  margin: 0 !important;
}

.jdc-woocommerce-ui .wc-block-cart-items {
  border-collapse: separate !important;
  border-spacing: 0 8px !important;
}

.jdc-woocommerce-ui .wc-block-cart-items__header {
  color: #898977;
  font: 700 .68rem/1.2 "DM Sans", sans-serif;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.jdc-woocommerce-ui .wc-block-cart-items__row > td {
  padding-block: 12px !important;
  border-top: 1px solid rgba(46, 59, 38, .14) !important;
  border-bottom: 1px solid rgba(46, 59, 38, .14) !important;
  background: #fffdf7;
  vertical-align: middle !important;
}

.jdc-woocommerce-ui .wc-block-cart-items__row > td:first-child {
  border-left: 1px solid rgba(46, 59, 38, .14) !important;
  border-radius: 3px 0 0 3px;
}

.jdc-woocommerce-ui .wc-block-cart-items__row > td:last-child {
  border-right: 1px solid rgba(46, 59, 38, .14) !important;
  border-radius: 0 3px 3px 0;
}

.jdc-woocommerce-ui .wc-block-cart-item__image img {
  display: block;
  width: 72px;
  height: 72px;
  aspect-ratio: 1;
  object-fit: contain;
  background: #f5f0e4;
}

.jdc-woocommerce-ui .wc-block-cart-item__product {
  min-height: 72px;
}

.jdc-woocommerce-ui .wc-block-cart-item__wrap {
  padding-left: 14px;
}

.jdc-woocommerce-ui .wc-block-components-product-name {
  color: #2e3b26;
  font-family: "Playfair Display", serif;
  font-size: clamp(.98rem, 1.45vw, 1.14rem);
  line-height: 1.2;
  text-decoration: none;
}

.jdc-woocommerce-ui .wc-block-cart-item__prices,
.jdc-woocommerce-ui .wc-block-components-product-price {
  margin-top: 3px;
  font-size: .79rem;
  line-height: 1.25;
}

/* Le résumé long de la fiche produit duplique le titre dans le panier et
   désaligne les contrôles. Les attributs métier éventuels restent visibles. */
.jdc-woocommerce-ui .wc-block-components-product-metadata__description {
  display: none;
}

.jdc-woocommerce-ui .wc-block-components-product-metadata {
  margin: 3px 0 0;
  color: #899079;
  font-size: .7rem;
  line-height: 1.3;
}

.jdc-woocommerce-ui .wc-block-cart-item__quantity {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 8px;
}

.jdc-woocommerce-ui .wc-block-cart-item__remove-link {
  display: inline-grid;
  place-items: center;
  width: 30px;
  min-width: 30px;
  height: 30px;
  min-height: 30px;
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
  color: #536649;
  font: 0/1 "DM Sans", sans-serif;
  text-decoration: none;
}

.jdc-woocommerce-ui .wc-block-cart-item__remove-link::before {
  content: "×";
  font: 500 1.25rem/1 "DM Sans", sans-serif;
}

.jdc-woocommerce-ui .wc-block-cart-item__remove-link:hover {
  background: #f1e9dc;
  color: #a64a39;
}

.jdc-woocommerce-ui .wc-block-components-quantity-selector {
  width: 138px;
  height: 38px;
  border: 1px solid rgba(46, 59, 38, .22);
  border-radius: 2px;
  background: #fffdf4;
  box-shadow: none;
}

.jdc-woocommerce-ui .wc-block-components-quantity-selector__button {
  width: 36px;
  min-width: 36px;
  color: #557046;
  font-size: 1.15rem;
}

.jdc-woocommerce-ui .wc-block-cart-item__total {
  width: 118px;
  padding-inline: 14px !important;
  text-align: right;
}

.jdc-woocommerce-ui .wc-block-cart-item__total-price-and-sale-badge-wrapper {
  align-items: center;
  min-height: 38px;
}

.jdc-woocommerce-ui .wc-block-components-quantity-selector__button:hover {
  background: #edf2dc;
  color: #2e3b26;
}

.jdc-woocommerce-ui .wc-block-cart__sidebar {
  position: sticky;
  top: 96px;
  box-sizing: border-box;
  padding: clamp(22px, 3vw, 32px) !important;
  border: 1px solid #9fba78;
  border-radius: 4px;
  background: #fffdf4;
  box-shadow: 0 15px 34px rgba(46, 59, 38, .10);
}

.jdc-woocommerce-ui .wc-block-cart__sidebar .wc-block-cart__totals-title {
  padding: 0 0 18px;
  color: #6f9252;
  font: 700 .72rem/1.2 "DM Sans", sans-serif;
  letter-spacing: .16em;
  text-transform: uppercase;
}

.jdc-woocommerce-ui .wc-block-cart__sidebar .wc-block-components-totals-wrapper {
  padding: 18px 0;
  border-color: rgba(46, 59, 38, .13);
}

.jdc-woocommerce-ui .wc-block-components-totals-item__value {
  color: #2e3b26;
  font-weight: 700;
}

.jdc-woocommerce-ui .wc-block-cart__submit-button {
  width: 100%;
  min-height: 48px;
  border: 1px solid #9ead73;
  border-radius: 3px;
  background: #b7c08d;
  background-image: none;
  box-shadow: 0 5px 12px rgba(46, 59, 38, .13);
  color: #2e3b26;
}

.jdc-woocommerce-ui .wc-block-cart__submit-button:hover {
  border-color: #8f9c66;
  background: #aebc83;
  box-shadow: 0 7px 16px rgba(46, 59, 38, .15);
}

@media (max-width: 900px) {
  .jdc-woocommerce-ui .wc-block-cart {
    grid-template-columns: minmax(0, 1fr);
  }

  .jdc-woocommerce-ui .wc-block-cart__sidebar {
    position: static;
  }
}

@media (max-width: 780px) {
  .jdc-woocommerce-ui.woocommerce-cart main,
  .jdc-woocommerce-ui.woocommerce-cart .wp-site-blocks > main {
    width: min(100% - 28px, 1180px);
  }

  .jdc-empty-cart {
    margin-top: 28px;
    padding-inline: 22px;
  }

  .jdc-empty-cart__reassurance {
    display: grid;
  }

}

/* -------------------------------------------------------------------------
   Carte catalogue — état après ajout
   Variables d'essai ajustables sans toucher à la structure du contrôle.
   ------------------------------------------------------------------------- */

:root {
  --jdc-card-qty-surface: #fffdf4;
  --jdc-card-qty-ink: #2e3b26;
  --jdc-card-qty-step: #b7c08d;
  --jdc-card-qty-step-hover: #aab77f;
  --jdc-card-qty-step-ink: #405633;
  --jdc-card-qty-height: 42px;
  --jdc-card-qty-step-width: 52px;
  --jdc-card-action-surface: #fffdf4;
  --jdc-card-action-ink: #405633;
  --jdc-card-action-hover: #f5f1df;
}

.jdc-woocommerce-ui .jdc-shop-grid :is(.added_to_cart.wc-forward, a.added_to_cart) {
  display: none !important;
}

.jdc-woocommerce-ui .jdc-shop-card-add {
  box-sizing: border-box;
  width: 100%;
  height: var(--jdc-card-qty-height);
  min-height: var(--jdc-card-qty-height);
  max-height: var(--jdc-card-qty-height);
  margin: auto 0 0 !important;
  padding: 0;
  overflow: hidden;
  flex: 0 0 var(--jdc-card-qty-height);
}

/*
 * WooCommerce Blocks déclare le bouton avec width:auto via
 * `.wp-block-button.wc-block-components-product-button .wp-block-button__link`.
 * On cible donc la structure réelle avec une spécificité supérieure afin que
 * l'état initial occupe exactement la même empreinte que le sélecteur quantité.
 */
.jdc-woocommerce-ui .wp-block-button.wc-block-components-product-button.jdc-shop-card-add {
  align-items: stretch;
  justify-content: flex-end;
  align-self: stretch;
  width: 100%;
  height: var(--jdc-card-qty-height);
  min-height: var(--jdc-card-qty-height);
  max-height: var(--jdc-card-qty-height);
  margin: auto 0 0 !important;
  padding: 0;
  row-gap: 0;
}

.jdc-woocommerce-ui .wp-block-button.wc-block-components-product-button.jdc-shop-card-add > .wp-block-button__link,
.jdc-woocommerce-ui .wp-block-button.wc-block-components-product-button.jdc-shop-card-add > .add_to_cart_button,
.jdc-woocommerce-ui .wp-block-button.wc-block-components-product-button.jdc-shop-card-add > .wc-block-components-product-button__button {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  align-self: stretch;
  flex: 0 0 var(--jdc-card-qty-height);
  box-sizing: border-box;
  width: 100% !important;
  max-width: none !important;
  height: var(--jdc-card-qty-height) !important;
  min-height: var(--jdc-card-qty-height) !important;
  margin: 0 !important;
  padding: 0 14px !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: var(--jdc-card-action-surface) !important;
  box-shadow: none !important;
  color: var(--jdc-card-action-ink) !important;
  font: 700 .75rem/1.2 "DM Sans", sans-serif !important;
  position: relative;
  transform: none !important;
  transition: background-color .14s ease, color .14s ease !important;
}

/*
 * WooCommerce Blocks 10.9.x conserve dans le bouton un libellé interactif :
 * `span[data-wp-text="state.addToCartText"]`. Il doit rester dans le DOM afin
 * que l'Interactivity API reçoive ses événements d'animation, mais il ne doit
 * jamais se superposer à l'icône / au libellé visuel que JDC possède ci-dessous.
 * On le sort donc du flux et on le rend transparent sans `display:none`.
 */
.jdc-woocommerce-ui .wp-block-button.wc-block-components-product-button.jdc-shop-card-add
  > :is(.wp-block-button__link, .add_to_cart_button, .wc-block-components-product-button__button)
  > span[data-wp-text="state.addToCartText"] {
  position: absolute !important;
  inset: 0 !important;
  color: transparent !important;
  opacity: 0 !important;
  pointer-events: none !important;
}

/*
 * Fallback résistant à la réhydratation React de Woo Blocks. Si WooCommerce
 * remplace le contenu injecté par JS, le bouton brut conserve néanmoins le
 * pictogramme et son libellé de survol grâce à la couche CSS.
 */
.jdc-woocommerce-ui .jdc-shop-card-add :is(
  .wp-block-button__link,
  .add_to_cart_button,
  .wc-block-components-product-button__button
):not(:has(.jdc-card-add-icon)) {
  overflow: hidden;
  background-color: var(--jdc-card-action-surface) !important;
  background-image: none !important;
  color: transparent !important;
  text-shadow: none !important;
}

.jdc-woocommerce-ui .jdc-shop-card-add :is(
  .wp-block-button__link,
  .add_to_cart_button,
  .wc-block-components-product-button__button
):not(:has(.jdc-card-add-icon))::before,
.jdc-woocommerce-ui .jdc-shop-card-add :is(
  .wp-block-button__link,
  .add_to_cart_button,
  .wc-block-components-product-button__button
):not(:has(.jdc-card-add-icon))::after {
  position: absolute;
  inset: 0;
  display: block;
  pointer-events: none;
  transition: opacity .18s ease, transform .18s ease;
}

.jdc-woocommerce-ui .jdc-shop-card-add :is(
  .wp-block-button__link,
  .add_to_cart_button,
  .wc-block-components-product-button__button
):not(:has(.jdc-card-add-icon))::before {
  content: "";
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23405633' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4.5 9.25h15l-1.35 9.25a2 2 0 0 1-1.98 1.72H7.83a2 2 0 0 1-1.98-1.72L4.5 9.25Z'/%3E%3Cpath d='m8.2 10 3.8-6 3.8 6M8.4 13v3.7M12 13v3.7M15.6 13v3.7'/%3E%3C/svg%3E") center / 23px 23px no-repeat;
  opacity: 1;
  transform: translateY(0);
}

.jdc-woocommerce-ui .jdc-shop-card-add :is(
  .wp-block-button__link,
  .add_to_cart_button,
  .wc-block-components-product-button__button
):not(:has(.jdc-card-add-icon))::after {
  content: "Ajouter au panier";
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--jdc-card-action-ink);
  font: 700 .75rem/1.2 "DM Sans", sans-serif;
  opacity: 0;
  transform: translateY(9px);
}

.jdc-woocommerce-ui .jdc-shop-card-add :is(
  .wp-block-button__link,
  .add_to_cart_button,
  .wc-block-components-product-button__button
):not(:has(.jdc-card-add-icon)):is(:hover, :focus-visible) {
  background-color: var(--jdc-card-action-surface) !important;
  background-image: none !important;
  color: transparent !important;
}

.jdc-woocommerce-ui .jdc-shop-card-add :is(
  .wp-block-button__link,
  .add_to_cart_button,
  .wc-block-components-product-button__button
):not(:has(.jdc-card-add-icon)):is(:hover, :focus-visible)::before {
  opacity: 0;
  transform: translateY(-9px);
}

.jdc-woocommerce-ui .jdc-shop-card-add :is(
  .wp-block-button__link,
  .add_to_cart_button,
  .wc-block-components-product-button__button
):not(:has(.jdc-card-add-icon)):is(:hover, :focus-visible)::after {
  opacity: 1;
  transform: translateY(0);
}

.jdc-woocommerce-ui .jdc-shop-card-add .jdc-card-add-icon,
.jdc-woocommerce-ui .jdc-shop-card-add .jdc-card-add-label {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  pointer-events: none;
  transition: opacity .16s ease, transform .16s ease;
}

.jdc-woocommerce-ui .jdc-shop-card-add .jdc-card-add-icon {
  opacity: 1;
  color: var(--jdc-card-action-ink);
  transform: translateY(0);
}

.jdc-woocommerce-ui .jdc-shop-card-add .jdc-card-add-icon svg {
  width: 23px;
  height: 23px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.7;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.jdc-woocommerce-ui .jdc-shop-card-add .jdc-card-add-label {
  opacity: 0;
  color: var(--jdc-card-action-ink);
  font: 700 .75rem/1.2 "DM Sans", sans-serif;
  transform: translateY(3px);
}

.jdc-woocommerce-ui .jdc-shop-card-add :is(
  .wp-block-button__link,
  .add_to_cart_button,
  .wc-block-components-product-button__button
):is(:hover, :focus-visible) .jdc-card-add-icon {
  opacity: 0;
  transform: translateY(-3px);
}

.jdc-woocommerce-ui .jdc-shop-card-add :is(
  .wp-block-button__link,
  .add_to_cart_button,
  .wc-block-components-product-button__button
):is(:hover, :focus-visible) .jdc-card-add-label {
  opacity: 1;
  transform: translateY(0);
}

/*
 * État métier prioritaire sur le contrat visuel ci-dessus.
 * Woo Blocks remplace parfois son bouton pendant un fragment AJAX : l'attribut
 * natif et la classe persistante couvrent les deux cycles sans double contrôle.
 */
.jdc-woocommerce-ui .wp-block-button.wc-block-components-product-button.jdc-shop-card-add > :is(
  .wp-block-button__link,
  .add_to_cart_button,
  .wc-block-components-product-button__button
)[hidden],
.jdc-woocommerce-ui .wp-block-button.wc-block-components-product-button.jdc-shop-card-add > .is-jdc-native-add-hidden {
  display: none !important;
}

.jdc-woocommerce-ui .wp-block-button.wc-block-components-product-button.jdc-shop-card-add > :is(
  .wp-block-button__link,
  .add_to_cart_button,
  .wc-block-components-product-button__button
):hover {
  background: var(--jdc-card-action-surface) !important;
  color: var(--jdc-card-action-ink) !important;
  transform: none !important;
}

.jdc-woocommerce-ui .jdc-shop-card-add:has(.jdc-card-qty-control) {
  box-sizing: border-box;
  width: 100%;
  height: var(--jdc-card-qty-height);
  min-height: var(--jdc-card-qty-height);
  max-height: var(--jdc-card-qty-height);
  margin: auto 0 0 !important;
  padding: 0;
  overflow: hidden;
}

.jdc-woocommerce-ui .jdc-shop-card-add .jdc-card-qty-control {
  display: grid;
  grid-template-columns:
    var(--jdc-card-qty-step-width)
    minmax(0, 1fr)
    var(--jdc-card-qty-step-width);
  align-items: stretch;
  box-sizing: border-box;
  width: 100%;
  height: var(--jdc-card-qty-height);
  min-height: var(--jdc-card-qty-height);
  overflow: hidden;
  border: 0;
  border-radius: 0;
  background: var(--jdc-card-qty-surface);
  box-shadow: none;
  color: var(--jdc-card-qty-ink);
  transform: none;
  transition: none;
}

.jdc-woocommerce-ui .jdc-shop-card-add .jdc-card-qty-control strong {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 0;
  padding: 0 8px;
  background: var(--jdc-card-qty-surface);
  color: var(--jdc-card-qty-ink);
  font: 700 .72rem/1.15 "DM Sans", sans-serif;
  text-align: center;
}

.jdc-woocommerce-ui .jdc-shop-card-add .jdc-card-qty-control button {
  width: var(--jdc-card-qty-step-width);
  height: var(--jdc-card-qty-height);
  min-height: var(--jdc-card-qty-height);
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0 !important;
  background: var(--jdc-card-qty-surface);
  box-shadow: none;
  color: #505950;
  cursor: pointer;
  font: 700 1.15rem/1 "DM Sans", sans-serif;
  transform: none;
  transition: color .14s ease, font-size .14s ease, transform .16s cubic-bezier(.2,.8,.2,1);
}

.jdc-woocommerce-ui .jdc-shop-card-add .jdc-card-qty-control button:hover,
.jdc-woocommerce-ui .jdc-shop-card-add .jdc-card-qty-control button:focus-visible {
  background: var(--jdc-card-qty-surface);
  box-shadow: none;
  color: #333d32;
  transform: scale(1.16);
  font-size: 1.5rem;
}

/*
 * CTA de validation : relief et filet décoratif du bouton « panier choisi »,
 * dans le vert sauge clair réservé à l'action de commande.
 */
.jdc-woocommerce-ui .jdc-shop-cart-checkout {
  position: relative;
  isolation: isolate;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  margin-top: 14px;
  padding: 12px 18px;
  overflow: hidden;
  border: 1.5px solid #97aa6d;
  border-radius: 3px;
  background:
    linear-gradient(180deg, rgba(255,255,255,.22), rgba(255,255,255,0) 48%),
    #b8c68f;
  color: #2e3b26;
  box-shadow:
    0 8px 16px rgba(54, 68, 39, .16),
    0 2px 4px rgba(54, 68, 39, .12),
    inset 0 1px 0 rgba(255,255,255,.44);
  font-family: "DM Sans", sans-serif;
  font-size: .94rem;
  font-weight: 700;
  line-height: 1.2;
  text-align: center;
  text-decoration: none;
  transform: translateY(-1px);
  transition: background-color .18s ease, border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}

.jdc-woocommerce-ui .jdc-shop-cart-checkout::after {
  content: "";
  position: absolute;
  z-index: -1;
  right: 18%;
  bottom: 7px;
  left: 18%;
  height: 1px;
  background: rgba(64, 81, 45, .22);
}

.jdc-woocommerce-ui .jdc-shop-cart-checkout:hover,
.jdc-woocommerce-ui .jdc-shop-cart-checkout:focus-visible {
  border-color: #879d5b;
  background:
    linear-gradient(180deg, rgba(255,255,255,.28), rgba(255,255,255,0) 48%),
    #c1ce9d;
  color: #26331f;
  box-shadow:
    0 11px 20px rgba(54, 68, 39, .20),
    0 3px 6px rgba(54, 68, 39, .14),
    inset 0 1px 0 rgba(255,255,255,.5);
  transform: translateY(-2px);
}

.jdc-woocommerce-ui .jdc-shop-cart-checkout:active {
  box-shadow:
    0 3px 7px rgba(54, 68, 39, .15),
    inset 0 1px 2px rgba(54, 68, 39, .1);
  transform: translateY(0);
}

.jdc-woocommerce-ui .jdc-shop-card-add .jdc-card-qty-control button:active {
  background: var(--jdc-card-qty-surface);
  color: #2f6f28;
  transform: scale(.84);
  font-size: 1.58rem;
  transition-duration: .07s;
}

.jdc-woocommerce-ui .jdc-shop-card-add .jdc-card-qty-control button:focus-visible {
  position: relative;
  z-index: 1;
  outline: 2px solid #e8b54b;
  outline-offset: -3px;
}

/* État sélectionné : surbrillance sans changement de géométrie. */
.jdc-woocommerce-ui .jdc-shop-grid li.wc-block-product:has(.jdc-card-qty-control) {
  border: 2px solid #55a637 !important;
  background:
    linear-gradient(rgba(102, 184, 64, .32), rgba(102, 184, 64, .32)),
    color-mix(in srgb, var(--jdc-variety, var(--jdc-group, #8fa277)) 10%, #fffdf4);
  box-shadow:
    0 0 0 4px rgba(85, 166, 55, .24),
    0 7px 18px rgba(46, 59, 38, .14) !important;
  transform: none !important;
}

.jdc-woocommerce-ui .jdc-shop-grid li.wc-block-product:has(.jdc-card-qty-control)::after {
  content: "";
  position: absolute;
  z-index: 20;
  inset: 0;
  background: rgba(78, 178, 55, .20);
  mix-blend-mode: multiply;
  pointer-events: none;
}

.jdc-woocommerce-ui .jdc-shop-grid li.wc-block-product:has(.jdc-card-qty-control):is(:hover, :focus-within) {
  border-color: #3e962e !important;
  box-shadow:
    0 0 0 5px rgba(85, 166, 55, .30),
    0 8px 20px rgba(46, 59, 38, .15) !important;
  transform: none !important;
}

/* Éclat bref sur le panier latéral après un ajout réussi. */
.jdc-woocommerce-ui .jdc-shop-cart-summary {
  isolation: isolate;
}

.jdc-woocommerce-ui .jdc-cart-spark {
  --spark-angle: calc(var(--spark-index) * 36deg);
  position: absolute;
  z-index: 30;
  top: 46%;
  left: 50%;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #f0c44f;
  box-shadow: 0 0 0 2px rgba(255, 253, 244, .86), 0 0 12px rgba(240, 196, 79, .78);
  opacity: 0;
  pointer-events: none;
}

.jdc-woocommerce-ui .jdc-shop-cart-summary.is-cart-glittering {
  animation: jdc-cart-glow .78s ease-out both;
}

.jdc-woocommerce-ui .jdc-shop-cart-summary.is-cart-glittering .jdc-cart-spark {
  animation: jdc-cart-spark .78s cubic-bezier(.2,.72,.2,1) both;
  animation-delay: calc(var(--spark-index) * 18ms);
}

@keyframes jdc-cart-glow {
  0%, 100% { box-shadow: inherit; }
  40% { box-shadow: 0 0 0 5px rgba(98, 184, 64, .25), 0 16px 34px rgba(46, 59, 38, .20); }
}

@keyframes jdc-cart-spark {
  0% { opacity: 0; transform: rotate(var(--spark-angle)) translateX(12px) scale(.35); }
  24% { opacity: 1; }
  100% { opacity: 0; transform: rotate(var(--spark-angle)) translateX(92px) scale(1.15); }
}

@media (prefers-reduced-motion: reduce) {
  .jdc-woocommerce-ui .jdc-shop-cart-summary.is-cart-glittering,
  .jdc-woocommerce-ui .jdc-shop-cart-summary.is-cart-glittering .jdc-cart-spark {
    animation: none;
  }
  .jdc-woocommerce-ui .jdc-shop-card-add .jdc-card-qty-control button {
    transition: none;
  }
}

/* Panier — variante condensée. */
body.jdc-woocommerce-ui.woocommerce-cart .wp-block-post-title {
  margin-block: 26px 20px;
  font-size: clamp(2.1rem, 3.5vw, 3rem);
}

body.jdc-woocommerce-ui.woocommerce-cart .jdc-cart-journey {
  margin-bottom: 16px;
}

body.jdc-woocommerce-ui.woocommerce-cart .jdc-cart-journey li {
  min-height: 42px;
  padding: 8px 16px;
}

body.jdc-woocommerce-ui.woocommerce-cart .jdc-cart-journey li span {
  width: 20px;
  height: 20px;
}

body.jdc-woocommerce-ui.woocommerce-cart .jdc-cart-practical {
  gap: 12px;
  padding: 10px 16px;
}

body.jdc-woocommerce-ui.woocommerce-cart .wc-block-cart,
body.jdc-woocommerce-ui.woocommerce-cart .wc-block-components-sidebar-layout.wc-block-cart {
  gap: 20px !important;
}

body.jdc-woocommerce-ui.woocommerce-cart .wc-block-cart-items {
  border-spacing: 0 6px !important;
}

body.jdc-woocommerce-ui.woocommerce-cart .wc-block-cart-items__header th {
  padding-bottom: 6px !important;
}

body.jdc-woocommerce-ui.woocommerce-cart .wc-block-cart-items__row > td {
  padding: 10px 12px !important;
}

body.jdc-woocommerce-ui.woocommerce-cart .wc-block-cart-item__image {
  width: 66px;
}

body.jdc-woocommerce-ui.woocommerce-cart .wc-block-cart-item__image img {
  width: 62px;
  height: 62px;
}

body.jdc-woocommerce-ui.woocommerce-cart .wc-block-cart-item__product,
body.jdc-woocommerce-ui.woocommerce-cart .wc-block-cart-item__wrap {
  min-height: 62px;
}

body.jdc-woocommerce-ui.woocommerce-cart .wc-block-cart-item__wrap {
  padding-left: 10px;
}

body.jdc-woocommerce-ui.woocommerce-cart .wc-block-components-product-name {
  font-size: 1rem;
}

body.jdc-woocommerce-ui.woocommerce-cart .wc-block-cart-item__quantity {
  gap: 6px;
  margin-top: 5px;
}

body.jdc-woocommerce-ui.woocommerce-cart .wc-block-components-quantity-selector {
  width: 118px;
  height: 34px;
}

body.jdc-woocommerce-ui.woocommerce-cart .wc-block-components-quantity-selector__button {
  width: 32px;
  min-width: 32px;
}

body.jdc-woocommerce-ui.woocommerce-cart .wc-block-cart__sidebar,
body.jdc-woocommerce-ui.woocommerce-cart .wc-block-components-sidebar.wc-block-cart__sidebar {
  padding: 20px !important;
}

body.jdc-woocommerce-ui.woocommerce-cart .wc-block-cart__sidebar .wc-block-cart__totals-title {
  padding-bottom: 12px;
}

body.jdc-woocommerce-ui.woocommerce-cart .wc-block-cart__sidebar .wc-block-components-totals-wrapper {
  padding-block: 12px;
}

body.jdc-woocommerce-ui.woocommerce-cart .wc-block-cart__submit-button {
  min-height: 44px;
}

/* Panier — ligne produit redessinée : image, identité et quantité lisibles. */
body.jdc-woocommerce-ui.woocommerce-cart .wc-block-cart {
  margin-bottom: clamp(56px, 8vw, 112px) !important;
}

body.jdc-woocommerce-ui.woocommerce-cart main,
body.jdc-woocommerce-ui.woocommerce-cart .wp-site-blocks > main {
  padding-bottom: clamp(64px, 9vw, 128px) !important;
}

body.jdc-woocommerce-ui.woocommerce-cart .wc-block-cart__sidebar {
  margin-bottom: clamp(24px, 4vw, 56px) !important;
}

body.jdc-woocommerce-ui.woocommerce-cart .wc-block-cart-items__row > td {
  padding-block: 18px !important;
  background: #fffdf7;
}

body.jdc-woocommerce-ui.woocommerce-cart .wc-block-cart-items {
  table-layout: fixed !important;
  width: 100% !important;
}

body.jdc-woocommerce-ui.woocommerce-cart .wc-block-cart-items__row > td.wc-block-cart-item__image {
  width: 150px !important;
  padding-left: 18px !important;
}

body.jdc-woocommerce-ui.woocommerce-cart .wc-block-cart-items__row > td.wc-block-cart-item__total {
  width: 150px !important;
}

body.jdc-woocommerce-ui.woocommerce-cart .wc-block-cart-item__image {
  width: 118px !important;
  min-width: 118px !important;
  padding-left: 0 !important;
}

body.jdc-woocommerce-ui.woocommerce-cart .wc-block-cart-item__image img {
  width: 100% !important;
  height: auto !important;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  border: 1px solid rgba(46, 59, 38, .12);
  background: #f5f0e4;
}

body.jdc-woocommerce-ui.woocommerce-cart .wc-block-cart-item__product {
  min-height: 112px;
  padding-left: 18px !important;
}

body.jdc-woocommerce-ui.woocommerce-cart .wc-block-cart-item__wrap {
  display: block !important;
  min-height: 112px;
  padding-left: 0 !important;
}

body.jdc-woocommerce-ui.woocommerce-cart .wc-block-components-product-name {
  display: block;
  max-width: 26ch;
  color: #2e3b26;
  font-size: clamp(1.18rem, 1.8vw, 1.52rem);
  line-height: 1.12;
}

body.jdc-woocommerce-ui.woocommerce-cart .wc-block-cart-item__prices,
body.jdc-woocommerce-ui.woocommerce-cart .wc-block-components-product-price {
  display: block;
  margin-top: 8px !important;
  color: #405334;
  font-size: 1rem !important;
  font-weight: 600;
  line-height: 1.25;
}

body.jdc-woocommerce-ui.woocommerce-cart .wc-block-cart-item__quantity {
  gap: 8px;
  margin-top: 12px;
}

body.jdc-woocommerce-ui.woocommerce-cart .wc-block-components-quantity-selector {
  width: 132px;
  height: 40px;
}

body.jdc-woocommerce-ui.woocommerce-cart .wc-block-cart-item__total {
  width: 132px;
  padding-inline: 18px !important;
  font-size: 1.05rem;
}

@media (max-width: 560px) {
  body.jdc-woocommerce-ui.woocommerce-cart .wc-block-cart {
    margin-bottom: 64px !important;
  }

  body.jdc-woocommerce-ui.woocommerce-cart .wc-block-cart-items__row > td {
    padding-block: 14px !important;
  }

  body.jdc-woocommerce-ui.woocommerce-cart .wc-block-cart-item__image {
    width: 78px !important;
    min-width: 78px !important;
    padding-left: 8px !important;
  }

  body.jdc-woocommerce-ui.woocommerce-cart .wc-block-cart-items__row > td.wc-block-cart-item__image {
    width: 94px !important;
    padding-left: 10px !important;
  }

  body.jdc-woocommerce-ui.woocommerce-cart .wc-block-cart-items__row > td.wc-block-cart-item__total {
    width: 92px !important;
  }

  body.jdc-woocommerce-ui.woocommerce-cart .wc-block-cart-item__product,
  body.jdc-woocommerce-ui.woocommerce-cart .wc-block-cart-item__wrap {
    min-height: 92px;
    padding-left: 10px !important;
  }

  body.jdc-woocommerce-ui.woocommerce-cart .wc-block-components-product-name {
    max-width: 20ch;
    font-size: 1.08rem;
  }

  body.jdc-woocommerce-ui.woocommerce-cart .wc-block-components-quantity-selector {
    width: 116px;
    height: 36px;
  }

  body.jdc-woocommerce-ui.woocommerce-cart .wc-block-cart-item__total {
    width: auto;
    padding-inline: 10px !important;
    font-size: .95rem;
  }
}

/* --------------------------------------------------------------------------
   TYPOGRAPHIE TRANSACTIONNELLE CANONIQUE
   Les pages WooCommerce reprennent l'échelle des pages publiques. Ces règles
   sont terminales pour neutraliser les tailles propres aux blocs WooCommerce,
   sans toucher aux cartes produit ni aux boutons de panier hebdomadaire.
   -------------------------------------------------------------------------- */

body.jdc-woocommerce-ui.woocommerce-cart .wp-block-post-title,
body.jdc-woocommerce-ui.woocommerce-checkout .wp-block-post-title,
body.jdc-woocommerce-ui.woocommerce-account .jdc-page-hero .wp-block-post-title {
  margin-block: 0 !important;
  font: 500 var(--jdc-type-page-title, clamp(2.35rem, 3.4vw, 3.25rem))/1.05 var(--jdc-font-display, "Playfair Display", Georgia, serif) !important;
  letter-spacing: -.02em !important;
}

body.jdc-woocommerce-ui.woocommerce-cart,
body.jdc-woocommerce-ui.woocommerce-checkout,
body.jdc-woocommerce-ui.woocommerce-account {
  font-family: var(--jdc-font-body, "DM Sans", Arial, sans-serif);
  font-size: var(--jdc-type-body, .94rem);
  line-height: 1.58;
}

body.jdc-woocommerce-ui.woocommerce-checkout .woocommerce-notice--success,
body.jdc-woocommerce-ui.woocommerce-checkout .woocommerce-thankyou-order-received {
  margin: 0 0 22px !important;
  font: 500 1.18rem/1.45 var(--jdc-font-body, "DM Sans", Arial, sans-serif) !important;
  color: var(--jdc-ink, #2e3b26);
}

body.jdc-woocommerce-ui.woocommerce-checkout .woocommerce-order-overview {
  display: grid !important;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 12px;
  margin: 0 0 24px !important;
  padding: 16px 18px !important;
  border: 1px solid rgba(126, 162, 92, .35);
  background: rgba(255, 253, 246, .72);
  list-style: none;
}

body.jdc-woocommerce-ui.woocommerce-checkout .woocommerce-order-overview li {
  float: none !important;
  min-width: 0;
  margin: 0 !important;
  padding: 0 12px 0 0 !important;
  border: 0 !important;
  font: 600 .68rem/1.35 var(--jdc-font-body, "DM Sans", Arial, sans-serif) !important;
  letter-spacing: .08em;
  text-transform: uppercase;
}

body.jdc-woocommerce-ui.woocommerce-checkout .woocommerce-order-overview li strong {
  display: block;
  margin-top: 5px;
  overflow-wrap: anywhere;
  font: 500 .86rem/1.4 var(--jdc-font-body, "DM Sans", Arial, sans-serif) !important;
  letter-spacing: 0;
  text-transform: none;
}

body.jdc-woocommerce-ui.woocommerce-checkout .woocommerce-order-details__title,
body.jdc-woocommerce-ui.woocommerce-checkout .woocommerce-column__title,
body.jdc-woocommerce-ui.woocommerce-checkout .wc-block-components-checkout-step__title,
body.jdc-woocommerce-ui.woocommerce-checkout .wc-block-components-title {
  margin-block: 22px 12px !important;
  font: 500 var(--jdc-type-section-title, clamp(1.65rem, 2.25vw, 2rem))/1.16 var(--jdc-font-display, "Playfair Display", Georgia, serif) !important;
  letter-spacing: -.01em;
}

body.jdc-woocommerce-ui.woocommerce-checkout .woocommerce-table,
body.jdc-woocommerce-ui.woocommerce-checkout .woocommerce-customer-details address {
  font: 400 .84rem/1.55 var(--jdc-font-body, "DM Sans", Arial, sans-serif) !important;
}

body.jdc-woocommerce-ui.woocommerce-checkout .woocommerce-table th,
body.jdc-woocommerce-ui.woocommerce-checkout .woocommerce-table td {
  padding: 12px 14px !important;
}

body.jdc-woocommerce-ui.woocommerce-checkout .woocommerce-table th {
  font-size: .72rem !important;
  letter-spacing: .06em;
  text-transform: uppercase;
}

body.jdc-woocommerce-ui.woocommerce-checkout .woocommerce-customer-details address {
  padding: 14px 16px !important;
  border: 1px solid rgba(46, 59, 38, .15) !important;
  border-radius: 3px !important;
  background: rgba(255, 253, 246, .55);
}

body.jdc-woocommerce-ui.woocommerce-checkout .wc-block-components-checkout-step__description,
body.jdc-woocommerce-ui.woocommerce-checkout .wc-block-components-form .wc-block-components-text-input label,
body.jdc-woocommerce-ui.woocommerce-checkout .wc-block-components-address-form__address_2-toggle {
  font-family: var(--jdc-font-body, "DM Sans", Arial, sans-serif) !important;
}

body.jdc-woocommerce-ui.woocommerce-checkout .wc-block-components-checkout-step__description {
  font-size: .82rem !important;
  line-height: 1.55 !important;
}

body.jdc-woocommerce-ui.woocommerce-account .woocommerce-MyAccount-content,
body.jdc-woocommerce-ui.woocommerce-account .woocommerce-MyAccount-navigation {
  font-family: var(--jdc-font-body, "DM Sans", Arial, sans-serif);
}

body.jdc-woocommerce-ui.woocommerce-account .woocommerce-MyAccount-content > p,
body.jdc-woocommerce-ui.woocommerce-account .woocommerce-MyAccount-content address,
body.jdc-woocommerce-ui.woocommerce-account .woocommerce-MyAccount-content table {
  font-size: .88rem;
  line-height: 1.62;
}

body.jdc-woocommerce-ui.woocommerce-account .woocommerce-MyAccount-content h2,
body.jdc-woocommerce-ui.woocommerce-account .woocommerce-MyAccount-content h3 {
  font: 500 var(--jdc-type-section-title, clamp(1.65rem, 2.25vw, 2rem))/1.16 var(--jdc-font-display, "Playfair Display", Georgia, serif) !important;
}

@media (max-width: 900px) {
  body.jdc-woocommerce-ui.woocommerce-checkout .woocommerce-order-overview {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 560px) {
  body.jdc-woocommerce-ui.woocommerce-checkout .woocommerce-order-overview {
    grid-template-columns: 1fr;
  }

  body.jdc-woocommerce-ui.woocommerce-checkout .wc-block-checkout {
    padding-inline: 12px !important;
  }

  body.jdc-woocommerce-ui.woocommerce-checkout .wc-block-components-checkout-step {
    margin-block: 14px !important;
  }

  body.jdc-woocommerce-ui.woocommerce-checkout .wc-block-components-checkout-step__title {
    margin-block: 10px 8px !important;
    font-size: 1.55rem !important;
  }

  body.jdc-woocommerce-ui.woocommerce-checkout .wc-block-components-checkout-place-order-button {
    width: 100%;
    min-height: 48px;
  }
}

/* Tableau du compte — les actions de ligne sont des commandes compactes,
   pas des CTA principaux. Cette règle neutralise la largeur WooCommerce. */
body.jdc-woocommerce-ui.woocommerce-account
  .woocommerce-orders-table__cell-order-actions {
  width: 1%;
  white-space: nowrap;
  text-align: right;
}

body.jdc-woocommerce-ui.woocommerce-account
  .woocommerce-orders-table__cell-order-actions .woocommerce-button {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  width: auto !important;
  min-width: 86px !important;
  min-height: 36px !important;
  margin: 0 !important;
  padding: 8px 13px !important;
  border: 1px solid #a9b989 !important;
  border-radius: 3px !important;
  background: #fffdf4 !important;
  box-shadow: 0 3px 8px rgba(46, 59, 38, .08) !important;
  color: #3f5034 !important;
  font: 700 .72rem/1.1 var(--jdc-font-body, "DM Sans", Arial, sans-serif) !important;
  letter-spacing: .01em !important;
  text-decoration: none !important;
  transform: none !important;
}

body.jdc-woocommerce-ui.woocommerce-account
  .woocommerce-orders-table__cell-order-actions .woocommerce-button::after {
  content: "›";
  margin-left: 8px;
  font-size: 1rem;
  line-height: .7;
}

body.jdc-woocommerce-ui.woocommerce-account
  .woocommerce-orders-table__cell-order-actions .woocommerce-button:hover,
body.jdc-woocommerce-ui.woocommerce-account
  .woocommerce-orders-table__cell-order-actions .woocommerce-button:focus-visible {
  border-color: #91a46d !important;
  background: #f3f1e6 !important;
  box-shadow: 0 4px 10px rgba(46, 59, 38, .11) !important;
}

/* Compte client — densité identique aux pages éditoriales. */
body.jdc-woocommerce-ui.woocommerce-account .jdc-page-hero {
  padding-block: clamp(22px, 2.4vw, 32px) !important;
}

body.jdc-woocommerce-ui.woocommerce-account
  .jdc-page-hero .wp-block-post-title {
  font-size: clamp(2.1rem, 3vw, 2.7rem) !important;
  line-height: 1.04 !important;
}

body.jdc-woocommerce-ui.woocommerce-account .jdc-page-content {
  margin-top: clamp(18px, 2.2vw, 28px) !important;
  padding-bottom: clamp(30px, 4vw, 48px) !important;
}

body.jdc-woocommerce-ui.woocommerce-account
  .woocommerce-MyAccount-content .woocommerce-Addresses {
  gap: 18px;
}

body.jdc-woocommerce-ui.woocommerce-account
  .woocommerce-MyAccount-content .woocommerce-Address {
  padding: 18px 20px;
}

body.jdc-woocommerce-ui.woocommerce-account
  .woocommerce-MyAccount-content .woocommerce-Address-title h2 {
  margin: 0 0 10px !important;
  font: 500 clamp(1.35rem, 1.8vw, 1.65rem)/1.16 var(--jdc-font-display, "Playfair Display", Georgia, serif) !important;
  letter-spacing: -.01em;
}

body.jdc-woocommerce-ui.woocommerce-account
  .woocommerce-MyAccount-content .woocommerce-Address-title .edit {
  font-size: .76rem;
}

@media (max-width: 900px) {
  body.jdc-woocommerce-ui.woocommerce-cart .jdc-cart-quantity {
    min-height: 36px;
    border-color: rgba(46, 59, 38, .28);
  }

  body.jdc-woocommerce-ui.woocommerce-cart .jdc-cart-quantity__button {
    width: 34px;
    height: 36px;
  }

  body.jdc-woocommerce-ui.woocommerce-cart .jdc-cart-quantity__input {
    width: 32px;
    height: 34px;
  }

  body.jdc-woocommerce-ui.woocommerce-cart .jdc-cart-quantity__remove {
    position: relative;
    width: 30px;
    height: 34px;
    margin-left: 6px;
  }

  body.jdc-woocommerce-ui.woocommerce-cart .jdc-cart-quantity__remove::before {
    position: absolute;
    top: 9px;
    left: 7px;
    display: block;
    width: 16px;
    height: 18px;
    border: 2px solid currentColor;
    border-top: 0;
    border-radius: 0 0 3px 3px;
    background: none;
  }

  body.jdc-woocommerce-ui.woocommerce-cart .jdc-cart-quantity__remove::after {
    content: "";
    position: absolute;
    top: 5px;
    left: 5px;
    width: 20px;
    height: 2px;
    margin: 0;
    border-radius: 2px;
    background: currentColor;
  }
}

/* Le ruban de fidélité du footer ne doit pas prendre toute la hauteur sur le
   panier mobile : il reste dimensionné par son contenu. */
@media (max-width: 900px) {
  body.jdc-woocommerce-ui.woocommerce-cart .wp-site-blocks > footer .jdc-ribbon,
  body.jdc-woocommerce-ui.woocommerce-cart footer .jdc-ribbon {
    min-height: 0 !important;
    height: auto !important;
    align-self: initial !important;
  }
}

/* AUTORITÉ FINALE — panier classique WooCommerce sur petit écran. */
@media (max-width: 900px) {
  body.jdc-woocommerce-ui.woocommerce-cart table.shop_table_responsive tr.cart_item {
    display: grid !important;
    grid-template-columns: 72px minmax(0, 1fr) auto !important;
    grid-template-areas: "thumb name subtotal" "thumb price subtotal" "thumb qty subtotal" !important;
    gap: 0 10px !important;
    width: 100% !important;
    margin: 0 0 10px !important;
    padding: 0 !important;
    border: 1px solid rgba(46, 59, 38, .14) !important;
    border-radius: 4px !important;
    background: #fffdf4 !important;
    overflow: hidden !important;
  }

  body.jdc-woocommerce-ui.woocommerce-cart table.shop_table_responsive tr.cart_item > td,
  body.jdc-woocommerce-ui.woocommerce-cart table.shop_table_responsive tr.cart_item > td::before {
    display: block !important;
    position: static !important;
    float: none !important;
    width: auto !important;
    min-height: 0 !important;
    margin: 0 !important;
    border: 0 !important;
    background: transparent !important;
    content: none !important;
  }

  body.jdc-woocommerce-ui.woocommerce-cart table.shop_table_responsive tr.cart_item > td.product-thumbnail {
    display: block !important;
    grid-area: thumb !important;
    padding: 12px 0 12px 12px !important;
  }

  body.jdc-woocommerce-ui.woocommerce-cart table.shop_table_responsive tr.cart_item > td.product-thumbnail a,
  body.jdc-woocommerce-ui.woocommerce-cart table.shop_table_responsive tr.cart_item > td.product-thumbnail img {
    display: block !important;
    width: 68px !important;
    height: 68px !important;
    max-width: 68px !important;
    opacity: 1 !important;
    visibility: visible !important;
    object-fit: cover !important;
  }

  body.jdc-woocommerce-ui.woocommerce-cart table.shop_table_responsive tr.cart_item > td.product-name {
    grid-area: name !important;
    padding: 14px 0 3px !important;
    text-align: left !important;
  }

  body.jdc-woocommerce-ui.woocommerce-cart table.shop_table_responsive tr.cart_item > td.product-price {
    grid-area: price !important;
    padding: 0 !important;
    text-align: left !important;
  }

  body.jdc-woocommerce-ui.woocommerce-cart table.shop_table_responsive tr.cart_item > td.product-quantity {
    grid-area: qty !important;
    padding: 7px 0 14px !important;
    text-align: left !important;
  }

  body.jdc-woocommerce-ui.woocommerce-cart table.shop_table_responsive tr.cart_item > td.product-subtotal {
    grid-area: subtotal !important;
    align-self: center !important;
    padding: 0 12px 0 0 !important;
    text-align: right !important;
  }

  body.jdc-woocommerce-ui.woocommerce-cart table.shop_table_responsive tr.cart_item > td.product-remove {
    display: none !important;
  }
}

/* Panier — suppression explicite et résumé aligné sur les lignes produits. */
body.jdc-woocommerce-ui.woocommerce-cart .jdc-cart-quantity__remove {
  flex: 0 0 28px;
  cursor: pointer;
  border-radius: 2px;
  transition: color .16s ease, background-color .16s ease;
}

body.jdc-woocommerce-ui.woocommerce-cart .jdc-cart-quantity__remove:hover,
body.jdc-woocommerce-ui.woocommerce-cart .jdc-cart-quantity__remove:focus-visible {
  color: #a64a39;
  background: #f4e5df;
}

body.jdc-woocommerce-ui.woocommerce-cart .jdc-cart-quantity__remove:focus-visible {
  outline: 2px solid #e8b54b;
  outline-offset: 2px;
}

@media (min-width: 901px) {
  body.jdc-woocommerce-ui.woocommerce-cart .cart-collaterals .cart_totals {
    margin-top: 38px;
  }
}

/* Panier — poubelle centrée dans le contrôle de quantité. */
body.jdc-woocommerce-ui.woocommerce-cart .jdc-cart-quantity__remove {
  align-self: center;
  flex: 0 0 32px;
  width: 32px;
  height: 34px;
  margin-left: 0;
  line-height: 0;
}

/* Poubelle — icône SVG JDC nette, sans pseudo-dessin fragile. */
body.jdc-woocommerce-ui.woocommerce-cart .jdc-cart-quantity__remove {
  align-self: center;
  flex: 0 0 32px;
  width: 32px;
  height: 34px;
  margin-left: 0;
  line-height: 0;
}
body.jdc-woocommerce-ui.woocommerce-cart .jdc-cart-quantity__remove::before,
body.jdc-woocommerce-ui.woocommerce-cart .jdc-cart-quantity__remove::after {
  content: none !important;
  display: none !important;
}
body.jdc-woocommerce-ui.woocommerce-cart .jdc-cart-quantity__remove-icon {
  display: block;
  width: 16px;
  height: 16px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.6;
  stroke-linecap: round;
  stroke-linejoin: round;
}

/* Checkout JDC — retrait au domaine, prêt pour l’activation future de l’expédition. */
body.jdc-pickup-only.woocommerce-checkout main,
body.jdc-pickup-only.woocommerce-checkout .wp-site-blocks > main {
  box-sizing: border-box;
  width: min(1200px, calc(100% - 48px));
  max-width: 1200px;
  margin-inline: auto;
}
body.jdc-pickup-only.woocommerce-checkout .wc-block-checkout {
  width: 100%;
  max-width: none;
  padding-top: 24px !important;
}
body.jdc-pickup-only.woocommerce-checkout .jdc-checkout-intro {
  margin: 0 0 30px;
}
body.jdc-pickup-only.woocommerce-checkout .jdc-checkout-intro__eyebrow {
  margin: 0 0 8px;
  color: #6f9252;
  font: 700 .7rem/1.2 "DM Sans", sans-serif;
  letter-spacing: .16em;
  text-transform: uppercase;
}
body.jdc-pickup-only.woocommerce-checkout .jdc-checkout-intro h1 {
  margin: 0;
  color: #2e3b26;
  font: 500 clamp(2.35rem, 4.5vw, 3.5rem)/1.05 "Playfair Display", Georgia, serif;
  letter-spacing: -.02em;
}
body.jdc-pickup-only.woocommerce-checkout .jdc-checkout-intro > p:last-child {
  margin: 10px 0 0;
  color: #7c7563;
  font: 500 .86rem/1.5 "DM Sans", sans-serif;
}
body.jdc-pickup-only.woocommerce-checkout .wc-block-components-express-payment-continue-rule {
  display: none !important;
}
body.jdc-pickup-only.woocommerce-checkout .wc-block-components-sidebar-layout {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) minmax(320px, 380px);
  gap: clamp(28px, 4vw, 56px);
  align-items: start;
  margin: 0 !important;
}
body.jdc-pickup-only.woocommerce-checkout .wc-block-checkout__main,
body.jdc-pickup-only.woocommerce-checkout .wc-block-checkout__sidebar {
  box-sizing: border-box;
  width: auto !important;
  padding: 0 !important;
}
body.jdc-pickup-only.woocommerce-checkout .wc-block-checkout__sidebar {
  position: sticky;
  top: 96px;
  align-self: start;
}
body.jdc-pickup-only.woocommerce-checkout .wc-block-checkout__main > .wc-block-components-form > .wc-block-components-checkout-step {
  margin: 0 !important;
  padding: 24px 0;
  border-bottom: 1px solid rgba(46, 59, 38, .14);
}
body.jdc-pickup-only.woocommerce-checkout .wc-block-checkout__main > .wc-block-components-form > .wc-block-components-checkout-step:first-of-type {
  padding-top: 0;
}
body.jdc-pickup-only.woocommerce-checkout .wc-block-components-checkout-step__title {
  margin: 0 0 14px !important;
  color: #2e3b26;
  font: 500 clamp(1.55rem, 2.2vw, 2rem)/1.16 "Playfair Display", Georgia, serif !important;
  letter-spacing: -.01em;
}
body.jdc-pickup-only.woocommerce-checkout .wc-block-components-text-input input {
  min-height: 48px;
  border: 1px solid rgba(46, 59, 38, .24);
  border-radius: 3px;
  background: #fffdf4;
  color: #2e3b26;
}
body.jdc-pickup-only.woocommerce-checkout #shipping-fields {
  display: none !important;
}
body.jdc-pickup-only.woocommerce-checkout #shipping-option {
  padding: 24px 0;
}
body.jdc-pickup-only.woocommerce-checkout #shipping-option .wc-block-components-checkout-step__content {
  display: block;
  margin: 0;
  padding: 18px 20px;
  border: 1px solid #d5dec1;
  border-radius: 4px;
  background:
    radial-gradient(ellipse 30% 100% at 100% 0, rgba(169, 193, 133, .22), transparent 72%),
    #fffdf4;
}
body.jdc-pickup-only.woocommerce-checkout #shipping-option .wc-block-components-notice-banner {
  margin: 0;
  border: 0;
  background: transparent;
  color: #405334;
}
body.jdc-pickup-only.woocommerce-checkout #shipping-option .wc-block-components-notice-banner__content {
  font: 500 .86rem/1.55 "DM Sans", sans-serif;
}
body.jdc-pickup-only.woocommerce-checkout #shipping-option .wc-block-components-notice-banner > svg {
  fill: #6f9252;
}
body.jdc-pickup-only.woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-block {
  overflow: hidden;
  border: 1px solid #9fba78;
  border-radius: 4px;
  background: #fffdf4;
  box-shadow: 0 15px 34px rgba(46, 59, 38, .10);
}
body.jdc-pickup-only.woocommerce-checkout .wc-block-components-checkout-order-summary__title {
  padding: 20px 22px;
  border-bottom: 1px solid rgba(46, 59, 38, .12);
  background: #f5f0e4;
}
body.jdc-pickup-only.woocommerce-checkout .wc-block-components-checkout-order-summary__title-text {
  margin: 0;
  color: #2e3b26;
  font: 500 1.25rem/1.2 "Playfair Display", Georgia, serif;
}
body.jdc-pickup-only.woocommerce-checkout .wc-block-components-checkout-order-summary__title-price {
  color: #405334;
  font: 700 .9rem/1 "DM Sans", sans-serif;
}
body.jdc-pickup-only.woocommerce-checkout .wc-block-components-checkout-order-summary__content {
  background: #fffdf4;
}
body.jdc-pickup-only.woocommerce-checkout .wc-block-components-order-summary-item {
  padding: 16px 22px;
  border-bottom: 1px solid rgba(46, 59, 38, .10);
}
body.jdc-pickup-only.woocommerce-checkout .wc-block-components-totals-coupon,
body.jdc-pickup-only.woocommerce-checkout .wc-block-components-totals-wrapper {
  border-color: rgba(46, 59, 38, .10);
}
body.jdc-pickup-only.woocommerce-checkout .wc-block-components-totals-item {
  padding-inline: 22px;
}
body.jdc-pickup-only.woocommerce-checkout .wc-block-components-totals-item--grand-total {
  padding-block: 18px;
  background: #f5f0e4;
}
body.jdc-pickup-only.woocommerce-checkout .wc-block-components-totals-item__label,
body.jdc-pickup-only.woocommerce-checkout .wc-block-components-totals-item__value {
  color: #2e3b26;
}
body.jdc-pickup-only.woocommerce-checkout .wc-block-components-checkout-place-order-button {
  width: 100%;
  min-height: 50px;
  margin-top: 22px;
}
@media (max-width: 900px) {
  body.jdc-pickup-only.woocommerce-checkout main,
  body.jdc-pickup-only.woocommerce-checkout .wp-site-blocks > main {
    width: min(100% - 32px, 720px);
  }
  body.jdc-pickup-only.woocommerce-checkout .wc-block-components-sidebar-layout {
    grid-template-columns: 1fr;
    gap: 24px;
  }
  body.jdc-pickup-only.woocommerce-checkout .wc-block-checkout__sidebar {
    position: static;
    grid-row: 1;
  }
  body.jdc-pickup-only.woocommerce-checkout .wc-block-checkout__main {
    grid-row: 2;
  }
}

/* En mode retrait uniquement, le récapitulatif ne doit pas afficher une
   ligne de livraison vide ou contradictoire avec le parcours proposé. */
.jdc-pickup-only .wc-block-components-totals-shipping {
  display: none !important;
}

/* Checkout mobile : WooCommerce rend une copie complète du résumé dans
   les actions, en plus du résumé replié de la colonne latérale. On conserve
   la version repliée, plus lisible et accessible en haut du parcours. */
@media (max-width: 900px) {
  body.jdc-pickup-only.woocommerce-checkout .wc-block-checkout__main .checkout-order-summary-block-fill-wrapper {
    display: none !important;
  }

  body.jdc-pickup-only.woocommerce-checkout .wc-block-checkout__main {
    min-width: 0;
  }

  body.jdc-pickup-only.woocommerce-checkout .wc-block-checkout__actions {
    margin-top: 0 !important;
  }
}

@media (max-width: 560px) {
  body.jdc-pickup-only.woocommerce-checkout main,
  body.jdc-pickup-only.woocommerce-checkout .wp-site-blocks > main {
    width: calc(100% - 32px);
  }

  body.jdc-pickup-only.woocommerce-checkout .wc-block-checkout {
    padding-top: 16px !important;
  }

  body.jdc-pickup-only.woocommerce-checkout .jdc-checkout-intro {
    margin-bottom: 22px;
  }

  body.jdc-pickup-only.woocommerce-checkout .jdc-checkout-intro h1 {
    font-size: clamp(2.1rem, 10.5vw, 2.65rem);
    line-height: 1.04;
  }

  body.jdc-pickup-only.woocommerce-checkout .jdc-checkout-intro > p:last-child {
    max-width: 28rem;
    font-size: .82rem;
    line-height: 1.45;
  }

  body.jdc-pickup-only.woocommerce-checkout .wc-block-components-sidebar-layout {
    gap: 18px;
  }

  body.jdc-pickup-only.woocommerce-checkout .wc-block-checkout__sidebar {
    width: 100% !important;
  }

  body.jdc-pickup-only.woocommerce-checkout .wc-block-components-checkout-order-summary__title {
    min-height: 84px;
    box-sizing: border-box;
    padding: 15px 18px;
  }

  body.jdc-pickup-only.woocommerce-checkout .wc-block-components-checkout-order-summary__title-text {
    max-width: 11rem;
    font-size: 1.12rem;
    line-height: 1.15;
  }

  body.jdc-pickup-only.woocommerce-checkout .wc-block-checkout__main > .wc-block-components-form > .wc-block-components-checkout-step,
  body.jdc-pickup-only.woocommerce-checkout .wc-block-checkout__main .wc-block-components-checkout-step {
    padding-block: 20px;
  }

  body.jdc-pickup-only.woocommerce-checkout .wc-block-components-checkout-step__title {
    margin-bottom: 12px !important;
    font-size: 1.5rem !important;
    line-height: 1.12 !important;
  }

  body.jdc-pickup-only.woocommerce-checkout #shipping-option {
    padding-block: 20px;
  }

  body.jdc-pickup-only.woocommerce-checkout #shipping-option .wc-block-components-checkout-step__content {
    padding: 16px;
  }

  body.jdc-pickup-only.woocommerce-checkout #shipping-option .wc-block-components-notice-banner__content {
    font-size: .82rem;
    line-height: 1.48;
  }

  body.jdc-pickup-only.woocommerce-checkout .wc-block-components-checkbox {
    align-items: flex-start;
    gap: 10px;
    margin-top: 12px;
  }

  body.jdc-pickup-only.woocommerce-checkout .wc-block-components-checkbox__input {
    flex: 0 0 20px;
    margin-top: 1px;
  }

  body.jdc-pickup-only.woocommerce-checkout .wc-block-components-checkbox__label {
    font-size: .8rem;
    line-height: 1.45;
  }

  body.jdc-pickup-only.woocommerce-checkout .wc-block-components-checkout-place-order-button {
    min-height: 52px;
    margin-top: 18px;
  }
}
