/* =========================================================================
   BioDades — habillage complet de WooCommerce
   Les feuilles de style natives sont désactivées : tout est défini ici.
   ====================================================================== */

@font-face {
	font-family: "star";
	src: url("../../../../plugins/woocommerce/assets/fonts/star.woff") format("woff");
	font-weight: 400;
	font-style: normal;
	font-display: block;
}

@font-face {
	font-family: "WooCommerce";
	src: url("../../../../plugins/woocommerce/assets/fonts/WooCommerce.woff2") format("woff2");
	font-weight: 400;
	font-style: normal;
	font-display: block;
}

/* -------------------------------------------------------------------------
   1. Ossature des pages boutique
   ---------------------------------------------------------------------- */

.bd-shopwrap { padding-block: clamp(40px, 5vw, 70px); }
.bd-shopmain { min-width: 0; }

.woocommerce-notices-wrapper:empty { display: none; }

/* -------------------------------------------------------------------------
   2. Barre de tri
   ---------------------------------------------------------------------- */

.woocommerce-result-count,
.woocommerce-ordering {
	margin: 0;
}

.bd-shopmain > .woocommerce-result-count,
.bd-shopmain > .woocommerce-ordering { display: inline-block; }

.woocommerce-products-header { display: none; }

.bd-shopbar {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	margin-bottom: 34px;
	padding-bottom: 18px;
	border-bottom: 1px solid var(--bd-line);
	font-size: 14px;
	color: var(--bd-muted);
}

.woocommerce-ordering select,
.bd-select select,
.woocommerce select,
.woocommerce-page select {
	appearance: none;
	padding: 11px 42px 11px 18px;
	background-color: #fff;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%237b6752' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 16px center;
	border: 1px solid var(--bd-line);
	border-radius: var(--bd-pill);
	color: var(--bd-ink);
	font-size: 14px;
	cursor: pointer;
}
.woocommerce-ordering select:focus { outline: none; border-color: var(--bd-honey); }

/* -------------------------------------------------------------------------
   3. Grille et carte produit
   ---------------------------------------------------------------------- */

ul.products {
	display: grid;
	grid-template-columns: repeat(var(--bd-cols, 3), minmax(0, 1fr));
	gap: 34px 26px;
	margin: 0;
	padding: 0;
	list-style: none;
}
ul.products.columns-1 { --bd-cols: 1; }
ul.products.columns-2 { --bd-cols: 2; }
ul.products.columns-3 { --bd-cols: 3; }
ul.products.columns-4 { --bd-cols: 4; }
ul.products::after { content: none; }

.bd-card {
	display: flex;
	flex-direction: column;
	height: 100%;
	margin: 0;
	list-style: none;
}

.bd-card__media {
	position: relative;
	aspect-ratio: 1;
	margin-bottom: 18px;
	border-radius: var(--bd-radius);
	overflow: hidden;
	background: var(--bd-cream);
}
.bd-card__link { display: block; width: 100%; height: 100%; }
.bd-card__img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .7s var(--bd-ease), opacity .5s var(--bd-ease);
}
.bd-card__img--hover {
	position: absolute;
	inset: 0;
	opacity: 0;
}
.bd-card:hover .bd-card__img--hover { opacity: 1; }
.bd-card:hover .bd-card__img { transform: scale(1.05); }

.bd-card__badges {
	position: absolute;
	top: 14px; left: 14px;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 6px;
	z-index: 2;
}

