/* ==========================================================================
   MUSIK — WooCommerce
   Boutique, carte produit, fiche produit, panier, commande, compte, notices.
   ========================================================================== */

/* --------------------------------------------------------------------------
   1. Carte produit (boucle WooCommerce et grilles de l'accueil)
   -------------------------------------------------------------------------- */
ul.products { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--s-7) var(--s-5); margin: 0; padding: 0; list-style: none; }
ul.products::before, ul.products::after { display: none; }
ul.products li.product { width: auto; margin: 0; float: none; }
@media (max-width: 1023px) { ul.products { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 520px) { ul.products { gap: var(--s-6) var(--s-3); } }

.pcard { position: relative; display: flex; flex-direction: column; min-width: 0; }
.pcard__media { position: relative; display: block; aspect-ratio: 1 / 1; overflow: hidden; border-radius: var(--r); background: var(--plinth); }
.pcard__media img { width: 100%; height: 100%; object-fit: cover; transition: transform 1s var(--ease); }
.pcard:hover .pcard__media img { transform: scale(1.035); }
.pcard__badge { position: absolute; top: .75rem; left: .75rem; }
.pcard__body { display: flex; flex-direction: column; gap: .3rem; padding-top: var(--s-4); flex: 1; }
.pcard__meta { font-size: var(--t-xs); color: var(--muted); letter-spacing: .01em; }
.pcard__title { font-family: var(--font-body); font-size: var(--t-base); font-weight: 500; line-height: 1.35; letter-spacing: -.005em; }
.pcard__title a::after { content: ""; position: absolute; inset: 0; z-index: 1; } /* toute la carte est cliquable */
.pcard__specs { font-size: var(--t-xs); color: var(--muted); }
.pcard__rating { display: flex; align-items: center; gap: .4rem; font-size: var(--t-xs); color: var(--muted); }
.pcard .price { display: flex; flex-wrap: wrap; align-items: baseline; gap: .1rem .55rem; margin-top: .35rem; font-size: var(--t-base); font-weight: 500; color: var(--ink); }
.pcard .price del { order: 2; color: var(--muted); font-size: var(--t-sm); font-weight: 400; text-decoration-thickness: 1px; }
.pcard .price ins { text-decoration: none; color: var(--accent); }
.pcard .price .screen-reader-text { position: absolute !important; }

/* Ajout au panier : discret, au-dessus du lien de carte. */
.pcard .button,
.pcard .added_to_cart {
	position: relative;
	z-index: 2;
	align-self: flex-start;
	margin-top: var(--s-3);
	min-height: 40px;
	padding: .5rem 1rem;
	--btn-bg: transparent;
	--btn-fg: var(--ink);
	--btn-bd: var(--line-2);
	font-size: var(--t-xs);
}
.pcard .button:hover { --btn-bg: var(--ink); --btn-fg: var(--on-ink); --btn-bd: var(--ink); }
.pcard .button.loading { opacity: .55; }
.pcard .button.added { display: none; }
.pcard .added_to_cart { display: inline-flex; align-items: center; text-decoration: underline; text-underline-offset: .3em; border: 0; padding-left: 0; }
@media (hover: hover) and (min-width: 1024px) {
	.pcard .button { opacity: 0; translate: 0 4px; transition: opacity .3s ease, translate .4s var(--ease), background-color .3s ease, color .3s ease, border-color .3s ease; }
	.pcard:hover .button, .pcard:focus-within .button { opacity: 1; translate: 0 0; }
}

/* --------------------------------------------------------------------------
   2. Boutique : filtres + grille
   -------------------------------------------------------------------------- */
.page-head--shop { border-bottom: 0; padding-bottom: var(--s-6); }
.shop-layout { display: grid; grid-template-columns: 236px minmax(0, 1fr); gap: var(--s-8); padding-bottom: var(--section); align-items: start; }
.shop-sidebar { position: sticky; top: calc(var(--header-h) + var(--s-5)); }
.shop-filters > summary { display: none; }
.shop-filters__body { display: grid; gap: var(--s-6); }
.filter-block h4 { font-size: var(--t-xs); font-weight: 500; letter-spacing: .14em; text-transform: uppercase; color: var(--muted); margin-bottom: var(--s-3); }
.filter-block ul { display: grid; gap: .1rem; list-style: none; margin: 0; padding: 0; }
.mk-filter-link { display: flex; justify-content: space-between; gap: var(--s-3); padding: .35rem 0; font-size: var(--t-sm); color: var(--ink-2); transition: color .2s ease; }
.mk-filter-link:hover { color: var(--ink); }
.mk-filter-link.is-active { color: var(--ink); font-weight: 600; }
.mk-filter-link .count { color: var(--muted); font-size: var(--t-xs); font-weight: 400; font-variant-numeric: tabular-nums; }
.mk-filter-reset { display: inline-block; margin-top: var(--s-3); font-size: var(--t-xs); text-decoration: underline; text-underline-offset: .3em; color: var(--muted); }
.filter-block--help { padding-top: var(--s-5); border-top: 1px solid var(--line); display: grid; gap: var(--s-3); justify-items: start; }
.filter-block--help h4 { margin: 0; }
.filter-block--help p { font-size: var(--t-sm); color: var(--ink-2); }

.shop-toolbar { display: flex; align-items: center; justify-content: space-between; gap: var(--s-4); margin-bottom: var(--s-6); padding-bottom: var(--s-4); border-bottom: 1px solid var(--line); }
.woocommerce-result-count { margin: 0; font-size: var(--t-sm); color: var(--muted); }
.woocommerce-ordering { margin: 0; }
.woocommerce-ordering select { min-height: 40px; width: auto; padding-block: .45rem; font-size: var(--t-sm); background-color: transparent; }

.woocommerce-pagination { margin-top: var(--s-8); }
.woocommerce-pagination ul { display: flex; flex-wrap: wrap; gap: var(--s-2); border: 0 !important; }
.woocommerce-pagination ul li { border: 0 !important; }
.woocommerce-pagination a, .woocommerce-pagination span { display: grid; place-items: center; min-width: 44px; height: 44px; padding: 0 .8rem; border: 1px solid var(--line-2); border-radius: var(--r); font-size: var(--t-sm); font-variant-numeric: tabular-nums; }
.woocommerce-pagination a:hover { border-color: var(--ink); }
.woocommerce-pagination .current { background: var(--ink); color: var(--on-ink); border-color: var(--ink); }
.woocommerce-info.woocommerce-no-products-found { margin-top: 0; }

@media (max-width: 1023px) {
	.shop-layout { grid-template-columns: 1fr; gap: var(--s-5); }
	.shop-sidebar { position: static; }
	.shop-filters { border-block: 1px solid var(--line); }
	.shop-filters > summary { display: flex; align-items: center; gap: .55rem; padding: .9rem 0; font-size: var(--t-sm); font-weight: 500; cursor: pointer; list-style: none; }
	.shop-filters > summary::-webkit-details-marker { display: none; }
	.shop-filters__body { padding-bottom: var(--s-5); grid-template-columns: 1fr 1fr; }
	.filter-block--help { grid-column: 1 / -1; }
}
@media (max-width: 520px) { .shop-filters__body { grid-template-columns: 1fr; } }

/* --------------------------------------------------------------------------
   3. Fiche produit
   -------------------------------------------------------------------------- */
.product-page { padding-top: var(--s-5); padding-bottom: var(--section); }
.product-page .woocommerce-breadcrumb { font-size: var(--t-xs); color: var(--muted); margin-bottom: var(--s-5); }
.product__main { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); gap: var(--s-5) clamp(2rem, 6vw, 6rem); align-items: start; }
.single-product .product__gallery { position: sticky; top: calc(var(--header-h) + var(--s-5)); }
@media (max-width: 899px) {
	.product__main { grid-template-columns: 1fr; }
	.single-product .product__gallery { position: static; }
}

