/* Styles strictement limités aux écrans WooCommerce. */
body.woocommerce .site-content,
body.woocommerce-page .site-content {
  --cm-charcoal: #2b2b2b;
  --cm-charcoal-soft: #333333;
  --cm-cream: #d8c7a6;
  --cm-gold: #b89b5e;
  --cm-line: rgba(216, 199, 166, .42);
  background: var(--cm-charcoal);
  color: var(--cm-cream);
}

body.woocommerce .site-content h1,
body.woocommerce .site-content h2,
body.woocommerce .site-content h3,
body.woocommerce-page .site-content h1,
body.woocommerce-page .site-content h2,
body.woocommerce-page .site-content h3 {
  color: var(--cm-cream);
  font-family: "Cormorant Garamond", serif;
  font-weight: 600;
}

body.woocommerce .site-content a,
body.woocommerce-page .site-content a {
  color: var(--cm-cream) !important;
}

body.woocommerce .site-content a:hover,
body.woocommerce .site-content a:focus-visible,
body.woocommerce-page .site-content a:hover,
body.woocommerce-page .site-content a:focus-visible {
  color: var(--cm-gold) !important;
}

body.woocommerce .site-content :focus-visible,
body.woocommerce-page .site-content :focus-visible {
  outline: 2px solid var(--cm-gold) !important;
  outline-offset: 3px;
  box-shadow: none !important;
}

body.woocommerce .site-content ul.products,
body.woocommerce-page .site-content ul.products {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(1rem, 2.4vw, 2rem);
}

body.woocommerce .site-content ul.products::before,
body.woocommerce .site-content ul.products::after,
body.woocommerce-page .site-content ul.products::before,
body.woocommerce-page .site-content ul.products::after {
  display: none;
}

body.woocommerce .site-content ul.products li.product,
body.woocommerce-page .site-content ul.products li.product {
  float: none;
  width: auto;
  margin: 0;
  padding: clamp(1rem, 2vw, 1.5rem);
  border: 1px solid var(--cm-line);
  border-radius: 0;
  background: var(--cm-charcoal-soft);
  box-shadow: none;
  transition: border-color .2s ease, transform .2s ease;
}

body.woocommerce .site-content ul.products li.product:hover,
body.woocommerce-page .site-content ul.products li.product:hover {
  border-color: var(--cm-gold);
  transform: translateY(-3px);
}

body.woocommerce .site-content ul.products li.product a img,
body.woocommerce-page .site-content ul.products li.product a img {
  display: block;
  box-sizing: border-box;
  width: auto !important;
  max-width: 100%;
  height: clamp(360px, 40vw, 520px);
  margin: 0 auto 1rem !important;
  object-fit: contain !important;
  object-position: center;
  padding: 1.5rem 1rem;
  background: transparent;
}

body.woocommerce .site-content .ast-woo-product-category,
body.woocommerce .site-content .product_meta,
body.woocommerce .site-content .product_meta a,
body.woocommerce-page .site-content .ast-woo-product-category,
body.woocommerce-page .site-content .product_meta,
body.woocommerce-page .site-content .product_meta a {
  color: var(--cm-gold) !important;
  opacity: 1 !important;
}

body.woocommerce .site-content .ast-woo-product-category,
body.woocommerce-page .site-content .ast-woo-product-category {
  font-size: .82rem;
  font-weight: 600;
  letter-spacing: .08em;
  text-transform: uppercase;
}

body.single-product.woocommerce .site-content .woocommerce-product-gallery,
body.single-product.woocommerce-page .site-content .woocommerce-product-gallery {
  overflow: visible;
}

body.single-product.woocommerce .site-content .woocommerce-product-gallery__image img,
body.single-product.woocommerce-page .site-content .woocommerce-product-gallery__image img {
  display: block;
  width: 100%;
  height: min(68vh, 720px);
  min-height: 480px;
  margin: 0 auto;
  object-fit: contain;
  object-position: center;
}

body.woocommerce .site-content .woocommerce-loop-product__title,
body.woocommerce .site-content div.product .product_title,
body.woocommerce-page .site-content .woocommerce-loop-product__title,
body.woocommerce-page .site-content div.product .product_title {
  color: var(--cm-cream);
  font-family: "Cormorant Garamond", serif;
}

body.woocommerce .site-content .price,
body.woocommerce-page .site-content .price {
  color: var(--cm-gold) !important;
}

