/* Fiche produit : assistant d'achat, profil du café. Chargé sur les fiches seulement. */
.lzqf-resume { color: var(--wp--preset--color--gris); font-size: var(--wp--preset--font-size--s); margin: 0 0 .5rem; }

/* Assistant */
/* M-060 U01 : « form » relève la spécificité au-dessus de « .woocommerce table.variations { display: block } » (feuille critique, plus bas) : une seule interface visible. */
form.lzqf-assistant-on table.variations { display: none; }
.lzqf-assistant { display: grid; gap: 1.25rem; margin: 0 0 1.25rem; }
.lzqf-step { border: 0; margin: 0; padding: 0; min-width: 0; }
.lzqf-step legend { font-family: var(--wp--preset--font-family--titre); font-weight: 700; color: var(--wp--preset--color--vert); margin-bottom: .5rem; padding: 0; }
.lzqf-step__n { display: inline-grid; place-items: center; width: 1.6rem; height: 1.6rem; border-radius: 50%; background: var(--wp--preset--color--vert); color: var(--wp--preset--color--blanc); font-size: .85rem; margin-right: .35rem; }
.lzqf-step__note { margin: .45rem 0 0; color: var(--wp--preset--color--gris); font-size: var(--wp--preset--font-size--xs); }
.lzqf-choix-row { display: flex; flex-wrap: wrap; gap: .5rem; }
.lzqf-choix { display: flex; flex-direction: column; align-items: flex-start; gap: .1rem; min-height: 44px; padding: .6rem 1rem; border: 2px solid #cfc8b4; border-radius: var(--wp--custom--radius--carte); background: var(--wp--preset--color--blanc); color: var(--wp--preset--color--encre); font: inherit; font-weight: 700; cursor: pointer; text-align: left; }
.lzqf-choix--cafetiere { flex-direction: row; align-items: center; gap: .45rem; max-width: 100%; }
.lzqf-choix__icone { display: inline-flex; flex: 0 0 1.4em; width: 1.4em; height: 1.4em; }
.lzqf-choix__icone svg { width: 100%; height: 100%; }
.lzqf-choix small { font-weight: 400; color: var(--wp--preset--color--gris); font-size: var(--wp--preset--font-size--xs); }
.lzqf-choix:hover { border-color: var(--wp--preset--color--vert-2); }
.lzqf-choix.is-active { border-color: var(--wp--preset--color--vert); background: #e9f0ed; }
.lzqf-choix:focus-visible { outline: 3px solid var(--wp--preset--color--or-fonce); outline-offset: 2px; }
form.variations_form .single_variation .price { font-family: var(--wp--preset--font-family--titre); font-weight: 700; color: var(--wp--preset--color--vert); font-size: 1.4rem; }
form.variations_form .single_add_to_cart_button { min-height: 48px; width: 100%; border-radius: var(--wp--custom--radius--bouton); font-family: var(--wp--preset--font-family--texte); font-weight: 600; }
.woocommerce-variation-add-to-cart { display: flex; gap: .75rem; align-items: stretch; }
.woocommerce-variation-add-to-cart .quantity input { min-height: 48px; width: 4.5rem; border-radius: var(--wp--custom--radius--champ); border: 1px solid #cdd3cd; text-align: center; }
.lzqf-livraison-fiche { margin: .5rem 0 1rem; color: var(--wp--preset--color--gris); font-size: var(--wp--preset--font-size--s); }
.lzqf-livraison-fiche a { color: var(--wp--preset--color--vert); text-decoration: underline; text-underline-offset: .15em; }
/* L'ancien bloc « quantité + bouton » collant (≤ 600 px) est remplacé par la barre d'achat (assets/js/achat.js, M-031). */

/* Choix incomplet : message sous l'étape 3 à la place de l'alerte du navigateur (M-031). */
.lzqf-choix-manquant { margin: -.25rem 0 1rem; padding: .75rem 1rem; border-left: 3px solid var(--wp--preset--color--erreur, #a33a2b); background: #fbeeea; color: var(--wp--preset--color--encre); font-size: var(--wp--preset--font-size--s); font-weight: 600; }
.lzqf-choix-manquant[hidden] { display: none; }

/* Barre d'achat collante, mobile : prix, format choisi, « Ajouter » (visible quand le formulaire est hors écran). */
.lzqf-barre-achat { position: fixed; right: 0; bottom: 0; left: 0; z-index: 50; display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .7rem 1rem calc(.7rem + env(safe-area-inset-bottom, 0px)); background: var(--wp--preset--color--blanc); box-shadow: 0 -6px 18px rgba(18, 61, 52, .14); }
.lzqf-barre-achat[hidden] { display: none; }
.lzqf-barre-achat__infos { display: grid; gap: .05rem; min-width: 0; margin: 0; line-height: 1.25; }
.lzqf-barre-achat__prix { color: var(--wp--preset--color--vert); font-family: var(--wp--preset--font-family--titre); font-size: 1.2rem; white-space: nowrap; }
.lzqf-barre-achat__prix del { display: none; }
.lzqf-barre-achat__choix { overflow: hidden; color: var(--wp--preset--color--gris); font-size: .8rem; text-overflow: ellipsis; white-space: nowrap; }
.lzqf-barre-achat__bouton { flex: 0 0 auto; min-height: 48px; padding: .7rem 1.4rem; border: 0; border-radius: var(--wp--custom--radius--bouton); background: var(--wp--preset--color--vert); color: var(--wp--preset--color--blanc); font-family: var(--wp--preset--font-family--texte); font-size: 1rem; font-weight: 600; cursor: pointer; }
.lzqf-barre-achat__bouton:focus-visible { outline: 3px solid var(--wp--preset--color--or-fonce); outline-offset: 2px; }
/* Place de la barre d'achat mobile dans le pied de page vert, pas sous lui (M-055 : bande claire en bas de page). */
body.lzqf-barre-achat-on .lzqf-footer { padding-bottom: calc(1.5rem + 5rem); }
@media (min-width: 768px) { .lzqf-barre-achat { display: none !important; } body.lzqf-barre-achat-on .lzqf-footer { padding-bottom: 1.5rem; } }

/* Fiche en deux colonnes dès 768 px (le bloc Colonnes de WordPress empile jusqu'à 781 px). */
@media (min-width: 768px) {
	.wp-block-columns.lzqf-fiche-achat { flex-wrap: nowrap !important; }
	.wp-block-columns.lzqf-fiche-achat > .wp-block-column { flex-basis: 50% !important; min-width: 0; }
}

/* Rupture : bandeau sous le prix, deux cafés proches ; format, mouture et bouton masqués (M-031). */
.lzqf-rupture { margin: .75rem 0 1.25rem; padding: 1rem 1.25rem; border-left: 3px solid var(--wp--preset--color--or-fonce); background: #fbf7ee; }
.lzqf-rupture__titre { margin: 0; color: var(--wp--preset--color--vert); font-family: var(--wp--preset--font-family--titre); font-size: 1.2rem; font-weight: 700; }
.lzqf-rupture__texte { margin: .35rem 0 0; font-size: var(--wp--preset--font-size--s); }
.lzqf-rupture__cartes { grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: .9rem; }
.lzqf-rupture__cartes .lzqf-carte img { aspect-ratio: 1; object-fit: contain; background: #f4f3ef; }
body.single-product.outofstock .lzqf-fiche-achat .wp-block-add-to-cart-form { display: none; }

/* Texte réservé aux lecteurs d'écran (ex. « Ce produit a plusieurs variations… » des boutons WooCommerce). */
.screen-reader-text:not(:focus) { position: absolute !important; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }

/* Profil du café */
.lzqf-fiche { margin-top: var(--wp--preset--spacing--70); }
.lzqf-fiche h2 { margin-top: 0; }
.lzqf-fiche__grid { display: grid; gap: 1.5rem; grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr)); background: var(--wp--preset--color--creme); border-radius: 0; padding: clamp(1.25rem, 3vw, 1.75rem); }
.lzqf-jauge__label { margin: 0 0 .5rem; font-size: var(--wp--preset--font-size--s); color: var(--wp--preset--color--gris); }
.lzqf-jauge__label strong { color: var(--wp--preset--color--vert); }
.lzqf-jauge__barre { display: flex; gap: .3rem; }
.lzqf-jauge__barre span { flex: 1; height: .7rem; border-radius: 999px; background: #e3dccb; }
.lzqf-jauge__barre span.on { background: var(--wp--preset--color--vert); }
.lzqf-pastilles { display: flex; flex-wrap: wrap; gap: .4rem; list-style: none; margin: 0; padding: 0; }
.lzqf-pastilles li { padding: .3rem .8rem; border-radius: 999px; background: #e9f0ed; color: var(--wp--preset--color--vert); font-size: var(--wp--preset--font-size--s); font-weight: 500; }
.lzqf-pastilles--notes li { background: #f3ead2; color: #5a4512; }
.lzqf-sca { margin: 0; font-family: var(--wp--preset--font-family--titre); font-weight: 700; font-size: var(--wp--preset--font-size--titre-l); color: var(--wp--preset--color--vert); line-height: 1; }
.lzqf-note { font-size: var(--wp--preset--font-size--s); color: var(--wp--preset--color--gris); }

/* Profil compact dans la colonne d'achat (visible sans défiler). */
.lzqf-profil-court { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .9rem 1.5rem; margin: .75rem 0 1.25rem; padding: 1rem 1.25rem; background: var(--wp--preset--color--creme); }
@media (max-width: 600px) { .lzqf-profil-court { grid-template-columns: 1fr; } }
.lzqf-profil-court__haut { grid-column: 1 / -1; display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; }
.lzqf-profil-court .lzqf-jauge { flex: 1 1 auto; max-width: 20rem; }
.lzqf-profil-court .lzqf-jauge__label { margin-bottom: .45rem; font-size: var(--wp--preset--font-size--xs); }
.lzqf-profil-court .lzqf-jauge__label a { color: var(--wp--preset--color--vert-2); }
.lzqf-profil-court .lzqf-jauge__barre span { height: .55rem; }
.lzqf-profil-court__sca { display: grid; justify-items: end; flex: 0 0 auto; margin: 0; }
.lzqf-profil-court__sca span { color: var(--wp--preset--color--gris); font-size: var(--wp--preset--font-size--xs); }
.lzqf-profil-court__sca strong { color: var(--wp--preset--color--vert); font-family: var(--wp--preset--font-family--titre); font-size: 2rem; font-weight: 700; line-height: 1; }
.lzqf-profil-court__ligne { padding-top: .9rem; border-top: 1px solid #e6dfcf; }
.lzqf-profil-court .lzqf-pastilles li { padding: .25rem .7rem; font-size: var(--wp--preset--font-size--xs); }
.lzqf-profil-court__preps { margin: 0; color: var(--wp--preset--color--vert); font-size: var(--wp--preset--font-size--s); font-weight: 500; line-height: 1.5; }

/* Texte de la fiche : étiquette à gauche, texte à droite sur ordinateur (plus de colonne collée à gauche avec un vide à droite). */
.lzqf-fiche-texte { border-top: 1px solid var(--wp--preset--color--filet, #e2e5e0); padding-top: var(--wp--preset--spacing--60); }
.lzqf-fiche-texte__label { margin: 0 0 1rem; }
.lzqf-fiche-texte .wp-block-post-content { max-width: 46rem; }
.lzqf-fiche-texte .wp-block-post-content > :first-child { margin-top: 0; }
.lzqf-fiche-texte .wp-block-post-content :is(h2, h3, h4) { margin-top: 2rem; margin-bottom: .6rem; }
.lzqf-fiche-texte .wp-block-post-content h4 { font-size: var(--wp--preset--font-size--titre-s, 1.25rem); text-transform: none; letter-spacing: 0; }
.lzqf-fiche-texte:not(:has(.wp-block-post-content > *)) { display: none; }
.lzqf-fiche-texte__visuel { margin: 0 0 1.5rem; }
.lzqf-fiche-texte__photo { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; border-radius: 0; }
@media (min-width: 900px) {
	.lzqf-fiche-texte { display: grid; grid-template-columns: minmax(10rem, 1fr) minmax(0, 46rem); gap: 0 clamp(2rem, 5vw, 5rem); }
	.lzqf-fiche-texte__cote { position: sticky; top: calc(var(--wp-admin--admin-bar--height, 0px) + var(--lzqf-entete-h, 0px) + 1.5rem); align-self: start; }
	.lzqf-fiche-texte__label { padding-top: .7rem; border-top: 3px solid var(--wp--preset--color--or-fonce, #8a6a1f); width: max-content; }
	.lzqf-fiche-texte__visuel { max-width: 26rem; margin: .5rem 0 0; }
	.lzqf-fiche-texte__photo { aspect-ratio: 4 / 5; }
	.lzqf-fiche-texte .wp-block-post-content { max-width: none; }
}

/* Galerie et cartes liées */
.wp-block-woocommerce-product-image-gallery img { border-radius: 0; height: auto; max-width: 100%; }
.wp-block-woocommerce-product-image-gallery { max-width: none !important; }
.wp-block-woocommerce-product-image-gallery .woocommerce-product-gallery { position: relative; width: 100% !important; float: none !important; }
.woocommerce-product-gallery__image img { width: 100%; aspect-ratio: 9 / 10; object-fit: cover; background: #f4f3ef; }
/* Pas de saut à l'ouverture (CLS mobile 0,19 → < 0,1, M-031) : une photo par rangée avant, pendant et après l'initialisation
   du diaporama (ses largeurs en ligne prennent le relais), et place des vignettes réservée tant qu'elles ne sont pas créées.
   Vignette = (largeur − espaces) / nombre de photos, carrée : le repère a la largeur d'une vignette et un rapport 1. */
.woocommerce-product-gallery { overflow: hidden; container-type: inline-size; }
.woocommerce-product-gallery .woocommerce-product-gallery__wrapper { display: flex; align-items: flex-start; margin: 0; }
/* Largeur rapportée à la galerie (100cqw), pas au rail du diaporama, qu'il élargit à 1 000 % pendant l'initialisation. */
.woocommerce-product-gallery .woocommerce-product-gallery__image { flex: 0 0 auto; width: 100cqw; }
/* Hauteur de la fenêtre fixée par la largeur (photos recadrées en 9/10) : l'animation de hauteur du diaporama partait
   d'une valeur transitoire (jusqu'à 10 photos empilées). */
.woocommerce-product-gallery .flex-viewport { height: calc(100cqw * 10 / 9) !important; }
.woocommerce-product-gallery { --lzqf-vignettes: 1; }
.woocommerce-product-gallery:has(.woocommerce-product-gallery__image:nth-child(2)) { --lzqf-vignettes: 2; }
.woocommerce-product-gallery:has(.woocommerce-product-gallery__image:nth-child(3)) { --lzqf-vignettes: 3; }
.woocommerce-product-gallery:has(.woocommerce-product-gallery__image:nth-child(4)) { --lzqf-vignettes: 4; }
.woocommerce-product-gallery:has(.woocommerce-product-gallery__image:nth-child(5)) { --lzqf-vignettes: 5; }
.woocommerce-product-gallery:has(.woocommerce-product-gallery__image:nth-child(6)) { --lzqf-vignettes: 6; }
.woocommerce-product-gallery:has(.woocommerce-product-gallery__image:nth-child(7)) { --lzqf-vignettes: 7; }
.woocommerce-product-gallery:has(.woocommerce-product-gallery__image:nth-child(2)):not(:has(.flex-control-thumbs))::after { content: ""; display: block; width: calc((100% - (var(--lzqf-vignettes) - 1) * .5rem) / var(--lzqf-vignettes)); aspect-ratio: 1; }
.woocommerce-product-gallery .flex-control-thumbs { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); gap: .5rem; margin: .75rem 0 0; padding: 0; list-style: none; }
.woocommerce-product-gallery .flex-control-thumbs li { width: auto !important; margin: 0 !important; float: none !important; }
.woocommerce-product-gallery .flex-control-thumbs img { display: block; width: 100%; aspect-ratio: 1 / 1; object-fit: cover; opacity: .6; cursor: pointer; transition: opacity .2s; }
.woocommerce-product-gallery .flex-control-thumbs img.flex-active, .woocommerce-product-gallery .flex-control-thumbs img:hover { opacity: 1; outline: 2px solid var(--wp--preset--color--vert); outline-offset: -2px; }
.woocommerce-product-gallery__trigger { position: absolute; top: .75rem; right: .75rem; z-index: 2; display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; background: #fff; font-size: 0; text-decoration: none; box-shadow: 0 2px 8px rgba(18, 61, 52, .12); }
.woocommerce-product-gallery__trigger::before { content: "⤢"; color: var(--wp--preset--color--vert); font-size: 1.1rem; }
.wp-block-woocommerce-related-products .wp-block-post-template { margin-top: 1rem; }

/* Cartes produit compactes (compléments, fenêtre d'ajout au panier) */
.lzqf-cartes { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fill, minmax(9.5rem, 1fr)); }
.lzqf-carte { display: flex; flex-direction: column; gap: .25rem; padding: .75rem; border-radius: var(--wp--custom--radius--carte); background: var(--wp--preset--color--blanc); text-decoration: none; color: var(--wp--preset--color--encre); box-shadow: 0 1px 2px rgba(18, 61, 52, .08), 0 4px 12px rgba(18, 61, 52, .06); }
.lzqf-carte img { width: 100%; height: auto; border-radius: 8px; aspect-ratio: 1; object-fit: cover; }
.lzqf-carte__titre { font-weight: 700; color: var(--wp--preset--color--vert); font-size: var(--wp--preset--font-size--s); }
.lzqf-carte__prix { font-size: var(--wp--preset--font-size--s); }
.lzqf-carte__cta { margin-top: auto; font-size: var(--wp--preset--font-size--xs); text-decoration: underline; color: var(--wp--preset--color--vert-2); }
.lzqf-carte:hover { box-shadow: 0 4px 16px rgba(18, 61, 52, .18); }
.lzqf-carte:focus-visible { outline: 3px solid var(--wp--preset--color--or-fonce); outline-offset: 2px; }
.lzqf-remise { display: inline-block; margin-left: .35rem; padding: .05rem .45rem; border-radius: 999px; background: var(--wp--preset--color--or-fonce); color: var(--wp--preset--color--blanc); font-size: var(--wp--preset--font-size--xs); font-weight: 700; }

/* FAQ et liens */
.lzqf-faq details { margin: 0; border-bottom: 1px solid #e2e5e0; }
.lzqf-faq details:first-child { border-top: 1px solid #e2e5e0; }
.lzqf-faq summary { display: flex; align-items: center; justify-content: space-between; gap: 1rem; min-height: 44px; padding: 1rem 0; color: var(--wp--preset--color--vert); font-weight: 600; cursor: pointer; list-style: none; }
.lzqf-faq summary::-webkit-details-marker { display: none; }
.lzqf-faq summary::after { content: "+"; flex: 0 0 2rem; width: 2rem; height: 2rem; display: grid; place-items: center; border-radius: 50%; background: var(--wp--preset--color--creme); font-size: 1.25rem; font-weight: 400; line-height: 1; transition: transform .2s; }
.lzqf-faq details[open] summary::after { transform: rotate(45deg); }
.lzqf-faq summary:hover { color: var(--wp--preset--color--encre); }
.lzqf-faq details p { margin: 0; padding: 0 3rem 1.25rem 0; color: var(--wp--preset--color--encre); }
.lzqf-liens__liste { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 2rem; margin: 0; padding: 0; list-style: none; }
.lzqf-liens__liste li { border-top: 1px solid #e2e5e0; }
.lzqf-liens__liste a { display: flex; align-items: center; justify-content: space-between; gap: 1rem; min-height: 44px; padding: 1rem 0; color: var(--wp--preset--color--vert); font-weight: 500; text-decoration: none; }
.lzqf-liens__liste a::after { content: "→"; flex: 0 0 auto; color: var(--wp--preset--color--or-fonce); transition: transform .2s; }
.lzqf-liens__liste a:hover { text-decoration: underline; text-underline-offset: .2em; }
.lzqf-liens__liste a:hover::after { transform: translateX(.25rem); }
/* Même disposition que le texte de la fiche : titre à gauche, contenu à droite jusqu'au bord du conteneur. */
@media (min-width: 900px) {
	.lzqf-faq, .lzqf-liens { display: grid; grid-template-columns: minmax(10rem, 1fr) minmax(0, 46rem); gap: 0 clamp(2rem, 5vw, 5rem); align-items: start; }
	.lzqf-faq h2, .lzqf-liens h2 { position: sticky; top: calc(var(--wp-admin--admin-bar--height, 0px) + var(--lzqf-entete-h, 0px) + 1.5rem); margin: 0; font-size: var(--wp--preset--font-size--titre-m); }
}
@media (max-width: 760px) {
	.lzqf-liens__liste { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) {
	.lzqf-faq summary::after, .lzqf-liens__liste a::after { transition: none; }
}

/* Catalogue : cartes café, grilles, « Trouver mon café » */
.lzqf-cartes--cafes { grid-template-columns: repeat(auto-fill, minmax(10rem, 1fr)); }
.lzqf-carte--cafe img { aspect-ratio: 4 / 5; object-fit: contain; background: #f4efe2; }
.lzqf-carte__notes { font-size: var(--wp--preset--font-size--xs); color: var(--wp--preset--color--gris); }
.lzqf-jauge__barre--mini { display: flex; gap: .2rem; margin: .15rem 0; }
.lzqf-jauge__barre--mini span { height: .4rem; }
.lzqf-grille { gap: 1.25rem; padding: 0; }
.lzqf-carte-cafe { background: var(--wp--preset--color--blanc); border-radius: 12px; padding: .75rem; height: 100%; box-shadow: 0 1px 2px rgba(18, 61, 52, .08), 0 4px 12px rgba(18, 61, 52, .06); }
.lzqf-carte-cafe img { border-radius: 8px; }
.lzqf-carte-cafe .wp-block-post-title { margin: .5rem 0 .25rem; }
.lzqf-carte-cafe .wp-block-post-title a { text-decoration: none; color: var(--wp--preset--color--vert); }
.lzqf-pastilles--liens li { padding: 0; }
.lzqf-pastilles--liens a { display: inline-block; padding: .4rem .9rem; text-decoration: none; color: inherit; min-height: 44px; line-height: 2rem; box-sizing: border-box; }
.lzqf-pastilles--liens a:hover { background: #d5e4de; border-radius: 999px; }
/* Bas éditorial des catégories : une colonne lisible, sans dépendance à une image ou à un script. */
.lzqf-texte-bas { box-sizing: border-box; width: min(100%, 70ch); min-width: 0; margin-top: var(--wp--preset--spacing--70); padding-top: var(--wp--preset--spacing--50); border-top: 1px solid #d9d2c0; color: var(--wp--preset--color--encre); line-height: 1.65; overflow-wrap: anywhere; }
.lzqf-texte-bas h2, .lzqf-texte-bas h3 { color: var(--wp--preset--color--vert); line-height: 1.25; text-wrap: balance; }
.lzqf-texte-bas h2 { margin: 2rem 0 .75rem; font-size: clamp(1.5rem, 4vw, 2rem); }
.lzqf-texte-bas h2:first-child { margin-top: 0; }
.lzqf-texte-bas h3 { margin: 1.5rem 0 .5rem; font-size: clamp(1.2rem, 3vw, 1.4rem); }
.lzqf-texte-bas p, .lzqf-texte-bas ul, .lzqf-texte-bas ol { margin: 0 0 1rem; }
.lzqf-texte-bas ul, .lzqf-texte-bas ol { padding-left: 1.5rem; }
.lzqf-texte-bas li { padding-left: .15rem; margin-bottom: .35rem; }
.lzqf-texte-bas a { color: var(--wp--preset--color--vert); text-decoration: underline; text-underline-offset: .2em; text-decoration-thickness: .08em; }
.lzqf-texte-bas a:hover { color: var(--wp--preset--color--vert-2); text-decoration-thickness: .13em; }
.lzqf-texte-bas a:focus-visible, .lzqf-texte-bas summary:focus-visible { outline: 3px solid var(--wp--preset--color--or-fonce); outline-offset: 3px; }
.lzqf-texte-bas a[href="/trouver-mon-cafe/"], .lzqf-texte-bas a[href="/livraison-et-retours/"] { display: inline-block; padding: .3rem 0; font-weight: 600; }
.lzqf-texte-bas details { box-sizing: border-box; max-width: 100%; margin: 0 0 .75rem; padding: 0 1rem; border: 1px solid #d9d2c0; border-radius: 6px; background: var(--wp--preset--color--blanc); }
.lzqf-texte-bas summary { position: relative; display: block; min-height: 48px; padding: .85rem 2.5rem .85rem 0; color: var(--wp--preset--color--vert); font-weight: 600; line-height: 1.45; cursor: pointer; list-style: none; }
.lzqf-texte-bas summary::-webkit-details-marker { display: none; }
.lzqf-texte-bas summary::after { content: "+"; position: absolute; right: 0; top: 50%; display: grid; place-items: center; width: 1.7rem; height: 1.7rem; border-radius: 50%; background: var(--wp--preset--color--creme); font-size: 1.25rem; line-height: 1; transform: translateY(-50%); }
.lzqf-texte-bas details[open] summary::after { content: "−"; }
.lzqf-texte-bas details > p:last-child, .lzqf-texte-bas details > ul:last-child, .lzqf-texte-bas details > ol:last-child { margin-bottom: 1rem; }
.lzqf-boutique-intro { max-width: 42rem; }
.lzqf-vide { color: var(--wp--preset--color--gris); }
.lzqf-trouver { display: grid; gap: 1.75rem; margin: 1.5rem 0 2rem; }
.lzqf-trouver fieldset { border: 0; margin: 0; padding: 0; min-width: 0; }
.lzqf-trouver legend { font-family: var(--wp--preset--font-family--titre); font-weight: 700; font-size: var(--wp--preset--font-size--titre-s); color: var(--wp--preset--color--vert); margin-bottom: .6rem; padding: 0; }
/* « Trouver mon café » : cartes-choix à cocher avec pictogramme (plusieurs choix par question). */
.lzqf-trouver legend small { margin-left: .35rem; color: var(--wp--preset--color--gris); font-family: var(--wp--preset--font-family--texte); font-size: .8rem; font-weight: 600; }
.lzqf-options { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 15rem), 1fr)); gap: .65rem; }
.lzqf-option { position: relative; display: block; cursor: pointer; }
.lzqf-option input { position: absolute; top: 0; left: 0; width: 1px; height: 1px; margin: 0; opacity: 0; }
.lzqf-option__carte { position: relative; display: flex; align-items: center; gap: .8rem; height: 100%; min-height: 4.25rem; padding: .7rem 2.4rem .7rem .75rem; box-sizing: border-box; border: 2px solid #e2dccd; border-radius: var(--wp--custom--radius--carte); background: var(--wp--preset--color--blanc); transition: border-color .15s ease, background-color .15s ease; }
.lzqf-option__carte .lzqf-picto { flex: 0 0 2.75rem; width: 2.75rem; height: 2.75rem; padding: .45rem; box-sizing: border-box; border-radius: 50%; background: #f0eadf; color: var(--wp--preset--color--vert); }
.lzqf-option__texte { display: grid; gap: .1rem; min-width: 0; line-height: 1.25; }
.lzqf-option__texte strong { color: var(--wp--preset--color--vert); font-size: .98rem; }
.lzqf-option__texte small { color: var(--wp--preset--color--gris); font-size: .8rem; }
.lzqf-option__carte::after { content: ""; position: absolute; top: 50%; right: .8rem; width: 1.15rem; height: 1.15rem; box-sizing: border-box; border: 2px solid #cfc8b4; border-radius: 5px; transform: translateY(-50%); }
.lzqf-option:hover .lzqf-option__carte { border-color: var(--wp--preset--color--vert-2); }
.lzqf-option input:checked + .lzqf-option__carte { border-color: var(--wp--preset--color--vert); background: #eef3f0; }
.lzqf-option input:checked + .lzqf-option__carte .lzqf-picto { background: var(--wp--preset--color--vert); color: var(--wp--preset--color--blanc); }
.lzqf-option input:checked + .lzqf-option__carte::after { border-color: var(--wp--preset--color--vert); background: var(--wp--preset--color--vert) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3.5 8.5l3 3 6-7' fill='none' stroke='%23fff' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 80% no-repeat; }
.lzqf-option input:focus-visible + .lzqf-option__carte { outline: 3px solid var(--wp--preset--color--or-fonce); outline-offset: 2px; }
.lzqf-trouver__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 1.5rem; }
.lzqf-trouver__actions a { color: var(--wp--preset--color--vert); font-weight: 600; }
.lzqf-resultat { scroll-margin-top: 1rem; }
.lzqf-resultat h2 { margin-top: var(--wp--preset--spacing--60); }
.lzqf-resultat__aide { padding: 1rem 1.25rem; border-left: 4px solid var(--wp--preset--color--or-fonce); border-radius: 0 8px 8px 0; background: #fbf7ee; font-weight: 600; }
.lzqf-resultat__intro { color: var(--wp--preset--color--gris); }
.lzqf-reco { display: flex; flex-direction: column; gap: .5rem; min-width: 0; }
.lzqf-reco__pourquoi { margin: 0; color: var(--wp--preset--color--encre); font-size: .85rem; font-weight: 600; line-height: 1.35; }
.lzqf-reco__pourquoi span { display: inline-block; margin-right: .35rem; padding: .15rem .55rem; border-radius: 999px; background: #f0eadf; color: var(--wp--preset--color--vert); font-size: .72rem; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.lzqf-reco__pourquoi.is-complet span { background: var(--wp--preset--color--vert); color: var(--wp--preset--color--blanc); }
.lzqf-reco .lzqf-carte { flex: 1; }
@media (prefers-reduced-motion: reduce) { .lzqf-option__carte { transition: none; } }

/* Cartes café « vitrine » (direction A, D-042) : le vrai sachet sur fond clair, sans cadre ; mêmes cartes
   pour l'accueil, la boutique, les catégories et les suggestions. */
.lzqf-cartes--cafes { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(1.75rem, 3vw, 2.5rem) clamp(1rem, 2vw, 1.5rem); }
.lzqf-grille { display: grid !important; grid-template-columns: repeat(4, minmax(0, 1fr)) !important; gap: clamp(1.75rem, 3vw, 2.5rem) clamp(1rem, 2vw, 1.5rem) !important; align-items: stretch; }
.lzqf-grille > * { min-width: 0; }
.lzqf-carte--cafe { gap: .35rem; height: 100%; padding: 0; box-sizing: border-box; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
.lzqf-carte--cafe:hover { box-shadow: none; }
.lzqf-carte--cafe .lzqf-carte__visuel { display: flex; align-items: center; justify-content: center; width: 100%; aspect-ratio: 4 / 5; margin-bottom: .75rem; overflow: hidden; border-radius: 0; background: #f4f3ef; }
.lzqf-carte--cafe .lzqf-carte__visuel img { width: 100%; height: 100%; aspect-ratio: auto; object-fit: contain; background: transparent; border-radius: 0; mix-blend-mode: multiply; transition: transform .35s ease; }
.lzqf-carte--cafe:hover .lzqf-carte__visuel img { transform: scale(1.03); }
.lzqf-carte__origine { color: var(--wp--preset--color--vert-2); font-size: .72rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; }
.lzqf-carte--cafe .lzqf-carte__titre { color: var(--wp--preset--color--vert); font-family: var(--wp--preset--font-family--titre); font-size: clamp(1.15rem, 1.4vw, 1.35rem); font-weight: 600; letter-spacing: -.02em; line-height: 1.2; }
.lzqf-carte--cafe:hover .lzqf-carte__titre { text-decoration: underline; text-underline-offset: .2em; }
.lzqf-carte--cafe .lzqf-carte__notes { min-height: 1.5em; color: var(--wp--preset--color--gris); font-size: .88rem; }
.lzqf-carte__profil { display: flex; justify-content: space-between; gap: .75rem; color: var(--wp--preset--color--gris); font-size: .8rem; font-weight: 500; }
.lzqf-carte__profil span:last-child { white-space: nowrap; }
.lzqf-carte--cafe .lzqf-jauge__barre--mini { max-width: 8rem; margin: .1rem 0 .25rem; }
/* Mini-profil de la vitrine (accueil) : même esprit que l'encart de la fiche, en plus petit. */
.lzqf-carte__encart { display: grid; gap: .3rem; margin-top: .55rem; padding: .7rem .8rem .75rem; background: var(--wp--preset--color--creme); }
.lzqf-carte__encart-label { color: var(--wp--preset--color--gris); font-size: .72rem; line-height: 1.3; }
.lzqf-carte__encart-label strong { color: var(--wp--preset--color--vert); font-weight: 600; }
.lzqf-carte__encart .lzqf-jauge__barre { gap: .2rem; margin-bottom: .3rem; }
.lzqf-carte__encart .lzqf-jauge__barre span { height: .4rem; }
.lzqf-carte__encart-notes { display: flex; flex-wrap: wrap; gap: .35rem; margin-bottom: .3rem; }
.lzqf-carte__encart-note { display: inline-flex; align-items: center; max-width: 100%; padding: .2rem .55rem; border-radius: 999px; background: #fff; color: var(--wp--preset--color--vert); font-size: .76rem; font-weight: 600; line-height: 1.35; }
.lzqf-carte__bas { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: .25rem .75rem; margin-top: auto; padding-top: .6rem; }
.lzqf-carte--cafe .lzqf-carte__prix { color: var(--wp--preset--color--vert); font-size: 1rem; font-weight: 600; }
.lzqf-carte__format { color: var(--wp--preset--color--gris); font-size: .8rem; }
.lzqf-carte--cafe .lzqf-carte__cta { display: inline-block; margin-top: .2rem; color: var(--wp--preset--color--vert); font-size: .85rem; font-weight: 600; text-decoration: underline; text-underline-offset: .25em; }
.lzqf-carte--cafe:focus-visible { outline: 3px solid var(--wp--preset--color--or-fonce); outline-offset: 4px; }
@media (max-width: 1100px) {
	.lzqf-grille, .lzqf-cartes--cafes { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
}
@media (max-width: 760px) {
	.lzqf-grille, .lzqf-cartes--cafes { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 1.75rem .9rem !important; }
	.lzqf-carte--cafe .lzqf-carte__visuel { aspect-ratio: 3 / 4; }
	.lzqf-carte--cafe .lzqf-carte__notes { font-size: .8rem; line-height: 1.45; }
	.lzqf-carte__profil { flex-direction: column; gap: 0; }
}
@media (prefers-reduced-motion: reduce) {
	.lzqf-carte--cafe .lzqf-carte__visuel img { transition: none; }
	.lzqf-carte--cafe:hover .lzqf-carte__visuel img { transform: none; }
}

.lzqf-format-avantage { display: inline-block; margin-left: .45rem; color: var(--wp--preset--color--gris); font-size: .82rem; font-weight: 600; white-space: nowrap; }
.woocommerce-cart .lzqf-format-avantage, .woocommerce-checkout .lzqf-format-avantage { display: block; margin: .25rem 0 0; }


/* Visuels d'origine réservés à la vitrine de l'accueil. */
.home .lzqf-carte .lzqf-home-origin { position: relative; display: block; isolation: isolate; aspect-ratio: 3 / 4; border-radius: 10px; overflow: hidden; background: #173d34; }
.home .lzqf-home-origin__photo, .home .lzqf-home-origin__copy, .home .lzqf-home-origin__package { position: absolute; inset: 0; }
.home .lzqf-carte .lzqf-home-origin__photo img { width: 100%; height: 100%; object-fit: cover; mix-blend-mode: normal; transform: none; }
.home .lzqf-home-origin__copy { display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 1rem; color: #fff; text-align: center; background: rgba(0,0,0,.53); }
.home .lzqf-home-origin__country { font-family: var(--wp--preset--font-family--titre); font-size: clamp(1.35rem,2.2vw,2rem); font-weight: 600; line-height: 1.1; text-transform: uppercase; }
.home .lzqf-home-origin__region { margin-top: .6rem; font-size: clamp(.75rem,1.25vw,1rem); text-transform: uppercase; }
.home .lzqf-home-origin__beans { display: flex; gap: .35rem; margin: 1rem 0 .65rem; }
.home .lzqf-home-origin__beans svg { width: 21px; height: 24px; opacity: .3; }
.home .lzqf-home-origin__beans svg.is-filled { opacity: 1; }
.home .lzqf-home-origin__notes { max-width: 27ch; font-size: .68rem; font-weight: 500; line-height: 1.5; text-transform: uppercase; }
.home .lzqf-home-origin__package { z-index: 2; background: #f4f3ef; opacity: 0; transition: opacity .28s ease; }
.home .lzqf-carte .lzqf-home-origin__package img { width: 100%; height: 100%; object-fit: contain; mix-blend-mode: multiply; transform: none; }
.home .lzqf-carte:focus-visible .lzqf-home-origin__package { opacity: 1; }
.home .lzqf-home-origin__touch { display: none; }
@media (hover: hover) and (pointer: fine) {
 .home .lzqf-carte:hover .lzqf-home-origin__package { opacity: 1; }
}
@media (hover: none), (pointer: coarse) {
 .home .lzqf-home-origin__touch { display: block; position: absolute; z-index: 3; right: .5rem; bottom: .5rem; width: 23%; aspect-ratio: 3 / 4; border: 2px solid #fff; border-radius: 4px; background: #f4f3ef; overflow: hidden; }
 .home .lzqf-carte .lzqf-home-origin__touch img { width: 100%; height: 100%; object-fit: contain; mix-blend-mode: multiply; transform: none; }
}
@media (max-width: 760px) {
 .home .lzqf-home-origin__copy { padding: .65rem .4rem 1.5rem; }
 .home .lzqf-home-origin__country { font-size: clamp(1.05rem,4vw,1.7rem); }
 .home .lzqf-home-origin__region { font-size: .7rem; }
 .home .lzqf-home-origin__beans { gap: .2rem; margin: .7rem 0 .5rem; }
 .home .lzqf-home-origin__beans svg { width: 17px; height: 20px; }
 .home .lzqf-home-origin__notes { font-size: .58rem; }
}
@media (prefers-reduced-motion: reduce) { .home .lzqf-home-origin__package { transition: none; } }

/* Prix lisible (police des titres, comme le prix du format choisi) ; avantage 1 kg en badge vert sur le seul format 1 kg (demandes de Tristan, 23 et 24/09). */
.lzqf-prix { white-space: nowrap; font-family: var(--wp--preset--font-family--titre); font-weight: 700; color: var(--wp--preset--color--vert); }
.wp-block-woocommerce-product-price.has-titre-m-font-size .lzqf-prix { font-size: 1.75rem; line-height: 1.2; }
.lzqf-prix__des { font-family: var(--wp--preset--font-family--texte); font-size: .5em; font-weight: 500; color: var(--wp--preset--color--gris); letter-spacing: .04em; text-transform: uppercase; vertical-align: .3em; }
.lzqf-choix { position: relative; }
.lzqf-choix .lzqf-badge-remise { position: absolute; top: -.7rem; right: .6rem; margin: 0; }
.lzqf-badge-remise { display: inline-flex; align-items: center; margin-left: .5rem; padding: .2rem .6rem; border-radius: 999px; background: var(--wp--preset--color--vert); color: #fff; font-family: var(--wp--preset--font-family--texte); font-size: .75rem; font-weight: 600; line-height: 1.3; vertical-align: .3em; white-space: nowrap; }
.single_variation .price del { color: var(--wp--preset--color--gris); font-size: .7em; font-weight: 400; margin-right: .35rem; }
.single_variation .price ins { text-decoration: none; }
.single_variation .lzqf-badge-remise { vertical-align: .1em; }
/* Carte profil au-dessus du formulaire d’achat (essai mobile du 24/09/2026, M-006) : le formulaire WooCommerce reste inchangé. */
@media (max-width: 767px) { .lzqf-profil-court { padding: 1rem; } }
.lzqf-similaires { margin-top: var(--wp--preset--spacing--70); }

/* Colonne de la galerie fixe au défilement, sous l’en-tête collant ; repères sous le formulaire d’achat (reprise de lzqf-ui-inspiration, 24/09). */
@media (min-width: 768px) { body.single-product main.wp-block-group > .wp-block-columns > .wp-block-column:first-child { position: sticky; top: calc(var(--wp-admin--admin-bar--height, 0px) + var(--lzqf-entete-h, 0px) + 1.5rem); align-self: flex-start; } }
.lzqf-product-promises{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.9rem;margin:1.2rem 0 0;padding:1rem 0;border-top:1px solid #dce4de;border-bottom:1px solid #dce4de}
.lzqf-product-promises p{display:grid;grid-template-columns:2rem minmax(0,1fr);column-gap:.55rem;align-content:start;min-width:0;margin:0}
.lzqf-product-promises p>span{grid-row:1/3;display:grid;place-items:center;width:2rem;height:2rem;border-radius:50%;background:#e4eee7;color:#123d34;font-weight:800}
.lzqf-product-promises strong{color:#123d34;font-size:.75rem;line-height:1.35}
.lzqf-product-promises small{margin-top:.2rem;color:#50615a;font-size:.69rem;line-height:1.4}
.lzqf-product-promises a{color:#123d34;text-underline-offset:.2em}
@media(max-width:600px){.lzqf-product-promises{grid-template-columns:1fr;gap:.8rem}.lzqf-product-promises p{grid-template-columns:2rem 1fr}.lzqf-product-promises strong{font-size:.82rem}.lzqf-product-promises small{font-size:.75rem}}

/* M-083 : engagements sous le bouton, deux colonnes aussi sur mobile. */
.lzqf-engagements { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .7rem 1rem; margin: 0 0 1rem; padding: 0; list-style: none; color: var(--wp--preset--color--encre); font-size: .875rem; line-height: 1.4; }
.lzqf-engagements li { display: flex; align-items: center; gap: .5rem; min-width: 0; margin: 0; padding: 0; }
.lzqf-engagements li span { min-width: 0; overflow-wrap: break-word; }
.lzqf-engagements .lzqf-picto { display: block; flex: 0 0 1.4rem; width: 1.4rem; height: 1.4rem; color: var(--wp--preset--color--vert); fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.lzqf-fiche-achat .wp-block-add-to-cart-form:has(.lzqf-engagements) form.cart { margin-bottom: .9rem; }

/* AC-07 (01/10) : bas de catégorie en cartes (2 colonnes dès 900 px), questions fréquentes en pleine largeur. */
.lzqf-texte-bas { width: 100%; padding-top: var(--wp--preset--spacing--60); }
.lzqf-texte-bas__grille { display: grid; grid-template-columns: 1fr; gap: 1.25rem; }
.lzqf-texte-bas__bloc { box-sizing: border-box; min-width: 0; padding: clamp(1.25rem, 3vw, 2rem); border-radius: 10px; background: var(--wp--preset--color--creme, #f7f4ec); }
.lzqf-texte-bas__bloc > :last-child { margin-bottom: 0; }
.lzqf-texte-bas__bloc h2 { margin-top: 0; font-size: clamp(1.35rem, 3vw, 1.7rem); }
.lzqf-texte-bas__bloc p, .lzqf-texte-bas__bloc ul, .lzqf-texte-bas__bloc ol { max-width: 68ch; }
.lzqf-texte-bas__bloc--faq { background: transparent; padding-inline: 0; }
.lzqf-texte-bas__bloc--faq details { max-width: 80ch; }
@media (min-width: 900px) {
	.lzqf-texte-bas__grille { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem; }
	.lzqf-texte-bas__bloc--faq { grid-column: 1 / -1; }
}
