/* En-tête « menu A » (D-042) : cinq entrées, méga-menu « Nos cafés » à pictogrammes, bouton « Trouver mon café ».
   Un seul conteneur (wideSize) pour le logo, le menu et le panneau déplié ; menu repliable sous 1080 px. */
.lzqf-topbar { padding: .45rem 1rem; font-size: .78rem; line-height: 1.35; }
.lzqf-topbar p { margin: 0; font-weight: 500; letter-spacing: .01em; }
.lzqf-site-header { position: relative; z-index: 30; border-bottom: 1px solid #e2e5e0; color: var(--wp--preset--color--encre); }
.lzqf-site-header__inner { display: flex !important; align-items: center; gap: clamp(1rem, 2.4vw, 2.25rem) !important; width: min(100%, var(--wp--style--global--wide-size)); max-width: var(--wp--style--global--wide-size) !important; min-height: 6.25rem; margin: 0 auto; }
.lzqf-brand { display: block; flex: 0 0 6.75rem; line-height: 0; }
.lzqf-brand img { display: block; width: 100%; height: auto; }
.lzqf-nav { flex: 1 1 auto; min-width: 0; }
.lzqf-nav__list { display: flex; align-items: center; gap: clamp(1rem, 1.9vw, 1.75rem); margin: 0; padding: 0; list-style: none; }
.lzqf-nav__list > li { margin: 0; padding: 0; }
.lzqf-nav__list > li > a, .lzqf-nav__details > summary { display: inline-flex; align-items: center; gap: .35rem; min-height: 44px; color: var(--wp--preset--color--encre); font-size: .9rem; font-weight: 600; line-height: 1.2; text-decoration: none; text-underline-offset: .35em; white-space: nowrap; }
.lzqf-nav__list > li > a:hover, .lzqf-nav__details > summary:hover { color: var(--wp--preset--color--vert); text-decoration: underline; }
.lzqf-nav__details > summary { cursor: pointer; list-style: none; }
.lzqf-nav__details > summary::-webkit-details-marker { display: none; }
/* Chevron SVG centré sur la ligne de texte (l'ancien caractère « ⌄ » tombait sous la ligne, audit M-029). */
.lzqf-nav__details > summary > span { display: inline-flex; align-items: center; line-height: 0; transition: transform .18s ease; }
.lzqf-nav__details[open] > summary { color: var(--wp--preset--color--vert); box-shadow: inset 0 -2px var(--wp--preset--color--vert); }
.lzqf-nav__details[open] > summary > span { transform: rotate(180deg); }

/* Panneau du méga-menu : toute la largeur, contenu dans le conteneur. */
.lzqf-mega { position: absolute; top: 100%; right: 0; left: 0; max-height: 75vh; overflow: auto; border-top: 1px solid #e2e5e0; background: var(--wp--preset--color--blanc); box-shadow: 0 20px 24px rgba(18, 61, 52, .08); }
.lzqf-mega__inner { width: min(100% - 2 * clamp(1.25rem, 3.75vw, 3rem), var(--wp--style--global--wide-size)); margin: 0 auto; padding: 2.25rem 0 1.75rem; }
.lzqf-mega__top { display: flex; align-items: baseline; justify-content: space-between; gap: 1.5rem; padding-bottom: 1.25rem; border-bottom: 1px solid #e2e5e0; }
.lzqf-mega__top strong { color: var(--wp--preset--color--vert); font-family: var(--wp--preset--font-family--titre); font-size: clamp(1.25rem, 1.8vw, 1.6rem); font-weight: 600; letter-spacing: -.02em; }
.lzqf-mega__top a, .lzqf-mega__bottom a { color: var(--wp--preset--color--vert); font-size: .92rem; font-weight: 600; text-underline-offset: .3em; }
.lzqf-mega__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 2.25rem; padding: 1.75rem 0; }
.lzqf-mega__col { display: flex; min-width: 0; flex-direction: column; align-items: flex-start; }
.lzqf-mega__heading { display: flex; align-items: center; gap: .7rem; margin: 0 0 .5rem; }
.lzqf-mega__heading strong { color: var(--wp--preset--color--encre); font-size: .95rem; font-weight: 600; }
.lzqf-mega__icon { display: grid; flex: 0 0 2.4rem; width: 2.4rem; height: 2.4rem; place-items: center; border-radius: 50%; background: #f0eadf; color: var(--wp--preset--color--vert); }
.lzqf-mega__icon svg { width: 1.35rem; height: 1.35rem; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.lzqf-mega__col > a { display: flex; align-items: center; min-height: 40px; color: #323833; font-size: .92rem; text-decoration: none; text-underline-offset: .25em; }
.lzqf-mega__col > a:hover { color: var(--wp--preset--color--vert); text-decoration: underline; }
.lzqf-mega__bottom { display: flex; flex-wrap: wrap; gap: .5rem 2rem; padding-top: 1.1rem; border-top: 1px solid #e2e5e0; }
.lzqf-mega__bottom a { display: inline-flex; align-items: center; min-height: 44px; }

/* Actions : bouton, compte, recherche, panier. */
.lzqf-header-actions { display: flex !important; flex: 0 0 auto; align-items: center; flex-wrap: nowrap !important; gap: .35rem !important; margin-left: auto; }
.lzqf-header-cta { display: inline-flex; align-items: center; min-height: 44px; margin-right: .6rem; padding: .6rem 1.1rem; box-sizing: border-box; border-radius: var(--wp--custom--radius--bouton); background: var(--wp--preset--color--vert); color: var(--wp--preset--color--blanc); font-size: .85rem; font-weight: 600; text-decoration: none; white-space: nowrap; }
.lzqf-header-cta:hover { background: var(--wp--preset--color--vert-2); color: var(--wp--preset--color--blanc); }
.lzqf-account { display: inline-flex; align-items: center; gap: .4rem; min-height: 44px; padding: .3rem .4rem; color: var(--wp--preset--color--encre); font-size: .8rem; font-weight: 500; line-height: 1.2; text-decoration: none; white-space: nowrap; }
.lzqf-account:hover { color: var(--wp--preset--color--vert); }
.lzqf-site-header .wp-block-search { width: 44px; margin: 0; }
.lzqf-site-header .wp-block-search__button, .lzqf-site-header .wc-block-mini-cart__button { min-width: 44px; min-height: 44px; margin: 0; padding: .5rem; background: transparent; color: var(--wp--preset--color--encre); }
.lzqf-site-header a:focus-visible, .lzqf-site-header summary:focus-visible, .lzqf-site-header button:focus-visible { outline: 3px solid var(--wp--preset--color--or-fonce); outline-offset: 3px; }

/* Tiroir du mini-panier fermé (aria-hidden) : invisible aussi pour le clavier (audit Lighthouse « aria-hidden contient des éléments focalisables »).
   La visibilité bascule après le glissement de fermeture, et tout de suite à l'ouverture. */
.wc-block-mini-cart__drawer[aria-hidden="true"] { visibility: hidden; transition: visibility 0s .3s; }

/* Recherche de l'en-tête mobile (M-032, audit M-029) : loupe à côté du panier, champ déplié sous l'en-tête. */
.lzqf-recherche-mobile { display: none; }
.lzqf-recherche-mobile > summary { display: grid; place-items: center; width: 44px; min-height: 44px; cursor: pointer; list-style: none; color: var(--wp--preset--color--encre); }
.lzqf-recherche-mobile > summary::-webkit-details-marker { display: none; }
.lzqf-recherche-mobile > summary > span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.lzqf-recherche-mobile[open] > summary { background: var(--wp--preset--color--creme); outline: 2px solid var(--wp--preset--color--vert); outline-offset: 2px; }
.lzqf-recherche-mobile__panneau { position: absolute; top: 100%; right: 0; left: 0; padding: .75rem clamp(1.25rem, 3.75vw, 3rem) 1rem; border-top: 1px solid #e2e5e0; background: var(--wp--preset--color--blanc); box-shadow: 0 16px 30px rgba(18, 61, 52, .12); }
.lzqf-recherche-mobile__panneau .lzqf-menu-mobile__recherche { margin: 0; }

/* Menu mobile. */
.lzqf-menu-mobile { display: none; }
.lzqf-menu-mobile > summary { display: inline-flex; align-items: center; gap: .45rem; min-height: 44px; padding: 0 .35rem; cursor: pointer; list-style: none; color: var(--wp--preset--color--encre); font-size: .9rem; font-weight: 600; }
.lzqf-menu-mobile > summary::-webkit-details-marker { display: none; }
/* Panneau du menu mobile, en rubriques (demande de Tristan, 23/09) : recherche, La boutique, Choisir son café, Le Zèbre qui Fume. */
.lzqf-menu-mobile__panneau { position: absolute; top: 100%; right: 0; left: 0; max-height: calc(100dvh - var(--lzqf-entete-h, 5rem) - var(--wp-admin--admin-bar--height, 0px)); overflow-y: auto; padding: 1rem clamp(1.25rem, 3.75vw, 3rem) 1.75rem; border-top: 1px solid #e2e5e0; background: var(--wp--preset--color--blanc); box-shadow: 0 16px 30px rgba(18, 61, 52, .12); }
.lzqf-menu-mobile__recherche { display: flex; align-items: center; margin: 0 0 .5rem; border: 1px solid #cdd3cd; border-radius: 6px; background: #fafaf7; }
.lzqf-menu-mobile__recherche input { flex: 1; min-width: 0; min-height: 48px; padding: 0 .9rem; border: 0; background: transparent; font: inherit; font-size: 1rem; }
.lzqf-menu-mobile__recherche input:focus { outline: none; }
.lzqf-menu-mobile__recherche:focus-within { border-color: var(--wp--preset--color--vert); outline: 3px solid var(--wp--preset--color--or-fonce); outline-offset: 1px; }
.lzqf-menu-mobile__recherche button { display: grid; place-items: center; width: 48px; min-height: 48px; border: 0; background: transparent; color: var(--wp--preset--color--vert); cursor: pointer; }
.lzqf-menu-mobile__titre { margin: 1.4rem 0 .35rem; color: var(--wp--preset--color--or-fonce); font-size: .72rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.lzqf-menu-mobile__liens { display: grid; }
.lzqf-menu-mobile__liens a { display: flex; align-items: center; justify-content: space-between; min-height: 48px; border-bottom: 1px solid #eef0ec; color: var(--wp--preset--color--encre); font-size: 1rem; font-weight: 500; text-decoration: none; }
.lzqf-menu-mobile__liens a::after { content: "›"; color: #b8bfbb; font-size: 1.3rem; }
/* Essai mobile du 24/09/2026 validé (M-006) : deux raccourcis en tête du panneau, badge « Nouveau » du Drip, cibles de 44 px. */
.lzqf-menu-mobile__raccourcis { display: grid; grid-template-columns: minmax(0, 1fr); gap: 10px; margin: 0 0 1.25rem; }
.lzqf-menu-mobile__raccourcis a { display: flex; align-items: center; min-height: 48px; box-sizing: border-box; padding: 12px; border: 1px solid var(--wp--preset--color--vert); color: var(--wp--preset--color--vert); font-size: 1rem; font-weight: 600; text-decoration: none; overflow-wrap: anywhere; }
.lzqf-menu-mobile__raccourcis a:first-child { background: var(--wp--preset--color--vert); color: var(--wp--preset--color--creme); }
.lzqf-menu-mobile__badge { margin: 0 auto 0 .75rem; padding: 3px 8px; background: var(--wp--preset--color--creme); color: var(--wp--preset--color--vert); font-size: .8125rem; font-weight: 600; }
.lzqf-menu-mobile[open] > summary { background: var(--wp--preset--color--creme); outline: 2px solid var(--wp--preset--color--vert); outline-offset: 2px; }
.lzqf-menu-mobile__panneau > details { border-bottom: 1px solid #eef0ec; }
.lzqf-menu-mobile__panneau > details > summary { display: flex; align-items: center; gap: .75rem; min-height: 52px; cursor: pointer; list-style: none; font-size: 1rem; font-weight: 500; }
.lzqf-menu-mobile__panneau > details > summary::after { content: "+"; margin-left: auto; color: var(--wp--preset--color--vert); font-size: 1.3rem; font-weight: 400; }
.lzqf-menu-mobile__panneau > details[open] > summary::after { content: "−"; }
.lzqf-menu-mobile__panneau > details > summary::-webkit-details-marker { display: none; }
.lzqf-menu-mobile__panneau > details > div { display: grid; padding: 0 0 .75rem 3.15rem; }
.lzqf-menu-mobile__panneau > details a { display: flex; align-items: center; min-height: 44px; color: #323833; font-size: .95rem; text-decoration: none; }

@media (max-width: 1080px) {
  .lzqf-nav, .lzqf-header-cta { display: none; }
  .lzqf-menu-mobile, .lzqf-recherche-mobile { display: block; }
  .lzqf-site-header__inner { min-height: 5rem; }
  .lzqf-brand { flex-basis: 5.75rem; }
}
@media (max-width: 600px) {
  .lzqf-topbar { font-size: .72rem; }
  .lzqf-site-header__inner { min-height: 4.5rem; gap: .5rem !important; }
  .lzqf-brand { flex-basis: 5rem; }
  .lzqf-account span, .lzqf-menu-mobile > summary > span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
  .lzqf-header-actions { gap: 0 !important; }
}
@media (prefers-reduced-motion: reduce) {
  .lzqf-nav__details > summary > span { transition: none; }
}

/* En-tête collant (demande de Tristan, 23/09) : le bandeau vert (M-018, 25/09) et l'en-tête restent ensemble en haut et se resserre
   au défilement (classe posée par navigation.js, qui publie aussi sa hauteur dans --lzqf-entete-h). */
.wp-block-template-part:has(> .lzqf-site-header) { position: sticky; top: var(--wp-admin--admin-bar--height, 0px); z-index: 40; }
.lzqf-site-header { transition: box-shadow .2s; }
.lzqf-defile .lzqf-site-header { box-shadow: 0 6px 18px rgba(18, 61, 52, .08); }
.lzqf-defile .lzqf-site-header__inner { min-height: 4.25rem; }
.lzqf-defile .lzqf-brand { flex-basis: 4.75rem; }
html { scroll-padding-top: calc(var(--wp-admin--admin-bar--height, 0px) + var(--lzqf-entete-h, 5rem) + 1rem); }
@media (max-width: 600px) {
  .lzqf-defile .lzqf-site-header__inner { min-height: 3.75rem; }
  .lzqf-defile .lzqf-brand { flex-basis: 4rem; }
}
/* Si l'en-tête est sur deux lignes (logo centré au-dessus du menu, home-polish.css),
   il repasse sur une seule ligne au défilement : logo, menu, actions. Sans effet sur la version en flex. */
.lzqf-defile .lzqf-site-header .lzqf-site-header__inner { grid-template-columns: auto minmax(0, 1fr) auto; column-gap: 2rem !important; padding-block: .4rem; }
.lzqf-defile .lzqf-site-header .lzqf-site-header__inner > .lzqf-brand { grid-row: 1; grid-column: 1; justify-self: start; width: 80px; margin: 0; }
.lzqf-defile .lzqf-site-header .lzqf-site-header__inner > .lzqf-nav { grid-row: 1; grid-column: 2; }
.lzqf-defile .lzqf-site-header .lzqf-site-header__inner > .lzqf-header-actions { grid-row: 1; grid-column: 3; }
@media (max-width: 1080px) {
  .lzqf-defile .lzqf-site-header .lzqf-site-header__inner > .lzqf-brand { width: 56px; }
}

/* Fil d'Ariane (fiches, catégories) : discret, chevrons, étape courante en vert ; une seule ligne défilante sur mobile. */
.lzqf-ariane .woocommerce-breadcrumb { display: flex; flex-wrap: wrap; align-items: center; gap: .15rem .35rem; margin: 0; color: var(--wp--preset--color--gris); font-size: .8125rem; line-height: 1.3; }
.lzqf-ariane__etape a { display: inline-flex; align-items: center; min-height: 32px; padding: 0 .55rem; border-radius: 999px; color: var(--wp--preset--color--gris); text-decoration: none; transition: background-color .15s, color .15s; }
.lzqf-ariane__etape:first-child a { padding-left: 0; }
.lzqf-ariane__etape a:hover { background: var(--wp--preset--color--creme); color: var(--wp--preset--color--vert); }
.lzqf-ariane__etape:first-child a:hover { padding-left: .55rem; margin-left: -.55rem; }
.lzqf-ariane__etape:last-child { padding: .3rem .7rem; border-radius: 999px; background: var(--wp--preset--color--creme); color: var(--wp--preset--color--vert); font-weight: 600; }
.lzqf-ariane__sep { display: inline-flex; color: #aab3ae; }
@media (max-width: 600px) {
  .lzqf-ariane .woocommerce-breadcrumb { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; white-space: nowrap; }
  .lzqf-ariane .woocommerce-breadcrumb::-webkit-scrollbar { display: none; }
}


/* Composants communs à toutes les pages : surtitre et lien fléché. */
.lzqf-surtitre { margin: 0 0 1.1rem; color: var(--wp--preset--color--vert-2); font-size: .75rem; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; }
.lzqf-lien-fleche { display: inline-flex; align-items: center; min-height: 44px; color: var(--wp--preset--color--vert); font-size: .95rem; font-weight: 600; text-underline-offset: .3em; }
.lzqf-lien-fleche:hover { text-decoration-thickness: 2px; }

/* Mini-panier (tiroir) : simple et lisible (demande de Tristan, 23/09). Gabarit : parts/mini-cart.html. */
.wc-block-mini-cart__drawer .wc-block-mini-cart__title { margin: 0; padding: 1.5rem 1.5rem 1rem; border-bottom: 1px solid #e2e5e0; color: var(--wp--preset--color--vert); font-family: var(--wp--preset--font-family--titre); font-size: 1.6rem; font-weight: 600; letter-spacing: -.02em; }
.wc-block-mini-cart__drawer .lzqf-mini-livraison { padding: 1rem 1.5rem .9rem; border-bottom: 1px solid #e2e5e0; background: var(--wp--preset--color--blanc); }
.wc-block-mini-cart__drawer .lzqf-mini-livraison__rail { height: 7px; overflow: hidden; border-radius: 999px; background: #ece8de; }
.wc-block-mini-cart__drawer .lzqf-mini-livraison__progres { display: block; height: 100%; border-radius: inherit; background: var(--wp--preset--color--vert-2); transition: width .25s ease; }
.wc-block-mini-cart__drawer .lzqf-mini-livraison p { margin: .55rem 0 0; color: var(--wp--preset--color--vert); font-size: .875rem; line-height: 1.4; }
.wc-block-mini-cart__drawer .lzqf-mini-livraison strong { font-weight: 600; }
.wc-block-mini-cart__drawer .wc-block-mini-cart__items { padding: 0 1.5rem; }
.wc-block-mini-cart__drawer .wc-block-cart-items__row { padding: 1.1rem 0 !important; border-bottom: 1px solid #eef0ec; }
.wc-block-mini-cart__drawer .wc-block-cart-item__image img { border-radius: 4px; background: #f4f3ef; mix-blend-mode: multiply; }
.wc-block-mini-cart__drawer .wc-block-components-product-name { color: var(--wp--preset--color--vert); font-weight: 600; text-decoration: none; }
.wc-block-mini-cart__drawer .wc-block-components-product-name:hover { text-decoration: underline; }
.wc-block-mini-cart__drawer .wc-block-cart-item__prices { display: none; }
.wc-block-mini-cart__drawer .wc-block-components-product-metadata { margin: .2rem 0 .5rem; color: var(--wp--preset--color--gris); font-size: .8rem; }
.wc-block-mini-cart__drawer .wc-block-cart-item__total .wc-block-components-product-price { color: var(--wp--preset--color--encre); font-weight: 600; }
.wc-block-mini-cart__drawer .wc-block-components-quantity-selector { border-color: #d6dbd6; border-radius: 4px; }
.wc-block-mini-cart__drawer .wc-block-mini-cart__footer { padding: .65rem 1.25rem .7rem; border-top: 0; background: var(--wp--preset--color--creme); }
.wc-block-mini-cart__drawer .wc-block-mini-cart__footer-subtotal { margin-bottom: .35rem; font-family: var(--wp--preset--font-family--titre); font-size: .9rem; }
.wc-block-mini-cart__drawer .wc-block-mini-cart__footer-subtotal .wc-block-components-totals-item__label,
.wc-block-mini-cart__drawer .wc-block-mini-cart__footer-subtotal .wc-block-components-totals-item__value,
.wc-block-mini-cart__drawer .wc-block-mini-cart__footer-subtotal .wc-block-components-totals-item__value strong { font-size: .9rem !important; line-height: 1.3; }
.wc-block-mini-cart__drawer .wc-block-components-totals-item__description { color: var(--wp--preset--color--gris); font-size: .78rem; }
.wc-block-mini-cart__drawer .wc-block-mini-cart__footer-actions { display: grid; grid-template-columns: 1fr; gap: .35rem; }
.wc-block-mini-cart__drawer .wc-block-mini-cart__footer-actions a { box-sizing: border-box; min-height: 44px; padding: .5rem .75rem !important; font-size: .875rem !important; line-height: 1.3; }
.wc-block-mini-cart__drawer .wc-block-mini-cart__footer-checkout { order: -1; border-radius: 3px; background: var(--wp--preset--color--vert); color: #fff; font-weight: 600; }
.wc-block-mini-cart__drawer .wc-block-mini-cart__footer-cart { border: 0 !important; background: transparent !important; color: var(--wp--preset--color--vert) !important; font-weight: 500; text-decoration: underline; text-underline-offset: .2em; box-shadow: none !important; }
.woocommerce-message .wc-forward { margin-right: 1rem; margin-bottom: .35rem; }
.lzqf-mini-panier-vide { margin: 3rem 1.5rem 1rem; color: var(--wp--preset--color--gris); }
/* Bandeau du haut : drapeau français en SVG (l'emoji s'affiche « FR » sous Windows). */
.lzqf-topbar__texte { text-align: center; }
.lzqf-topbar__france { display: inline-flex; align-items: center; gap: .4rem; white-space: nowrap; }
.lzqf-drapeau { display: block; width: 18px; height: 12px; border-radius: 2px; box-shadow: 0 0 0 1px rgba(247, 243, 234, .35); }
