/* poteaubois v2 — panier et paiement (D2 du 13/10/2026) : gabarit woocommerce/tunnel.php autour des codes courts
   classiques de WooCommerce. Les feuilles de WooCommerce, de Hello Elementor et d'Elementor ne sont pas chargées sur ces
   pages : tout ce que WooCommerce affiche (messages, lignes, totaux, transport, champs, moyens de paiement) est mis en
   forme ici, aux couleurs de la charte. Mobile d'abord ; panier et totaux côte à côte à partir de 1100 px. */

@layer components {
	.pb-tunnel { padding-bottom: var(--pb-section); }
	/* un élément de paiement tiers (champ caché de Stripe placé en absolu) ne peut pas élargir la page : la zone est
	   positionnée, donc elle le contient, et rognée à l'horizontale (sans créer de zone de défilement) */
	.pb-tunnel__corps { position: relative; overflow-x: clip; }
	.pb-tunnel__tete { display: grid; gap: var(--pb-s3); padding-block: var(--pb-s5) var(--pb-s5); }
	.pb-tunnel__etapes { display: flex; flex-wrap: wrap; gap: var(--pb-s2) var(--pb-s5); color: var(--pb-texte-doux); font-size: var(--pb-fs-sm); }
	.pb-tunnel__etapes li { display: inline-flex; align-items: center; gap: var(--pb-s2); }
	.pb-tunnel__num { display: inline-grid; place-items: center; width: 1.75rem; height: 1.75rem; border: 2px solid var(--pb-ligne-forte); border-radius: 50%; font-size: var(--pb-fs-xs); font-weight: var(--pb-g-fort); }
	.pb-tunnel__etapes .est-courante { color: var(--pb-encre); font-weight: var(--pb-g-fort); }
	.pb-tunnel__etapes .est-courante .pb-tunnel__num { background: var(--pb-encre); border-color: var(--pb-encre); color: var(--pb-blanc); }
	.pb-tunnel__etapes .est-faite .pb-tunnel__num { background: var(--pb-foret); border-color: var(--pb-foret); color: var(--pb-blanc); }

	/* Texte réservé aux lecteurs d'écran (classe de WooCommerce) ; montants jamais coupés (« 110 ,00 € ») */
	.pb-tunnel .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; }
	.pb-tunnel .woocommerce-Price-amount { white-space: nowrap; font-variant-numeric: tabular-nums; }
	.pb-tunnel table { width: 100%; border-collapse: collapse; }
	.pb-tunnel :is(th, td) { text-align: left; font-weight: inherit; }

	/* ---------- Messages (WooCommerce, extension : minimum de commande) ---------- */
	.pb-tunnel .woocommerce-notices-wrapper:empty { display: none; }
	.pb-tunnel :is(.woocommerce-error, .woocommerce-message, .woocommerce-info), .pb-minimum { display: flex; flex-wrap: wrap; align-items: center; gap: var(--pb-s2) var(--pb-s4); margin: 0 0 var(--pb-s4); padding: var(--pb-s3) var(--pb-s4); border: 1px solid var(--pb-ligne); border-left: 4px solid var(--pb-bois); border-radius: var(--pb-r-m); background: var(--pb-bois-clair); color: var(--pb-encre); font-weight: var(--pb-g-ui); list-style: none; }
	.pb-tunnel .woocommerce-error, .pb-minimum { border-color: #F3C3BE; border-left-color: var(--pb-erreur); background: var(--pb-erreur-pale); color: #7A1A12; }
	.pb-tunnel .woocommerce-message { border-color: #C3D8CB; border-left-color: var(--pb-foret); background: var(--pb-foret-pale); }
	.pb-tunnel .woocommerce-error { display: grid; gap: var(--pb-s1); }
	.pb-tunnel .woocommerce-error li { display: block; }
	.pb-tunnel :is(.woocommerce-message, .woocommerce-info) > .button { order: 2; margin-left: auto; }
	.pb-tunnel .wc-empty-cart-message .cart-empty { margin-bottom: var(--pb-s4); }

	/* ---------- Boutons de WooCommerce aux couleurs du site ---------- */
	.pb-tunnel :is(.button, a.button, button.button, input.button) { display: inline-flex; align-items: center; justify-content: center; gap: var(--pb-s2); max-width: 100%; min-height: var(--pb-tap); padding: 0.5rem 1rem; border: 2px solid var(--pb-encre); border-radius: var(--pb-r-m); background: var(--pb-blanc); color: var(--pb-encre); font-size: var(--pb-fs-sm); font-weight: var(--pb-g-fort); line-height: 1.15; text-align: center; text-decoration: none; white-space: normal; cursor: pointer; }
	.pb-tunnel :is(.button, a.button):hover { background: var(--pb-bois-clair); color: var(--pb-encre); text-decoration: none; }
	.pb-tunnel :is(.button.alt, .checkout-button, #place_order) { width: 100%; min-height: var(--pb-tap-confort); padding-block: 0.75rem; border-color: var(--pb-action); background: var(--pb-action); color: var(--pb-blanc); font-size: var(--pb-fs-md); }
	.pb-tunnel :is(.button.alt, .checkout-button, #place_order):hover { border-color: var(--pb-action-survol); background: var(--pb-action-survol); color: var(--pb-blanc); }
	.pb-tunnel :is(.button, button):is(:disabled, [aria-disabled="true"]) { opacity: 0.55; cursor: not-allowed; }
	.pb-tunnel .pb-lien-fleche--retour { flex-direction: row; }

	/* ---------- Panier : lignes (cartes sur téléphone, tableau à partir de 700 px) ---------- */
	.pb-tunnel--panier .woocommerce { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--pb-s5); align-items: start; }
	.pb-panier__table, .pb-panier__table tbody { display: block; }
	.pb-panier__table thead { display: none; }
	.pb-panier__ligne { display: grid; grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "ref retirer" "pu pu" "qte total"; align-items: center; gap: var(--pb-s3); margin-bottom: var(--pb-s3); padding: var(--pb-s4); border: 1px solid var(--pb-ligne); border-radius: var(--pb-r-l); background: var(--pb-surface); box-shadow: var(--pb-ombre-1); }
	.pb-panier__ligne > td { display: block; padding: 0; }
	.pb-panier__ref { grid-area: ref; }
	.pb-panier__refbloc { display: grid; grid-template-columns: 4rem minmax(0, 1fr); gap: var(--pb-s3); align-items: start; }
	.pb-panier__photo img { display: block; width: 4rem; height: 4rem; object-fit: cover; border: 1px solid var(--pb-ligne); border-radius: var(--pb-r-m); background: var(--pb-bois-clair); }
	.pb-panier__texte { display: grid; gap: var(--pb-s1); min-width: 0; }
	.pb-panier__nom { font-weight: var(--pb-g-fort); line-height: var(--pb-lh-titre); }
	.pb-panier__nom a { color: var(--pb-encre); text-decoration: none; }
	.pb-panier__nom a:hover { text-decoration: underline; }
	.pb-panier__pu { grid-area: pu; color: var(--pb-texte-doux); font-size: var(--pb-fs-sm); }
	.pb-panier__pu::before { content: attr(data-title) "\00a0: "; }
	.pb-panier__qte { grid-area: qte; }
	.pb-panier__qte .quantity { display: contents; }
	.pb-panier__total { grid-area: total; justify-self: end; font-size: var(--pb-fs-md); font-weight: var(--pb-g-titre); text-align: right; }
	.pb-panier__retirer { grid-area: retirer; align-self: start; }
	.pb-panier__retirer .remove { color: var(--pb-texte-doux); }
	.pb-panier__retirer .remove:hover { color: var(--pb-erreur); background: var(--pb-erreur-pale); }
	/* Prix barré d'une ligne au tarif dégressif (G2) */
	.pb-prix-barre { display: inline-flex; flex-wrap: wrap; align-items: baseline; gap: 0 var(--pb-s2); }
	.pb-prix-barre del { color: var(--pb-texte-doux); font-weight: var(--pb-g-texte); text-decoration-thickness: 1.5px; }
	.pb-prix-barre ins { text-decoration: none; font-weight: var(--pb-g-fort); color: var(--pb-encre); }
	.pb-prix-barre__palier { color: var(--pb-foret); font-size: var(--pb-fs-xs); font-weight: var(--pb-g-fort); }
	.pb-recap__pu { display: block; margin-top: 0.15rem; color: var(--pb-texte-doux); font-size: var(--pb-fs-xs); font-weight: var(--pb-g-ui); }
	/* Mentions de la ligne : tarif dégressif, prochain palier */
	/* libellé au-dessus de son texte : une colonne étroite (carte du téléphone) ne coupe jamais le texte lettre par lettre */
	.pb-tunnel dl.variation { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0 var(--pb-s2); margin: 0; font-size: var(--pb-fs-xs); color: var(--pb-texte-doux); }
	.pb-tunnel dl.variation dd + dt { margin-top: var(--pb-s1); }
	.pb-tunnel dl.variation dt { color: var(--pb-foret); font-weight: var(--pb-g-fort); }
	.pb-tunnel dl.variation :is(dd, dd p) { margin: 0; }
	/* Code de réduction et mise à jour */
	.pb-panier__actions, .pb-panier__actions > td { display: block; padding: 0; }
	.pb-panier__actions .actions { display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: var(--pb-s3); }
	.pb-panier__code { display: flex; flex-wrap: wrap; align-items: end; gap: var(--pb-s2); }
	.pb-panier__code label { flex-basis: 100%; font-size: var(--pb-fs-sm); font-weight: var(--pb-g-fort); }
	.pb-panier__code input { width: 11rem; max-width: 100%; }
	.pb-tunnel .pb-panier__maj.est-auto, .pb-js .pb-tunnel .pb-panier__maj { position: absolute !important; width: 1px; height: 1px; min-width: 0; min-height: 0; margin: -1px; padding: 0; border: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; } /* tunnel.js met le panier à jour seul ; avec JavaScript (classe pb-js posée avant le premier affichage) le bouton est masqué dès le départ : sa rangée ne se replie plus après coup (PERF-36, décalage de 0,02 sur mobile) */
	.pb-panier__suite { margin-top: var(--pb-s4); }

	@media (min-width: 700px) {
		.pb-panier__table { display: table; border-collapse: separate; border-spacing: 0; overflow: hidden; border: 1px solid var(--pb-ligne); border-radius: var(--pb-r-l); background: var(--pb-surface); box-shadow: var(--pb-ombre-1); }
		.pb-panier__table thead { display: table-header-group; }
		.pb-panier__table tbody { display: table-row-group; }
		.pb-panier__table th { padding: var(--pb-s2) var(--pb-s3); background: var(--pb-bois-pale); color: var(--pb-bois-800); font-size: var(--pb-fs-xs); font-weight: var(--pb-g-fort); }
		.pb-panier__table :is(th, td).product-price, .pb-panier__table :is(th, td).product-subtotal { text-align: right; }
		.pb-panier__ligne { display: table-row; margin: 0; padding: 0; border: 0; box-shadow: none; background: none; }
		.pb-panier__ligne > td { display: table-cell; padding: var(--pb-s3); border-top: 1px solid var(--pb-ligne); vertical-align: middle; }
		.pb-panier__ligne > td:first-child { padding-left: var(--pb-s4); }
		.pb-panier__ligne > td:last-child { width: calc(var(--pb-tap) + var(--pb-s3)); padding-right: var(--pb-s2); }
		.pb-panier__pu { color: var(--pb-texte); font-size: var(--pb-fs-base); }
		.pb-panier__pu::before { content: none; }
		.pb-panier__actions > td { display: table-cell; padding: var(--pb-s3) var(--pb-s4); border-top: 1px solid var(--pb-ligne); background: var(--pb-fond); }
	}
	@media (min-width: 1100px) {
		.pb-tunnel--panier .woocommerce { grid-template-columns: minmax(0, 1fr) minmax(19rem, 23rem); column-gap: var(--pb-s6); }
		.pb-tunnel--panier .woocommerce > * { grid-column: 1; }
		.pb-tunnel--panier .woocommerce > .cart-collaterals { grid-column: 2; grid-row: 1 / span 4; }
	}

	/* ---------- Encart « Livraison » du panier (G1) : adresse, départ, délai, choix aux prix du panier, carte ---------- */
	.pb-tunnel--panier .cart-collaterals { display: grid; gap: var(--pb-s5); }
	.pb-encart { display: grid; gap: var(--pb-s4); padding: var(--pb-s5); border: 1px solid var(--pb-ligne); border-radius: var(--pb-r-l); background: var(--pb-surface); box-shadow: var(--pb-ombre-1); }
	.pb-encart__titre { display: flex; align-items: center; gap: var(--pb-s2); font-size: var(--pb-fs-h3); }
	.pb-encart__titre .pb-icone { color: var(--pb-foret); }
	.pb-encart__adresse .pb-adresse__liste { top: calc(100% - 2.4rem); }
	.pb-encart__resultat { display: grid; gap: var(--pb-s3); }
	.pb-encart__resultat[aria-busy="true"] { cursor: progress; }
	.pb-encart__message { display: grid; gap: var(--pb-s1); padding: var(--pb-s3) var(--pb-s4); border-radius: var(--pb-r-m); background: var(--pb-bois-clair); font-size: var(--pb-fs-sm); }
	.pb-encart__message--attente { border: 1px dashed var(--pb-ligne-forte); }
	.pb-encart__message--devis { border-left: 4px solid var(--pb-bois); }
	.pb-encart__message-titre { display: flex; align-items: center; gap: var(--pb-s2); font-weight: var(--pb-g-fort); }
	.pb-encart__message-titre .pb-icone { width: 18px; height: 18px; color: var(--pb-foret); }
	.pb-encart__departs { display: grid; gap: var(--pb-s2); margin: 0; padding: 0; list-style: none; }
	.pb-encart__departs > li { display: grid; gap: 0.15rem; }
	.pb-encart__depart, .pb-encart__delai { display: flex; align-items: center; gap: var(--pb-s2); font-weight: var(--pb-g-fort); }
	.pb-encart__delai { color: var(--pb-bois-800); font-size: var(--pb-fs-sm); }
	.pb-encart :is(.pb-encart__depart, .pb-encart__delai) .pb-icone { flex: none; width: 16px; height: 16px; color: var(--pb-foret); }
	.pb-encart__choix { display: grid; gap: var(--pb-s2); margin: 0; padding: 0; border: 0; min-width: 0; }
	.pb-encart__choix legend { margin-bottom: var(--pb-s2); padding: 0; font-weight: var(--pb-g-fort); }
	.pb-encart__tarif { display: grid; grid-template-columns: auto minmax(0, 1fr); grid-template-areas: "radio nom" ". prix"; gap: var(--pb-s1) var(--pb-s3); align-items: start; min-height: var(--pb-tap); padding: var(--pb-s3); border: 2px solid var(--pb-ligne); border-radius: var(--pb-r-m); background: var(--pb-blanc); cursor: pointer; }
	.pb-encart__tarif:hover { border-color: var(--pb-ligne-forte); }
	.pb-encart__tarif:has(input:checked) { border-color: var(--pb-encre); background: var(--pb-bois-clair); }
	.pb-encart__tarif:has(input:focus-visible) { outline: 3px solid var(--pb-encre); outline-offset: 2px; }
	.pb-encart__tarif input { grid-area: radio; margin-top: 0.2rem; }
	.pb-encart__tarif-nom { grid-area: nom; font-weight: var(--pb-g-ui); line-height: var(--pb-lh-titre); }
	.pb-encart__tarif-prix { grid-area: prix; display: flex; flex-wrap: wrap; align-items: baseline; gap: 0 var(--pb-s3); }
	.pb-encart__tarif-prix strong { font-size: var(--pb-fs-md); font-weight: var(--pb-g-titre); white-space: nowrap; }
	.pb-encart__tarif-prix span { color: var(--pb-texte-doux); font-size: var(--pb-fs-sm); white-space: nowrap; }
	.pb-encart__engagement { font-weight: var(--pb-g-fort); font-size: var(--pb-fs-sm); }
	.pb-encart__carte-bloc { border-top: 1px solid var(--pb-ligne); padding-top: var(--pb-s2); }
	.pb-encart__carte-bloc > summary { display: flex; align-items: center; gap: var(--pb-s2); min-height: var(--pb-tap); cursor: pointer; font-weight: var(--pb-g-fort); list-style: none; }
	.pb-encart__carte-bloc > summary::-webkit-details-marker { display: none; }
	.pb-encart__carte-bloc > summary::after { content: ""; width: 0.55rem; height: 0.55rem; margin-left: auto; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg); transition: transform var(--pb-duree); }
	.pb-encart__carte-bloc[open] > summary::after { transform: rotate(-135deg); }
	.pb-encart__carte-bloc > summary .pb-icone { color: var(--pb-foret); }
	.pb-encart__carte { position: relative; z-index: 0; height: clamp(16rem, 60vw, 20rem); margin-top: var(--pb-s2); overflow: hidden; border: 1px solid var(--pb-ligne); border-radius: var(--pb-r-m); background: var(--pb-bois-clair); }
	.pb-encart__carte-attente { display: flex; align-items: center; justify-content: center; height: 100%; padding: var(--pb-s4); color: var(--pb-texte-doux); font-size: var(--pb-fs-sm); text-align: center; }
	/* Encart actif : les totaux ne gardent que la livraison choisie (le choix et l'adresse se font dans l'encart) */
	/* PERF-36 : dès le premier affichage quand l'encart est présent (JavaScript actif), plus après la lecture du panier */
	:is(.pb-encart-actif, .pb-js .pb-tunnel:has(.pb-encart:not([hidden]))) .cart_totals :is(.woocommerce-shipping-calculator, .woocommerce-shipping-destination, .pb-totaux__delai, .pb-totaux__gazole) { display: none; }
	:is(.pb-encart-actif, .pb-js .pb-tunnel:has(.pb-encart:not([hidden]))) .cart_totals .woocommerce-shipping-methods li:not(:has(input:checked)):not(:only-child) { display: none; }
	:is(.pb-encart-actif, .pb-js .pb-tunnel:has(.pb-encart:not([hidden]))) .cart_totals .woocommerce-shipping-methods li { grid-template-columns: minmax(0, 1fr); padding: 0; border: 0; background: none; box-shadow: none !important; }
	.pb-encart-actif .cart_totals .woocommerce-shipping-methods input { position: absolute; opacity: 0; width: 1px; height: 1px; pointer-events: none; }

	/* ---------- Totaux (panier) et récapitulatif (paiement) : une rangée par montant ---------- */
	.pb-totaux, .pb-tunnel #order_review { display: grid; gap: var(--pb-s4); padding: var(--pb-s5); border: 1px solid var(--pb-ligne); border-radius: var(--pb-r-l); background: var(--pb-surface); box-shadow: var(--pb-ombre-1); }
	.pb-totaux__titre { font-size: var(--pb-fs-h3); }
	.pb-totaux__table, .pb-totaux__table tbody, .pb-tunnel .woocommerce-checkout-review-order-table :is(tbody, tfoot) { display: block; }
	.pb-totaux__table tr, .pb-tunnel .woocommerce-checkout-review-order-table :is(tbody, tfoot) tr { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: var(--pb-s1) var(--pb-s3); padding-block: var(--pb-s2); border-bottom: 1px solid var(--pb-ligne); }
	.pb-totaux__table :is(th, td), .pb-tunnel .woocommerce-checkout-review-order-table :is(th, td) { padding: 0; font-weight: var(--pb-g-ui); }
	.pb-totaux__table td, .pb-tunnel .woocommerce-checkout-review-order-table td { text-align: right; }
	.pb-tunnel .woocommerce-checkout-review-order-table thead { display: none; }
	.pb-tunnel .woocommerce-checkout-review-order-table .cart_item .product-name { flex: 1 1 12rem; min-width: 0; }
	.pb-tunnel .woocommerce-checkout-review-order-table .product-quantity { font-weight: var(--pb-g-fort); }
	.pb-totaux__ht :is(th, td), .pb-tunnel .pb-total-ht :is(th, td) { font-weight: var(--pb-g-fort); }
	.pb-tunnel .order-total { border-bottom: 0 !important; padding-top: var(--pb-s3) !important; }
	.pb-tunnel .order-total :is(th, td) { font-size: var(--pb-fs-md); font-weight: var(--pb-g-titre); }
	.pb-tunnel .order-total .includes_tax { display: none; } /* la TVA a sa propre rangée */
	.pb-totaux__gazole, .pb-tunnel .pb-gazole { border-bottom: 0 !important; padding-top: 0 !important; }
	.pb-totaux__gazole td, .pb-tunnel .pb-gazole td { flex: 1 1 100%; text-align: left !important; }
	/* Transport : une liste de choix par envoi (méthodes de l'extension), destination, calculateur */
	.pb-tunnel tr.woocommerce-shipping-totals, .pb-tunnel tr.shipping { flex-direction: column; align-items: stretch; }
	.pb-tunnel tr:is(.woocommerce-shipping-totals, .shipping) th { font-weight: var(--pb-g-fort); }
	.pb-tunnel tr:is(.woocommerce-shipping-totals, .shipping) td { display: grid; gap: var(--pb-s2); text-align: left; }
	.pb-tunnel .woocommerce-shipping-methods { display: grid; gap: var(--pb-s2); margin: 0; padding: 0; list-style: none; }
	.pb-tunnel .woocommerce-shipping-methods li { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: var(--pb-s2); align-items: start; padding: var(--pb-s2) var(--pb-s3); border: 1px solid var(--pb-ligne); border-radius: var(--pb-r-m); background: var(--pb-blanc); }
	.pb-tunnel .woocommerce-shipping-methods li:has(input:checked) { border-color: var(--pb-encre); background: var(--pb-bois-clair); box-shadow: inset 0 0 0 1px var(--pb-encre); }
	.pb-tunnel .woocommerce-shipping-methods li:only-child { grid-template-columns: minmax(0, 1fr); }
	.pb-tunnel .woocommerce-shipping-methods input { margin-top: 0.2rem; }
	.pb-tunnel .woocommerce-shipping-methods label { font-weight: var(--pb-g-ui); cursor: pointer; }
	.pb-tunnel .woocommerce-shipping-destination { color: var(--pb-texte-doux); font-size: var(--pb-fs-xs); }
	.pb-tunnel .pb-livraison-sur-devis { padding: var(--pb-s3); border-left: 4px solid var(--pb-bois); border-radius: var(--pb-r-m); background: var(--pb-bois-clair); font-size: var(--pb-fs-sm); }
	/* Encart du transport du panier (E2) : l'adresse se saisit directement, sans lien à déplier */
	.pb-tunnel--panier .shipping-calculator-button { display: none; }
	.pb-tunnel .shipping-calculator-form { display: grid !important; gap: var(--pb-s3); margin-top: var(--pb-s2); padding: var(--pb-s3); border-radius: var(--pb-r-m); background: var(--pb-bois-clair); }
	.pb-totaux__delai, .pb-tunnel .pb-totaux__delai { border-bottom: 0 !important; }
	.pb-totaux__delai-texte { display: flex; align-items: center; gap: var(--pb-s2); color: var(--pb-bois-800); font-size: var(--pb-fs-sm); font-weight: var(--pb-g-fort); text-align: left; }
	.pb-totaux__delai-texte .pb-icone { width: 16px; height: 16px; flex: none; }
	.pb-totaux__delai td { flex: 1 1 100%; }
	.pb-tunnel .shipping-calculator-form p { margin: 0; }
	.pb-tunnel .shipping-calculator-form :is(input, select) { width: 100%; }
	.wc-proceed-to-checkout { display: grid; gap: var(--pb-s2); }
	.pb-totaux__rassurance { display: flex; gap: var(--pb-s2); align-items: flex-start; color: var(--pb-texte-doux); font-size: var(--pb-fs-xs); }
	.pb-totaux__rassurance .pb-icone { flex: none; width: 18px; height: 18px; color: var(--pb-foret); }

	/* ---------- Paiement : coordonnées à gauche, récapitulatif et paiement à droite (1100 px et plus) ---------- */
	.pb-tunnel--paiement form.checkout { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--pb-s5); align-items: start; }
	.pb-tunnel--paiement form.checkout > .woocommerce-NoticeGroup { grid-column: 1 / -1; }
	.pb-tunnel #customer_details { display: grid; gap: var(--pb-s5); }
	.pb-tunnel #customer_details :is(.woocommerce-billing-fields, .woocommerce-shipping-fields, .woocommerce-additional-fields) { display: grid; gap: var(--pb-s4); }
	.pb-tunnel #customer_details :is(.col-1, .col-2) { padding: var(--pb-s5); border: 1px solid var(--pb-ligne); border-radius: var(--pb-r-l); background: var(--pb-surface); }
	.pb-tunnel #customer_details .col-2:not(:has(*)) { display: none; }
	.pb-tunnel :is(#customer_details, #order_review_heading) h3, .pb-tunnel #order_review_heading { font-size: var(--pb-fs-h3); }
	.pb-tunnel :is(.woocommerce-billing-fields__field-wrapper, .woocommerce-shipping-fields__field-wrapper, .woocommerce-additional-fields__field-wrapper) { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--pb-s3) var(--pb-s4); }
	@media (min-width: 600px) {
		.pb-tunnel :is(.woocommerce-billing-fields__field-wrapper, .woocommerce-shipping-fields__field-wrapper) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
		.pb-tunnel .form-row-wide, .pb-tunnel .form-row:not(.form-row-first, .form-row-last) { grid-column: 1 / -1; }
	}
	.pb-tunnel .form-row { display: grid; gap: 0.35rem; margin: 0; }
	.pb-tunnel .form-row > label, .pb-tunnel .shipping-calculator-form label { font-size: var(--pb-fs-sm); font-weight: var(--pb-g-fort); }
	.pb-tunnel .form-row .required { color: var(--pb-erreur); text-decoration: none; border: 0; }
	.pb-tunnel .form-row .optional { color: var(--pb-texte-doux); font-weight: var(--pb-g-texte); }
	.pb-tunnel .woocommerce-input-wrapper { display: block; }
	.pb-tunnel .form-row :is(input.input-text, select, textarea) { width: 100%; }
	.pb-tunnel .form-row.woocommerce-invalid :is(input.input-text, select, .select2-selection) { border-color: var(--pb-erreur); box-shadow: inset 0 0 0 1px var(--pb-erreur); }
	.pb-tunnel :is(.woocommerce-form__label-for-checkbox, #ship-to-different-address label) { display: flex; align-items: center; gap: var(--pb-s3); min-height: var(--pb-tap); font-weight: var(--pb-g-ui); cursor: pointer; }
	.pb-tunnel #ship-to-different-address { font-size: var(--pb-fs-base); }
	/* Listes de pays et de départements (selectWoo) */
	.pb-tunnel .select2-container { width: 100% !important; }
	.pb-tunnel .select2-container .select2-selection--single { display: flex; align-items: center; height: auto; min-height: var(--pb-tap); border: 1px solid var(--pb-ligne-forte); border-radius: var(--pb-r-m); background: var(--pb-blanc); }
	.pb-tunnel .select2-container .select2-selection--single .select2-selection__rendered { padding-inline: 0.75rem 2rem; line-height: 1.4; color: var(--pb-texte); }
	.pb-tunnel .select2-container .select2-selection--single .select2-selection__arrow { top: 50%; height: 2rem; transform: translateY(-50%); }
	/* Récapitulatif de la commande */
	.pb-tunnel #order_review_heading { margin: 0; }
	/* Moyens de paiement */
	.pb-tunnel #payment { display: grid; gap: var(--pb-s4); padding-top: var(--pb-s2); border-top: 1px solid var(--pb-ligne); background: none; }
	.pb-tunnel .wc_payment_methods { display: grid; gap: var(--pb-s2); margin: 0; padding: 0; list-style: none; }
	.pb-tunnel .wc_payment_method { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: var(--pb-s2) var(--pb-s3); align-items: center; padding: var(--pb-s3); border: 1px solid var(--pb-ligne); border-radius: var(--pb-r-m); background: var(--pb-blanc); }
	.pb-tunnel .wc_payment_method:has(> input:checked) { border-color: var(--pb-encre); box-shadow: inset 0 0 0 1px var(--pb-encre); }
	.pb-tunnel .wc_payment_method > label { display: flex; flex-wrap: wrap; align-items: center; gap: var(--pb-s2); font-weight: var(--pb-g-fort); cursor: pointer; }
	.pb-tunnel .wc_payment_method > label img { max-height: 1.5rem; width: auto; }
	.pb-tunnel .payment_box { grid-column: 1 / -1; padding: var(--pb-s3); border-radius: var(--pb-r-m); background: var(--pb-bois-clair); font-size: var(--pb-fs-sm); }
	.pb-tunnel .payment_box p { margin: 0 0 var(--pb-s2); }
	.pb-tunnel .payment_box fieldset { border: 0; margin: 0; padding: 0; }
	.pb-tunnel .place-order { display: grid; gap: var(--pb-s3); margin: 0; }
	.pb-tunnel .woocommerce-privacy-policy-text, .pb-tunnel .woocommerce-terms-and-conditions-wrapper { color: var(--pb-texte-doux); font-size: var(--pb-fs-xs); }
	@media (min-width: 1100px) {
		.pb-tunnel--paiement form.checkout { grid-template-columns: minmax(0, 1fr) minmax(20rem, 26rem); column-gap: var(--pb-s6); }
		.pb-tunnel--paiement #customer_details { grid-column: 1; grid-row: span 2; }
		.pb-tunnel--paiement #order_review_heading { grid-column: 2; }
		.pb-tunnel--paiement #order_review { grid-column: 2; position: sticky; top: calc(var(--pb-entete-h) + var(--pb-s4)); }
	}
	.pb-tunnel .woocommerce-form-login { gap: var(--pb-s3); margin-bottom: var(--pb-s4); padding: var(--pb-s4); border: 1px solid var(--pb-ligne); border-radius: var(--pb-r-l); background: var(--pb-surface); }
	.pb-tunnel .woocommerce-form-login:not([style*="none"]) { display: grid; }
	.pb-tunnel :is(.showlogin, .woocommerce-LostPassword a, .lost_password a) { display: inline-flex; align-items: center; min-height: var(--pb-tap); }
	/* Mot de passe : bouton « afficher » de 44 px, posé dans le champ */
	.pb-tunnel .password-input { position: relative; display: block; }
	.pb-tunnel .password-input input { padding-right: calc(var(--pb-tap) + var(--pb-s1)); }
	.pb-tunnel .show-password-input { position: absolute; top: 0; right: 0; width: var(--pb-tap); height: 100%; min-height: var(--pb-tap); padding: 0; border: 0; border-radius: 0 var(--pb-r-m) var(--pb-r-m) 0; background: transparent no-repeat center / 20px url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235C5149' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 12s3.5-7 10-7 10 7 10 7-3.5 7-10 7S2 12 2 12z'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/svg%3E"); cursor: pointer; }
	.pb-tunnel .show-password-input.display-password { opacity: 0.6; }

	/* ---------- Mon compte (E4) ---------- */
	.pb-tunnel--compte .woocommerce { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--pb-s5); align-items: start; }
	.pb-tunnel--compte h2 { font-size: var(--pb-fs-h3); margin-bottom: var(--pb-s3); }
	.pb-tunnel .u-columns.col2-set { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--pb-s5); }
	.pb-tunnel :is(.woocommerce-form-register, .woocommerce-ResetPassword, .woocommerce-EditAccountForm, .woocommerce-address-fields, .woocommerce-form-login.login) { display: grid; gap: var(--pb-s4); padding: var(--pb-s5); border: 1px solid var(--pb-ligne); border-radius: var(--pb-r-l); background: var(--pb-surface); }
	.pb-tunnel--compte .woocommerce-form-login.login { max-width: 32rem; }
	.pb-tunnel .woocommerce-form-login__rememberme { display: flex; align-items: center; gap: var(--pb-s3); min-height: var(--pb-tap); font-weight: var(--pb-g-ui); }
	.pb-tunnel .woocommerce-form-login .form-row:has(.woocommerce-form-login__submit) { display: flex; flex-wrap: wrap; align-items: center; gap: var(--pb-s3); }
	.pb-tunnel .woocommerce-form-login__submit, .pb-tunnel .woocommerce-form-register__submit, .pb-tunnel .woocommerce-Button { border-color: var(--pb-action) !important; background: var(--pb-action) !important; color: var(--pb-blanc) !important; }
	.pb-tunnel .woocommerce-MyAccount-navigation ul { display: flex; flex-wrap: wrap; gap: var(--pb-s2); margin: 0; padding: 0; list-style: none; }
	.pb-tunnel .woocommerce-MyAccount-navigation a { display: inline-flex; align-items: center; min-height: var(--pb-tap); padding: 0 var(--pb-s4); border: 1px solid var(--pb-ligne-forte); border-radius: var(--pb-r-pill); background: var(--pb-blanc); color: var(--pb-encre); font-weight: var(--pb-g-ui); text-decoration: none; }
	.pb-tunnel .woocommerce-MyAccount-navigation .is-active a { border-color: var(--pb-encre); background: var(--pb-encre); color: var(--pb-blanc); }
	.pb-tunnel .woocommerce-MyAccount-content { display: grid; gap: var(--pb-s4); min-width: 0; }
	.pb-tunnel :is(.woocommerce-orders-table, .woocommerce-table--order-downloads, .shop_table.order_details) :is(th, td) { padding: var(--pb-s2) var(--pb-s3); border-bottom: 1px solid var(--pb-ligne); vertical-align: middle; }
	.pb-tunnel .woocommerce-orders-table__cell-order-actions .button { min-height: var(--pb-tap); }
	.pb-tunnel .woocommerce-Addresses { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 16rem), 1fr)); gap: var(--pb-s4); }
	.pb-tunnel .woocommerce-Address { padding: var(--pb-s4); border: 1px solid var(--pb-ligne); border-radius: var(--pb-r-l); background: var(--pb-surface); }
	.pb-tunnel .woocommerce-Address address { font-style: normal; }
	.pb-tunnel .woocommerce-password-strength { margin-top: var(--pb-s1); font-size: var(--pb-fs-sm); font-weight: var(--pb-g-fort); }
	@media (min-width: 900px) {
		.pb-tunnel .u-columns.col2-set { grid-template-columns: repeat(2, minmax(0, 1fr)); }
		.pb-tunnel--compte .woocommerce:has(.woocommerce-MyAccount-navigation) { grid-template-columns: 15rem minmax(0, 1fr); }
		.pb-tunnel--compte .woocommerce:has(.woocommerce-MyAccount-navigation) > .woocommerce-notices-wrapper { grid-column: 1 / -1; }
		.pb-tunnel .woocommerce-MyAccount-navigation ul { flex-direction: column; }
		.pb-tunnel .woocommerce-MyAccount-navigation a { width: 100%; border-radius: var(--pb-r-m); }
	}

	/* ---------- Commande reçue ---------- */
	.pb-tunnel .woocommerce-order { display: grid; gap: var(--pb-s5); }
	.pb-tunnel .woocommerce-thankyou-order-received { padding: var(--pb-s4); border-left: 4px solid var(--pb-foret); border-radius: var(--pb-r-m); background: var(--pb-foret-pale); font-size: var(--pb-fs-md); font-weight: var(--pb-g-fort); }
	.pb-tunnel .woocommerce-order-overview { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 12rem), 1fr)); gap: var(--pb-s3); margin: 0; padding: 0; list-style: none; }
	.pb-tunnel .woocommerce-order-overview li { display: grid; gap: 0.15rem; padding: var(--pb-s3) var(--pb-s4); border: 1px solid var(--pb-ligne); border-radius: var(--pb-r-m); background: var(--pb-surface); color: var(--pb-texte-doux); font-size: var(--pb-fs-sm); }
	.pb-tunnel .woocommerce-order-overview strong { color: var(--pb-encre); font-size: var(--pb-fs-base); }
	.pb-tunnel :is(.woocommerce-order-details, .woocommerce-customer-details) { display: grid; gap: var(--pb-s3); }
	.pb-tunnel .woocommerce-table--order-details :is(th, td) { padding: var(--pb-s2) 0; border-bottom: 1px solid var(--pb-ligne); }
	.pb-tunnel .woocommerce-table--order-details :is(td:last-child, tfoot td) { text-align: right; }
	.pb-tunnel .woocommerce-customer-details address { font-style: normal; padding: var(--pb-s4); border: 1px solid var(--pb-ligne); border-radius: var(--pb-r-m); background: var(--pb-surface); }
	/* ---------- Audit design du 14/10/2026 (lot 6) ---------- */
	/* DSA-13 : titres des sections du paiement passés en h2 (même taille qu'avant) */
	.pb-tunnel .pb-tunnel__section { font-size: var(--pb-fs-h3); }
	.pb-tunnel h2#ship-to-different-address { font-size: var(--pb-fs-base); }
	/* DSA-14 : paiement express (Stripe) en tête, sur toute la largeur ; séparateur « — OU — » masqué s'il n'y a pas de bouton (tunnel.js) */
	.pb-tunnel--paiement form.checkout > :is(#wc-stripe-express-checkout-element, #wc-stripe-express-checkout-button-separator) { grid-column: 1 / -1; }
	.pb-tunnel--paiement form.checkout > wc-order-attribution-inputs { display: contents; }
	.pb-tunnel #wc-stripe-express-checkout-button-separator { margin: 0 !important; color: var(--pb-texte-doux); font-size: var(--pb-fs-sm); font-weight: var(--pb-g-fort); }
	.pb-tunnel #wc-stripe-express-checkout-element.pb-express-vide { display: none !important; }
	/* POT-56 : « Déjà client ? Se connecter » bien visible en tête du paiement */
	.pb-tunnel .woocommerce-form-login-toggle .woocommerce-info { justify-content: space-between; border-left-color: var(--pb-action); background: var(--pb-surface); font-weight: var(--pb-g-fort); }
	.pb-tunnel .woocommerce-form-login-toggle .showlogin { display: inline-flex; align-items: center; min-height: var(--pb-tap); padding: 0 var(--pb-s4); border: 2px solid var(--pb-encre); border-radius: var(--pb-r-m); color: var(--pb-encre); text-decoration: none; }
	.pb-tunnel .woocommerce-form-login-toggle .showlogin:hover { background: var(--pb-bois-clair); }
	.pb-tunnel #account_password_field .description { display: block; color: var(--pb-texte-doux); font-size: var(--pb-fs-sm); }
	/* DSA-19 : astérisque des champs obligatoires en encre douce (le rouge est réservé aux erreurs) */
	.pb-tunnel .form-row .required { color: var(--pb-texte-doux); }
	/* DSA-17 : au panier, le minimum de commande s'affiche à la place du bouton ; l'alerte du haut ne le répète pas */
	.pb-tunnel--panier .woocommerce-notices-wrapper .pb-alerte-erreur:not(:has(li:not([data-pb_minimum]))) { display: none; }
	/* TAL-09 : le voile de mise à jour du panier ne capte plus les clics − / + (tunnel.js les reporte) */
	.pb-tunnel .woocommerce-cart-form .blockUI.blockOverlay { pointer-events: none; }
	/* TAL-08 : transport en cours de recalcul après un changement de quantité */
	.pb-encart__resultat[aria-busy="true"] > * { opacity: 0.45; transition: opacity var(--pb-duree); }
	.pb-encart__recalcul { display: flex; align-items: center; gap: var(--pb-s2); color: var(--pb-bois-800); font-size: var(--pb-fs-sm); font-weight: var(--pb-g-fort); }
	.pb-encart__recalcul[hidden] { display: none; }
	/* DSA-18 : panier vide, titre et boutons */
	.pb-tunnel .pb-panier__vide { display: grid; gap: var(--pb-s3); }
	.pb-tunnel .pb-panier__vide .pb-vide__titre { font-size: var(--pb-fs-h3); }
	.pb-tunnel .pb-panier__vide .pb-vide__actions { display: flex; flex-wrap: wrap; gap: var(--pb-s3); margin-top: var(--pb-s3); }
	@media (max-width: 599.98px) {
		.pb-tunnel .pb-panier__vide .pb-vide__actions .pb-btn { flex: 1 1 100%; }
	}
	/* DSA-18 : étapes sur une ligne sous 420 px (numéros, libellé de l'étape en cours seulement) */
	@media (max-width: 419.98px) {
		.pb-tunnel__etapes { flex-wrap: nowrap; gap: var(--pb-s3); }
		.pb-tunnel__etapes li:not(.est-courante) > span:not(.pb-tunnel__num) { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
	}
	/* DSA-15 : ligne du panier sur téléphone, croix dans l'angle, nom et message sur toute la largeur */
	@media (max-width: 699.98px) {
		.pb-panier__ligne { position: relative; grid-template-areas: "ref ref" "pu pu" "qte total"; }
		.pb-panier__ref { padding-right: calc(var(--pb-tap) - var(--pb-s2)); }
		.pb-panier__retirer { position: absolute; top: var(--pb-s2); right: var(--pb-s2); }
	}
	/* DSA-19 : Mon compte, deux cartes de même largeur et même hauteur, boutons d'action pleine largeur */
	.pb-tunnel .u-columns .woocommerce-form-login.login { max-width: none; }
	.pb-tunnel .u-columns.col2-set > [class*="u-column"] { display: grid; grid-template-rows: auto 1fr; }
	.pb-tunnel .woocommerce-form-login .form-row:has(.woocommerce-form-login__submit) { flex-direction: column; align-items: stretch; }
	.pb-tunnel :is(.woocommerce-form-login__submit, .woocommerce-form-register__submit) { width: 100%; min-height: var(--pb-tap-confort); }
	.pb-tunnel .woocommerce-ResetPassword { max-width: 32rem; }
	/* TAL-04 : paiement ouvert avec un panier à corriger, la raison puis le retour au panier */
	.pb-tunnel .pb-paiement-bloque { margin-bottom: var(--pb-s4); }
	/* TAL-31 : adresse sans suggestion, message et recours sous le champ */
	.pb-encart__aucune { display: flex; align-items: flex-start; gap: var(--pb-s2); margin: var(--pb-s2) 0 0; padding: var(--pb-s2) var(--pb-s3); border-left: 4px solid var(--pb-bois); border-radius: var(--pb-r-s); background: var(--pb-bois-clair); font-size: var(--pb-fs-sm); }
	.pb-encart__aucune[hidden] { display: none; }
	.pb-encart__aucune .pb-icone { flex: none; width: 18px; height: 18px; margin-top: 0.1rem; color: var(--pb-foret); }
	.pb-encart__aucune a { font-weight: var(--pb-g-fort); }
	/* TAL-39 : case des conditions, le texte et l'astérisque dans le même fil (l'astérisque suit le dernier mot, à toutes les
	   largeurs) ; la case reste à gauche, alignée sur la première ligne */
	.pb-tunnel #payment .woocommerce-terms-and-conditions-wrapper .woocommerce-form__label-for-checkbox { display: block; position: relative; padding: 0.7rem 0 0.7rem calc(1.125rem + var(--pb-s3)); line-height: 1.45; }
	.pb-tunnel #payment .woocommerce-terms-and-conditions-wrapper .woocommerce-form__label-for-checkbox > input { position: absolute; left: 0; top: calc(0.7rem + (var(--pb-fs-xs) * 1.45 - 1.125rem) / 2); margin: 0; }
	/* TAL-16 : bascule HT/TTC, montants de l'ancien régime estompés jusqu'à la réponse du serveur */
	.pb-maj-regime :is(.woocommerce-cart-form, .cart_totals, .woocommerce-checkout-review-order-table, .pb-encart__resultat) :is(.amount, .tax_label, .pb-encart__tarif-prix) { opacity: 0.35; transition: opacity var(--pb-duree); }
	.pb-maj-regime { cursor: progress; }
}

/* Carte de l'encart : boutons de zoom de 44 px, hors couches pour passer devant la feuille de Leaflet */
.pb-tunnel .pb-encart__carte.leaflet-container .leaflet-bar a.leaflet-control-zoom-in,
.pb-tunnel .pb-encart__carte.leaflet-container .leaflet-bar a.leaflet-control-zoom-out { width: 44px; height: 44px; line-height: 44px; font-size: 20px; color: #2A2420; }
.pb-encart__carte .leaflet-control-zoom a:focus-visible { outline: 3px solid #2A2420; outline-offset: 2px; }
.pb-encart__carte .leaflet-control-attribution { font: 500 11px "Raleway", system-ui, sans-serif; color: #2A2420; background: rgb(255 255 255 / 0.9); }
.pb-encart__carte .leaflet-tooltip { font: 650 13px "Raleway", system-ui, sans-serif; color: #2A2420; border-radius: 6px; }
