/* ==========================================================================
   DEVENANCE — WooCommerce (boutique, fiche produit, panier, commande, compte)
   ========================================================================== */

.dv-shop { padding-block: clamp(2rem, 5vw, 4rem) var(--dv-section); }
.dv-breadcrumb { font-size: .8rem; letter-spacing: .04em; color: var(--dv-muted); margin-bottom: 1.5rem; }
.dv-breadcrumb a { text-decoration: none; }
.dv-breadcrumb a:hover { text-decoration: underline; }
.dv-breadcrumb .sep { margin-inline: .5rem; opacity: .5; }
.dv-shop__title { margin-bottom: .75rem; }
.term-description, .page-description { color: var(--dv-muted); max-width: 42rem; margin-bottom: 2rem; }

/* Barre d'outils */
.woocommerce-result-count { font-size: .85rem; color: var(--dv-muted); margin: 0; }
.woocommerce-ordering { margin: 0 0 2rem; }
.woocommerce-ordering select, .woocommerce select, .woocommerce .select2-container .select2-selection {
	min-height: 46px; padding: .5rem 2.5rem .5rem 1rem; border: 1px solid var(--dv-line); border-radius: 999px;
	background-color: var(--dv-white);
}
.woocommerce-products-header + .woocommerce-notices-wrapper + .woocommerce-result-count,
.dv-shop .woocommerce-result-count { float: left; padding-top: .75rem; }
.dv-shop .woocommerce-ordering { float: right; }
.dv-shop ul.products { clear: both; }
.dv-shop__filters { clear: both; margin-bottom: 2rem; border: 1px solid var(--dv-line); border-radius: var(--dv-radius-sm); padding: .8rem 1.2rem; }
.dv-shop__filters summary { cursor: pointer; font-weight: 600; }
.dv-shop__filters-inner { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 1.5rem; padding-top: 1rem; }

/* Grille produits native */
.woocommerce ul.products { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(1.25rem, 2.5vw, 2rem); }
.woocommerce ul.products.columns-4 { grid-template-columns: repeat(4, 1fr); }
.woocommerce ul.products.columns-2 { grid-template-columns: repeat(2, 1fr); }
.woocommerce ul.products::before, .woocommerce ul.products::after { display: none; }
@media (max-width: 1023px) { .woocommerce ul.products, .woocommerce ul.products[class*="columns-"] { grid-template-columns: repeat(2, 1fr); } }
.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; display: flex; flex-direction: column; margin: 0 !important; width: auto !important; float: none !important; clear: none !important; }
.woocommerce ul.products li.product a.woocommerce-LoopProduct-link { text-decoration: none; display: block; }
.woocommerce ul.products li.product img {
	width: 100%; aspect-ratio: 4 / 5; object-fit: cover; border-radius: var(--dv-radius);
	background: var(--dv-sable-light); margin-bottom: 1rem; transition: transform 1s var(--dv-ease-out);
}
.woocommerce ul.products li.product:hover img { transform: scale(1.03); }
.woocommerce ul.products li.product .woocommerce-loop-product__title { font-family: var(--dv-body); font-size: 1.02rem; font-weight: 600; line-height: 1.35; text-transform: none; margin: 0 0 .3rem; }
.woocommerce ul.products li.product .price { display: block; color: var(--dv-muted); font-size: .95rem; margin-bottom: .9rem; }
.woocommerce ul.products li.product .price ins { text-decoration: none; color: var(--dv-charbon); font-weight: 600; }
.woocommerce ul.products li.product .button { margin-top: auto; }
.woocommerce ul.products li.product .added_to_cart { display: none; }
.woocommerce span.onsale {
	position: absolute; top: .8rem; left: .8rem; z-index: 2; min-height: 0; min-width: 0; line-height: 1; margin: 0;
	padding: .45rem .75rem; border-radius: 999px; background: var(--dv-bronze); color: var(--dv-white);
	font-size: .7rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase;
}
.woocommerce .star-rating { color: var(--dv-bronze); }

