/* Alignement de WooCommerce sur les conventions du thème.
 *
 * WooCommerce sert la boutique, le panier et la commande via ses gabarits de
 * blocs (mise en page centrée `is-layout-constrained`, classes wc-block-*) ;
 * « Mon compte » et le tunnel de connexion restent en markup classique
 * (woocommerce-*). Cette feuille reprend les conventions de base.css :
 * boutons encre plein / hover bic / radius 3px, champs sur fond blanc à filet
 * avec focus bic, étiquettes Franklin capitales, totaux en Franklin 800.
 *
 * Contraintes de la charte « la copie » :
 *  - le rouge appartient au correcteur ; il ne sert ici qu'aux erreurs de
 *    formulaire (une correction), jamais aux badges promo ni au décor ;
 *  - l'écriture manuscrite (Caveat) est proscrite dans tout le parcours d'achat.
 *
 * Chargée après les CSS de WooCommerce : le cascade suffit à spécificité égale.
 * `!important` est réservé aux propriétés que WooCommerce impose lui-même
 * (couleurs de boutons, taille des champs) et au bouton d'achat LearnDash,
 * dont la feuille se charge après celle-ci.
 */

/* ---------- fondations communes ---------- */

/* fil d'Ariane : étiquette discrète, pas le petit serif par défaut */
.woocommerce-breadcrumb,
.wc-block-breadcrumbs{
  font:600 12.5px/1.6 var(--wp--preset--font-family--titraille);
  letter-spacing:.02em;
  color:var(--wp--preset--color--mine);
  margin-bottom:14px;
}
.woocommerce-breadcrumb a,
.wc-block-breadcrumbs a{
  color:var(--wp--preset--color--mine);
  text-decoration:none;
}
.woocommerce-breadcrumb a:hover,
.wc-block-breadcrumbs a:hover{color:var(--wp--preset--color--bic)}

/* titres de gabarit (Boutique, Panier, Commander) : déjà en Franklin via les
   styles globaux ; on cale l'échelle et l'espacement */
.wp-block-query-title,
.woocommerce-products-header__title{
  font:900 clamp(34px,3.6vw,52px)/1.04 var(--wp--preset--font-family--titraille);
  letter-spacing:-.025em;
  margin:0 0 28px;
}

/* ---------- boutons ---------- */
/* toutes les variantes WooCommerce et blocs convergent vers .pj-btn */
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce .single_add_to_cart_button,
.woocommerce-Button,
.woocommerce-button,
.wc-block-components-button:not(.wc-block-components-button--is-link):not(.is-link),
.wp-block-woocommerce-product-button .wp-block-button__link{
  display:inline-flex;align-items:center;justify-content:center;
  font:700 15px/1 var(--wp--preset--font-family--titraille) !important;
  letter-spacing:0;
  background:var(--wp--preset--color--encre) !important;
  color:var(--wp--preset--color--papier) !important;
  border:1.5px solid var(--wp--preset--color--encre) !important;
  border-radius:3px !important;
  padding:14px 26px !important;
  min-height:0;
  text-transform:none;
  box-shadow:none;
  transition:background .15s ease,border-color .15s ease,color .15s ease;
}
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce #respond input#submit:hover,
.woocommerce .single_add_to_cart_button:hover,
.woocommerce-Button:hover,
.woocommerce-button:hover,
.wc-block-components-button:not(.wc-block-components-button--is-link):not(.is-link):hover,
.wp-block-woocommerce-product-button .wp-block-button__link:hover{
  background:var(--wp--preset--color--bic) !important;
  border-color:var(--wp--preset--color--bic) !important;
  color:#fff !important;
  opacity:1 !important;
}
.wc-block-components-button__text{line-height:1}

/* boutons secondaires : retour boutique, appliquer un coupon → façon ghost */
.woocommerce a.button.wc-backward,
.woocommerce .wc-block-cart__submit-container ~ * a.button,
.wc-block-components-totals-coupon__button,
.woocommerce-form-coupon .button{
  background:transparent !important;
  color:var(--wp--preset--color--encre) !important;
  border-color:var(--wp--preset--color--filet) !important;
}
.woocommerce a.button.wc-backward:hover,
.wc-block-components-totals-coupon__button:hover,
.woocommerce-form-coupon .button:hover{
  background:transparent !important;
  color:var(--wp--preset--color--bic) !important;
  border-color:var(--wp--preset--color--bic) !important;
}

/* liens-boutons (supprimer une ligne, éditer) : simple lien bic */
.wc-block-components-button.wc-block-components-button--is-link,
.wc-block-components-button.is-link,
.woocommerce a.remove{
  color:var(--wp--preset--color--bic) !important;
  text-decoration:underline;text-underline-offset:3px;
  background:transparent !important;border:none !important;
}
.woocommerce a.remove:hover{color:var(--wp--preset--color--encre) !important;background:transparent !important}