.woocommerce-product-gallery { position: relative; margin: 0; opacity: 1 !important; }
.woocommerce-product-gallery__wrapper { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--s-3); margin: 0; }
.woocommerce-product-gallery__image { overflow: hidden; border-radius: var(--r); background: var(--plinth); cursor: pointer; aspect-ratio: 1 / 1; border: 1px solid transparent; }
.woocommerce-product-gallery__image:first-child { grid-column: 1 / -1; cursor: default; }
.woocommerce-product-gallery__image.is-active-thumb { border-color: var(--ink); }
.woocommerce-product-gallery__image a { display: block; height: 100%; }
.woocommerce-product-gallery__image img { width: 100%; height: 100%; object-fit: cover; }
.woocommerce-product-gallery__trigger, .woocommerce-product-gallery .zoomImg { display: none !important; }
.single-product .product__gallery .onsale { display: none; }

.single-product .summary { display: flex; flex-direction: column; gap: var(--s-4); }
.mk-cat { font-size: var(--t-xs); color: var(--muted); letter-spacing: .14em; text-transform: uppercase; font-weight: 500; }
.single-product .product_title { font-size: var(--t-2xl); line-height: 1.1; }
.single-product .woocommerce-product-rating { display: flex; align-items: center; gap: var(--s-3); font-size: var(--t-sm); color: var(--muted); }
.single-product .woocommerce-product-rating .star-rating { color: var(--ink); }
.single-product .summary > .price { display: flex; flex-wrap: wrap; align-items: baseline; gap: .2rem .8rem; font-size: var(--t-xl); font-weight: 500; line-height: 1.1; color: var(--ink); }
.single-product .summary > .price del { order: 2; font-size: var(--t-md); color: var(--muted); font-weight: 400; }
.single-product .summary > .price ins { text-decoration: none; color: var(--accent); }
.single-product .summary > .price .badge { order: 3; align-self: center; }
.woocommerce-product-details__short-description { color: var(--ink-2); font-size: var(--t-md); max-width: 52ch; }

