/* ==========================================================================
   Pousse Mousse — WooCommerce (pages classiques + blocs Panier / Commande)
   La mise en page de base de WooCommerce (woocommerce-layout) est conservée ;
   ce fichier remplace ses couleurs et typographies.
   ========================================================================== */

/* ---------- Boutons WooCommerce ---------- */
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button, .woocommerce #respond input#submit,
.woocommerce-page a.button, .woocommerce-page button.button,
.wc-block-components-button:not(.is-link), .wc-block-cart__submit-button, .wc-block-components-checkout-place-order-button,
.woocommerce .wp-element-button, .wc-block-grid__product-add-to-cart .wp-block-button__link, .wp-block-woocommerce-product-button .wp-block-button__link {
	display: inline-flex; align-items: center; justify-content: center; gap: .5em;
	min-height: 48px; padding: .7em 1.4em;
	font-family: var(--pm-font); font-weight: 700; font-size: 1rem; font-stretch: 90%; line-height: 1.1;
	color: var(--pm-white); background: var(--pm-red); border: 2px solid var(--pm-red); border-radius: var(--pm-radius);
	text-decoration: none; cursor: pointer; box-shadow: none;
	transition: background-color .15s ease, border-color .15s ease;
}
.woocommerce a.button:hover, .woocommerce button.button:hover, .woocommerce input.button:hover, .woocommerce-page a.button:hover, .woocommerce-page button.button:hover,
.wc-block-components-button:not(.is-link):hover, .wc-block-cart__submit-button:hover, .woocommerce .wp-element-button:hover, .wp-block-woocommerce-product-button .wp-block-button__link:hover {
	color: var(--pm-white); background: var(--pm-red-dark); border-color: var(--pm-red-dark);
}
.woocommerce a.button.alt, .woocommerce button.button.alt { background: var(--pm-red); border-color: var(--pm-red); }
.woocommerce button.button:disabled, .woocommerce button.button:disabled[disabled], .wc-block-components-button:disabled { opacity: .5; cursor: not-allowed; }
.woocommerce .button.loading { opacity: .7; }
.woocommerce .button.loading::after { display: none; }
.woocommerce a.added_to_cart { display: inline-block; margin-left: 14px; font-weight: 700; color: var(--pm-ink); text-decoration: underline; text-decoration-color: var(--pm-red); text-decoration-thickness: 2px; }
.wc-block-components-button .wc-block-components-button__text { font-weight: 700; }

/* ---------- Prix ---------- */
.woocommerce .price, .woocommerce-Price-amount { font-variant-numeric: tabular-nums; }
.woocommerce-price-suffix { font-size: .78em; font-weight: 600; color: var(--pm-steel-ink); margin-left: .25em; }
.woocommerce .price del { color: var(--pm-steel-ink); font-weight: 500; }
.woocommerce .price ins { text-decoration: none; }
.woocommerce span.onsale { position: absolute; top: 14px; left: 14px; z-index: 2; min-width: 0; min-height: 0; padding: 4px 10px; margin: 0; border-radius: 999px; background: var(--pm-red); color: var(--pm-white); font-size: .8rem; font-weight: 700; line-height: 1.4; }

/* ---------- En-tête boutique ---------- */
.pm-shop-main { padding-bottom: var(--pm-section); }
.pm-shop-head { padding-block: clamp(40px, 6vw, 72px) clamp(28px, 4vw, 48px); }
.pm-shop-head__title { margin: 0 0 .25em; }
.pm-shop-head__lead { margin: 0; max-width: 52ch; font-size: 1.1rem; }
.pm-crumbs { padding-top: 28px; margin-bottom: 20px; font-size: .9rem; color: var(--pm-steel-ink); }
.pm-crumbs a { color: var(--pm-steel-ink); text-decoration: none; }
.pm-crumbs a:hover { color: var(--pm-ink); text-decoration: underline; }
.pm-crumb-sep { margin-inline: 8px; color: var(--pm-steel-3); }

/* ---------- Grille produits ---------- */
.woocommerce ul.products { display: grid; grid-template-columns: repeat(var(--pm-cols, 2), minmax(0, 1fr)); gap: clamp(24px, 3vw, 40px); margin: 0; padding: 0; }
.woocommerce ul.products::before, .woocommerce ul.products::after { display: none; }
.woocommerce ul.products.columns-1 { --pm-cols: 1; }
.woocommerce ul.products.columns-3 { --pm-cols: 3; }
.woocommerce ul.products.columns-4 { --pm-cols: 4; }
.woocommerce ul.products li.product, .woocommerce-page ul.products li.product,
.woocommerce ul.products[class*="columns-"] li.product, .woocommerce-page ul.products[class*="columns-"] li.product { position: relative; clear: none; display: flex; flex-direction: column; float: none; width: auto; margin: 0; padding: 0; text-align: left; }
.woocommerce ul.products li.product a.woocommerce-LoopProduct-link { display: block; color: inherit; text-decoration: none; }
.woocommerce ul.products li.product a img { width: 100%; margin: 0 0 18px; aspect-ratio: 3 / 2; object-fit: contain; padding: clamp(16px, 3vw, 32px); background: var(--pm-steel); border-radius: var(--pm-radius-lg); transition: transform .3s ease; }
.woocommerce ul.products li.product a:hover img { transform: scale(1.015); }
.woocommerce ul.products li.product .woocommerce-loop-product__title { padding: 0; margin: 0 0 .25em; font-size: 1.7rem; font-stretch: 75%; font-weight: 750; color: var(--pm-ink); }
.woocommerce ul.products li.product a:hover .woocommerce-loop-product__title { color: var(--pm-red); }
.woocommerce ul.products li.product .pm-card__excerpt { margin: 0 0 12px; max-width: 46ch; color: var(--pm-text); }
.woocommerce ul.products li.product .price { display: block; margin: 0 0 16px; font-size: 1.3rem; font-weight: 700; color: var(--pm-ink); }
.woocommerce ul.products li.product .button { margin-top: auto; align-self: flex-start; }
@media (max-width: 640px) { .woocommerce ul.products, .woocommerce ul.products[class*="columns-"] { --pm-cols: 1; } }
@media (min-width: 641px) and (max-width: 980px) { .woocommerce ul.products.columns-3, .woocommerce ul.products.columns-4 { --pm-cols: 2; } }