/* ---------- champs de formulaire (commun) ---------- */
/* mêmes conventions que .pj-contenu input dans base.css : blanc, filet, focus bic */
.woocommerce .input-text,
.woocommerce input[type="text"],
.woocommerce input[type="email"],
.woocommerce input[type="tel"],
.woocommerce input[type="password"],
.woocommerce input[type="number"],
.woocommerce textarea,
.woocommerce select,
.woocommerce-page .input-text,
.woocommerce-page form .form-row input.input-text,
.woocommerce-page form .form-row select,
.woocommerce-page form .form-row textarea.input-text,
.wc-block-components-text-input input,
.wc-block-components-select .wc-block-components-select__container,
.wc-block-components-quantity-selector input{
  background:var(--wp--preset--color--blanc) !important;
  border:1px solid var(--wp--preset--color--filet) !important;
  border-radius:3px !important;
  color:var(--wp--preset--color--encre);
  font:400 16px/1.4 var(--wp--preset--font-family--labeur) !important;
  padding:11px 13px !important;
}
.woocommerce .input-text:focus,
.woocommerce textarea:focus,
.woocommerce select:focus,
.wc-block-components-text-input input:focus{
  outline:none;
  border-color:var(--wp--preset--color--bic) !important;
  box-shadow:0 0 0 1px var(--wp--preset--color--bic);
}
.woocommerce ::placeholder{color:var(--wp--preset--color--mine);opacity:1}

/* avis portant un bouton (confirmer l'e-mail) : le bouton sous le texte,
   quel que soit son rang dans le DOM (WooCommerce l'imprime en premier) */
.woocommerce-info,
.woocommerce-message{display:flex;flex-direction:column;align-items:flex-start;gap:10px}
.woocommerce-info .button,
.woocommerce-message .button{float:none;display:inline-flex;order:2;margin:0}

/* libellés de champ : étiquette Franklin capitale, mine */
.woocommerce-form-row > label,
.woocommerce form .form-row label:not(.woocommerce-form__label-for-checkbox),
.wc-block-components-text-input label{
  font:700 11px/1.4 var(--wp--preset--font-family--titraille);
  letter-spacing:.12em;text-transform:uppercase;
  color:var(--wp--preset--color--mine);
}
/* le champ flottant du tunnel garde son mécanisme ; on n'en change que couleur/fonte */
.wc-block-components-text-input.is-active label,
.wc-block-components-text-input label{text-transform:none;letter-spacing:.01em;font-weight:600}
.woocommerce .required{color:var(--wp--preset--color--rouge);border:none}

/* ---------- avis (notices) ---------- */
/* on retire vert/bleu/rouge par défaut de WooCommerce ; l'erreur seule garde
   le rouge, comme une correction */
.woocommerce-message,
.woocommerce-info,
.wc-block-components-notice-banner.is-success,
.wc-block-components-notice-banner.is-info{
  background:var(--wp--preset--color--blanc);
  border:1px solid var(--wp--preset--color--filet);
  border-left:3px solid var(--wp--preset--color--bic);
  border-radius:3px;
  color:var(--wp--preset--color--encre);
  font-family:var(--wp--preset--font-family--labeur);
}
.woocommerce-error,
.wc-block-components-notice-banner.is-error,
.wc-block-components-validation-error{
  background:var(--wp--preset--color--blanc);
  border:1px solid rgba(201,58,44,.4);
  border-left:3px solid var(--wp--preset--color--rouge);
  border-radius:3px;
  color:var(--wp--preset--color--encre);
  font-family:var(--wp--preset--font-family--labeur);
}
.wc-block-components-validation-error{border:none;color:var(--wp--preset--color--rouge)}
.woocommerce-message::before,
.woocommerce-info::before{color:var(--wp--preset--color--bic)}
.woocommerce-error::before{color:var(--wp--preset--color--rouge)}
.wc-block-components-notice-banner.is-error > .wc-block-components-notice-banner__content a{color:var(--wp--preset--color--rouge)}

/* ---------- boutique : grille produits ---------- */
/* Product Collection (blocs) et gabarit classique partagent l'aspect « fiche ».
   La mise en colonnes reste gérée par WooCommerce ; on n'ajoute que le chrome. */