.spec-chips { display: flex; flex-wrap: wrap; gap: var(--s-2); }
.spec-chip { display: inline-flex; align-items: center; gap: .45rem; padding: .35rem .7rem; border: 1px solid var(--line-2); border-radius: var(--r); font-size: var(--t-xs); color: var(--ink-2); }
.spec-chip .mk-ic { width: 1rem; height: 1rem; }

.mk-stock, p.stock { display: inline-flex; align-items: center; gap: .55rem; margin: 0; font-size: var(--t-sm); font-weight: 500; }
.mk-stock::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: currentColor; }
.mk-stock--in { color: var(--ok); }
.mk-stock--low, .mk-stock--backorder { color: var(--ink-2); }
.mk-stock--out { color: var(--accent); }

.single-product form.cart { display: flex; flex-wrap: wrap; gap: var(--s-3); margin-top: var(--s-2); }
.single-product form.cart .single_add_to_cart_button { flex: 1; min-width: 200px; min-height: 54px; font-size: var(--t-base); }
.single-product form.cart .single_add_to_cart_button .mk-ic { width: 1.25rem; height: 1.25rem; }
.single-product .variations { margin-bottom: var(--s-3); }
.single-product .variations th, .single-product .variations td { padding: .3rem 0; text-align: left; }
.single-product .reset_variations { font-size: var(--t-xs); color: var(--muted); }

.quantity { display: inline-flex; align-items: stretch; border: 1px solid var(--line-2); border-radius: var(--r); background: var(--surface); }
.quantity .qty-btn { width: 44px; display: grid; place-items: center; font-size: 1.15rem; color: var(--ink-2); transition: background-color .2s ease; }
.quantity .qty-btn:hover { background: var(--paper-2); color: var(--ink); }
.quantity input.qty { width: 3.2rem; min-height: 52px; padding: 0; border: 0; background: transparent; text-align: center; font-variant-numeric: tabular-nums; -moz-appearance: textfield; }
.quantity input.qty:focus { box-shadow: none; }
.quantity input.qty::-webkit-outer-spin-button, .quantity input.qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }

.mk-assurance { margin-top: var(--s-4); padding-top: var(--s-5); border-top: 1px solid var(--line); gap: var(--s-4); }
.product_meta { font-size: var(--t-xs); color: var(--muted); display: grid; gap: .25rem; }
.product_meta a { text-decoration: underline; text-underline-offset: .2em; }

/* Onglets */
.woocommerce-tabs { margin-top: var(--s-9); border-top: 1px solid var(--line-2); }
.woocommerce-tabs ul.tabs { display: flex; gap: var(--s-6); margin: 0 0 var(--s-6) !important; padding: 0 !important; border-bottom: 1px solid var(--line); overflow-x: auto; scrollbar-width: none; }
.woocommerce-tabs ul.tabs::before, .woocommerce-tabs ul.tabs li::before, .woocommerce-tabs ul.tabs li::after { display: none !important; }
.woocommerce-tabs ul.tabs li { margin: 0 !important; padding: 0 !important; border: 0 !important; background: none !important; }
.woocommerce-tabs ul.tabs li a { display: block; padding: 1.1rem 0; font-size: var(--t-sm); font-weight: 500; color: var(--muted); white-space: nowrap; border-bottom: 1px solid transparent; margin-bottom: -1px; }
.woocommerce-tabs ul.tabs li a:hover { color: var(--ink); }
.woocommerce-tabs ul.tabs li.active a { color: var(--ink); border-bottom-color: var(--ink); }
.woocommerce-Tabs-panel { max-width: 72ch; margin: 0 !important; color: var(--ink-2); }
.woocommerce-Tabs-panel > h2:first-child { display: none; }
.woocommerce-Tabs-panel p + p { margin-top: 1em; }
table.shop_attributes { max-width: 640px; }
table.shop_attributes th, table.shop_attributes td { padding: .8rem 0; border-bottom: 1px solid var(--line); text-align: left; font-weight: 400; vertical-align: top; }
table.shop_attributes th { width: 40%; color: var(--muted); font-size: var(--t-sm); }
table.shop_attributes td p { margin: 0; }

/* Produits liés */
.related.products, .upsells.products { margin-top: var(--s-9); }
.related.products > h2, .upsells.products > h2 { font-size: var(--t-xl); margin-bottom: var(--s-6); }
.related.products ul.products, .upsells.products ul.products { grid-template-columns: repeat(4, 1fr); }
@media (max-width: 1023px) { .related.products ul.products, .upsells.products ul.products { grid-template-columns: repeat(2, 1fr); } }