.bd-card__tools {
	position: absolute;
	top: 14px; right: 14px;
	z-index: 2;
	display: flex;
	flex-direction: column;
	gap: 8px;
	opacity: 0;
	transform: translateX(12px);
	transition: all .35s var(--bd-ease);
}
.bd-card:hover .bd-card__tools { opacity: 1; transform: translateX(0); }
.bd-card__tools .bd-iconbtn { width: 38px; height: 38px; }
.bd-card__tools .bd-iconbtn:hover { background: var(--bd-ink); color: #fff; }

.bd-card__cart {
	position: absolute;
	left: 14px; right: 14px; bottom: 14px;
	z-index: 2;
	opacity: 0;
	transform: translateY(14px);
	transition: all .35s var(--bd-ease);
}
.bd-card:hover .bd-card__cart { opacity: 1; transform: translateY(0); }
.bd-card__cart .button,
.bd-card__cart .added_to_cart {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	padding: 13px 20px;
	background: var(--bd-ink);
	border: 0;
	border-radius: var(--bd-pill);
	color: #fff;
	font-size: 13px;
	font-weight: 500;
	letter-spacing: .08em;
	text-transform: uppercase;
	line-height: 1;
	transition: background .3s var(--bd-ease);
}
.bd-card__cart .button:hover { background: var(--bd-honey); color: #fff; }
.bd-card__cart .added_to_cart { margin-top: 8px; background: var(--bd-honey); }
.bd-card__cart .button.loading { opacity: .7; pointer-events: none; }
.bd-card__cart .button.added::after { content: none; }

.bd-card__body { display: flex; flex-direction: column; gap: 5px; }
.bd-card__cat {
	font-size: 11px;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--bd-muted);
}
.bd-card__title { margin: 0; font-size: 18px; line-height: 1.3; }
.bd-card__title a { color: var(--bd-ink); }
.bd-card__title a:hover { color: var(--bd-honey-700); }
.bd-card__price {
	font-family: var(--bd-serif);
	font-size: 19px;
	font-weight: 600;
	color: var(--bd-honey-700);
}
.bd-card__price del { color: var(--bd-muted); font-weight: 400; margin-right: 8px; opacity: .7; }
.bd-card__price ins { text-decoration: none; }

/* Étoiles WooCommerce */
.star-rating {
	position: relative;
	width: 5.4em;
	height: 1.2em;
	overflow: hidden;
	font-family: star;
	font-size: 13px;
	line-height: 1.2;
	color: var(--bd-honey);
}
.star-rating::before {
	content: "\73\73\73\73\73";
	position: absolute;
	top: 0; left: 0;
	opacity: .35;
}
.star-rating span {
	position: absolute;
	top: 0; left: 0;
	overflow: hidden;
	padding-top: 1.5em;
}
.star-rating span::before {
	content: "\53\53\53\53\53";
	position: absolute;
	top: 0; left: 0;
}
.woocommerce-product-rating { display: flex; align-items: center; gap: 12px; margin-bottom: 14px; }
.woocommerce-review-link { font-size: 13px; color: var(--bd-muted); }

/* -------------------------------------------------------------------------
   4. Fiche produit
   ---------------------------------------------------------------------- */

.single-product .bd-shopmain > div.product {
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);
	gap: clamp(30px, 4vw, 64px);
	align-items: start;
}

/* L'étiquette « Promo » précède la galerie dans le balisage : sortie du flux,
   elle ne décale plus les colonnes de la grille. */
.single-product .bd-shopmain > div.product > .onsale,
.woocommerce span.onsale {
	position: absolute;
	top: 16px;
	left: 16px;
	z-index: 4;
	padding: 7px 14px;
	background: var(--bd-red);
	border-radius: var(--bd-pill);
	color: #fff;
	font-size: 11px;
	font-weight: 600;
	letter-spacing: .1em;
	text-transform: uppercase;
	line-height: 1;
}
.single-product .bd-shopmain > div.product .woocommerce-product-gallery { position: relative; }
.single-product .bd-shopmain > div.product .summary { margin: 0; }
.single-product .bd-shopmain > div.product .woocommerce-tabs,
.single-product .bd-shopmain > div.product .related,
.single-product .bd-shopmain > div.product .up-sells,
.single-product .bd-shopmain > div.product .woocommerce-notices-wrapper { grid-column: 1 / -1; }