/* Boutons WooCommerce */
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button, .woocommerce #respond input#submit,
.woocommerce a.button.alt, .woocommerce button.button.alt, .wc-block-components-button:not(.is-link) {
	display: inline-flex; align-items: center; justify-content: center; gap: .5rem;
	min-height: 48px; padding: .8rem 1.5rem; border: 1px solid var(--dv-olive); border-radius: 999px;
	background: var(--dv-olive); color: var(--dv-ivoire); font-family: var(--dv-body); font-size: .88rem; font-weight: 600; letter-spacing: .03em; line-height: 1.2;
	text-decoration: none; transition: background-color .3s var(--dv-ease), border-color .3s, transform .2s var(--dv-ease);
}
.woocommerce a.button:hover, .woocommerce button.button:hover, .woocommerce a.button.alt:hover, .woocommerce button.button.alt:hover, .wc-block-components-button:not(.is-link):hover {
	background: var(--dv-olive-dark); border-color: var(--dv-olive-dark); color: var(--dv-ivoire);
}
.woocommerce a.button:active, .woocommerce button.button:active { transform: scale(.97); }
.woocommerce ul.products li.product .button { background: transparent; color: var(--dv-charbon); border-color: var(--dv-charbon); }
.woocommerce ul.products li.product .button:hover { background: var(--dv-charbon); color: var(--dv-ivoire); }
.woocommerce a.button.loading, .woocommerce button.button.loading { opacity: .6; }
.woocommerce button.button:disabled, .woocommerce button.button.disabled { opacity: .45; }