/* Avis produits */
#reviews .commentlist { display: grid; gap: var(--s-5); margin: 0 0 var(--s-6); padding: 0; list-style: none; }
#reviews .comment_container { display: grid; grid-template-columns: 44px 1fr; gap: var(--s-4); padding-top: var(--s-4); border-top: 1px solid var(--line); }
#reviews .comment_container img.avatar { width: 44px; height: 44px; border-radius: 50%; filter: grayscale(1); }
#reviews .meta { font-size: var(--t-xs); color: var(--muted); }
#reviews .woocommerce-noreviews { color: var(--muted); }
#review_form_wrapper { max-width: 620px; }
#review_form .comment-reply-title { font-family: var(--font-display); font-size: var(--t-lg); display: block; margin-bottom: var(--s-4); }
#review_form .comment-form { display: grid; gap: var(--s-4); }
#review_form label { display: block; font-size: var(--t-sm); font-weight: 500; margin-bottom: .35rem; }
.comment-form-rating .stars a { color: var(--ink); }

.star-rating { position: relative; display: inline-block; width: 5.4em; height: 1.1em; overflow: hidden; font-size: .9rem; line-height: 1; }
.star-rating::before { content: "★★★★★"; position: absolute; inset: 0; color: var(--line-2); letter-spacing: .1em; }
.star-rating span { position: absolute; inset: 0 auto 0 0; overflow: hidden; padding-top: 1.5em; }
.star-rating span::before { content: "★★★★★"; position: absolute; top: 0; left: 0; color: var(--ink); letter-spacing: .1em; }

/* --------------------------------------------------------------------------
   4. Boutons et formulaires WooCommerce
   -------------------------------------------------------------------------- */
.woocommerce .button.alt, .woocommerce button.button.alt, .checkout-button, #place_order { --btn-bg: var(--ink); --btn-bd: var(--ink); }
.woocommerce form .form-row { display: grid; gap: .4rem; margin: 0 0 var(--s-4); padding: 0; }
.woocommerce form .form-row .required { color: var(--accent); text-decoration: none; border: 0; }
.woocommerce form .form-row .optional { color: var(--muted); font-weight: 400; }
.woocommerce form .form-row.woocommerce-invalid input.input-text, .woocommerce form .form-row.woocommerce-invalid select { border-color: var(--accent); }
.woocommerce form .form-row-first, .woocommerce form .form-row-last { width: auto; float: none; }
.woocommerce-input-wrapper { display: block; }
.select2-container .select2-selection--single { height: 48px !important; border: 1px solid var(--line-2) !important; border-radius: var(--r) !important; background: var(--surface) !important; }
.select2-container .select2-selection__rendered { line-height: 46px !important; padding-left: .9rem !important; color: var(--ink) !important; }
.select2-container .select2-selection__arrow { height: 46px !important; right: .5rem !important; }
.select2-dropdown { border: 1px solid var(--line-2) !important; border-radius: var(--r) !important; background: var(--surface) !important; color: var(--ink); }
.select2-container--default .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-results__option--highlighted[data-selected] { background: var(--ink) !important; color: var(--on-ink) !important; }
.select2-search--dropdown .select2-search__field { border: 1px solid var(--line-2) !important; border-radius: var(--r); }

/* Notices */
.woocommerce-notices-wrapper:empty { display: none; }
.woocommerce-message, .woocommerce-info, .woocommerce-error, .woocommerce-noreviews {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: var(--s-3) var(--s-5);
	margin: 0 0 var(--s-5);
	padding: var(--s-4) var(--s-5);
	border: 1px solid var(--line-2);
	border-left: 2px solid var(--ink);
	border-radius: var(--r);
	background: var(--surface);
	color: var(--ink);
	font-size: var(--t-sm);
	list-style: none;
}
.woocommerce-error { border-left-color: var(--accent); flex-direction: column; align-items: flex-start; }
.woocommerce-message::before, .woocommerce-info::before, .woocommerce-error::before { display: none; }
.woocommerce-message .button, .woocommerce-info .button { order: 2; min-height: 40px; padding: .5rem 1rem; font-size: var(--t-xs); }
.woocommerce-info a:not(.button), .woocommerce-message a:not(.button) { text-decoration: underline; text-underline-offset: .25em; }

/* --------------------------------------------------------------------------
   5. Tunnel : étapes, panier, commande
   -------------------------------------------------------------------------- */
.mk-steps { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s-2) var(--s-5); margin-top: var(--s-5); font-size: var(--t-sm); color: var(--muted); }
.mk-steps li { display: inline-flex; align-items: center; gap: .55rem; }
.mk-steps li + li::before { content: ""; width: 28px; height: 1px; background: var(--line-2); margin-right: var(--s-3); }
.mk-steps__n { display: grid; place-items: center; width: 24px; height: 24px; border: 1px solid var(--line-2); border-radius: 50%; font-size: var(--t-xs); font-variant-numeric: tabular-nums; }
.mk-steps__n .mk-ic { width: 12px; height: 12px; }
.mk-steps .is-current { color: var(--ink); font-weight: 500; }
.mk-steps .is-current .mk-steps__n { background: var(--ink); border-color: var(--ink); color: var(--on-ink); }
.mk-steps .is-done .mk-steps__n { border-color: var(--ink); color: var(--ink); }
@media (max-width: 520px) { .mk-steps li:not(.is-current) > span:last-child { display: none; } .mk-steps li + li::before { width: 16px; margin-right: var(--s-2); } }