.woocommerce-product-gallery__wrapper {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 14px;
}
.woocommerce-product-gallery__image {
	aspect-ratio: 1;
	border-radius: var(--bd-radius);
	overflow: hidden;
	background: var(--bd-cream);
}
.woocommerce-product-gallery__image:first-child { grid-column: 1 / -1; }
.woocommerce-product-gallery__image a { display: block; height: 100%; }
.woocommerce-product-gallery img { width: 100%; height: 100%; object-fit: cover; }

.product_title { font-size: clamp(28px, 3.4vw, 42px); margin-bottom: 10px; }

.single-product .summary .price,
.woocommerce div.product p.price,
.woocommerce div.product span.price {
	display: block;
	margin: 0 0 18px;
	font-family: var(--bd-serif);
	font-size: 30px;
	font-weight: 600;
	color: var(--bd-honey-700);
}
.single-product .summary .price del { color: var(--bd-muted); font-size: 22px; margin-right: 10px; opacity: .65; }
.single-product .summary .price ins { text-decoration: none; }

.woocommerce-product-details__short-description {
	padding-bottom: 22px;
	margin-bottom: 22px;
	border-bottom: 1px solid var(--bd-line);
	color: var(--bd-muted);
}

.single-product form.cart { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin-bottom: 22px; }
.single-product form.cart.variations_form { display: block; }

.bd-qty, .quantity {
	display: inline-flex;
	align-items: center;
	height: 52px;
	border: 1px solid var(--bd-line);
	border-radius: var(--bd-pill);
	overflow: hidden;
	background: #fff;
}
.quantity input[type="number"],
.bd-qty input[type="number"] {
	width: 58px;
	height: 100%;
	padding: 0;
	border: 0;
	background: transparent;
	text-align: center;
	font-size: 15px;
	-moz-appearance: textfield;
}
.quantity input[type="number"]::-webkit-outer-spin-button,
.quantity input[type="number"]::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.bd-qty__btn {
	width: 42px; height: 100%;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: transparent;
	border: 0;
	color: var(--bd-muted);
	transition: color .25s;
}
.bd-qty__btn:hover { color: var(--bd-ink); }

.single_add_to_cart_button,
.woocommerce .button.alt,
.woocommerce button.button,
.woocommerce a.button,
.woocommerce input.button,
.woocommerce #respond input#submit {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-height: 52px;
	padding: 0 34px;
	background: var(--bd-ink);
	border: 1px solid transparent;
	border-radius: var(--bd-pill);
	color: #fff;
	font-size: 14px;
	font-weight: 500;
	letter-spacing: .08em;
	text-transform: uppercase;
	line-height: 1;
	transition: all .3s var(--bd-ease);
}
.woocommerce .button:hover,
.woocommerce button.button:hover,
.woocommerce a.button:hover,
.woocommerce input.button:hover,
.woocommerce #respond input#submit:hover { background: var(--bd-honey); color: #fff; }

.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt { background: var(--bd-honey); }
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover,
.woocommerce input.button.alt:hover { background: var(--bd-ink); }

.woocommerce .button.disabled,
.woocommerce button.button:disabled,
.woocommerce a.button.disabled { opacity: .45; pointer-events: none; }

.single_add_to_cart_button { flex: 1; min-width: 200px; }

.bd-reassure { list-style: none; margin: 20px 0 0; padding: 0; display: grid; gap: 11px; }
.bd-reassure li { display: flex; align-items: center; gap: 11px; font-size: 14px; color: var(--bd-muted); }
.bd-reassure .bd-icon { color: var(--bd-honey-700); flex: none; }

.product_meta {
	margin-top: 24px;
	padding-top: 20px;
	border-top: 1px solid var(--bd-line);
	font-size: 14px;
	color: var(--bd-muted);
	display: grid;
	gap: 6px;
}
.product_meta > span { display: block; }
.product_meta a { color: var(--bd-ink-2); }