body.woocommerce .site-content a.button,
body.woocommerce .site-content button.button,
body.woocommerce .site-content input.button,
body.woocommerce-page .site-content a.button,
body.woocommerce-page .site-content button.button,
body.woocommerce-page .site-content input.button {
  min-height: 46px;
  padding: .8rem 1.15rem;
  border: 1px solid var(--cm-gold);
  border-radius: 0;
  background: transparent;
  color: var(--cm-cream) !important;
  font-weight: 600;
  letter-spacing: .04em;
  text-transform: uppercase;
}

body.woocommerce .site-content a.button:hover,
body.woocommerce .site-content button.button:hover,
body.woocommerce .site-content input.button:hover,
body.woocommerce-page .site-content a.button:hover,
body.woocommerce-page .site-content button.button:hover,
body.woocommerce-page .site-content input.button:hover {
  border-color: var(--cm-gold) !important;
  background: var(--cm-gold) !important;
  color: var(--cm-charcoal) !important;
  box-shadow: none !important;
}

body.woocommerce .site-content div.product div.summary,
body.woocommerce-page .site-content div.product div.summary,
body.woocommerce .site-content table.shop_table,
body.woocommerce-page .site-content table.shop_table,
body.woocommerce .site-content .cart_totals,
body.woocommerce-page .site-content .cart_totals,
body.woocommerce .site-content .woocommerce-MyAccount-navigation,
body.woocommerce-page .site-content .woocommerce-MyAccount-navigation,
body.woocommerce .site-content .woocommerce-MyAccount-content,
body.woocommerce-page .site-content .woocommerce-MyAccount-content {
  border: 1px solid var(--cm-line);
  border-radius: 0;
  background: var(--cm-charcoal-soft);
  color: var(--cm-cream);
  box-shadow: none;
}

body.woocommerce .site-content table.shop_table,
body.woocommerce-page .site-content table.shop_table,
body.woocommerce .site-content table.shop_table thead,
body.woocommerce-page .site-content table.shop_table thead,
body.woocommerce .site-content table.shop_table tbody,
body.woocommerce-page .site-content table.shop_table tbody,
body.woocommerce .site-content table.shop_table tr,
body.woocommerce-page .site-content table.shop_table tr,
body.woocommerce .site-content table.shop_table th,
body.woocommerce-page .site-content table.shop_table th,
body.woocommerce .site-content table.shop_table td,
body.woocommerce-page .site-content table.shop_table td,
body.woocommerce .site-content .cart_totals h2,
body.woocommerce-page .site-content .cart_totals h2,
body.woocommerce .site-content .woocommerce-checkout-review-order,
body.woocommerce-page .site-content .woocommerce-checkout-review-order,
body.woocommerce .site-content #payment,
body.woocommerce-page .site-content #payment,
body.woocommerce .site-content #payment div.payment_box,
body.woocommerce-page .site-content #payment div.payment_box {
  border-color: var(--cm-line) !important;
  background: var(--cm-charcoal-soft) !important;
  color: var(--cm-cream) !important;
}

body.woocommerce .site-content table.shop_table th,
body.woocommerce-page .site-content table.shop_table th,
body.woocommerce .site-content .cart_totals h2,
body.woocommerce-page .site-content .cart_totals h2 {
  color: var(--cm-cream) !important;
}

body.woocommerce .site-content table.shop_table td,
body.woocommerce-page .site-content table.shop_table td {
  border-top-color: var(--cm-line) !important;
}

body.woocommerce .site-content table.shop_table img,
body.woocommerce-page .site-content table.shop_table img {
  width: 72px;
  height: 94px;
  object-fit: contain;
  background: transparent;
}

body.woocommerce .site-content .woocommerce-tabs ul.tabs,
body.woocommerce-page .site-content .woocommerce-tabs ul.tabs,
body.woocommerce .site-content .woocommerce-tabs ul.tabs::before,
body.woocommerce-page .site-content .woocommerce-tabs ul.tabs::before {
  border-color: var(--cm-line) !important;
}