.woocommerce ul.products li.product,
li.wc-block-product,
.wc-block-product-template li.product,
.wc-block-grid__product{
  box-sizing:border-box;
  background:var(--wp--preset--color--blanc);
  border:1px solid var(--wp--preset--color--filet);
  border-radius:3px;
  padding:20px 20px 22px;
  transition:box-shadow .15s ease,border-color .15s ease;
}
li.wc-block-product{display:flex;flex-direction:column;height:100%}
li.wc-block-product .wp-block-woocommerce-product-button{margin-top:auto}
.woocommerce ul.products li.product:hover,
li.wc-block-product:hover,
.wc-block-product-template li.product:hover{
  border-color:rgba(28,36,56,.15);
  box-shadow:0 10px 28px rgba(28,36,56,.08);
}
.wc-block-components-product-image,
.wc-block-grid__product-image{overflow:hidden;background:var(--wp--preset--color--papier)}
.wc-block-product-template li.wc-block-product .wc-block-components-product-image{
  aspect-ratio:4/3 !important;
  height:auto !important;flex:none;
  margin-bottom:14px;
}
.wc-block-product-template li.wc-block-product .wc-block-components-product-image > a{
  display:flex;align-items:center;justify-content:center;
  width:100%;height:100%;
}
.woocommerce ul.products li.product a img,
li.wc-block-product .wc-block-components-product-image img,
.wc-block-grid__product-image img{
  width:100%;height:auto !important;
  aspect-ratio:auto !important;
  object-fit:contain !important;object-position:center;
  border-radius:2px;margin-bottom:14px;
}
.wc-block-product-template li.wc-block-product .wc-block-components-product-image img{
  height:100% !important;margin-bottom:0;
}
/* titre de produit */
.woocommerce ul.products li.product .woocommerce-loop-product__title,
li.wc-block-product .wp-block-post-title,
.wc-block-grid__product-title{
  font:700 19px/1.25 var(--wp--preset--font-family--titraille) !important;
  letter-spacing:-.01em;
  margin:0 0 8px;
}
li.wc-block-product .wp-block-post-title a{text-decoration:none;color:inherit}
li.wc-block-product .wp-block-post-title a:hover{color:var(--wp--preset--color--bic)}
/* prix en liste */
.woocommerce ul.products li.product .price,
li.wc-block-product .wc-block-components-product-price,
.wc-block-grid__product-price{
  font:800 20px/1.2 var(--wp--preset--font-family--titraille) !important;
  color:var(--wp--preset--color--encre) !important;
}
li.wc-block-product .wc-block-components-product-price{display:block;margin:6px 0 14px}
.woocommerce ul.products li.product .price del,
.wc-block-components-product-price del{color:var(--wp--preset--color--mine);opacity:.8;font-weight:600}
.woocommerce ul.products li.product .price ins,
.wc-block-components-product-price ins{text-decoration:none}

/* pastille « promo » : jamais rouge — encre discrète */
.woocommerce span.onsale,
.wc-block-components-product-sale-badge{
  background:var(--wp--preset--color--encre) !important;
  color:var(--wp--preset--color--papier) !important;
  font:700 10.5px/1 var(--wp--preset--font-family--titraille);
  letter-spacing:.12em;text-transform:uppercase;
  border-radius:2px;padding:6px 9px;min-height:0;min-width:0;
}

/* étoiles d'évaluation : bic plutôt que l'or par défaut */
.woocommerce .star-rating span::before,
.wc-block-components-product-rating .stars .star{color:var(--wp--preset--color--bic)}

/* décompte de résultats + tri */
.woocommerce-result-count,
.wc-block-product-results-count{
  font:600 13px/1.6 var(--wp--preset--font-family--titraille);
  color:var(--wp--preset--color--mine);
}
.woocommerce-ordering select,
.wc-block-product-sort-select select{max-width:280px}

/* titres de cartes : pas de césure brute au milieu d'un mot */
.woocommerce ul.products li.product .woocommerce-loop-product__title,
li.wc-block-product .wp-block-post-title,
.wc-block-grid__product-title{word-break:normal;overflow-wrap:break-word}

/* état vide de la boutique */
.wp-block-woocommerce-product-collection-no-results{
  color:var(--wp--preset--color--mine);
  font-family:var(--wp--preset--font-family--labeur);
}

/* pagination */
.woocommerce-pagination ul,
.wc-block-pagination{border:none;gap:6px;display:flex;flex-wrap:wrap;list-style:none}
.woocommerce-pagination ul li a,
.woocommerce-pagination ul li span,
.wc-block-pagination-page{
  border:1px solid var(--wp--preset--color--filet) !important;
  border-radius:3px;
  font:700 14px/1 var(--wp--preset--font-family--titraille);
  color:var(--wp--preset--color--encre);
  padding:10px 14px;background:var(--wp--preset--color--blanc);
}
.woocommerce-pagination ul li span.current,
.wc-block-pagination-page--active{
  background:var(--wp--preset--color--encre) !important;
  color:var(--wp--preset--color--papier) !important;
  border-color:var(--wp--preset--color--encre) !important;
}
.woocommerce-pagination ul li a:hover,
.wc-block-pagination-page:hover{border-color:var(--wp--preset--color--bic) !important;color:var(--wp--preset--color--bic)}

/* ---------- fiche produit (vente à la carte d'un cours) ---------- */
/* Bloc ou classique : titre Franklin 800, prix Franklin 800 22-34px,
   description en labeur, métadonnées en étiquette compacte. */
.woocommerce div.product .product_title,
.single-product .wp-block-post-title{
  font:800 clamp(30px,3.4vw,46px)/1.05 var(--wp--preset--font-family--titraille);
  letter-spacing:-.02em;margin:0 0 16px;
}
.woocommerce div.product p.price,
.woocommerce div.product span.price,
.single-product .wp-block-woocommerce-product-price,
.single-product .wc-block-components-product-price{
  font:800 clamp(22px,3vw,34px)/1.1 var(--wp--preset--font-family--titraille) !important;
  color:var(--wp--preset--color--encre) !important;
  margin:0 0 18px;
}
.woocommerce div.product .woocommerce-product-details__short-description,
.single-product .wc-block-components-product-summary,
.woocommerce-Tabs-panel{
  font:400 17px/1.65 var(--wp--preset--font-family--labeur);
  color:var(--wp--preset--color--encre-claire);
  text-align:left;
}
.woocommerce div.product .woocommerce-product-details__short-description p,
.single-product .wc-block-components-product-summary p,
.single-product .woocommerce-Tabs-panel p,
.single-product .woocommerce-Tabs-panel li{text-align:left !important;text-wrap:pretty}