/* Variations */
.variations { width: 100%; margin-bottom: 18px; border-collapse: collapse; }
.variations th,
.variations td { padding: 8px 0; text-align: left; vertical-align: middle; }
.variations th { width: 130px; font-size: 13px; letter-spacing: .1em; text-transform: uppercase; color: var(--bd-muted); font-weight: 500; }
.reset_variations { display: inline-block; margin-left: 12px; font-size: 13px; }
.woocommerce-variation-price { margin-bottom: 14px; }

/* Onglets */
.woocommerce-tabs { margin-top: clamp(46px, 5vw, 78px); }
.woocommerce-tabs ul.tabs {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 0 0 28px;
	padding: 0 0 14px;
	list-style: none;
	border-bottom: 1px solid var(--bd-line);
}
.woocommerce-tabs ul.tabs li a {
	display: inline-block;
	padding: 11px 24px;
	border-radius: var(--bd-pill);
	color: var(--bd-muted);
	font-size: 13px;
	font-weight: 500;
	letter-spacing: .1em;
	text-transform: uppercase;
}
.woocommerce-tabs ul.tabs li.active a { background: var(--bd-ink); color: #fff; }
.woocommerce-tabs .panel > h2:first-child { display: none; }
.woocommerce-tabs .panel { max-width: 860px; color: var(--bd-ink-2); }
.shop_attributes { width: 100%; border-collapse: collapse; }
.shop_attributes th,
.shop_attributes td { padding: 12px 16px; border: 1px solid var(--bd-line); text-align: left; }
.shop_attributes th { background: var(--bd-cream); width: 240px; font-weight: 500; }

/* Avis produit */
#reviews .commentlist { list-style: none; margin: 0 0 34px; padding: 0; display: grid; gap: 22px; }
#reviews .comment_container { display: flex; gap: 16px; padding: 22px; background: var(--bd-cream); border-radius: var(--bd-radius); }
#reviews .comment_container img { border-radius: 50%; flex: none; }
#reviews .comment-text { flex: 1; }
#reviews .meta { font-size: 13px; color: var(--bd-muted); margin-bottom: 8px; }
#review_form .comment-form { display: grid; gap: 14px; max-width: 640px; }
#review_form .comment-form-rating { display: flex; align-items: center; gap: 14px; }
.stars a { color: var(--bd-honey); }

/* Produits liés */
.related, .up-sells { margin-top: clamp(46px, 5vw, 80px); }
.related > h2, .up-sells > h2, .cross-sells > h2 {
	margin-bottom: 30px;
	font-size: clamp(24px, 2.8vw, 34px);
}

/* -------------------------------------------------------------------------
   5. Notices
   ---------------------------------------------------------------------- */

.woocommerce-message,
.woocommerce-info,
.woocommerce-error,
.woocommerce-noreviews,
p.no-comments {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px;
	margin: 0 0 24px;
	padding: 16px 22px;
	list-style: none;
	background: var(--bd-cream);
	border-left: 3px solid var(--bd-honey);
	border-radius: 0 var(--bd-radius-sm) var(--bd-radius-sm) 0;
	font-size: 15px;
	color: var(--bd-ink-2);
}
.woocommerce-error { background: #fdeeea; border-left-color: var(--bd-red); }
.woocommerce-message { background: #f1f6ec; border-left-color: var(--bd-green); }
.woocommerce-message .button,
.woocommerce-info .button,
.woocommerce-error .button {
	min-height: 40px;
	padding: 0 20px;
	margin-left: auto;
	font-size: 12px;
}

/* -------------------------------------------------------------------------
   6. Panier
   ---------------------------------------------------------------------- */

/* Panier, commande et compte client ont besoin de toute la largeur : la
   gouttière de lecture de .bd-page ne s'applique qu'aux pages éditoriales. */
.woocommerce-cart .bd-page,
.woocommerce-checkout .bd-page,
.woocommerce-account .bd-page { max-width: var(--bd-container); }

.woocommerce-cart-form { margin-bottom: 40px; }

table.shop_table {
	width: 100%;
	border-collapse: collapse;
	margin-bottom: 30px;
}
.woocommerce-cart-form table.shop_table .product-remove { width: 60px; }
.woocommerce-cart-form table.shop_table .product-thumbnail { width: 110px; }
.woocommerce-cart-form table.shop_table .product-price,
.woocommerce-cart-form table.shop_table .product-quantity,
.woocommerce-cart-form table.shop_table .product-subtotal { width: 160px; }
table.shop_table th,
table.shop_table td {
	padding: 18px 14px;
	border-bottom: 1px solid var(--bd-line);
	text-align: left;
	vertical-align: middle;
}
table.shop_table th {
	font-size: 12px;
	font-weight: 600;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--bd-muted);
}
table.shop_table .product-thumbnail img { width: 84px; border-radius: var(--bd-radius-sm); }
table.shop_table .product-name a { color: var(--bd-ink); font-weight: 500; }
table.shop_table .product-remove a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 28px; height: 28px;
	border-radius: 50%;
	background: var(--bd-cream);
	color: var(--bd-muted);
	font-size: 16px;
	line-height: 1;
}
table.shop_table .product-remove a:hover { background: var(--bd-red); color: #fff; }
.cart_totals table.shop_table th { text-transform: none; letter-spacing: 0; font-size: 15px; color: var(--bd-ink); }

/* La cellule reste une cellule de tableau : la passer en flex casserait la
   répartition des colonnes du panier. */
table.shop_table td.actions {
	padding: 22px 0 0;
	border-bottom: 0;
	text-align: right;
}
table.shop_table td.actions::after { content: ""; display: table; clear: both; }
.coupon { display: flex; float: left; gap: 10px; width: min(440px, 100%); }
.coupon input[type="text"] {
	flex: 1;
	min-width: 0;
	padding: 0 20px;
	height: 52px;
	background: #fff;
	border: 1px solid var(--bd-line);
	border-radius: var(--bd-pill);
}

/* Les ventes croisées sont facultatives : le récapitulatif reste à droite
   qu'elles soient présentes ou non. */
.cart-collaterals { display: flex; flex-wrap: wrap; gap: 40px; align-items: flex-start; justify-content: flex-end; }
.cart-collaterals .cross-sells { flex: 1 1 340px; }
.cart_totals {
	flex: 0 1 420px;
	padding: 28px;
	background: var(--bd-cream);
	border-radius: var(--bd-radius);
}
.cart_totals h2 { font-size: 22px; }
.cart_totals table.shop_table { margin-bottom: 0; }
.cart_totals table.shop_table td,
.cart_totals table.shop_table th { padding: 12px 0; border-bottom: 1px dashed var(--bd-line); }
.cart_totals table.shop_table td { text-align: right; }
.cart_totals table.shop_table tr:last-child td,
.cart_totals table.shop_table tr:last-child th { border-bottom: 0; }

#shipping_method {
	display: grid;
	gap: 8px;
	margin: 0;
	padding: 0;
	list-style: none;
}
#shipping_method li {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: 8px;
}
#shipping_method label { margin: 0; font-size: 14px; }
.woocommerce-shipping-destination { margin: 10px 0 0; font-size: 13px; color: var(--bd-muted); }
.shipping-calculator-button { font-size: 13px; }
.cart_totals .order-total td { font-family: var(--bd-serif); font-size: 22px; color: var(--bd-honey-700); }
.wc-proceed-to-checkout { margin-top: 20px; }
.wc-proceed-to-checkout .checkout-button { width: 100%; background: var(--bd-honey); }