body.woocommerce .site-content .woocommerce-tabs ul.tabs li,
body.woocommerce-page .site-content .woocommerce-tabs ul.tabs li,
body.woocommerce .site-content .woocommerce-tabs ul.tabs li::before,
body.woocommerce .site-content .woocommerce-tabs ul.tabs li::after,
body.woocommerce-page .site-content .woocommerce-tabs ul.tabs li::before,
body.woocommerce-page .site-content .woocommerce-tabs ul.tabs li::after {
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

body.woocommerce .site-content .woocommerce-tabs ul.tabs li a,
body.woocommerce-page .site-content .woocommerce-tabs ul.tabs li a {
  color: rgba(216, 199, 166, .7) !important;
}

body.woocommerce .site-content .woocommerce-tabs ul.tabs li.active,
body.woocommerce .site-content .woocommerce-tabs ul.tabs li:hover,
body.woocommerce-page .site-content .woocommerce-tabs ul.tabs li.active,
body.woocommerce-page .site-content .woocommerce-tabs ul.tabs li:hover {
  border-bottom: 3px solid var(--cm-gold) !important;
}

body.woocommerce .site-content .woocommerce-tabs ul.tabs li.active a,
body.woocommerce .site-content .woocommerce-tabs ul.tabs li:hover a,
body.woocommerce-page .site-content .woocommerce-tabs ul.tabs li.active a,
body.woocommerce-page .site-content .woocommerce-tabs ul.tabs li:hover a {
  color: var(--cm-cream) !important;
}

body.woocommerce .site-content div.product div.summary,
body.woocommerce-page .site-content div.product div.summary {
  padding: clamp(1.2rem, 3vw, 2.5rem);
}

body.woocommerce .site-content input.input-text,
body.woocommerce .site-content textarea,
body.woocommerce .site-content select,
body.woocommerce .site-content input.qty,
body.woocommerce-page .site-content input.input-text,
body.woocommerce-page .site-content textarea,
body.woocommerce-page .site-content select,
body.woocommerce-page .site-content input.qty {
  min-height: 48px;
  border: 1px solid var(--cm-line);
  border-radius: 0;
  background: #222222 !important;
  color: var(--cm-cream) !important;
  box-shadow: none !important;
}

body.woocommerce .site-content input::placeholder,
body.woocommerce .site-content textarea::placeholder,
body.woocommerce-page .site-content input::placeholder,
body.woocommerce-page .site-content textarea::placeholder {
  color: rgba(216, 199, 166, .62) !important;
  opacity: 1;
}

body.woocommerce .site-content input[type="radio"],
body.woocommerce .site-content input[type="checkbox"],
body.woocommerce-page .site-content input[type="radio"],
body.woocommerce-page .site-content input[type="checkbox"] {
  accent-color: var(--cm-gold) !important;
}

/* Tous les libellés WooCommerce restent lisibles sur le fond anthracite. */
body.woocommerce .site-content label,
body.woocommerce-page .site-content label,
body.woocommerce .site-content table.variations th.label,
body.woocommerce-page .site-content table.variations th.label {
  color: var(--cm-cream) !important;
  opacity: 1 !important;
}

body.woocommerce .site-content #review_form #respond input#submit,
body.woocommerce-page .site-content #review_form #respond input#submit {
  min-height: 46px;
  padding: .8rem 1.15rem;
  border: 1px solid var(--cm-gold) !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: var(--cm-cream) !important;
  box-shadow: none !important;
  font-weight: 600;
  letter-spacing: .04em;
  text-transform: uppercase;
}

body.woocommerce .site-content #review_form #respond input#submit:hover,
body.woocommerce .site-content #review_form #respond input#submit:focus-visible,
body.woocommerce-page .site-content #review_form #respond input#submit:hover,
body.woocommerce-page .site-content #review_form #respond input#submit:focus-visible {
  background: var(--cm-gold) !important;
  color: var(--cm-charcoal) !important;
}

body.woocommerce .site-content .woocommerce-shipping-methods label,
body.woocommerce-page .site-content .woocommerce-shipping-methods label,
body.woocommerce .site-content .woocommerce-shipping-destination,
body.woocommerce-page .site-content .woocommerce-shipping-destination,
body.woocommerce .site-content .woocommerce-shipping-calculator,
body.woocommerce-page .site-content .woocommerce-shipping-calculator {
  color: var(--cm-cream) !important;
}

body.woocommerce .site-content .cm-pickup-address,
body.woocommerce-page .site-content .cm-pickup-address {
  margin: .35rem 0 .75rem 1.65rem;
  color: rgba(216, 199, 166, .84);
  font-size: .88rem;
  font-style: normal;
  line-height: 1.4;
}

body.cm-local-pickup-selected.woocommerce .site-content .woocommerce-shipping-destination,
body.cm-local-pickup-selected.woocommerce-page .site-content .woocommerce-shipping-destination {
  display: none !important;
}