/* ---------- Fiche produit ---------- */
.woocommerce div.product { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: clamp(28px, 5vw, 72px); align-items: start; }
.woocommerce div.product > * { grid-column: 1 / -1; }
.woocommerce div.product div.images, .woocommerce div.product div.summary { float: none; width: auto; margin: 0; }
.woocommerce div.product div.images { grid-column: 1; position: relative; }
/* Woo Variation Gallery remplace div.images (et impose float + max-width en !important). */
.woocommerce div.product .woo-variation-product-gallery { grid-column: 1; display: block; float: none; width: auto; min-width: 0; max-width: none !important; margin: 0; }
/* Pas de sticky : son bloc conteneur est div.product entier, le résumé recouvrirait les onglets et les avis. */
.woocommerce div.product div.summary { grid-column: 2; }
.woocommerce div.product div.images .woocommerce-product-gallery__wrapper { border-radius: var(--pm-radius-lg); background: var(--pm-steel); }
.woocommerce div.product div.images .woocommerce-product-gallery__image img { padding: clamp(16px, 4vw, 48px); aspect-ratio: 3 / 2; object-fit: contain; }
.woocommerce div.product div.images .flex-viewport { border-radius: var(--pm-radius-lg); background: var(--pm-steel); }
.woocommerce div.product div.images .flex-control-thumbs { display: flex; gap: 12px; margin: 12px 0 0; padding: 0; list-style: none; }
.woocommerce div.product div.images .flex-control-thumbs li { width: 96px; float: none; }
.woocommerce div.product div.images .flex-control-thumbs li img { padding: 6px; border-radius: var(--pm-radius); background: var(--pm-steel); border: 2px solid transparent; opacity: .7; }
.woocommerce div.product div.images .flex-control-thumbs li img.flex-active, .woocommerce div.product div.images .flex-control-thumbs li img:hover { opacity: 1; border-color: var(--pm-ink); }
.woocommerce div.product div.images .woocommerce-product-gallery__trigger {
	position: absolute; top: 14px; right: 14px; z-index: 9; display: grid; place-items: center; width: 44px; height: 44px;
	border-radius: 50%; background: var(--pm-white) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%231b1412' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='10.5' cy='10.5' r='6.5'/%3E%3Cpath d='M15.5 15.5L20 20'/%3E%3C/svg%3E") center no-repeat;
	box-shadow: var(--pm-shadow); text-indent: -999px; overflow: hidden;
}
.woocommerce div.product div.images .woocommerce-product-gallery__trigger span { display: none; }
.woocommerce div.product .product_title { font-size: clamp(2.4rem, 5vw, 4rem); font-stretch: 62%; font-weight: 800; line-height: .95; margin-bottom: .3em; }
.woocommerce div.product p.price, .woocommerce div.product span.price { margin-bottom: 20px; font-size: 2rem; font-weight: 750; font-stretch: 85%; color: var(--pm-ink); }
.woocommerce div.product .woocommerce-product-details__short-description { margin-bottom: 24px; font-size: 1.08rem; }
.woocommerce div.product .woocommerce-product-details__short-description p:last-child { margin-bottom: 0; }
.woocommerce div.product form.cart { display: flex; flex-wrap: wrap; align-items: stretch; gap: 12px; margin: 0 0 28px; }
.woocommerce div.product form.cart::before, .woocommerce div.product form.cart::after { display: none; }
.woocommerce div.product form.cart div.quantity { float: none; margin: 0; }
.woocommerce div.product form.cart .button { float: none; flex: 1 1 220px; min-height: 56px; font-size: 1.08rem; }
.woocommerce div.product .stock { font-weight: 600; color: var(--pm-success); }
.woocommerce div.product .stock.out-of-stock { color: var(--pm-red); }
.woocommerce div.product .product_meta { font-size: .88rem; color: var(--pm-steel-ink); }
.woocommerce div.product .product_meta > span { display: block; }
.woocommerce div.product .product_meta a { color: inherit; }