.mk-wc-content { padding-bottom: var(--section); }

/* Panier classique */
.woocommerce-cart .mk-wc-content .woocommerce { display: grid; grid-template-columns: minmax(0, 1.7fr) minmax(300px, 1fr); gap: var(--s-5) clamp(2rem, 5vw, 5rem); align-items: start; }
.woocommerce-cart .woocommerce-notices-wrapper, .woocommerce-cart .wc-empty-cart-message, .woocommerce-cart .return-to-shop, .woocommerce-cart .cart-empty { grid-column: 1 / -1; }
.woocommerce-cart table.cart, .woocommerce-cart table.cart tbody, .woocommerce-cart table.cart tr, .woocommerce-cart table.cart td { display: block; border: 0; }
.woocommerce-cart table.cart thead { display: none; }
.woocommerce-cart table.cart tr.cart_item { display: grid; grid-template-columns: 104px minmax(0, 1fr) auto; grid-template-areas: "thumb name remove" "thumb price price" "thumb qty sub"; gap: .35rem var(--s-5); padding: var(--s-5) 0; border-bottom: 1px solid var(--line); }
.woocommerce-cart table.cart tr.cart_item:first-child { border-top: 1px solid var(--line-2); }
.woocommerce-cart td.product-thumbnail { grid-area: thumb; padding: 0; }
.woocommerce-cart td.product-thumbnail img { width: 104px; height: 104px; object-fit: cover; border-radius: var(--r); background: var(--plinth); }
.woocommerce-cart td.product-name { grid-area: name; padding: 0; font-weight: 500; }
.woocommerce-cart td.product-name a:hover { text-decoration: underline; text-underline-offset: .25em; }
.woocommerce-cart td.product-name .variation { font-size: var(--t-xs); color: var(--muted); display: flex; gap: .3rem; margin: .2rem 0 0; }
.woocommerce-cart td.product-name .variation dd, .woocommerce-cart td.product-name .variation p { margin: 0; }
.woocommerce-cart td.product-price { grid-area: price; padding: 0; font-size: var(--t-sm); color: var(--muted); }
.woocommerce-cart td.product-quantity { grid-area: qty; padding: 0; align-self: end; }
.woocommerce-cart td.product-quantity .quantity input.qty { min-height: 40px; }
.woocommerce-cart td.product-quantity .quantity .qty-btn { width: 38px; }
.woocommerce-cart td.product-subtotal { grid-area: sub; padding: 0; align-self: end; text-align: right; font-weight: 500; font-variant-numeric: tabular-nums; }
.woocommerce-cart td.product-remove { grid-area: remove; padding: 0; text-align: right; }
.woocommerce-cart td.product-remove a.remove { display: inline-grid; place-items: center; width: 32px; height: 32px; border-radius: var(--r); color: var(--muted) !important; font-size: 1.3rem; line-height: 1; background: none !important; }
.woocommerce-cart td.product-remove a.remove:hover { color: var(--accent) !important; background: var(--paper-2) !important; }
.woocommerce-cart td::before { display: none !important; }
.woocommerce-cart table.cart td.actions { display: flex; flex-wrap: wrap; gap: var(--s-3); justify-content: space-between; padding: var(--s-5) 0 0; }
.woocommerce-cart .coupon { display: flex; gap: var(--s-2); flex: 1; max-width: 420px; }
.woocommerce-cart .coupon label { display: none; }
.woocommerce-cart .coupon input.input-text { width: auto; flex: 1; min-height: 44px; }
.woocommerce-cart .coupon .button, .woocommerce-cart button[name="update_cart"] { min-height: 44px; --btn-bg: transparent; --btn-fg: var(--ink); --btn-bd: var(--line-2); }
.woocommerce-cart .coupon .button:hover, .woocommerce-cart button[name="update_cart"]:hover { --btn-bg: var(--ink); --btn-fg: var(--on-ink); --btn-bd: var(--ink); }
.woocommerce-cart button[name="update_cart"]:disabled { opacity: .4; }