/* Fiche produit */
.woocommerce div.product { display: grid; grid-template-columns: 1.1fr 1fr; gap: clamp(2rem, 5vw, 5rem); align-items: start; }
.woocommerce div.product > .woocommerce-product-gallery, .woocommerce div.product > .summary { width: auto; float: none; margin: 0; }
.woocommerce div.product > .woocommerce-tabs, .woocommerce div.product > .related, .woocommerce div.product > .upsells { grid-column: 1 / -1; }
.woocommerce div.product .woocommerce-product-gallery { position: relative; }
.woocommerce div.product .woocommerce-product-gallery img { border-radius: var(--dv-radius); }
.woocommerce div.product .flex-control-thumbs { display: grid; grid-template-columns: repeat(5, 1fr); gap: .6rem; list-style: none; padding: 0; margin: .8rem 0 0; }
.woocommerce div.product div.images .flex-control-thumbs li { width: auto !important; float: none !important; margin: 0 !important; }
.woocommerce div.product .flex-control-thumbs img { aspect-ratio: 4 / 5; object-fit: cover; }
.woocommerce div.product .flex-control-thumbs img { border-radius: var(--dv-radius-sm); opacity: .6; cursor: pointer; transition: opacity .3s; }
.woocommerce div.product .flex-control-thumbs img.flex-active, .woocommerce div.product .flex-control-thumbs img:hover { opacity: 1; }
.woocommerce div.product .summary { position: sticky; top: calc(var(--dv-header-h) + 1.5rem); }
.woocommerce div.product .product_title { font-size: clamp(2rem, 4vw, 3.2rem); text-transform: uppercase; margin-bottom: .75rem; }
.woocommerce div.product p.price, .woocommerce div.product span.price { font-size: 1.35rem; font-weight: 600; color: var(--dv-charbon); margin-bottom: 1.25rem; }
.woocommerce div.product p.price del { opacity: .55; font-weight: 400; }
.woocommerce div.product p.price ins { text-decoration: none; }
.woocommerce-product-details__short-description { color: var(--dv-muted); margin-bottom: 1.75rem; }
.woocommerce div.product form.cart { display: flex; flex-wrap: wrap; gap: .75rem; margin-bottom: 1.75rem; }
.woocommerce div.product form.cart .button { flex: 1; min-height: 56px; font-size: .95rem; }
.woocommerce div.product form.variations_form { display: block; }
.woocommerce div.product form.cart .variations { width: 100%; margin-bottom: 1rem; border-collapse: collapse; }
.woocommerce div.product form.cart .variations th, .woocommerce div.product form.cart .variations td { display: block; text-align: left; padding: 0 0 .5rem; }
.woocommerce div.product form.cart .woocommerce-variation-add-to-cart { display: flex; gap: .75rem; }
.woocommerce .quantity .qty {
	width: 5.5rem; min-height: 56px; padding: 0 .5rem; text-align: center;
	border: 1px solid var(--dv-line); border-radius: 999px; background: var(--dv-white);
}
.woocommerce div.product .product_meta { font-size: .85rem; color: var(--dv-muted); padding-top: 1.25rem; border-top: 1px solid var(--dv-line); }
.woocommerce div.product .product_meta > span { display: block; margin-bottom: .3rem; }
.woocommerce div.product .product_meta a { color: var(--dv-olive-dark); }
.woocommerce div.product .stock { font-weight: 600; color: var(--dv-olive-dark); }
.woocommerce div.product .out-of-stock { color: #8a1f1f; }

.woocommerce div.product .woocommerce-tabs { margin-top: clamp(3rem, 6vw, 5rem); }
.woocommerce div.product .woocommerce-tabs ul.tabs { display: flex; flex-wrap: wrap; gap: 2rem; list-style: none; margin: 0 0 2rem; padding: 0; border-bottom: 1px solid var(--dv-line); }
.woocommerce div.product .woocommerce-tabs ul.tabs::before, .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 { margin: 0; padding: 0; border: 0; background: none; border-radius: 0; }
.woocommerce div.product .woocommerce-tabs ul.tabs li a { display: block; padding: .9rem 0; font-size: .8rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; text-decoration: none; color: var(--dv-muted); border-bottom: 2px solid transparent; margin-bottom: -1px; }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a { color: var(--dv-charbon); border-color: var(--dv-bronze); }
.woocommerce div.product .woocommerce-tabs .panel { max-width: 760px; }
.woocommerce div.product .woocommerce-tabs .panel > h2:first-child { display: none; }
.woocommerce .related > h2, .woocommerce .upsells > h2 { font-size: clamp(1.8rem, 3.5vw, 2.8rem); text-transform: uppercase; margin: clamp(3rem, 6vw, 5rem) 0 2rem; }

@media (max-width: 900px) {
	.woocommerce div.product { grid-template-columns: 1fr; }
	.woocommerce div.product .summary { position: static; }
}

/* Notices */
.woocommerce-message, .woocommerce-info, .woocommerce-error, .woocommerce-notices-wrapper .wc-block-components-notice-banner {
	list-style: none; margin: 0 0 1.5rem; padding: 1rem 1.25rem; border: 0; border-left: 3px solid var(--dv-olive); border-radius: var(--dv-radius-sm);
	background: var(--dv-white); color: var(--dv-charbon); display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem;
}
.woocommerce-message::before, .woocommerce-info::before, .woocommerce-error::before { display: none; }
.woocommerce-error { border-color: #b32d2e; }
.woocommerce-info { border-color: var(--dv-bronze); }
.woocommerce-message .button, .woocommerce-info .button { order: 2; min-height: 40px; padding: .5rem 1.1rem; }

/* Formulaires (compte, commande classique) */
.woocommerce form .form-row { margin: 0 0 1rem; padding: 0; }
.woocommerce form .form-row label { display: block; font-size: .85rem; font-weight: 600; margin-bottom: .35rem; }
.woocommerce form .form-row input.input-text, .woocommerce form .form-row textarea, .woocommerce-page form .form-row input.input-text {
	width: 100%; min-height: 48px; padding: .7rem 1rem; border: 1px solid var(--dv-line); border-radius: var(--dv-radius-sm); background: var(--dv-white);
}
.woocommerce form .form-row input.input-text:focus, .woocommerce form .form-row textarea:focus { outline: none; border-color: var(--dv-olive); box-shadow: 0 0 0 3px rgba(84, 99, 74, .2); }
.woocommerce form.login, .woocommerce form.register, .woocommerce form.checkout_coupon { border: 1px solid var(--dv-line); border-radius: var(--dv-radius); padding: clamp(1.25rem, 3vw, 2rem); background: var(--dv-white); }
.woocommerce .col2-set, .woocommerce-page .col2-set { display: grid; grid-template-columns: 1fr 1fr; gap: 2rem; }
.woocommerce .col2-set .col-1, .woocommerce .col2-set .col-2 { width: auto; float: none; }
@media (max-width: 760px) { .woocommerce .col2-set, .woocommerce-page .col2-set { grid-template-columns: 1fr; } }

/* Tableaux (panier classique, commandes) */
.woocommerce table.shop_table { border: 1px solid var(--dv-line); border-radius: var(--dv-radius); border-collapse: separate; overflow: hidden; background: var(--dv-white); width: 100%; }
.woocommerce table.shop_table th { font-size: .75rem; letter-spacing: .14em; text-transform: uppercase; }
.woocommerce table.shop_table th, .woocommerce table.shop_table td { padding: 1rem; border-top: 1px solid var(--dv-line); }
.woocommerce table.shop_table img { width: 72px; border-radius: var(--dv-radius-sm); }

/* Mon compte */
.woocommerce-account .woocommerce { display: grid; grid-template-columns: 240px 1fr; gap: clamp(1.5rem, 4vw, 3.5rem); }
.woocommerce-account .woocommerce > .woocommerce-notices-wrapper { grid-column: 1 / -1; }
.woocommerce-account:not(.logged-in) .woocommerce { display: block; }
.woocommerce-MyAccount-navigation, .woocommerce-MyAccount-content { width: auto !important; float: none !important; }
.woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--dv-line); }
.woocommerce-MyAccount-navigation li a { display: block; padding: .85rem 0; border-bottom: 1px solid var(--dv-line); text-decoration: none; font-weight: 500; }
.woocommerce-MyAccount-navigation li.is-active a { color: var(--dv-olive-dark); font-weight: 700; }
@media (max-width: 760px) { .woocommerce-account .woocommerce { grid-template-columns: 1fr; } }