.quantity { display: inline-flex; align-items: stretch; border: 1.5px solid var(--pm-steel-3); border-radius: var(--pm-radius); background: var(--pm-white); overflow: hidden; }
.quantity:focus-within { border-color: var(--pm-ink); box-shadow: 0 0 0 3px rgba(232, 163, 23, .45); }
.woocommerce .quantity .qty, .quantity input.qty { width: 3.4em; min-height: 52px; padding: 0; text-align: center; border: 0; border-radius: 0; font-size: 1.1rem; font-weight: 700; box-shadow: none; -moz-appearance: textfield; }
.quantity input.qty::-webkit-inner-spin-button, .quantity input.qty::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }
.pm-qty-btn { width: 44px; border: 0; background: none; font: inherit; font-size: 1.3rem; font-weight: 600; color: var(--pm-ink); cursor: pointer; }
.pm-qty-btn:hover { background: var(--pm-steel); }
.pm-qty-btn:focus-visible { box-shadow: inset 0 0 0 3px var(--pm-amber); border-radius: 0; }
.woocommerce-cart-form .quantity .qty, .shop_table .quantity .qty { min-height: 44px; }

.pm-tiers { margin: 0 0 24px; }
.pm-tiers table { width: 100%; border-collapse: collapse; font-size: .95rem; }
.pm-tiers caption { text-align: left; font-weight: 700; color: var(--pm-ink); margin-bottom: 8px; }
.pm-tiers th, .pm-tiers td { padding: 9px 12px; text-align: left; border-bottom: 1px solid var(--pm-steel-2); font-variant-numeric: tabular-nums; }
.pm-tiers thead th { font-size: .82rem; font-weight: 600; color: var(--pm-steel-ink); border-bottom-color: var(--pm-steel-3); }
.pm-tiers td:last-child { font-weight: 700; color: var(--pm-ink); }

.pm-reassure { list-style: none; margin: 0 0 24px; padding: 18px 0 0; border-top: 1px solid var(--pm-steel-2); display: grid; gap: 10px; }
.pm-reassure li { display: flex; align-items: center; gap: 12px; font-weight: 600; color: var(--pm-ink); font-size: .96rem; }
.pm-reassure .pm-icon { flex: none; color: var(--pm-red); }