/* onglet unique : la barre et le titre redondant de la description disparaissent */
.woocommerce div.product .woocommerce-tabs ul.tabs:has(li:only-child){display:none}
.woocommerce div.product .woocommerce-tabs:has(ul.tabs li:only-child) #tab-description > h2:first-child,
.woocommerce div.product .woocommerce-tabs:has(ul.tabs li:only-child) .woocommerce-Tabs-panel--description > h2:first-child{display:none}
.woocommerce-tabs .panel{padding-left:0;padding-right:0}

/* La galerie est initialement masquée par WooCommerce en attendant son script.
   L'image doit rester visible lorsque ce script ne s'initialise pas. */
.single-product .wp-block-woocommerce-product-image-gallery .woocommerce-product-gallery{
  opacity:1 !important;
}

/* métadonnées (durée, nombre de vidéos, catégorie) en étiquette compacte */
.single-product .wp-block-post-terms,
.single-product .wp-block-post-terms a,
.woocommerce div.product .product_meta,
.woocommerce div.product .product_meta a,
.single-product .wc-block-components-product-details,
.single-product .wc-block-components-product-metadata{
  font:700 10.5px/1.8 var(--wp--preset--font-family--titraille);
  letter-spacing:.12em;text-transform:uppercase;
  color:var(--wp--preset--color--mine);
}
.woocommerce div.product .product_meta a{color:var(--wp--preset--color--bic);text-decoration:none}
.single-product .wp-block-post-terms a{color:var(--wp--preset--color--bic);text-decoration:none}
.single-product .wp-block-post-terms a:hover{text-decoration:underline}