.bd-shipbar { margin-bottom: 22px; font-size: 14px; }
.bd-shipbar p { margin: 0 0 8px; }
.bd-shipbar__track {
	display: block;
	height: 6px;
	background: var(--bd-cream-2);
	border-radius: var(--bd-pill);
	overflow: hidden;
}
.bd-shipbar__track i { display: block; height: 100%; background: linear-gradient(90deg, var(--bd-honey), var(--bd-amber)); }
.bd-shipbar.is-done { color: var(--bd-green); font-weight: 500; }

/* -------------------------------------------------------------------------
   7. Mini panier
   ---------------------------------------------------------------------- */

.widget_shopping_cart_content { display: flex; flex-direction: column; min-height: 100%; }
ul.cart_list, ul.product_list_widget {
	list-style: none;
	margin: 0 0 20px;
	padding: 0;
	display: grid;
	gap: 16px;
}
ul.cart_list li, ul.product_list_widget li {
	position: relative;
	display: grid;
	grid-template-columns: 74px 1fr;
	gap: 14px;
	padding-bottom: 16px;
	border-bottom: 1px solid var(--bd-line);
}
ul.cart_list li img, ul.product_list_widget li img {
	grid-row: span 2;
	width: 74px;
	border-radius: var(--bd-radius-sm);
}
ul.cart_list li a, ul.product_list_widget li a { color: var(--bd-ink); font-weight: 500; font-size: 15px; }
ul.cart_list li .quantity, ul.product_list_widget li .quantity {
	display: block;
	height: auto;
	border: 0;
	background: none;
	font-size: 14px;
	color: var(--bd-muted);
}
ul.cart_list li a.remove {
	position: absolute;
	top: 0; right: 0;
	width: 24px; height: 24px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	background: var(--bd-cream);
	color: var(--bd-muted);
	font-size: 14px;
	line-height: 1;
}
ul.cart_list li a.remove:hover { background: var(--bd-red); color: #fff; }

.woocommerce-mini-cart__total {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin: 0 0 16px;
	padding-top: 16px;
	border-top: 1px solid var(--bd-line);
	font-family: var(--bd-serif);
	font-size: 19px;
	color: var(--bd-ink);
}
.woocommerce-mini-cart__buttons { display: grid; gap: 10px; margin: 0; }
.woocommerce-mini-cart__buttons .button { width: 100%; }
.woocommerce-mini-cart__buttons .checkout { background: var(--bd-honey); }
.woocommerce-mini-cart__empty-message {
	padding: 40px 0;
	text-align: center;
	color: var(--bd-muted);
}

/* -------------------------------------------------------------------------
   8. Commande et compte
   ---------------------------------------------------------------------- */

.woocommerce-checkout .woocommerce > form.checkout {
	display: grid;
	grid-template-columns: minmax(0, 1.15fr) minmax(320px, 460px);
	grid-template-rows: auto 1fr;
	gap: 44px;
	align-items: start;
}
/* Le récapitulatif doit se placer sous son titre, et non sous toute la hauteur
   du formulaire de facturation : les lignes sont donc explicites. */
#customer_details { min-width: 0; grid-column: 1; grid-row: 1 / span 2; }
#order_review_heading { grid-column: 2; grid-row: 1; margin-bottom: 18px; }
#order_review { grid-column: 2; grid-row: 2; }
.woocommerce-checkout #order_review,
.woocommerce-checkout .woocommerce-checkout-review-order {
	padding: 28px;
	background: var(--bd-cream);
	border-radius: var(--bd-radius);
	position: sticky;
	top: calc(var(--bd-header-h) + 20px);
}

.woocommerce-billing-fields h3,
.woocommerce-shipping-fields h3,
.woocommerce-additional-fields h3 { font-size: 22px; margin-bottom: 18px; }

.woocommerce form .form-row {
	display: flex;
	flex-direction: column;
	gap: 7px;
	margin: 0 0 16px;
	padding: 0;
}
.woocommerce form .form-row label {
	font-size: 13px;
	font-weight: 500;
	letter-spacing: .06em;
	color: var(--bd-ink-2);
}
.woocommerce form .form-row .required { color: var(--bd-red); text-decoration: none; }
.woocommerce form .form-row-first,
.woocommerce form .form-row-last { width: calc(50% - 8px); display: inline-flex; }
.woocommerce form .form-row-first { float: left; }
.woocommerce form .form-row-last { float: right; }
.woocommerce form .form-row-wide, .woocommerce form .form-row.notes { clear: both; }
.woocommerce form .clear { clear: both; }

.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.woocommerce .select2-container .select2-selection--single,
.woocommerce-account input.input-text,
.woocommerce-account textarea {
	width: 100%;
	min-height: 50px;
	padding: 13px 18px;
	background: #fff;
	border: 1px solid var(--bd-line);
	border-radius: var(--bd-radius-sm);
	color: var(--bd-ink);
	font-size: 15px;
	transition: border-color .25s;
}
.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus { outline: none; border-color: var(--bd-honey); }
.woocommerce form .form-row textarea { min-height: 110px; resize: vertical; }
.woocommerce .select2-container .select2-selection--single { display: flex; align-items: center; }
.woocommerce .select2-container--default .select2-selection--single .select2-selection__arrow { top: 50%; transform: translateY(-50%); right: 10px; }

.woocommerce-checkout-review-order-table { margin-bottom: 20px; }
.woocommerce-checkout-review-order-table th,
.woocommerce-checkout-review-order-table td { padding: 12px 0; border-bottom: 1px dashed var(--bd-line); }
.woocommerce-checkout-review-order-table .order-total td { font-family: var(--bd-serif); font-size: 21px; color: var(--bd-honey-700); }

#payment { margin-top: 8px; }
#payment ul.payment_methods { list-style: none; margin: 0 0 18px; padding: 0; display: grid; gap: 10px; }
#payment ul.payment_methods li {
	padding: 14px 18px;
	background: #fff;
	border: 1px solid var(--bd-line);
	border-radius: var(--bd-radius-sm);
}
#payment ul.payment_methods li label { font-weight: 500; cursor: pointer; }
#payment .payment_box { margin-top: 10px; font-size: 14px; color: var(--bd-muted); }
#payment .place-order .button { width: 100%; background: var(--bd-honey); }
.woocommerce-terms-and-conditions-wrapper { margin-bottom: 16px; font-size: 14px; }

