/*
Theme Name: PAIN LIBRE
Description: Vitrine et boutique PAIN LIBRE.
Template: twentytwentyfive
Version: 0.8.40
Text Domain: pain-libre
Requires at least: 6.7
Requires PHP: 8.3
*/

:root { --painlibre-border: #dcc8b5; }
.fusion-editorial a.product-card__media { display: block; }
.fusion-editorial .product-card__link { color: inherit; text-decoration: none; }
.fusion-editorial .product-card__link:hover { text-decoration: underline; text-underline-offset: 0.2em; }
.fusion-editorial .product-card__link:focus-visible { outline: 3px solid #6b4f3a; outline-offset: -3px; border-radius: 3px; }
.painlibre-presentation-notice { padding: .75rem; background: #f1e7da; border-left: 3px solid #6b4f3a; }
@media (min-width: 782px) {
  .single-product main > .wp-block-columns:has(> .wp-block-column .woocommerce-product-gallery) {
    display: grid;
    grid-template-columns: minmax(0, 380px) minmax(0, 1fr);
    column-gap: clamp(1.75rem, 4.7vw, 3rem);
  }
  .single-product main > .wp-block-columns:has(> .wp-block-column .painlibre-presentation-notice) {
    grid-template-columns: minmax(0, 380px) minmax(min(38rem, 75%), 1fr);
  }
}
@media (min-width: 782px) and (max-width: 899px) {
  .painlibre-presentation-notice { font-size: 1rem; }
}
.painlibre-product-section + .painlibre-product-section { margin-top: 2.5rem; }
@media (min-width: 768px) {
  .woocommerce-product-attributes th { width: 28%; overflow-wrap: normal; word-break: normal; }
}
.painlibre-checkout-terms-dialog { max-width: min(850px, calc(100vw - 2rem)); max-height: 85vh; overflow: auto; box-sizing: border-box; padding: 1.5rem; color: inherit; background: var(--wp--preset--color--base, #fcfaf4); border: 1px solid var(--painlibre-border); }
.painlibre-checkout-terms-dialog::backdrop { background: rgb(0 0 0 / 45%); }
/* Le transport natif vaut zéro ; les frais métier sont une ligne distincte. */
#pickup-options label:has(input[value^="painlibre_pickup:"]) .wc-block-components-radio-control__secondary-label { display: none; }
html { scroll-padding-top: 2rem; }
.wc-block-checkout__contact-fields .wc-block-checkout__guest-checkout-notice { display: none; }
.wc-block-checkout__create-account:has(.painlibre-account-login) { display: flex; flex-wrap: wrap; align-items: center; column-gap: .35em; row-gap: .25em; font-size: var(--wp--preset--font-size--small, 14px); line-height: 20px; }
.wc-block-checkout__create-account:has(.painlibre-account-login) > label { font-size: inherit; line-height: inherit; }
.painlibre-account-login { font-size: inherit; line-height: inherit; white-space: nowrap; }
.wc-block-checkout__contact-fields:has(.painlibre-account-login) .wc-block-checkout__login-prompt { display: none; }
body {
  overflow-wrap: anywhere;
  background-image: linear-gradient(var(--wp--preset--color--base, #f7f1e8), #efe3d2);
  background-repeat: no-repeat;
}
.wp-site-blocks { padding-top: 0; padding-bottom: 0; }
.painlibre-header, .painlibre-footer { max-width: 1120px; margin-inline: auto; padding: 1.25rem 0; }
.painlibre-header { display: flex; align-items: center; justify-content: space-between; gap: 1rem 2rem; flex-wrap: wrap; border-bottom: 1px solid var(--painlibre-border); }
.painlibre-brand { font-size: 1.5rem; font-weight: 700; text-decoration: none; }
.painlibre-header nav { display: flex; flex-wrap: wrap; gap: .25rem 1.25rem; }
.painlibre-header nav a { display: inline-flex; align-items: center; min-height: 44px; text-underline-offset: .25em; }
.painlibre-footer { margin-top: 3rem; border-top: 1px solid var(--painlibre-border); font-size: .9rem; }
.wp-site-blocks > main { margin-top: 2.5rem; min-height: 45vh; }
:where(a, button, input, select, textarea, [tabindex]):focus-visible { outline: 3px solid #8a4918 !important; outline-offset: 3px; }
:where(input, select, textarea) { font: inherit; }
.woocommerce .button, .woocommerce button.button, .woocommerce a.button, .wp-element-button, .wc-block-components-button { border-radius: 4px; }
.woocommerce .button, .woocommerce button.button, .woocommerce a.button { background: #6a574b; color: #fff; padding: .85em 1.2em; line-height: 1.4; }
.woocommerce .button:hover, .woocommerce button.button:hover, .woocommerce a.button:hover { background: #553d2d; color: #fff; }
.woocommerce ul.products { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2rem; padding: 0; }
.woocommerce ul.products::before, .woocommerce ul.products::after { display: none; }
.woocommerce ul.products li.product { width: auto !important; margin: 0 !important; float: none; padding-bottom: 1.5rem; }
.woocommerce ul.products li.product .woocommerce-loop-product__title { font-size: 1.25rem; line-height: 1.4; }
.woocommerce ul.products li.product .price { color: #6a574b; font-size: 1.125rem; }
.woocommerce ul.products li.product a img { max-height: 240px; object-fit: contain; background: #f1e7da; }
.woocommerce div.product .product_title { font-size: clamp(1.75rem, 4vw, 2.5rem); }
.woocommerce div.product p.price { color: #6a574b; }
.woocommerce .quantity .qty { min-height: 44px; min-width: 4rem; }
.woocommerce-breadcrumb { line-height: 1.6; }
.wc-block-cart, .wc-block-checkout { font-size: 1rem; }
.wc-block-components-notice-banner { line-height: 1.6; }
.wc-block-components-product-name { line-height: 1.5; }
@media (max-width: 600px) {
 .painlibre-header { gap: .5rem; }
 .painlibre-header nav { width: 100%; justify-content: space-between; gap: .25rem .75rem; }
 .wp-site-blocks > main { margin-top: 1.5rem; }
 .woocommerce ul.products { grid-template-columns: minmax(0, 1fr); gap: 1.5rem; }
 .woocommerce .woocommerce-result-count, .woocommerce .woocommerce-ordering { float: none; margin-bottom: 1rem; }
 .woocommerce .woocommerce-ordering select { max-width: 100%; min-height: 44px; }
}
/* Catalogue Blocks : conserver une grille compacte même sans photo de démonstration. */
.wp-block-woocommerce-product-template { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; gap: 2rem !important; }
.wp-block-woocommerce-product-template .wp-block-post-title { font-size: 1.25rem; line-height: 1.4; }
.wp-block-woocommerce-product-template > li { padding: 1.5rem; border: 1px solid var(--painlibre-border); border-radius: 4px; }
@media (max-width: 600px) {
 .wp-block-woocommerce-product-template { grid-template-columns: minmax(0, 1fr) !important; gap: 1rem !important; }
}
/* Les produits pilotes n’ont pas de photo : éviter un grand emplacement vide. */
.woocommerce div.product:has(.woocommerce-product-gallery__image--placeholder) .summary { float: none; width: 100%; max-width: 48rem; }
.woocommerce div.product .product_meta { display: none; }

.painlibre-header, .painlibre-footer { width: calc(100% - 2rem); box-sizing: border-box; }
.single-product .taxonomy-product_cat, .single-product .wp-block-woocommerce-breadcrumbs { display: none; }

@media (max-width: 360px) {
 .wc-block-cart .wc-block-cart-item__image { display: none; }
 .wc-block-cart .wc-block-cart-items { width: 100%; }
 .wc-block-cart .wc-block-cart-items__row { grid-template-columns: minmax(0, 1fr) auto !important; column-gap: .75rem !important; }
 .wc-block-cart .wc-block-cart-item__product { grid-column: 1 !important; grid-row: 1 !important; }
 .wc-block-cart .wc-block-cart-item__total { grid-column: 2 !important; grid-row: 1 !important; }
}
.woocommerce ul.products li.product { padding: 1.5rem; border: 1px solid var(--painlibre-border); border-radius: 4px; box-sizing: border-box; }

/* Typographie : priorité à la lecture sur tous les parcours. */
body { font-family: Arial, Helvetica, sans-serif; font-size: 18px; font-weight: 400; }
.wp-site-blocks { --wp--preset--font-family--system: Arial, Helvetica, sans-serif; }
.painlibre-header nav a, .wc-block-cart, .wc-block-checkout { font-size: 1.125rem; font-weight: 400; }
.wp-block-woocommerce-product-template .wp-block-post-title, .woocommerce ul.products li.product .woocommerce-loop-product__title { font-size: 1.375rem; font-weight: 600; }
/* Noms plus lisibles dans la boutique, y compris les blocs à taille prédéfinie. */
.home .wp-block-woocommerce-product-template .wp-block-post-title,
.post-type-archive-product .wp-block-woocommerce-product-template .wp-block-post-title,
.post-type-archive-product.woocommerce ul.products li.product .woocommerce-loop-product__title { font-size:1.75rem !important; line-height:1.3 !important; }
/* Les deux grilles commerciales seulement ; ni cartes éditoriales ni produits similaires. */
.painlibre-commerce-grid main .wp-block-woocommerce-product-template .wp-block-post-title {
  font-size: clamp(1.5rem, 1.15rem + 0.7vw, 1.75rem) !important;
  line-height: 1.3 !important;
}
/* Respirer après les seules suggestions de fiche, sans trou sur les présentations sans grille. */
body.single-product main > .wp-block-woocommerce-product-collection { margin-bottom: clamp(2rem, 4vw, 4rem); }
.wp-element-button, .wc-block-components-button, .woocommerce .button { font-size: 1.0625rem; font-weight: 600; }
.painlibre-cart-list { display:none; }
.painlibre-cart-list:has(.woocommerce-mini-cart) { display:block; position:fixed; right:0; top:0; bottom:0; width:320px; box-sizing:border-box; background:#fff; border-left:2px solid #dcc8b5; padding:24px; z-index:90; overflow-y:auto; box-shadow:-4px 0 18px #0001; }
.painlibre-cart-list h2 { font-size:1.4rem; margin:0 0 1.5rem; }
.painlibre-cart-list ul { list-style:none; padding:0; }
.painlibre-cart-list li { border-bottom:1px solid #dcc8b5; padding:1rem 0; }
.painlibre-cart-list img { width:48px; height:48px; object-fit:contain; float:right; }
.painlibre-cart-list a { font-weight:600; }
.painlibre-cart-list .remove { display:inline-block; margin-right:.5rem; }
.painlibre-cart-list .quantity { display:block; margin-top:.5rem; }
.painlibre-cart-list .buttons a { display:block; padding:.75rem; margin-top:.75rem; background:#6a574b; color:white; text-align:center; border-radius:4px; }
.painlibre-cart-toggle { display:none; }
@media(min-width:1000px) {
 body.painlibre-side-cart-page:has(.painlibre-cart-list .woocommerce-mini-cart) { padding-right:320px; }
 .admin-bar .painlibre-cart-list { top:32px; }
}
@media(max-width:999px) {
 .painlibre-cart-list:has(.woocommerce-mini-cart) { top:auto; width:100%; bottom:0; padding:12px 16px; border-left:0; border-top:2px solid #dcc8b5; max-height:70vh; }
 .painlibre-cart-toggle { display:block; background:#6a574b; color:white; padding:12px; width:100%; border:0; font:600 18px Arial,sans-serif; }
 .painlibre-cart-list h2, .painlibre-cart-list .widget_shopping_cart_content { display:none; }
 .painlibre-cart-list.is-open .widget_shopping_cart_content { display:block; }
 body.painlibre-side-cart-page:has(.painlibre-cart-list .woocommerce-mini-cart) { padding-bottom:90px; }
}

/* Ligne produit, puis quantité/prix et suppression alignés. */
.painlibre-cart-list li { display:grid; grid-template-columns:minmax(0,1fr) 44px; gap:12px 4px; align-items:center; }
.painlibre-cart-list li > a:not(.remove), .painlibre-cart-list li > dl { grid-column:1 / -1; }
.painlibre-cart-list li > .quantity { grid-row:2; grid-column:1; display:flex; align-items:center; gap:8px; margin:0; }
.painlibre-cart-list li > .remove { grid-row:2; grid-column:2; display:inline-flex; align-items:center; justify-content:center; min-height:44px; margin:0; font-size:26px; }
.painlibre-cart-quantity { width:72px; min-height:44px; box-sizing:border-box; font-size:18px; }
.painlibre-cart-quantity::-webkit-inner-spin-button { opacity:1; }
.painlibre-cart-error { color:#9b1c1c; }
.painlibre-cart-list li > a:not(.remove) { grid-row:1; }

/* Liste compacte sans réduire les cibles des contrôles. */
.painlibre-cart-list li { padding:6px 0; row-gap:2px; }
.painlibre-cart-list li > a:not(.remove) { line-height:1.25; }
.painlibre-cart-list li img { width:32px; height:32px; }

/* Emplacements des futures photos, fournis par WooCommerce. */
.wp-block-woocommerce-product-image { max-width:220px; margin-inline:auto; }
.wp-block-woocommerce-product-template .wp-block-woocommerce-product-image { width:100%; max-width:none; margin-inline:0; }
.wp-block-woocommerce-product-image img { background:#f1e7da; }
.woocommerce div.product .woocommerce-product-gallery { max-width:380px; }

/* Produits plus légers et suppression circulaire centrée. */
.painlibre-cart-list li > a:not(.remove) { font-weight:400 !important; }
.painlibre-cart-list li > a.remove { width:44px; height:44px; min-width:44px; max-width:44px; min-height:44px; max-height:44px; box-sizing:border-box; padding:0; border-radius:50%; line-height:1; font-family:Arial,Helvetica,sans-serif; font-size:26px; font-weight:400; display:flex; align-items:center; justify-content:center; align-self:center; flex-shrink:0; }

.painlibre-cart-list li > a.remove { display:flex !important; font-weight:400 !important; line-height:1 !important; }

/* Noms plus compacts, cercle visuel de 24 px dans une cible de 44 px. */
.painlibre-cart-list li > a:not(.remove) { font-size:16px; line-height:1.3; }
.painlibre-cart-list li > a.remove { font-size:20px; background:transparent !important; }
.painlibre-cart-list li > a.remove:hover { background:radial-gradient(circle at center, #b32d2e 0 12px, transparent 12.5px) !important; }

.painlibre-cart-list li > .quantity, .painlibre-cart-list .painlibre-cart-quantity { font-size:16px; }

.painlibre-cart-list .painlibre-cart-quantity { width:60px; height:32px; min-height:32px; padding:2px 4px; }

/* Signature graphique reprise de painlibre.fr le 30 octobre 2026. */
@font-face { font-family:PainLibreInter; src:url('assets/inter-latin.woff2') format('woff2'); font-style:normal; font-weight:400 700; font-display:swap; }
.painlibre-header { padding:1rem 0; }
.painlibre-brand { display:inline-flex; align-items:center; gap:.8rem; width:fit-content; }
.painlibre-brand-logo { display:block; width:auto; height:clamp(4rem,10vw,6rem); flex-shrink:0; }
.painlibre-brand-tagline { color:#6a574b; display:flex; flex-direction:column; gap:.06rem; font-family:PainLibreInter,'Helvetica Neue',Arial,sans-serif; font-size:1rem; font-weight:400; line-height:1.2; letter-spacing:.02em; white-space:nowrap; }
.painlibre-header nav a { color:#6a574b; }
.painlibre-cart-list:has(.woocommerce-mini-cart) { background:#fffaf4; }
.wp-block-woocommerce-product-template > li, .woocommerce ul.products li.product { background:#fffaf4; }
@media(max-width:600px) {
 .painlibre-header { gap:1rem; }
 .painlibre-header nav { width:auto; margin-left:auto; justify-content:flex-end; }
}
@media(max-width:479px) {
 .painlibre-brand { gap:0; }
 .painlibre-brand-tagline { display:none; }
}
.painlibre-brand { flex-shrink:0; }
.painlibre-brand-logo { width:clamp(73px,11.4vw,109.47px); min-width:73px; height:auto; }

/* Garder ensemble nombre et unité malgré overflow-wrap hérité. */
#pickup-options .painlibre-hour { display:inline-block; white-space:nowrap; overflow-wrap:normal; word-break:normal; }

/* Choix du format et ajout directement depuis les cartes du catalogue. */
.painlibre-catalogue-order { display:flex; flex-direction:column; gap:.45rem; margin-top:1rem; text-align:left; }
.painlibre-catalogue-order label { font-size:1rem; }
.painlibre-catalogue-order select { width:100%; max-width:100%; min-width:0; min-height:44px; font-size:1rem; padding:.4rem; box-sizing:border-box; }
.painlibre-catalogue-order-actions { display:flex; flex-wrap:wrap; align-items:flex-end; gap:.6rem; }


.painlibre-catalogue-order-actions button { flex:1 1 145px; min-height:44px; margin:0 !important; font-size:1rem; padding:.65rem !important; }
.painlibre-catalogue-order-status { margin:0; font-size:.95rem; line-height:1.35; }
.painlibre-catalogue-unavailable { margin:1rem 0 0; padding:.7rem .85rem; border:1px solid var(--painlibre-border); border-radius:4px; background:#f1e7da; color:#6a574b; font-size:1rem; line-height:1.45; text-align:left; }
.painlibre-catalogue-unavailable strong, .painlibre-catalogue-unavailable span { display:block; }
.painlibre-catalogue-unavailable strong { margin-bottom:.15rem; font-weight:600; }
.painlibre-catalogue-order button:disabled { opacity:.65; cursor:wait; }

/* Accueil et boutique : cartes compactes et boutons alignés par rangée. */
:is(.painlibre-home-catalogue, .post-type-archive-product) .wp-block-woocommerce-product-template > li { display:flex; flex-direction:column; }
:is(.painlibre-home-catalogue, .post-type-archive-product) .wp-block-post-title { margin-bottom:.35rem; }
:is(.painlibre-home-catalogue, .post-type-archive-product) .wp-block-woocommerce-product-price { margin-bottom:0 !important; }
:is(.painlibre-home-catalogue, .post-type-archive-product) .painlibre-catalogue-order { margin-top:auto; padding-top:.65rem; gap:.5rem; }
:is(.painlibre-home-catalogue, .post-type-archive-product) .painlibre-catalogue-order > br,
:is(.painlibre-home-catalogue, .post-type-archive-product) .painlibre-catalogue-order > p:empty:not(.painlibre-catalogue-order-status) { display:none; }
:is(.painlibre-home-catalogue, .post-type-archive-product) .painlibre-catalogue-unavailable { margin-top:auto; }

/* Le texte du select fermé doit tenir entre ses marges verticales. */
body.single-product.woocommerce div.product form.cart .variations select { box-sizing:border-box; height:48px; min-height:48px; font-size:16px; line-height:1.4; padding:8px 36px 8px 12px; }

/* Quatre suggestions : 4 colonnes, puis 2, puis 1 selon la largeur. */
.single-product .related ul.products,
.single-product [data-collection="woocommerce/product-collection/related"] .wp-block-woocommerce-product-template { display:grid !important; grid-template-columns:repeat(4,minmax(0,1fr)) !important; min-width:0; max-width:100%; }
.single-product .related ul.products > li,
.single-product [data-collection="woocommerce/product-collection/related"] .wp-block-woocommerce-product-template > li { width:auto !important; min-width:0; }
@media (max-width:1100px) {
 .single-product .related ul.products,
 .single-product [data-collection="woocommerce/product-collection/related"] .wp-block-woocommerce-product-template { grid-template-columns:repeat(2,minmax(0,1fr)) !important; }
}
@media (max-width:600px) {
 .single-product .related ul.products,
 .single-product [data-collection="woocommerce/product-collection/related"] .wp-block-woocommerce-product-template { grid-template-columns:minmax(0,1fr) !important; }
}
/* Date de fournée commune aux achats, visible dès le haut de page. */
.painlibre-next-batch { margin:1rem 0 1.5rem; padding:.9rem 1rem; border-left:4px solid #6a574b; background:#efe2d2; color:#6a574b; font-size:1.125rem; line-height:1.45; }
.painlibre-next-batch strong { display:flex; flex-wrap:wrap; align-items:baseline; gap:.2rem .65rem; font-weight:700; }
.painlibre-next-batch time { font-size:1.25rem; font-weight:700; }
.painlibre-cart-notice .painlibre-next-batch { padding:0; margin:.5rem 0; border:0; background:transparent; }
.painlibre-cart-notice .painlibre-next-batch time { font-size:1.125rem; }
.painlibre-checkout-notice { margin-bottom:1.5rem; }

/* Rappel des modalités juste sous la date de fournée au checkout. */
.painlibre-checkout-batch-frame { margin:1rem 0 1.5rem; padding:.9rem 1rem; border-left:4px solid #6a574b; background:#efe2d2; }
.painlibre-checkout-batch-frame .painlibre-next-batch { margin:0; padding:0; border:0; background:transparent; }
.painlibre-checkout-notice .painlibre-batch-explanation { max-width:70ch; font-size:1rem; line-height:1.5; margin:.65rem 0 0; padding-top:.65rem; border-top:1px solid #dcc8b5; }

/* Accueil : explications courtes autour du même catalogue natif que la boutique. */
.painlibre-home-hero { display:grid; grid-template-columns:minmax(0,1.25fr) minmax(0,.9fr); align-items:center; gap:3rem; margin-bottom:2.5rem; }
.painlibre-home-hero h1 { color:#553d2d; font-size:clamp(2.2rem,4.2vw,3.4rem); line-height:1.08; font-weight:700; letter-spacing:-.025em; max-width:18ch; margin:0 0 1rem; }
.painlibre-home-lead { max-width:54ch; line-height:1.6; margin:0 0 1.5rem; }
.painlibre-home-actions { display:flex; flex-wrap:wrap; gap:.7rem; }
.painlibre-home-actions a { display:inline-flex; align-items:center; justify-content:center; min-height:48px; padding:.75rem 1rem; border:1px solid #6a574b; border-radius:4px; text-decoration:none; font-size:1rem; font-weight:600; box-sizing:border-box; }
.painlibre-home-primary { color:#fff; background:#6a574b; }
.painlibre-home-primary:hover { background:#553d2d; }
.painlibre-home-secondary { color:#553d2d; }
.painlibre-home-secondary:hover { background:#efe2d2; }
.painlibre-home-batch { padding:1.5rem; border:1px solid #dcc8b5; border-top:4px solid #6a574b; border-radius:6px; background:#efe2d2; color:#553d2d; }
.painlibre-home-batch .painlibre-next-batch { margin:0; padding:0; border:0; background:none; }
.painlibre-home-batch .painlibre-next-batch strong { display:block; }
.painlibre-home-batch .painlibre-next-batch time { display:block; margin-top:.45rem; font-size:1.6rem; }
.painlibre-home-batch p { line-height:1.5; font-size:1rem; margin:.85rem 0 0; }
.painlibre-home-state { padding-top:.85rem; border-top:1px solid #cbb59e; }
.painlibre-home h2:not(.wp-block-post-title) { color:#553d2d; font-size:1.8rem; line-height:1.25; font-weight:700; }
.painlibre-home-how { border-block:1px solid #dcc8b5; padding:1.5rem 0; margin-block:2.5rem; }
.painlibre-home-how h2 { margin:0 0 1.25rem; }
.painlibre-home-how ol { list-style:none; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.5rem; margin:0; padding:0; }
.painlibre-home-how li { display:flex; align-items:flex-start; gap:.8rem; }
.painlibre-home-how li > span { display:flex; flex:none; align-items:center; justify-content:center; width:2rem; height:2rem; border-radius:50%; background:#6a574b; color:white; font-weight:700; }
.painlibre-home-how h3 { margin:.15rem 0 .4rem; font-size:1.125rem; font-weight:700; line-height:1.3; }
.painlibre-home-how p { margin:0; font-size:1rem; line-height:1.5; }
.painlibre-home-catalogue { scroll-margin-top:1.5rem; }
.painlibre-home-catalogue > h2 { margin-bottom:1.5rem; }
.painlibre-home-modes { margin-top:3rem; padding-top:2rem; border-top:1px solid #dcc8b5; scroll-margin-top:1.5rem; }
.painlibre-home-modes > p { max-width:72ch; line-height:1.6; }
.painlibre-home-mode-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.25rem; margin-top:1.5rem; }
.painlibre-home-mode-grid article { padding:1.5rem; border:1px solid #dcc8b5; border-radius:6px; background:#fffaf4; }
.painlibre-home-mode-label { display:block; font-size:.85rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:#795e47; }
.painlibre-home-mode-grid h3 { margin:.5rem 0 .85rem; font-size:1.35rem; line-height:1.3; font-weight:700; color:#553d2d; }
.painlibre-home-mode-grid p, .painlibre-home-mode-grid li { font-size:1.0625rem; line-height:1.6; }
.painlibre-home-mode-grid p:last-child { margin-bottom:0; }
.painlibre-home-mode-grid ul { padding-left:1.25rem; }
.painlibre-home-more { font-size:1rem; }
.painlibre-home-faq { margin-block:3rem; }
.painlibre-home-faq details { border-bottom:1px solid #dcc8b5; padding:1rem 0; }
.painlibre-home-faq summary { cursor:pointer; min-height:44px; align-content:center; font-weight:600; line-height:1.5; }
.painlibre-home-faq summary:focus-visible { outline:3px solid #8a4918; outline-offset:3px; }
.painlibre-home-faq details p { max-width:85ch; font-size:1.0625rem; line-height:1.7; margin:.75rem 0; }
.painlibre-home-catalogue { container-type:inline-size; container-name:painlibre-catalogue; }
.painlibre-home-catalogue .wp-block-woocommerce-product-template { grid-template-columns:repeat(2,minmax(0,1fr)) !important; }
@container painlibre-catalogue (max-width:600px) {
 .painlibre-home-catalogue .wp-block-woocommerce-product-template { grid-template-columns:minmax(0,1fr) !important; }
}
@container painlibre-catalogue (min-width:1100.01px) {
 .painlibre-home-catalogue .wp-block-woocommerce-product-template { grid-template-columns:repeat(3,minmax(0,1fr)) !important; }
}
@media(max-width:780px) {
 .painlibre-home-hero { grid-template-columns:minmax(0,1fr); gap:1.5rem; }
 .painlibre-home-hero h1 { max-width:22ch; }
 .painlibre-home-how ol, .painlibre-home-mode-grid { grid-template-columns:minmax(0,1fr); }
 .painlibre-home-how ol { gap:1.25rem; }
}
@media(max-width:479px) {
 .painlibre-home-actions { flex-direction:column; }
 .painlibre-home-batch, .painlibre-home-mode-grid article { padding:1.1rem; }
 .painlibre-home h2:not(.wp-block-post-title) { font-size:1.6rem; }
}

.painlibre-home-mode-grid .painlibre-home-depot-offer { padding:.75rem 1rem; border-left:4px solid #6a574b; background:#efe2d2; color:#553d2d; }

/* Pied de page partagé : identité et navigation, sans règle métier. */
.painlibre-footer-frame { margin-top:4rem; padding:3.5rem clamp(1.5rem,4vw,3rem); background:#3b2b22; color:#fff5e8; }
.painlibre-footer-frame .painlibre-footer { display:grid; grid-template-columns:1.25fr 1fr 1fr; gap:2rem 3rem; max-width:1120px; margin:0 auto; padding:0; border:0; font-size:1rem; }
.painlibre-footer-frame .painlibre-footer > * { margin-block:0; }
.painlibre-footer-frame p { margin:0; }
.painlibre-footer-frame a { display:inline-flex; align-items:center; min-height:44px; color:#fff5e8; line-height:1.5; text-decoration-thickness:1px; text-underline-offset:.25em; }
.painlibre-footer-frame a:hover { color:#f0c49c; text-decoration-thickness:2px; }
.painlibre-footer-frame a:focus-visible { outline:3px solid #f0c49c !important; outline-offset:4px; border-radius:2px; }
.painlibre-footer-brand a { font-size:1.75rem; font-weight:700; letter-spacing:.04em; text-decoration:none; }
.painlibre-footer-frame .painlibre-footer-tagline { max-width:26ch; margin:.5rem 0 .75rem; color:#e3d1bf; line-height:1.65; }
.painlibre-footer-phone a { font-weight:600; }
.painlibre-footer-nav h2 { margin:.55rem 0 1rem; color:#fff5e8; font-size:1rem; font-weight:700; line-height:1.5; }
.painlibre-footer-nav ul { list-style:none; padding:0; margin:0; }
.painlibre-footer-nav li { margin:0; }
@media(max-width:700px) {
 .painlibre-footer-frame { padding-block:2.5rem; }
 .painlibre-footer-frame .painlibre-footer { grid-template-columns:minmax(0,1fr); gap:1.5rem; }
 .painlibre-footer-nav { padding-top:1.5rem; border-top:1px solid #735e4d; }
 .painlibre-footer-nav h2 { margin:0 0 .5rem; }
}

/* Accès au checkout sous minimum : état natif/ARIA conservé au clavier. */
.painlibre-checkout-disabled { opacity:.55; cursor:not-allowed; }
.painlibre-cart-list .buttons button { display:block; width:100%; padding:.75rem; margin-top:.75rem; border:0; border-radius:4px; background:#6a574b; color:white; text-align:center; font:inherit; min-height:44px; }
.painlibre-cart-list .painlibre-minimum-alert { padding:.75rem; border-left:3px solid #8a4918; background:#efe2d2; font-size:.95rem; line-height:1.5; }
@media(max-width:999px) {
 .painlibre-cart-list:not(.is-open) .widget_shopping_cart_content:has(.painlibre-minimum-alert) { display:block; }
 .painlibre-cart-list:not(.is-open) .widget_shopping_cart_content > :not(.painlibre-minimum-alert) { display:none; }
 .painlibre-cart-list:not(.is-open) .painlibre-minimum-alert { margin-top:.75rem; }
 body:has(.painlibre-cart-list .painlibre-minimum-alert) { padding-bottom:240px; }
}

/* Indisponibilités informatives sous les choix de remise natifs. */
.painlibre-point-closures { background: #f3f3f1; color: #454545; border-left: 3px solid #777; padding: 1rem; margin-top: 1rem; font-size: .875rem; line-height: 1.5; }
.painlibre-point-closures h3 { color: inherit; font-size: 1rem; margin: 0 0 .5rem; }
.painlibre-point-closures ul { margin: 0; padding-left: 1.2rem; }
.painlibre-point-closures li + li { margin-top: .6rem; }
.painlibre-point-closures p { margin: .75rem 0 0; }

.painlibre-replacement-confirmation { border: 2px solid #795b3e; padding: 1rem; margin-top: 1rem; background: #fffaf0; color: #453426; }
.painlibre-replacement-confirmation h3 { font-size: 1rem; margin: 0 0 .5rem; }
.painlibre-replacement-confirmation input { margin-right: .5rem; }

.painlibre-pickup-preference { border-top: 1px solid #bdb4a7; padding-top: .75rem; margin-top: 1rem; font-size: .875rem; }
.painlibre-pickup-preference p { margin: .5rem 0; }
.painlibre-pickup-preference input { margin-right: .5rem; }

.painlibre-pickup-preference label { display: block; }
.painlibre-pickup-preference .button { display: block; margin-top: .6rem; }