/* Onglets */
.woocommerce div.product .woocommerce-tabs { margin-top: clamp(32px, 5vw, 64px); }
.woocommerce div.product .woocommerce-tabs ul.tabs { display: flex; gap: 4px; margin: 0 0 32px; padding: 0; border-bottom: 1.5px solid var(--pm-steel-2); overflow-x: auto; }
.woocommerce div.product .woocommerce-tabs ul.tabs::before, .woocommerce div.product .woocommerce-tabs ul.tabs::after { display: none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li { margin: 0; padding: 0; background: none; border: 0; border-radius: 0; }
.woocommerce div.product .woocommerce-tabs ul.tabs li::before, .woocommerce div.product .woocommerce-tabs ul.tabs li::after { display: none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li a { display: block; padding: 12px 18px; font-weight: 700; font-stretch: 90%; color: var(--pm-steel-ink); border-bottom: 3px solid transparent; margin-bottom: -1.5px; white-space: nowrap; }
.woocommerce div.product .woocommerce-tabs ul.tabs li a:hover { color: var(--pm-ink); }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a { color: var(--pm-ink); border-bottom-color: var(--pm-red); }
.woocommerce div.product .woocommerce-tabs .panel { max-width: 760px; margin: 0; }
.woocommerce div.product .woocommerce-tabs .panel h2 { font-size: 1.6rem; margin-top: 1.4em; }
.woocommerce div.product .woocommerce-tabs .panel h2:first-child { margin-top: 0; }
.woocommerce div.product .woocommerce-tabs .panel h3 { font-size: 1.25rem; margin-top: 1.4em; }
.woocommerce div.product .woocommerce-tabs .panel ul { padding-left: 1.3em; }
.woocommerce div.product .woocommerce-tabs .panel li::marker { color: var(--pm-red); }
.woocommerce table.shop_attributes { border: 0; }
.woocommerce table.shop_attributes th, .woocommerce table.shop_attributes td { padding: 10px 12px; border: 0; border-bottom: 1px solid var(--pm-steel-2); background: none; font-style: normal; text-align: left; }

/* Avis */
.woocommerce #reviews #comments ol.commentlist { margin: 0 0 32px; padding: 0; list-style: none; }
.woocommerce #reviews #comments ol.commentlist li { margin: 0 0 16px; padding: 0; }
.woocommerce #reviews #comments ol.commentlist li .comment-text { padding: 18px 20px; border: 1.5px solid var(--pm-steel-2); border-radius: var(--pm-radius); }
.woocommerce #reviews .comment-text .star-rating { display: block; margin-bottom: 10px; }
.woocommerce #reviews .comment-text p.meta { margin: 0 0 8px; font-size: .92rem; color: var(--pm-steel-ink); }
.woocommerce #reviews .woocommerce-review__author { color: var(--pm-ink); }
.woocommerce #reviews .woocommerce-review__verified { font-style: normal; color: var(--pm-success); }
.woocommerce #reviews .comment-text .description p:last-child { margin-bottom: 0; }
/* Étoiles en masque SVG : la police « star » de woocommerce-general n'est plus chargée. */
.star-rating, .woocommerce p.stars { --pm-star: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2.5l2.9 6.1 6.6.8-4.9 4.6 1.3 6.6L12 17.3l-5.9 3.3 1.3-6.6-4.9-4.6 6.6-.8z'/%3E%3C/svg%3E"); }
.star-rating { position: relative; display: inline-block; width: 5em; height: 1em; font-size: 1rem; line-height: 1; overflow: hidden; vertical-align: -.125em; }
.star-rating span { position: absolute; inset: 0 auto 0 0; overflow: hidden; text-indent: -999em; }
.star-rating::before, .star-rating span::before { content: ""; position: absolute; inset: 0 auto 0 0; width: 5em; -webkit-mask: var(--pm-star) 0 0 / 1em 1em repeat-x; mask: var(--pm-star) 0 0 / 1em 1em repeat-x; background: var(--pm-steel-2); }
.star-rating span::before { background: var(--pm-amber); }
.woocommerce p.stars { margin: 4px 0 0; line-height: 1; }
.woocommerce p.stars a { position: relative; display: inline-block; width: 1.75rem; height: 1.75rem; margin-right: 2px; text-indent: -999em; overflow: hidden; border-radius: 4px; }
.woocommerce p.stars a::before { content: ""; position: absolute; inset: 0; -webkit-mask: var(--pm-star) center / contain no-repeat; mask: var(--pm-star) center / contain no-repeat; background: var(--pm-steel-3); }
.woocommerce p.stars a:focus-visible { outline: 0; box-shadow: var(--pm-focus); }
.woocommerce p.stars:hover a::before, .woocommerce p.stars.selected a:not(.active)::before, .woocommerce p.stars.selected a.active::before { background: var(--pm-amber); }
.woocommerce p.stars a:hover ~ a::before, .woocommerce p.stars.selected a.active ~ a::before { background: var(--pm-steel-3); }
.woocommerce p.stars:hover a:hover ~ a::before { background: var(--pm-steel-3); }
#review_form #respond { padding: 24px; background: var(--pm-steel); border-radius: var(--pm-radius-lg); }

/* Produits associés */
.woocommerce .related.products, .woocommerce .upsells.products { margin-top: clamp(48px, 7vw, 96px); padding-top: clamp(32px, 4vw, 48px); border-top: 1.5px solid var(--pm-steel-2); }
.woocommerce .related.products > h2, .woocommerce .upsells.products > h2 { margin-bottom: 28px; }

@media (max-width: 860px) {
	.woocommerce div.product { grid-template-columns: 1fr; }
	.woocommerce div.product div.images, .woocommerce div.product .woo-variation-product-gallery, .woocommerce div.product div.summary { grid-column: 1; position: static; }
}

/* ---------- Notices ---------- */
.woocommerce-notices-wrapper:empty { display: none; }
.woocommerce-message, .woocommerce-info, .woocommerce-error, .woocommerce-noreviews, p.no-comments {
	display: flex; flex-wrap: wrap; align-items: center; gap: 10px 20px;
	margin: 0 0 24px; padding: 16px 20px; list-style: none;
	background: var(--pm-steel); color: var(--pm-ink); border: 0; border-left: 4px solid var(--pm-ink); border-radius: var(--pm-radius);
	font-weight: 500;
}
.woocommerce-message::before, .woocommerce-info::before, .woocommerce-error::before { display: none; }
.woocommerce-message { border-left-color: var(--pm-success); }
.woocommerce-error { border-left-color: var(--pm-red); flex-direction: column; align-items: flex-start; }
.woocommerce-error li { margin: 0; }
.woocommerce-message .button, .woocommerce-info .button { order: 2; margin-left: auto; min-height: 40px; padding: .5em 1em; background: transparent; color: var(--pm-ink); border-color: var(--pm-ink); }
.woocommerce-message .button:hover, .woocommerce-info .button:hover { background: var(--pm-ink); color: var(--pm-white); border-color: var(--pm-ink); }
.wc-block-components-notice-banner { border-radius: var(--pm-radius); font-family: var(--pm-font); }
.wc-block-components-notice-banner.is-success { border-color: var(--pm-success); background: #eef6f1; }
.wc-block-components-notice-banner.is-error { border-color: var(--pm-red); background: #fbeef0; }
.wc-block-components-notice-banner.is-info { border-color: var(--pm-ink); background: var(--pm-steel); }

/* ---------- Pages Panier / Commande / Compte (titre + largeur) ---------- */
.pm-page--shop .pm-content { max-width: calc(var(--pm-wrap) + var(--pm-gutter) * 2); }
.pm-page--shop .pm-content > .alignwide { width: 100%; margin-left: 0; transform: none; }

/* ---------- Blocs Panier et Commande ---------- */
.wp-block-woocommerce-cart, .wp-block-woocommerce-checkout { font-family: var(--pm-font); color: var(--pm-text); }
.wc-block-components-sidebar-layout { gap: 0; }
.wc-block-components-sidebar-layout .wc-block-components-main { padding-right: clamp(16px, 4%, 48px); }
.wc-block-components-sidebar.wc-block-cart__sidebar, .wc-block-components-sidebar.wc-block-checkout__sidebar {
	padding: 24px clamp(18px, 3vw, 32px); background: var(--pm-steel); border-radius: var(--pm-radius-lg);
}
.wc-block-cart__sidebar .wc-block-components-panel, .wc-block-checkout__sidebar .wc-block-components-panel { border: 0; }
.wc-block-checkout__sidebar .wp-block-woocommerce-checkout-order-summary-block, .wc-block-checkout__sidebar .wc-block-components-checkout-order-summary__content { border: 0 !important; padding: 0; }
.wc-block-components-totals-wrapper { border-color: var(--pm-steel-2) !important; }
.wc-block-components-totals-footer-item .wc-block-components-totals-item__label, .wc-block-components-totals-footer-item .wc-block-components-totals-item__value { font-size: 1.25rem; font-weight: 750; color: var(--pm-ink); }
.wc-block-cart .wc-block-cart__totals-title, .wc-block-components-checkout-order-summary__title-text, .wc-block-components-title.wc-block-components-title {
	font-family: var(--pm-font); font-size: 1.3rem; font-stretch: 85%; font-weight: 750; color: var(--pm-ink); text-transform: none; letter-spacing: 0;
}
.wc-block-cart-items { border-collapse: collapse; }
.wc-block-cart-items th { font-size: .82rem !important; font-weight: 600; color: var(--pm-steel-ink); text-transform: none !important; letter-spacing: 0 !important; }
.wc-block-cart-items td, .wc-block-cart-items th { border-color: var(--pm-steel-2) !important; }
.wc-block-cart-item__image img { background: var(--pm-steel); border-radius: var(--pm-radius); padding: 6px; }
.wc-block-cart-items .wc-block-components-product-name, .wc-block-components-order-summary .wc-block-components-product-name { font-size: 1.15rem; font-weight: 700; font-stretch: 85%; color: var(--pm-ink) !important; text-decoration: none; }
.wc-block-components-product-name:hover { color: var(--pm-red) !important; }
.wc-block-cart-item__prices, .wc-block-components-product-price { font-variant-numeric: tabular-nums; }
.wc-block-components-quantity-selector { border-radius: var(--pm-radius) !important; border-color: var(--pm-steel-3) !important; }
.wc-block-components-quantity-selector::after { border-color: var(--pm-steel-3) !important; border-radius: var(--pm-radius) !important; }
.wc-block-components-quantity-selector input.wc-block-components-quantity-selector__input { font-weight: 700; }
.wc-block-cart-item__remove-link { color: var(--pm-steel-ink) !important; font-size: .85rem !important; }
.wc-block-cart-item__remove-link:hover { color: var(--pm-red) !important; }

.wc-block-components-text-input input, .wc-block-components-text-input input[type], .wc-blocks-components-select__select, .wc-block-components-textarea, .wc-block-components-combobox .wc-block-components-combobox-control input.components-combobox-control__input {
	border: 1.5px solid var(--pm-steel-3) !important; border-radius: var(--pm-radius) !important; font-family: var(--pm-font) !important; color: var(--pm-ink) !important; background-color: var(--pm-white) !important;
}
.wc-block-components-text-input input:focus, .wc-blocks-components-select__select:focus, .wc-block-components-textarea:focus { border-color: var(--pm-ink) !important; box-shadow: 0 0 0 3px rgba(232, 163, 23, .45) !important; outline: none !important; }
.wc-block-components-text-input label, .wc-blocks-components-select__label { color: var(--pm-steel-ink) !important; font-weight: 500; }
.wc-block-components-validation-error { color: var(--pm-red); }
.wc-block-components-text-input.has-error input { border-color: var(--pm-red) !important; }
.wc-block-components-radio-control__option, .wc-block-components-radio-control-accordion-option { border-color: var(--pm-steel-2) !important; }
.wc-block-components-radio-control--highlight-checked .wc-block-components-radio-control-accordion-option--checked-option-highlighted,
.wc-block-components-radio-control--highlight-checked label.wc-block-components-radio-control__option--checked-option-highlighted { box-shadow: inset 0 0 0 2px var(--pm-ink) !important; border-radius: var(--pm-radius); }
.wc-block-components-radio-control__input:checked { border-color: var(--pm-ink) !important; }
.wc-block-components-radio-control__input:checked::before { background: var(--pm-ink) !important; }
.wc-block-components-checkbox .wc-block-components-checkbox__input[type="checkbox"]:checked { background: var(--pm-ink); border-color: var(--pm-ink); }
.wc-block-components-checkbox .wc-block-components-checkbox__mark { fill: var(--pm-white); }
.wc-block-checkout__actions_row .wc-block-components-checkout-return-to-cart-button { color: var(--pm-ink); font-weight: 600; }
.wc-block-components-checkout-step__heading .wc-block-components-checkout-step__title { font-family: var(--pm-font); font-stretch: 85%; font-weight: 750; font-size: 1.3rem; color: var(--pm-ink); }
.wc-block-checkout__terms { font-size: .9rem; }
.wc-block-components-order-summary-item__image img { background: var(--pm-white); border-radius: var(--pm-radius); padding: 4px; }
.wc-block-components-order-summary-item__quantity { background: var(--pm-ink) !important; color: var(--pm-white) !important; border-color: var(--pm-ink) !important; }
.wc-block-components-totals-coupon-link, .wc-block-components-panel__button { color: var(--pm-ink) !important; font-weight: 600; }

/* Panier vide (bloc) */
.wp-block-woocommerce-empty-cart-block { text-align: center; }
.wp-block-woocommerce-empty-cart-block .wc-block-cart__empty-cart__title { font-size: clamp(1.6rem, 3vw, 2.2rem); font-stretch: 75%; }
.wp-block-woocommerce-empty-cart-block .wc-block-cart__empty-cart__title::before { display: none; }
.wp-block-woocommerce-empty-cart-block .wp-block-separator.is-style-dots { margin-block: 40px; }
.wp-block-woocommerce-empty-cart-block .wp-block-separator.is-style-dots::before { color: var(--pm-steel-3); }

/* ---------- Panier / Commande classiques (shortcodes) ---------- */
.woocommerce table.shop_table { border: 0; border-radius: 0; border-collapse: collapse; }
.woocommerce table.shop_table th { font-size: .85rem; font-weight: 600; color: var(--pm-steel-ink); }
.woocommerce table.shop_table th, .woocommerce table.shop_table td { padding: 14px 12px; border: 0; border-bottom: 1px solid var(--pm-steel-2); }
.woocommerce table.shop_table img { width: 72px; padding: 4px; background: var(--pm-steel); border-radius: var(--pm-radius); }
.woocommerce a.remove { color: var(--pm-steel-ink) !important; }
.woocommerce a.remove:hover { background: var(--pm-red); color: var(--pm-white) !important; }
.woocommerce .cart-collaterals .cart_totals, .woocommerce-checkout-review-order { padding: 24px; background: var(--pm-steel); border-radius: var(--pm-radius-lg); }
#add_payment_method #payment, .woocommerce-cart #payment, .woocommerce-checkout #payment { background: var(--pm-white); border-radius: var(--pm-radius); }
.woocommerce-checkout #payment div.payment_box { background: var(--pm-steel); color: var(--pm-text); }
.woocommerce-checkout #payment div.payment_box::before { border-bottom-color: var(--pm-steel); }
.woocommerce form .form-row label { font-weight: 600; }
.woocommerce form .form-row .required { color: var(--pm-red); text-decoration: none; }
.woocommerce form .form-row.woocommerce-invalid input.input-text { border-color: var(--pm-red); }
.select2-container--default .select2-selection--single { height: 48px; border: 1.5px solid var(--pm-steel-3); border-radius: var(--pm-radius); }
.select2-container--default .select2-selection--single .select2-selection__rendered { line-height: 45px; padding-left: 14px; color: var(--pm-ink); }
.select2-container--default .select2-selection--single .select2-selection__arrow { height: 46px; }

/* ---------- Mon compte ---------- */
.woocommerce-account .woocommerce { display: grid; grid-template-columns: 240px minmax(0, 1fr); gap: clamp(24px, 4vw, 56px); align-items: start; }
.woocommerce-account .woocommerce > .woocommerce-notices-wrapper, .woocommerce-account:not(.logged-in) .woocommerce > * { grid-column: 1 / -1; }
.woocommerce-account .woocommerce-MyAccount-navigation, .woocommerce-account .woocommerce-MyAccount-content { float: none; width: auto; }
.woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 0; border-left: 2px solid var(--pm-steel-2); }
.woocommerce-MyAccount-navigation a { display: block; padding: 10px 16px; margin-left: -2px; border-left: 2px solid transparent; color: var(--pm-steel-ink); text-decoration: none; font-weight: 600; }
.woocommerce-MyAccount-navigation a:hover { color: var(--pm-ink); }
.woocommerce-MyAccount-navigation .is-active a { color: var(--pm-ink); border-left-color: var(--pm-red); }
.woocommerce-account .u-columns.col2-set { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(24px, 4vw, 56px); }
.woocommerce-account .u-columns.col2-set::before, .woocommerce-account .u-columns.col2-set::after { display: none; }
.woocommerce-account .u-columns .col-1, .woocommerce-account .u-columns .col-2 { float: none; width: auto; }
.woocommerce form.login, .woocommerce form.register, .woocommerce form.lost_reset_password { margin: 0; padding: clamp(20px, 3vw, 32px); border: 1.5px solid var(--pm-steel-2); border-radius: var(--pm-radius-lg); }
.woocommerce form.login .button, .woocommerce form.register .button { margin-top: 8px; }
.woocommerce form .woocommerce-form__label-for-checkbox { display: inline-flex; align-items: center; gap: 8px; font-weight: 500; }
.woocommerce-account .addresses .title h2, .woocommerce-account .addresses .title h3 { font-size: 1.3rem; }
.woocommerce-account .woocommerce-Address { padding: 20px; background: var(--pm-steel); border-radius: var(--pm-radius); }
.woocommerce-orders-table__cell-order-actions .button { min-height: 38px; padding: .4em .9em; font-size: .9rem; }
@media (max-width: 760px) {
	.woocommerce-account .woocommerce { grid-template-columns: 1fr; }
	.woocommerce-MyAccount-navigation ul { display: flex; flex-wrap: wrap; border-left: 0; border-bottom: 2px solid var(--pm-steel-2); }
	.woocommerce-MyAccount-navigation a { margin: 0 0 -2px; border-left: 0; border-bottom: 2px solid transparent; padding: 10px 12px; }
	.woocommerce-MyAccount-navigation .is-active a { border-bottom-color: var(--pm-red); }
	.woocommerce-account .u-columns.col2-set { grid-template-columns: 1fr; }
}

/* ---------- Commande reçue ---------- */
.woocommerce-order .woocommerce-thankyou-order-received, .wc-block-order-confirmation-status { font-size: 1.3rem; font-weight: 700; color: var(--pm-ink); }
.woocommerce ul.order_details { display: flex; flex-wrap: wrap; gap: 16px 0; margin: 0 0 32px; padding: 20px; background: var(--pm-steel); border-radius: var(--pm-radius-lg); }
.woocommerce ul.order_details li { display: flex; flex-direction: column; gap: 2px; float: none; margin: 0; padding: 4px 28px; list-style: none; border-left: 1px solid var(--pm-steel-3); font-size: .82rem; color: var(--pm-steel-ink); }
.woocommerce ul.order_details li:first-child { padding-left: 4px; border-left: 0; }
.woocommerce ul.order_details li::marker { content: none; }
.woocommerce ul.order_details li strong { font-size: 1.1rem; color: var(--pm-ink); }
.woocommerce .woocommerce-customer-details address { padding: 20px; font-style: normal; line-height: 1.7; background: var(--pm-steel); border: 0; border-radius: var(--pm-radius); }
.woocommerce-order-details .woocommerce-table--order-details tfoot th { color: var(--pm-ink); }

/* ---------- Tiroir d'achat rapide (mobile) ---------- */
.pm-qb { display: none; }
@media (max-width: 860px) {
	.pm-qb:not([hidden]) { display: block; }
	/* Place de la barre, prise dans le pied de page (même fond) plutôt que sous lui. */
	body.pm-has-qb .pm-footer { padding-bottom: calc(72px + env(safe-area-inset-bottom)); }
	body.pm-qb-open { overflow: hidden; }

	.pm-qb__bar {
		position: fixed; z-index: 250; left: 0; right: 0; bottom: 0;
		display: flex; align-items: center; justify-content: space-between; gap: 12px;
		padding: 10px var(--pm-gutter) calc(10px + env(safe-area-inset-bottom));
		background: var(--pm-stout); color: var(--pm-white); box-shadow: 0 -10px 28px rgba(0, 0, 0, .2);
		transform: translateY(110%); visibility: hidden; transition: transform .25s ease, visibility 0s linear .25s;
	}
	.pm-qb.is-visible .pm-qb__bar { transform: none; visibility: visible; transition: transform .25s ease; }
	/* Menu mobile ouvert : la barre passerait par-dessus le bas du tiroir (langues, réseaux). */
	body.pm-nav-open .pm-qb.is-visible .pm-qb__bar { transform: translateY(110%); visibility: hidden; }
	.pm-qb__from { margin: 0; font-size: .82rem; line-height: 1.25; color: var(--pm-steel-3); }
	.pm-qb__from strong { display: block; font-size: 1.2rem; font-weight: 750; font-stretch: 85%; color: var(--pm-white); }
	.pm-qb__from abbr { font-size: .8rem; text-decoration: none; }
	.pm-qb__open { flex: none; }

	.pm-qb__scrim { position: fixed; inset: 0; z-index: 260; background: rgba(15, 10, 9, .55); opacity: 0; transition: opacity .25s ease; }
	.pm-qb.is-open .pm-qb__scrim { opacity: 1; }
	.pm-qb__panel {
		position: fixed; z-index: 270; left: 0; right: 0; bottom: 0;
		max-height: calc(100dvh - 40px); overflow-y: auto; overscroll-behavior: contain;
		padding: 6px var(--pm-gutter) calc(20px + env(safe-area-inset-bottom));
		background: var(--pm-white); color: var(--pm-text);
		border-radius: var(--pm-radius-lg) var(--pm-radius-lg) 0 0; box-shadow: 0 -18px 48px rgba(0, 0, 0, .28);
		transform: translateY(100%); transition: transform .28s ease;
	}
	.pm-qb.is-open .pm-qb__panel { transform: none; }
}
.pm-qb__head { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 0 6px; }
.pm-qb__title { margin: 0; }
.pm-qb__close { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; margin-right: -10px; border: 0; border-radius: var(--pm-radius); background: none; color: var(--pm-ink); cursor: pointer; }
.pm-qb__close:focus-visible { outline: 0; box-shadow: var(--pm-focus); }
.pm-qb__models { display: grid; gap: 8px; margin: 0 0 18px; padding: 0; border: 0; }
.pm-qb__models legend, .pm-qb__label { display: block; margin-bottom: 8px; padding: 0; font-size: .95rem; font-weight: 700; color: var(--pm-ink); }
.pm-qb__model { display: flex; align-items: center; gap: 12px; min-height: 52px; padding: 10px 14px; border: 1.5px solid var(--pm-steel-3); border-radius: var(--pm-radius); font-weight: 650; color: var(--pm-ink); cursor: pointer; }
.pm-qb__model:has(input:checked) { border-color: var(--pm-ink); background: var(--pm-steel); box-shadow: inset 0 0 0 1px var(--pm-ink); }
.pm-qb__model:has(input:focus-visible) { box-shadow: var(--pm-focus); }
.pm-qb__model input { flex: none; width: 20px; height: 20px; margin: 0; accent-color: var(--pm-red); }
.pm-qb__row { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; margin-bottom: 14px; }
.pm-qb__unit { margin: 0; text-align: right; font-size: .9rem; color: var(--pm-steel-ink); }
.pm-qb__unit span { display: block; }
.pm-qb__unit strong { font-size: 1.6rem; font-weight: 750; font-stretch: 85%; line-height: 1.1; color: var(--pm-ink); }
.pm-qb abbr { text-decoration: none; }
.pm-qb__total { margin: 0 0 2px; font-weight: 600; color: var(--pm-ink); }
.pm-qb__next { margin: 0 0 16px; font-size: .9rem; color: var(--pm-steel-ink); }
.pm-qb__next:empty { display: none; }
.pm-qb__presets { display: grid; grid-template-columns: repeat(auto-fit, minmax(0, 1fr)); gap: 8px; margin-bottom: 14px; }
.pm-qb__preset { display: flex; flex-direction: column; align-items: center; gap: 2px; padding: 10px 6px; border: 1.5px solid var(--pm-steel-2); border-radius: var(--pm-radius); background: var(--pm-white); font: inherit; color: var(--pm-ink); cursor: pointer; }
.pm-qb__preset-qty { font-size: .85rem; font-weight: 600; color: var(--pm-steel-ink); }
.pm-qb__preset-price { font-weight: 800; font-variant-numeric: tabular-nums; }
.pm-qb__preset[aria-pressed="true"] { border-color: var(--pm-ink); background: var(--pm-ink); color: var(--pm-white); }
.pm-qb__preset[aria-pressed="true"] .pm-qb__preset-qty { color: rgba(255, 255, 255, .75); }
.pm-qb__add { width: 100%; min-height: 56px; font-size: 1.08rem; }
.pm-qb__add[aria-busy="true"] { opacity: .7; cursor: progress; }
.pm-qb__status { min-height: 1.4em; margin: 10px 0 0; font-size: .92rem; font-weight: 600; color: var(--pm-success); }
.pm-qb__status.is-error { color: var(--pm-red); }
.pm-qb__incart { margin-top: 10px; padding: 14px 16px; border-radius: var(--pm-radius); background: var(--pm-steel); font-size: .92rem; }
.pm-qb__incart[hidden] { display: none; }
.pm-qb__incart p { margin: 0 0 12px; }
.pm-qb__incart strong, .pm-qb__total strong { white-space: nowrap; }
.pm-qb__incart-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 20px; }
.pm-qb__incart-actions .pm-btn { flex: 1 1 auto; }

/* ---------- Avis clients : accueil et fiche produit ---------- */
.pm-reviews { padding-top: calc(var(--pm-section) * .5); }
.pm-reviews__head { display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: 12px 40px; margin-bottom: clamp(28px, 4vw, 48px); }
.pm-reviews__head .pm-h2 { margin: 0; }
.pm-reviews-score { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 12px; margin: 0; color: var(--pm-steel-ink); }
.pm-reviews-score .star-rating { font-size: 1.15rem; }
.pm-reviews-score strong { font-size: 1.4rem; font-weight: 750; font-stretch: 85%; color: var(--pm-ink); }
.pm-reviews__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(24px, 4vw, 56px); }
@media (max-width: 820px) { .pm-reviews__grid { grid-template-columns: 1fr; } }
.pm-review { display: flex; flex-direction: column; gap: 12px; margin: 0; padding-top: 22px; border-top: 2px solid var(--pm-ink); }
.pm-review__text { margin: 0; padding: 0; border: 0; font-size: 1.05rem; color: var(--pm-ink); }
.pm-review__text p { margin: 0; max-width: 46ch; }
.pm-review__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 2px 10px; margin-top: auto; font-size: .92rem; color: var(--pm-steel-ink); }
.pm-review__meta strong { color: var(--pm-ink); }
.pm-review__verified { display: inline-flex; align-items: center; gap: 4px; font-weight: 600; color: var(--pm-success); }
.pm-review__sub { flex-basis: 100%; }
.pm-reviews__more { margin: clamp(24px, 3vw, 36px) 0 0; }

.pm-product-reviews { margin: 0 0 24px; padding: 18px 20px; border-radius: var(--pm-radius); background: var(--pm-steel); }
.woocommerce div.product .pm-product-reviews__title { margin: 0 0 6px; font-size: 1rem; }
.pm-product-reviews .pm-reviews-score strong { font-size: 1.15rem; }
.pm-product-reviews .pm-review { gap: 8px; margin: 14px 0 12px; padding-top: 14px; border-top: 1px solid var(--pm-steel-2); }
.pm-product-reviews .pm-review .star-rating { display: none; }
.pm-product-reviews .pm-review__text { font-size: .98rem; }