/* Compte client */
.woocommerce-account .woocommerce {
	display: grid;
	grid-template-columns: 260px minmax(0, 1fr);
	gap: 44px;
	align-items: start;
}
/* WordPress n'ajoute que la classe « logged-in » : la page de connexion se
   reconnaît donc par son absence. */
.woocommerce-account:not(.logged-in) .woocommerce {
	grid-template-columns: minmax(0, 1fr);
	max-width: 520px;
	margin-inline: auto;
}
.woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 4px; }
.woocommerce-MyAccount-navigation a {
	display: block;
	padding: 12px 18px;
	border-radius: var(--bd-radius-sm);
	color: var(--bd-ink-2);
	font-size: 15px;
}
.woocommerce-MyAccount-navigation li.is-active a,
.woocommerce-MyAccount-navigation a:hover { background: var(--bd-cream); color: var(--bd-honey-700); }
.woocommerce-MyAccount-content { min-width: 0; }

/* Œil d'affichage du mot de passe, superposé au champ. */
.woocommerce form .password-input { position: relative; display: block; }
.woocommerce form .show-password-input {
	position: absolute;
	top: 50%;
	right: 14px;
	transform: translateY(-50%);
	width: 22px;
	height: 22px;
	cursor: pointer;
	background: none;
	border: 0;
	padding: 0;
	color: var(--bd-muted);
}
.woocommerce form .show-password-input::after {
	content: "";
	position: absolute;
	inset: 4px 0;
	border: 1.6px solid currentColor;
	border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
}
.woocommerce form .show-password-input.display-password { color: var(--bd-honey-700); }