/* Mini-panier (panier latéral) */
.dv-drawer .woocommerce-mini-cart { list-style: none; margin: 0; padding: 0; }
.dv-drawer ul.woocommerce-mini-cart li.woocommerce-mini-cart-item {
	position: relative; min-height: 122px; padding: 1rem 2.25rem 1rem 88px; border-bottom: 1px solid var(--dv-line);
}
.dv-drawer ul.woocommerce-mini-cart li.woocommerce-mini-cart-item > a:not(.remove) { display: block; font-weight: 600; text-decoration: none; line-height: 1.35; margin-bottom: .35rem; }
.dv-drawer ul.woocommerce-mini-cart li.woocommerce-mini-cart-item img { position: absolute; left: 0; top: 1rem; width: 72px !important; height: 90px; object-fit: cover; border-radius: var(--dv-radius-sm); margin: 0 !important; float: none !important; }
.dv-drawer .woocommerce-mini-cart-item .quantity { display: block; font-size: .88rem; color: var(--dv-muted); }
.dv-drawer .woocommerce-mini-cart-item .remove {
	position: absolute; right: 0; top: 1rem; display: grid; place-items: center; width: 28px; height: 28px; border-radius: 50%;
	text-decoration: none; font-size: 1.2rem; line-height: 1; color: var(--dv-muted); transition: background-color .25s, color .25s;
}
.dv-drawer .woocommerce-mini-cart-item .remove:hover { background: var(--dv-charbon); color: var(--dv-ivoire); }
.dv-drawer .woocommerce-mini-cart__total { display: flex; justify-content: space-between; margin: 1.5rem 0 1rem; font-size: 1.05rem; }
.dv-drawer .woocommerce-mini-cart__buttons { display: grid; gap: .6rem; margin: 0; }
.dv-drawer .woocommerce-mini-cart__buttons .button { width: 100%; }
.dv-drawer .woocommerce-mini-cart__buttons .button:not(.checkout) { background: transparent; color: var(--dv-charbon); border-color: var(--dv-charbon); }
.dv-drawer .woocommerce-mini-cart__buttons .button:not(.checkout):hover { background: var(--dv-charbon); color: var(--dv-ivoire); }
.dv-drawer .woocommerce-mini-cart__empty-message { color: var(--dv-muted); }
.dv-drawer .blockUI.blockOverlay { background: rgba(245, 242, 236, .7) !important; }

/* Blocs Panier / Validation de commande (WooCommerce Blocks) */
.wp-block-woocommerce-cart, .wp-block-woocommerce-checkout { max-width: var(--dv-container); margin-inline: auto; padding-inline: var(--dv-gutter); }
.wc-block-components-text-input input, .wc-block-components-combobox .components-combobox-control__input, .wc-block-components-select select { border-radius: var(--dv-radius-sm) !important; }
.wc-block-components-checkout-place-order-button, .wc-block-cart__submit-button { min-height: 56px !important; }
.wc-block-components-title.wc-block-components-title { font-family: var(--dv-display); text-transform: uppercase; }

/* Pages panier / commande / compte : pleine largeur de conteneur */
.woocommerce-cart .dv-content > *, .woocommerce-checkout .dv-content > *, .woocommerce-account .dv-content > * { max-width: var(--dv-container) !important; }