/* onglets (description / infos) */
.woocommerce div.product .woocommerce-tabs ul.tabs{border:none;padding:0}
.woocommerce div.product .woocommerce-tabs ul.tabs li{
  background:transparent;border:none;border-bottom:2px solid transparent;border-radius:0;margin:0 24px 0 0;padding:0 0 8px;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li a{
  font:700 12px/1.4 var(--wp--preset--font-family--titraille);
  letter-spacing:.12em;text-transform:uppercase;
  color:var(--wp--preset--color--mine);padding:0;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active{border-bottom-color:var(--wp--preset--color--encre)}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a{color:var(--wp--preset--color--encre)}
.woocommerce div.product .woocommerce-tabs ul.tabs::before{border-bottom:1px solid var(--wp--preset--color--filet)}

/* champ quantité de la fiche */
.woocommerce .quantity .qty{max-width:74px;text-align:center}

/* Le choix d'une formule reste lisible avant l'activation du bouton d'achat. */
.woocommerce div.product form.cart table.variations{
  width:100%;margin:4px 0 18px;border:0;
}
.woocommerce div.product form.cart table.variations th.label{
  width:42%;padding:0 16px 0 0;text-align:left;vertical-align:middle;
}
.woocommerce div.product form.cart table.variations th.label label{
  font:700 12px/1.4 var(--wp--preset--font-family--titraille);
  letter-spacing:.06em;color:var(--wp--preset--color--encre);
}
.woocommerce div.product form.cart table.variations td.value{padding:0;text-align:left}
.woocommerce div.product form.cart table.variations select{
  width:100%;min-height:46px;margin:0;
}
.woocommerce div.product form.cart .reset_variations{
  display:inline-flex;align-items:center;min-height:44px;margin-top:4px;
  font:600 13px/1.3 var(--wp--preset--font-family--titraille);
  color:var(--wp--preset--color--bic);text-underline-offset:3px;
}
.woocommerce div.product .single_variation_wrap{width:100%}

/* bouton d'achat LearnDash : sa feuille se charge après celle-ci, d'où !important.
   Le hook remplace « ajouter au panier » pour les produits de type cours ;
   on couvre les libellés courants de l'intégration. */
.learndash_checkout_button,
.wc_payment_button .button,
.btn-join,
a.ld-button,
.ld-button.learndash-woocommerce-purchase{
  display:inline-flex;align-items:center;justify-content:center;
  font:700 15px/1 var(--wp--preset--font-family--titraille) !important;
  background:var(--wp--preset--color--encre) !important;
  color:var(--wp--preset--color--papier) !important;
  border:1.5px solid var(--wp--preset--color--encre) !important;
  border-radius:3px !important;
  padding:14px 26px !important;
  text-transform:none !important;text-decoration:none !important;
  box-shadow:none !important;
}
.learndash_checkout_button:hover,
.wc_payment_button .button:hover,
.btn-join:hover,
a.ld-button:hover,
.ld-button.learndash-woocommerce-purchase:hover{
  background:var(--wp--preset--color--bic) !important;
  border-color:var(--wp--preset--color--bic) !important;
  color:#fff !important;
}

/* ---------- panier (bloc) ---------- */
.wc-block-cart__empty-cart__title{
  font:800 26px/1.2 var(--wp--preset--font-family--titraille);
  color:var(--wp--preset--color--encre);
}
/* l'émoticône géante du bloc vide n'appartient pas au système */
.wp-block-woocommerce-cart .with-empty-cart-icon::before{display:none}
/* l'état vide parle avec la voix du correcteur et renvoie vers l'offre */
.pj-panier-vide-note{
  font:600 22px/1.3 var(--wp--preset--font-family--correcteur);
  color:var(--wp--preset--color--rouge);
  transform:rotate(-1.5deg);
}

/* note de réassurance sous le tunnel */
.pj-commande-note{
  margin:20px 0 0;
  font:italic 400 14.5px/1.6 var(--wp--preset--font-family--labeur);
  color:var(--wp--preset--color--mine);
}
.pj-commande-note a{color:var(--wp--preset--color--bic)}
/* colonne des totaux : une seule carte qui porte coupon, total et bouton */
.wp-block-woocommerce-cart-totals-block{
  background:var(--wp--preset--color--blanc);
  border:1px solid var(--wp--preset--color--filet);
  border-radius:3px;
  padding:6px 18px 18px;
}
.wc-block-cart .wc-block-cart__sidebar .wc-block-components-totals-wrapper,
.wc-block-cart__sidebar .wp-block-woocommerce-cart-order-summary-block{
  background:transparent;border:none;border-radius:0;
}
.wc-block-cart__submit{margin-top:14px}

/* Le panier reste textuel ; le résumé de commande conserve une petite
   vignette et son indicateur de quantité pour identifier chaque ligne. */
.wc-block-cart-item__image{display:none !important}
table.wc-block-cart-items td.wc-block-cart-item__product{width:100%}
.wc-block-cart-item__product .wc-block-components-product-metadata{display:none !important}
.wc-block-components-order-summary .wc-block-components-order-summary-item__image{
  width:44px;flex:0 0 44px;margin-top:6px;padding-bottom:12px;
}
.wc-block-components-order-summary .wc-block-components-order-summary-item__image > img{
  width:44px;max-width:44px;height:44px;object-fit:contain;
}
.wc-block-components-order-summary-item__description{
  display:flex !important;flex:1 1 auto;min-width:0;
  padding:4px 12px 12px !important;
}
/* La description longue alourdit le tunnel ; les attributs de variation,
   indispensables au contrôle de la commande, restent affichés. */
.wc-block-components-order-summary-item__description .wc-block-components-product-metadata__description{
  display:none !important;
}
.wc-block-components-order-summary-item__description .wc-block-components-product-details{
  margin:2px 0 0;font-size:12.5px;line-height:1.4;
}
/* table des lignes */
.wc-block-cart-items,
.wc-block-cart-items__header{
  border-color:var(--wp--preset--color--filet) !important;
  font-family:var(--wp--preset--font-family--titraille);
}
.wc-block-cart-items__header{
  font:700 10.5px/1.4 var(--wp--preset--font-family--titraille);
  letter-spacing:.12em;text-transform:uppercase;
  color:var(--wp--preset--color--mine);
}
.wc-block-cart-items__row{border-bottom:1px solid var(--wp--preset--color--filet) !important}
.wc-block-cart-item__image img{border:1px solid var(--wp--preset--color--filet);border-radius:2px}
.wc-block-components-product-name,
a.wc-block-components-product-name{
  font:700 17px/1.3 var(--wp--preset--font-family--titraille) !important;
  color:var(--wp--preset--color--encre) !important;text-decoration:none !important;
}
.wc-block-components-product-name:hover,
a.wc-block-components-product-name:hover{color:var(--wp--preset--color--bic) !important}
.wc-block-cart-item__prices .wc-block-components-product-price,
.wc-block-cart-item__total .wc-block-components-product-price{
  font:700 16px/1.3 var(--wp--preset--font-family--titraille) !important;
  color:var(--wp--preset--color--encre) !important;
}
.wc-block-components-product-metadata{
  font-family:var(--wp--preset--font-family--labeur);
  color:var(--wp--preset--color--mine);
}

/* blocs de totaux vides (paiement express, coupons) : pas d'espace fantôme */
.wc-block-components-totals-wrapper:empty,
.wp-block-woocommerce-cart-express-payment-block:empty{display:none;padding:0;margin:0}
/* « Total panier » doublonne « Total estimé » deux lignes plus bas */
h2.wp-block-woocommerce-cart-order-summary-heading-block,
.wp-block-woocommerce-cart-order-summary-heading-block{display:none !important}

/* sélecteur de quantité */
.wc-block-components-quantity-selector{
  border:1px solid var(--wp--preset--color--filet) !important;
  border-radius:3px;
}
.wc-block-components-quantity-selector__button{
  color:var(--wp--preset--color--encre) !important;
  font-family:var(--wp--preset--font-family--titraille);
}
.wc-block-components-quantity-selector__button:hover{color:var(--wp--preset--color--bic) !important}
.wc-block-components-quantity-selector input{border:none !important;box-shadow:none !important;padding:8px !important}

/* récapitulatif et totaux */
.wc-block-cart__totals-title,
.wc-block-components-totals-item__label{
  font:700 10.5px/1.6 var(--wp--preset--font-family--titraille);
  letter-spacing:.12em;text-transform:uppercase;
  color:var(--wp--preset--color--mine);
}
.wc-block-components-totals-item__value{
  font:600 16px/1.4 var(--wp--preset--font-family--labeur);
  color:var(--wp--preset--color--encre);
}
.wc-block-components-totals-footer-item .wc-block-components-totals-item__value{
  font:800 24px/1.1 var(--wp--preset--font-family--titraille) !important;
  color:var(--wp--preset--color--encre) !important;
}
.wc-block-components-totals-item__description{
  font-family:var(--wp--preset--font-family--labeur);color:var(--wp--preset--color--mine);
}
/* coupon repliable */
.wc-block-components-panel__button{
  font:700 12px/1.4 var(--wp--preset--font-family--titraille) !important;
  letter-spacing:.06em;color:var(--wp--preset--color--bic) !important;
}

/* ---------- commande / tunnel (bloc checkout) ---------- */
/* le rythme vertical se resserre : le tunnel doit se lire d'un coup d'œil */
.woocommerce-checkout .pj-contenu{padding-top:clamp(28px,3.5vw,44px)}
.woocommerce-checkout .pj-contenu .entry-title{margin-bottom:10px}
.woocommerce-cart .pj-contenu{padding-top:clamp(28px,3.5vw,44px)}
.woocommerce-cart .pj-contenu .entry-title{margin-bottom:16px}
.wc-block-components-checkout-step{padding-bottom:10px}

/* étapes numérotées : titres Franklin ; aucune écriture manuscrite ici */
.wc-block-components-checkout-step__title,
.wc-block-components-title{
  font:800 20px/1.25 var(--wp--preset--font-family--titraille) !important;
  letter-spacing:-.01em;color:var(--wp--preset--color--encre) !important;
}
.wc-block-components-checkout-step__description{
  font-family:var(--wp--preset--font-family--labeur);color:var(--wp--preset--color--mine);
}
.wc-block-components-checkout-step{
  border-color:var(--wp--preset--color--filet) !important;
}
/* récap de commande dans la colonne latérale */
.wc-block-checkout__sidebar .wc-block-components-order-summary,
.wc-block-checkout__sidebar > .wc-block-components-totals-wrapper{
  background:var(--wp--preset--color--blanc);
  border:1px solid var(--wp--preset--color--filet);
  border-radius:3px;
}
.wc-block-components-order-summary-item__title,
.wc-block-components-order-summary-item .wc-block-components-product-name{
  font:700 15px/1.3 var(--wp--preset--font-family--titraille) !important;
  color:var(--wp--preset--color--encre);max-width:none;
}
.wc-block-components-order-summary-item__quantity{
  background:var(--wp--preset--color--encre);color:var(--wp--preset--color--papier);
  font-family:var(--wp--preset--font-family--titraille);
}
.wc-block-components-order-summary-item__image img{border:1px solid var(--wp--preset--color--filet);border-radius:2px}
/* bouton « passer commande » : primaire pleine largeur, hérite de .pj-btn */
.wc-block-components-checkout-place-order-button{width:100%}
/* méthodes de paiement */
.wc-block-components-radio-control__option{border-color:var(--wp--preset--color--filet) !important}
.wc-block-components-radio-control__label{font-family:var(--wp--preset--font-family--labeur)}

/* Le récapitulatif repliable reste disponible en tête du formulaire mobile.
   La colonne basse se limite aux totaux afin de ne pas répéter les produits. */
@container (max-width:699px){
  .wc-block-checkout__sidebar .wc-block-components-checkout-order-summary__title,
  .wc-block-checkout__sidebar .wp-block-woocommerce-checkout-order-summary-cart-items-block{display:none}
}

/* ---------- mon compte ---------- */
/* le contenu compte vit dans main.pj-contenu > .entry-content : les champs
   héritent déjà des conventions de base.css ; on cadre la boîte et la nav. */

/* boîte de connexion / inscription : filet + fond blanc, radius 3px */
.woocommerce form.login,
.woocommerce form.register{
  background:var(--wp--preset--color--blanc);
  border:1px solid var(--wp--preset--color--filet);
  border-radius:3px;
  padding:28px 30px;
  max-width:520px;
}
.woocommerce-account h2,
.woocommerce-account .u-column1 > h2,
.woocommerce-account .u-column2 > h2{
  font:800 22px/1.2 var(--wp--preset--font-family--titraille);
  margin:0 0 18px;
}
.woocommerce-form-login__submit,
.woocommerce-form-register__submit{width:100%;margin-top:4px}
.woocommerce-form-login__rememberme{
  font:400 14px/1.5 var(--wp--preset--font-family--labeur);
  color:var(--wp--preset--color--mine);text-transform:none;letter-spacing:0;
}
.woocommerce-LostPassword a{
  color:var(--wp--preset--color--bic);
  font:600 14.5px/1 var(--wp--preset--font-family--titraille);
}

/* tableau de bord (connecté) : nav en colonne + contenu ; :has cible l'écran
   avec navigation, sans toucher au tunnel de connexion */
.woocommerce-account .entry-content:has(.woocommerce-MyAccount-navigation){max-width:1000px}
.woocommerce-account .woocommerce:has(.woocommerce-MyAccount-navigation){
  display:grid;
  grid-template-columns:minmax(180px,220px) 1fr;
  gap:clamp(28px,4vw,56px);
  align-items:start;
}
/* le wrapper d'avis (souvent vide) précède la nav : sans placement explicite,
   il occupe la première cellule et décale toute la grille */
.woocommerce-account .woocommerce:has(.woocommerce-MyAccount-navigation) > .woocommerce-notices-wrapper{grid-column:1/-1;grid-row:1}
.woocommerce-account .woocommerce > .woocommerce-MyAccount-navigation{grid-column:1;grid-row:2}
.woocommerce-account .woocommerce > .woocommerce-MyAccount-content{grid-column:2;grid-row:2}
/* neutralise la mise en page flottée 30/68 % du CSS WooCommerce historique */
.woocommerce-account .woocommerce > .woocommerce-MyAccount-navigation,
.woocommerce-account .woocommerce > .woocommerce-MyAccount-content{float:none;width:100%}
.woocommerce-MyAccount-navigation ul{margin:0;padding:0;list-style:none;border-top:1.5px solid var(--wp--preset--color--encre)}
.woocommerce-MyAccount-navigation li{margin:0;border-bottom:1px solid var(--wp--preset--color--filet)}
.woocommerce-MyAccount-navigation li a{
  display:block;padding:13px 4px;
  font:700 12px/1.4 var(--wp--preset--font-family--titraille);
  letter-spacing:.1em;text-transform:uppercase;
  color:var(--wp--preset--color--encre);text-decoration:none;
}
.woocommerce-MyAccount-navigation li a:hover{color:var(--wp--preset--color--bic)}
.woocommerce-MyAccount-navigation li.is-active a{color:var(--wp--preset--color--bic);text-decoration:none}
.woocommerce-MyAccount-navigation li.is-active{border-bottom-color:var(--wp--preset--color--bic)}
.woocommerce-MyAccount-content{
  font:400 16px/1.65 var(--wp--preset--font-family--labeur);
  color:var(--wp--preset--color--encre);
}
.woocommerce-MyAccount-content a:not(.button){color:var(--wp--preset--color--bic)}

/* tableaux (commandes, téléchargements, adresses) : filets fins sur blanc */
.woocommerce table.shop_table,
.woocommerce-orders-table,
.woocommerce table.my_account_orders{
  border:1px solid var(--wp--preset--color--filet) !important;
  border-radius:3px;border-collapse:collapse;
  background:var(--wp--preset--color--blanc);
}
.woocommerce table.shop_table thead th,
.woocommerce table.shop_table th{
  font:700 10.5px/1.4 var(--wp--preset--font-family--titraille) !important;
  letter-spacing:.12em;text-transform:uppercase;
  color:var(--wp--preset--color--mine);
  background:var(--wp--preset--color--papier);
  padding:12px 14px;border:none;
}
.woocommerce table.shop_table td{
  border-top:1px solid var(--wp--preset--color--filet) !important;
  padding:12px 14px;
  font-family:var(--wp--preset--font-family--labeur);
  color:var(--wp--preset--color--encre);
}
.woocommerce table.shop_table tfoot th,
.woocommerce table.shop_table tfoot td{
  font-family:var(--wp--preset--font-family--titraille);
  font-weight:700;
}
/* statut de commande : étiquette compacte, jamais rouge décoratif */
.woocommerce-orders-table__cell-order-status{
  font:700 10.5px/1.6 var(--wp--preset--font-family--titraille);
  letter-spacing:.1em;text-transform:uppercase;color:var(--wp--preset--color--mine);
}

/* ---------- responsive ---------- */

@media (max-width:781px){
  .woocommerce-account .woocommerce:has(.woocommerce-MyAccount-navigation){
    grid-template-columns:1fr;gap:24px;
  }
  /* les placements explicites de la grille large forceraient une 2e colonne */
  .woocommerce-account .woocommerce > .woocommerce-MyAccount-navigation{grid-column:1;grid-row:2}
  .woocommerce-account .woocommerce > .woocommerce-MyAccount-content{grid-column:1;grid-row:3}
  .woocommerce-MyAccount-navigation{margin-bottom:8px}
  .woocommerce-MyAccount-navigation ul{
    display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;
    border-top:0;
  }
  .woocommerce-MyAccount-navigation li{
    border:1px solid var(--wp--preset--color--filet);border-radius:3px;
  }
  .woocommerce-MyAccount-navigation li a{
    display:flex;align-items:center;min-height:44px;box-sizing:border-box;
    padding:9px 11px;font-size:11.5px;letter-spacing:.045em;
  }
  .woocommerce-MyAccount-navigation li.is-active{
    border-color:var(--wp--preset--color--encre);
    background:var(--wp--preset--color--encre);
  }
  .woocommerce-MyAccount-navigation li.is-active a{color:var(--wp--preset--color--papier)}
  .woocommerce-MyAccount-navigation li a:focus-visible{
    outline:2px solid var(--wp--preset--color--bic);outline-offset:2px;
  }
}

@media (max-width:640px){
  .wp-block-query-title{font-size:clamp(30px,8vw,38px)}
  .woocommerce form.login,
  .woocommerce form.register{padding:22px 18px}
  .woocommerce a.button,
  .woocommerce button.button,
  .woocommerce input.button,
  .wc-block-components-button:not(.is-link){width:100%;box-sizing:border-box}
  .woocommerce table.shop_table td{overflow:hidden}
  /* catalogue tablette : deux colonnes, outils de tri qui replient */
  .wc-block-product-template{grid-template-columns:repeat(2,minmax(0,1fr)) !important}
  .pj-boutique-outils{flex-wrap:wrap;gap:8px 16px}
  .woocommerce-ordering select,
  .wc-block-product-sort-select select{max-width:100%}
  /* lignes du panier : le prix respire à droite du titre */
  .wc-block-cart-item__prices,
  .wc-block-cart-item__total{margin-left:10px}
  /* le numéro de commande (th de ligne) doit rester visible en cartes empilées */
  .woocommerce table.my_account_orders th.woocommerce-orders-table__cell-order-number{
    display:block !important;text-align:left;
    padding:12px 14px 0;border:none;
    background:var(--wp--preset--color--blanc);
  }
  /* les tableaux passent en cartes empilées via le responsive natif de
     WooCommerce (woocommerce-smallscreen.css) ; on garde les filets clairs */
  .woocommerce table.shop_table tbody tr{border-bottom:1px solid var(--wp--preset--color--filet)}
  .wc-block-cart__submit .wc-block-components-button{width:100%}
}

@media (max-width:600px){
  /* Une seule carte laisse respirer titres, prix et actions sur téléphone. */
  .wc-block-product-template{grid-template-columns:minmax(0,1fr) !important}
  .woocommerce ul.products[class*="columns-"]{
    display:grid;grid-template-columns:minmax(0,1fr);gap:18px;
  }
  .woocommerce ul.products[class*="columns-"] li.product{
    float:none;width:auto !important;margin:0 !important;
  }
  li.wc-block-product .wp-block-woocommerce-product-button,
  li.wc-block-product .wp-block-woocommerce-product-button .wp-block-button__link,
  .woocommerce ul.products li.product .button{width:100%;box-sizing:border-box}

  .woocommerce div.product form.cart table.variations,
  .woocommerce div.product form.cart table.variations tbody,
  .woocommerce div.product form.cart table.variations tr,
  .woocommerce div.product form.cart table.variations th,
  .woocommerce div.product form.cart table.variations td{
    display:block;width:100%;box-sizing:border-box;
  }
  .woocommerce div.product form.cart table.variations th.label{padding:0 0 7px}
  .woocommerce div.product form.cart table.variations td.value{padding:0 0 4px}
  .single-product .wp-block-woocommerce-add-to-cart-form,
  .single-product .wp-block-woocommerce-add-to-cart-form form.cart,
  .single-product .wp-block-woocommerce-add-to-cart-form .variations_button{
    width:100%;box-sizing:border-box;
  }
  .wp-block-woocommerce-add-to-cart-form form.cart > .single_add_to_cart_button,
  .wp-block-woocommerce-add-to-cart-form .variations_button > .single_add_to_cart_button{
    grid-column:1/-1;justify-self:stretch;width:100%;box-sizing:border-box;
  }
  .single-product .learndash_checkout_button,
  .single-product .wc_payment_button .button,
  .single-product .btn-join,
  .single-product a.ld-button,
  .single-product .ld-button.learndash-woocommerce-purchase{
    width:100%;box-sizing:border-box;
  }
}

/* Panier, commande, confirmation : la colonne commerce est plus large que le labeur. */
.pj-contenu .entry-content.pj-commerce{max-width:1100px}
.pj-boutique-outils{margin:6px 0 22px}

/* Entête minimal du tunnel : retour panier toujours visible */
.pj-lien-retour{
  font:600 14.5px/1 var(--wp--preset--font-family--titraille);
  color:inherit;
  text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:1px;
}
.pj-lien-retour:hover{color:var(--wp--preset--color--bic)}

/* Fiche produit : le gabarit fournit déjà ses marges, sans second retrait. */
.single-product .woocommerce-tabs,
.single-product section.related,
.single-product .woocommerce-notices-wrapper{
  max-width:none;margin-left:0;margin-right:0;padding-left:0;padding-right:0;box-sizing:border-box;
}
div.product .quantity{display:none}
div.product form.cart .single_add_to_cart_button{margin-left:0}
.woocommerce-tabs .panel h2:first-of-type{font-size:22px}
section.related>h2{font-size:22px;margin:34px 0 18px}