.woocommerce-form-login,
.woocommerce-form-register,
.woocommerce-ResetPassword {
	padding: 30px;
	background: var(--bd-cream);
	border-radius: var(--bd-radius);
}
.woocommerce-form-login__rememberme { display: inline-flex; align-items: center; gap: 8px; }

/* -------------------------------------------------------------------------
   9. Widgets boutique
   ---------------------------------------------------------------------- */

.widget_price_filter .price_slider_wrapper .ui-slider {
	position: relative;
	height: 4px;
	margin: 18px 0 22px;
	background: var(--bd-cream-2);
	border-radius: var(--bd-pill);
}
.widget_price_filter .ui-slider-range { position: absolute; height: 100%; background: var(--bd-honey); border-radius: var(--bd-pill); }
.widget_price_filter .ui-slider-handle {
	position: absolute;
	top: -6px;
	width: 16px; height: 16px;
	margin-left: -8px;
	background: var(--bd-ink);
	border-radius: 50%;
	cursor: grab;
}
.widget_price_filter .price_slider_amount { display: flex; align-items: center; justify-content: space-between; gap: 10px; font-size: 14px; }
.widget_price_filter .price_slider_amount input[type="text"] { display: none; }

.wc-block-product-categories-list, .widget_product_categories ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 9px; }
.widget_product_categories a { color: var(--bd-ink-2); }
.widget_product_categories a:hover { color: var(--bd-honey-700); }