.woocommerce-cart .cart-collaterals { position: sticky; top: calc(var(--header-h) + var(--s-5)); }
.cart_totals { padding: var(--s-6); background: var(--surface); border: 1px solid var(--line); border-radius: var(--r); width: 100% !important; float: none !important; }
.cart_totals h2 { font-size: var(--t-lg); margin-bottom: var(--s-4); }
.cart_totals table, .cart_totals tbody, .cart_totals tr { display: block; border: 0; }
.cart_totals tr { display: flex; justify-content: space-between; gap: var(--s-4); padding: .7rem 0; border-bottom: 1px solid var(--line); }
.cart_totals th { font-weight: 400; color: var(--ink-2); text-align: left; padding: 0; border: 0; }
.cart_totals td { text-align: right; padding: 0; border: 0; font-variant-numeric: tabular-nums; }
.cart_totals td::before { display: none !important; }
.cart_totals .shipping { flex-direction: column; }
.cart_totals .shipping td { text-align: left; }
.cart_totals ul#shipping_method { margin: .5rem 0 0; padding: 0; list-style: none; display: grid; gap: .4rem; }
.cart_totals ul#shipping_method li { display: flex; align-items: center; gap: .5rem; font-size: var(--t-sm); }
.cart_totals .woocommerce-shipping-destination, .cart_totals .shipping-calculator-button { font-size: var(--t-xs); color: var(--muted); }
.cart_totals .order-total { border-bottom: 0; padding-top: var(--s-4); }
.cart_totals .order-total th { color: var(--ink); font-weight: 600; }
.cart_totals .order-total .amount { font-size: var(--t-lg); font-weight: 500; }
.wc-proceed-to-checkout { padding: var(--s-4) 0 0 !important; }
.wc-proceed-to-checkout .checkout-button { width: 100%; min-height: 54px; font-size: var(--t-base) !important; }
.mk-assure { display: grid; gap: .5rem; margin-top: var(--s-5); padding-top: var(--s-4); border-top: 1px solid var(--line); font-size: var(--t-xs); color: var(--ink-2); }
.mk-assure li { display: flex; gap: .55rem; align-items: center; }
.mk-assure .mk-ic { width: 1rem; height: 1rem; }
.mk-continue { grid-column: 1; margin-top: var(--s-5); font-size: var(--t-sm); }
.woocommerce-cart .wc-empty-cart-message .cart-empty { display: block; padding: var(--s-8) 0 var(--s-4); border: 0; background: none; font-family: var(--font-display); font-size: var(--t-xl); text-align: center; }
.woocommerce-cart .return-to-shop { text-align: center; padding-bottom: var(--s-8); }
.woocommerce-cart .cart-suggest { grid-column: 1 / -1; order: 10; padding-top: var(--s-8); border-top: 1px solid var(--line); }

@media (max-width: 899px) {
	.woocommerce-cart .mk-wc-content .woocommerce { grid-template-columns: 1fr; }
	.woocommerce-cart .cart-collaterals { position: static; }
}
@media (max-width: 520px) {
	.woocommerce-cart table.cart tr.cart_item { grid-template-columns: 76px minmax(0, 1fr) auto; column-gap: var(--s-4); }
	.woocommerce-cart td.product-thumbnail img { width: 76px; height: 76px; }
	.woocommerce-cart .coupon { max-width: none; width: 100%; }
	.woocommerce-cart button[name="update_cart"] { width: 100%; }
}

/* Commande classique */
.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info { justify-content: flex-start; }
.woocommerce-checkout .woocommerce-form-coupon-toggle .showcoupon { font-weight: 500; }
.woocommerce-checkout form.checkout_coupon { display: flex; flex-wrap: wrap; gap: var(--s-2); margin-bottom: var(--s-5); padding: var(--s-5); border: 1px solid var(--line); border-radius: var(--r); }
.woocommerce-checkout form.checkout_coupon p:not(.form-row) { width: 100%; font-size: var(--t-sm); color: var(--ink-2); }
.woocommerce-checkout form.checkout_coupon .form-row { margin: 0; flex: 1; }
form.checkout.woocommerce-checkout { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(320px, 1fr); grid-template-rows: auto 1fr; grid-template-areas: "details heading" "details review"; gap: 0 clamp(2rem, 5vw, 5rem); align-items: start; }
.woocommerce-checkout #customer_details { grid-area: details; display: grid; gap: var(--s-7); }
.woocommerce-checkout #customer_details .col-1, .woocommerce-checkout #customer_details .col-2 { width: 100%; float: none; }
.woocommerce-checkout #customer_details h3, #order_review_heading { font-size: var(--t-lg); margin-bottom: var(--s-5); }
.woocommerce-billing-fields__field-wrapper, .woocommerce-shipping-fields__field-wrapper { display: grid; grid-template-columns: 1fr 1fr; gap: 0 var(--s-4); }
.woocommerce-checkout .form-row-wide, .woocommerce-checkout .form-row.notes, .woocommerce-checkout #billing_address_1_field, .woocommerce-checkout #billing_address_2_field, .woocommerce-checkout #billing_country_field, .woocommerce-checkout #billing_company_field, .woocommerce-checkout #billing_email_field, .woocommerce-checkout #shipping_address_1_field, .woocommerce-checkout #shipping_address_2_field, .woocommerce-checkout #shipping_country_field, .woocommerce-checkout #shipping_company_field { grid-column: 1 / -1; }
#ship-to-different-address { font-family: var(--font-body) !important; font-size: var(--t-base) !important; font-weight: 500; }
#ship-to-different-address label { display: flex; align-items: center; gap: .6rem; cursor: pointer; }
#order_review_heading { grid-area: heading; padding-top: var(--s-5); }
.woocommerce-checkout #order_review { grid-area: review; position: sticky; top: calc(var(--header-h) + var(--s-5)); padding: var(--s-6); background: var(--surface); border: 1px solid var(--line); border-radius: var(--r); }
#order_review table.shop_table { margin-bottom: var(--s-5); font-size: var(--t-sm); }
#order_review thead { display: none; }
#order_review th, #order_review td { padding: .75rem 0; border-bottom: 1px solid var(--line); text-align: left; vertical-align: middle; font-weight: 400; }
#order_review td.product-total, #order_review tfoot td { text-align: right; font-variant-numeric: tabular-nums; }
#order_review tfoot th { color: var(--ink-2); }
.mk-review-item { display: flex; align-items: center; gap: var(--s-3); }
.mk-review-thumb { width: 52px; height: 52px; border-radius: var(--r); object-fit: cover; background: var(--plinth); flex: none; }
#order_review .product-quantity { color: var(--muted); font-weight: 400; }
#order_review ul#shipping_method { list-style: none; margin: 0; padding: 0; display: grid; gap: .3rem; }
#order_review ul#shipping_method li { display: flex; align-items: center; justify-content: flex-end; gap: .5rem; }
#order_review .order-total th, #order_review .order-total td { border-bottom: 0; padding-top: var(--s-4); color: var(--ink); font-weight: 600; }
#order_review .order-total .amount { font-size: var(--t-lg); font-weight: 500; }

