/* Brewstock v2 — panier, commande et Mon compte (guide UX-52, UX-53, UX-54), chargé seulement sur ces pages
   (inc/pages-commerce.php). Mobile d'abord (375 px), puis 600 / 900 / 1200 px. Jetons --bw-* de base.css uniquement.
   Les feuilles de WooCommerce, d'Elementor et du thème parent ne sont pas chargées sur ces pages : tout est ici. */

/* ---------- Utilitaires attendus par WooCommerce ---------- */
@layer utilities {
	.screen-reader-text { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
	.bw-commerce .clear { clear: both; }
}

/* ---------- Mise en page ---------- */
@layer layout {
	.bw-commerce { padding-block: var(--bw-s4) var(--bw-s7); }
	.bw-commerce__entete { display: grid; gap: var(--bw-s3); margin-bottom: var(--bw-s5); }
	.bw-commerce__titres { display: grid; gap: var(--bw-s1); }
	.bw-commerce__prix { display: flex; align-items: center; gap: var(--bw-s2); justify-self: start; font-size: var(--bw-fs-xs); font-weight: 600; color: var(--bw-text-soft); }

	/* Panier : blocs des producteurs, puis récapitulatif (à droite à partir de 900 px) */
	.bw-panier { display: grid; gap: var(--bw-s5); align-items: start; }
	.bw-panier__formulaire, .bw-panier__recap { min-width: 0; }
	.bw-panier__contenu { display: grid; gap: var(--bw-s4); }

	/* Commande : récapitulatif replié en haut sur mobile, colonne de droite collante à partir de 900 px */
	.bw-commande { display: grid; gap: var(--bw-s4); align-items: start; }
	.bw-commande__principal, .bw-commande__client { display: grid; gap: var(--bw-s4); min-width: 0; }
	.bw-commande__recap { min-width: 0; }
	.bw-commande > .woocommerce-NoticeGroup { grid-column: 1 / -1; }

	/* Mon compte */
	.bw-compte { display: grid; gap: var(--bw-s5); align-items: start; }
	.bw-compte__contenu { min-width: 0; display: grid; gap: var(--bw-s4); align-content: start; }

	@media (min-width: 600px) {
		.bw-commerce__entete { grid-template-columns: minmax(0, 1fr) auto; align-items: end; }
		.bw-commerce__entete > .bw-etapes, .bw-commerce__entete > .bw-compte-retour { grid-column: 1 / -1; }
		.bw-commerce__prix { display: none; } /* à partir de 600 px, la bascule HT | TTC est celle de l’en-tête (REV-32) */
	}
	@media (min-width: 900px) {
		.bw-commerce { padding-top: var(--bw-s5); }
		.bw-panier { grid-template-columns: minmax(0, 1fr) 22rem; column-gap: var(--bw-s6); }
		.bw-panier__recap { position: sticky; top: calc(var(--bw-entete-h) + var(--bw-s4)); }
		.bw-commande { grid-template-columns: minmax(0, 1fr) 24rem; grid-template-areas: "principal recap"; column-gap: var(--bw-s6); }
		.bw-commande__principal { grid-area: principal; }
		.bw-commande__recap { grid-area: recap; position: sticky; top: calc(var(--bw-entete-h) + var(--bw-s4)); }
		.bw-compte { grid-template-columns: 15.5rem minmax(0, 1fr); column-gap: var(--bw-s6); }
	}
	@media (min-width: 1200px) {
		.bw-panier { grid-template-columns: minmax(0, 1fr) 24rem; }
		.bw-commande { grid-template-columns: minmax(0, 1fr) 26rem; }
	}
}

@layer components {
	/* ---------- Étapes de l'achat ---------- */
	.bw-etapes { display: flex; align-items: center; gap: var(--bw-s2); margin: 0; padding: 0; list-style: none; font-size: var(--bw-fs-xs); color: var(--bw-text-soft); }
	.bw-etapes__etape { display: flex; align-items: center; gap: var(--bw-s2); min-width: 0; }
	.bw-etapes__etape + .bw-etapes__etape::before { content: ""; width: 1.25rem; height: 1px; background: var(--bw-line-strong); flex: none; }
	.bw-etapes__num { display: inline-grid; place-items: center; width: 1.75rem; height: 1.75rem; flex: none; border-radius: var(--bw-radius-pill); border: 1px solid var(--bw-line-strong); background: var(--bw-white); color: var(--bw-ink); font-weight: 700; font-variant-numeric: tabular-nums; }
	.bw-etapes__num .bw-icone { width: 1rem; height: 1rem; }
	.bw-etapes__etape.est-faite .bw-etapes__num { background: var(--bw-green-pale); border-color: var(--bw-green-700); color: var(--bw-green-700); }
	.bw-etapes__etape.est-actuelle { color: var(--bw-ink); font-weight: 700; }
	.bw-etapes__etape.est-actuelle .bw-etapes__num { background: var(--bw-ink); border-color: var(--bw-ink); color: var(--bw-cream); }
	.bw-etapes__lien { display: inline-flex; align-items: center; gap: var(--bw-s2); min-height: var(--bw-tap); color: var(--bw-text-soft); text-decoration: none; }
	.bw-etapes__lien:hover .bw-etapes__nom { text-decoration: underline; }
	/* sur petit écran : chaque étape garde son nom, sous son numéro (une seule numérotation, REV-33) */
	@media (max-width: 599px) {
		.bw-etapes { align-items: flex-start; gap: var(--bw-s1); }
		.bw-etapes__etape { flex: 1 1 0; flex-direction: column; align-items: center; gap: 0.2rem; text-align: center; line-height: 1.2; }
		.bw-etapes__etape + .bw-etapes__etape::before { display: none; }
		.bw-etapes__lien { flex-direction: column; gap: 0.2rem; min-height: 0; }
		.bw-etapes__nom { font-size: 0.75rem; }
	}

	/* ---------- Boutons et liens ---------- */
	.bw-commerce .bw-btn--large { width: 100%; min-height: 3.25rem; font-size: var(--bw-fs-base); font-weight: 700; }
	.bw-commerce .bw-btn .bw-icone { width: 1.125rem; height: 1.125rem; }
	.bw-commerce .button:not(.bw-btn) { display: inline-flex; align-items: center; justify-content: center; min-height: var(--bw-tap); padding: 0 var(--bw-s4); border: 1px solid var(--bw-line-strong); border-radius: var(--bw-radius-m); background: var(--bw-white); color: var(--bw-ink); font: 600 var(--bw-fs-sm)/1 var(--bw-font-text); text-decoration: none; cursor: pointer; }
	.bw-commerce .button:not(.bw-btn):hover { border-color: var(--bw-ink); color: var(--bw-ink); }
	.bw-commerce .button.alt:not(.bw-btn), .bw-commerce .woocommerce-form-login__submit:not(.bw-btn) { background: var(--bw-action-bg); border-color: transparent; color: var(--bw-white); }
	.bw-commerce .button.alt:not(.bw-btn):hover, .bw-commerce .woocommerce-form-login__submit:not(.bw-btn):hover { background: var(--bw-action-bg-hover); color: var(--bw-white); }
	.bw-commerce button:disabled, .bw-commerce .button.disabled { opacity: 0.6; cursor: not-allowed; }
	.bw-commerce .bw-btn--secondaire:focus-visible, .bw-commerce .bw-btn--action:focus-visible, .bw-commerce .button:focus-visible { outline: none; box-shadow: var(--bw-focus); }

	/* ---------- Avis (erreurs, informations, confirmations) ---------- */
	.bw-commerce .woocommerce-notices-wrapper:empty { display: none; }
	.bw-commerce .woocommerce-message, .bw-commerce .woocommerce-info, .bw-commerce .woocommerce-error, .bw-commerce .woocommerce-notice:not(.woocommerce-thankyou-order-received) {
		display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--bw-s2);
		margin: 0 0 var(--bw-s4); padding: var(--bw-s3) var(--bw-s4); list-style: none;
		border: 1px solid var(--bw-line); border-left: 4px solid var(--bw-green-600); border-radius: var(--bw-radius-m);
		background: var(--bw-white); color: var(--bw-ink); font-size: var(--bw-fs-sm);
	}
	.bw-commerce .woocommerce-info { border-left-color: var(--bw-ink-soft); }
	.bw-commerce .woocommerce-error, .bw-commerce .woocommerce-notice--error { display: grid; gap: var(--bw-s1); border-color: color-mix(in srgb, var(--bw-error) 35%, var(--bw-white)); border-left-color: var(--bw-error); background: color-mix(in srgb, var(--bw-error) 6%, var(--bw-white)); color: var(--bw-ink); }
	.bw-commerce .woocommerce-error li { margin: 0; }
	.bw-commerce .woocommerce-error a { color: var(--bw-error); font-weight: 600; }
	.bw-commerce .woocommerce-error[tabindex="-1"]:focus { outline: none; box-shadow: 0 0 0 3px var(--bw-error); }
	.bw-commerce .woocommerce-message .button, .bw-commerce .woocommerce-info .button { order: 2; min-height: 2.75rem; }
	.bw-commerce .woocommerce-NoticeGroup { margin-bottom: var(--bw-s2); }
	.bw-commerce .woocommerce-NoticeGroup .woocommerce-error { margin-bottom: 0; }
	.bw-commerce .checkout-inline-error-message, .bw-commerce .coupon-error-notice { margin: var(--bw-s1) 0 0; color: var(--bw-error); font-size: var(--bw-fs-xs); font-weight: 600; }

	/* ---------- Champs de formulaire ---------- */
	.bw-champs { display: grid; gap: var(--bw-s3); }
	.bw-commerce .form-row { display: grid; gap: var(--bw-s1); margin: 0; min-width: 0; }
	.bw-commerce .form-row > label, .bw-commerce .woocommerce-form-row > label, .bw-commerce .bw-code-promo__champ > label { font-size: var(--bw-fs-sm); font-weight: 600; color: var(--bw-ink); }
	.bw-commerce .required { color: var(--bw-error); text-decoration: none; border: 0; }
	.bw-commerce .optional { font-weight: 400; color: var(--bw-text-soft); }
	.bw-commerce .woocommerce-input-wrapper { display: block; }
	.bw-commerce input.input-text, .bw-commerce input[type="text"], .bw-commerce input[type="email"], .bw-commerce input[type="tel"], .bw-commerce input[type="password"], .bw-commerce input[type="number"], .bw-commerce input[type="date"], .bw-commerce select, .bw-commerce textarea {
		width: 100%; min-height: var(--bw-tap); padding: 0 var(--bw-s3); margin: 0;
		border: 1px solid var(--bw-line-strong); border-radius: var(--bw-radius-s); background: var(--bw-white); color: var(--bw-ink);
		font-size: 1rem; line-height: 1.3; transition: border-color var(--bw-duree), box-shadow var(--bw-duree);
	}
	.bw-commerce textarea { min-height: 6rem; padding-block: var(--bw-s2); resize: vertical; }
	.bw-commerce select { padding-right: 2.25rem; appearance: none; background-image: linear-gradient(45deg, transparent 50%, var(--bw-ink) 50%), linear-gradient(135deg, var(--bw-ink) 50%, transparent 50%); background-position: calc(100% - 1.15rem) 50%, calc(100% - 0.8rem) 50%; background-size: 0.35rem 0.35rem; background-repeat: no-repeat; }
	.bw-commerce input.input-text:hover, .bw-commerce select:hover, .bw-commerce textarea:hover { border-color: var(--bw-ink); }
	.bw-commerce input:focus-visible, .bw-commerce select:focus-visible, .bw-commerce textarea:focus-visible { outline: none; border-color: var(--bw-ink); box-shadow: 0 0 0 3px color-mix(in srgb, var(--bw-green-600) 35%, transparent); border-radius: var(--bw-radius-s); }
	.bw-commerce ::placeholder { color: var(--bw-text-soft); opacity: 1; }
	.bw-commerce .woocommerce-invalid input.input-text, .bw-commerce .woocommerce-invalid select, .bw-commerce .woocommerce-invalid textarea, .bw-commerce input.has-error { border-color: var(--bw-error); box-shadow: inset 0 0 0 1px var(--bw-error); }
	.bw-commerce .woocommerce-invalid > label { color: var(--bw-error); }
	/* un seul pays de livraison : WooCommerce l'écrit en texte */
	.bw-commerce .woocommerce-input-wrapper > strong { display: flex; align-items: center; min-height: var(--bw-tap); font-weight: 600; }
	.bw-commerce input[type="checkbox"], .bw-commerce input[type="radio"] { width: 1.25rem; height: 1.25rem; margin: 0; flex: none; accent-color: var(--bw-green-600); }
	.bw-commerce .woocommerce-form__label-for-checkbox, .bw-commerce label.checkbox { display: inline-flex; align-items: center; gap: var(--bw-s2); min-height: var(--bw-tap); font-weight: 600; font-size: var(--bw-fs-sm); cursor: pointer; }
	.bw-commerce .description, .bw-commerce .form-row .description { font-size: var(--bw-fs-xs); color: var(--bw-text-soft); }

	/* Mot de passe : bouton « afficher » de WooCommerce (icône œil en masque, Lucide) et force du mot de passe */
	.bw-commerce .password-input { position: relative; display: block; }
	.bw-commerce .password-input input { padding-right: var(--bw-tap); }
	.bw-commerce .show-password-input { position: absolute; top: 0; right: 0; width: var(--bw-tap); height: var(--bw-tap); padding: 0; border: 0; background: transparent; color: var(--bw-ink); cursor: pointer; border-radius: var(--bw-radius-s); }
	.bw-commerce .show-password-input::before { content: ""; display: block; width: 1.25rem; height: 1.25rem; margin: auto; background: currentColor;
		-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2.06 12.35a1 1 0 0 1 0-.7 10.75 10.75 0 0 1 19.88 0 1 1 0 0 1 0 .7 10.75 10.75 0 0 1-19.88 0'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/svg%3E") center / contain no-repeat;
		mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2.06 12.35a1 1 0 0 1 0-.7 10.75 10.75 0 0 1 19.88 0 1 1 0 0 1 0 .7 10.75 10.75 0 0 1-19.88 0'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/svg%3E") center / contain no-repeat; }
	.bw-commerce .show-password-input.display-password::before {
		-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M10.73 5.08A10.43 10.43 0 0 1 12 5c7 0 10 7 10 7a13.16 13.16 0 0 1-1.67 2.68'/%3E%3Cpath d='M6.61 6.61A13.53 13.53 0 0 0 2 12s3 7 10 7a9.74 9.74 0 0 0 5.39-1.61'/%3E%3Cpath d='m2 2 20 20'/%3E%3Cpath d='M14.12 14.12a3 3 0 1 1-4.24-4.24'/%3E%3C/svg%3E");
		mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M10.73 5.08A10.43 10.43 0 0 1 12 5c7 0 10 7 10 7a13.16 13.16 0 0 1-1.67 2.68'/%3E%3Cpath d='M6.61 6.61A13.53 13.53 0 0 0 2 12s3 7 10 7a9.74 9.74 0 0 0 5.39-1.61'/%3E%3Cpath d='m2 2 20 20'/%3E%3Cpath d='M14.12 14.12a3 3 0 1 1-4.24-4.24'/%3E%3C/svg%3E"); }
	.bw-commerce .show-password-input:focus-visible { outline: none; box-shadow: var(--bw-focus); }
	.bw-commerce .woocommerce-password-strength { margin-top: var(--bw-s1); padding: var(--bw-s1) var(--bw-s3); border-radius: var(--bw-radius-s); font-size: var(--bw-fs-xs); font-weight: 600; background: var(--bw-orange-pale); color: var(--bw-orange-700); }
	.bw-commerce .woocommerce-password-strength.short { background: color-mix(in srgb, var(--bw-error) 8%, var(--bw-white)); color: var(--bw-error); }
	.bw-commerce .woocommerce-password-strength.good, .bw-commerce .woocommerce-password-strength.strong { background: var(--bw-green-pale); color: var(--bw-green-700); }
	.bw-commerce .woocommerce-password-hint { display: block; margin-top: var(--bw-s1); font-size: var(--bw-fs-xs); color: var(--bw-text-soft); }

	/* ---------- Puce producteur dans les blocs ---------- */
	.bw-commerce .bw-producteur-puce { font-size: var(--bw-fs-sm); font-family: var(--bw-font-text); }
	.bw-commerce .bw-producteur-puce .bw-mono { width: 1.75rem; height: 1.75rem; font-size: 0.6875rem; }

	/* ---------- Panier : bloc d'un producteur ---------- */
	.bw-groupe { position: relative; overflow: hidden; border: 1px solid var(--bw-line); border-radius: var(--bw-radius-l); background: var(--bw-white); }
	.bw-groupe::before { content: ""; position: absolute; inset: 0 auto 0 0; width: 5px; background: var(--bw-repere, var(--bw-line-strong)); }
	.bw-groupe__entete { display: flex; align-items: center; justify-content: space-between; gap: var(--bw-s3); padding: var(--bw-s3) var(--bw-s4) var(--bw-s3) calc(var(--bw-s4) + 5px); background: var(--bw-pastille, var(--bw-cream)); border-bottom: 1px solid var(--bw-line); }
	.bw-groupe__titre { margin: 0; min-width: 0; font-size: inherit; }
	.bw-groupe__nb { flex: none; font-size: var(--bw-fs-xs); font-weight: 600; color: var(--bw-ink); }
	.bw-groupe__articles { margin: 0; padding: 0; list-style: none; }
	.bw-groupe__pied { display: grid; gap: var(--bw-s3); padding: var(--bw-s3) var(--bw-s4) var(--bw-s4) calc(var(--bw-s4) + 5px); border-top: 1px solid var(--bw-line); }
	.bw-groupe__sous-total { display: flex; align-items: baseline; justify-content: space-between; gap: var(--bw-s3); margin: 0; font-size: var(--bw-fs-sm); }
	.bw-groupe__sous-total strong { font-size: var(--bw-fs-base); font-variant-numeric: tabular-nums; }
	.bw-groupe__regime, .bw-totaux__regime { font-size: var(--bw-fs-xs); font-weight: 600; color: var(--bw-text-soft); }

	/* Article */
	.bw-article { position: relative; display: grid; grid-template-columns: 4rem minmax(0, 1fr); gap: var(--bw-s3); padding: var(--bw-s4) var(--bw-s4) var(--bw-s4) calc(var(--bw-s4) + 5px); }
	.bw-article + .bw-article { border-top: 1px solid var(--bw-line); }
	.bw-article__vignette a, .bw-article__vignette > img { display: block; }
	.bw-article__vignette img { width: 4rem; height: 5rem; object-fit: cover; border-radius: var(--bw-radius-s); background: var(--bw-cream); }
	.bw-article__corps { display: grid; gap: var(--bw-s2); min-width: 0; }
	.bw-article__nom, .bw-article__prix { padding-right: 2.5rem; }
	.bw-article__nom { display: grid; gap: var(--bw-s1); min-width: 0; font-size: var(--bw-fs-sm); }
	.bw-article__titre { font-weight: 700; font-size: var(--bw-fs-base); line-height: 1.3; }
	.bw-article__titre a { color: var(--bw-ink); text-decoration: none; }
	.bw-article__titre a:hover { text-decoration: underline; }
	.bw-article__prix { display: flex; flex-wrap: wrap; gap: 0 var(--bw-s2); align-items: baseline; font-size: var(--bw-fs-sm); font-variant-numeric: tabular-nums; }
	.bw-article__libelle { font-size: var(--bw-fs-xs); color: var(--bw-text-soft); }
	.bw-article__bas { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--bw-s2) var(--bw-s3); }
	.bw-article__total { font-weight: 700; font-variant-numeric: tabular-nums; text-align: right; }
	.bw-article__retirer { position: absolute; top: var(--bw-s2); right: var(--bw-s2); }
	.bw-article__retirer a { color: var(--bw-text-soft); }
	.bw-article__retirer a:hover { color: var(--bw-error); background: color-mix(in srgb, var(--bw-error) 8%, var(--bw-white)); }
	/* « (TTC) » ajouté par WooCommerce à chaque montant : le régime est déjà écrit dans les sous-totaux et le choix HT / TTC */
	.bw-commerce .tax_label { display: none; }
	.bw-commerce small.includes_tax { font-size: 0.75rem; font-weight: 400; color: var(--bw-text-soft); }
	.bw-commerce .backorder_notification { margin: 0; font-size: var(--bw-fs-xs); color: var(--bw-orange-700); font-weight: 600; }

	/* Données de l'article (variation, tarif dégressif, date de brassage) : <dl class="variation"> de WooCommerce */
	.bw-commerce dl.variation { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 0.1rem var(--bw-s2); margin: 0; font-size: var(--bw-fs-xs); color: var(--bw-text-soft); }
	.bw-commerce dl.variation dt { font-weight: 600; }
	.bw-commerce dl.variation dd { margin: 0; color: var(--bw-ink); }
	.bw-commerce dl.variation dd p { margin: 0; }
	.bw-commerce dl.variation .variation-Tarifdgressif, .bw-commerce dl.variation [class*="Tarif"] { color: var(--bw-green-700); }

	/* Quantité (boutons − et + de base.js) : rien de plus ici que l'alignement */
	.bw-article__quantite .quantity { display: inline-flex; }

	/* Choix de livraison d'un producteur (panier et commande) */
	.bw-livraison { display: grid; gap: var(--bw-s2); }
	.bw-livraison__titre { display: flex; align-items: center; gap: var(--bw-s2); margin: 0; font-size: var(--bw-fs-sm); font-weight: 700; }
	.bw-livraison__titre .bw-icone { width: 1.125rem; height: 1.125rem; color: var(--bw-text-soft); }
	.bw-livraison__choix { display: grid; gap: var(--bw-s2); margin: 0; padding: 0; list-style: none; }
	.bw-livraison__option { position: relative; display: flex; flex-wrap: wrap; align-items: center; gap: 0 var(--bw-s3); min-height: var(--bw-tap); padding: var(--bw-s2) var(--bw-s3); border: 1px solid var(--bw-line-strong); border-radius: var(--bw-radius-m); background: var(--bw-white); }
	.bw-livraison__option:has(input:checked) { border-color: var(--bw-green-700); background: var(--bw-green-pale); box-shadow: inset 0 0 0 1px var(--bw-green-700); }
	.bw-livraison__option.est-seul { border-style: dashed; border-color: var(--bw-line-strong); background: transparent; box-shadow: none; }
	.bw-livraison__option label { flex: 1; display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 0 var(--bw-s3); min-width: 0; font-size: var(--bw-fs-sm); cursor: pointer; }
	.bw-livraison__option label::after { content: ""; position: absolute; inset: 0; } /* toute la carte est cliquable */
	.bw-livraison__option.est-seul label { cursor: default; }
	.bw-livraison__nom { font-weight: 600; }
	.bw-livraison__prix { font-weight: 700; font-variant-numeric: tabular-nums; white-space: nowrap; }
	.bw-livraison__offerte { color: var(--bw-green-700); }
	.bw-livraison__option small, .bw-livraison__option .bw-port-saison { flex-basis: 100%; font-size: var(--bw-fs-xs); color: var(--bw-text-soft); }
	.bw-livraison__option br { display: none; }
	.bw-livraison__aucun { font-size: var(--bw-fs-sm); color: var(--bw-text-soft); }
	.bw-livraison__aucun p { margin: 0; }

	/* Code promo replié et mise à jour */
	.bw-panier__actions { display: grid; gap: var(--bw-s3); }
	.bw-code-promo { border: 1px solid var(--bw-line); border-radius: var(--bw-radius-l); background: var(--bw-white); }
	.bw-code-promo__question { display: flex; align-items: center; justify-content: space-between; gap: var(--bw-s2); min-height: var(--bw-tap); padding: 0 var(--bw-s4); font-size: var(--bw-fs-sm); font-weight: 600; cursor: pointer; list-style: none; border-radius: var(--bw-radius-l); }
	.bw-code-promo__question::-webkit-details-marker { display: none; }
	.bw-code-promo__chevron { transition: transform var(--bw-duree); color: var(--bw-text-soft); }
	.bw-code-promo[open] .bw-code-promo__chevron { transform: rotate(180deg); }
	.bw-code-promo__champ { display: grid; gap: var(--bw-s1); padding: 0 var(--bw-s4) var(--bw-s4); }
	.bw-code-promo__ligne { display: flex; gap: var(--bw-s2); }
	.bw-code-promo__ligne input { flex: 1; min-width: 0; text-transform: uppercase; }
	.bw-code-promo .coupon-error-notice { padding: 0 var(--bw-s4) var(--bw-s3); }
	.bw-panier__maj { justify-self: start; }
	.bw-js .bw-panier__maj { position: absolute; width: 1px; height: 1px; min-height: 0; padding: 0; overflow: hidden; clip: rect(0 0 0 0); border: 0; } /* mise à jour automatique (commerce.js) */
	.bw-panier__extra { width: 100%; border-collapse: collapse; }

	/* ---------- Récapitulatif du panier ---------- */
	.bw-recap-panier { display: grid; gap: var(--bw-s3); padding: var(--bw-s4); border: 1px solid var(--bw-line); border-radius: var(--bw-radius-l); background: var(--bw-white); }
	.bw-recap-panier__titre { font-size: var(--bw-fs-h3); }
	.bw-recap-panier .bw-palier-suivant { margin: 0; }
	.bw-recap-panier__note { display: flex; align-items: center; gap: var(--bw-s2); margin: 0; font-size: var(--bw-fs-xs); color: var(--bw-text-soft); }
	.bw-recap-panier__note .bw-icone { width: 1rem; height: 1rem; }
	.wc-proceed-to-checkout .checkout-button { width: 100%; min-height: 3.25rem; font-size: var(--bw-fs-base); font-weight: 700; }

	/* Tableau des totaux (panier, commande) */
	.bw-totaux, .bw-recap { width: 100%; border-collapse: collapse; font-size: var(--bw-fs-sm); font-variant-numeric: tabular-nums; }
	.bw-totaux th, .bw-totaux td, .bw-recap tfoot th, .bw-recap tfoot td { padding: var(--bw-s2) 0; border-bottom: 1px solid var(--bw-line); vertical-align: top; }
	.bw-totaux th, .bw-recap tfoot th { text-align: left; font-weight: 400; color: var(--bw-ink); padding-right: var(--bw-s3); }
	.bw-totaux td, .bw-recap tfoot td { text-align: right; }
	.bw-totaux .order-total th, .bw-totaux .order-total td, .bw-recap .order-total th, .bw-recap .order-total td { border-bottom: 0; padding-top: var(--bw-s3); font-size: var(--bw-fs-md); font-weight: 700; }
	.bw-totaux .order-total small, .bw-recap .order-total small { display: block; font-size: 0.75rem; font-weight: 400; color: var(--bw-text-soft); }
	.bw-port td { white-space: nowrap; }
	.bw-port__mode { display: block; font-size: 0.75rem; color: var(--bw-text-soft); white-space: normal; }
	.bw-totaux__destination td { text-align: left; font-size: var(--bw-fs-xs); color: var(--bw-text-soft); }
	.bw-totaux__destination p { margin: 0 0 var(--bw-s1); }
	.bw-totaux__destination strong { color: var(--bw-ink); }
	.bw-commerce .cart-discount td { color: var(--bw-green-700); }
	.bw-commerce .woocommerce-remove-coupon { margin-left: var(--bw-s1); font-size: var(--bw-fs-xs); }

	/* Calculateur de livraison (« Indiquer mon code postal ») */
	.bw-commerce .shipping-calculator-button { display: inline-flex; align-items: center; min-height: 2.75rem; font-weight: 600; color: var(--bw-link); }
	.bw-commerce .shipping-calculator-form { display: grid; gap: var(--bw-s3); margin-top: var(--bw-s2); padding: var(--bw-s3); border-radius: var(--bw-radius-m); background: var(--bw-cream); color: var(--bw-ink); }
	.bw-commerce .shipping-calculator-form p { margin: 0; }

	/* Barre collante du panier (mobile) */
	.bw-barre-panier { position: fixed; z-index: 60; inset: auto 0 0 0; display: flex; align-items: center; justify-content: space-between; gap: var(--bw-s3); padding: var(--bw-s2) var(--bw-gouttiere) max(var(--bw-s2), env(safe-area-inset-bottom)); background: var(--bw-white); border-top: 1px solid var(--bw-line); box-shadow: 0 -4px 16px rgb(30 30 28 / 0.08); transition: transform var(--bw-duree); }
	.bw-barre-panier.est-masquee { transform: translateY(110%); visibility: hidden; }
	.bw-barre-panier__total { display: grid; margin: 0; line-height: 1.2; font-variant-numeric: tabular-nums; }
	.bw-barre-panier__libelle { font-size: 0.75rem; color: var(--bw-text-soft); }
	.bw-barre-panier__total strong { font-size: var(--bw-fs-md); }
	.bw-barre-panier__bouton { flex: none; }
	body:has(.bw-barre-panier) .bw-pied { padding-bottom: calc(var(--bw-s4) + 4.5rem); }

	/* Panier vide */
	.bw-panier-vide { display: grid; justify-items: center; gap: var(--bw-s3); max-width: 32rem; margin: var(--bw-s5) auto; padding: var(--bw-s6) var(--bw-s4); text-align: center; border: 1px solid var(--bw-line); border-radius: var(--bw-radius-l); background: var(--bw-white); }
	.bw-panier-vide__icone, .bw-vide__icone { display: grid; place-items: center; width: 4rem; height: 4rem; border-radius: var(--bw-radius-pill); background: var(--bw-green-pale); color: var(--bw-green-700); }
	.bw-panier-vide__icone .bw-icone, .bw-vide__icone .bw-icone { width: 1.75rem; height: 1.75rem; }
	.bw-panier-vide .wc-empty-cart-message .cart-empty { display: block; margin: 0; padding: 0; border: 0; background: none; font-family: var(--bw-font-display); font-size: var(--bw-fs-h3); font-weight: 700; color: var(--bw-ink); }
	.bw-panier-vide__texte { color: var(--bw-text-soft); font-size: var(--bw-fs-sm); }
	.bw-panier-vide .return-to-shop { margin: var(--bw-s2) 0 0; }

	/* Ventes croisées */
	.bw-panier__suggestions { margin-top: var(--bw-s7); }

	/* ---------- Page de commande ---------- */
	.bw-commande__invite { margin: 0 0 var(--bw-s2); }
	.bw-commande__invite-texte { display: flex; align-items: center; gap: var(--bw-s2); min-height: var(--bw-tap); margin: 0; padding: var(--bw-s2) var(--bw-s4); border: 1px dashed var(--bw-line-strong); border-radius: var(--bw-radius-m); background: var(--bw-white); font-size: var(--bw-fs-sm); }
	.bw-commande__invite-texte .bw-icone { color: var(--bw-text-soft); }
	.bw-commande__invite-texte a { font-weight: 700; }
	.bw-commerce form.woocommerce-form-login:not(.bw-formulaire), .bw-commerce form.checkout_coupon { display: grid; gap: var(--bw-s3); margin: 0 0 var(--bw-s4); padding: var(--bw-s4); border: 1px solid var(--bw-line); border-radius: var(--bw-radius-l); background: var(--bw-white); }
	.bw-commerce form.woocommerce-form-login:not(.bw-formulaire) > p:first-child { margin: 0; font-size: var(--bw-fs-sm); color: var(--bw-text-soft); }
	.bw-commerce form.checkout_coupon { grid-template-columns: minmax(0, 1fr) auto; align-items: end; }
	.bw-commerce form.checkout_coupon .clear { display: none; }
	.bw-commerce .lost_password { margin: 0; font-size: var(--bw-fs-sm); }

	/* Étapes du formulaire */
	.bw-etape { display: grid; gap: var(--bw-s4); padding: var(--bw-s4); border: 1px solid var(--bw-line); border-radius: var(--bw-radius-l); background: var(--bw-white); min-width: 0; }
	.bw-etape__titre { display: flex; align-items: center; gap: var(--bw-s3); margin: 0; font-size: var(--bw-fs-h3); }
	.bw-etape__num { display: inline-grid; place-items: center; width: 2rem; height: 2rem; flex: none; border-radius: var(--bw-radius-pill); background: var(--bw-ink); color: var(--bw-cream); font: 700 var(--bw-fs-sm)/1 var(--bw-font-text); }
	.bw-etape__aide { margin: 0; font-size: var(--bw-fs-sm); color: var(--bw-text-soft); }
	.bw-etape--suite { padding-block: var(--bw-s2); }
	.bw-etape__case { margin: 0; font: inherit; }
	.bw-etape__case label { font-size: var(--bw-fs-base); }
	.bw-etape--suite .shipping_address { padding-bottom: var(--bw-s2); }
	.bw-commande__client .woocommerce-billing-fields, .bw-commande__client .woocommerce-shipping-fields, .bw-commande__client .woocommerce-additional-fields { display: grid; gap: var(--bw-s4); }
	.bw-commande__client .woocommerce-shipping-fields:empty, .bw-commande__client .woocommerce-additional-fields:empty { display: none; }
	.bw-commande wc-order-attribution-inputs { display: contents; } /* champs cachés de WooCommerce : pas d'espace dans la grille */

	/* Compte créé avec la commande */
	.bw-compte-neuf { display: grid; gap: var(--bw-s2); padding: var(--bw-s3) var(--bw-s4); border-radius: var(--bw-radius-m); background: var(--bw-green-pale); }
	.bw-compte-neuf__titre { display: flex; align-items: center; gap: var(--bw-s2); margin: 0; }
	.bw-compte-neuf__titre .bw-icone { color: var(--bw-green-700); }
	.bw-compte-neuf__texte { margin: 0; font-size: var(--bw-fs-sm); }
	.bw-compte-neuf__texte a { color: var(--bw-green-700); font-weight: 700; }
	.bw-compte-neuf .create-account { display: grid; gap: var(--bw-s3); }
	.bw-compte-neuf .create-account .clear { display: none; }

	/* Note de commande repliée */
	.bw-note-commande { padding-block: 0; }
	.bw-note-commande__titre { display: flex; align-items: center; justify-content: space-between; gap: var(--bw-s2); min-height: var(--bw-tap); font-weight: 600; font-size: var(--bw-fs-sm); cursor: pointer; list-style: none; }
	.bw-note-commande__titre::-webkit-details-marker { display: none; }
	.bw-note-commande__chevron { color: var(--bw-text-soft); transition: transform var(--bw-duree); }
	.bw-note-commande[open] .bw-note-commande__chevron { transform: rotate(180deg); }
	.bw-note-commande[open] .bw-champs { padding-bottom: var(--bw-s4); }

	/* Livraison par producteur */
	.bw-livraisons { display: grid; gap: var(--bw-s3); }
	.bw-livraisons__producteur { position: relative; display: grid; gap: var(--bw-s2); padding: var(--bw-s3) var(--bw-s3) var(--bw-s3) calc(var(--bw-s3) + 5px); border: 1px solid var(--bw-line); border-radius: var(--bw-radius-m); overflow: hidden; }
	.bw-livraisons__producteur::before { content: ""; position: absolute; inset: 0 auto 0 0; width: 5px; background: var(--bw-repere, var(--bw-line-strong)); }
	.bw-livraisons__articles { margin: 0; font-size: var(--bw-fs-xs); color: var(--bw-text-soft); }
	.bw-livraisons .bw-livraison__titre { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; } /* le titre de l'étape suffit à l'œil */

	/* Paiement */
	.bw-commerce .wc_payment_methods { display: grid; gap: var(--bw-s2); margin: 0; padding: 0; list-style: none; }
	.bw-commerce .wc_payment_method { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: var(--bw-s2) var(--bw-s3); padding: var(--bw-s3) var(--bw-s4); border: 1px solid var(--bw-line-strong); border-radius: var(--bw-radius-m); background: var(--bw-white); }
	.bw-commerce .wc_payment_method:has(> input:checked) { border-color: var(--bw-green-700); box-shadow: inset 0 0 0 1px var(--bw-green-700); }
	.bw-commerce .wc_payment_method > input[style*="none"] + label { grid-column: 1 / -1; }
	.bw-commerce .wc_payment_method > label { display: flex; flex-wrap: wrap; align-items: center; gap: var(--bw-s2); min-height: 2rem; font-weight: 700; cursor: pointer; }
	.bw-commerce .wc_payment_method > label img { max-height: 1.5rem; width: auto; display: inline-block; }
	.bw-commerce .payment_box { grid-column: 1 / -1; padding: var(--bw-s3); border-radius: var(--bw-radius-s); background: var(--bw-cream); font-size: var(--bw-fs-sm); color: var(--bw-ink); }
	.bw-commerce .payment_box p { margin: 0 0 var(--bw-s2); }
	.bw-commerce .payment_box p:last-child { margin-bottom: 0; }
	.bw-commerce .woocommerce-checkout-payment { display: grid; gap: var(--bw-s4); }
	.bw-commerce .place-order { display: grid; gap: var(--bw-s3); }
	.bw-commerce .woocommerce-terms-and-conditions-wrapper { display: grid; gap: var(--bw-s2); font-size: var(--bw-fs-xs); color: var(--bw-text-soft); }
	.bw-commerce .woocommerce-privacy-policy-text p { margin: 0; }
	.bw-commerce .woocommerce-terms-and-conditions-wrapper a { color: var(--bw-link); }
	.bw-commerce .woocommerce-terms-and-conditions { padding: var(--bw-s3); border: 1px solid var(--bw-line); border-radius: var(--bw-radius-s); background: var(--bw-white); color: var(--bw-ink); }
	.bw-liens-legaux { margin: 0; font-weight: 600; }
	.bw-a-payer { display: flex; align-items: baseline; justify-content: space-between; gap: var(--bw-s3); margin: 0; padding-top: var(--bw-s3); border-top: 1px solid var(--bw-line); font-size: var(--bw-fs-md); font-variant-numeric: tabular-nums; }
	.bw-a-payer strong { font-size: var(--bw-fs-h3); }
	.bw-commerce #place_order { width: 100%; min-height: 3.5rem; white-space: normal; line-height: 1.2; padding-block: var(--bw-s2); }

	/* Récapitulatif de la commande (colonne de droite ; replié en haut sur mobile) */
	.bw-commande__recap { border: 1px solid var(--bw-line); border-radius: var(--bw-radius-l); background: var(--bw-white); overflow: hidden; }
	.bw-commande__recap-corps { display: grid; gap: var(--bw-s3); padding: var(--bw-s4); }
	.bw-commande__recap-titre { font-size: var(--bw-fs-h3); }
	.bw-recap-bascule { display: flex; align-items: center; gap: var(--bw-s3); width: 100%; min-height: 3.5rem; padding: var(--bw-s2) var(--bw-s4); border: 0; background: var(--bw-cream); color: var(--bw-ink); font: 600 var(--bw-fs-sm)/1.2 var(--bw-font-text); text-align: left; cursor: pointer; }
	.bw-recap-bascule__libelle { display: flex; align-items: center; gap: var(--bw-s2); flex: 1; color: var(--bw-link); text-decoration: underline; text-underline-offset: 0.18em; }
	.bw-recap-bascule__total { font-size: var(--bw-fs-md); font-variant-numeric: tabular-nums; }
	.bw-recap-bascule__chevron { transition: transform var(--bw-duree); }
	.bw-recap-bascule[aria-expanded="true"] .bw-recap-bascule__chevron { transform: rotate(180deg); }
	.bw-recap-bascule:focus-visible { outline: none; box-shadow: inset 0 0 0 3px var(--bw-ink); }
	.bw-commande__recap.est-replie .bw-commande__recap-corps { display: none; }
	.bw-recap-bascule:not([hidden]) + .bw-commande__recap-corps { border-top: 1px solid var(--bw-line); }

	.bw-recap .bw-recap__groupe { position: relative; }
	.bw-recap .bw-recap__producteur th { padding: var(--bw-s3) 0 var(--bw-s1); text-align: left; font-weight: 400; }
	.bw-recap .bw-recap__groupe td { padding: var(--bw-s2) 0; vertical-align: top; }
	.bw-recap .bw-recap__groupe td.product-name { display: flex; gap: var(--bw-s3); padding-left: var(--bw-s3); border-left: 3px solid var(--bw-repere, var(--bw-line-strong)); }
	.bw-recap .product-total { text-align: right; font-weight: 600; padding-left: var(--bw-s3); white-space: nowrap; }
	.bw-recap__vignette img { width: 2.5rem; height: 3.125rem; object-fit: cover; border-radius: var(--bw-radius-s); background: var(--bw-cream); }
	.bw-recap__article { display: grid; gap: 0.15rem; min-width: 0; }
	.bw-recap__nom { font-weight: 600; line-height: 1.3; }
	.bw-recap .product-quantity { font-weight: 600; color: var(--bw-text-soft); }
	.bw-recap tfoot tr:first-child th, .bw-recap tfoot tr:first-child td { border-top: 1px solid var(--bw-line); }

	/* ---------- Confirmation de commande ---------- */
	.bw-merci { display: grid; gap: var(--bw-s4); max-width: 48rem; }
	.bw-merci__message { display: flex; align-items: center; gap: var(--bw-s3); padding: var(--bw-s4); border-radius: var(--bw-radius-l); background: var(--bw-green-pale); }
	.bw-merci__icone { display: grid; place-items: center; width: 2.75rem; height: 2.75rem; flex: none; border-radius: var(--bw-radius-pill); background: var(--bw-green-600); color: var(--bw-white); }
	.bw-merci__message .woocommerce-thankyou-order-received { margin: 0; font-weight: 700; font-size: var(--bw-fs-md); color: var(--bw-ink); }
	.bw-merci__resume { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--bw-s2); margin: 0; padding: 0; list-style: none; }
	.bw-merci__resume li { display: grid; gap: 0.1rem; padding: var(--bw-s3); border: 1px solid var(--bw-line); border-radius: var(--bw-radius-m); background: var(--bw-white); font-size: var(--bw-fs-xs); color: var(--bw-text-soft); min-width: 0; overflow-wrap: anywhere; }
	.bw-merci__resume strong { font-size: var(--bw-fs-sm); color: var(--bw-ink); font-variant-numeric: tabular-nums; }
	.bw-merci__suite { display: grid; gap: var(--bw-s4); }
	.bw-merci__actions { display: flex; flex-wrap: wrap; gap: var(--bw-s2); margin: 0; }
	.bw-commerce .wc-bacs-bank-details-heading, .bw-commerce .woocommerce-order-details__title, .bw-commerce .woocommerce-column__title, .bw-commerce .woocommerce-order-downloads__title { font-size: var(--bw-fs-h3); margin: 0 0 var(--bw-s2); }
	.bw-commerce .wc-bacs-bank-details { display: grid; gap: var(--bw-s2); margin: 0; padding: 0; list-style: none; }
	.bw-commerce .wc-bacs-bank-details li { display: grid; gap: var(--bw-s1); padding: var(--bw-s3) var(--bw-s4); border: 1px solid var(--bw-line); border-radius: var(--bw-radius-m); background: var(--bw-white); font-size: var(--bw-fs-sm); }
	.bw-commerce .wc-bacs-bank-details ul { display: grid; gap: 0.15rem; margin: 0; padding: 0; list-style: none; font-size: var(--bw-fs-xs); color: var(--bw-text-soft); }
	.bw-commerce .wc-bacs-bank-details strong { color: var(--bw-ink); font-size: var(--bw-fs-sm); font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }

	/* Détail d'une commande (confirmation et Mon compte) : tableau de WooCommerce */
	.bw-commerce .woocommerce-order-details, .bw-commerce .woocommerce-customer-details, .bw-commerce .woocommerce-order-downloads { padding: var(--bw-s4); border: 1px solid var(--bw-line); border-radius: var(--bw-radius-l); background: var(--bw-white); }
	.bw-commerce .woocommerce-table--order-details { width: 100%; border-collapse: collapse; font-size: var(--bw-fs-sm); font-variant-numeric: tabular-nums; }
	.bw-commerce .woocommerce-table--order-details th, .bw-commerce .woocommerce-table--order-details td { padding: var(--bw-s2) 0; border-bottom: 1px solid var(--bw-line); text-align: left; vertical-align: top; }
	.bw-commerce .woocommerce-table--order-details thead th { font-size: var(--bw-fs-xs); color: var(--bw-text-soft); font-weight: 600; }
	.bw-commerce .woocommerce-table--order-details .product-total, .bw-commerce .woocommerce-table--order-details tfoot td { text-align: right; padding-left: var(--bw-s3); }
	.bw-commerce .woocommerce-table--order-details tfoot th { font-weight: 400; }
	.bw-commerce .woocommerce-table--order-details tfoot tr:last-child th, .bw-commerce .woocommerce-table--order-details tfoot tr:last-child td { border-bottom: 0; }
	.bw-commerce .woocommerce-table--order-details .product-name a { color: var(--bw-ink); font-weight: 600; }
	.bw-commerce .woocommerce-table--order-details .product-quantity { color: var(--bw-text-soft); font-weight: 600; }
	.bw-commerce .wc-item-meta { margin: var(--bw-s1) 0 0; padding: 0; list-style: none; font-size: var(--bw-fs-xs); color: var(--bw-text-soft); }
	.bw-commerce .wc-item-meta p { display: inline; margin: 0; }
	.bw-commerce .order-actions-button { margin: 0 var(--bw-s2) var(--bw-s2) 0; }
	.bw-commerce .order-again { margin: var(--bw-s3) 0 0; }
	.bw-commerce .woocommerce-customer-details address { display: grid; gap: 0.1rem; padding: var(--bw-s3); border-radius: var(--bw-radius-m); background: var(--bw-cream); font-style: normal; font-size: var(--bw-fs-sm); line-height: 1.5; overflow-wrap: anywhere; }
	.bw-commerce .woocommerce-customer-details--phone, .bw-commerce .woocommerce-customer-details--email { margin: var(--bw-s1) 0 0; }
	.bw-commerce .woocommerce-columns--addresses { display: grid; gap: var(--bw-s4); }

	/* ---------- Mon compte ---------- */
	.bw-compte-retour { display: inline-flex; align-items: center; gap: var(--bw-s1); justify-self: start; min-height: var(--bw-tap); margin-left: calc(var(--bw-s2) * -1); padding-right: var(--bw-s2); color: var(--bw-ink); font-weight: 600; font-size: var(--bw-fs-sm); text-decoration: none; }
	.bw-compte-retour:hover { text-decoration: underline; color: var(--bw-ink); }
	.bw-compte-nav { display: none; }
	.bw-compte-nav__liste { display: grid; gap: 2px; margin: 0; padding: 0; list-style: none; }
	.bw-compte-nav a { display: flex; align-items: center; gap: var(--bw-s3); min-height: var(--bw-tap); padding: 0 var(--bw-s3); border-radius: var(--bw-radius-m); color: var(--bw-ink); text-decoration: none; font-weight: 600; font-size: var(--bw-fs-sm); }
	.bw-compte-nav a .bw-icone { color: var(--bw-text-soft); }
	.bw-compte-nav a:hover { background: rgb(30 30 28 / 0.05); color: var(--bw-ink); }
	.bw-compte-nav a[aria-current="page"] { background: var(--bw-green-pale); color: var(--bw-green-700); font-weight: 700; }
	.bw-compte-nav a[aria-current="page"] .bw-icone { color: var(--bw-green-700); }
	.bw-compte-nav .woocommerce-MyAccount-navigation-link--customer-logout { margin-top: var(--bw-s2); padding-top: var(--bw-s2); border-top: 1px solid var(--bw-line); }
	.bw-compte__intro { margin: 0; color: var(--bw-text-soft); font-size: var(--bw-fs-sm); }

	/* Accueil : salutation et tuiles (liste sur mobile) */
	.bw-compte-accueil { display: grid; gap: var(--bw-s4); }
	.bw-compte-accueil__bonjour { margin: 0; font-size: var(--bw-fs-md); }
	.bw-compte-accueil__pas-vous { display: block; margin-top: var(--bw-s1); font-size: var(--bw-fs-xs); color: var(--bw-text-soft); }
	.bw-tuiles { display: grid; gap: 0; margin: 0; padding: 0; list-style: none; border: 1px solid var(--bw-line); border-radius: var(--bw-radius-l); background: var(--bw-white); overflow: hidden; }
	.bw-tuile + .bw-tuile { border-top: 1px solid var(--bw-line); }
	.bw-tuile__lien { display: flex; align-items: center; gap: var(--bw-s3); min-height: 4rem; padding: var(--bw-s3) var(--bw-s4); color: var(--bw-ink); text-decoration: none; height: 100%; }
	.bw-tuile__lien:hover { background: var(--bw-cream); color: var(--bw-ink); }
	.bw-tuile__lien:focus-visible { box-shadow: inset 0 0 0 3px var(--bw-ink); border-radius: 0; }
	.bw-tuile__icone { display: grid; place-items: center; width: 2.5rem; height: 2.5rem; flex: none; border-radius: var(--bw-radius-pill); background: var(--bw-green-pale); color: var(--bw-green-700); }
	.bw-tuile__texte { display: grid; gap: 0.1rem; flex: 1; min-width: 0; }
	.bw-tuile__titre { font-weight: 700; }
	.bw-tuile__desc { font-size: var(--bw-fs-xs); color: var(--bw-text-soft); }
	.bw-tuile__chevron { color: var(--bw-text-soft); }
	.bw-tuile--mes-contrats .bw-tuile__icone, .bw-tuile--sumo-subscriptions .bw-tuile__icone { background: var(--bw-orange-pale); color: var(--bw-orange-700); }
	.bw-tuile--customer-logout .bw-tuile__icone { background: var(--bw-cream); color: var(--bw-ink-soft); box-shadow: inset 0 0 0 1px var(--bw-line); }

	/* Commandes en cartes */
	.bw-commandes { display: grid; gap: var(--bw-s3); margin: 0; padding: 0; list-style: none; }
	.bw-commande-carte { display: grid; gap: var(--bw-s2); padding: var(--bw-s4); border: 1px solid var(--bw-line); border-radius: var(--bw-radius-l); background: var(--bw-white); }
	.bw-commande-carte__haut { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--bw-s2); }
	.bw-commande-carte__titre { margin: 0; font-family: var(--bw-font-text); font-size: var(--bw-fs-base); letter-spacing: 0; }
	.bw-commande-carte__titre a { display: inline-flex; align-items: center; min-height: 2.75rem; color: var(--bw-ink); }
	.bw-commande-carte__infos { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0 var(--bw-s2); margin: 0; font-size: var(--bw-fs-sm); color: var(--bw-text-soft); font-variant-numeric: tabular-nums; }
	.bw-commande-carte__total { color: var(--bw-ink); }
	.bw-commande-carte__producteurs { display: flex; flex-wrap: wrap; gap: var(--bw-s2) var(--bw-s3); margin: 0; padding: 0; list-style: none; }
	.bw-commande-carte__producteurs .bw-producteur-puce { font-size: var(--bw-fs-xs); }
	.bw-commande-carte__producteurs .bw-mono { width: 1.5rem; height: 1.5rem; font-size: 0.625rem; }
	.bw-commande-carte__colonne { font-size: var(--bw-fs-sm); }
	.bw-commande-carte__docs { display: flex; align-items: center; gap: var(--bw-s2); margin: 0; font-size: var(--bw-fs-xs); font-weight: 600; color: var(--bw-green-700); } /* DS2-13 */
	.bw-commande-carte__docs .bw-icone { flex: none; width: 1rem; height: 1rem; }
	.bw-commande-carte__libelle { display: block; font-size: var(--bw-fs-xs); color: var(--bw-text-soft); }
	.bw-commande-carte__actions { display: flex; flex-wrap: wrap; gap: var(--bw-s2); margin-top: var(--bw-s1); }
	.bw-commande-carte__actions .bw-btn { flex: 1 1 auto; }
	.bw-pagination { display: flex; flex-wrap: wrap; justify-content: space-between; gap: var(--bw-s2); }

	/* Statuts de commande (texte toujours écrit, jamais la couleur seule) */
	.bw-statut { display: inline-flex; align-items: center; min-height: 1.75rem; padding: 0 var(--bw-s2); border-radius: var(--bw-radius-pill); font-size: 0.75rem; font-weight: 700; background: var(--bw-cream); color: var(--bw-ink); box-shadow: inset 0 0 0 1px var(--bw-line); white-space: nowrap; }
	.bw-statut--completed { background: var(--bw-green-pale); color: var(--bw-green-700); box-shadow: none; }
	.bw-statut--processing, .bw-statut--on-hold, .bw-statut--pending { background: var(--bw-orange-pale); color: var(--bw-orange-700); box-shadow: none; }
	.bw-statut--failed { background: color-mix(in srgb, var(--bw-error) 8%, var(--bw-white)); color: var(--bw-error); box-shadow: none; }

	/* Détail d'une commande */
	.bw-commande-detail { display: grid; gap: var(--bw-s4); }
	.bw-commande-detail__etat { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--bw-s2); margin: 0; }
	.bw-commande-detail__etat > div { display: grid; gap: 0.15rem; align-content: start; padding: var(--bw-s3); border: 1px solid var(--bw-line); border-radius: var(--bw-radius-m); background: var(--bw-white); }
	.bw-commande-detail__etat dt { font-size: var(--bw-fs-xs); color: var(--bw-text-soft); }
	.bw-commande-detail__etat dd { margin: 0; font-size: var(--bw-fs-sm); font-variant-numeric: tabular-nums; }
	.bw-commande-detail__phrase mark { background: none; color: var(--bw-ink); font-weight: 700; }
	.bw-suivi { display: grid; gap: 0; margin: 0; padding: 0; list-style: none; border-left: 2px solid var(--bw-line); }
	.bw-suivi__etape { position: relative; padding: 0 0 var(--bw-s3) var(--bw-s4); }
	.bw-suivi__etape::before { content: ""; position: absolute; left: -7px; top: 0.35rem; width: 12px; height: 12px; border-radius: var(--bw-radius-pill); background: var(--bw-green-600); box-shadow: 0 0 0 3px var(--bw-cream); }
	.bw-suivi .meta { margin: 0; font-size: var(--bw-fs-xs); color: var(--bw-text-soft); }
	.bw-suivi .description p { margin: 0; font-size: var(--bw-fs-sm); }

	/* Adresses */
	.bw-adresses { display: grid; gap: var(--bw-s3); }
	.bw-adresse { display: grid; gap: var(--bw-s3); align-content: start; padding: var(--bw-s4); border: 1px solid var(--bw-line); border-radius: var(--bw-radius-l); background: var(--bw-white); }
	.bw-adresse__titre h2 { display: flex; align-items: center; gap: var(--bw-s2); margin: 0; font-size: var(--bw-fs-md); }
	.bw-adresse__titre .bw-icone { color: var(--bw-text-soft); }
	.bw-adresse address { font-style: normal; font-size: var(--bw-fs-sm); line-height: 1.55; overflow-wrap: anywhere; }
	.bw-adresse .edit { justify-self: start; }

	/* Formulaires du compte (adresse, détails du compte, mot de passe) */
	.bw-carte-formulaire, .bw-commerce .woocommerce-EditAccountForm, .bw-commerce .lost_reset_password { display: grid; gap: var(--bw-s4); padding: var(--bw-s4); border: 1px solid var(--bw-line); border-radius: var(--bw-radius-l); background: var(--bw-white); }
	.bw-carte-formulaire__titre { font-size: var(--bw-fs-h3); }
	.bw-commerce .woocommerce-address-fields { display: grid; gap: var(--bw-s4); }
	.bw-formulaire__actions { display: flex; flex-wrap: wrap; gap: var(--bw-s2); margin: 0; }
	.bw-commerce .woocommerce-EditAccountForm > p, .bw-commerce .lost_reset_password > p { margin: 0; }
	.bw-commerce .woocommerce-EditAccountForm fieldset { display: grid; gap: var(--bw-s3); padding: var(--bw-s4); border: 1px solid var(--bw-line); border-radius: var(--bw-radius-m); }
	.bw-commerce .woocommerce-EditAccountForm legend { padding: 0 var(--bw-s2); font-weight: 700; }
	.bw-commerce #account_display_name_description { font-size: var(--bw-fs-xs); color: var(--bw-text-soft); }
	.bw-commerce .woocommerce-EditAccountForm .clear, .bw-commerce .lost_reset_password .clear { display: none; }
	.bw-commerce .woocommerce-EditAccountForm button[type="submit"], .bw-commerce .lost_reset_password button[type="submit"] { justify-self: start; background: var(--bw-action-bg); border-color: transparent; color: var(--bw-white); }
	.bw-commerce .woocommerce-EditAccountForm button[type="submit"]:hover, .bw-commerce .lost_reset_password button[type="submit"]:hover { background: var(--bw-action-bg-hover); color: var(--bw-white); }

	/* Connexion et création de compte */
	.bw-acces { display: grid; gap: var(--bw-s4); }
	.bw-acces__bloc { display: grid; gap: var(--bw-s3); align-content: start; padding: var(--bw-s5) var(--bw-s4); border: 1px solid var(--bw-line); border-radius: var(--bw-radius-l); background: var(--bw-white); }
	.bw-acces__bloc--inscription { background: color-mix(in srgb, var(--bw-green-pale) 45%, var(--bw-white)); }
	.bw-acces__titre { font-size: var(--bw-fs-h2); }
	.bw-acces__titre:focus { outline: none; }
	.bw-acces__aide { margin: 0; font-size: var(--bw-fs-sm); color: var(--bw-text-soft); }
	.bw-acces__aide a { font-weight: 700; }
	.bw-formulaire { display: grid; gap: var(--bw-s3); }
	.bw-formulaire > p { margin: 0; }
	.bw-acces__options { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--bw-s2); }
	.bw-acces__oubli { display: inline-flex; align-items: center; min-height: var(--bw-tap); font-size: var(--bw-fs-sm); font-weight: 600; }
	.bw-commerce .woocommerce-privacy-policy-text { font-size: var(--bw-fs-xs); color: var(--bw-text-soft); }
	.bw-commerce .woocommerce-privacy-policy-text p { margin: 0; }

	/* Tableaux des extensions dans Mon compte (abonnements SUMO, téléchargements…) */
	.bw-compte__contenu table:not([class*="bw-"]):not(.woocommerce-table) { width: 100%; border-collapse: collapse; font-size: var(--bw-fs-sm); background: var(--bw-white); border: 1px solid var(--bw-line); border-radius: var(--bw-radius-m); }
	.bw-compte__contenu table:not([class*="bw-"]):not(.woocommerce-table) th, .bw-compte__contenu table:not([class*="bw-"]):not(.woocommerce-table) td { padding: var(--bw-s2) var(--bw-s3); border-bottom: 1px solid var(--bw-line); text-align: left; vertical-align: top; }
	.bw-compte__contenu table:not([class*="bw-"]):not(.woocommerce-table) th { font-size: var(--bw-fs-xs); color: var(--bw-text-soft); font-weight: 600; }

	/* Sur mobile, les tableaux « responsive » des extensions (abonnements SUMO…) passent en cartes : une ligne par
	   cellule, son intitulé (data-title) à gauche. */
	@media (max-width: 599px) {
		.bw-compte__contenu table.shop_table_responsive { border: 0; background: none; }
		.bw-compte__contenu table.shop_table_responsive thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
		.bw-compte__contenu table.shop_table_responsive, .bw-compte__contenu table.shop_table_responsive tbody, .bw-compte__contenu table.shop_table_responsive tr, .bw-compte__contenu table.shop_table_responsive td, .bw-compte__contenu table.shop_table_responsive tbody th { display: block; }
		.bw-compte__contenu table.shop_table_responsive tbody tr { margin-bottom: var(--bw-s3); padding: var(--bw-s2) var(--bw-s4); border: 1px solid var(--bw-line); border-radius: var(--bw-radius-l); background: var(--bw-white); }
		.bw-compte__contenu table.shop_table_responsive tbody td, .bw-compte__contenu table.shop_table_responsive tbody th { display: grid; grid-template-columns: 6.5rem minmax(0, 1fr); gap: var(--bw-s3); padding: var(--bw-s2) 0; border-bottom: 1px solid var(--bw-line); text-align: left; }
		.bw-compte__contenu table.shop_table_responsive tbody tr > :last-child { border-bottom: 0; }
		.bw-compte__contenu table.shop_table_responsive tbody td[data-title]::before, .bw-compte__contenu table.shop_table_responsive tbody th[data-title]::before { content: attr(data-title); font-size: var(--bw-fs-xs); font-weight: 600; color: var(--bw-text-soft); }
		.bw-compte__contenu table.shop_table_responsive tbody td:not([data-title]) { grid-template-columns: 1fr; }
		.bw-compte__contenu table.shop_table_responsive tbody td > * { justify-self: start; }
	}
	.bw-compte__contenu table .button { min-height: 2.75rem; }

	/* Formulaire de rétractation de WooCommerce (Mon compte) */
	.bw-commerce .woocommerce-order-withdrawal-content { display: grid; gap: var(--bw-s3); padding: var(--bw-s4); border: 1px solid var(--bw-line); border-radius: var(--bw-radius-l); background: var(--bw-white); }
	.bw-commerce .woocommerce-order-withdrawal-content p { margin: 0; }

	/* Vide (aucune commande) */
	.bw-vide { display: grid; justify-items: center; gap: var(--bw-s3); padding: var(--bw-s6) var(--bw-s4); text-align: center; border: 1px solid var(--bw-line); border-radius: var(--bw-radius-l); background: var(--bw-white); }
	.bw-vide__titre { margin: 0; font-weight: 700; font-size: var(--bw-fs-md); }

	/* Superposition « traitement en cours » de WooCommerce (blockUI) : pas de fond blanc opaque sur le crème */
	.bw-commerce .blockUI.blockOverlay { border-radius: inherit; }
}