/* Le paiement express appartient à la validation de commande, pas aux fiches ni au panier. */
body.single-product .site-content .wc-stripe-product-checkout-container,
body.single-product .site-content .wcpay-express-checkout-wrapper,
body.single-product .site-content .wc-block-components-express-payment,
body.single-product .site-content [id*="payment-request"],
body.single-product .site-content [id*="express-checkout"],
body.woocommerce-cart .site-content .wc-stripe-cart-checkout-container,
body.woocommerce-cart .site-content .wcpay-express-checkout-wrapper,
body.woocommerce-cart .site-content .wc-block-components-express-payment,
body.woocommerce-cart .site-content [id*="payment-request"],
body.woocommerce-cart .site-content [id*="express-checkout"] {
  display: none !important;
}

/* Compatibilité avec le panier et la commande WooCommerce en blocs. */
body.woocommerce .site-content .wc-block-cart,
body.woocommerce-page .site-content .wc-block-cart,
body.woocommerce .site-content .wc-block-checkout,
body.woocommerce-page .site-content .wc-block-checkout,
body.woocommerce .site-content .wc-block-components-sidebar,
body.woocommerce-page .site-content .wc-block-components-sidebar,
body.woocommerce .site-content .wc-block-components-totals-wrapper,
body.woocommerce-page .site-content .wc-block-components-totals-wrapper,
body.woocommerce .site-content .wc-block-components-order-summary,
body.woocommerce-page .site-content .wc-block-components-order-summary,
body.woocommerce .site-content .wc-block-components-panel,
body.woocommerce-page .site-content .wc-block-components-panel,
body.woocommerce .site-content .wc-block-components-radio-control,
body.woocommerce-page .site-content .wc-block-components-radio-control {
  border-color: var(--cm-line) !important;
  background: var(--cm-charcoal-soft) !important;
  color: var(--cm-cream) !important;
}

body.woocommerce .site-content .wc-block-components-product-name,
body.woocommerce-page .site-content .wc-block-components-product-name,
body.woocommerce .site-content .wc-block-components-totals-item__label,
body.woocommerce-page .site-content .wc-block-components-totals-item__label,
body.woocommerce .site-content .wc-block-components-totals-item__value,
body.woocommerce-page .site-content .wc-block-components-totals-item__value,
body.woocommerce .site-content .wc-block-components-radio-control__label,
body.woocommerce-page .site-content .wc-block-components-radio-control__label,
body.woocommerce .site-content .wc-block-components-formatted-money-amount,
body.woocommerce-page .site-content .wc-block-components-formatted-money-amount {
  color: var(--cm-cream) !important;
}

body.woocommerce .site-content .wc-block-components-text-input input,
body.woocommerce-page .site-content .wc-block-components-text-input input,
body.woocommerce .site-content .wc-block-components-combobox .wc-block-components-combobox-control input,
body.woocommerce-page .site-content .wc-block-components-combobox .wc-block-components-combobox-control input {
  border-color: var(--cm-line) !important;
  background: #222222 !important;
  color: var(--cm-cream) !important;
}

body.woocommerce .site-content .wc-block-components-button,
body.woocommerce-page .site-content .wc-block-components-button {
  border: 1px solid var(--cm-gold) !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: var(--cm-cream) !important;
  box-shadow: none !important;
}

body.woocommerce .site-content .wc-block-components-button:hover,
body.woocommerce .site-content .wc-block-components-button:focus-visible,
body.woocommerce-page .site-content .wc-block-components-button:hover,
body.woocommerce-page .site-content .wc-block-components-button:focus-visible {
  background: var(--cm-gold) !important;
  color: var(--cm-charcoal) !important;
}

body.woocommerce .site-content .woocommerce-info,
body.woocommerce .site-content .woocommerce-message,
body.woocommerce-page .site-content .woocommerce-info,
body.woocommerce-page .site-content .woocommerce-message {
  border-top-color: var(--cm-gold);
  background: var(--cm-charcoal-soft);
  color: var(--cm-cream);
}

body.woocommerce .site-content .woocommerce-info::before,
body.woocommerce .site-content .woocommerce-message::before,
body.woocommerce-page .site-content .woocommerce-info::before,
body.woocommerce-page .site-content .woocommerce-message::before {
  color: var(--cm-gold);
}

body.woocommerce-checkout .site-content #order_review_heading {
  box-sizing: border-box;
  margin-bottom: 0 !important;
  padding: 1.5rem clamp(1rem, 2.5vw, 2rem) !important;
  border: 1px solid var(--cm-line) !important;
  border-bottom: 0 !important;
  background: var(--cm-charcoal-soft) !important;
}