.woocommerce-checkout #payment { background: none; border-radius: 0; }
.woocommerce-checkout #payment ul.payment_methods { display: grid; gap: var(--s-2); margin: 0 0 var(--s-5); padding: 0; border: 0; list-style: none; }
.woocommerce-checkout #payment ul.payment_methods li { padding: var(--s-4); border: 1px solid var(--line-2); border-radius: var(--r); transition: border-color .2s ease; }
.woocommerce-checkout #payment ul.payment_methods li:has(input:checked) { border-color: var(--ink); }
.woocommerce-checkout #payment ul.payment_methods label { display: inline-flex; align-items: center; gap: .6rem; font-weight: 500; cursor: pointer; }
.woocommerce-checkout #payment ul.payment_methods label img { max-height: 22px; width: auto; margin-left: .3rem; }
.woocommerce-checkout #payment div.payment_box { margin: var(--s-3) 0 0; padding: 0; background: none; color: var(--ink-2); font-size: var(--t-sm); }
.woocommerce-checkout #payment div.payment_box::before { display: none; }
.woocommerce-checkout #payment .place-order { padding: 0 !important; margin: 0; }
.woocommerce-terms-and-conditions-wrapper, .woocommerce-privacy-policy-text { font-size: var(--t-xs); color: var(--muted); margin-bottom: var(--s-4); }
.woocommerce-terms-and-conditions-wrapper a, .woocommerce-privacy-policy-text a { text-decoration: underline; text-underline-offset: .2em; color: var(--ink-2); }
.woocommerce-checkout #place_order { width: 100%; min-height: 56px; font-size: var(--t-base); float: none; }
.blockUI.blockOverlay { background: var(--paper) !important; opacity: .55 !important; }

@media (max-width: 899px) {
	form.checkout.woocommerce-checkout { grid-template-columns: 1fr; grid-template-rows: auto; grid-template-areas: "details" "heading" "review"; }
	.woocommerce-checkout #order_review { position: static; }
}
@media (max-width: 520px) {
	.woocommerce-billing-fields__field-wrapper, .woocommerce-shipping-fields__field-wrapper { grid-template-columns: 1fr; }
	.woocommerce-checkout #order_review { padding: var(--s-5); }
}

/* Confirmation */
.woocommerce-order .woocommerce-thankyou-order-received { font-family: var(--font-display); font-size: var(--t-xl); line-height: 1.15; margin-bottom: var(--s-6); }
.woocommerce-order-overview { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: var(--s-4); margin: 0 0 var(--s-7) !important; padding: 0; list-style: none; }
.woocommerce-order-overview li { padding: var(--s-4) 0 0; border-top: 1px solid var(--line-2); font-size: var(--t-xs); color: var(--muted); border-right: 0 !important; margin: 0 !important; }
.woocommerce-order-overview li strong { display: block; margin-top: .25rem; font-size: var(--t-base); color: var(--ink); font-weight: 500; }
.woocommerce-order-details, .woocommerce-customer-details { margin-top: var(--s-7); }
.woocommerce-order-details h2, .woocommerce-customer-details h2, .woocommerce-column__title { font-size: var(--t-lg); margin-bottom: var(--s-4); }
.woocommerce-table--order-details th, .woocommerce-table--order-details td, .woocommerce-orders-table th, .woocommerce-orders-table td { padding: .8rem .4rem .8rem 0; border-bottom: 1px solid var(--line); text-align: left; font-weight: 400; }
.woocommerce-table--order-details tfoot th { color: var(--ink-2); }
.woocommerce-customer-details address { font-style: normal; line-height: 1.7; padding: var(--s-5); border: 1px solid var(--line); border-radius: var(--r); }