/* ---------- Tablette (600 px) ---------- */
@media (min-width: 600px) {
	@layer components {
		.bw-champs { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: var(--bw-s4); }
		.bw-champs > .form-row { grid-column: 1 / -1; }
		.bw-champs > .form-row-first { grid-column: 1; }
		.bw-champs > .form-row-last { grid-column: 2; }
		.bw-champs > #billing_postcode_field, .bw-champs > #shipping_postcode_field { grid-column: 1; }
		.bw-champs > #billing_city_field, .bw-champs > #shipping_city_field { grid-column: 2; }
		.bw-champs > #billing_email_field { grid-column: 1; }
		.bw-champs > #billing_phone_field { grid-column: 2; }
		.bw-champs > #billing_company_field { grid-column: 1 / -1; }
		.bw-etape { padding: var(--bw-s5); }
		.bw-etape--suite { padding-block: var(--bw-s2); }
		.bw-article { grid-template-columns: 5rem minmax(0, 1fr); padding-inline: calc(var(--bw-s5) + 5px) var(--bw-s5); }
		.bw-article__vignette img { width: 5rem; height: 6.25rem; }
		.bw-groupe__entete, .bw-groupe__pied { padding-inline: calc(var(--bw-s5) + 5px) var(--bw-s5); }
		.bw-merci__resume { grid-template-columns: repeat(auto-fit, minmax(9rem, 1fr)); }
		.bw-commerce .woocommerce-columns--addresses { grid-template-columns: repeat(2, minmax(0, 1fr)); }
		.bw-commande-detail__etat { grid-template-columns: repeat(auto-fit, minmax(9rem, 1fr)); }
		.bw-adresses { grid-template-columns: repeat(2, minmax(0, 1fr)); }
		.bw-commande-carte__actions .bw-btn { flex: 0 0 auto; }
		/* tuiles */
		.bw-tuiles { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--bw-s3); border: 0; background: none; overflow: visible; }
		.bw-tuile + .bw-tuile { border-top: 0; }
		.bw-tuile__lien { flex-direction: column; align-items: flex-start; gap: var(--bw-s3); min-height: 9rem; padding: var(--bw-s4); border: 1px solid var(--bw-line); border-radius: var(--bw-radius-l); background: var(--bw-white); transition: border-color var(--bw-duree), box-shadow var(--bw-duree); }
		.bw-tuile__lien:hover { background: var(--bw-white); border-color: var(--bw-ink); box-shadow: var(--bw-shadow-2); }
		.bw-tuile__lien:focus-visible { border-radius: var(--bw-radius-l); box-shadow: var(--bw-focus); }
		.bw-tuile__chevron { display: none; }
		.bw-tuile__titre { font-size: var(--bw-fs-md); }
	}
}