body.woocommerce-checkout .site-content #order_review {
  box-sizing: border-box;
  border: 1px solid var(--cm-line) !important;
  border-top: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}

.cm-delivery-guidance {
  margin: 1rem 0 1.5rem;
  padding: .9rem 1rem;
  border-left: 3px solid var(--cm-gold);
  background: rgba(184, 155, 94, .08);
  color: var(--cm-cream) !important;
  line-height: 1.55;
}

.cm-delivery-estimate {
  margin: 1rem 0 !important;
  padding: .8rem 1rem;
  border-left: 3px solid var(--cm-gold);
  background: rgba(216, 199, 166, .08);
  color: var(--cm-cream) !important;
}

.cm-delivery-summary {
  display: grid;
  gap: .35rem;
  margin: 1.25rem 0;
  padding: 1rem;
  border: 1px solid var(--cm-line);
  color: var(--cm-cream);
}

.cm-delivery-summary strong {
  color: var(--cm-gold);
  font-family: Montserrat, sans-serif;
  font-size: .78rem;
  letter-spacing: .08em;
  text-transform: uppercase;
}

/* Le panier présente les modes de livraison, mais ne réaffiche jamais
   l'adresse mémorisée du compte administrateur ou d'un ancien client. */
body.woocommerce-cart .site-content .woocommerce-shipping-destination,
body.woocommerce-cart .site-content .shipping-calculator-button,
body.woocommerce-cart .site-content .shipping-calculator-form {
  display: none !important;
}

.cm-cart-address-note {
  margin: 1rem 0 0;
  padding: .85rem 1rem;
  border-left: 3px solid var(--cm-gold);
  background: rgba(184, 155, 94, .08);
  color: var(--cm-cream) !important;
  line-height: 1.5;
}

body.woocommerce-checkout .site-content #ship-to-different-address {
  margin: 1.25rem 0 !important;
}
body.woocommerce-checkout .site-content #ship-to-different-address label,
body.woocommerce-checkout .site-content #ship-to-different-address span {
  color: var(--cm-cream) !important;
}

/* Page de confirmation : cohérence avec le thème sombre de la boutique. */
body.woocommerce-order-received .site-content .woocommerce-order-details__title,
body.woocommerce-order-received .site-content .woocommerce-column__title {
  box-sizing: border-box;
  margin: 1.75rem 0 0 !important;
  padding: 1.35rem 1.5rem !important;
  border: 1px solid var(--cm-line) !important;
  border-bottom: 0 !important;
  background: var(--cm-charcoal-soft) !important;
  color: var(--cm-cream) !important;
}

body.woocommerce-order-received .site-content .woocommerce-order-details,
body.woocommerce-order-received .site-content .woocommerce-customer-details,
body.woocommerce-order-received .site-content .woocommerce-columns,
body.woocommerce-order-received .site-content .woocommerce-column,
body.woocommerce-order-received .site-content .woocommerce-column address {
  background: transparent !important;
  color: var(--cm-cream) !important;
}

body.woocommerce-order-received .site-content .woocommerce-column address {
  box-sizing: border-box;
  margin: 0 !important;
  padding: 1.5rem !important;
  border: 1px solid var(--cm-line) !important;
  border-radius: 0 !important;
  background: var(--cm-charcoal-soft) !important;
}

body.woocommerce-order-received .site-content .woocommerce-order-overview {
  color: var(--cm-cream) !important;
}

body.woocommerce-order-received .site-content .woocommerce-order-overview li,
body.woocommerce-order-received .site-content .woocommerce-order-overview li strong,
body.woocommerce-order-received .site-content .woocommerce-order-details a,
body.woocommerce-order-received .site-content .woocommerce-customer-details a {
  color: var(--cm-cream) !important;
}

body.woocommerce-order-received .site-content .woocommerce-order-overview li {
  border-color: var(--cm-line) !important;
}

@media (max-width: 921px) {
  body.woocommerce .site-content ul.products,
  body.woocommerce-page .site-content ul.products {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 600px) {
  body.woocommerce .site-content ul.products,
  body.woocommerce-page .site-content ul.products {
    grid-template-columns: minmax(0, 1fr);
  }

  body.woocommerce .site-content div.product div.summary,
  body.woocommerce-page .site-content div.product div.summary {
    padding: 1rem;
  }
}