/* -------------------------------------------------------------------------
   10. Aperçu rapide
   ---------------------------------------------------------------------- */

.bd-quick form.cart { display: flex; flex-wrap: wrap; gap: 12px; margin-bottom: 20px; }
.bd-quick .single_add_to_cart_button { flex: 1; min-width: 180px; }

/* -------------------------------------------------------------------------
   11. Responsive
   ---------------------------------------------------------------------- */

@media (max-width: 1180px) {
	ul.products.columns-4 { --bd-cols: 3; }
}

@media (max-width: 991px) {
	ul.products, ul.products.columns-3, ul.products.columns-4 { --bd-cols: 2; }
	.single-product .bd-shopmain > div.product { grid-template-columns: 1fr; }
	.cart_totals { flex: 1 1 100%; }
	.woocommerce-checkout .woocommerce > form.checkout { grid-template-columns: 1fr; grid-template-rows: none; }
	#customer_details,
	#order_review_heading,
	#order_review { grid-column: 1; grid-row: auto; }
	.woocommerce-checkout #order_review { position: static; }
	.woocommerce-account .woocommerce { grid-template-columns: 1fr; }
	.woocommerce-MyAccount-navigation ul { display: flex; flex-wrap: wrap; gap: 8px; }
	.woocommerce-MyAccount-navigation a { background: var(--bd-cream); }
}

@media (max-width: 640px) {
	ul.products, ul.products.columns-2, ul.products.columns-3, ul.products.columns-4 { --bd-cols: 2; gap: 24px 14px; }
	.bd-card__cart, .bd-card__tools { opacity: 1; transform: none; }
	.bd-card__title { font-size: 16px; }
	.woocommerce form .form-row-first,
	.woocommerce form .form-row-last { width: 100%; float: none; }
	table.shop_table thead { display: none; }
	table.shop_table tr { display: grid; grid-template-columns: 84px 1fr; gap: 4px 14px; padding: 16px 0; border-bottom: 1px solid var(--bd-line); }
	table.shop_table td { border: 0; padding: 2px 0; }
	table.shop_table td.product-thumbnail { grid-row: span 4; }
	table.shop_table td.product-remove { grid-column: 2; justify-self: end; }
	.actions { flex-direction: column; }
	.coupon { max-width: none; }
}