/* --------------------------------------------------------------------------
   6. Compte client
   -------------------------------------------------------------------------- */
.woocommerce-account.logged-in .mk-wc-content .woocommerce { display: grid; grid-template-columns: 220px minmax(0, 1fr); gap: var(--s-8); align-items: start; }
.woocommerce-MyAccount-navigation ul { display: grid; gap: .1rem; margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--line-2); }
.woocommerce-MyAccount-navigation a { display: block; padding: .75rem 0; border-bottom: 1px solid var(--line); font-size: var(--t-sm); color: var(--ink-2); transition: color .2s ease; }
.woocommerce-MyAccount-navigation a:hover, .woocommerce-MyAccount-navigation li.is-active a { color: var(--ink); }
.woocommerce-MyAccount-navigation li.is-active a { font-weight: 600; }
.woocommerce-MyAccount-content { min-width: 0; color: var(--ink-2); }
.woocommerce-MyAccount-content > p:first-child { font-family: var(--font-display); font-size: var(--t-lg); color: var(--ink); line-height: 1.3; }
.woocommerce-MyAccount-content p + p { margin-top: 1em; }
.woocommerce-MyAccount-content a:not(.button) { color: var(--ink); text-decoration: underline; text-underline-offset: .25em; text-decoration-color: var(--line-2); }
.woocommerce-MyAccount-content mark { background: none; color: var(--ink); font-weight: 600; }
.woocommerce-orders-table .button, .woocommerce-MyAccount-content .button { min-height: 38px; padding: .4rem .9rem; font-size: var(--t-xs); }
.woocommerce-Addresses { display: grid; grid-template-columns: 1fr 1fr; gap: var(--s-5); margin-top: var(--s-5); }
.woocommerce-Address { padding: var(--s-5); border: 1px solid var(--line); border-radius: var(--r); }
.woocommerce-Address-title { display: flex; justify-content: space-between; align-items: baseline; gap: var(--s-3); margin-bottom: var(--s-3); }
.woocommerce-Address-title h2, .woocommerce-Address-title h3 { font-size: var(--t-md); }
.woocommerce-Address address { font-style: normal; line-height: 1.7; }

#customer_login.u-columns { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(2rem, 5vw, 5rem); }
#customer_login .u-column1, #customer_login .u-column2 { width: auto; float: none; }
#customer_login h2, .woocommerce-account:not(.logged-in) .mk-wc-content h2 { font-size: var(--t-xl); margin-bottom: var(--s-5); }
.woocommerce-account:not(.logged-in) form.login, .woocommerce-account:not(.logged-in) form.register { max-width: 460px; }
.woocommerce form.login .woocommerce-form-login__rememberme, .woocommerce form.register .woocommerce-form__label-for-checkbox { display: flex; align-items: center; gap: .55rem; font-size: var(--t-sm); margin-bottom: var(--s-4); }
.woocommerce form.login .button, .woocommerce form.register .button { width: 100%; }
.woocommerce .lost_password { margin-top: var(--s-4); font-size: var(--t-sm); }
.woocommerce .lost_password a { text-decoration: underline; text-underline-offset: .25em; }

@media (max-width: 899px) {
	.woocommerce-account.logged-in .mk-wc-content .woocommerce { grid-template-columns: 1fr; gap: var(--s-5); }
	.woocommerce-MyAccount-navigation ul { display: flex; flex-wrap: wrap; gap: var(--s-2); border: 0; }
	.woocommerce-MyAccount-navigation a { padding: .45rem .8rem; border: 1px solid var(--line-2); border-radius: var(--r); }
	.woocommerce-MyAccount-navigation li.is-active a { background: var(--ink); color: var(--on-ink); border-color: var(--ink); }
	#customer_login.u-columns, .woocommerce-Addresses { grid-template-columns: 1fr; }
}

/* --------------------------------------------------------------------------
   7. Repli : tunnel en blocs (si le marchand revient aux blocs)
   -------------------------------------------------------------------------- */
.wc-block-components-button.contained, .wc-block-cart__submit-button, .wc-block-components-checkout-place-order-button { background: var(--ink) !important; color: var(--on-ink) !important; border-radius: var(--r) !important; min-height: 52px; }
.wc-block-components-text-input input, .wc-block-components-select select, .wc-block-components-textarea { background: var(--surface) !important; border-color: var(--line-2) !important; border-radius: var(--r) !important; color: var(--ink) !important; }
.wc-block-components-sidebar, .wc-block-components-totals-wrapper { border-color: var(--line) !important; }
.wc-block-components-product-price ins, .wc-block-components-sale-badge { color: var(--accent) !important; }
.wc-block-components-sale-badge { background: transparent !important; border-color: currentColor !important; border-radius: var(--r) !important; }
.wc-block-components-notice-banner { border-radius: var(--r) !important; }
.product-page__crumbs { margin-bottom: var(--s-5); }
.woocommerce-table--order-details th:last-child, .woocommerce-table--order-details td:last-child { text-align: right; }