/* ---------- Ordinateur (900 px) ---------- */
@media (min-width: 900px) {
	@layer components {
		.bw-barre-panier { display: none; }
		body:has(.bw-barre-panier) .bw-pied { padding-bottom: var(--bw-s4); }
		.bw-recap-bascule { display: none; }
		.bw-commande__recap.est-replie .bw-commande__recap-corps { display: grid; }
		.bw-recap-bascule:not([hidden]) + .bw-commande__recap-corps { border-top: 0; }
		.bw-commande__recap-corps { max-height: calc(100vh - var(--bw-entete-h) - var(--bw-s6)); overflow-y: auto; }
		.bw-compte-retour { display: none; }
		.bw-compte-nav { display: block; position: sticky; top: calc(var(--bw-entete-h) + var(--bw-s4)); }
		.bw-acces--deux { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--bw-s5); }
		.bw-acces__bloc { padding: var(--bw-s6); }
		.bw-recap-panier { padding: var(--bw-s5); }
	}
}

/* ---------- Grand écran (1200 px) ---------- */
@media (min-width: 1200px) {
	@layer components {
		.bw-tuiles { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	}
}

/* ---------- Statuts des abonnements SUMO (hors couche) ----------
   SUMO imprime ses couleurs dans une balise <style> hors couche (texte blanc sur bleu clair : contraste 2,15:1).
   Ces règles, hors couche et plus précises, les remplacent par les pastilles de statut du thème (contraste AA). */
.bw-commerce mark.sumosubs-status { display: inline-flex; align-items: center; min-height: 1.75rem; padding: 0 var(--bw-s2); border-radius: var(--bw-radius-pill); font: 700 0.75rem/1.2 var(--bw-font-text); background: var(--bw-cream); color: var(--bw-ink); box-shadow: inset 0 0 0 1px var(--bw-line); white-space: nowrap; }
.bw-commerce mark.sumosubs-status.Active-Subscription, .bw-commerce mark.sumosubs-status.Trial { background: var(--bw-green-pale); color: var(--bw-green-700); box-shadow: none; }
.bw-commerce mark.sumosubs-status.Pending, .bw-commerce mark.sumosubs-status.Pause, .bw-commerce mark.sumosubs-status.Overdue, .bw-commerce mark.sumosubs-status.Pending_Cancellation, .bw-commerce mark.sumosubs-status.Pending_Authorization { background: var(--bw-orange-pale); color: var(--bw-orange-700); box-shadow: none; }
.bw-commerce mark.sumosubs-status.Failed, .bw-commerce mark.sumosubs-status.Suspended { background: color-mix(in srgb, var(--bw-error) 8%, var(--bw-white)); color: var(--bw-error); box-shadow: none; }
.bw-commerce mark.sumosubs-status.Cancelled, .bw-commerce mark.sumosubs-status.Expired { background: var(--bw-cream); color: var(--bw-ink); box-shadow: inset 0 0 0 1px var(--bw-line-strong); }

/* ---------- Rectificatifs du 13/10/2026 : totaux HT, palier, régime sur chaque prix, suggestions par deux ---------- */
@layer components {
	.bw-totaux .bw-total-ht th, .bw-totaux .bw-total-ht td, .bw-recap .bw-total-ht th, .bw-recap .bw-total-ht td { font-weight: 700; border-top: 1px solid var(--bw-line-strong); }
	.bw-totaux .tax-rate th, .bw-recap .tax-rate th { color: var(--bw-ink-soft); }
	.bw-regime-txt { font-size: 0.75em; font-weight: 600; color: var(--bw-text-soft); white-space: nowrap; }
	.bw-palier { display: grid; gap: var(--bw-s1); margin: 0 0 var(--bw-s4); padding: var(--bw-s3) var(--bw-s4); border-radius: var(--bw-radius-m); background: var(--bw-green-pale); color: var(--bw-ink); font-size: var(--bw-fs-sm); }
	.bw-palier p { margin: 0; }
	.bw-palier .bw-palier__note { font-size: var(--bw-fs-xs); color: var(--bw-ink-soft); }
	.bw-produits--paire { grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: 40rem; }
	@media (min-width: 600px) { .bw-produits--grille.bw-produits--paire { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
	.bw-commerce dl.variation dt { font-weight: 600; }
}
/* DS2-13 : lien « Analyse de la récolte » du bloc « Documents du lot » (thème) : 48 px sur mobile. Hors couche : le
   style du bloc vient du module producteurs, écrit dans la page sans couche. */
@media (max-width: 899px) {
	.bw-prod-docs-lot.bw-docs-analyse li a { min-height: var(--bw-tap); }
}

/* ---------- FPB-11 (13/10/2026) : prix du sac et prix au kilo sur chaque ligne d'article ---------- */
@layer components {
	.bw-ligne-sac, .bw-ligne-kg { color: var(--bw-text-soft); }
	.bw-ligne-kg { white-space: nowrap; }
	.bw-ligne-kg__montant { font-weight: 600; color: var(--bw-ink); }
	.bw-recap .bw-ligne-prix { display: block; margin-top: 0.15rem; font-size: var(--bw-fs-xs); font-weight: 400; font-variant-numeric: tabular-nums; }
	.bw-ligne-commande-kg { margin: 0.25rem 0 0; color: var(--bw-text-soft); font-variant-numeric: tabular-nums; }
}
