/* ==== v61 - 2026-09-19 - LES VISUELS DE MISS BUD PASSENT AU DESSIN REFAIT ====
   Les 92 visuels redessines le 2026-09-14 sont en ligne sous <nom>-v2.<ext> : le
   gestionnaire de fichiers n ecrase jamais, et le jumeau .png.webp fabrique la nuit
   n est jamais refait — seul un nom neuf atteint le visiteur.

   Ce que cette version change ici, et rien d autre :
   1. les fonds de jour poses en CSS (page introuvable, recherche vide, panier vide,
      confirmation de commande, page des magasins, pastille du fil d Ariane) pointent
      le fichier -v2 ;
   2. les selecteurs de saison visaient le nom ANCIEN ecrit dans la page. Le module
      lvvmissbudv2 y ecrit desormais le nom -v2 : les selecteurs le suivent, sinon la
      saison decrocherait en silence et rendrait le dessin de jour.

   Les noms de saison (<nom>-nuit.png) ne bougent pas. Le 2 novembre, retirer la classe
   lvv-nuit rend donc le dessin de jour REFAIT, et non plus l ancien.
   ============================================================================ */

/* La Voie Verte — feuille unique, servie par le module lvvstyles.
   Concatenation des feuilles de DIX blocs HTML Box, dans l ordre exact ou le
   document les servait. Construite depuis les champs vivants du back-office.

   LE BLOC 23 EST LE DERNIER DU FICHIER, et ce n est pas un hasard : il etait le
   dernier du document. Il a ete repris le 2026-09-05 apres que son champ se soit
   stabilise (une autre session le reecrivait pendant la migration : 47 765 ->
   51 427 -> 51 585 signes, puis plus rien pendant un quart d heure).

   Toute modification : editer ici, incrementer CSS_VERSION et version dans
   lvvstyles.php, reimporter le zip. */

/* ==== DEBUT - LA VOIE VERTE : l or remplace la couleur du theme - 2026-09-10 ==== */
/* PLACEE EN TETE DE FEUILLE, VOLONTAIREMENT.
   La couleur principale du theme classic est le turquoise #88BDB4 de l ancienne
   charte : 74 emplois dans theme.css et custom.css (liens, boutons, pagination,
   onglets, survols), plus ses variantes de survol et d etat actif. Nos sections
   la recouvrent la ou elles passent ; partout ailleurs il reapparaissait (plan
   du site, marques, contact, magasins, mot de passe oublie...).

   Chaque regle ci-dessous REPREND UN SELECTEUR DU THEME A L IDENTIQUE, meme
   @media, meme !important, et ne remplace que la couleur, par l or de meme
   role :
     turquoise de base     texte #75591F   fond et bordure #B08D3F
     variantes foncees     texte #5E4718   fond et bordure #8C6E2E   (survol, actif)
     variantes claires     #D2B269                                   (survol sur fond sombre)
     texte blanc pose sur un fond turquoise -> encre #1A2120 (lisible sur l or,
     comme le bouton de la lettre d information)

   POURQUOI EN TETE : a specificite egale, cette feuille passe devant le theme
   (elle est chargee apres lui), mais toutes nos sections qui suivent passent
   devant elle. La cascade existante ne change pas : seule la couleur de fond
   du theme change. Les bleus « info » de Bootstrap (alertes, badges) ne sont
   pas l ancienne charte et ne sont pas touches.

   Genere par or-du-theme-2026-09-10/genere_or_du_theme.py depuis les feuilles
   du theme telles que servies le 2026-09-10.
   POUR REVENIR EN ARRIERE : supprimer cette section. */
a{color:#75591F}
a:focus,
a:hover{color:#5E4718}
.btn-primary{color:#1A2120;background-color:#B08D3F}
.btn-primary.focus,
.btn-primary:focus,
.btn-primary:hover{color:#1A2120;background-color:#8C6E2E}
.btn-primary.active,
.btn-primary:active,
.open>.btn-primary.dropdown-toggle{color:#1A2120;background-color:#8C6E2E}
.btn-primary.active.focus,
.btn-primary.active:focus,
.btn-primary.active:hover,
.btn-primary:active.focus,
.btn-primary:active:focus,
.btn-primary:active:hover,
.open>.btn-primary.dropdown-toggle.focus,
.open>.btn-primary.dropdown-toggle:focus,
.open>.btn-primary.dropdown-toggle:hover{color:#1A2120;background-color:#8C6E2E}
.btn-primary.disabled.focus,
.btn-primary.disabled:focus,
.btn-primary.disabled:hover,
.btn-primary:disabled.focus,
.btn-primary:disabled:focus,
.btn-primary:disabled:hover{background-color:#B08D3F}
.btn-outline-primary{color:#75591F;border-color:#B08D3F}
.btn-outline-primary.active,
.btn-outline-primary.focus,
.btn-outline-primary:active,
.btn-outline-primary:focus,
.btn-outline-primary:hover,
.open>.btn-outline-primary.dropdown-toggle{color:#1A2120;background-color:#B08D3F;border-color:#B08D3F}
.btn-outline-primary.active.focus,
.btn-outline-primary.active:focus,
.btn-outline-primary.active:hover,
.btn-outline-primary:active.focus,
.btn-outline-primary:active:focus,
.btn-outline-primary:active:hover,
.open>.btn-outline-primary.dropdown-toggle.focus,
.open>.btn-outline-primary.dropdown-toggle:focus,
.open>.btn-outline-primary.dropdown-toggle:hover{color:#1A2120;background-color:#8C6E2E;border-color:#8C6E2E}
.btn-outline-primary.disabled.focus,
.btn-outline-primary.disabled:focus,
.btn-outline-primary.disabled:hover,
.btn-outline-primary:disabled.focus,
.btn-outline-primary:disabled:focus,
.btn-outline-primary:disabled:hover{border-color:#D2B269}
.btn-link{color:#75591F}
.btn-link:focus,
.btn-link:hover{color:#5E4718}
.dropdown-item.active,
.dropdown-item.active:focus,
.dropdown-item.active:hover{color:#1A2120;background-color:#B08D3F}
.nav-pills .nav-item.open .nav-link,
.nav-pills .nav-item.open .nav-link:focus,
.nav-pills .nav-item.open .nav-link:hover,
.nav-pills .nav-link.active,
.nav-pills .nav-link.active:focus,
.nav-pills .nav-link.active:hover{color:#1A2120;background-color:#B08D3F}
.card-primary{background-color:#B08D3F;border-color:#B08D3F}
.card-outline-primary{border-color:#B08D3F}
.page-item.active .page-link,
.page-item.active .page-link:focus,
.page-item.active .page-link:hover{color:#1A2120;background-color:#B08D3F;border-color:#B08D3F}
.page-link{color:#75591F}
.page-link:focus,
.page-link:hover{color:#5E4718}
.tag-primary{background-color:#B08D3F}
.tag-primary[href]:focus,
.tag-primary[href]:hover{background-color:#8C6E2E}
.list-group-item.active,
.list-group-item.active:focus,
.list-group-item.active:hover{color:#1A2120;background-color:#B08D3F;border-color:#B08D3F}
.bg-primary{background-color:#B08D3F !important}
a.bg-primary:focus,
a.bg-primary:hover{background-color:#8C6E2E !important}
.text-primary{color:#75591F !important}
a.text-primary:focus,
a.text-primary:hover{color:#5E4718 !important}
a:hover{color:#75591F}
.btn-unstyle:focus .expand-more{color:#75591F}
.form-control:focus,
.input-group.focus{outline-color:#B08D3F}
.form-control-submit.disabled{background-color:#D2B269;color:#1A2120}
.bootstrap-touchspin .group-span-filestyle .btn-touchspin,
.group-span-filestyle .bootstrap-touchspin .btn-touchspin,
.group-span-filestyle .btn-default{background-color:#B08D3F;color:#1A2120}
.custom-radio input[type=radio]:checked+span{background-color:#B08D3F}
.dropdown:hover .expand-more{color:#75591F}
.dropdown-item:focus,
.dropdown-item:hover{color:#75591F}
.search-widget form input[type=text]:focus{outline-color:#B08D3F}
.search-widget form input[type=text]:focus+button .search{color:#75591F}
.search-widget form button[type=submit] .search:hover{color:#75591F}
#header .top-menu a[data-depth="0"]:hover{color:#75591F}
.top-menu .sub-menu a:hover{color:#75591F}
body#checkout a:hover{color:#5E4718}
body#checkout section.checkout-step .address-item.selected{border-color:#B08D3F}
.page-my-account #content .links a:hover i{color:#75591F}
.carousel .carousel-control .icon-next:hover i,
.carousel .carousel-control .icon-prev:hover i{color:#75591F}
#products .highlighted-informations .quick-view:hover,
.featured-products .highlighted-informations .quick-view:hover,
.product-accessories .highlighted-informations .quick-view:hover,
.product-miniature .highlighted-informations .quick-view:hover{color:#75591F}
.brands-sort .select-list:hover,
.products-sort-order .select-list:hover,
.suppliers-sort .select-list:hover{background-color:#B08D3F;color:#1A2120}
.facet-dropdown.open>.select-title{border-color:#B08D3F}
.facet-dropdown .select-list:hover{background-color:#B08D3F;color:#1A2120}
.pagination .current a{color:#75591F}
.block-categories .collapse-icons .add:hover,
.block-categories .collapse-icons .remove:hover{color:#75591F}
.block-categories .arrows .arrow-down:hover,
.block-categories .arrows .arrow-right:hover{color:#75591F}
.product-price{color:#75591F}
.tabs .nav-tabs .nav-link.active{color:#75591F}
.tabs .nav-tabs .nav-link.active,
.tabs .nav-tabs .nav-link:hover{border-bottom-color:#B08D3F}
#product-modal .modal-content .modal-body .product-images img:hover{border-color:#B08D3F}
#blockcart-modal .product-name{color:#75591F}
.product-images>li.thumb-container>.thumb.selected,
.product-images>li.thumb-container>.thumb:hover{border-color:#B08D3F}
.product-flags li.product-flag{background-color:#B08D3F;color:#1A2120}
.product-customization .product-message:focus{outline-color:#B08D3F}
.cart-grid-body a.label:hover{color:#75591F}
.block-promo .promo-input+button{border-color:#B08D3F}
.block-promo .promo-code-button.cancel-promo{color:#75591F}
.account-list a:hover{color:#75591F}
.block-social ul li:hover{background-color:#B08D3F}
.footer-container li a:hover{color:#75591F}
.block_newsletter form input[type=text]:focus{outline-color:#B08D3F}
.block_newsletter form input[type=text]:focus+button .search{color:#75591F}
.block_newsletter form button[type=submit] .search:hover{color:#75591F}
.block_newsletter form input[type=email]:focus{border-color:#B08D3F}
#header a:hover{color:#75591F;color:#75591F !important}
#header .header-nav .cart-preview.active{background-color:#B08D3F}
#header .header-nav .blockcart a:hover{color:#75591F}
@media (max-width:767px){
#header .header-nav .user-info .logged{color:#75591F}
}
#header .header-bg-top a:hover{color:#D2B269}
#header .header-bg-top #search-container:hover{color:#D2B269}
#header .header-top.header-bg-top a:hover{color:#75591F !important}
#search_container:hover{color:#75591F}
.product-comment-modal .post-comment-buttons .btn-comment{background-color:#B08D3F}
.btn-comment,
.btn-comment-inverse{color:#75591F}
#search_filters .ui-widget-header{background-color:#B08D3F}
/* ==== FIN - LA VOIE VERTE : l or remplace la couleur du theme ==== */

/* ==================================================================
   colonne de filtres des rayons
   Reprise du bloc HTML Box n 17, dans l ordre ou le document le
   servait le 2026-09-04. Ne pas reordonner : a specificite egale,
   c est cet ordre qui decide.
   ================================================================== */
/* ~~~~ LA VOIE VERTE : colonne de filtres des rayons - 2026-08-30 ~~~~ */
/* Bloc a part, et non une section de plus dans la feuille des correctifs : ce
   champ-la est plein (il se coupe autour de 64 000 signes, une regle a moitie
   ecrite a la fin) et deux sessions y ecrivaient en meme temps.
   La colonne de gauche etait une liste posee a nu sur le fond vert : ni cadre,
   ni rappel des tuiles de rayon qui lui font face, et pas une case a cocher
   visible. Elle devient un panneau creme, bandeau sombre et filet or comme les
   tuiles, cases rendues a la vue, lignes cliquables sur toute leur largeur,
   curseur de prix aux couleurs de la maison. Le tiroir du telephone recoit le
   meme traitement plus bas. */
@media (min-width:992px){
  #left-column #search_filters_wrapper{padding:0;}
  #left-column #search_filters{margin:0 0 0 17px;padding:0 0 6px;background:linear-gradient(180deg,#FFFEFB 0%,#FAF8F2 100%);border:1px solid rgba(46,74,50,.18);border-radius:3px;overflow-x:hidden;overflow-y:auto;box-shadow:0 1px 2px rgba(26,33,32,.05),0 14px 34px rgba(26,33,32,.09);scrollbar-width:thin;scrollbar-color:rgba(46,74,50,.3) transparent;}
  #left-column #search_filters::-webkit-scrollbar{width:6px;}
  #left-column #search_filters::-webkit-scrollbar-track{background:transparent;}
  #left-column #search_filters::-webkit-scrollbar-thumb{background:rgba(46,74,50,.28);border-radius:3px;}
  #left-column #search_filters::-webkit-scrollbar-thumb:hover{background:rgba(46,74,50,.45);}
  /* Bandeau de tete : meme encre, meme Marcellus et meme filet or que les
     tuiles de rayon. Il reste colle quand le panneau defile chez lui. */
  #left-column #search_filters > p.text-uppercase.h6{position:sticky;top:0;z-index:2;margin:0;padding:19px 20px 23px;background:#1A2120;color:#F4F1E8;font-family:var(--lvv-titre);font-weight:400;font-size:14.5px;letter-spacing:.26em;text-align:center;box-shadow:inset 0 0 0 1px rgba(176,141,63,.22);border-bottom:1px solid rgba(176,141,63,.55);}
  #left-column #search_filters > p.text-uppercase.h6::after{content:'';position:absolute;left:50%;bottom:13px;width:34px;height:1px;margin-left:-17px;background:#B08D3F;}
  /* Effacer tout : pastille discrete, pas un bouton gris du theme. */
  #left-column #search_filters .clear-all-wrapper{margin:0;padding:12px 20px 0;}
  #left-column #search_filters .clear-all-wrapper .btn{display:inline-flex;align-items:center;width:auto;margin:0;padding:5px 12px 5px 8px;background:none;border:1px solid rgba(46,74,50,.22);border-radius:999px;box-shadow:none;font-family:var(--lvv-texte);font-weight:600;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:#2E4A32;transition:border-color .18s ease,color .18s ease;}
  #left-column #search_filters .clear-all-wrapper .btn:hover{background:none;border-color:#B08D3F;color:#B08D3F;}
  #left-column #search_filters .clear-all-wrapper .btn .material-icons{margin-right:4px;font-size:15px;}
  /* Le filet qui separe deux facettes s efface sur les bords : un trait pleine
     largeur dans une carte fait cloison, celui-ci fait pause. */
  #left-column #search_filters .facet{margin:0;padding:20px 20px 0;border-top:0;background-image:linear-gradient(90deg,rgba(46,74,50,0) 0%,rgba(46,74,50,.16) 12%,rgba(46,74,50,.16) 88%,rgba(46,74,50,0) 100%);background-size:100% 1px;background-repeat:no-repeat;background-position:0 0;}
  #left-column #search_filters .facet:first-of-type{background-image:none;}
  #left-column #search_filters .facet:last-of-type{padding-bottom:16px;}
  #left-column #search_filters .facet .facet-title{width:auto;margin:0 0 8px;font-family:var(--lvv-titre);font-weight:400;font-size:13px;letter-spacing:.16em;text-transform:uppercase;color:#2E4A32;white-space:normal;}
  /* Les lignes debordent de 10 px de chaque cote : le fond de survol depasse le
     texte, et la case reste alignee sur le titre de la facette. */
  #left-column #search_filters .facet ul{margin:0 -10px;}
  #left-column #search_filters .facet .facet-label{display:flex;align-items:center;margin:0;padding:7px 10px;border-radius:2px;transition:background-color .18s ease;}
  #left-column #search_filters .facet .facet-label:hover{background:rgba(46,74,50,.06);}
  /* La case a cocher, que le theme masquait : sans elle, rien ne dit qu on peut
     cumuler les filtres. Carre de 15 px, plein vert quand il est coche. */
  #left-column #search_filters .facet .facet-label .custom-checkbox{display:block;position:relative;top:0;flex:0 0 15px;width:15px;height:15px;margin:0 11px 0 0;}
  #left-column #search_filters .facet .facet-label .custom-checkbox input[type=checkbox]{position:absolute;top:0;left:0;width:15px;height:15px;margin:0;opacity:0;cursor:pointer;}
  #left-column #search_filters .facet .facet-label .custom-checkbox input[type=checkbox] + span{display:flex;align-items:center;justify-content:center;width:15px;height:15px;margin:0;background:#FFFFFF;border:1px solid rgba(46,74,50,.42);border-radius:1px;transition:background-color .18s ease,border-color .18s ease;}
  #left-column #search_filters .facet .facet-label:hover .custom-checkbox input[type=checkbox] + span{border-color:#2E4A32;}
  #left-column #search_filters .facet .facet-label .custom-checkbox input[type=checkbox]:checked + span{background:#2E4A32;border-color:#2E4A32;}
  #left-column #search_filters .facet .facet-label .custom-checkbox input[type=checkbox] + span .checkbox-checked{margin:0;font-size:13px;line-height:13px;color:#F4F1E8;}
  #left-column #search_filters .facet .facet-label a.js-search-link{display:block;width:auto;margin:0;padding:0;font-family:var(--lvv-texte);font-size:14.5px;line-height:1.35;letter-spacing:.01em;color:#33413A;white-space:normal;overflow:visible;text-overflow:clip;background:none;transition:color .18s ease;}
  #left-column #search_filters .facet .facet-label:hover a.js-search-link{color:#2E4A32;text-decoration:none;}
  /* Filtre actif : fond soutenu et filet or a la rive gauche. */
  #left-column #search_filters .facet .facet-label:has(input:checked){background:rgba(46,74,50,.07);box-shadow:inset 2px 0 0 #B08D3F;}
  #left-column #search_filters .facet .facet-label:has(input:checked) a.js-search-link{color:#1A2120;font-weight:600;}
  /* Curseur de prix : le bleu-vert de jQuery UI n est pas une couleur maison. */
  #left-column #search_filters .facet ul.faceted-slider{margin:0;padding:2px 8px 0;}
  #left-column #search_filters .facet ul.faceted-slider li{padding:0;}
  #left-column #search_filters .facet ul.faceted-slider li > p{margin:0 0 14px;font-family:var(--lvv-titre);font-size:17px;letter-spacing:.02em;color:#2E4A32;}
  #left-column #search_filters .ui-slider-horizontal{height:3px;margin:0 0 14px;background:rgba(46,74,50,.18);border:0;border-radius:2px;}
  #left-column #search_filters .ui-widget-header,
  #left-column #search_filters .ui-slider .ui-slider-range{background:#2E4A32;}
  #left-column #search_filters .ui-slider .ui-slider-handle{top:-6px;width:15px;height:15px;margin-left:-7px;background:#FCFBF7;border:2px solid #2E4A32;border-radius:50%;box-shadow:0 1px 4px rgba(26,33,32,.25);cursor:pointer;transition:border-color .18s ease;}
  #left-column #search_filters .ui-slider .ui-slider-handle:hover,
  #left-column #search_filters .ui-slider .ui-slider-handle:focus{border-color:#B08D3F;outline:0;}
  /* La grille d un rayon fait plusieurs milliers de pixels : le panneau suit le
     defilement. Le bandeau colle n a pas de hauteur fixe - le menu tombe sur une
     a trois lignes selon la largeur, soit 148 a 244 px - donc un retrait en dur
     laisse un vide de 100 px a certaines largeurs. Le script du champ HTML de ce
     bloc mesure le bandeau et publie sa hauteur dans --lvv-entete ; le retrait
     vaut cette hauteur plus 10 px, la valeur de secours est le pire cas. Quand
     le panneau depasse la hauteur de l ecran, il defile chez lui. */
  #left-column{position:sticky;top:calc(var(--lvv-entete, 244px) + 10px);z-index:1;}
  #left-column #search_filters{max-height:calc(100vh - var(--lvv-entete, 244px) - 34px);}
}
/* Clavier : la ligne survolee se voit, la ligne au clavier doit se voir aussi. */
#left-column #search_filters .facet .facet-label a.js-search-link:focus-visible{outline:2px solid #B08D3F;outline-offset:2px;}
/* Filtres actifs, au-dessus de la grille : pastilles assorties au panneau. */
#content-wrapper #js-active-search-filters{margin:0 0 18px;padding:0;background:none;border:0;}
#content-wrapper #js-active-search-filters .active-filter-title{margin:0 0 9px;font-family:var(--lvv-texte);font-weight:700;font-size:12.5px;letter-spacing:.14em;text-transform:uppercase;color:#2E4A32;}
#content-wrapper #js-active-search-filters ul{margin:0;padding:0;list-style:none;}
#content-wrapper #js-active-search-filters li.filter-block{display:inline-flex;align-items:center;margin:0 8px 8px 0;padding:5px 11px 5px 13px;background:#FCFBF7;border:1px solid rgba(46,74,50,.22);border-radius:999px;box-shadow:none;font-family:var(--lvv-texte);font-size:13px;letter-spacing:.01em;color:#2E4A32;}
#content-wrapper #js-active-search-filters li.filter-block a{display:inline-flex;margin-left:7px;color:rgba(46,74,50,.5);}
#content-wrapper #js-active-search-filters li.filter-block a:hover{color:#B08D3F;}
#content-wrapper #js-active-search-filters li.filter-block .material-icons{font-size:16px;line-height:1;}
/* Telephone et tablette : le meme panneau, dans le tiroir. Le theme le tirait
   hors de l ecran par les marges negatives de rangee (405 px de large dans une
   fenetre de 375), avec un bouton OK gris et des titres du gabarit. Quatre
   regles repetent #category et #search : le theme y met trois identifiants,
   il faut le meme poids pour passer devant. */
@media (max-width:991px){
  #left-column #search_filters .facet .facet-title{margin:0 0 8px;font-family:var(--lvv-titre);font-weight:400;font-size:13px;letter-spacing:.16em;text-transform:uppercase;color:#2E4A32;}
  #left-column #search_filter_controls{display:flex;align-items:center;justify-content:space-between;margin:0 0 10px;padding:0;}
  #left-column #search_filter_controls .btn.ok{width:auto;margin:0;padding:8px 20px;background:#2E4A32;color:#FCFBF7;border:0;border-radius:2px;box-shadow:none;font-family:var(--lvv-texte);font-weight:600;font-size:12px;letter-spacing:.12em;text-transform:uppercase;}
  #left-column #search_filter_controls .btn.ok .material-icons{display:none;}
  #left-column #search_filter_controls .btn:not(.ok){margin:0;padding:5px 12px 5px 8px;background:none;border:1px solid rgba(46,74,50,.22);border-radius:999px;box-shadow:none;font-family:var(--lvv-texte);font-weight:600;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:#2E4A32;}
  #left-column #search_filters{margin:0;padding:2px 16px 6px;background:linear-gradient(180deg,#FFFEFB 0%,#FAF8F2 100%);border:1px solid rgba(46,74,50,.18);border-radius:3px;box-shadow:0 1px 2px rgba(26,33,32,.05),0 14px 34px rgba(26,33,32,.09);}
  #left-column #search_filters .facet{margin:0;padding:0;border-top:1px solid rgba(46,74,50,.12);}
  #left-column #search_filters .facet:first-of-type{border-top:0;}
  #left-column #search_filters .facet .title{align-items:center;margin:0;padding:10px 0;}
  #left-column #search_filters .facet .title .facet-title{margin:0;font-family:var(--lvv-titre);font-weight:400;font-size:13px;letter-spacing:.16em;text-transform:uppercase;color:#2E4A32;}
  #category #left-column #search_filters .facet .navbar-toggler,
  #search #left-column #search_filters .facet .navbar-toggler{margin-left:auto;padding:0;color:#B08D3F;line-height:1;}
  #left-column #search_filters .facet ul{margin:0;padding:0 0 12px;background:none;border-top:0;}
  #category #left-column #search_filters .facet ul li,
  #search #left-column #search_filters .facet ul li{padding:0;border-top:1px solid rgba(46,74,50,.08);}
  #category #left-column #search_filters .facet ul li:first-child,
  #search #left-column #search_filters .facet ul li:first-child{border-top:0;}
  #left-column #search_filters .facet .facet-label{display:flex;align-items:center;margin:0;padding:11px 4px;}
  #left-column #search_filters .facet .facet-label .custom-checkbox{display:block;position:relative;top:0;flex:0 0 17px;width:17px;height:17px;margin:0 12px 0 0;}
  #left-column #search_filters .facet .facet-label .custom-checkbox input[type=checkbox]{position:absolute;top:0;left:0;width:17px;height:17px;margin:0;opacity:0;}
  #left-column #search_filters .facet .facet-label .custom-checkbox input[type=checkbox] + span{display:flex;align-items:center;justify-content:center;width:17px;height:17px;margin:0;background:#FFFFFF;border:1px solid rgba(46,74,50,.42);border-radius:1px;}
  #left-column #search_filters .facet .facet-label .custom-checkbox input[type=checkbox]:checked + span{background:#2E4A32;border-color:#2E4A32;}
  #left-column #search_filters .facet .facet-label .custom-checkbox input[type=checkbox] + span .checkbox-checked{margin:0;font-size:14px;line-height:14px;color:#F4F1E8;}
  #left-column #search_filters .facet .facet-label a.js-search-link{display:block;width:auto;margin:0;padding:0;font-family:var(--lvv-texte);font-size:15px;line-height:1.35;color:#33413A;white-space:normal;overflow:visible;text-overflow:clip;background:none;}
  #left-column #search_filters .facet .facet-label:has(input:checked) a.js-search-link{color:#1A2120;font-weight:600;}
  #left-column #search_filters .facet ul.faceted-slider{padding:2px 8px 14px;}
  #left-column #search_filters .facet ul.faceted-slider li > p{margin:0 0 14px;font-family:var(--lvv-titre);font-size:17px;color:#2E4A32;}
  #left-column #search_filters .ui-slider-horizontal{height:3px;margin:0;background:rgba(46,74,50,.18);border:0;border-radius:2px;}
  #left-column #search_filters .ui-widget-header,
  #left-column #search_filters .ui-slider .ui-slider-range{background:#2E4A32;}
  #left-column #search_filters .ui-slider .ui-slider-handle{top:-8px;width:19px;height:19px;margin-left:-9px;background:#FCFBF7;border:2px solid #2E4A32;border-radius:50%;box-shadow:0 1px 4px rgba(26,33,32,.25);}
}
/* Sous 768 px seulement : le theme sort le panneau de l ecran par des marges
   negatives de rangee (-30 px, puis -15 px sous 576). On le ramene dans la page
   avec une petite marge. Entre 768 et 991 il n y a pas de marge negative et la
   colonne ne fait que 162 px : y ajouter une marge la retrecirait encore. */
@media (max-width:767px){
  #category #left-column #search_filters_wrapper,
  #search #left-column #search_filters_wrapper{margin:0 12px;padding:0;width:auto;}
}

/* ==================================================================
   plaque gravee des titres
   Reprise du bloc HTML Box n 18, dans l ordre ou le document le
   servait le 2026-09-04. Ne pas reordonner : a specificite egale,
   c est cet ordre qui decide.
   ================================================================== */
/* ================================================================
   LA VOIE VERTE - LA PLAQUE GRAVEE
   Pose le 2026-08-31. Demande Florent : le meme rendu que
   l enseigne  Prix de gros  du carrousel d accueil, et le meme
   cadre partout ou cela a du sens.

   COMMENT C EST FAIT - deux couches, aucune image :
   1. La plaque : fond vert grave (degrade + hachure + vignetage
      interieur) et cadre exterieur en OR DEGRADE pose avec
      border-image. C est lui qui donne le reflet metallique
      qu une couleur plate ne donne pas.
   2. Le cartouche (::after) : filet interieur or clair, double d un
      second filet plus pale (outline), et quatre EQUERRES d angle -
      huit aplats de fond, deux par angle.

   Vert   #2E4629 vers #182616 : la famille des vignettes de rayon.
   Or     #F6E7BC / #C39B49 / #7A5C21 : clair, moyen, ombre.
   Ivoire #F7F2E4 pour le texte : le blanc pur ferait criard.
   Police MARCELLUS 400, celle de la maison, deja chargee par la
   feuille typographie (typographie-2026-08-16/).

   DEUX TAILLES
   - GRANDE : les titres de page. Rayons, pages CMS, nouveautes,
     meilleures ventes, promotions, marques, boutiques, recherche.
   - PETITE : les titres de section. Les cinq sections de l accueil
     et les bandeaux  produits similaires / accessoires .

   OU ELLE NE VA PAS, ET POURQUOI
   - Le titre de fiche produit : les noms sont longs et variables,
     la plaque ecraserait la photo du produit.
   - Compte, panier, tunnel de commande, 404 : pages de service, une
     enseigne doree n y a rien a dire.
   - Les six rayons de marque (53, 271 PAX, 272 DynaVap, 273 Arizer,
     274 Puffco, 276 Storz et Bickel) gardent la typographie de leur
     fabricant - decision du 2026-08-16, cf. TYPOGRAPHIE_2026-08-16.md.

   POURQUOI UN BLOC A PART ET PAS LE BLOC 9 : au 2026-08-31 le champ
   Style du bloc 9 est plein (56 139 signes) et sa fin est deja
   coupee. Y ajouter quoi que ce soit serait tronque en silence.

   POUR REVENIR EN ARRIERE : desactiver ou supprimer ce bloc.
   ================================================================ */

/* ---------------- GRANDE PLAQUE - titres de page ---------------- */
body#category:not(.category-id-53):not(.category-id-271):not(.category-id-272):not(.category-id-273):not(.category-id-274):not(.category-id-276) #js-product-list-header .h1,
body#cms .page-header h1,
body#new-products #js-product-list-header .h1,
body#new-products .page-header h1,
body#best-sales #js-product-list-header .h1,
body#best-sales .page-header h1,
body#prices-drop #js-product-list-header .h1,
body#prices-drop .page-header h1,
body#manufacturer .page-header h1,
body#supplier .page-header h1,
body#stores .page-header h1,
body#search #js-product-list-header .h1,
body#search .page-header h1{
  position:relative !important;
  display:block !important;
  width:-webkit-fit-content !important;
  width:fit-content !important;
  max-width:100% !important;
  box-sizing:border-box !important;
  margin:40px auto 38px auto !important;
  padding:30px 84px 32px 84px !important;
  font-family:Marcellus,Georgia,serif !important;
  font-weight:400 !important;
  font-size:38px !important;
  line-height:1.16 !important;
  text-align:center !important;
  text-transform:uppercase !important;
  letter-spacing:.24em !important;
  text-indent:.24em !important;
  color:#F7F2E4 !important;
  text-shadow:0 1px 0 rgba(0,0,0,.6), 0 0 26px rgba(224,197,126,.14) !important;
  background:
    repeating-linear-gradient(45deg,rgba(255,255,255,.016) 0 2px,rgba(0,0,0,0) 2px 4px),
    radial-gradient(130% 170% at 50% -10%,rgba(255,255,255,.085),rgba(255,255,255,0) 58%),
    linear-gradient(#2E4629,#182616) !important;
  border:3px solid #B08D3F !important;
  border-image:linear-gradient(148deg,#F6E7BC 0%,#C39B49 24%,#7A5C21 47%,#EFDCA8 68%,#B0873A 86%,#6E521D 100%) 1 !important;
  box-shadow:inset 0 0 0 1px rgba(0,0,0,.5), inset 0 0 74px rgba(0,0,0,.48), 0 16px 38px rgba(26,33,32,.2) !important;
}
body#category:not(.category-id-53):not(.category-id-271):not(.category-id-272):not(.category-id-273):not(.category-id-274):not(.category-id-276) #js-product-list-header .h1::after,
body#cms .page-header h1::after,
body#new-products #js-product-list-header .h1::after,
body#new-products .page-header h1::after,
body#best-sales #js-product-list-header .h1::after,
body#best-sales .page-header h1::after,
body#prices-drop #js-product-list-header .h1::after,
body#prices-drop .page-header h1::after,
body#manufacturer .page-header h1::after,
body#supplier .page-header h1::after,
body#stores .page-header h1::after,
body#search #js-product-list-header .h1::after,
body#search .page-header h1::after{
  content:'';
  position:absolute;
  left:10px; right:10px; top:10px; bottom:10px;
  pointer-events:none;
  border:1px solid rgba(238,215,158,.62);
  outline:1px solid rgba(238,215,158,.2);
  outline-offset:3px;
  background:
    linear-gradient(#EFDCA8,#EFDCA8) left 0 top 0/22px 2px no-repeat,
    linear-gradient(#EFDCA8,#EFDCA8) left 0 top 0/2px 22px no-repeat,
    linear-gradient(#EFDCA8,#EFDCA8) right 0 top 0/22px 2px no-repeat,
    linear-gradient(#EFDCA8,#EFDCA8) right 0 top 0/2px 22px no-repeat,
    linear-gradient(#EFDCA8,#EFDCA8) left 0 bottom 0/22px 2px no-repeat,
    linear-gradient(#EFDCA8,#EFDCA8) left 0 bottom 0/2px 22px no-repeat,
    linear-gradient(#EFDCA8,#EFDCA8) right 0 bottom 0/22px 2px no-repeat,
    linear-gradient(#EFDCA8,#EFDCA8) right 0 bottom 0/2px 22px no-repeat;
}

/* ---------------- PETITE PLAQUE - titres de section -------------- */
body#index #main h2,
.products-section-title,
#products .products-section-title,
.featured-products .products-section-title,
.product-accessories .products-section-title{
  position:relative !important;
  display:block !important;
  width:-webkit-fit-content !important;
  width:fit-content !important;
  max-width:100% !important;
  box-sizing:border-box !important;
  margin:34px auto 26px auto !important;
  padding:15px 44px 16px 44px !important;
  font-family:Marcellus,Georgia,serif !important;
  font-weight:400 !important;
  font-size:22px !important;
  line-height:1.2 !important;
  text-align:center !important;
  text-transform:uppercase !important;
  letter-spacing:.2em !important;
  text-indent:.2em !important;
  color:#F7F2E4 !important;
  text-shadow:0 1px 0 rgba(0,0,0,.55) !important;
  background:
    radial-gradient(130% 180% at 50% -10%,rgba(255,255,255,.075),rgba(255,255,255,0) 60%),
    linear-gradient(#2E4629,#182616) !important;
  border:2px solid #B08D3F !important;
  border-image:linear-gradient(148deg,#F6E7BC 0%,#C39B49 24%,#7A5C21 47%,#EFDCA8 68%,#B0873A 86%,#6E521D 100%) 1 !important;
  box-shadow:inset 0 0 0 1px rgba(0,0,0,.45), inset 0 0 40px rgba(0,0,0,.4), 0 10px 24px rgba(26,33,32,.16) !important;
}
body#index #main h2::after,
.products-section-title::after,
#products .products-section-title::after,
.featured-products .products-section-title::after,
.product-accessories .products-section-title::after{
  content:'';
  position:absolute;
  left:6px; right:6px; top:6px; bottom:6px;
  pointer-events:none;
  border:1px solid rgba(238,215,158,.5);
}

/* ---------------- Telephone -------------------------------------
   Tout descend d un cran et les plaques gardent une marge laterale
   pour ne pas toucher les bords. Les noms longs passent sur deux
   lignes dans la plaque : c est le comportement voulu. */
@media (max-width:767px){
  body#category:not(.category-id-53):not(.category-id-271):not(.category-id-272):not(.category-id-273):not(.category-id-274):not(.category-id-276) #js-product-list-header .h1,
  body#cms .page-header h1,
  body#new-products #js-product-list-header .h1,
  body#new-products .page-header h1,
  body#best-sales #js-product-list-header .h1,
  body#best-sales .page-header h1,
  body#prices-drop #js-product-list-header .h1,
  body#prices-drop .page-header h1,
  body#manufacturer .page-header h1,
  body#supplier .page-header h1,
  body#stores .page-header h1,
  body#search #js-product-list-header .h1,
  body#search .page-header h1{
    margin:26px auto 26px auto !important;
    max-width:calc(100% - 26px) !important;
    padding:18px 26px 20px 26px !important;
    font-size:21px !important;
    letter-spacing:.16em !important;
    text-indent:.16em !important;
    border-width:2px !important;
    box-shadow:inset 0 0 0 1px rgba(0,0,0,.5), inset 0 0 44px rgba(0,0,0,.45), 0 10px 24px rgba(26,33,32,.18) !important;
  }
  body#category:not(.category-id-53):not(.category-id-271):not(.category-id-272):not(.category-id-273):not(.category-id-274):not(.category-id-276) #js-product-list-header .h1::after,
  body#cms .page-header h1::after,
  body#new-products #js-product-list-header .h1::after,
  body#new-products .page-header h1::after,
  body#best-sales #js-product-list-header .h1::after,
  body#best-sales .page-header h1::after,
  body#prices-drop #js-product-list-header .h1::after,
  body#prices-drop .page-header h1::after,
  body#manufacturer .page-header h1::after,
  body#supplier .page-header h1::after,
  body#stores .page-header h1::after,
  body#search #js-product-list-header .h1::after,
  body#search .page-header h1::after{
    left:7px; right:7px; top:7px; bottom:7px;
    outline-offset:2px;
    background:
    linear-gradient(#EFDCA8,#EFDCA8) left 0 top 0/14px 2px no-repeat,
    linear-gradient(#EFDCA8,#EFDCA8) left 0 top 0/2px 14px no-repeat,
    linear-gradient(#EFDCA8,#EFDCA8) right 0 top 0/14px 2px no-repeat,
    linear-gradient(#EFDCA8,#EFDCA8) right 0 top 0/2px 14px no-repeat,
    linear-gradient(#EFDCA8,#EFDCA8) left 0 bottom 0/14px 2px no-repeat,
    linear-gradient(#EFDCA8,#EFDCA8) left 0 bottom 0/2px 14px no-repeat,
    linear-gradient(#EFDCA8,#EFDCA8) right 0 bottom 0/14px 2px no-repeat,
    linear-gradient(#EFDCA8,#EFDCA8) right 0 bottom 0/2px 14px no-repeat;
  }
  body#index #main h2,
  .products-section-title,
  #products .products-section-title,
  .featured-products .products-section-title,
  .product-accessories .products-section-title{
    margin:26px auto 20px auto !important;
    max-width:calc(100% - 26px) !important;
    padding:12px 24px 13px 24px !important;
    font-size:16px !important;
    letter-spacing:.16em !important;
    text-indent:.16em !important;
  }
  body#index #main h2::after,
  .products-section-title::after,
  #products .products-section-title::after,
  .featured-products .products-section-title::after,
  .product-accessories .products-section-title::after{
    left:5px; right:5px; top:5px; bottom:5px;
  }
}

/* ==================================================================
   panneaux du mega-menu
   Reprise du bloc HTML Box n 19, dans l ordre ou le document le
   servait le 2026-09-04. Ne pas reordonner : a specificite egale,
   c est cet ordre qui decide.
   ================================================================== */
/* ================================================================
   LA VOIE VERTE - PANNEAUX DU MEGA-MENU - 2026-08-31
   ----------------------------------------------------------------
   A coller dans le champ STYLE d un bloc HTML Box dedie, accroche a
   displayFooterAfter (donc actif sur toutes les pages). Bloc a part,
   et non une section de plus dans la feuille du bloc 9 : celle-ci
   frole le plafond de 64 000 signes et deux sessions qui l editent
   en parallele se perdent l une l autre.

   CE QUE CETTE FEUILLE REMPLACE. Le thème (custom.css) pose les
   panneaux en grille de colonnes de 240 px minimum, titres en
   Source Sans gras souligne de vert 4 px, sous-rayons en pastilles
   vert pale. Mesure du 2026-08-31 a 1440 px : panneau Neo de 533 px
   de haut pour six rayons, une rangee de quatre et une rangee de
   deux, un grand vide a droite, et les filets verts decales d une
   colonne a l autre des qu un titre passait sur deux lignes.

   CE QU ELLE POSE. Carte creme, filet or en tete, titres Marcellus
   en petites capitales sur filet or fin, sous-rayons en liste avec
   un tiret or qui s allonge au survol, colonnes qui se remplissent
   sans trou, largeur du panneau ajustee au nombre de rayons.
   Apres : Neo 253 px, Accessoires 236 px.

   CONTRAINTES DE CE CHAMP : aucun guillemet double, aucune
   esperluette, aucun chevron de selecteur enfant. Tout est ecrit en
   consequence.

   PORTEE : bureau et tablette (min-width 768px). Le tiroir du
   telephone est un autre balisage (.submenu-level-*), il n est pas
   touche.

   POUR REVENIR EN ARRIERE : vider ce champ, ou desactiver le bloc.
   Le thème reprend la main, rien d autre n est modifie.
   ================================================================ */

/* ==== DEBUT MEGA-MENU ==== */

@media (min-width:768px){

/* --- 1. LA CARTE ------------------------------------------------
   Creme #FDFDF9, le meme que les tuiles de rayon et le panneau de
   filtres. Filet or de 2 px en tete : la signature de la maison.
   Le prefixe body est necessaire — les regles du thème visees ici
   portent deja !important et sortent dans le corps de page. ------ */
body #header #_desktop_top_menu .mega-panel{
  background:#FDFDF9 !important;
  background-color:#FDFDF9 !important;
  border:1px solid rgba(176,141,63,.26) !important;
  border-top:2px solid #B08D3F !important;
  border-radius:0 0 6px 6px !important;
  box-shadow:0 22px 46px rgba(26,33,32,.20) !important;
  padding:1.9rem 2.4rem 1.5rem !important;
}

/* --- 2. LA LARGEUR SUIT LE NOMBRE DE RAYONS ---------------------
   Le thème imposait 1200 px a tous les panneaux, y compris a celui
   d Epicerie chanvre qui n a que trois rayons. Trois paliers, lus
   au nombre de colonnes presentes :
     2 a 4 rayons  :  600 px, 2 colonnes  (Epicerie, Huiles)
     5 a 8 rayons  :  880 px, 3 colonnes  (CBD, Neo, Gummies)
     9 rayons et + : 1140 px, 4 colonnes  (Vaporisation, Accessoires)
   Si le navigateur ignore :has(), la valeur du thème reste : le
   panneau est large, jamais casse. -------------------------------- */
body #header #_desktop_top_menu .mega-panel:not(:has(.mega-column:nth-child(5))){
  width:min(92vw,600px) !important;
  max-width:600px !important;
}
body #header #_desktop_top_menu .mega-panel:not(:has(.mega-column:nth-child(5))) .mega-grid{
  column-count:2 !important;
  column-width:auto !important;
}
body #header #_desktop_top_menu .mega-panel:has(.mega-column:nth-child(5)):not(:has(.mega-column:nth-child(9))){
  width:min(92vw,880px) !important;
  max-width:880px !important;
}
body #header #_desktop_top_menu .mega-panel:has(.mega-column:nth-child(5)):not(:has(.mega-column:nth-child(9))) .mega-grid{
  column-count:3 !important;
  column-width:auto !important;
}
body #header #_desktop_top_menu .mega-panel:has(.mega-column:nth-child(9)){
  width:min(92vw,1140px) !important;
  max-width:1140px !important;
}
body #header #_desktop_top_menu .mega-panel:has(.mega-column:nth-child(9)) .mega-grid{
  column-count:4 !important;
  column-width:auto !important;
}

/* --- 3. LE FLUX EN COLONNES -------------------------------------
   Grille remplacee par un flux en colonnes : les rayons se rangent
   les uns sous les autres et passent a la colonne suivante quand
   celle-ci est pleine. Une grille laissait un trou des que le
   nombre de rayons ne tombait pas juste.

   column-width ne sert que de secours, si les paliers ci-dessus ne
   s appliquent pas : chaque palier le remet a auto. Laisse en place,
   il BRIDE le nombre de colonnes — le navigateur retient le plus
   petit des deux, et le panneau de 880 px tombait a deux colonnes
   au lieu de trois (mesure du 2026-08-31). --------------------- */
body #header #_desktop_top_menu .mega-grid{
  display:block !important;
  column-width:250px;
  column-gap:2.4rem;
  column-rule:1px solid rgba(176,141,63,.16);
  text-align:left !important;
}
body #header #_desktop_top_menu .mega-column{
  break-inside:avoid;
  -webkit-column-break-inside:avoid;
  max-height:none !important;
  overflow:visible !important;
  padding-right:0 !important;
  margin:0 0 1.35rem !important;
  text-align:left !important;
}

/* --- 4. LE TITRE DE RAYON ---------------------------------------
   Marcellus 13 px en capitales espacees a .1em : la meme etiquette
   que les socles des tuiles de rayon et que le bandeau FILTRER PAR.
   Le filet vert de 4 px du thème devient un filet or d un pixel.
   Marcellus n existe qu en graisse 400 : la forcer evite le faux
   gras du navigateur. --------------------------------------------- */
body #header #_desktop_top_menu a.mega-heading{
  display:block;
  font-family:var(--lvv-titre) !important;
  font-weight:400 !important;
  font-size:13px !important;
  line-height:1.5 !important;
  letter-spacing:.1em !important;
  text-transform:uppercase !important;
  color:#2E4A32 !important;
  background:transparent !important;
  border:0 !important;
  border-bottom:1px solid rgba(176,141,63,.32) !important;
  border-radius:0 !important;
  margin:0 0 .55rem !important;
  padding:0 0 .5rem !important;
  text-align:left !important;
  transition:color .15s,border-color .15s;
}
body #header #_desktop_top_menu a.mega-heading:hover,
body #header #_desktop_top_menu a.mega-heading:focus-visible{
  color:#1A2120 !important;
  border-bottom-color:#B08D3F !important;
}

/* --- 5. LE SOUS-RAYON -------------------------------------------
   Les pastilles vert pale deviennent une liste. Un tiret or de 5 px
   tient lieu de puce ; il s allonge et le libelle avance de 4 px au
   survol. C est tout le mouvement : rien ne clignote. ------------ */
body #header #_desktop_top_menu .mega-list{
  margin:0 !important;
  padding:0 !important;
  list-style:none !important;
}
body #header #_desktop_top_menu .mega-list li{
  margin:0 !important;
  list-style:none !important;
}
body #header #_desktop_top_menu a.level-3-link{
  position:relative;
  font-family:var(--lvv-texte) !important;
  font-size:13.5px !important;
  font-weight:400 !important;
  letter-spacing:.015em !important;
  color:#4A3B2A !important;
  background:transparent !important;
  border-radius:0 !important;
  margin:0 !important;
  padding:.3rem 0 .3rem .9rem !important;
  display:block !important;
  text-align:left !important;
  transition:color .15s,padding-left .15s;
}
body #header #_desktop_top_menu a.level-3-link:before{
  content:'';
  position:absolute;
  left:0;
  top:1.05em;
  width:5px;
  height:1px;
  background:#B08D3F;
  opacity:.6;
  transition:width .15s,opacity .15s;
}
body #header #_desktop_top_menu a.level-3-link:hover,
body #header #_desktop_top_menu a.level-3-link:focus-visible{
  color:#2E4A32 !important;
  padding-left:1.15rem !important;
}
body #header #_desktop_top_menu a.level-3-link:hover:before,
body #header #_desktop_top_menu a.level-3-link:focus-visible:before{
  width:9px;
  opacity:1;
}

}

/* ==== FIN MEGA-MENU ==== */

/* ================================================================
   LA VOIE VERTE - LOGOS DE MARQUE DANS LE MEGA-MENU - 2026-08-31
   ----------------------------------------------------------------
   Se pose A LA SUITE de la feuille des panneaux ci-dessus. Ne vit
   pas sans elle : c est elle qui pose la carte creme, le flux en
   colonnes et le filet or.

   CE QUE CA FAIT. Sous l onglet Vaporisation, six des neuf rayons
   sont des marques. Leur libelle est remplace par le logo de la
   marque. Cinq des six sortent du fichier deja present au titre de
   la fiche fabricant (/img/m/ID.jpg) : rien a televerser.

       Storz et Bickel  /img/m/7.jpg    rayon 276
       Puffco           /img/m/60.jpg   rayon 274
       DynaVap          /img/cms/logo-dynavap-vert.png   rayon 272
       Katalyzer        ../img/menu/katalyzer.webp   rayon 53
       PAX              /img/m/88.jpg   rayon 271
       Arizer           /img/m/30.jpg   rayon 273

   KATALYZER, 2026-09-25 (v153) : /img/m/22.jpg (un PNG transparent
   de 395 x 180 malgre son nom) etait illisible a 21 px - cadre gris
   clair en tache, lettres de 5 px aux traits fins. Remplace par
   views/img/menu/katalyzer.webp, fabrique depuis ce meme fichier :
   dessin entier garde (cadre au soleil, K, mot), cadre fonce a gris
   120, mot a 20, traits epaissis d un filtre 3 x 3, 171 x 78 pour
   26 px d affichage. Version avec cadre choisie par Florent.
   Detail : presta LVV/menu-logo-katalyzer-2026-09-25/GESTE.md.
   Retour arriere : /img/m/22.jpg, 21 px (ordinateur) et 24 px
   (telephone, section MENU ICONES).

   DYNAVAP EST LE SEUL A NE PAS VENIR DE SA FICHE FABRICANT. Demande
   du 2026-08-31 : leur logo vert, pas le noir. Le vert a ete releve
   sur leur t-shirt officiel Green Logo, faute de fichier de marque
   public : #8FC70B, donc a quelques points pres. Le fichier a ete
   fabrique dans la page a partir du noir deja sur le serveur
   (/img/m/10.jpg), detoure et recolorise : 550 x 120, 26 526 octets,
   fond transparent.

   L ORDRE DES NEUF RAYONS a ete change en base le meme jour, a la
   demande : Storz, Puffco, DynaVap, Katalyzer, PAX, Arizer, puis les
   trois rayons qui ne sont pas des marques. Cette feuille ne gouverne
   pas l ordre - il vit dans les positions des categories.

   Les trois autres rayons de l onglet ne sont pas des marques
   (Autres vaporisateurs 27, Accessoires vaporisation 214, Cigarette
   electronique 68) : ils gardent leur libelle en toutes lettres.

   POURQUOI PAR REMPLACEMENT ET NON EN PLUS DU TEXTE. Les six logos
   sont des logotypes : ils portent deja le nom de la marque dessine.
   Poser le logo au-dessus du mot ecrirait DYNAVAP deux fois.

   CE QUI PROTEGE L ANCRE. Le texte n est pas retire du lien, il est
   deporte hors du cadre par un retrait negatif. Le nom reste dans la
   page pour le moteur et pour un lecteur d ecran ; seul l oeil voit
   le logo. Si cette feuille ne se charge pas, le libelle revient tel
   quel : la panne est silencieuse et sans consequence.

   LES CINQ LOGOS EN JPG SONT NOIRS SUR BLANC. Poses tels quels, leur
   fond blanc dessine une boite claire sur le creme du panneau. La
   fusion multiplicative avec le creme resout ca sans retoucher un
   seul fichier : blanc x creme donne creme, noir x creme reste noir.
   Le PNG vert de DynaVap est deja detoure ; la meme regle le laisse
   intact, le creme etant presque blanc.

   LA BANDE FAIT 26 PX POUR TOUS, logo ou texte. C est ce qui garde
   les filets or alignes d une colonne a l autre : dans un flux en
   colonnes, deux entrees de hauteurs differentes decalent tout ce
   qui suit. Chaque logo est ensuite cale a sa propre hauteur pour
   peser pareil a l oeil.

   POUR REVENIR EN ARRIERE : retirer cette section. Les six libelles
   reviennent, la feuille des panneaux n est pas touchee.
   ================================================================ */

/* ==== DEBUT MEGA-MENU LOGOS ==== */

@media (min-width:768px){

body #header #_desktop_top_menu a.mega-heading{
  display:flex !important;
  align-items:center;
  min-height:26px;
}

body #header #_desktop_top_menu a.mega-heading[href*='/272-'],
body #header #_desktop_top_menu a.mega-heading[href*='/273-'],
body #header #_desktop_top_menu a.mega-heading[href*='/274-'],
body #header #_desktop_top_menu a.mega-heading[href*='/276-'],
body #header #_desktop_top_menu a.mega-heading[href*='/53-'],
body #header #_desktop_top_menu a.mega-heading[href*='/271-']{
  background-repeat:no-repeat !important;
  background-position:left center !important;
  background-color:#FDFDF9 !important;
  background-blend-mode:multiply;
  text-indent:-999em;
  overflow:hidden;
  white-space:nowrap;
  opacity:.88;
  transition:opacity .15s,border-color .15s;
}
body #header #_desktop_top_menu a.mega-heading[href*='/272-']:hover,
body #header #_desktop_top_menu a.mega-heading[href*='/273-']:hover,
body #header #_desktop_top_menu a.mega-heading[href*='/274-']:hover,
body #header #_desktop_top_menu a.mega-heading[href*='/276-']:hover,
body #header #_desktop_top_menu a.mega-heading[href*='/53-']:hover,
body #header #_desktop_top_menu a.mega-heading[href*='/271-']:hover,
body #header #_desktop_top_menu a.mega-heading[href*='/272-']:focus-visible,
body #header #_desktop_top_menu a.mega-heading[href*='/273-']:focus-visible,
body #header #_desktop_top_menu a.mega-heading[href*='/274-']:focus-visible,
body #header #_desktop_top_menu a.mega-heading[href*='/276-']:focus-visible,
body #header #_desktop_top_menu a.mega-heading[href*='/53-']:focus-visible,
body #header #_desktop_top_menu a.mega-heading[href*='/271-']:focus-visible{
  opacity:1;
}

body #header #_desktop_top_menu a.mega-heading[href*='/276-']{
  background-image:url(/img/m/7.jpg) !important;
  background-size:auto 26px !important;
}
body #header #_desktop_top_menu a.mega-heading[href*='/274-']{
  background-image:url(/img/m/60.jpg) !important;
  background-size:auto 13px !important;
}
body #header #_desktop_top_menu a.mega-heading[href*='/272-']{
  background-image:url(/img/cms/logo-dynavap-vert.png) !important;
  background-size:auto 12px !important;
}
body #header #_desktop_top_menu a.mega-heading[href*='/53-']{
  background-image:url(../img/menu/katalyzer.webp) !important;
  background-size:auto 26px !important;
}
body #header #_desktop_top_menu a.mega-heading[href*='/271-']{
  background-image:url(/img/m/88.jpg) !important;
  background-size:auto 13px !important;
}
body #header #_desktop_top_menu a.mega-heading[href*='/273-']{
  background-image:url(/img/m/30.jpg) !important;
  background-size:auto 15px !important;
}

}

/* ==== FIN MEGA-MENU LOGOS ==== */

/* ==================================================================
   offres de panier
   Reprise du bloc HTML Box n 20, dans l ordre ou le document le
   servait le 2026-09-04. Ne pas reordonner : a specificite egale,
   c est cet ordre qui decide.
   ================================================================== */
/* ==========================================================================
   OFFRES DE PANIER - feuille (31/08/2026)

   Va dans le champ Style du bloc HTML Box. Le balisage est construit par le
   script, jamais ecrit a la main : les classes ci-dessous sont les seules
   qu il produit.

   Palette relevee sur la page panier le 31/08/2026 :
     bouton principal du theme  #2e4a32, texte blanc, rayon 2px, majuscules
     texte courant              #1a2120
     fond de page               #d4e0c4
     creme des panneaux LVV     #f5f2ea
     vert d eau des filets LVV  #88bdb4

   Ni chevron ni guillemet double : le champ les rend fragiles.
   ========================================================================== */

#lvv-offres {
  margin: 1.25rem 0 0 0;
  padding: 0;
  border: 0;
}

#lvv-offres .lvv-offres-titre {
  margin: 0 0 0.75rem 0;
  padding: 0;
  font-size: 15px;
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  color: #1a2120;
}

#lvv-offres .lvv-offre {
  display: flex;
  align-items: flex-start;
  gap: 18px;
  margin: 0 0 12px 0;
  padding: 16px 18px;
  background: #f5f2ea;
  border-bottom: 2px solid #88bdb4;
}

#lvv-offres .lvv-offre:last-child {
  margin-bottom: 0;
}

#lvv-offres .lvv-offre-img {
  flex: 0 0 150px;
  width: 150px;
  height: auto;
  max-width: 150px;
  align-self: center;
  border: 0;
}

#lvv-offres .lvv-offre-corps {
  flex: 1 1 auto;
  min-width: 0;
}

#lvv-offres .lvv-offre-accroche {
  margin: 0;
  font-size: 15px;
  font-weight: 700;
  line-height: 1.3;
  color: #1a2120;
}

#lvv-offres .lvv-offre-sous {
  margin: 4px 0 0 0;
  font-size: 13px;
  line-height: 1.5;
  color: #4a504e;
}

#lvv-offres .lvv-offre-ligne {
  margin: 12px 0 0 0;
  padding: 12px 0 0 0;
  border-top: 1px solid #e2ddd0;
}

#lvv-offres .lvv-offre-nom {
  margin: 0;
  font-size: 14px;
  line-height: 1.4;
  color: #1a2120;
}

#lvv-offres .lvv-offre-saveur {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 8px 0 0 0;
  font-size: 13px;
  font-weight: 400;
  color: #4a504e;
}

#lvv-offres .lvv-offre-saveur select {
  flex: 0 1 200px;
  height: 32px;
  padding: 0 8px;
  font-size: 13px;
  color: #1a2120;
  background: #ffffff;
  border: 1px solid #c9c2b2;
  border-radius: 2px;
}

#lvv-offres .lvv-offre-pied {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin: 10px 0 0 0;
}

#lvv-offres .lvv-offre-prix {
  margin: 0;
  font-size: 16px;
  line-height: 1.2;
  color: #1a2120;
}

#lvv-offres .lvv-offre-barre {
  margin-right: 8px;
  font-size: 14px;
  text-decoration: line-through;
  color: #8a8f8c;
}

#lvv-offres .lvv-offre-net {
  font-weight: 700;
}

#lvv-offres .lvv-offre-btn {
  flex: 0 0 auto;
  padding: 8px 20px;
  font-family: inherit;
  font-size: 13px;
  font-weight: 400;
  line-height: 1.4;
  text-transform: uppercase;
  color: #ffffff;
  background: #2e4a32;
  border: 0;
  border-radius: 2px;
  cursor: pointer;
}

#lvv-offres .lvv-offre-btn:hover {
  background: #3d6142;
}

#lvv-offres .lvv-offre-btn[disabled] {
  opacity: 0.6;
  cursor: default;
}

#lvv-offres .lvv-offre-note {
  margin: 10px 0 0 0;
  font-size: 12px;
  line-height: 1.5;
  color: #6b716e;
}

#lvv-offres .lvv-offre-echec {
  margin: 8px 0 0 0;
  font-size: 13px;
  line-height: 1.4;
  color: #a3372f;
}

/* ---------------------------------------- calculateur de feuilles (02/09/2026)
   Carte sans visuel : le calcul occupe toute la largeur. Le compteur reprend
   la bordure et le rayon des champs du theme, deja poses sur le select. */

#lvv-offres .lvv-offre-sansimg {
  display: block;
}

#lvv-offres .lvv-offre-detail {
  margin: 4px 0 0 0;
  font-size: 13px;
  line-height: 1.4;
  color: #4a504e;
}

#lvv-offres .lvv-offre-qte {
  display: flex;
  align-items: center;
  gap: 6px;
  flex: 0 0 auto;
}

#lvv-offres .lvv-offre-pas {
  width: 32px;
  height: 32px;
  padding: 0;
  font-family: inherit;
  font-size: 16px;
  line-height: 1;
  color: #1a2120;
  background: #ffffff;
  border: 1px solid #c9c2b2;
  border-radius: 2px;
  cursor: pointer;
}

#lvv-offres .lvv-offre-pas:hover {
  background: #ece7da;
}

#lvv-offres .lvv-offre-nb {
  width: 58px;
  height: 32px;
  padding: 0 6px;
  font-family: inherit;
  font-size: 14px;
  text-align: center;
  color: #1a2120;
  background: #ffffff;
  border: 1px solid #c9c2b2;
  border-radius: 2px;
}

#lvv-offres .lvv-offre-unite {
  font-size: 13px;
  color: #4a504e;
}

/* ------------------------------------------- palier au-dessus (03/09/2026)
   Un encart discret sous la ligne : il montre ce que gagne le client a monter
   d un palier, sans jamais changer sa quantite a sa place. Fond creme un ton
   au-dessus de la carte, filet vert d eau a gauche. */

#lvv-offres .lvv-offre-palier {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin: 10px 0 0 0;
  padding: 10px 12px;
  background: #ffffff;
  border-left: 3px solid #88bdb4;
  border-radius: 2px;
}

#lvv-offres .lvv-offre-palier-txt {
  flex: 1 1 240px;
  margin: 0;
  font-size: 13px;
  line-height: 1.45;
  color: #1a2120;
}

#lvv-offres .lvv-offre-palier-btn {
  flex: 0 0 auto;
  padding: 7px 16px;
  font-family: inherit;
  font-size: 12px;
  font-weight: 400;
  line-height: 1.4;
  text-transform: uppercase;
  color: #2e4a32;
  background: transparent;
  border: 1px solid #2e4a32;
  border-radius: 2px;
  cursor: pointer;
}

#lvv-offres .lvv-offre-palier-btn:hover {
  color: #ffffff;
  background: #2e4a32;
}

#lvv-offres .lvv-offre-palier-btn[disabled] {
  opacity: 0.6;
  cursor: default;
}

/* Telephone : le visuel passe au-dessus du texte, le bouton prend la largeur. */
@media (max-width: 575px) {
  #lvv-offres .lvv-offre {
    display: block;
    padding: 14px 14px 16px 14px;
  }

  #lvv-offres .lvv-offre-img {
    display: block;
    width: 160px;
    max-width: 60%;
    margin: 0 auto 10px auto;
  }

  #lvv-offres .lvv-offre-pied {
    justify-content: flex-start;
  }

  #lvv-offres .lvv-offre-btn {
    flex: 1 1 auto;
    text-align: center;
  }

  #lvv-offres .lvv-offre-saveur select {
    flex: 1 1 auto;
  }

  #lvv-offres .lvv-offre-qte {
    flex: 1 0 100%;
  }

  #lvv-offres .lvv-offre-palier-btn {
    flex: 1 1 auto;
    text-align: center;
  }
}

/* ==========================================================================
   Le récapitulatif passe SOUS les propositions

   La page panier est une grille à deux colonnes : les articles à gauche
   (`.cart-grid-body`, col-lg-8), le total et le bouton « Commander » à droite
   (`.cart-grid-right`, col-lg-4). Sur un grand écran, le client commande donc
   sans avoir croisé une seule proposition.

   La classe `lvv-panier-empile`, posée par le script quand au moins une carte
   s'affiche, fait passer les deux colonnes en pleine largeur : elles
   s'empilent, et le bouton « Commander » tombe après les cartes. Deux classes
   et un enfant direct suffisent à battre `.col-lg-8` — une requête média
   n'ajoute aucune spécificité.

   ATTENTION — ces colonnes ne sont PAS en flex. Le thème remet `.cart-grid`
   en `display: block` et les deux colonnes flottent à gauche : les propriétés
   `flex` n'y ont aucun effet, mesuré le 03/09/2026 (grille en `display:block`,
   colonnes en `float:left`). C'est `width` + `float: none` qui empilent, et il
   faut purger le flottement pour que la grille reprenne sa hauteur.
   ========================================================================== */

.cart-grid.lvv-panier-empile > .cart-grid-body,
.cart-grid.lvv-panier-empile > .cart-grid-right {
  flex: 0 0 100%;
  float: none;
  width: 100%;
  max-width: 100%;
}

.cart-grid.lvv-panier-empile > .cart-grid-right {
  clear: both;
  margin-top: 1.5rem;
}

/* Le récapitulatif ne s'étire pas : le thème lui donne sa propre largeur et le
   laisse collé à droite, ce qui creuse un grand vide à sa gauche une fois la
   colonne passée pleine largeur. On centre la colonne entière. */
@media (min-width: 992px) {
  .cart-grid.lvv-panier-empile > .cart-grid-right {
    max-width: 42rem;
    margin-left: auto;
    margin-right: auto;
  }
}

.cart-grid.lvv-panier-empile::after {
  content: '';
  display: table;
  clear: both;
}

/* ==================================================================
   boutons de quantite
   Reprise du bloc HTML Box n 14, dans l ordre ou le document le
   servait le 2026-09-04. Ne pas reordonner : a specificite egale,
   c est cet ordre qui decide.
   ================================================================== */
/* LVV - Boutons d'achat par quantite. Fiches produit + apercu rapide.
   Plus de prefixe #product : l'apercu rapide s'ouvre depuis une page rayon,
   dont le body porte un autre identifiant. */
.lvv-qty{margin:0 0 22px;}
.lvv-qty .lvv-qty-title{margin:0;padding-bottom:12px;font-family:var(--lvv-titre);font-weight:400;font-size:18px;line-height:1.2;letter-spacing:.012em;color:var(--lvv-encre);text-transform:none;background-image:linear-gradient(#B08D3F,#B08D3F);background-repeat:no-repeat;background-size:28px 1px;background-position:left bottom;}
.lvv-qty .lvv-qty-list{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px;}
.lvv-qty .lvv-qty-btn{position:relative;flex:0 0 calc(25% - 6px);min-width:0;padding:10px 8px 12px;background:#FCFBF7;border:1px solid rgba(46,74,50,.22);border-radius:2px;text-align:center;line-height:1.15;cursor:pointer;transition:border-color .25s ease,background-color .25s ease,box-shadow .25s ease,transform .25s ease;}
.lvv-qty .lvv-qty-btn:hover{border-color:#B08D3F;background:#FFFDF7;box-shadow:0 6px 18px rgba(26,33,32,.09);transform:translateY(-1px);}
.lvv-qty .lvv-qty-btn:focus-visible{outline:1px solid #B08D3F;outline-offset:3px;}
.lvv-qty .lvv-qty-btn:active{transform:translateY(0);box-shadow:none;}
.lvv-qty .lvv-qty-off{display:block;min-height:13px;font-family:var(--lvv-texte);font-size:10px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:#695426;}
.lvv-qty .lvv-qty-g{display:block;margin-top:3px;font-family:var(--lvv-titre);font-weight:400;font-size:23px;line-height:1.1;letter-spacing:.01em;white-space:nowrap;color:var(--lvv-encre);}
.lvv-qty .lvv-qty-total{display:block;margin-top:9px;padding-top:8px;font-family:var(--lvv-texte);font-size:14px;font-weight:600;color:var(--lvv-encre);background-image:linear-gradient(rgba(176,141,63,.85),rgba(176,141,63,.85));background-repeat:no-repeat;background-size:22px 1px;background-position:center top;}
.lvv-qty .lvv-qty-unit{display:block;margin-top:2px;font-family:var(--lvv-texte);font-size:11.5px;letter-spacing:.03em;color:#545755;}
.lvv-qty .lvv-qty-save{display:block;min-height:26px;margin-top:7px;padding-top:6px;background-image:linear-gradient(rgba(46,74,50,.14),rgba(46,74,50,.14));background-repeat:no-repeat;background-size:100% 1px;background-position:center top;}
.lvv-qty .lvv-qty-save:empty{background-image:none;}
.lvv-qty .lvv-qty-savelbl{display:block;font-family:var(--lvv-texte);font-size:9px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:#545755;}
.lvv-qty .lvv-qty-saveval{display:block;margin-top:1px;font-family:var(--lvv-texte);font-size:11.5px;font-weight:600;color:#8A6C2E;}
.lvv-qty .lvv-qty-note{margin:12px 0 0;font-family:var(--lvv-texte);font-size:11.5px;letter-spacing:.02em;color:#7A7E7B;}
/* Masque seulement si des boutons ont vraiment ete poses : le script ajoute lvv-qty-on. */
.lvv-qty-on .product-discounts{display:none;}
@media (max-width:575px){
  .lvv-qty .lvv-qty-list{gap:6px;}
  .lvv-qty .lvv-qty-btn{flex:0 0 calc(25% - 4.5px);padding:8px 2px 10px;}
  .lvv-qty .lvv-qty-off{font-size:9px;letter-spacing:.08em;}
  .lvv-qty .lvv-qty-g{font-size:17px;}
  .lvv-qty .lvv-qty-total{margin-top:7px;padding-top:6px;font-size:12px;}
  .lvv-qty .lvv-qty-unit{font-size:10.5px;letter-spacing:0;}
  .lvv-qty .lvv-qty-save{min-height:24px;margin-top:6px;padding-top:5px;}
  .lvv-qty .lvv-qty-savelbl{font-size:8px;letter-spacing:.06em;}
  .lvv-qty .lvv-qty-saveval{font-size:10.5px;}
}

/* LVV - fiche produit : carrousel de photos + equilibrage des deux colonnes.
   2026-08-29 (remplace la section du meme jour).
   La photo etait servie en 452 px au milieu d une colonne large de 690, avec
   119 px de vide de chaque cote. Sa largeur n est plus une constante : le script
   la choisit entre 580 et 800 px pour egaliser les deux colonnes (800 = taille
   reelle des fichiers large_default, au dela c est du flou). La regle ci-dessous
   ne sert donc que de valeur de depart et de filet si le script ne tourne pas.
   Sous 992 px les colonnes s empilent : rien a corriger.
   Le carrousel lui-meme est habille par la feuille de l apercu rapide, plus bas
   dans ce meme champ (.lvv-gal*) - une seule definition pour les deux endroits.
   Guillemets simples partout : le champ du module transforme les doubles en
   entites et la regle disparait sans message. */
@media (min-width:992px){
#product #content{max-width:580px;margin-left:0;margin-right:0;}
#product .col-md-6 > .blockreassurance_product{margin-top:28px;}
}
/* Sur la fiche, la loupe de zoom est posee par-dessus la photo : les fleches du
   carrousel doivent passer devant, sinon le clic ouvre la fenetre de zoom au
   lieu de changer d image. */
#product .lvv-gal .lvv-gal-fl{z-index:6}
#product .product-cover .layer{z-index:5}
/* La vignette de la photo affichee : filet or, le meme que les cartes de paliers. */
#product .js-qv-product-images .thumb.selected{box-shadow:0 0 0 2px #b08d4f}
/* Le panneau lateral : il n apparait que quand la bande a droite de la photo
   tient 300 px plus sa gouttiere, soit au-dela d environ 2 330 px de fenetre.
   En dessous, la colonne reste une simple pile et le bloc details retourne a sa
   place, tout en bas de la page. */
@media (min-width:992px){
#product .lvv-fp-cote{display:grid;grid-template-columns:minmax(0,800px) minmax(300px,1fr);column-gap:36px;align-items:start}
#product .lvv-fp-cote > #content{grid-column:1;grid-row:1}
#product .lvv-fp-cote > .lvv-fp-panneau{grid-column:2;grid-row:1}
#product .lvv-fp-cote > .blockreassurance_product{grid-column:1 / -1;grid-row:2}
}
/* Dans 334 px, le gabarit du bas ne tient plus : le titre Caracteristiques y est
   servi en 32 px centre avec 40 px de marge, taille faite pour la pleine largeur.
   On le ramene a la taille d un intertitre de panneau. */
#product .lvv-fp-panneau h3{margin:0 0 16px;font-size:19px}
#product .lvv-fp-panneau .product-manufacturer{margin:0 0 16px}
#product .lvv-fp-panneau .product-manufacturer img{max-width:120px;height:auto}
#product .lvv-fp-panneau .product-features .h6{font-size:17px;text-align:left;margin:0 0 12px}
#product .lvv-fp-panneau .product-reference{margin:0 0 18px}

/* LVV - apercu rapide : carrousel de photos + occupation de l espace. 2026-08-29.
   La fenetre faisait 1024 px de large, largeur d avant les boutons de quantite :
   sur une fiche a huit paliers ils tombaient sur trois rangees et la colonne de
   droite depassait la photo de pres de 400 px. Elargir la fenetre range les
   paliers en deux rangees de quatre ET agrandit la photo : l ecart se referme
   des deux cotes a la fois. La photo reste sous 800 px, taille reelle des
   fichiers large_default, donc aucun flou.
   Guillemets simples partout : le champ du module transforme les doubles en
   entites et la regle disparait sans message. */
@media (min-width:1180px){.quickview .modal-dialog{width:auto;max-width:1160px}}
@media (min-width:1500px){.quickview .modal-dialog{max-width:1340px}}
@media (min-width:1900px){.quickview .modal-dialog{max-width:1460px}}

.lvv-gal{position:relative;overflow:hidden;touch-action:pan-y}
.lvv-gal-piste{display:flex;transition:transform .38s ease;will-change:transform}
.lvv-gal-vue{flex:0 0 100%;max-width:100%}
.lvv-gal-vue img{display:block;width:100%;height:auto}
.lvv-gal-fl{position:absolute;top:50%;transform:translateY(-50%);z-index:4;border:0;padding:0;width:40px;height:62px;background:rgba(255,255,255,.88);color:#2e4a32;font-size:28px;line-height:1;cursor:pointer;opacity:0;transition:opacity .18s}
.lvv-gal:hover .lvv-gal-fl,.lvv-gal-fl:focus{opacity:1}
.lvv-gal-prec{left:0}
.lvv-gal-suiv{right:0}
.lvv-gal-compte{position:absolute;right:9px;bottom:9px;z-index:4;background:rgba(46,74,50,.82);color:#fff;font-size:11px;letter-spacing:.09em;padding:3px 9px;pointer-events:none}
/* Sans survol (tactile) les fleches doivent etre visibles d emblee. */
@media (hover:none){.lvv-gal-fl{opacity:1}}
/* Le theme pose un ascenseur vertical pour la bande de vignettes - deux fleches
   materialisees de 24 x 360 px qui flottent en travers de la photo, alors que la
   bande est horizontale et tient entiere dans son cadre. Defaut d origine, pas
   du carrousel ; il devient inutile puisque le carrousel a ses propres fleches. */
.quickview .arrows{display:none}
/* La vignette de la photo affichee : filet or, le meme que les cartes de paliers. */
.quickview .js-qv-product-images .thumb.selected{box-shadow:0 0 0 2px #b08d4f}
/* Le resume, une fois descendu sous la photo. */
.lvv-qv-resume{margin-top:20px;font-size:15px;line-height:1.7;color:#4a504e}

/* LVV - fiche produit : la section des remises quand elle est vide. 2026-08-30.
   48 px de blanc entre le bouton Ajouter au panier et la ligne de livraison, sur
   toutes les fiches sans palier de remise - la section vide garde ses marges.
   La classe est posee par le script du meme bloc et non par :empty, parce que la
   section contient trois espaces et compte donc un noeud texte. */
.product-discounts.lvv-remises-vides{display:none;}
/* --- Proposition du palier superieur (2026-09-03) -------------------------
   Le panneau prend la place de la grille, dans le meme encadre : le client ne
   change pas d'endroit. Meme vocabulaire que les cartes - serif Marcellus pour
   les quantites, filets or de 1 px en degrade, aucun pseudo-element. */
.lvv-qty .lvv-up{position:relative;margin-top:14px;padding:18px 18px 16px;background:#FFFDF7;border:1px solid #B08D3F;border-radius:2px;box-shadow:0 6px 18px rgba(26,33,32,.09);}
.lvv-qty .lvv-up:focus{outline:none;}
.lvv-qty .lvv-up-x{position:absolute;top:6px;right:8px;padding:2px 6px;background:none;border:0;font-family:var(--lvv-texte);font-size:17px;line-height:1;color:#9A9E9B;cursor:pointer;transition:color .2s ease;}
.lvv-qty .lvv-up-x:hover{color:var(--lvv-encre);}
.lvv-qty .lvv-up-x:focus-visible{outline:1px solid #B08D3F;outline-offset:2px;}
.lvv-qty .lvv-up-kicker{display:block;font-family:var(--lvv-texte);font-size:10px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:#B08D3F;}
.lvv-qty .lvv-up-titre{display:block;margin-top:5px;padding-bottom:12px;font-family:var(--lvv-titre);font-weight:400;font-size:22px;line-height:1.2;letter-spacing:.01em;color:var(--lvv-encre);background-image:linear-gradient(#B08D3F,#B08D3F);background-repeat:no-repeat;background-size:28px 1px;background-position:left bottom;}
.lvv-qty .lvv-up-arg{display:block;margin-top:12px;font-family:var(--lvv-texte);font-size:13.5px;line-height:1.5;letter-spacing:.01em;color:var(--lvv-encre);}
.lvv-qty .lvv-up-fort{font-weight:600;color:#8A6C2E;}
.lvv-qty .lvv-up-cmp{display:flex;gap:8px;margin-top:14px;}
.lvv-qty .lvv-up-col{flex:1 1 0;min-width:0;padding:10px 8px 11px;background:#FCFBF7;border:1px solid rgba(46,74,50,.22);border-radius:2px;text-align:center;line-height:1.15;}
.lvv-qty .lvv-up-col.is-best{border-color:#B08D3F;background:#FFF9EC;}
.lvv-qty .lvv-up-q{display:block;font-family:var(--lvv-titre);font-weight:400;font-size:21px;line-height:1.1;white-space:nowrap;color:var(--lvv-encre);}
.lvv-qty .lvv-up-t{display:block;margin-top:8px;padding-top:7px;font-family:var(--lvv-texte);font-size:14px;font-weight:600;color:var(--lvv-encre);background-image:linear-gradient(rgba(176,141,63,.85),rgba(176,141,63,.85));background-repeat:no-repeat;background-size:22px 1px;background-position:center top;}
.lvv-qty .lvv-up-u{display:block;margin-top:2px;font-family:var(--lvv-texte);font-size:11.5px;letter-spacing:.03em;color:#7A7E7B;}
.lvv-qty .lvv-up-e{display:block;min-height:14px;margin-top:5px;font-family:var(--lvv-texte);font-size:11px;font-weight:600;color:#8A6C2E;}
.lvv-qty .lvv-up-oui{display:block;width:100%;margin-top:16px;padding:13px 10px;background:#2E4A32;border:1px solid #2E4A32;border-radius:2px;font-family:var(--lvv-texte);font-size:13.5px;font-weight:600;letter-spacing:.03em;color:#FFFDF7;cursor:pointer;transition:background-color .25s ease,border-color .25s ease;}
.lvv-qty .lvv-up-oui:hover{background:#B08D3F;border-color:#B08D3F;}
.lvv-qty .lvv-up-non{display:block;width:100%;margin-top:8px;padding:9px 10px;background:none;border:0;font-family:var(--lvv-texte);font-size:12px;letter-spacing:.02em;color:#7A7E7B;text-decoration:underline;text-underline-offset:3px;cursor:pointer;transition:color .2s ease;}
.lvv-qty .lvv-up-non:hover{color:var(--lvv-encre);}
.lvv-qty .lvv-up-oui:focus-visible,.lvv-qty .lvv-up-non:focus-visible{outline:1px solid #B08D3F;outline-offset:3px;}
@media (max-width:575px){
  .lvv-qty .lvv-up{padding:16px 14px 14px;}
  .lvv-qty .lvv-up-titre{font-size:19px;}
  .lvv-qty .lvv-up-arg{font-size:13px;}
  .lvv-qty .lvv-up-cmp{gap:6px;}
  .lvv-qty .lvv-up-col{padding:9px 4px 10px;}
  .lvv-qty .lvv-up-q{font-size:18px;}
  .lvv-qty .lvv-up-t{font-size:13px;}
  .lvv-qty .lvv-up-u{font-size:10.5px;letter-spacing:0;}
}

/* ==================================================================
   survol des cases
   Reprise du bloc HTML Box n 21, dans l ordre ou le document le
   servait le 2026-09-04. Ne pas reordonner : a specificite egale,
   c est cet ordre qui decide.
   ================================================================== */
/* ==== SURVOL DES CASES - approche sans ombre - 2026-09-03 ====
   Au survol dune case, aucune ombre ne bouge : la case avance vers le lecteur
   et grossit un peu, rien de plus. Cinq familles de cases :
     tuiles de rayon        .lvv-rayons td               bloc 9
     vignettes produit      .thumbnail-container         module CSS Editing
     cartes de marque       .sb-carte                    blocs 6, 7 et 8
     cartes boutique        .lvv-bq                      bloc 9 (accueil)
     vitrine, huiles, MB    .lvv-vit-c .lvv-fl .lvv-mbc  bloc 9 (accueil)

   Chaque regle de survol repete ici lombre du repos : la retirer ne suffirait
   pas, la regle dorigine la reposerait. .sb-carte na aucune ombre au repos,
   donc none.

   POURQUOI TOUT EST EN !important
   HTML Box ne sort pas ses blocs dans lordre de leur numero : lordre suit la
   derniere modification. Le 03/09/2026 ce bloc sortait apres le bloc 9 a sa
   creation, puis est repasse avant lui des quune autre session a reenregistre
   le bloc 9 - et les regles dorigine ont repris la main sans un mot. Une
   surcharge qui ne compte que sur sa position ne tient pas dans le temps.

   La liste des six selecteurs de .sb-carte est recopiee telle quelle : la
   regle dorigine porte lidentifiant de page (body#category.category-id-271).
   ==== */

.lvv-rayons td,
.sb-carte,
.lvv-vit .lvv-vit-c,
.lvv-huiles .lvv-fl,
.lvv-mb .lvv-mbc,
#custom-text .lvv-bq { position: relative !important; }

.lvv-rayons td:hover {
  transform: scale(1.03) !important;
  box-shadow: 0 2px 6px rgba(26,33,32,.10), 0 14px 30px -18px rgba(26,33,32,.45) !important;
  z-index: 2 !important;
}

#products .thumbnail-container:hover,
#products .thumbnail-container:focus,
.featured-products .thumbnail-container:hover,
.featured-products .thumbnail-container:focus,
.product-accessories .thumbnail-container:hover,
.product-accessories .thumbnail-container:focus,
.product-miniature .thumbnail-container:hover,
.product-miniature .thumbnail-container:focus {
  transform: scale(1.03) !important;
  box-shadow: 0 1px 2px rgba(26,33,32,.04) !important;
  z-index: 2 !important;
}

body.category-id-276 .sb-carte:hover,
body#category.category-id-271 .sb-carte:hover,
body#category.category-id-272 .sb-carte:hover,
body#category.category-id-273 .sb-carte:hover,
body#category.category-id-274 .sb-carte:hover,
body#category.category-id-53 .sb-carte:hover {
  transform: scale(1.03) !important;
  box-shadow: none !important;
  z-index: 2 !important;
}

#custom-text .lvv-bq:hover,
.lvv-vit .lvv-vit-c:hover,
.lvv-huiles .lvv-fl:hover,
.lvv-mb .lvv-mbc:hover {
  transform: scale(1.03) !important;
  box-shadow: 0 1px 0 rgba(26,33,32,.04) !important;
  z-index: 2 !important;
}

/* ---- de la place au-dessus des pistes qui defilent ----
   Trois familles vivent dans une piste horizontale en overflow-y: hidden. La
   carte agrandie sy fait couper le haut : 6,3 px pour .sb-piste, 7,9 px pour
   .lvv-fen (mesure au survol, transitions neutralisees). On donne 10 px de
   marge interne en haut, repris a lidentique sur la marge exterieure : rien
   ne bouge dans la page, la carte a la place de grandir. La marge de
   .sb-piste est ecrite en style en ligne dans la description du rayon.
   ---- */

body .lvv-fen,
body .lvv-vit-fen {
  padding-top: 10px !important;
  margin-top: -6px !important;
}

/* Sur grand ecran ces deux pistes ne defilent plus : les cartes sont rangees
   en lignes, et celles des colonnes de bord se faisaient rogner de 4 a 5,4 px
   en grandissant. On elargit la piste de 8 px de chaque cote, repris sur la
   marge. Reserve au grand ecran : sur telephone la piste touche les bords de
   lecran, et une marge negative y ferait defiler la page de 8 px. */

@media (min-width: 992px) {
  body .lvv-fen,
  body .lvv-vit-fen {
    padding-left: 8px !important;
    padding-right: 8px !important;
    margin-left: -8px !important;
    margin-right: -8px !important;
  }
}

/* La grille des cartes boutique defile lateralement sur telephone, en
   overflow auto : le haut dune carte agrandie y depassait de 6,8 px, et un
   depassement vers le haut nest jamais atteignable au defilement, donc coupe. */

#custom-text .lvv-bq-grille {
  padding-top: 8px !important;
  margin-top: 6px !important;
}

.sb-piste {
  padding-top: 10px !important;
  margin-top: 4px !important;
}

/* ==== FIN - SURVOL DES CASES ==== */

/* ==== DEZOOM DES RAYONS SUR TELEPHONE - 2026-09-03 ====
   Le texte des rayons porte un tableau de comparaison. A cinq colonnes, il ne peut
   pas descendre sous la somme des mots les plus longs de ses cellules : 446 px sur
   le rayon 243, 472 sur le 244. Le navigateur elargit alors le viewport (375 -> 486,
   voire 512) et TOUTE la page rayon s affiche dezoomee - apercu rapide compris.
   Mesure du 2026-09-03 : 9 rayons sur 20 sondes portent un tableau a cinq colonnes ;
   ceux a deux ou trois colonnes ne dezooment pas, ni les rayons sans tableau.
   Deux reglages suffisent, et aucun ne coupe un mot sans tiret : la police reduite
   fait tomber le minimum a 400 px, la cesure typographique a 356, les deux a 335.
   Ecarte : overflow-wrap anywhere, qui donnait STRAWB / ERRY / FRITTE / R.
   ==== FIN DEZOOM RAYONS ==== */
@media (max-width:767px){
  /* Restreint le 2026-09-03 aux seuls tableaux de comparaison a cinq colonnes.
     Sondage des 13 rayons a tableau : la classe sb-comparo porte TOUJOURS cinq
     colonnes (9 rayons), la classe lvv-rayons deux ou trois (4 rayons) - et celle-la
     n est pas un tableau de comparaison, ce sont les TUILES DE NAVIGATION entre
     rayons. La regle large leur reduisait la police sans aucune raison. Les deux
     criteres sont donc poses : la classe, et la presence d une cinquieme colonne.
     Si :has() manquait a un navigateur, la regle est ignoree et le dezoom revient -
     l etat d avant, jamais un affichage casse. */
  #category-description table.sb-comparo:has(tr > :nth-child(5)){font-size:12px !important;hyphens:auto !important;-webkit-hyphens:auto !important}
}

/* ==== GOUTTIERE DU TABLEAU DE COMPARAISON - 2026-09-03 ====
   Apres le chantier densite, une gouttiere de 20 px est posee sur TOUS les enfants
   directs du texte de rayon : body#category #category-description > *:not(table.lvv-rayons).
   Les tuiles de navigation en sont deja exclues ; le conteneur du tableau, non.
   Elle ajoute 40 px a la largeur minimale de la page et fait repasser la barre :
   40 (gouttiere) + 323 (minimum du tableau) + 40 (padding du bloc) = 403 px demandes
   pour un ecran de 375, donc dezoom malgre la police reduite et la cesure.
   Le conteneur du tableau est exclu a son tour, sur telephone seulement. Les
   paragraphes gardent leur gouttiere - verifie : 0px 20px sur les p, 0 sur sb-scroll.
   Specificite : la regle d origine porte 2 identifiants, 1 classe et 2 types, en
   !important. On egale ids et types et on double la classe, pour passer devant sans
   dependre de l ordre des blocs, qui suit la date d enregistrement.
   ==== FIN GOUTTIERE TABLEAU ==== */
@media (max-width:767px){
  body#category div#category-description > div.sb-scroll.sb-scroll{
    padding-left:0 !important; padding-right:0 !important; }
}

/* ==================================================================
   correctifs affichage - audit 2026-08-15
   Reprise du bloc HTML Box n 9, dans l ordre ou le document le
   servait le 2026-09-04. Ne pas reordonner : a specificite egale,
   c est cet ordre qui decide.
   ================================================================== */
/* Feuille nettoyee le 2026-08-19 - documentation complete : agents/verde/sauvegardes-css/2026-08-19-htmlbox-9-avant.css */
body#category:not(:has(#search_filters)) #left-column{display:none;}
body#category:not(:has(#search_filters)) #content-wrapper{width:100%;max-width:100%;flex:0 0 100%;}

body#category #category-description{max-width:720px;margin-left:auto;margin-right:auto;}

.blockreassurance_product div{width:100%;flex-wrap:wrap;align-items:center;}
.blockreassurance_product .item-product{flex:0 0 35px;}
.blockreassurance_product .block-title{flex:1 1 auto;font-weight:600;}
.blockreassurance_product p{flex:1 1 100%;margin-left:2.5rem;margin-bottom:0.75rem;}

/* ==== FIN CORRECTIFS AFFICHAGE ==== */

.blockreassurance_product svg path, .blockreassurance svg path, #block-reassurance svg path{fill:#2E4A32;}

.product-images li.thumb-container .thumb{opacity:0.78;}
.product-images li.thumb-container .thumb.selected{opacity:1;}

@media (max-width: 991px){
  body #products .products, body .featured-products .products, body .product-accessories .products{display:flex;flex-wrap:wrap;justify-content:flex-start;padding-left:8px;padding-right:8px;}
  body #products .products div:has(.product-miniature), body .featured-products .products div:has(.product-miniature), body .product-accessories .products div:has(.product-miniature){flex:0 0 33.333%;width:33.333%;max-width:33.333%;padding-left:6px;padding-right:6px;}
  body #products .thumbnail-container, body .featured-products .thumbnail-container, body .product-accessories .thumbnail-container{width:100%;height:auto;padding-bottom:104px;}
  body #products .product-thumbnail, body .featured-products .product-thumbnail, body .product-accessories .product-thumbnail{position:relative;display:block;padding-top:100%;}
  body #products .product-description, body .featured-products .product-description, body .product-accessories .product-description{width:100%;left:0;height:auto;min-height:104px;}
  body #products .product-title, body .featured-products .product-title, body .product-accessories .product-title{font-size:13px;line-height:1.3;}
}

form#add-to-cart-or-refresh{display:flex;flex-direction:column;}
form#add-to-cart-or-refresh .product-variants{order:1;}
form#add-to-cart-or-refresh .product-add-to-cart{order:2;}
form#add-to-cart-or-refresh .product-discounts{order:3;margin-top:1.5rem;}
form#add-to-cart-or-refresh .product-additional-info{order:4;}

#custom-text .custom-text{padding-left:2.5rem;padding-right:2.5rem;box-sizing:border-box;}
@media (max-width: 620px){
  #custom-text .custom-text{padding-left:1.25rem;padding-right:1.25rem;}
}

@media (max-width: 992px){
  .top-menu-level-0{justify-content:flex-start;}
}

@media (max-width: 575px){
  .blockreassurance p{margin-left:55px;}
}

@media (max-width: 575px){
  body #products .products div:has(.product-miniature), body .featured-products .products div:has(.product-miniature), body .product-accessories .products div:has(.product-miniature){flex:0 0 50%;width:50%;max-width:50%;}
}

body, p, li, td, th, dd, dt, .h1, .h2, .h3, .h4, label{color:#1A2120;}

.product-images li.thumb-container .thumb.selected{border-color:#2E4A32;}

.breadcrumb li a span, .breadcrumb li span{font-size:17px;}

#category-description h2{font-size:22px;}

.product-quantity .add .btn-primary{font-size:22px;}

#products .price, .featured-products .price, .product-accessories .price, .product-miniature .price{font-size:15px;}
#footer ul li a{font-size:13px;}

@media (max-width: 991px){
  body #products .thumbnail-container, body .featured-products .thumbnail-container, body .product-accessories .thumbnail-container{padding-bottom:150px;}
}
@media (max-width: 575px){
  body #products .thumbnail-container, body .featured-products .thumbnail-container, body .product-accessories .thumbnail-container{padding-bottom:170px;}
}

@media (min-width: 576px) and (max-width: 991px){
  body #products .thumbnail-container .lvv-nom-entier, body .featured-products .thumbnail-container .lvv-nom-entier, body .product-accessories .thumbnail-container .lvv-nom-entier{-webkit-line-clamp:4;}
  body #products .thumbnail-container .product-description, body .featured-products .thumbnail-container .product-description, body .product-accessories .thumbnail-container .product-description{height:171px;}
  body #products .thumbnail-container, body .featured-products .thumbnail-container, body .product-accessories .thumbnail-container{padding-bottom:171px;}
}

/* ==== DEBUT - BANDEAU : le logo passait SOUS LA MOULURE - 2026-08-17 ==== */

#header #_desktop_logo img{ display:block !important; }

@media (min-width: 992px){
  #header{ padding-top:14px !important; padding-bottom:14px !important; }
  
  #wrapper, #wrapper.transphead{ padding-top:222px !important; }
}

@media (min-width: 768px) and (max-width: 992px){
  
  main #wrapper, main #wrapper.transphead{ padding-top:200px !important; }
}

@media (max-width: 991px){
  #header{ padding-top:12px !important; padding-bottom:12px !important; }
  
  #header .header-top #_desktop_logo{ margin-top:0 !important; }
}

@media (max-width: 767px){
  
  #wrapper.transphead{ padding-top:96px !important; }
}
/* ==== FIN - BANDEAU : le logo passait SOUS LA MOULURE ==== */

#custom-text {
  display: block;
  width: 100%;
  max-width: 100%;
  margin: 0;
  padding: 0;
  background: transparent;
  border-radius: 0;
}

#custom-text .lvv-boutiques {
  padding: 50px 0 44px;
  color: #1A2120;
  font-family: var(--lvv-texte);
  text-align: center;
}
#custom-text .lvv-boutiques .lvv-sur {
  margin: 0 0 11px;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .3em;
  text-transform: uppercase;
  color: #6E7834;
}
#custom-text .lvv-boutiques .lvv-sur sup {
  font-size: .7em;
  letter-spacing: 0;
}
#custom-text .lvv-boutiques .lvv-chapo {
  margin: 12px auto 0;
  max-width: 560px;
  font-size: 15.5px;
  line-height: 1.6;
  font-weight: 400;
  color: rgba(26,33,32,.72);
}
#custom-text .lvv-boutiques .lvv-orn {
  display: block;
  width: 116px;
  height: 9px;
  margin: 20px auto 0;
  border-top: 1px solid rgba(176,141,63,.55);
  position: relative;
}
#custom-text .lvv-boutiques .lvv-orn i {
  position: absolute;
  top: -4.5px;
  left: 50%;
  width: 7px;
  height: 7px;
  margin-left: -4.5px;
  background: #D4E0C4;
  border: 1px solid #B08D3F;
  transform: rotate(45deg);
}
#custom-text .lvv-boutiques .lvv-oeil {
  display: block;
  font-size: 10.5px;
  font-weight: 600;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: #6E7834;
}
#custom-text .lvv-boutiques .lvv-nom {
  display: block;
  margin-top: 7px;
  font-family: var(--lvv-titre);
  font-weight: 400;
  font-size: 24px;
  line-height: 1.24;
  letter-spacing: .015em;
  color: #1C1E14;
}
#custom-text .lvv-boutiques .lvv-filet {
  display: block;
  width: 34px;
  height: 1px;
  margin: 10px auto 0;
  background: #B08D3F;
}
#custom-text .lvv-boutiques .lvv-deg {
  margin: 0;
  font-size: 13.5px;
  letter-spacing: .01em;
  color: rgba(26,33,32,.66);
}
#custom-text .lvv-boutiques .lvv-deg b {
  font-weight: 600;
  color: #2E4A32;
}
#custom-text .lvv-boutiques .lvv-bout {
  display: inline-block;
  padding: 13px 30px 12px;
  background: #2E4A32;
  color: #FCFBF7;
  border: 1px solid #2E4A32;
  border-radius: 2px;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .14em;
  text-transform: uppercase;
  text-decoration: none;
  transition: background .24s, border-color .24s;
}
#custom-text .lvv-boutiques .lvv-bout:hover {
  background: #243A28;
  border-color: #B08D3F;
  color: #FCFBF7;
  text-decoration: none;
}

@media (max-width: 991px) {
  #custom-text .lvv-boutiques { padding: 40px 0 36px; }
  #custom-text .lvv-boutiques .lvv-nom { font-size: 21px; }
}

@media (max-width: 767px) {
  #custom-text .lvv-boutiques { padding: 34px 0 32px; }
  #custom-text .lvv-boutiques .lvv-sur { font-size: 11px; letter-spacing: .26em; }
  #custom-text .lvv-boutiques .lvv-chapo { font-size: 15px; }
  #custom-text .lvv-boutiques .lvv-oeil { font-size: 9.5px; letter-spacing: .18em; }
  #custom-text .lvv-boutiques .lvv-nom { font-size: 18px; margin-top: 6px; }
}

@media (max-width: 479px) {
  #custom-text .lvv-boutiques .lvv-nom { font-size: 21px; }
}

@supports (position: sticky) {
  #header {
    position: -webkit-sticky !important;
    position: sticky !important;
    top: 0 !important;
  }
  #wrapper, #wrapper.transphead,
  main #wrapper, main #wrapper.transphead {
    padding-top: 0 !important;
  }
  
  @media (max-width: 767px) {
    #wrapper, main #wrapper { padding-top: 12px !important; }
    #wrapper.transphead, main #wrapper.transphead { padding-top: 0 !important; }
  }
}

/* ==== FIN - le bandeau ne flotte plus, il colle ==== */

@media (min-width: 768px) and (max-width: 992px) {
  #header .menu-link { border-bottom: 0 !important; }
}

/* ==== FIN - plus de filet sous les rayons en tablette ==== */

#category-description .lvv-rayons p a,
#category-description .lvv-rayons p a:hover,
#category-description .lvv-rayons p a:focus { color: #FFFFFF !important; }

@media (max-width: 991px) {
  .lvv-oeil { font-size: 12px !important; }
  .lvv-dose { font-size: 12.5px !important; }
  .lvv-cta { font-size: 12.5px !important; }
  .lvv-sur { font-size: 12.5px !important; }
  .lvv-bout { font-size: 13px !important; }
}

@media (min-width: 992px) {
  #index .lvv-home-rayons nav { max-width: 1140px; }
  #index .featured-products {
    max-width: 1180px;
    padding-left: 20px;
    padding-right: 20px;
    margin-left: auto;
    margin-right: auto;
  }
}

@media (max-width: 991px) {
  #index .featured-products { margin-left: 20px; margin-right: 20px; }
}

body#category.category-id-238 #main,
body#category.category-id-240 #main,
body#category.category-id-248 #main,
body#category.category-id-249 #main,
body#category.category-id-36 #main,
body#category.category-id-37 #main,
body#category.category-id-40 #main,
body#category.category-id-188 #main {
  display: flex;
  flex-direction: column;
}

body#category.category-id-238 #js-product-list-header,
body#category.category-id-238 #js-product-list-header .block-category,
body#category.category-id-238 #js-product-list-header .block-category-inner,
body#category.category-id-238 #category-description,
body#category.category-id-240 #js-product-list-header,
body#category.category-id-240 #js-product-list-header .block-category,
body#category.category-id-240 #js-product-list-header .block-category-inner,
body#category.category-id-240 #category-description,
body#category.category-id-248 #js-product-list-header,
body#category.category-id-248 #js-product-list-header .block-category,
body#category.category-id-248 #js-product-list-header .block-category-inner,
body#category.category-id-248 #category-description,
body#category.category-id-249 #js-product-list-header,
body#category.category-id-249 #js-product-list-header .block-category,
body#category.category-id-249 #js-product-list-header .block-category-inner,
body#category.category-id-249 #category-description,
body#category.category-id-36 #js-product-list-header,
body#category.category-id-36 #js-product-list-header .block-category,
body#category.category-id-36 #js-product-list-header .block-category-inner,
body#category.category-id-36 #category-description,
body#category.category-id-37 #js-product-list-header,
body#category.category-id-37 #js-product-list-header .block-category,
body#category.category-id-37 #js-product-list-header .block-category-inner,
body#category.category-id-37 #category-description,
body#category.category-id-40 #js-product-list-header,
body#category.category-id-40 #js-product-list-header .block-category,
body#category.category-id-40 #js-product-list-header .block-category-inner,
body#category.category-id-40 #category-description,
body#category.category-id-188 #js-product-list-header,
body#category.category-id-188 #js-product-list-header .block-category,
body#category.category-id-188 #js-product-list-header .block-category-inner,
body#category.category-id-188 #category-description {
  display: contents;
}

body#category.category-id-238 #category-description > *,
body#category.category-id-240 #category-description > *,
body#category.category-id-248 #category-description > *,
body#category.category-id-249 #category-description > *,
body#category.category-id-36 #category-description > *,
body#category.category-id-37 #category-description > *,
body#category.category-id-40 #category-description > *,
body#category.category-id-188 #category-description > * {
  width: 100%;
  max-width: 660px;
  align-self: center;
}

body#category.category-id-238 #category-description > *:nth-child(n+3),
body#category.category-id-240 #category-description > *:nth-child(n+3),
body#category.category-id-248 #category-description > *:nth-child(n+3),
body#category.category-id-249 #category-description > *:nth-child(n+3),
body#category.category-id-36 #category-description > *:nth-child(n+3),
body#category.category-id-37 #category-description > *:nth-child(n+3),
body#category.category-id-40 #category-description > *:nth-child(n+3),
body#category.category-id-188 #category-description > *:nth-child(n+3) {
  order: 10;
}

@media (max-width: 991px) {
  body#category.category-id-238 #category-description > *,
  body#category.category-id-240 #category-description > *,
  body#category.category-id-248 #category-description > *,
  body#category.category-id-249 #category-description > *,
  body#category.category-id-36 #category-description > *,
  body#category.category-id-37 #category-description > *,
  body#category.category-id-40 #category-description > *,
  body#category.category-id-188 #category-description > * {
    padding-left: 20px;
    padding-right: 20px;
  }
}

.product-miniature .quick-view { color: #6E6E6E !important; }

.all-product-link { color: #2E4A32 !important; }
.lvv-sur { color: #58612C !important; }

.footer-container { background-color: #2E4A32; }

@media (min-width: 993px){
  #header .header-top #_desktop_logo{position:absolute;left:15px;top:0;bottom:0;align-items:center;z-index:3;}
  #header .header-top nav.main-nav{flex:1 1 auto;min-width:0;}
  #header .header-top #_desktop_top_menu{padding-left:188px;padding-right:0;}
  #header .header-top #top-menu{justify-content:center;flex-wrap:wrap;}
}

body#authentication #content a,
body#authentication .no-account a { color: #2E4A32; }

#products .up a.btn-secondary { color: #6E6E6E; }

@media (max-width: 991px) {
  #header .header-top { overflow-x: clip; }
}
/* ==== DEBUT - TUILES DE RAYON : passe premium - 2026-08-20 ==== */
/* Cible table.lvv-rayons, presente sur les 7 rayons parents : 238 240 37 36 26 40 188.
   Aucune description de rayon touchee : recadrage, socle et typographie sont faits ici.
   Le prefixe #category-description est obligatoire, sinon la regle blanche posee plus
   haut dans cette meme feuille gagne sur le libelle.
   Le filet dore est un degrade de fond et pas un ::after, parce que ce champ refuse
   les guillemets doubles et donc la propriete content. */
.lvv-rayons{border-collapse:separate!important;border-spacing:16px!important;margin:8px -16px 34px -16px!important;width:calc(100% + 32px)!important}
.lvv-rayons td{padding:0!important;overflow:hidden;border-radius:3px;background:#1a2120;box-shadow:0 2px 6px rgba(26,33,32,.10),0 14px 30px -18px rgba(26,33,32,.45);transition:box-shadow .5s cubic-bezier(.2,.7,.3,1),transform .5s cubic-bezier(.2,.7,.3,1)}
.lvv-rayons td:hover{transform:translateY(-3px);box-shadow:0 4px 10px rgba(26,33,32,.14),0 26px 46px -20px rgba(26,33,32,.55)}
.lvv-rayons td>a{display:block;overflow:hidden;line-height:0}
/* Cadre carre par defaut : les visuels sont tous carres a la source, donc aucun recadrage,
   et les objets hauts (vaporisateurs, bangs) ne sont pas decapites. */
.lvv-rayons img{width:100%!important;height:auto!important;aspect-ratio:1/1;object-fit:cover;object-position:center;display:block;filter:saturate(.95) contrast(1.03);transition:transform 1.1s cubic-bezier(.2,.7,.3,1)}
/* Exception 238 et 240 : ces photos portent un decor de fougere en haut et le produit en bas.
   Recadrage 4/3 par le bas, qui enleve le decor et fait remonter le produit. */
body.category-id-238 .lvv-rayons img,body.category-id-240 .lvv-rayons img{aspect-ratio:4/3;object-position:center 85%}
.lvv-rayons td:hover img{transform:scale(1.06)}
.lvv-rayons td>p{background:#1a2120!important;margin:0!important;display:flex!important;align-items:center;justify-content:center;min-height:84px;padding:6px 10px!important}
#category-description .lvv-rayons td>p>a{display:inline-block;color:#f4f1e8!important;font-family:Marcellus,Georgia,serif!important;font-weight:400!important;font-size:17px!important;letter-spacing:.13em!important;text-transform:uppercase;line-height:1.3!important;text-align:center;padding-bottom:9px;background-image:linear-gradient(#c9a961,#c9a961);background-repeat:no-repeat;background-position:50% 100%;background-size:22px 1px;transition:background-size .55s cubic-bezier(.2,.7,.3,1)}
.lvv-rayons td:hover p>a{background-size:74% 1px}
/* Telephone : deux colonnes au lieu de trois. La tuile passe de 106 a 171 px,
   les libelles tiennent tous sur une ligne. La grille coule en continu grace a
   display:contents sur tbody et tr - donc aucun trou quand une rangee du tableau
   porte trois cellules et la suivante deux. Aucun tableau de rayon nest touche. */
@media (max-width: 767px) {
.lvv-rayons{display:grid!important;grid-template-columns:1fr 1fr!important;gap:10px!important;width:100%!important;margin:8px 0 26px 0!important;border-spacing:0!important}
.lvv-rayons tbody,.lvv-rayons tr{display:contents!important}
.lvv-rayons td{display:block!important;width:auto!important}
.lvv-rayons td>p{min-height:56px!important;padding:6px 8px!important}
#category-description .lvv-rayons td>p>a{font-size:13px!important;letter-spacing:.08em!important;padding-bottom:8px;background-size:18px 1px}
}
/* Grande tablette en portrait (576-767) : deux colonnes y donnaient des tuiles
   de 305 px, plus hautes qu un demi-ecran. La grille choisit son nombre de
   colonnes selon la place, avec 170 px de plancher - 248 px a 576, 200 px a
   700 et a 767. Verifie a 320, 375, 480, 576, 700 et 767 px. */
@media (min-width: 576px) and (max-width: 767px) {
.lvv-rayons{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))!important}
/* Le 37 ne porte que 4 tuiles : trois colonnes y laissaient une tuile seule
   avec deux emplacements vides a cote. Deux colonnes bornees et centrees. */
body.category-id-37 .lvv-rayons{grid-template-columns:repeat(2,minmax(0,230px))!important;justify-content:center!important}
}
/* A partir de 480 px la tuile depasse 200 px, et le libelle de 13 px y paraissait
   perdu sous un socle trop bas. */
@media (min-width: 480px) and (max-width: 767px) {
.lvv-rayons td>p{min-height:66px!important;padding:8px 10px!important}
#category-description .lvv-rayons td>p>a{font-size:15px!important;letter-spacing:.10em!important;padding-bottom:9px;background-size:20px 1px}
}
/* Tablette en paysage et petits portables (768-991) : le tableau de bureau
   reprend, mais la colonne de filtres prend 192 a 248 px et la tuile tombe a
   158-185 px, la plus etroite du site. Le libelle de 17 px y remplissait le
   socle sur deux lignes. Il descend a 15 px a 768 et remonte vers 16 px. */
@media (min-width: 768px) and (max-width: 991px) {
#category-description .lvv-rayons td>p>a{font-size:clamp(15px,1.9vw,16px)!important;letter-spacing:.11em!important}
}
/* ==== FIN - TUILES DE RAYON : passe premium ==== */

/* ==========================================================================
   14. MISS BUD - SERIE 2026-08-22
   Trois visuels detoures (fond transparent) poses en pseudo-element sur des
   elements deja presents dans le gabarit. Aucun HTML ajoute, aucun fichier de
   theme touche : retirer cette section fait tout disparaitre.

   Ne restent ici que les trois pages sans point d accroche : 404, recherche
   sans resultat, panier vide. Les visuels de rayon, eux, ont migre vers le
   bloc HTML Box nomme Miss Bud - visuels de rayon (images + alt), accroche a
   la page de rayon : ils y sont de vraies balises img et portent donc un
   texte alternatif, ce qu une image de fond CSS ne permet pas.

   Fichiers : /img/cms/miss-bud-*.png (1000 px de large, PNG a canal alpha)
   Le visuel est pose en fond et non en content:url(...) : un pseudo-element
   remplace ne conserve pas son rapport hauteur/largeur quand on lui impose
   une largeur. background-size:contain, lui, le garde.
   ========================================================================== */

/* 14.1 - Reglage commun. Sans content:, un ::before ne cree aucune boite :
   ces proprietes ne s appliquent qu aux pseudo-elements qui recoivent une
   image dans les regles 14.2 a 14.4. */
body#pagenotfound #content.page-not-found::before,
body#search #js-product-list .page-not-found::before,
body#cart.cart-empty .cart-overview::before {
  display: block;
  width: 100%;
  max-width: 420px;
  aspect-ratio: 1000 / 660;
  margin: 0 auto 1.5rem auto;
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
}

/* 14.2 - Page introuvable */
body#pagenotfound #content.page-not-found::before {
  content: '';
  background-image: url(/img/cms/miss-bud-404-carte-v2.png?v=2);
}

/* 14.3 - Recherche sans resultat (le gabarit reutilise page-not-found) */
body#search #js-product-list .page-not-found::before {
  content: '';
  background-image: url(/img/cms/miss-bud-recherche-loupe-v2.png?v=2);
}

/* 14.4 - Panier vide. La classe cart-empty n est posee que panier vide :
   un panier rempli ne declenche rien. */
body#cart.cart-empty .cart-overview::before {
  content: '';
  background-image: url(/img/cms/miss-bud-panier-corbeille-v2.png?v=2);
}

/* 14.5 - Telephone : le visuel garde sa place mais respire moins */
@media (max-width: 575px) {
  body#pagenotfound #content.page-not-found::before,
  body#search #js-product-list .page-not-found::before,
  body#cart.cart-empty .cart-overview::before {
    max-width: 300px;
    margin-bottom: 1rem;
  }
}

/* ==========================================================================
   15. MISS BUD - CONFIRMATION DE COMMANDE
   Meme technique que les trois pages sans point d accroche (section 14) :
   le visuel est pose en fond sur un pseudo-element d un conteneur deja
   present. Retirer la regle fait tout disparaitre.

   L ancre vient du gabarit du theme, checkout/order-confirmation.tpl :
   section#content-hook_order_confirmation > .card-block > .row > .col-md-12,
   qui n existe que sur cette page. Le visuel se pose donc au-dessus du titre
   « Votre commande est confirmee ».

   Chaine d enfants volontaire : un module de paiement peut injecter d autres
   .col-md-12 plus bas dans la meme section via HOOK_ORDER_CONFIRMATION.

   Fichier : /img/cms/miss-bud-commande-confirmee.png?v=2 (1000x667, PNG a canal alpha)
   ========================================================================== */
#content-hook_order_confirmation .card-block > .row > .col-md-12::before {
  content: '';
  display: block;
  width: 100%;
  max-width: 380px;
  aspect-ratio: 1000 / 667;
  margin: 0 auto 1.25rem auto;
  background-image: url(/img/cms/miss-bud-commande-confirmee-v2.png?v=2);
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
}

@media (max-width: 575px) {
  #content-hook_order_confirmation .card-block > .row > .col-md-12::before {
    max-width: 280px;
    margin-bottom: 1rem;
  }
}

/* Fiches produit sur mobile : rendre au texte les retraits du bureau (2026-08-23).
   Trois retraits s'empilaient sans jamais etre reduits sous 768 px :
   .col-xs-12 (15 px, gouttiere Bootstrap, conservee), .tabs (30 px) et
   #tab-content (width:85% dans custom.css). Sur un ecran de 390 px la
   description ne recevait que 255 px, et la colonne des valeurs 142 px.
   Mesure apres correctif : 340 px et 224 px. Ne touche que la fiche produit :
   ni .tabs ni #tab-content n'existent ailleurs sur le site. */
@media (max-width: 767px) {
  #product .tabs { padding-left: 10px; padding-right: 10px; }
  #product #tab-content { width: 100%; }
}

/* ==========================================================================
   16. PAGES DU HUB SUR IPHONE - LE TABLEAU QUI NE SE REDUIT PAS
   Signale le 2026-08-23 : sur Safari iOS, les pages du coin de Miss Bud
   glissent lateralement. Chrome ne le fait pas, d ou le retard a le voir.

   Cause : les images de ces pages portent leur largeur en attribut
   (width="440" pour l en-tete, width="600" pour la scene) et vivent dans un
   tableau. WebKit fait entrer cette largeur dans la largeur minimale de la
   cellule, et un tableau ne descend jamais sous son minimum : le tableau
   impose donc 600 px sur un ecran de 375. Le max-width du tableau n y peut
   rien, et max-width:100% sur l image non plus — elle limite la largeur
   utilisee, pas la largeur minimale.

   Correctif : sur petit ecran, donner a l image une largeur en pourcentage.
   Une largeur en pourcentage ne contribue pas au minimum, le tableau
   redevient libre de se reduire. Sur telephone, une image qui occupe toute
   la colonne est de toute facon ce qu on veut.

   Ne touche rien au-dessus de 767 px : l affichage bureau est inchange.
   ========================================================================== */
@media (max-width: 767px) {
  #content.page-cms table {
    max-width: 100%;
  }
  #content.page-cms table img {
    width: 100%;
    height: auto;
  }
}
/* ==== DEBUT - LA VOIE VERTE : le prix des fleurs et resines est au gramme - 2026-08-26 ==== */
/* Les vignettes affichaient « 12,00 € » nu la ou le prix est un prix au gramme.
   Liste nominative de 83 produits, pas une regle par rayon : chacun porte sur sa fiche
   la mention « X € le gramme », ou une echelle de remise en grammes (4 a 200 g).
   Pre-roules, canarettes, cartouches, e-liquides, cigarettes et concentres en sont
   exclus : ils se vendent a la piece. Reste dehors, faute de preuve : 2757 (Magic
   Sauce Revuelto), dont la fiche ne dit pas l'unite. 970 (trim) est entre le
   2026-08-30 : sa fiche dit desormais l'unite, vendu au gramme des 10 g.
   Guillemets simples volontaires : le champ echappe les guillemets doubles.
   2782 (Beldia, resine CBD hors ligne) est entree le 2026-09-09 : vendue au gramme a
   8 EUR, bareme complet 4 a 200 g.
   Pour ajouter un produit, ajouter son identifiant a la liste. */
.product-miniature[data-id-product='970'] .price::after,
.product-miniature[data-id-product='1217'] .price::after,
.product-miniature[data-id-product='1220'] .price::after,
.product-miniature[data-id-product='1226'] .price::after,
.product-miniature[data-id-product='1458'] .price::after,
.product-miniature[data-id-product='1473'] .price::after,
.product-miniature[data-id-product='1515'] .price::after,
.product-miniature[data-id-product='1555'] .price::after,
.product-miniature[data-id-product='1685'] .price::after,
.product-miniature[data-id-product='1741'] .price::after,
.product-miniature[data-id-product='1891'] .price::after,
.product-miniature[data-id-product='1912'] .price::after,
.product-miniature[data-id-product='1913'] .price::after,
.product-miniature[data-id-product='1922'] .price::after,
.product-miniature[data-id-product='1951'] .price::after,
.product-miniature[data-id-product='1992'] .price::after,
.product-miniature[data-id-product='2025'] .price::after,
.product-miniature[data-id-product='2026'] .price::after,
.product-miniature[data-id-product='2027'] .price::after,
.product-miniature[data-id-product='2030'] .price::after,
.product-miniature[data-id-product='2031'] .price::after,
.product-miniature[data-id-product='2059'] .price::after,
.product-miniature[data-id-product='2085'] .price::after,
.product-miniature[data-id-product='2086'] .price::after,
.product-miniature[data-id-product='2087'] .price::after,
.product-miniature[data-id-product='2088'] .price::after,
.product-miniature[data-id-product='2111'] .price::after,
.product-miniature[data-id-product='2118'] .price::after,
.product-miniature[data-id-product='2119'] .price::after,
.product-miniature[data-id-product='2136'] .price::after,
.product-miniature[data-id-product='2137'] .price::after,
.product-miniature[data-id-product='2239'] .price::after,
.product-miniature[data-id-product='2248'] .price::after,
.product-miniature[data-id-product='2260'] .price::after,
.product-miniature[data-id-product='2264'] .price::after,
.product-miniature[data-id-product='2309'] .price::after,
.product-miniature[data-id-product='2310'] .price::after,
.product-miniature[data-id-product='2342'] .price::after,
.product-miniature[data-id-product='2354'] .price::after,
.product-miniature[data-id-product='2392'] .price::after,
.product-miniature[data-id-product='2393'] .price::after,
.product-miniature[data-id-product='2394'] .price::after,
.product-miniature[data-id-product='2398'] .price::after,
.product-miniature[data-id-product='2400'] .price::after,
.product-miniature[data-id-product='2402'] .price::after,
.product-miniature[data-id-product='2403'] .price::after,
.product-miniature[data-id-product='2404'] .price::after,
.product-miniature[data-id-product='2421'] .price::after,
.product-miniature[data-id-product='2422'] .price::after,
.product-miniature[data-id-product='2436'] .price::after,
.product-miniature[data-id-product='2437'] .price::after,
.product-miniature[data-id-product='2438'] .price::after,
.product-miniature[data-id-product='2439'] .price::after,
.product-miniature[data-id-product='2441'] .price::after,
.product-miniature[data-id-product='2456'] .price::after,
.product-miniature[data-id-product='2466'] .price::after,
.product-miniature[data-id-product='2478'] .price::after,
.product-miniature[data-id-product='2481'] .price::after,
.product-miniature[data-id-product='2482'] .price::after,
.product-miniature[data-id-product='2484'] .price::after,
.product-miniature[data-id-product='2485'] .price::after,
.product-miniature[data-id-product='2503'] .price::after,
.product-miniature[data-id-product='2506'] .price::after,
.product-miniature[data-id-product='2517'] .price::after,
.product-miniature[data-id-product='2518'] .price::after,
.product-miniature[data-id-product='2527'] .price::after,
.product-miniature[data-id-product='2543'] .price::after,
.product-miniature[data-id-product='2547'] .price::after,
.product-miniature[data-id-product='2548'] .price::after,
.product-miniature[data-id-product='2580'] .price::after,
.product-miniature[data-id-product='2581'] .price::after,
.product-miniature[data-id-product='2582'] .price::after,
.product-miniature[data-id-product='2584'] .price::after,
.product-miniature[data-id-product='2604'] .price::after,
.product-miniature[data-id-product='2670'] .price::after,
.product-miniature[data-id-product='2673'] .price::after,
.product-miniature[data-id-product='2674'] .price::after,
.product-miniature[data-id-product='2678'] .price::after,
.product-miniature[data-id-product='2679'] .price::after,
.product-miniature[data-id-product='2736'] .price::after,
.product-miniature[data-id-product='2738'] .price::after,
.product-miniature[data-id-product='2739'] .price::after,
.product-miniature[data-id-product='2740'] .price::after,
.product-miniature[data-id-product='2752'] .price::after,
.product-miniature[data-id-product='2757'] .price::after,
.product-miniature[data-id-product='2766'] .price::after,
.product-miniature[data-id-product='2801'] .price::after,
.product-miniature[data-id-product='2767'] .price::after,
.product-miniature[data-id-product='2768'] .price::after,
.product-miniature[data-id-product='2769'] .price::after,
.product-miniature[data-id-product='2770'] .price::after,
.product-miniature[data-id-product='2782'] .price::after {
  content: ' le gramme';
  font-size: .62em;
  font-weight: 400;
  color: rgba(26, 33, 32, .62);
  white-space: nowrap;
  margin-left: .18em;
}
/* ==== FIN - le prix au gramme sur les vignettes ==== */

/* ==== DEBUT - LA VOIE VERTE : ancres du coin de Miss Bud - 2026-08-27 ==== */
/* Le bandeau est colle en haut de page : sans marge de defilement, un saut vers
   une ancre du sommaire pose le titre de section sous le bandeau. */
.page-cms h2[id]{scroll-margin-top:210px;}
@media (max-width:767px){.page-cms h2[id]{scroll-margin-top:90px;}}
/* ==== FIN - LA VOIE VERTE : ancres du coin de Miss Bud ==== */

/* ==== DEBUT - LA VOIE VERTE : texte des fiches produit aligne a gauche - 2026-08-28 ==== */
/* custom.css pose text-align:center sur #tab-content, donc tout le contenu de la
   fiche est centre, y compris les longs paragraphes. Les composants (tableaux
   sb-*, mb-ap, cartes, figures et legendes) sont dessines pour etre centres :
   on ne leur touche pas. On rend seulement la gauche au corps de texte et aux
   listes. Regle posee sur l'element lui-meme : elle bat l'heritage sans !important. */
#description .product-description > p,
#description .product-description > ul,
#description .product-description > ol{text-align:left;}
#description .product-description > p.sb-fig,
#description .product-description > p.sb-leg,
#description .product-description > p.sb-note,
#description .product-description > p:has(img){text-align:center;}
/* ==== FIN - LA VOIE VERTE : texte des fiches produit aligne a gauche ==== */

/* ==== DEBUT - LA VOIE VERTE : bouton Filtrer des rayons - 2026-08-28 ==== */
/* Sur telephone, le panneau de filtres s'ouvre par un bouton gris clair du
   theme, etranger aux boutons de la maison. Depuis l'ajout du gabarit de
   filtres, il apparait sur 13 rayons de plus : autant qu'il soit de la famille. */
#search_filter_toggler{background:#2e4a32;color:#fff;border-color:#2e4a32;}
#search_filter_toggler:hover,#search_filter_toggler:focus,#search_filter_toggler:active{background:#243a27;color:#fff;border-color:#243a27;}
/* ==== FIN - LA VOIE VERTE : bouton Filtrer des rayons ==== */

/* ==== DEBUT - LA VOIE VERTE : lisibilite du pied de page - 2026-08-29 ==== */
/* Entre 768 et 992 px, une regle generique du theme (.collapse) pose un fond
   quasi blanc sur les listes de liens du pied. Les liens y sont en vert pale :
   contraste 1,1 pour 1, autrement dit invisibles. Sous 768 px le texte repasse
   en fonce et reste lisible, au-dessus de 992 le fond redevient transparent :
   on retablit simplement la transparence sur la tranche cassee. */
@media (min-width:768px) and (max-width:992px){
  .footer-container .links ul,.footer-container .links ul.collapse{background-color:transparent;}
}
/* ==== FIN - LA VOIE VERTE : lisibilite du pied de page ==== */

/* ==== DEBUT - LA VOIE VERTE : premier ecran des fiches sur telephone - 2026-08-29 ==== */
/* Mesure sur un telephone de 407 px : la galerie occupait 491 px, le nom du
   produit commencait a 580 px et le prix a 874. Le premier ecran ne montrait
   qu'une photo. En bornant la couverture et la bande de vignettes, le nom et le
   resume remontent a 441 px, dans le premier ecran, sans rendre la photo petite. */
@media (max-width:767px){
  .product-cover{max-width:70%;margin-left:auto;margin-right:auto;}
  .product-cover img{width:100%;height:auto;display:block;}
  .js-qv-mask .thumb,.product-images .thumb{max-width:64px;}
}
/* ==== FIN - LA VOIE VERTE : premier ecran des fiches sur telephone ==== */

/* ==== DEBUT - LA VOIE VERTE : tableau des caracteristiques - 2026-08-29 ==== */
/* Etiquette et valeur etaient toutes deux centrees, de meme graisse et de meme
   couleur : rien ne disait laquelle allait avec laquelle. Etiquette a gauche et
   plus soutenue, valeur a droite : la paire se lit d'un coup d'oeil. */
#product-details .data-sheet dt{text-align:left;font-weight:600;color:#4A504E;}
#product-details .data-sheet dd{text-align:right;color:#1A2120;}
/* ==== FIN - LA VOIE VERTE : tableau des caracteristiques ==== */

/* ==== DEBUT - LA VOIE VERTE : banniere cookies - 2026-08-29 ==== */
/* Sur telephone la banniere occupait 270 px, soit un tiers de l'ecran, en
   noir presque pur, avec un bouton J'accepte en simple contour beige : le
   geste attendu ne se voyait pas. Meme texte, meme comportement, on reduit
   la place prise et on remet la boite aux couleurs de la maison. 270 -> 175 px. */
.cc-window.cc-floating{padding:1rem 1.15rem;background:#2e4a32;}
.cc-window .cc-message{font-size:14px;line-height:1.45;margin-bottom:.65rem;color:#e7efdd;}
.cc-window .cc-link{color:#d9be73;}
.cc-window .cc-btn{background:#f4f1e8;color:#1a2120;border-color:#f4f1e8;font-weight:600;letter-spacing:.08em;padding:.55rem 1.4rem;}
@media (max-width:767px){.cc-window.cc-floating{max-width:100%;}}
/* ==== FIN - LA VOIE VERTE : banniere cookies ==== */

/* ==== DEBUT - LA VOIE VERTE : colonnes du pied de page - 2026-08-29 ==== */
/* custom.css pose .footer-container .row{width:70%} pour centrer la rangee
   principale du pied. La regle attrape aussi la rangee imbriquee dans la
   colonne des liens, qui se retrouve reduite une seconde fois : 448 px de
   colonne donnaient des listes de 116 px, et chaque libelle tombait sur deux
   a quatre lignes. On rend sa largeur a la rangee imbriquee, sans toucher a
   celle du dessus. Listes 116 -> 179 px, dix libelles sur douze tiennent
   desormais sur une ligne. */
@media (min-width:768px){
  .footer-container .row .row{width:100%;margin-left:0;margin-right:0;}
}
/* ==== FIN - LA VOIE VERTE : colonnes du pied de page ==== */

/* ==== DEBUT - TUILES DE RAYON : au module des cartes produit - 2026-08-30 ==== */
/* Les tuiles de rayon etaient plus petites que les cartes produit de la meme page
   (199 px contre 250 px a 1280) et decalees de 87 px vers la droite : la section
   posee plus haut borne tout enfant de #category-description a 660 px et le centre,
   ce qui est juste pour du texte courant mais faux pour une grille. Les tuiles
   quittent donc cette mesure editoriale et reprennent exactement le module des
   cartes produit, qui change de nature a 992 px.

   Le rayon 26 est le seul des sept a ne pas etre passe en display:contents : sa
   description est un bloc borne a 720 px et centre. On elargit ce bloc a la largeur
   utile et on rend la mesure de 720 px au seul texte, sinon les tuiles y restent
   dans une bande etroite (deux colonnes au lieu de trois). Ne pas mettre ce bloc en
   display:contents : son .block-category-inner est un flex en ligne, et les trente
   paragraphes de la description se rangeraient cote a cote. */
body#category.category-id-26 #category-description{max-width:none!important;width:100%!important}
body#category.category-id-26 #category-description > *{max-width:720px!important;margin-left:auto!important;margin-right:auto!important}

/* Le prefixe body#category #category-description > table.lvv-rayons est obligatoire :
   il pese autant que body#category.category-id-238 #category-description > * plus un
   element, donc il le bat, et il bat aussi la regle du rayon 26 ci-dessus. */
body#category #category-description > table.lvv-rayons{max-width:none!important;width:100%!important}

/* A partir de 992 px, la grille produits n est plus fluide : la carte vaut 250 px
   fixes, avec 13 px de marge de chaque cote, et la rangee est centree. Les tuiles
   reprennent ce module au pixel - meme largeur, memes colonnes, meme repli. Verifie
   a 992, 1024, 1280 et 1600 : tuiles et cartes tombent sur les memes abscisses.
   tbody et tr passent en display:contents pour que les tuiles coulent en continu au
   lieu de suivre les rangees du tableau - meme technique que la grille telephone. */
@media (min-width: 992px){
body#category #category-description > table.lvv-rayons{margin:6px 0 30px 0!important;padding:0!important}
.lvv-rayons{display:flex!important;flex-wrap:wrap!important;justify-content:center!important;border-spacing:0!important}
.lvv-rayons tbody,.lvv-rayons tr{display:contents!important}
.lvv-rayons td{display:block!important;width:250px!important;flex:0 0 250px!important;margin:0 13px 26px 13px!important}
.lvv-rayons td>p{min-height:78px!important;padding:8px 12px!important;border-top:1px solid rgba(201,169,97,.5)!important}
#category-description .lvv-rayons td>p>a{font-size:18px!important;letter-spacing:.14em!important}
}

/* 768-991 px : la grille produits redevient fluide - trois colonnes de 33,333 %
   dans un conteneur qui porte 8 px de marge interne, chaque carte gardant 6 px de
   gouttiere. Meme calcul ici. Le padding de 20 px pose plus haut sur les enfants de
   #category-description est ramene a 8 px, sinon les tuiles rentrent de 12 px de
   plus que les cartes. Verifie a 768 et 991. */
@media (min-width: 768px) and (max-width: 991px){
body#category #category-description > table.lvv-rayons{margin:6px 0 26px 0!important;padding:0 8px!important}
.lvv-rayons{display:flex!important;flex-wrap:wrap!important;justify-content:flex-start!important;border-spacing:0!important}
.lvv-rayons tbody,.lvv-rayons tr{display:contents!important}
.lvv-rayons td{display:block!important;flex:0 0 calc(33.333% - 12px)!important;width:calc(33.333% - 12px)!important;margin:0 6px 12px 6px!important}
.lvv-rayons td>p{min-height:64px!important;padding:8px 10px!important;border-top:1px solid rgba(201,169,97,.5)!important}
#category-description .lvv-rayons td>p>a{font-size:15px!important;letter-spacing:.11em!important}
}

/* Telephone : la grille a deux colonnes posee plus haut tombait deja a 5 px des
   cartes produit, on n y touche pas. Seul le filet dore est ajoute, pour que les
   trois largeurs se ressemblent. */
@media (max-width: 767px){
.lvv-rayons td>p{border-top:1px solid rgba(201,169,97,.5)!important}
}

/* 238 et 240 : ces photos portent un decor de fougere et le produit occupe le tiers
   bas du cadre. A 199 px de large cela passait ; a 250 px le vide se voyait. Un
   agrandissement pris par le bas ramene le produit a la taille attendue - il reste
   776 px de source pour 500 px d ecran en double densite, donc aucun flou. Reserve a
   ces deux rayons : ailleurs les objets sont hauts (vaporisateurs, bangs) et un
   agrandissement les decapiterait. */
@media (min-width: 768px){
body.category-id-238 .lvv-rayons img,body.category-id-240 .lvv-rayons img{transform:scale(1.16)!important;transform-origin:50% 78%!important}
body.category-id-238 .lvv-rayons td:hover img,body.category-id-240 .lvv-rayons td:hover img{transform:scale(1.23)!important}
}
/* ==== FIN - TUILES DE RAYON : au module des cartes produit ==== */

/* ==== DEBUT - FIL D ARIANE : pastille creme, filet or, losanges - 2026-08-30 ==== */
.breadcrumb{margin:16px 0 22px 32px !important;}
.breadcrumb ol{display:inline-flex;align-items:center;flex-wrap:wrap;row-gap:4px;margin:0;padding:11px 24px !important;background:#FCFBF7;border:0;border-bottom:1px solid rgba(176,141,63,.6);border-radius:2px;box-shadow:0 1px 2px rgba(46,74,50,.05);max-width:calc(100vw - 96px);}
.breadcrumb li{display:inline-flex;align-items:center;flex:none;max-width:100%;line-height:1.35;white-space:nowrap;}
.breadcrumb li a span, .breadcrumb li span{font-size:11.5px;letter-spacing:1.6px;text-transform:uppercase;color:rgba(46,74,50,.78);}
.breadcrumb li a{color:rgba(46,74,50,.78);text-decoration:none;transition:color .18s ease;}
.breadcrumb li a:hover span{color:#2E4A32;text-decoration:underline;text-underline-offset:3px;}
.breadcrumb li a:focus-visible{outline:2px solid rgba(46,74,50,.5);outline-offset:3px;border-radius:2px;}
.breadcrumb li::after{content:'' !important;display:inline-block;flex:none;width:4px;height:4px;margin:0 14px;background:#B08D3F;opacity:.8;border:0;transform:rotate(45deg);}
.breadcrumb li:last-child::after{display:none;}
.breadcrumb li:last-child span{display:block;max-width:100%;font-family:Marcellus, Georgia, serif;font-size:16.5px;letter-spacing:.3px;text-transform:none;color:#2E4A32;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
/* ==== FIN - FIL D ARIANE ==== */

/* ==== DEBUT - FIL D ARIANE - TELEPHONE : pastille de retour au rayon parent - 2026-08-30 ==== */
@media (max-width:767px){
.breadcrumb.hidden-sm-down{display:block !important;}
.breadcrumb{margin:10px 0 16px 16px !important;}
.breadcrumb ol{flex-wrap:nowrap;max-width:calc(100vw - 32px);padding:0 !important;}
.breadcrumb li{display:none !important;}
.breadcrumb li:nth-last-child(2){display:inline-flex !important;min-width:0;}
.breadcrumb li:nth-last-child(2)::after{display:none;}
.breadcrumb li:nth-last-child(2) a{display:flex;align-items:center;min-width:0;padding:11px 18px;}
.breadcrumb li:nth-last-child(2) a::before{content:'';display:inline-block;flex:none;width:5px;height:5px;margin-right:12px;border-top:1px solid #B08D3F;border-right:1px solid #B08D3F;transform:rotate(-135deg);}
.breadcrumb li:nth-last-child(2) span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;letter-spacing:1.4px;}
}
/* ==== FIN - FIL D ARIANE - TELEPHONE ==== */

/* 2026-08-31 - NETTOYAGE : le debut orphelin de la feuille  fin de fiche
   produit  a ete retire d ici. Il avait ete coupe en plein vol le 2026-08-30
   parce que le champ etait plein, et la feuille complete vit depuis dans le
   BLOC 16. Aucune regle perdue : les 1 604 signes de regles du moignon etaient
   un prefixe strict de celles du bloc 16, verifie signe a signe.
   Etat anterieur : sauvegardes-css/ROLLBACK_bloc9_style_AVANT-2026-08-31.css */

/* ==== DEBUT - LA VOIE VERTE : densite de l accueil (moins de defilement) - 2026-09-02 ==== */
/* Aucun contenu retire ici. Le seul retrait est ailleurs : la vignette Miss Bud isolee du
   bloc 2, qui doublait la section "Le coin de Miss Bud" plus bas.
   Mesure avant : 6 728 px ordinateur / 8 016 px telephone.
   Source lisible : presta LVV/densite-accueil-2026-09-02/densite-accueil.css */

/* --- 1. Les sept vignettes de rayon sur une seule ligne (ordinateur) --- */
@media (min-width:992px){
  body .lvv-home-rayons{ padding:12px 20px 20px; }
  body .lvv-home-rayons nav{ flex-wrap:nowrap; gap:0 12px; max-width:1180px; }
  body .lvv-home-rayons a{ width:auto; flex:1 1 0; min-width:0; }
  body .lvv-home-rayons .nom{ min-height:48px; padding:6px 6px; font-size:14px;
    border-width:2px; border-radius:16px; }
}
@media (max-width:767px){
  body .lvv-home-rayons{ padding:12px 12px 18px; }
  body .lvv-home-rayons nav{ gap:2px 8px; }
  /* Telephone : 3 vignettes sur la premiere ligne, 4 sur la seconde (2026-09-03) */
  body .lvv-home-rayons nav a:nth-child(-n+3){ width:calc((100% - 16px)/3); }
  body .lvv-home-rayons nav a:nth-child(n+4){ width:calc((100% - 24px)/4); }
  body .lvv-home-rayons nav a:nth-child(n+4) .nom{ font-size:11px; padding:5px 3px; letter-spacing:0; }
  body .lvv-home-rayons .nom{ min-height:42px; padding:5px 5px; font-size:12.5px;
    border-width:2px; border-radius:14px; }
}

/* --- 2. Les quatre en-tetes de section --- */
body .lvv-vit .lvv-vit-sur,
body .lvv-huiles .lvv-sur,
body .lvv-mb .lvv-sur,
body #custom-text .lvv-boutiques .lvv-sur{ margin-bottom:8px; }
body .lvv-vit .lvv-vit-chapo,
body .lvv-huiles .lvv-chapo,
body .lvv-mb .lvv-chapo,
body #custom-text .lvv-boutiques .lvv-chapo{ margin-top:9px; max-width:760px;
  font-size:15px; line-height:1.5; }
body .lvv-vit .lvv-vit-orn,
body .lvv-huiles .lvv-orn,
body .lvv-mb .lvv-orn,
body #custom-text .lvv-boutiques .lvv-orn{ margin-top:14px; }
@media (max-width:767px){
  body .lvv-vit .lvv-vit-chapo,
  body .lvv-huiles .lvv-chapo,
  body .lvv-mb .lvv-chapo,
  body #custom-text .lvv-boutiques .lvv-chapo{ font-size:14px; line-height:1.45; }
  body .lvv-vit .lvv-vit-orn,
  body .lvv-huiles .lvv-orn,
  body .lvv-mb .lvv-orn,
  body #custom-text .lvv-boutiques .lvv-orn{ margin-top:11px; }
}

/* --- 3. La respiration entre les sections --- */
body .homeslider-container{ margin-bottom:0; }
/* Le vide entre le carrousel et les tuiles de rayon : 32 a 34 px mesures, ramenes a 12 px
   le 2026-09-03 a la demande de Florent — la marge du carrousel passe a 0 et les trois
   valeurs de haut de la section (24, 22 et 26 px selon la largeur) toutes a 12. */
body .lvv-vit{ padding:42px 0 36px; }
body .lvv-huiles{ padding:40px 0 34px; }
body .lvv-mb{ padding:40px 0 34px; }
body #custom-text .lvv-boutiques{ padding:36px 0 30px; }
body .lvv-vit-car{ margin-top:24px; }
body .lvv-car{ margin-top:24px; }
body .lvv-mb-grille{ margin-top:24px; }
body .lvv-vit-fen, body .lvv-fen{ padding:10px 0 14px; }
body .lvv-mb-pied{ margin-top:18px; }
@media (max-width:767px){
  body .lvv-vit{ padding:32px 0 28px; }
  body .lvv-huiles{ padding:32px 0 26px; }
  body .lvv-mb{ padding:32px 0 26px; }
  body #custom-text .lvv-boutiques{ padding:28px 0 24px; }
  body .lvv-vit-car, body .lvv-car, body .lvv-mb-grille{ margin-top:18px; }
}

/* --- 4. Les cartes des deux carrousels produit (object-fit:contain, rien n est rogne) --- */
body .lvv-vit .lvv-vit-vue{ aspect-ratio:1 / 1; }
body .lvv-huiles .lvv-vue{ aspect-ratio:1 / 1; }
body .lvv-huiles .lvv-vue img{ padding:12px 12px 16px; }
body .lvv-vit .lvv-vit-corps{ padding:14px 16px 14px; }
body .lvv-huiles .lvv-corps{ padding:14px 18px 14px; }
body .lvv-huiles .lvv-det{ margin-top:9px; min-height:0; }
body .lvv-huiles .lvv-pied{ margin-top:12px; padding-top:11px; }

/* --- 5. Le coin de Miss Bud : cartes couchees sur telephone --- */
@media (max-width:767px){
  body .lvv-mb-grille{ gap:10px; }
  body .lvv-mb .lvv-mbc{ flex-direction:row; align-items:stretch; }
  body .lvv-mb .lvv-mbc-vue{ flex:0 0 118px; aspect-ratio:auto;
    border-bottom:0; border-right:1px solid rgba(46,74,50,.10); }
  body .lvv-mb .lvv-mbc-vue img{ padding:8px; }
  body .lvv-mb .lvv-mbc-corps{ padding:12px 14px 12px; text-align:left; }
  body .lvv-mb .lvv-mbc-nom{ font-size:17px; }
  body .lvv-mb .lvv-mbc-det{ margin-top:5px; font-size:12.5px; line-height:1.45; }
  body .lvv-mb .lvv-mbc-cta{ align-self:flex-start; padding-top:9px; font-size:10.5px; }
}
@media (min-width:768px){
  body .lvv-mb .lvv-mbc-vue{ aspect-ratio:440 / 240; }
  body .lvv-mb .lvv-mbc-corps{ padding:16px 18px 14px; }
  body .lvv-mb .lvv-mbc-nom{ min-height:0; }
  body .lvv-mb .lvv-mbc-cta{ padding-top:12px; }
}

/* --- 6. Nos boutiques : recadrage verifie, l enseigne reste entiere sur les deux photos --- */
body #custom-text .lvv-bq-vue{ aspect-ratio:16 / 9; }
/* --- 7. Le pied de page : meme contenu, range plus serre --- */
body #footer .blockreassurance{ padding-top:12px; padding-bottom:12px; }
body #footer .blockreassurance .block-icon{ height:auto; line-height:1; margin-bottom:6px; }
body #footer .blockreassurance .block-icon svg,
body #footer .blockreassurance .block-icon img{ width:46px !important; height:46px !important; }
body #footer .blockreassurance p{ margin-bottom:0; line-height:1.45; }
body #footer .block_newsletter{ padding-top:16px; padding-bottom:16px; }
body #footer .block_newsletter #block-newsletter-label{ margin:8px 0 14px; }
body #footer .block_newsletter p{ font-size:13px; line-height:1.45; margin:8px 0 0; }
@media (max-width:767px){
  body #footer .blockreassurance{ padding-top:10px; padding-bottom:10px; }
  body #footer .blockreassurance .row{ display:flex; flex-wrap:nowrap; }
  body #footer .blockreassurance .row > div{ flex:1 1 0; max-width:none; padding:0 6px; }
  body #footer .blockreassurance .block-icon{ margin:0 auto 4px; }
  body #footer .blockreassurance .block-icon svg,
  body #footer .blockreassurance .block-icon img{ width:30px !important; height:30px !important; }
  body #footer .blockreassurance .block-title{ font-size:11.5px; line-height:1.2; }
  body #footer .blockreassurance p{ font-size:10.5px; line-height:1.3; }
  body #footer .block_newsletter{ padding-top:14px; padding-bottom:14px; }
  body #footer .block_newsletter #block-newsletter-label{ margin:6px 0 8px; }
  body #footer .block_newsletter p{ font-size:11.5px; line-height:1.4; }
  body #footer #block_myaccount_infos ul{ column-count:2; column-gap:14px; }
  body #footer #block_myaccount_infos ul li{ break-inside:avoid; }
}

/* --- 8. Tablette : quatre vignettes de rayon par ligne au lieu de trois --- */
@media (min-width:768px) and (max-width:991px){
  body .lvv-home-rayons{ padding:12px 20px 22px; }
  body .lvv-home-rayons nav{ gap:4px 14px; }
  body .lvv-home-rayons a{ width:22.5%; }
  body .lvv-home-rayons .nom{ min-height:46px; font-size:13.5px; border-width:2px;
    border-radius:16px; padding:6px 8px; }
}

/* --- 9. Resserrage des vides - 2026-09-03 --- */
body .lvv-vit .lvv-vit-sur,
body .lvv-huiles .lvv-sur,
body .lvv-mb .lvv-sur,
body #custom-text .lvv-boutiques .lvv-sur{ line-height:1.2; margin-bottom:6px; }
/* La plaque des titres impose ses marges en !important depuis le bloc 18 :
   il faut la meme portee body#index #main pour les reduire, et sur le seul accueil. */
body#index #main .lvv-vit-tete h2,
body#index #main .lvv-huiles-tete h2,
body#index #main .lvv-mb-tete h2,
body#index #main .lvv-bq-tete h2{ margin-top:16px !important; margin-bottom:14px !important; }
body .lvv-vit .lvv-vit-chapo,
body .lvv-huiles .lvv-chapo,
body .lvv-mb .lvv-chapo,
body #custom-text .lvv-boutiques .lvv-chapo{ margin-top:6px; }
body .lvv-vit .lvv-vit-orn,
body .lvv-huiles .lvv-orn,
body .lvv-mb .lvv-orn,
body #custom-text .lvv-boutiques .lvv-orn{ margin-top:9px; }
body .lvv-vit, body .lvv-huiles, body .lvv-mb{ padding:24px 0 20px; }
body #custom-text .lvv-boutiques{ padding:24px 0 20px; }
body .lvv-vit-car, body .lvv-car, body .lvv-mb-grille,
body #custom-text .lvv-bq-grille{ margin-top:14px; }
body .lvv-vit-fen, body .lvv-fen{ padding:4px 0 8px; }
body .lvv-vit-note, body .lvv-huiles-pied, body .lvv-mb-pied{ margin-top:12px; }
@media (max-width:767px){
  body .lvv-vit, body .lvv-huiles, body .lvv-mb,
  body #custom-text .lvv-boutiques{ padding:20px 0 16px; }
  body .lvv-vit-car, body .lvv-car, body .lvv-mb-grille{ margin-top:12px; }
}
body #footer{ padding-top:20px; }
body #footer .blockreassurance{ padding-top:8px; padding-bottom:8px; }
body #footer .blockreassurance .block-icon{ margin-bottom:4px; }
body #footer .blockreassurance .block-title{ line-height:1.25; margin-bottom:2px; }
body #footer .block_newsletter{ padding-top:10px; padding-bottom:10px; margin-bottom:0; }
body #footer .block_newsletter #block-newsletter-label{ margin:4px 0 8px; line-height:1.15; }
body #footer .block_newsletter form p{ padding-top:0; margin-top:6px; }
body #footer .block-social{ padding-top:4px; padding-bottom:4px; }
body #footer .block-social ul{ margin:0; padding:0; }
body #footer .footer-container{ margin-top:10px; padding-top:12px; }
@media (max-width:767px){
  body #footer .footer-container .title{ padding-top:8px; padding-bottom:8px; }
  body #footer .footer-container .h3, body #footer .footer-container p.h3{ margin-bottom:6px; }
  body #footer .footer-container ul{ margin-top:0; padding-top:4px; padding-bottom:4px; }
}
/* ==== FIN - LA VOIE VERTE : densite de l accueil ==== */

/* --- 10. Accueil sur telephone : le fil d Ariane vide pousse le carrousel - 2026-09-03 --- */
/* Sous 768 px, le fil d Ariane de la page d accueil s affiche alors qu il est VIDE : 10 px de
   marge haute, 30 de hauteur, 16 de marge basse — 56 px poses avant le carrousel pour rien.
   Masque uniquement sur l accueil (body#index) : ailleurs il porte du texte utile. Au-dessus
   de 768 px il est deja masque et le carrousel colle deja au bandeau. Le display du theme est
   en !important, il faut donc l etre aussi. */
@media (max-width:767px){
  body#index #wrapper .breadcrumb{ display:none !important; }
}

/* ==================================================================
   prix au gramme et a l unite
   Reprise du bloc HTML Box n 15, dans l ordre ou le document le
   servait le 2026-09-04. Ne pas reordonner : a specificite egale,
   c est cet ordre qui decide.
   ================================================================== */
/* LA VOIE VERTE - la ligne "des X EUR/g" et "des X EUR l'unite" - 2026-08-29
   Feuille propre a ce bloc HTML Box : elle ne touche pas la grande feuille
   partagee du bloc 9, qui porte deja la mention " le gramme" sur le prix.
   Aucun guillemet : le champ Style echappe les guillemets doubles en &quot;
   et fait disparaitre la regle sans rien signaler. */

.product-miniature .lvv-des,
a.lvv-ic .lvv-des-ic {
  display: block;
  margin-top: 3px;
  font-family: var(--lvv-texte);
  font-size: 11.5px;
  line-height: 1.25;
  letter-spacing: .01em;
}

/* Le chiffre : or profond, le meme que les surtitres des boutons de quantite. */
.product-miniature .lvv-des .lvv-des-prix,
a.lvv-ic .lvv-des-ic .lvv-des-prix {
  font-weight: 600;
  color: #8A6C2E;
  white-space: nowrap;
}

/* La condition : elle doit se lire, sans concurrencer le prix. */
.product-miniature .lvv-des .lvv-des-cond,
a.lvv-ic .lvv-des-ic .lvv-des-cond {
  color: #545755;
  white-space: nowrap;
}

/* Cartes de l'accueil : la ligne se pose SOUS la rangee prix/CTA, qui est un
   flex nowrap etroit. Elle se cale a gauche, sur le prix. */
a.lvv-ic .lvv-des-ic {
  margin-top: 5px;
  text-align: left;
}

@media (max-width: 575px) {
  .product-miniature .lvv-des,
  a.lvv-ic .lvv-des-ic {
    margin-top: 2px;
    font-size: 10.5px;
    letter-spacing: 0;
  }
  a.lvv-ic .lvv-des-ic { margin-top: 4px; }
}

/* ==================================================================
   densite de l accueil
   Reprise du bloc HTML Box n 22, dans l ordre ou le document le
   servait le 2026-09-04. Ne pas reordonner : a specificite egale,
   c est cet ordre qui decide.
   ================================================================== */
/* ==== LA VOIE VERTE : accueil - suite de la feuille de densite - 2026-09-03 ====
   Ce bloc prolonge le bloc 9 "Correctifs affichage", dont le champ Style approche
   son plafond de 64 000 signes. Meme point d accroche (displayFooterAfter), donc
   rendu apres lui : les regles d ici gagnent a specificite egale.
   Source lisible : presta LVV/densite-accueil-2026-09-02/densite-accueil.css ==== */

/* --- 10. Nos boutiques : carrousel a faire glisser sur telephone --- */
/* Les deux cartes s empilaient (1 292 px). Elles defilent maintenant a l horizontale,
   la seconde depasse pour montrer qu on peut glisser. Aucun balisage change :
   la section vit dans le module "Bloc texte libre", dont l editeur retire des balises. */
/* --- 11. Les deux carrousels produit tiennent sur un ecran de telephone - 2026-09-03 --- */
/* Avant : "Les incontournables" 642 px, "Nos huiles" 772 px, pour un ecran utile de 580 px
   sur un telephone dont la barre du navigateur est visible (390 x 664 moins le bandeau colle).
   Apres : 520 et 569 px. Rien n est retire : tout est du rangement.
   La photo passe en hauteur fixe pour ne plus grandir avec la largeur de l ecran ;
   object-fit:contain, donc aucun produit n est rogne. */
@media (max-width:767px){
  body .lvv-vit, body .lvv-huiles{ padding:10px 0 8px; }
  body#index #main .lvv-vit-tete h2,
  body#index #main .lvv-huiles-tete h2{ margin-top:8px !important; margin-bottom:6px !important; }
  body .lvv-vit .lvv-vit-chapo, body .lvv-huiles .lvv-chapo{ font-size:13px; line-height:1.3; }
  body .lvv-vit .lvv-vit-orn, body .lvv-huiles .lvv-orn{ margin-top:5px; }
  body .lvv-vit-car, body .lvv-car{ margin-top:6px; }
  body .lvv-vit-fen, body .lvv-fen{ padding:2px 0; }
  body .lvv-vit .lvv-vit-vue, body .lvv-huiles .lvv-vue{ aspect-ratio:1 / 1; height:auto; }
  body .lvv-huiles .lvv-vue img{ padding:8px 10px 10px; }
  body .lvv-vit .lvv-vit-corps, body .lvv-huiles .lvv-corps{ padding:8px 14px; }
  body .lvv-vit .lvv-vit-filet, body .lvv-huiles .lvv-filet{ margin-top:6px; margin-bottom:6px; }
  body .lvv-huiles .lvv-oeil{ line-height:1.3; }
  body .lvv-huiles .lvv-nom{ margin-top:5px; }
  body .lvv-huiles .lvv-det{ margin-top:5px; line-height:1.4; }
  body .lvv-huiles .lvv-pied{ margin-top:6px; padding-top:5px; }
  body .lvv-huiles .lvv-prix{ font-size:17px; }
  body .lvv-vit-note{ margin-top:8px; }
  body .lvv-huiles-pied{ margin-top:6px; gap:6px 16px; }
  body .lvv-huiles-pied .lvv-deg{ font-size:12.5px; max-width:none; line-height:1.35; }
  body .lvv-huiles-pied .lvv-bout{ padding:12px 18px 11px; line-height:1.2; }
}

/* ==== DEBUT - LA VOIE VERTE : densite des pages de rayon (moins de defilement) - 2026-09-03 ==== */
/* Pose : bloc HTML Box 22 (le bloc 9 est plein a 62 014 signes sur 64 000).
   Rendu apres le bloc 9, donc gagne a specificite egale. Aucun contenu retire.
   Mesure avant : voir DENSITE_CATEGORIES_2026-09-03.md */

/* --- 1. LA GRILLE : quatre colonnes entre 1200 et 1599 px, cinq au-dela ---
   Chaque carte est enveloppee dans un div sans classe : c'est LUI qui porte le pas de
   276 px (article de 250 px + 2 x 13 de marge). A 1440 px la liste fait 1050 px :
   4 x 276 = 1104 > 1050, donc trois cartes et 300 px de blanc perdus par ligne.
   On rend l'enveloppe fluide et on resserre la marge de l'article a 6 px.
   A 1440 px la carte fait toujours 250 px : rien ne retrecit, on gagne une colonne. */
@media (min-width:1200px) and (max-width:1599px){
  body#category #products .products > div{ flex:0 0 25%; max-width:25%; width:auto; }
}
@media (min-width:1600px){
  body#category #products .products > div{ flex:0 0 20%; max-width:20%; width:auto; }
}
@media (min-width:1200px){
  body#category #products .products > div > .product-miniature{ width:auto; margin:0 6px; }
  body#category #products .products > div .thumbnail-container{ width:auto; }
  /* la photo suit la carte ; object-fit:contain, donc rien n'est rogne */
  body#category #products .products .thumbnail-container .product-thumbnail img{
    width:auto; height:auto; max-width:calc(100% - 22px); max-height:226px; }
}

/* --- 2. LE TEXTE DE RAYON : la colonne de droite sert enfin ---
   La description est bornee a 660-680 px et centree dans une colonne de 1050 px.
   Les visuels Miss Bud, poses pleine largeur, empilent 293 px chacun sans un mot.
   On aligne le texte a gauche et on fait flotter les visuels dans le vide de droite. */
@media (min-width:992px){
  body#category div#category-description{ max-width:none; width:100%; }
  body#category[class*='category-id-'] div#category-description > *{
    max-width:680px; margin-left:0; margin-right:auto; align-self:flex-start; }
  /* le visuel est dans un lien : p > a > img, pas p > img */
  body#category div#category-description > p:has(img.img-fluid){
    float:right; clear:right; width:300px; max-width:300px;
    margin:2px 0 14px 28px; }
  body#category div#category-description > p:has(img.img-fluid) img.img-fluid{
    width:100%; height:auto; }
  body#category div#category-description > p:has(img.img-fluid) a{ display:block; }
}
/* Telephone et tablette : le flottant n'a pas la place, on reduit le visuel */
@media (max-width:991px){
  body#category div#category-description p > img.img-fluid{
    width:74%; max-width:420px; display:block; margin-left:auto; margin-right:auto; }
}

/* --- 3. Les vides du texte : titres et listes seulement, et sur ordinateur seulement ---
   Ne rien poser sur les paragraphes : beaucoup ont deja une marge nulle, une regle
   uniforme leur en AJOUTERAIT (mesure du 2026-09-03 : +170 px sur le rayon 67).
   Meme piege pour les titres : leur marge haute vaut 34 px sur ordinateur mais 0 sur
   telephone - une valeur unique y ajouterait 24 px par titre. */
@media (min-width:992px){
  body#category div#category-description h2{ margin-top:22px; margin-bottom:10px; }
  body#category div#category-description h3{ margin-top:22px; margin-bottom:8px; }
  body#category div#category-description ul,
  body#category div#category-description ol{ margin-bottom:10px; }
}
@media (max-width:991px){
  body#category div#category-description ul,
  body#category div#category-description ol{ margin-bottom:10px; }
}

/* --- 4. Le tableau comparatif (17 fleurs, 22 lignes, 1 648 px) --- */
body#category div#category-description .sb-scroll table td,
body#category div#category-description .sb-scroll table th{
  padding:5px 10px; line-height:1.35; }
body#category div#category-description .sb-scroll{ margin-bottom:16px; }

/* --- 5. Rayon 26 (Vaporisation) : le guide passe sous les produits ---
   Seul rayon ou les 4 505 px de guide restaient au-dessus de la grille : le premier
   produit commencait a 5 120 px. Son .block-category-inner est un flex EN LIGNE, ce
   qui interdit le display:contents tel quel (les paragraphes se rangent cote a cote) :
   on le repasse en bloc d'abord, puis on applique la meme mecanique que les autres rayons. */
/* sur ce rayon #main est en display:block : order n'y a aucun effet tant qu'on
   ne l'a pas passe en colonne flex comme sur les autres rayons */
body#category.category-id-26 #main{ display:flex; flex-direction:column; }
body#category.category-id-26 #js-product-list-header,
body#category.category-id-26 #js-product-list-header .block-category,
body#category.category-id-26 #js-product-list-header .block-category-inner{
  display:contents; }
body#category.category-id-26 #js-product-list-header .block-category-inner > *{
  order:10; width:100%; max-width:700px; margin-left:0; margin-right:auto; }
body#category.category-id-26 #js-product-list-header h1{ order:-1; }

/* --- 6. LA CARTE SUR TELEPHONE ET TABLETTE : le vide autour du prix ---
   Le bloc blanc du bas porte une HAUTEUR FIXE (163 px sous 576, 171 px entre 576 et 991)
   alors que son contenu le plus haut mesure 148 px, respectivement 156 px (releve du
   2026-09-03 sur les six rayons, 268 cartes). On rend la hauteur au contenu, on cale la
   reserve du conteneur sur le pire cas mesure + 6 px de securite, et on resserre le
   retrait de 26 px au-dessus du prix. Rien n'est retire ni retreci : ni la photo, ni le
   nom entier, ni le badge Selection. */
@media (max-width:991px){
  body#category #products .thumbnail-container .product-description{
    height:auto; min-height:0; padding:8px 10px 10px; }
  body#category #products .thumbnail-container .product-price-and-shipping{
    padding-top:6px; }
  body#category #products .thumbnail-container{ margin-bottom:14px; }
}
@media (max-width:575px){
  body#category #products .thumbnail-container{ padding-bottom:154px; }
}
@media (min-width:576px) and (max-width:991px){
  body#category #products .thumbnail-container{ padding-bottom:162px; }
}

/* --- 7. LES TUILES DE SOUS-RAYON : une gouttiere reelle, des lignes pleines ---
   Correction du 2026-09-03 (soir). La version du matin donnait aux tuiles
   flex:0 0 25% et padding:0 6px. Le remplissage est INTERIEUR a la case, et la case
   porte le fond sombre : la gouttiere etait donc peinte en sombre et les quatre
   tuiles se soudaient en une seule dalle. Avec six sous-rayons, la ligne suivante
   n en gardait que deux, centrees sous le vide.
   Ici les tuiles reprennent leur largeur fixe de 250 px et leur marge de 13 px
   (la gouttiere redevient EXTERIEURE), et c est le TABLEAU qu on borne pour choisir
   le nombre de colonnes : 828 px = 3 x 276, donc trois colonnes pleines - 6 tuiles
   font 3+3, 9 font 3+3+3, plus aucune ligne orpheline. Gummies (4 tuiles) et
   Accessoires (12) gardent quatre colonnes fluides, calees au pixel sur les
   cartes produit, avec la marge de 6 px et non un remplissage. */
@media (min-width:1200px){
  body#category #category-description > table.lvv-rayons{
    max-width:828px!important; margin-left:auto!important; margin-right:auto!important;
    justify-content:center!important; }
  body#category #category-description > table.lvv-rayons td{
    flex:0 0 250px!important; width:250px!important;
    margin:0 13px 26px 13px!important; padding:0!important; box-sizing:border-box!important; }
  body#category.category-id-37 #category-description > table.lvv-rayons,
  body#category.category-id-40 #category-description > table.lvv-rayons{
    max-width:none!important; justify-content:flex-start!important; }
  body#category.category-id-37 #category-description > table.lvv-rayons td,
  body#category.category-id-40 #category-description > table.lvv-rayons td{
    flex:0 0 calc(25% - 12px)!important; width:calc(25% - 12px)!important;
    margin:0 6px 26px 6px!important; }
}

/* --- 8. LES AUTRES PAGES DE LISTE ---
   Nouveautes, promotions, meilleures ventes, marques, recherche : meme grille, meme
   module. Sans cela le site aurait deux densites selon la page. */
@media (min-width:1200px) and (max-width:1599px){
  body#new-products #products .products > div, body#prices-drop #products .products > div,
  body#best-sales #products .products > div, body#manufacturer #products .products > div,
  body#supplier #products .products > div, body#search #products .products > div{
    flex:0 0 25%; max-width:25%; width:auto; }
}
@media (min-width:1600px){
  body#new-products #products .products > div, body#prices-drop #products .products > div,
  body#best-sales #products .products > div, body#manufacturer #products .products > div,
  body#supplier #products .products > div, body#search #products .products > div{
    flex:0 0 20%; max-width:20%; width:auto; }
}
@media (min-width:1200px){
  body#new-products #products .products > div > .product-miniature,
  body#prices-drop #products .products > div > .product-miniature,
  body#best-sales #products .products > div > .product-miniature,
  body#manufacturer #products .products > div > .product-miniature,
  body#supplier #products .products > div > .product-miniature,
  body#search #products .products > div > .product-miniature{ width:auto; margin:0 6px; }
  body#new-products #products .products > div .thumbnail-container,
  body#prices-drop #products .products > div .thumbnail-container,
  body#best-sales #products .products > div .thumbnail-container,
  body#manufacturer #products .products > div .thumbnail-container,
  body#supplier #products .products > div .thumbnail-container,
  body#search #products .products > div .thumbnail-container{ width:auto; }
  body#new-products #products .thumbnail-container .product-thumbnail img,
  body#prices-drop #products .thumbnail-container .product-thumbnail img,
  body#best-sales #products .thumbnail-container .product-thumbnail img,
  body#manufacturer #products .thumbnail-container .product-thumbnail img,
  body#supplier #products .thumbnail-container .product-thumbnail img,
  body#search #products .thumbnail-container .product-thumbnail img{
    width:auto; height:auto; max-width:calc(100% - 22px); max-height:226px; }
}
@media (max-width:991px){
  body#new-products #products .thumbnail-container .product-description,
  body#prices-drop #products .thumbnail-container .product-description,
  body#best-sales #products .thumbnail-container .product-description,
  body#manufacturer #products .thumbnail-container .product-description,
  body#supplier #products .thumbnail-container .product-description,
  body#search #products .thumbnail-container .product-description{
    height:auto; min-height:0; padding:8px 10px 10px; }
  body#new-products #products .thumbnail-container .product-price-and-shipping,
  body#prices-drop #products .thumbnail-container .product-price-and-shipping,
  body#best-sales #products .thumbnail-container .product-price-and-shipping,
  body#manufacturer #products .thumbnail-container .product-price-and-shipping,
  body#supplier #products .thumbnail-container .product-price-and-shipping,
  body#search #products .thumbnail-container .product-price-and-shipping{ padding-top:6px; }
  body#new-products #products .thumbnail-container, body#prices-drop #products .thumbnail-container,
  body#best-sales #products .thumbnail-container, body#manufacturer #products .thumbnail-container,
  body#supplier #products .thumbnail-container, body#search #products .thumbnail-container{
    margin-bottom:14px; }
}
@media (max-width:575px){
  body#new-products #products .thumbnail-container, body#prices-drop #products .thumbnail-container,
  body#best-sales #products .thumbnail-container, body#manufacturer #products .thumbnail-container,
  body#supplier #products .thumbnail-container, body#search #products .thumbnail-container{
    padding-bottom:154px; }
}
@media (min-width:576px) and (max-width:991px){
  body#new-products #products .thumbnail-container, body#prices-drop #products .thumbnail-container,
  body#best-sales #products .thumbnail-container, body#manufacturer #products .thumbnail-container,
  body#supplier #products .thumbnail-container, body#search #products .thumbnail-container{
    padding-bottom:162px; }
}

/* ==== FIN - LA VOIE VERTE : densite des pages de rayon - 2026-09-03 ==== */

/* ==== DEBUT - LA VOIE VERTE : cartes couchees sur telephone, rayon Accessoires - 2026-09-03 ==== */
/* Suite de la feuille de densite posee le meme jour. Sur telephone, la grille a deux
   colonnes pesait 10 065 px pour 60 produits, soit 65 % de la page : c'est le seul
   poste qui restait gros. La carte se couche - photo a gauche, texte a droite, une par
   ligne - et la grille tombe a 6 923 px (-31 %).

   PERIMETRE : le rayon Accessoires (40) et ses quatorze sous-rayons uniquement.
   Les fleurs, resines et neo-cannabinoides gardent la grille a deux colonnes : la
   photo y est un critere d'achat et le couche supprime la comparaison a l'oeil.
   Le rayon 214 (accessoires de vaporisation) est range sous Vaporisation (26), pas
   sous 40 : il reste donc en grille, comme le reste de Vaporisation.

   BORNE A 575 px, et non 767 : c'est le point de bascule du theme. Sous 576 px la
   grille a DEUX colonnes grandit avec l'ecran (10 065 px a 375, 13 065 a 575) tandis
   que le couche reste plat a ~6 900 - le gain va donc de -3 142 a -6 225 px. A partir
   de 576 px le theme passe a TROIS colonnes et retombe a 6 813 px : le couche y est
   deja perdant (+70), et il couterait deux colonnes de comparaison. Mesure du
   2026-09-03 sur le rayon 67, dix largeurs.

   [class~='...'] et non [class*='...'] : le mot entier, pour ne pas attraper un
   hypothetique parent-400. */

@media (max-width:575px){
  :root{ --lvv-vig:104px; }

  /* une carte par ligne */
  body#category[class~='category-id-parent-40']:not(.lvv-etag-complet) #products .products div:has(.product-miniature){
    flex:0 0 100%!important; width:100%!important; max-width:100%!important;
    padding-left:0!important; padding-right:0!important; }

  /* le conteneur se couche */
  body#category[class~='category-id-parent-40']:not(.lvv-etag-complet) #products .thumbnail-container{
    display:flex!important; align-items:center; padding-bottom:0!important;
    height:auto!important; margin-bottom:8px; text-align:left; }

  /* la photo a gauche, carree */
  body#category[class~='category-id-parent-40']:not(.lvv-etag-complet) #products .thumbnail-container .product-thumbnail{
    flex:0 0 var(--lvv-vig); width:var(--lvv-vig); height:var(--lvv-vig);
    padding-top:0!important; position:relative; }
  body#category[class~='category-id-parent-40']:not(.lvv-etag-complet) #products .thumbnail-container .product-thumbnail img{
    position:absolute; inset:0; margin:auto!important; width:auto; height:auto;
    max-width:calc(var(--lvv-vig) - 16px); max-height:calc(var(--lvv-vig) - 16px); }

  /* le texte a droite, rendu au flux */
  body#category[class~='category-id-parent-40']:not(.lvv-etag-complet) #products .thumbnail-container .product-description{
    position:relative!important; left:auto!important; bottom:auto!important; top:auto!important;
    flex:1 1 auto; width:auto!important; height:auto!important; min-height:0!important;
    padding:6px 12px 6px 14px; text-align:left; display:flex; flex-direction:column;
    align-items:flex-start; justify-content:center; }

  /* le filet dore (34 x 1 px) est cale a 50% 12px : concu pour passer AU-DESSUS d'un
     prix centre. Couche, sur une carte a une seule ligne de prix, ces 12 px tombent au
     milieu du texte et se lisent comme un prix barre. On le renvoie a droite. */
  body#category[class~='category-id-parent-40']:not(.lvv-etag-complet) #products .thumbnail-container .product-price-and-shipping{
    padding-top:0!important; margin-top:0!important; width:100%; text-align:left;
    background-position:100% 50%!important; }

  body#category[class~='category-id-parent-40']:not(.lvv-etag-complet) #products .thumbnail-container .lvv-nom-entier{
    text-align:left; }

  /* le badge Selection revient dans le flux (il etait pose en absolu sur la photo) */
  body#category[class~='category-id-parent-40']:not(.lvv-etag-complet) #products .thumbnail-container .lvv-sel{
    position:static!important; display:inline-block; margin-top:5px;
    top:auto!important; bottom:auto!important; left:auto!important; }
}
/* ==== FIN - LA VOIE VERTE : cartes couchees sur telephone, rayon Accessoires ==== */

/* --- 12. Telephone : deux cartes par vue, les deux sections tiennent sur un ecran - 2026-09-03 --- */
/* La carte pleine largeur (74 %) donnait une photo carree de 275 px : belle, mais
   "Nos huiles" montait a 764 px pour 580 px d ecran utile. Deux cartes par vue ramenent
   la carte a 180 px : la photo remplit toujours sa boite (aucune bande blanche), la section
   descend a 550 px, et on voit deux produits au lieu d un.
   2 x flex-basis + 1 gap = 100 % : le pas du carrousel (-100 % - gap) reste aligne. */
@media (max-width:767px){
  body .lvv-vit .lvv-vit-c{ flex:0 0 calc((100% - 16px) / 2); }
  body .lvv-huiles .lvv-fl{ flex:0 0 calc((100% - 16px) / 2); }
  body .lvv-vit .lvv-vit-corps, body .lvv-huiles .lvv-corps{ padding:8px 10px 10px; }
  body .lvv-vit .lvv-vit-oeil, body .lvv-huiles .lvv-oeil{ font-size:9.5px; letter-spacing:.14em; line-height:1.25; }
  body .lvv-vit .lvv-vit-nom{ margin-top:6px; font-size:15px; line-height:1.2; -webkit-line-clamp:3; }
  body .lvv-huiles .lvv-nom{ margin-top:4px; font-size:15px; line-height:1.2; }
  body .lvv-vit .lvv-vit-filet, body .lvv-huiles .lvv-filet{ margin-top:5px; margin-bottom:5px; }
  body .lvv-huiles .lvv-det{ margin-top:5px; font-size:11.5px; line-height:1.35; }
  body .lvv-vit .lvv-vit-pied, body .lvv-huiles .lvv-pied{ margin-top:6px; padding-top:6px;
    flex-direction:row; flex-wrap:nowrap; justify-content:space-between; align-items:baseline; gap:6px; }
  body .lvv-vit .lvv-vit-prix, body .lvv-huiles .lvv-prix{ font-size:15px; line-height:1.25; }
  body .lvv-vit .lvv-vit-cta, body .lvv-huiles .lvv-cta{ font-size:9.5px; letter-spacing:.06em; line-height:1.25; }
  body .lvv-huiles .lvv-chapo{ display:none; }
}

/* --- 13. Le nom du produit ne se coupe plus sur ordinateur - 2026-09-03 --- */
/* Les cartes de la vitrine sont passees a 178 px de texte : a 15,5 px, deux noms du
   catalogue demandent trois lignes (Canapuff CBN THC Cerise 75mg/5mg Collection +18,
   Cartouche CBD Hempbrothers Full Spectrum 1 ml) et la limite de deux lignes les coupait
   en plein milieu. Trois lignes autorisees : la rangee grandit de 19 px, aucun nom n est
   tronque. Le telephone a deja sa propre regle en section 12. */
@media (min-width:768px){
  body .lvv-vit .lvv-vit-nom{ -webkit-line-clamp:3; }
  body .lvv-huiles .lvv-nom{ -webkit-line-clamp:3; }
}

/* ==== DEBUT - LA VOIE VERTE : etagere en trois colonnes + renvoi en fin de rayon - 2026-09-03 ==== */
/* Troisieme feuille du chantier densite. Deux gestes independants. */

/* --- 1. LE RENVOI PASSE APRES LES PRODUITS, SUR TOUS LES RAYONS ---
   Le bloc « Pour aller voir : ... » (~300 px) etait pose entre le titre et la grille.
   Le guide de rayon porte deja order:10 et le titre order:-1 ; le renvoi prend order:5,
   ce qui le place APRES les produits et AVANT le guide - un rebond de fin de rayon.
   Le texte ne bouge pas dans le code, seulement a l'ecran : aucun effet sur le
   referencement. Gain mesure : 282 a 380 px avant le premier produit, sur chaque rayon.
   Vise l'enfant direct de l'en-tete : il existe un second .lvv-mb, de hauteur nulle,
   dans #hookDisplayProductListHeaderAfter, qu'on ne touche pas. */
body#category #js-product-list-header > .lvv-mb{ order:5; }

/* --- 2. L'ETAGERE DE SOUS-RAYONS EN TROIS COLONNES SUR TELEPHONE ---
   Douze tuiles en quatre lignes au lieu de six : l'etagere du rayon Accessoires tombe
   de 1 361 a 644 px et le premier produit remonte de 2 223 a 1 506. Une etagere sert a
   voir les rayons disponibles : en montrer plus d'un coup vaut mieux qu'une grande
   photo. Les libelles restent entiers, verifie tuile par tuile.

   BORNE A 575 px : au-dessus, le theme passe deja en auto-fit (minmax 170 px) et fait
   trois colonnes ou plus tout seul.

   SEULEMENT LES QUATRE RAYONS D'AU MOINS SIX TUILES : 40 (12), 26 (9), 238 (6),
   240 (6). Les rayons 37 et 249 n'en ont que quatre - a trois colonnes ils
   afficheraient 3 + 1 tuile orpheline, ils gardent donc deux colonnes. */
@media (max-width:575px){
  body#category.category-id-40 .lvv-rayons,
  body#category.category-id-26 .lvv-rayons,
  body#category.category-id-238 .lvv-rayons,
  body#category.category-id-240 .lvv-rayons{
    grid-template-columns:1fr 1fr 1fr!important; gap:8px!important; }

  body#category.category-id-40 .lvv-rayons td > p,
  body#category.category-id-26 .lvv-rayons td > p,
  body#category.category-id-238 .lvv-rayons td > p,
  body#category.category-id-240 .lvv-rayons td > p{
    min-height:46px!important; padding:5px 4px!important; }

  body#category.category-id-40 #category-description .lvv-rayons td > p > a,
  body#category.category-id-26 #category-description .lvv-rayons td > p > a,
  body#category.category-id-238 #category-description .lvv-rayons td > p > a,
  body#category.category-id-240 #category-description .lvv-rayons td > p > a{
    font-size:11px!important; letter-spacing:0.04em!important; }
}
/* ==== FIN - LA VOIE VERTE : etagere en trois colonnes + renvoi en fin de rayon ==== */

/* ==== DEBUT - LA VOIE VERTE : le creux des ecrans moyens (992-1199 px) - 2026-09-03 ==== */
/* Quatrieme feuille du chantier densite. Elle refait, pour la tranche 992-1199 px, ce
   que la premiere feuille avait fait a partir de 1200.

   LE FAIT : a 992 px exactement, la carte produit passe en largeur FIXE (250 px) et la
   tuile de rayon aussi. Sur une colonne de contenu de 744 px, il n'en tient plus que
   deux. La page du rayon Accessoires passe de 13 340 px (a 991) a 18 939 px (a 992) :
   +5 599 px pour un pixel de large en plus. A 1199 la largeur suffit de nouveau pour
   trois, et a 1200 la premiere feuille prend le relais avec quatre.

   Mesure du 2026-09-03, rayon 67 (60 produits) :
     991 -> 11 104 px (3 colonnes)   992 -> 15 457 px (2)   1199 -> 11 148 px (3)
   C'est le pire regime du site : l'iPad en paysage et le portable en fenetre reduite.

   La tablette en PORTRAIT (576-991) n'a rien : elle tient deja trois colonnes. */

/* --- 1. LA GRILLE PRODUIT : trois colonnes, fluides ---
   Meme mecanique que la premiere feuille : c'est l'enveloppe sans classe qui porte le
   pas, pas l'article. La carte passe de 250 px fixes a ~236 (a 992) ou ~288 (a 1199) ;
   la hauteur de carte ne bouge pas, elle est tenue par .thumbnail-container. */
@media (min-width:992px) and (max-width:1199px){
  body#category #products .products > div,
  body#new-products #products .products > div,
  body#prices-drop #products .products > div,
  body#best-sales #products .products > div,
  body#search #products .products > div{
    flex:0 0 33.333%; max-width:33.333%; width:auto; }

  body#category #products .products > div > .product-miniature,
  body#new-products #products .products > div > .product-miniature,
  body#prices-drop #products .products > div > .product-miniature,
  body#best-sales #products .products > div > .product-miniature,
  body#search #products .products > div > .product-miniature{ width:auto; margin:0 6px; }

  body#category #products .products > div .thumbnail-container,
  body#new-products #products .products > div .thumbnail-container,
  body#prices-drop #products .products > div .thumbnail-container,
  body#best-sales #products .products > div .thumbnail-container,
  body#search #products .products > div .thumbnail-container{ width:auto; }

  body#category #products .products .thumbnail-container .product-thumbnail img,
  body#new-products #products .products .thumbnail-container .product-thumbnail img,
  body#prices-drop #products .products .thumbnail-container .product-thumbnail img,
  body#best-sales #products .products .thumbnail-container .product-thumbnail img,
  body#search #products .products .thumbnail-container .product-thumbnail img{
    width:auto; height:auto; max-width:calc(100% - 22px); max-height:226px; }
}

/* --- 2. L'ETAGERE DE SOUS-RAYONS ---
   Les tuiles portent margin:0 13px 26px a partir de 992 px : d'ou le -26px.
   Trois colonnes pour les rayons d'au moins six tuiles ; QUATRE pour ceux qui n'en ont
   que quatre (37 et 249), ce qui les met sur une seule ligne au lieu de deux - a trois
   colonnes ils laisseraient une tuile orpheline.

   Le max-width:250px n'est pas decoratif : la tuile porte une image en ratio 1/1, donc
   toute largeur gagnee devient de la hauteur. Vers 1199 px le tiers vaut 274 px et
   l'etagere du rayon 40 REGAGNAIT 55 px. Plafonnee a sa taille native, elle reste
   fluide en bas de tranche (222 px a 992) et retrouve le comportement du theme en
   haut. */
@media (min-width:992px) and (max-width:1199px){
  body#category.category-id-40 #category-description > table.lvv-rayons td,
  body#category.category-id-26 #category-description > table.lvv-rayons td,
  body#category.category-id-238 #category-description > table.lvv-rayons td,
  body#category.category-id-240 #category-description > table.lvv-rayons td{
    flex:0 0 calc(33.333% - 26px)!important; width:calc(33.333% - 26px)!important;
    max-width:250px!important; }

  body#category.category-id-37 #category-description > table.lvv-rayons td,
  body#category.category-id-249 #category-description > table.lvv-rayons td{
    flex:0 0 calc(25% - 26px)!important; width:calc(25% - 26px)!important;
    max-width:250px!important; }
}
/* ==== FIN - LA VOIE VERTE : le creux des ecrans moyens (992-1199 px) ==== */

/* ==== TUILES DE RAYON SUR TELEPHONE : un seul modele, lu dans le balisage - 2026-09-03 ==== */
/* Avant : deux listes d identifiants de rayon tenues a la main, et deux oublis.
   - La liste des marges laterales (bloc 9, max-width:991px) ne portait pas le rayon 26 :
     sa table faisait 390 px au lieu de 350, les tuiles touchaient les deux bords de l ecran.
   - La liste des trois colonnes ne portait que 40, 26, 238 et 240 : les rayons 36, 37, 188
     et 249 restaient en deux colonnes de 170 px avec un texte de 13 px.
   Apres : plus aucune liste. Le nombre de colonnes se lit dans le balisage lui-meme.
   Ces tables sont baties a lignes pleines - trois cellules par ligne (26, 36, 40, 188,
   238, 240) ou deux (37, 249) - donc la premiere ligne dit le pas voulu, et la derniere
   ligne est toujours pleine : aucune rangee orpheline, sur aucun rayon, present ou futur.
   La plaque prend une hauteur fixe : un nom qui passe sur deux lignes ne decale plus sa
   rangee (mesure au 03/09 sur Accessoires : 46 px sur une ligne, 48 sur deux). */
@media (max-width:575px){
  body#category #category-description .lvv-rayons{
    display:grid !important; box-sizing:border-box !important;
    width:100% !important; max-width:none !important;
    padding:0 20px !important; margin:8px 0 26px !important;
    border-spacing:0 !important;
  }
  body#category #category-description .lvv-rayons tbody,
  body#category #category-description .lvv-rayons tr{ display:contents !important; }
  body#category #category-description .lvv-rayons td{
    display:block !important; width:auto !important; margin:0 !important;
  }

  /* trois cellules sur la premiere ligne du balisage : trois colonnes */
  body#category #category-description .lvv-rayons:has(tbody tr:first-child td:nth-child(3)){
    grid-template-columns:repeat(3, minmax(0,1fr)) !important; gap:8px !important;
  }
  body#category #category-description .lvv-rayons:has(tbody tr:first-child td:nth-child(3)) td > p{
    min-height:50px !important; padding:5px 4px !important;
  }
  body#category #category-description .lvv-rayons:has(tbody tr:first-child td:nth-child(3)) td > p > a{
    font-size:11px !important; letter-spacing:.04em !important;
  }

  /* deux cellules seulement : deux colonnes, et la place d un texte plus grand */
  body#category #category-description .lvv-rayons:not(:has(tbody tr:first-child td:nth-child(3))){
    grid-template-columns:repeat(2, minmax(0,1fr)) !important; gap:10px !important;
  }
  body#category #category-description .lvv-rayons:not(:has(tbody tr:first-child td:nth-child(3))) td > p{
    min-height:56px !important; padding:6px 8px !important;
  }
  body#category #category-description .lvv-rayons:not(:has(tbody tr:first-child td:nth-child(3))) td > p > a{
    font-size:13px !important; letter-spacing:.08em !important;
  }
}

/* --- Et le texte du rayon, pas seulement ses tuiles - 2026-09-03 --- */
/* Meme liste tenue a la main, meme oubli : la marge laterale du bloc 9 enumere
   238, 240, 248, 249, 36, 37, 40 et 188. Le rayon 26 n y est pas, donc sa prose et
   ses sous-titres partaient a x=0 quand ses tuiles avaient deja leurs 20 px.
   La table des tuiles est exclue : elle porte ses propres marges plus haut, et
   entre 768 et 991 px le bloc 9 lui donne 8 px qu on ne veut pas ecraser. */
@media (max-width:991px){
  body#category #category-description > *:not(table.lvv-rayons){
    padding-left:20px !important; padding-right:20px !important;
  }
}

/* --- La meme regle entre 576 et 767 px - 2026-09-03 --- */
/* Cette bande (grand telephone couche, petite tablette) etait restee sur l ancien
   modele, et elle portait la meme paire de defauts :
   - le pas venait d un repeat(auto-fit, minmax(170px,1fr)). A 576 px la place ne
     tient que deux colonnes de 170, donc les rayons batis a trois cellules par
     ligne tombaient a deux : douze tuiles faisaient six rangees, neuf en faisaient
     quatre plus une orpheline. Elargir l ecran de 575 a 576 px RETIRAIT une colonne.
   - la marge laterale venait toujours de la liste du bloc 9, donc le rayon 26 avait
     encore sa table a x=15 quand les autres etaient a x=35.
   Meme principe qu en dessous de 575 : le pas se lit dans le balisage, la table
   porte ses propres 20 px, la plaque garde une hauteur fixe (66 px absorbent deux
   lignes de 15 px), et la tuile est bornee a 250 px comme sur grand ecran pour
   qu une page a deux colonnes ne serve pas des tuiles deux fois plus grosses. */
@media (min-width:576px) and (max-width:767px){
  body#category #category-description .lvv-rayons{
    padding:0 20px !important; gap:12px !important; justify-items:center !important;
  }
  body#category #category-description .lvv-rayons td{
    width:100% !important; max-width:250px !important;
  }
  body#category #category-description .lvv-rayons:has(tbody tr:first-child td:nth-child(3)){
    grid-template-columns:repeat(3, minmax(0,1fr)) !important;
  }
  body#category #category-description .lvv-rayons:not(:has(tbody tr:first-child td:nth-child(3))){
    grid-template-columns:repeat(2, minmax(0,1fr)) !important;
  }
  body#category #category-description .lvv-rayons td > p{
    min-height:66px !important; padding:8px 10px !important;
  }
  body#category #category-description .lvv-rayons td > p > a{
    font-size:15px !important; letter-spacing:.1em !important;
  }
}

/* ==== DEBUT - LA VOIE VERTE : la barre de tri deborde et se casse - 2026-09-03 ==== */
/* Defaut ancien, sans rapport avec les feuilles de densite du meme jour.

   1) LE BOUTON SORT DE L'ECRAN. Le fichier du theme (themes/classic/assets/css/
      custom.css, hors de notre portee) pose `width: max-content` sur
      `.products-sort-order .select-title` : le bouton prend la largeur de son libelle
      et ne se replie JAMAIS. Sur la page Nouveautes, ou le libelle est le plus long du
      site (« Date d'ajout, du plus recent au plus ancien », 363 px), il sortait de
      165 px a 768, de 102 a 992 et de 44 a 1 200. Un simple max-width le borne : le
      max-width l'emporte sur le max-content.

   2) « TRIER PAR : » SE CASSAIT LETTRE PAR LETTRE. Le libelle est un span en col-md-3,
      soit un quart d'une demi-colonne : 61 px a 768 px de large. Il s'y empilait sur
      quatre lignes (TRI / ER / PAR / :) et poussait la barre a 120 px. Defaut visible
      sur TOUS les rayons, de 768 a 1 200 px.

   Mesure du 2026-09-03. Barre de tri d'un rayon a 768 px : 120 -> 56 px. */

/* --- 1. Le bouton ne sort plus, quel que soit son libelle --- */
body .products-sort-order .select-title,
body .brands-sort .select-title,
body .suppliers-sort .select-title{ max-width:100%; }

/* Sous 1 200 px la place est comptee : une police un peu plus sobre garde le libelle
   sur une seule ligne sur telephone (46 px de haut au lieu de 80). */
@media (max-width:1199px){
  body .products-sort-order .select-title{ font-size:15px; padding:8px 10px; }
}

/* --- 2. Le libelle prend la largeur qu'il lui faut, le bouton prend le reste ---
   ATTENTION au piege de parente : `.products-sort-order` n'est PAS l'ancetre du
   libelle, c'est son FRERE (la div qui porte le bouton). Un selecteur
   `.products-sort-order .sort-by-row > *:first-child` ne matche rien du tout.

   `min-width:0` n'est pas decoratif : sans lui, un element flex refuse de descendre
   sous la largeur de son contenu, et le bouton ressortait de l'ecran PLUS qu'avant. */
@media (min-width:768px){
  body .sort-by-row{ align-items:center; }
  body .sort-by-row > span.sort-by{
    flex:0 0 auto; width:auto; max-width:none; white-space:nowrap; }
  body .sort-by-row > .products-sort-order{
    flex:1 1 auto; width:auto; min-width:0; }
}

/* --- 3. De 768 a 991 px, la place manque vraiment ---
   La barre de tri n'y dispose que de 243 px : meme repare, le libelle mangeait la
   moitie de la place et le bouton se repliait sur quatre lignes. Le theme masque deja
   « Trier par : » en dessous de 768 (hidden-sm-down) ; on prolonge ce masquage jusqu'a
   991. Le bouton dit de toute facon sur quoi on trie.
   Essai ecarte : passer la rangee en pleine largeur reglait la page Nouveautes mais
   coutait 46 px de hauteur a TOUS les rayons, qui n'avaient aucun probleme. */
@media (min-width:768px) and (max-width:991px){
  body .sort-by-row > span.sort-by{ display:none; }
}
/* ==== FIN - LA VOIE VERTE : la barre de tri deborde et se casse ==== */

/* --- La cellule de calage ne se peint plus - 2026-09-03 --- */
/* Le rayon 249 porte une quatrieme cellule VIDE pour completer sa grille 2 x 2.
   Elle prenait le fond sombre et l ombre de la classe : un rectangle noir de
   170 x 226 a cote de CBC (DC10). Elle reste en place - c est elle qui tient
   l alignement de la rangee - mais elle ne peint plus rien et ne repond plus
   au survol. Elle est vraiment vide, donc :empty l attrape. */
body#category #category-description .lvv-rayons td:empty{
  background:none !important; box-shadow:none !important; border:0 !important;
}
body#category #category-description .lvv-rayons td:empty:hover{
  transform:none !important; box-shadow:none !important;
}

/* ==== DEBUT - LA VOIE VERTE : harmonie de l accueil - 2026-09-04 ==== */
/* Toutes les declarations portent !important : l ordre des blocs HTML Box se
   rejoue a chaque enregistrement d un voisin, une surcharge qui ne compte que
   sur sa position la perd en silence. */

/* --- 1. Une seule echelle de carte produit -------------------------------
   Avant : la photo rendait 129 px aux « Incontournables » et 332 px a
   « Nos huiles » — 2,6x d ecart sur la meme page. Les deux carrousels
   partagent desormais le meme pas (cinq colonnes), la meme gouttiere (20 px)
   et la meme boite photo (carree, comme les fichiers 800x800).
   La boite 4/3 des incontournables bridait la photo a 129 px dans un cadre
   de 210 : le reste etait du blanc. */
@media (min-width: 992px) {
  body#index .lvv-vit .lvv-vit-c,
  body#index .lvv-huiles .lvv-fl { flex: 0 0 calc(20% - 16px) !important; }
  body#index .lvv-huiles .lvv-piste { gap: 20px !important; }
  body#index .lvv-vit .lvv-vit-vue,
  body#index .lvv-huiles .lvv-vue { aspect-ratio: 1 / 1 !important; height: auto !important; }

  /* Huit huiles, cinq par page : deux pages au lieu de trois. Le pas vaut une
     carte plus sa gouttiere = 20 % + 4 px ; la seconde page recule de trois
     pas et montre les huiles 4 a 8. Le troisieme bouton radio existe toujours
     dans le HTML du bloc 2 : sa pastille est masquee et les deux fleches qui
     y menaient sont rendues inertes, comme les fleches de fin de course du
     carrousel de Miss Bud. */
  body#index #lvvh1:checked ~ .lvv-fen .lvv-piste { transform: translateX(0) !important; }
  body#index #lvvh2:checked ~ .lvv-fen .lvv-piste,
  body#index #lvvh3:checked ~ .lvv-fen .lvv-piste { transform: translateX(calc(-60% - 12px)) !important; }
  body#index .lvv-huiles .lvv-t3 { display: none !important; }
  body#index .lvv-huiles .lvv-p1,
  body#index .lvv-huiles .lvv-n2 { pointer-events: none !important; opacity: .28 !important; }
}

/* --- 2. Un filet au-dessus de chaque section -----------------------------
   Avant : deux sections sur quatre en portaient un. */
body#index .lvv-huiles,
body#index #custom-text .lvv-boutiques { border-top: 1px solid rgba(46, 74, 50, .16) !important; }

/* --- 3. Les cartes boutique rejoignent la famille ------------------------
   Avant : filet noir plein et aucune ombre, quand les trois autres familles
   de cartes portent un filet vert clair et une ombre d un pixel. */
body#index #custom-text .lvv-bq {
  border: 1px solid rgba(46, 74, 50, .16) !important;
  box-shadow: 0 1px 0 0 rgba(26, 33, 32, .04) !important;
}

/* --- 4. Les prix des huiles s alignent d une carte a l autre -------------
   Avant : le pied suivait le texte, donc chaque prix tombait a une hauteur
   differente. Les cartes des incontournables le poussaient deja en bas.
   Le detail est borne a trois lignes : aucune des huit huiles n y est
   coupee, meme a 992 px. */
body#index .lvv-huiles .lvv-pied { margin-top: auto !important; }
body#index .lvv-huiles .lvv-det {
  display: -webkit-box !important;
  -webkit-line-clamp: 3 !important;
  -webkit-box-orient: vertical !important;
  overflow: hidden !important;
  min-height: 2.4em !important;
}

/* --- 5. Les petites capitales cessent d heriter l interligne du theme ----
   Le theme pose line-height: 30px. Un sur-titre de 10,5 px et un appel a
   l action de 11 px se retrouvaient donc dans une boite de 30 px : quinze a
   dix-neuf pixels de vide par occurrence, dans chaque carte et chaque pied
   de section. Rien n est rapetisse, seule la boite se referme sur le texte.
   −83 px sur la page a 1440. */
body#index .lvv-huiles .lvv-oeil,
body#index .lvv-mb .lvv-mbc-oeil,
body#index #custom-text .lvv-bq .lvv-oeil { line-height: 1.3 !important; }
body#index .lvv-huiles .lvv-cta,
body#index .lvv-mb .lvv-mbc-cta,
body#index #custom-text .lvv-bq-cta { line-height: 1.3 !important; }
/* --- 6. La tablette cesse d etre l ecran le plus long -------------------
   Entre 768 et 991 px, les cartes valaient 44 % de la piste, soit 361 px de
   large a 820 : les plus grandes cartes du site, plus grandes que sur
   ordinateur (212). La page y faisait 4 796 px, contre 4 501 sur ordinateur
   et 3 530 sur telephone. A 31 % la carte tombe a 244 px, trois entieres
   tiennent a l ecran et la quatrieme depasse — l indice qu on peut faire
   glisser reste visible. −176 px a 820, −160 a 768. */
@media (min-width: 768px) and (max-width: 991px) {
  body#index .lvv-vit .lvv-vit-c,
  body#index .lvv-huiles .lvv-fl { flex: 0 0 calc(31% - 10px) !important; }
}
/* ==== FIN - LA VOIE VERTE : harmonie de l accueil - 2026-09-04 ==== */

/* ==== DEBUT - LA VOIE VERTE : etagere, cellule vide et tuile orpheline - 2026-09-04 ==== */
/* Suite du chantier densite. Deux defauts distincts, que le releve avait d'abord
   confondus : je comptais les CELLULES du tableau, pas les rayons reellement affiches.

   DEFAUT 1 - UNE CELLULE VIDE QUI PREND UNE PLACE PLEINE.
   L'etagere du rayon 249 (E-liquides) porte quatre cellules dans son balisage mais
   seulement TROIS rayons : la quatrieme est vide, sans image ni lien. En affichage
   flex elle est plate (hauteur 0) et ne se voit pas ; en grille, elle occupe une case
   entiere - 163 x 219 px de vide a 375, 263 x 319 a 575. Personne ne l'avait vue
   parce qu'elle ne se manifeste que dans un des deux regimes.

   DEFAUT 2 - LA TUILE ORPHELINE.
   Le rayon 37 (CBD) a quatre vrais rayons, ecrits 2 x 2 dans le balisage. Entre 768 et
   991 px, le theme les dispose en TROIS colonnes : 3 + 1, une tuile seule sur sa ligne.

   AUCUNE LISTE DE RAYONS ICI : tout se lit dans le balisage et dans le contenu des
   cellules - une cellule est un rayon si elle porte un lien. Une etagere qui gagne ou
   perd un rayon demain sera traitee correctement sans qu'on y retouche. */

/* --- 1. Une cellule sans lien n'est pas un rayon : elle ne prend pas de place --- */
body#category #category-description .lvv-rayons td:not(:has(a)){ display:none!important; }

/* --- 2. Trois rayons ou moins : trois colonnes sur telephone, donc une seule ligne ---
   Vise les etageres dont la quatrieme cellule (2e ligne, 2e colonne du balisage) ne
   porte pas de lien. Les etageres ecrites en trois cellules par ligne ne sont pas
   concernees : leur 2e ligne a bien un lien en 2e colonne. */
@media (max-width:575px){
  body#category #category-description .lvv-rayons:not(:has(tbody tr:nth-child(2) td:nth-child(2) a)){
    display:grid!important; grid-template-columns:repeat(3,minmax(0,1fr))!important;
    gap:8px!important; border-spacing:0!important; }
  body#category #category-description .lvv-rayons:not(:has(tbody tr:nth-child(2) td:nth-child(2) a)) tbody,
  body#category #category-description .lvv-rayons:not(:has(tbody tr:nth-child(2) td:nth-child(2) a)) tr{
    display:contents!important; }
  body#category #category-description .lvv-rayons:not(:has(tbody tr:nth-child(2) td:nth-child(2) a)) td:has(a){
    display:block!important; width:auto!important; max-width:none!important;
    flex:none!important; margin:0!important; }
  body#category #category-description .lvv-rayons:not(:has(tbody tr:nth-child(2) td:nth-child(2) a)) td:has(a) > p{
    min-height:46px!important; padding:5px 4px!important; }
  body#category #category-description .lvv-rayons:not(:has(tbody tr:nth-child(2) td:nth-child(2) a)) td:has(a) > p > a{
    font-size:11px!important; letter-spacing:0.04em!important; }
}

/* --- 3. Quatre rayons pleins ecrits 2 x 2 : quatre colonnes des 768 px ---
   Trois conditions lues dans le balisage : deux cellules sur la premiere ligne, pas de
   troisieme ligne, et la quatrieme cellule porte bien un lien (sinon c'est le cas 2).
   Sous 768 px on ne touche a rien : 2 + 2 y est deja equilibre. */
@media (min-width:768px){
  body#category #category-description .lvv-rayons:not(:has(tbody tr:first-child td:nth-child(3))):not(:has(tbody tr:nth-child(3))):has(tbody tr:nth-child(2) td:nth-child(2) a){
    display:grid!important; grid-template-columns:repeat(4,minmax(0,1fr))!important;
    gap:10px!important; border-spacing:0!important; }
  body#category #category-description .lvv-rayons:not(:has(tbody tr:first-child td:nth-child(3))):not(:has(tbody tr:nth-child(3))):has(tbody tr:nth-child(2) td:nth-child(2) a) tbody,
  body#category #category-description .lvv-rayons:not(:has(tbody tr:first-child td:nth-child(3))):not(:has(tbody tr:nth-child(3))):has(tbody tr:nth-child(2) td:nth-child(2) a) tr{
    display:contents!important; }
  body#category #category-description .lvv-rayons:not(:has(tbody tr:first-child td:nth-child(3))):not(:has(tbody tr:nth-child(3))):has(tbody tr:nth-child(2) td:nth-child(2) a) td:has(a){
    display:block!important; width:auto!important; max-width:none!important;
    flex:none!important; margin:0!important; }
}
/* ==== FIN - LA VOIE VERTE : etagere, cellule vide et tuile orpheline ==== */

/* ==================================================================
   ombres retirees, logo et bandeau
   Reprise du bloc HTML Box n 23, DERNIER du document — donc derniere
   section du fichier. Ne rien ajouter apres elle sans y penser : a
   specificite egale, ce qui est ecrit ici gagne sur tout ce qui precede.
   ================================================================== */
/* ==== FRONTIERE DE CHANTIER — 2026-09-05 ====

   1. LE BANDEAU APPARTIENT AU CHANTIER DU BLOC 24.

   Les regles de tete qui restent dans ce bloc — la mise du bandeau sur une
   ligne, les tailles de menu, la pastille du panier, le champ de recherche —
   sont CEDEES a ce chantier. Elles ne sont pas deplacees : les retirer
   casserait le bandeau, et les porter dans le bloc 24 changerait leur rang
   dans la cascade, donc leur effet. Elles restent ici, mais le chantier du
   bloc 24 en est le proprietaire : lui seul les modifie.

   REPERE PERIME — corrige le 2026-09-05 au soir. Le repere de cession disait
   « a 1280 px : bandeau 93 px de haut, logo 168 x 68 ; toute derive est une
   regression ». Il ne vaut plus : Florent a demande le meme apres-midi que le
   bandeau soit refait au dessin de la maquette. Les valeurs de reference sont
   desormais celles-ci, mesurees page rechargee a chaque largeur :

       largeur   1920   1440   1280   telephone
       bandeau    162    146    138      80
       lignes       2      2      2       —
       menu      20px   18px   14px      —
       logo    228x92 188x76 163x66  119x48

   AUCUN SELECTEUR NI CODE COULEUR N EST ECRIT EN TOUTES LETTRES DANS CE
   COMMENTAIRE, ET C EST VOULU : compter les occurrences d un selecteur dans
   ce fichier est le controle qu on fait apres un import, et une citation en
   prose le fausse. Le cas s est produit — le selecteur de la page CMS numero
   huit ressortait a quatre occurrences pour trois regles reelles.

   Ce qui a change, a sa demande : le vert profond du pied a la place de
   l ancien vert du bandeau, et bande plate (moulure retiree), lockup empile
   creme et or a la place du lockup
   large, recherche repliee sur sa loupe qui s ouvre au clic, recherche placee
   avant le compte et le panier, menu borne a deux lignes, repli du bandeau au
   defilement, tiroir du menu au meme vert.

   ET L ATTRIBUTION ETAIT FAUSSE, elle aussi. La note cedait ces regles « au
   chantier du bloc 24 ». Verifie aupres de lui le 2026-09-05 au soir : le
   bloc 24 etait « Coin de Miss Bud - style accueil » — des regles visant les
   pages CMS, et la page CMS numero huit, rien d autre — migre dans ce fichier
   puis supprime du back-office. Ce chantier n a jamais porte la moindre regle de
   bandeau et ne peut donc rien arbitrer ici. Il n y a pas d autre proprietaire
   que la demande de Florent : ce sont les valeurs du tableau ci-dessus qui
   font foi.

   2. CE CHAMP EST DESORMAIS VIDE, ET C EST VOULU. Sa feuille vit ici, dans
   lvv.css, servie en en-tete par le module lvvstyles. Ne plus rien ecrire
   dedans : editer ce fichier, incrementer CSS_VERSION et version dans
   lvvstyles.php, rezipper, reimporter. Le champ HTML du bloc, lui, reste
   necessaire — il porte les scripts.

   L AVERTISSEMENT D ORIGINE, qui garde toute sa valeur pour ce fichier :
   le champ n avait aucun verrou, et il a ete vide par accident.

   Le 2026-09-05 il est passe a 0 signe : le site a ete servi sans son CSS
   jusqu a la restauration. Deux sessions ecrivaient dedans en meme temps.
   Avant toute ecriture : recharger le formulaire, lire, modifier et
   enregistrer dans le meme geste, en quelques secondes. Ne jamais laisser un
   formulaire ouvert en attente — c est ainsi qu on efface le travail voisin.
   Un instantane est au depot : agents/verde/sauvegardes/htmlbox-2026-09-05-bloc23/

   La convention complete : agents/verde/CONVENTION-BLOCS-HTMLBOX.md
   ==== FIN — FRONTIERE DE CHANTIER ==== */

            /* ==== OMBRES RETIREES - bandeau, pied de page, boutons - 2026-09-03 ====
   Demande du 03/09/2026, dans la suite du survol des cases : plus dombre
   portee sur le bandeau, le pied de page et les boutons.

   Tout est en !important et avec un selecteur plus precis que loriginal :
   HTML Box ordonne ses blocs par date denregistrement, pas par numero, donc
   un bloc voisin reenregistre repasserait devant celui-ci. La regle du
   bandeau est elle-meme en !important dans le theme, dou le prefixe body.

   LE BANDEAU GARDE SA GRAVURE. Son ombre est une pile de six couches dont
   cinq sont internes : le filet blanc du haut, le filet sombre du bas, le
   lisere de 1 px et les deux anneaux de 10 et 12 px qui dessinent le cadre
   de la barre verte. Seule la sixieme, la portee (0 8px 18px), est retiree.
   Les cinq autres sont recopiees a lidentique, aux deux tailles decran.
   ==== */

body #header {
  box-shadow:
    inset 0 2px 0 rgba(255,255,255,.18),
    inset 0 -2px 0 rgba(0,0,0,.4),
    inset 0 0 0 1px rgba(255,255,255,.22),
    inset 0 0 0 10px rgba(255,255,255,.06),
    inset 0 0 0 12px rgba(0,0,0,.45) !important;
}

@media (max-width: 991px) {
  body #header {
    box-shadow:
      inset 0 1px 0 rgba(255,255,255,.18),
      inset 0 -1px 0 rgba(0,0,0,.4),
      inset 0 0 0 1px rgba(255,255,255,.22),
      inset 0 0 0 5px rgba(255,255,255,.06),
      inset 0 0 0 6px rgba(0,0,0,.45) !important;
  }
}

/* Lombre que le bandeau projetait sur la page.

   PAS DE REGLE SUR #header:hover. Une, posee dabord, faisait disparaitre le
   cadre grave de la barre verte des quon passait la souris dessus : box-shadow
   ne sadditionne pas, et none sur letat survole remplacait les cinq couches
   internes au lieu de retirer la seule portee. Inutile de toute facon - la
   regle du repos ci-dessus est en !important, donc lombre de survol du theme,
   qui ne lest pas, ne peut plus sappliquer. */

body #wrapper { box-shadow: none !important; }

body #header .header-top #search_widget:focus-within,
body #header .header-top #search_widget:focus { box-shadow: none !important; }

/* Pied de page. Il etait deja sans ombre sous 768 px. */

body .footer-container { box-shadow: none !important; }

/* Boutons : ombre au repos, ombre au survol, et les deux boutons de quantite
   des fiches produit. */

body .btn-primary,
body .btn-secondary,
body .btn-tertiary { box-shadow: none !important; }

body .btn-primary:hover,
body .add-to-cart:hover,
body button.add-to-cart:hover { box-shadow: none !important; }

body .lvv-qty .lvv-qty-btn:hover { box-shadow: none !important; }

/* Panneau du mega-menu. Il ne compte plus que sur son filet dore de 2 px en
   haut et son fond creme pour se detacher de la page - les deux sont deja la.
   Trois selecteurs : le dernier double lidentifiant du menu pour passer devant
   la regle dorigine, qui est en !important et deja tres precise. */

html body .mega-panel,
html body #header .mega-panel,
html body #header #_desktop_top_menu .mega-panel { box-shadow: none !important; }

/* Fil dAriane. Le filet etait deja tres discret (5 pour cent dopacite) ;
   le fond du bandeau et son texte suffisent a le poser. */

html body .breadcrumb ol { box-shadow: none !important; }

/* Fleches du carrousel, telephone seulement (au-dessus de 991 px elles nont
   aucune ombre). Leur box-shadow a deux couches : un anneau blanc de 1 px et
   une portee. Lanneau reste - cest lui qui detache la pastille sombre dune
   photo sombre - seule la portee tombe. Regle gardee dans la media query,
   sinon on ajouterait un anneau la ou il ny en a jamais eu. */

@media (max-width: 991px) {
  html body .homeslider_nav {
    box-shadow: 0 0 0 1px rgba(255,255,255,.5) !important;
  }
}

/* ==== FIN - OMBRES RETIREES ==== */
/* ==== DEBUT — LA VOIE VERTE : bandeau de tete et pied de page — 2026-09-04 ==== */
/* Ce bloc est accroche a displayFooterAfter : sa feuille sort sur TOUT le site,
   contrairement au champ du bloc 2 qui ne sort que sur l accueil. Le bandeau et
   le pied appartiennent au theme : on ne touche pas leur markup, seulement leur
   apparence. */

/* Le logo prend enfin ses vraies couleurs. Le fichier servi par PS_LOGO est en
   encre sombre et le theme le blanchit par filter:brightness(0) invert(1) —
   l arc autour de la feuille y perdait son or. On sert la variante claire
   (texte creme, arc dore) sans toucher a PS_LOGO : les factures et les
   courriels gardent le fichier d origine. */
#header img.logo{
  content:url(https://lavoieverte.paris/img/cms/logo-lvv-clair-arc-or.png);
  filter:none;
}

/* Le pied : la reassurance passe de trois pavés empiles a trois lignes. */
#footer .blockreassurance{padding:10px 15px}
#footer .blockreassurance .row > div{
  display:flex; align-items:center; gap:12px; text-align:left; padding:0 10px;
}
#footer .blockreassurance .block-icon{
  flex:0 0 32px; width:32px; height:32px; min-height:0; margin:0;
}
#footer .blockreassurance .block-icon svg{width:32px; height:32px}
#footer .blockreassurance .block-title{margin:0; font-size:12.5px; line-height:1.25}
#footer .blockreassurance .row > div p{margin:2px 0 0; font-size:12px; line-height:1.35}

/* La lettre d information. */
#footer .block_newsletter{padding:12px 15px}
#footer .block_newsletter h3{font-size:15px; margin:0; line-height:1.4}
#footer .block_newsletter p{font-size:11.5px; line-height:1.4; margin:5px 0 0}

/* Les reseaux. */
#footer .block-social{padding:0 15px 8px}

/* Les colonnes de liens. */
#footer .footer-container{padding-top:10px}
#footer .footer-container li{margin-bottom:3px; line-height:1.3}
#footer .footer-container h3,#footer .footer-container .h3{
  font-size:14px; margin-bottom:8px; letter-spacing:.08em;
}
/* ==== FIN — LA VOIE VERTE : bandeau de tete et pied de page ==== */

/* ==== DEBUT — LA VOIE VERTE : bandeau et pied, correctif — 2026-09-04 ==== */
/* Deux mesures apres la premiere pose.
   1. Le filtre du logo resiste : il porte un !important dans la feuille du
      theme. Il en faut un aussi pour le lever.
   2. Les colonnes du pied ont GRANDI de 95 px. Cause : les  heritent du
      corps de page a 24 px, et poser line-height:1.3 sur 24 px donne 31 px par
      ligne. Il fallait fixer la TAILLE, pas seulement l interligne. */
#header img.logo{filter:none !important}

#footer .footer-container li{
  font-size:13px !important; line-height:1.35 !important; margin-bottom:2px;
}
#footer .footer-container li a{font-size:13px}
#footer .footer-container{padding-top:8px}
/* ==== FIN — LA VOIE VERTE : bandeau et pied, correctif ==== */

/* ==== DEBUT — LA VOIE VERTE : logo, l arc reste dore — 2026-09-04 ==== */
/* Deux tentatives avant de trouver la regle gagnante. Ce n est pas
   #header img.logo mais #header #_desktop_logo img — DEUX identifiants, plus
   un !important. Un !important sur un selecteur moins specifique ne suffit
   pas : il faut viser le meme niveau. */
body #header #_desktop_logo img{
  content:url(https://lavoieverte.paris/img/cms/logo-lvv-clair-arc-or.png) !important;
  filter:none !important;
}
/* ==== FIN — LA VOIE VERTE : logo, l arc reste dore ==== */

/* ==== DEBUT — LA VOIE VERTE : reassurance, borner le flex au bureau — 2026-09-04 ==== */
/* Mesure : sur 375 px, passer les trois colonnes de reassurance en flex leur
   faisait refuser de retrecir — 165 px de page en trop, la page glissait
   lateralement. Le rangement en ligne (icone a gauche, texte a droite) n a de
   sens qu a partir du moment ou il y a de la largeur. En dessous, on rend au
   theme sa mise en page d origine, empilee et centree. */
@media (max-width:767px){
  #footer .blockreassurance .row > div{
    display:block !important;
    text-align:center !important;
    padding:0 !important;
  }
  #footer .blockreassurance .block-icon{
    flex:none !important;
    width:auto !important;
    height:auto !important;
    margin:0 auto 4px !important;
  }
}
/* ==== FIN — LA VOIE VERTE : reassurance, borner le flex au bureau ==== */

/* ==== DEBUT — LA VOIE VERTE : pied de page, rendre sa largeur — 2026-09-04 ==== */
/* Mesure : la rangee des liens du pied etait bridee a 896 px en dur
   (width:896px; margin:0 192px) alors que ses deux voisines — la reassurance
   et l infolettre — font 1250. Elle paraissait rentree, et surtout deux liens
   longs y passaient a la ligne pour rien : Conditions Generales d Utilisation,
   Nos boutiques CBD a Paris 14e. En lui rendant la largeur commune : 569 -> 534
   px de pied, la colonne des coordonnees passe de 242 a 155.
   Borne a 992 px : en dessous, le theme a sa propre mise en page empilee. */
@media (min-width:992px){
  #footer .footer-container > .container{
    max-width:1250px !important;
    padding-left:15px !important;
    padding-right:15px !important;
  }
  #footer .footer-container .row{
    width:auto !important;
    max-width:none !important;
    margin-left:-15px !important;
    margin-right:-15px !important;
  }
}
/* Les coordonnees sont des , pas des  : la regle de taille posee plus
   haut ne les atteignait pas. 15 px sur 30 d interligne plus 16 de marge
   faisaient 46 px par ligne d adresse. */
#footer .block-contact p{
  font-size:14px !important;
  line-height:1.5 !important;
  margin-bottom:4px !important;
}
/* ==== FIN — LA VOIE VERTE : pied de page, rendre sa largeur ==== */

/* ==== DEBUT — LA VOIE VERTE : refermer les ecarts avec la maquette — 2026-09-04 ==== */
/* Releve maquette contre site vivant, section par section, a 1280 px.
   Les sections portees (entree, huiles, Miss Bud, boutiques) sont fideles a
   quelques fuites pres, toutes de meme nature : une regle du theme, ou une de
   mes propres regles d enveloppe, l emporte sur la classe d origine. */

/* 1. LA PLAQUE GRAVEE est un . Le theme lui pose margin:34px 0 26px et un
   interligne de 1,2 la ou la maquette a 0 et 1,5. Consequence mesuree : la
   plaque est ecrasee de 68 a 61 px, et son bandeau de titre passe de 68 a
   121 px. Trois fois : huiles, Miss Bud, boutiques — 180 px de page pour rien. */
.lvv-ac h2.lvv-ac-plaque{
  margin:0 !important;
  line-height:1.5 !important;
}

/* 2. LE BOUTON. Ma propre regle d enveloppe .lvv-ac a{color:inherit} porte un
   composant de plus que .lvv-ac-bout{color:#FCFBF7} : elle gagne, et le texte
   du bouton tombe en encre sombre sur fond vert fonce — illisible.
   « VOIR TOUT LE RAYON » et les deux « ITINERAIRE ». */
.lvv-ac a.lvv-ac-bout{color:#FCFBF7 !important}

/* 3. LES BOUTIQUES vivent dans #custom-text. Le theme y habille les  :
   un identifiant bat une classe, donc toutes mes tailles sont perdues. Le nom
   des boutiques tombe de 26 a 18 px, l adresse monte de 14 a 18. */
@media (min-width:768px){
  #custom-text .lvv-ac p.lvv-ac-chapo{
    font-size:15px !important; line-height:1.6 !important;
    color:rgba(26,33,32,.72) !important; margin:0 0 28px !important;
  }
  #custom-text .lvv-ac p.lvv-ac-bq-nom{
    font-size:26px !important; line-height:1.15 !important;
    color:#1A2120 !important; margin:6px 0 0 !important;
  }
  #custom-text .lvv-ac p.lvv-ac-bq-adr{
    font-size:14px !important; line-height:1.5 !important;
    color:#1A2120 !important; margin:12px 0 0 !important;
  }
  #custom-text .lvv-ac p.lvv-ac-bq-note{
    font-size:13px !important; line-height:1.5 !important;
    color:rgba(26,33,32,.72) !important; margin:0 !important;
  }
  #custom-text .lvv-ac .lvv-ac-bq-h{margin:14px 0 0 !important}
}
/* Sous 768, la maquette a ses propres tailles : les reposer aussi, sinon le
   theme les remplace de la meme facon. */
@media (max-width:767px){
  #custom-text .lvv-ac p.lvv-ac-chapo{
    font-size:14px !important; line-height:1.6 !important;
    color:rgba(26,33,32,.72) !important; margin:0 0 18px !important;
  }
  #custom-text .lvv-ac p.lvv-ac-bq-nom{
    font-size:17px !important; line-height:1.15 !important;
    color:#1A2120 !important; margin:6px 0 0 !important;
  }
  #custom-text .lvv-ac p.lvv-ac-bq-adr{
    font-size:12px !important; line-height:1.5 !important;
    color:#1A2120 !important; margin:8px 0 0 !important;
  }
  #custom-text .lvv-ac p.lvv-ac-bq-note{
    font-size:11px !important; line-height:1.5 !important;
    color:rgba(26,33,32,.72) !important; margin:0 !important;
  }
  #custom-text .lvv-ac .lvv-ac-bq-h{margin:9px 0 0 !important; font-size:11px !important}
}

/* 4. Le titre de la cellule editoriale des huiles recoit lui aussi une marge
   du theme. La maquette lui donne 12 px en haut, rien ailleurs. */
.lvv-ac .lvv-ac-cellule-edito .lvv-ac-titre{margin:12px 0 0 !important}
/* ==== FIN — LA VOIE VERTE : refermer les ecarts avec la maquette ==== */

/* ==== DEBUT — LA VOIE VERTE : rendre a la plaque ses marges — 2026-09-04 ==== */
/* La regle qui gagnait n etait pas celle du theme : c est notre propre bloc
   « plaque gravee des titres », qui decore TOUS les h2 de l accueil par
   body#index #main h2 — deux identifiants et !important. Il impose
   margin:26px auto 20px et line-height:1.2 la ou la maquette a 0 et 1,5.
   Cout mesure : chaque bandeau de titre passe de 68 a 121 px, trois fois.
   On garde la gravure — c est bien la plaque de la maison, et la maquette
   s en inspire — on ne lui reprend que ses marges, avec un selecteur qui porte
   les deux memes identifiants plus la classe : (2,1,2) contre (2,0,2). */
body#index #main h2.lvv-ac-plaque,
body#index #custom-text h2.lvv-ac-plaque,
body#index #main #custom-text h2.lvv-ac-plaque{
  margin:0 !important;
  line-height:1.5 !important;
  max-width:none !important;
}
/* ==== FIN — LA VOIE VERTE : rendre a la plaque ses marges ==== */

/* ==== DEBUT — LA VOIE VERTE : boutiques, rendre l alignement a gauche — 2026-09-04 ==== */
/* Le theme pose text-align:center sur #custom-text lui-meme ; tout le bloc en
   herite. La maquette n aligne au centre que trois choses, aucune ici : le nom
   des boutiques, les etoiles, l adresse et les horaires sont a gauche, sous le
   logo. Une seule regle suffit : reposer l alignement en tete du bloc, l
   heritage fait le reste. (1,1,0) contre (1,0,0). */
#custom-text .lvv-ac{text-align:left}
/* ==== FIN — LA VOIE VERTE : boutiques, rendre l alignement a gauche ==== */

/* ==== DEBUT — LA VOIE VERTE : le bandeau sur une ligne — 2026-09-04 ==== */
/* Le bandeau vivait sur deux etages : le logo seul, centre, sur 85 px, puis le
   menu et les outils sur 91. La maquette les met cote a cote — logo a gauche,
   menu au centre, compte / panier / recherche a droite — sur 80 px.
   Les deux etages sont deux enfants de #header : il suffit de passer #header
   en flex pour les mettre sur une ligne, puis de rendre au premier sa largeur
   naturelle (il faisait 1280 pour centrer le logo).
   Mesure : 204 -> 92 px, soit 112 px rendus a chaque page du site.
   Borne a 1100 px, seuil mesure : a 1100 les neuf entrees tiennent sur deux
   lignes (bandeau 93 px) ; a 1050 elles passent a trois et le bandeau monte a
   139, plus haut que le bandeau d origine. En dessous de 1100, on laisse donc
   le theme tel quel. */
@media (min-width:1100px){

  /* Les deux etages deviennent deux colonnes. */
  #header{
    display:flex !important;
    flex-wrap:nowrap !important;
    align-items:center !important;
    padding:0 !important;
  }
  #header .header-banner{display:none !important}

  /* Etage du logo : largeur naturelle, colle a gauche. */
  #header .header-nav{
    flex:0 0 auto !important;
    width:auto !important;
    padding:0 !important;
    margin:0 !important;
    border:0 !important;
  }
  #header .header-nav .container{
    width:auto !important; max-width:none !important;
    padding:0 0 0 50px !important; margin:0 !important;
  }
  #header .header-nav .row{margin:0 !important; display:block !important}
  #header .header-nav .col-md-12{
    width:auto !important; max-width:none !important;
    padding:0 !important; flex:none !important;
  }
  #header .header-nav .right-nav{display:none !important}

  /* Etage du menu : prend tout le reste. min-width:0 sans quoi un enfant flex
     refuse de retrecir sous son contenu. */
  #header .header-top{flex:1 1 auto !important; min-width:0 !important; padding:0 !important}
  #header .header-top .container{
    max-width:none !important; width:auto !important;
    padding:0 50px 0 0 !important;
  }
  #header .main-nav{flex:1 1 auto !important; min-width:0 !important}
  #header #top-menu{justify-content:center !important}

  /* Le logo faisait 24rem — 384 px — pour tenir seul sur sa ligne. Sur une
     ligne partagee, la maquette lui donne 186. La regle adverse porte deux
     identifiants et un !important : on ajoute body pour passer devant. */
  body #header #_desktop_logo .logo.img-responsive{
    width:186px !important;
    height:auto !important;
  }
  /* Meme raison pour le menu : 18 px ne tiennent plus dans la largeur restante.
     La maquette est a 12,5 ; 13,5 garde les neuf entrees sur deux lignes. */
  body #header #_desktop_top_menu .top-menu-level-0 a.menu-link{
    font-size:13.5px !important;
    padding:2px 9px 4px !important;
  }

  /* Le panneau du mega-menu se place par rapport au premier ancetre positionne.
     C etait le .container du menu ; en le decalant vers la droite, le panneau
     sortait de la page de 48 px. On rend l ancrage a #header, qui va d un bord
     a l autre : le panneau retombe dans la page. */
  #header .header-top .container{position:static !important}
  #header{position:sticky !important}
  /* Sans cela les enfants du menu sont etires sur toute la hauteur et leurs
     icones restent collees en haut. On les centre sur la ligne. */
  #header .header-top .col-md-12{align-items:center !important}
  #header .user-info,
  #header #_desktop_cart,
  #header #search_container{align-self:center !important}
}

/* Entre 1100 et 1279, la largeur restante ne suffit plus pour un logo de 186
   et un menu de 13,5 : on resserre d un cran. Mesure : 93 px et deux lignes a
   1100, 1120, 1200 et 1279. */
@media (min-width:1100px) and (max-width:1279px){
  body #header #_desktop_logo .logo.img-responsive{width:160px !important}
  body #header #_desktop_top_menu .top-menu-level-0 a.menu-link{
    font-size:12.5px !important;
    padding:2px 7px 4px !important;
  }
  #header .header-nav .container{padding-left:26px !important}
  #header .header-top .container{padding-right:26px !important}
}
/* ==== FIN — LA VOIE VERTE : le bandeau sur une ligne ==== */

/* ==== DEBUT — LA VOIE VERTE : les incontournables au dessin de la maquette — 2026-09-04 ==== */
/* La section est rendue par le module lvvvitrine, en PHP, cote serveur : on ne
   refait pas son HTML, on l habille. Releve contre la maquette a 1280 :
   section 723 contre 561, carte 391 contre 303. L ecart vient surtout de la
   carte, encadree et dotee d un « Decouvrir » que la maquette n a pas. */

/* La respiration de la section : la maquette donne 44 px, le module 70 et 62. */
body#index #lvv-vitrine{padding:44px 0 !important}

/* La plaque du module est un h2 comme les autres : elle recoit line-height:1.2
   du bloc « plaque gravee ». Trois identifiants pour passer devant. */
body#index #main #lvv-vitrine .lvv-vit-tete h2{line-height:1.5 !important}

/* LA CARTE. Dans la maquette elle n a pas de cadre : seule la boite photo est
   blanche et cernee, le texte vit a nu sous elle, cale a gauche. */
body#index #lvv-vitrine .lvv-vit-c{
  background:none !important;
  border:0 !important;
  border-radius:0 !important;
  box-shadow:none !important;
}
body#index #lvv-vitrine .lvv-vit-corps{padding:0 !important}
body#index #lvv-vitrine .lvv-vit-oeil{margin:13px 0 0 !important}
body#index #lvv-vitrine .lvv-vit-nom{
  margin:6px 0 0 !important;
  font-size:15px !important;
  line-height:1.3 !important;
}
/* Le petit filet sous le nom et le « Decouvrir » n existent pas dans la
   maquette : le prix seul ferme la carte, sous un filet dore. */
body#index #lvv-vitrine .lvv-vit-filet{display:none !important}
body#index #lvv-vitrine .lvv-vit-cta{display:none !important}
body#index #lvv-vitrine .lvv-vit-pied{
  display:block !important;
  margin:auto 0 0 !important;
  padding-top:11px !important;
  border-top:1px solid rgba(176,141,63,.34) !important;
}
body#index #lvv-vitrine .lvv-vit-prix{
  font-family:Marcellus,Georgia,serif !important;
  font-size:18px !important;
  letter-spacing:.4px !important;
  line-height:1.3 !important;
}

/* Le bouton de bas de section garde son role d appel, mais prend les
   proportions du bouton de la maquette : 45 px de haut au lieu de 57. */
body#index #lvv-vitrine .lvv-bout{
  padding:13px 30px 12px !important;
  font-size:12px !important;
  letter-spacing:1.68px !important;
  line-height:1.5 !important;
}
/* LES FLECHES. Le module les range dans une barre sous la rangee, avec les
   points de page : 38 px de haut. La maquette les pose par-dessus la rangee,
   aux deux bords. Ce sont des  lies a des cases radio — une seule paire
   est affichee a la fois — et le mecanisme survit au deplacement : verifie en
   cliquant, la case bascule et la paire suivante apparait.
   Les points restent : le module pagine par cinq, ils disent ou l on est.
   top:95px cale la fleche sur le centre de la photo, qui ne bouge pas quand
   les noms de produits passent a deux lignes. */
@media (min-width:992px){
  body#index #lvv-vitrine .lvv-vit-fle{
    position:absolute !important;
    top:95px !important;
    z-index:3 !important;
    margin:0 !important;
  }
  body#index #lvv-vitrine .lvv-vit-p1,
  body#index #lvv-vitrine .lvv-vit-p2,
  body#index #lvv-vitrine .lvv-vit-p3,
  body#index #lvv-vitrine .lvv-vit-p4,
  body#index #lvv-vitrine .lvv-vit-p5{left:-14px !important; right:auto !important}
  body#index #lvv-vitrine .lvv-vit-n1,
  body#index #lvv-vitrine .lvv-vit-n2,
  body#index #lvv-vitrine .lvv-vit-n3,
  body#index #lvv-vitrine .lvv-vit-n4,
  body#index #lvv-vitrine .lvv-vit-n5{right:-14px !important; left:auto !important}
  body#index #lvv-vitrine .lvv-vit-nav{margin:6px 0 0 !important}
}
/* Sous 768, le module a sa propre echelle : nom 15, prix 15. Mes valeurs de
   bureau y poussaient le prix a 18, disproportionne sur une carte de 180 px.
   On rend l echelle du telephone, en gardant le dessin. */
@media (max-width:767px){
  body#index #lvv-vitrine .lvv-vit-prix{font-size:16px !important}
  body#index #lvv-vitrine .lvv-vit-oeil{margin-top:10px !important}
  body#index #lvv-vitrine .lvv-vit-pied{padding-top:8px !important}
}
/* ==== FIN — LA VOIE VERTE : les incontournables au dessin de la maquette ==== */

/* ==== DEBUT — LA VOIE VERTE : le fondu de l entree — 2026-09-04 ==== */
/* Dans la maquette, le bas de la banniere se fond dans le vert profond sur
   lequel se tient l etagere des Miss Bud : un degrade de 78 px pose par-dessus
   l image. Sans lui, l image s arrete net et la couture se voit. */
body#index .homeslider-container{position:relative}
/* 2026-09-09 : effet reduit de 60 % a la demande (.34 -> .136 et .92 -> .368).
   La hauteur de 78 px et le point milieu ne bougent pas, pour que le fondu garde
   sa courbe. Une seconde session a applique la meme reduction une deuxieme fois
   par-dessus (.054 / .147, soit 16 % de l origine) ; valeurs remises ici. */
body#index .homeslider-container::after{
  content:"";
  position:absolute;
  inset:auto 0 0 0;
  height:78px;
  z-index:2;
  pointer-events:none;
  background:linear-gradient(rgba(30,46,28,0),rgba(30,46,28,.136) 50%,rgba(30,46,28,.368));
}
@media (max-width:767px){
  body#index .homeslider-container::after{height:56px}
}
/* ==== FIN — LA VOIE VERTE : le fondu de l entree ==== */

/* ==== DEBUT — LA VOIE VERTE : le pied au dessin de la maquette — 2026-09-04 ==== */
/* Le pied vivait en deux bandes : une claire en haut (reassurance, lettre,
   reseaux) puis une sombre en bas (les colonnes de liens). La maquette n en
   fait qu une, sombre, et met les liens en premier. #footer n a que deux
   enfants : passer en flex et les intervertir suffit. */
#footer{display:flex !important; flex-direction:column !important; background:#182616 !important}
#footer > .footer-container{order:1 !important; background:transparent !important}
#footer > .container{
  order:2 !important;
  background:transparent !important;
  color:rgba(247,242,228,.72) !important;
  max-width:1250px !important;
  margin:0 auto !important;
  padding:0 15px !important;
}

/* Le filet dore sous les titres de colonne — signature de la maquette. */
#footer .footer-container .h3{
  color:#F7F2E4 !important;
  font-family:Marcellus,Georgia,serif !important;
  font-size:13px !important;
  letter-spacing:2.2px !important;
  text-transform:uppercase !important;
  font-weight:400 !important;
  margin:0 0 14px !important;
}
#footer .footer-container .h3::after{
  content:"" !important; display:block !important;
  width:34px !important; height:1px !important;
  background:#B08D3F !important; margin-top:9px !important;
}

/* La reassurance devient une barre filetee, libelles dores. Ses pictogrammes
   sont des SVG dont la couleur est imposee en vert fonce : sur fond sombre il
   faut la reprendre, sans quoi ils disparaissent. */
#footer .blockreassurance{
  border-top:1px solid rgba(247,242,228,.14) !important;
  border-bottom:1px solid rgba(247,242,228,.14) !important;
  padding:16px 0 !important;
  margin:0 !important;
}
#footer .blockreassurance, #footer .blockreassurance *{color:rgba(247,242,228,.72) !important}
#footer .blockreassurance .block-title{
  color:#D2B269 !important;
  font-size:11px !important;
  letter-spacing:1.1px !important;
  text-transform:uppercase !important;
  font-weight:600 !important;
}
#footer .blockreassurance svg path{fill:#D2B269 !important}

/* La lettre : champ sombre cerne d or, bouton dore a texte sombre. */
#footer .block_newsletter{background:transparent !important}
#footer .block_newsletter,
#footer .block_newsletter p,
#footer .block_newsletter .col-md-7{color:rgba(247,242,228,.72) !important}
#footer .block_newsletter h3{
  color:#F7F2E4 !important;
  font-family:Marcellus,Georgia,serif !important;
  letter-spacing:2.2px !important;
  font-weight:400 !important;
}
#footer .block_newsletter input[type=email],
#footer .block_newsletter input[type=text]{
  background:rgba(247,242,228,.07) !important;
  color:#F7F2E4 !important;
  border:1px solid rgba(210,178,105,.42) !important;
}
#footer .block_newsletter input.btn{
  background:#B08D3F !important;
  color:#182616 !important;
  border-color:#B08D3F !important;
}

/* Les reseaux : le theme affiche un sprite d icones, invisible sur fond
   sombre. La maquette met deux boutons de texte cernes d or — on revele donc
   le libelle, qui etait masque par un text-indent, et on eteint le sprite. */
#footer .block-social li{
  background-image:none !important;
  width:auto !important; height:auto !important;
  margin:0 14px 0 0 !important;
}
#footer .block-social a{
  text-indent:0 !important;
  width:auto !important; height:auto !important;
  display:inline-block !important;
  border:1px solid rgba(210,178,105,.5) !important;
  padding:6px 14px !important;
  font-size:11px !important;
  letter-spacing:1.3px !important;
  text-transform:uppercase !important;
  color:rgba(247,242,228,.82) !important;
  line-height:1.4 !important;
}

/* La barre : pictogramme a gauche, libelle dore au-dessus de sa phrase.
   Le theme etire ces SVG a 46 px dans une case de 34 — ils mordaient sur le
   texte. La regle adverse porte body devant : on la reprend au meme niveau.
   Le troisieme picto n est pas un SVG mais une image (le drapeau) : il garde
   ses couleurs, on ne fait que le mettre a la taille des autres. */
#footer .blockreassurance .row > div{
  display:grid !important;
  grid-template-columns:34px 1fr;
  column-gap:12px !important;
  row-gap:2px !important;
  align-items:start !important;
  padding:0 12px !important;
  text-align:left !important;
}
#footer .blockreassurance .block-icon{
  grid-column:1 !important; grid-row:1 / span 2 !important;
  width:34px !important; height:34px !important;
  min-height:0 !important; margin:0 !important; flex:none !important;
}
body #footer .blockreassurance .block-icon svg,
body #footer .blockreassurance .block-icon img{
  width:34px !important; height:34px !important;
}
#footer .blockreassurance .block-title{
  grid-column:2 !important; grid-row:1 !important;
  margin:0 !important; font-size:11px !important; line-height:1.3 !important;
}
#footer .blockreassurance .row > div > p{
  grid-column:2 !important; grid-row:2 !important;
  margin:0 !important; font-size:12.5px !important; line-height:1.35 !important;
}

/* Sous 768, la barre n a plus que 115 px par colonne : la grille icone + texte
   n y tient pas — 53 px de page en trop, mesures. On rend l empilement du
   theme, pictogramme centre au-dessus de son libelle. */
@media (max-width:767px){
  #footer .blockreassurance{padding:10px 0 !important}
  #footer .blockreassurance .row > div{
    display:block !important;
    grid-template-columns:none !important;
    text-align:center !important;
    padding:0 6px !important;
  }
  #footer .blockreassurance .block-icon{
    width:auto !important; height:auto !important;
    margin:0 auto 4px !important;
  }
  body #footer .blockreassurance .block-icon svg,
  body #footer .blockreassurance .block-icon img{width:28px !important; height:28px !important}
  #footer .blockreassurance .block-title{font-size:10.5px !important}
  #footer .blockreassurance .row > div > p{font-size:11.5px !important; line-height:1.3 !important}
  #footer .block_newsletter h3{font-size:13px !important; letter-spacing:1.6px !important}
  #footer .block_newsletter p{font-size:11.5px !important; line-height:1.35 !important}
  #footer .block-social{margin:0 !important}
  #footer .block-social li{margin:0 8px 0 0 !important}
  #footer .block-social a{padding:5px 11px !important; font-size:10px !important}
}
/* ==== FIN — LA VOIE VERTE : le pied au dessin de la maquette ==== */

/* ==== DEBUT — LA VOIE VERTE : champ de recherche, pastille du panier, pastilles du diaporama — 2026-09-04 ==== */
/* LE CHAMP DE RECHERCHE. Il existe deja dans le bandeau — meme nom, meme
   placeholder — mais le theme le tient en display:none et n affiche que la
   loupe. La maquette le montre ouvert, cerne d or sur un fond a peine eclairci.
   On le revele et on l habille. */
@media (min-width:1100px){
  #header #search_container{width:auto !important; flex:0 0 auto !important}
  #header #search_widget #formandbutton{
    display:flex !important; align-items:center !important;
    background:rgba(247,242,228,.09) !important;
    border:1px solid rgba(210,178,105,.42) !important;
    border-radius:2px !important;
  }
  #header #search_widget #formandbutton:focus-within{border-color:#D2B269 !important}
  #header #search_widget form{display:flex !important; align-items:center !important; width:auto !important}
  #header #search_widget input#search_input{
    display:block !important;
    background:transparent !important; border:0 !important; box-shadow:none !important;
    color:#F7F2E4 !important; font-size:12.5px !important;
    padding:7px 4px 7px 10px !important;
    min-width:0 !important; height:auto !important;
    transition:width .2s !important;
  }
  #header #search_widget input#search_input::placeholder{color:rgba(247,242,228,.5) !important}
  #header #search_widget i.material-icons.search{
    color:#D2B269 !important; padding:6px 9px 4px !important; cursor:pointer;
  }

  /* LA PASTILLE DU PANIER. Le compteur etait un simple nombre a cote du
     caddie ; la maquette en fait un jeton dore pose sur son coin. */
  #header .blockcart .header{position:relative !important}
  #header .blockcart .cart-products-count{
    position:absolute !important; top:-4px !important; right:-6px !important;
    min-width:17px !important; height:17px !important; padding:0 4px !important;
    border-radius:9px !important;
    background:#B08D3F !important; color:#182616 !important;
    font-size:11px !important; font-weight:600 !important;
    line-height:17px !important; text-align:center !important;
    display:block !important;
  }

  /* Le champ prend 158 px : sans resserrer, les neuf entrees du menu passent a
     trois lignes et le bandeau remonte a 141 px. Mesure : a 12,5 px de menu et
     118 px de champ, elles tiennent sur deux lignes et le bandeau reste a 93. */
  html body #header #_desktop_logo .logo.img-responsive{width:186px !important}
  html body #header #_desktop_top_menu .top-menu-level-0 a.menu-link{
    font-size:12.5px !important; padding:2px 6px 4px !important;
  }
  /* Le champ prend 160 px sur la ligne : sans reprendre 16 px de marge de
     chaque cote, le menu n a plus que 494 px pour 878 d entrees et passe a
     trois lignes. A 34 px de marge il en a 526, et deux lignes suffisent. */
  #header .header-nav .container{padding-left:34px !important}
  #header .header-top .container{padding-right:34px !important}
  html body #header #search_widget input#search_input{width:118px !important}
  html body #header #search_widget input#search_input:focus{width:172px !important}
}
@media (min-width:1100px) and (max-width:1279px){
  html body #header #_desktop_logo .logo.img-responsive{width:148px !important}
  html body #header #_desktop_top_menu .top-menu-level-0 a.menu-link{
    font-size:11px !important; padding:2px 5px 4px !important;
  }
  html body #header #search_widget input#search_input{width:88px !important}
  html body #header #search_widget input#search_input:focus{width:120px !important}
}

/* LES PASTILLES DU DIAPORAMA. Le theme pilote sa banniere par deux fleches
   collees aux bords ; la maquette met cinq pastilles en bas a droite. Le
   diaporama tourne avec rslides, initialise sans pagination : le script du
   bloc 23 le relance avec, et ces regles habillent ce qu il cree. */
body#index .lvv-diapo-pastilles .homeslider_nav{display:none !important}
body#index [class*="lvvsld"][class*="_tabs"]{
  position:absolute; right:20px; bottom:12px; z-index:3;
  display:flex; gap:8px; list-style:none; margin:0; padding:0;
}
body#index [class*="lvvsld"][class*="_tabs"] li{margin:0; padding:0}
body#index [class*="lvvsld"][class*="_tabs"] a{
  display:block; position:relative;
  width:24px; height:24px; padding:0;
  font-size:0; line-height:0; text-indent:-9999px; overflow:hidden;
}
body#index [class*="lvvsld"][class*="_tabs"] a::after{
  content:""; position:absolute; inset:0; margin:auto;
  width:9px; height:9px; border-radius:50%;
  border:1px solid rgba(247,242,228,.75);
  transition:background .2s, border-color .2s;
}
body#index [class*="lvvsld"][class*="_tabs"] li[class*="_here"] a::after{
  background:#D2B269; border-color:#D2B269;
}
@media (max-width:767px){
  body#index [class*="lvvsld"][class*="_tabs"]{right:8px; bottom:4px; gap:0}
}

/* Les fleches des incontournables debordaient de 14 px sous 1320 : leur
   decalage negatif sort de la page quand la piste touche le bord. */
@media (min-width:992px) and (max-width:1319px){
  body#index #lvv-vitrine .lvv-vit-p1,
  body#index #lvv-vitrine .lvv-vit-p2,
  body#index #lvv-vitrine .lvv-vit-p3,
  body#index #lvv-vitrine .lvv-vit-p4,
  body#index #lvv-vitrine .lvv-vit-p5{left:2px !important}
  body#index #lvv-vitrine .lvv-vit-n1,
  body#index #lvv-vitrine .lvv-vit-n2,
  body#index #lvv-vitrine .lvv-vit-n3,
  body#index #lvv-vitrine .lvv-vit-n4,
  body#index #lvv-vitrine .lvv-vit-n5{right:2px !important}
}
/* ==== FIN — LA VOIE VERTE : champ de recherche, pastille du panier, pastilles du diaporama ==== */

/* ==== DEBUT — LA VOIE VERTE : la bande de la banniere suit le visuel plat — 2026-09-04 ==== */
/* Les cinq visuels du carrousel sont desormais servis en 2048x614 (3,335:1)
   depuis /img/cms/, hors de la moulinette du module. La hauteur de la bande
   etait fixee a 40vw, soit 512 px sur 1280 : avec des visuels plus plats, le
   recadrage « cover » rognerait les cotes. 100 / 3,335 = 29,98 — on pose 30vw,
   et le visuel remplit exactement sa bande a toutes les largeurs : 384 px sur
   1280, 480 sur 1600.
   La regle ne s applique qu a la classe lvv-diapo-plate, posee par le script du
   bloc 23 s il a bien remplace LES CINQ visuels. S il echoue, la bande garde
   ses 40vw et les visuels d origine, qui sont en 2:1 : rien ne se casse.
   Borne a 481 px, la ou la source « bureau » prend le relais du portrait. */
@media (min-width:481px){
  body#index .homeslider-container.lvv-diapo-plate picture img{height:30vw !important}
}
/* ==== FIN — LA VOIE VERTE : la bande de la banniere suit le visuel plat ==== */

/* ==== DEBUT — LA VOIE VERTE : les pastilles du carrousel — 2026-09-04 ==== */
/* Le theme pilote sa banniere par deux fleches collees aux bords ; la maquette
   met cinq pastilles en bas a droite. Le module ne sait pas ajouter une
   pagination apres coup, alors le script du bloc 23 relance le diaporama sur
   une copie de sa liste, pagination activee, sous le nom lvvpast.
   Ces regles n habillent que ce qu il cree.
   Les fleches du theme ne s effacent que sous la classe lvv-diapo-pastilles,
   posee par le script une fois les pastilles reellement en place : s il echoue,
   la banniere garde ses commandes. */
body#index .lvv-diapo-pastilles .homeslider_nav{display:none !important}

body#index [class*="lvvpast"][class*="_tabs"]{
  position:absolute;
  right:20px; bottom:12px;
  z-index:3;
  display:flex; gap:8px;
  list-style:none; margin:0; padding:0;
}
body#index [class*="lvvpast"][class*="_tabs"] li{margin:0; padding:0}
body#index [class*="lvvpast"][class*="_tabs"] a{
  display:block; position:relative;
  width:24px; height:24px; padding:0;
  font-size:0; line-height:0;
  text-indent:-9999px; overflow:hidden;
}
/* La pastille visible fait 9 px, mais la cible du doigt en fait 24. */
body#index [class*="lvvpast"][class*="_tabs"] a::after{
  content:""; position:absolute; inset:0; margin:auto;
  width:9px; height:9px; border-radius:50%;
  border:1px solid rgba(247,242,228,.75);
  transition:background .2s, border-color .2s;
}
body#index [class*="lvvpast"][class*="_tabs"] li[class*="_here"] a::after{
  background:#D2B269; border-color:#D2B269;
}
@media (max-width:767px){
  body#index [class*="lvvpast"][class*="_tabs"]{right:8px; bottom:4px; gap:0}
}
/* ==== FIN — LA VOIE VERTE : les pastilles du carrousel ==== */

/* ==== DEBUT — LA VOIE VERTE : resserrer le pied au telephone — 2026-09-04 ==== */
/* Le passage du pied en bande sombre lui avait coute 63 px sur telephone
   (775 -> 838). On les reprend dans les marges, pas dans les liens : mesures
   faites, les liens du pied font 44 a 64 px de haut, ce sont des cibles pour le
   doigt et on n y touche pas.
   Sur telephone les listes sont repliees en accordeon — seuls les titres de
   colonne s empilent — donc leur marge se paie cinq fois. */
@media (max-width:767px){
  #footer .footer-container{padding-top:4px !important}
  #footer .footer-container .h3{margin:0 0 7px !important}
  #footer .footer-container .h3::after{margin-top:5px !important; width:28px !important}
  #footer .blockreassurance{padding:6px 0 !important}
  #footer .block_newsletter{padding:6px 15px !important}
  #footer .block_newsletter h3{margin:0 0 4px !important}
  #footer .block_newsletter p{margin:6px 0 0 !important}
  #footer .block-social{padding:4px 0 !important}

  /* Defaut corrige au passage : en remplacant le sprite d icones par des
     boutons de texte, je les avais laisses a 26 px de haut. Trop petit pour le
     doigt — les icones d origine faisaient 40. On les y ramene. */
  #footer .block-social a{
    min-height:40px !important;
    display:inline-flex !important;
    align-items:center !important;
    padding:0 14px !important;
  }
  #footer .block-social li{margin:0 10px 0 0 !important}
}
/* ==== FIN — LA VOIE VERTE : resserrer le pied au telephone ==== */

/* ==== DEBUT — LA VOIE VERTE : la colonne « Votre compte » en grille alignee — 2026-09-04 ==== */
/* Sur telephone, cette liste est la seule du pied a rester depliee, et le
   theme la coupe en deux par column-count:2. « Informations personnelles »
   tient sur deux lignes (64 px) quand les autres en font 44 : les deux colonnes
   ne tombent jamais en face, et la liste parait debraillee.
   Une grille a deux colonnes aligne les rangees quelle que soit la hauteur des
   libelles, et suit l ordre du document — celui que lit aussi une synthese
   vocale. Robuste au nombre de liens, qui change selon que le client est
   connecte ou non. */
@media (max-width:767px){
  #footer #block_myaccount_infos ul{
    column-count:1 !important;
    display:grid !important;
    grid-template-columns:1fr 1fr !important;
    column-gap:14px !important;
    align-items:start !important;
  }
  #footer #block_myaccount_infos li{margin:0 !important}
}
/* ==== FIN — LA VOIE VERTE : la colonne « Votre compte » en grille alignee ==== */

/* ==== LA VOIE VERTE : les filets du pied en or discret ==== */
/* Les filets separateurs du pied etaient blancs (#F6F6F6 pour les titres
   d accordeon et la lettre, blanc pur pour les liens replies) : sur le fond
   vert sombre ils tranchaient plus dur que nos courts filets dores. On les
   ramene tous a un meme or discret, y compris la barre de reassurance qui
   etait en creme, pour que le pied n ait plus qu une seule couleur de trait. */
body #footer .title,
body #footer .links .title,
body #footer .links ul.collapse,
body #footer .links ul li,
body #footer .block_newsletter,
body #footer #blockEmailSubscription_displayFooterBefore,
body #footer .blockreassurance{
  border-color:rgba(210,178,105,.22) !important;
}
/* ==== FIN — LA VOIE VERTE : les filets du pied en or discret ==== */

/* ==== LA VOIE VERTE : l accordeon du pied sur telephone ==== */
/* Defaut de notre propre passage du pied en vert sombre : sous 768 px les
   sections « Produits » et « Notre societe » sont des accordeons, et le
   panneau qui s ouvre garde le fond clair du theme (#F6F6F6) avec un texte
   noir impose par une regle a un identifiant et trois classes. Invisible tant
   qu on n ouvre pas une section. On rend le panneau transparent et les liens
   creme, comme le reste du pied. */
@media (max-width:767px){
  body #footer .links ul,
  body #footer .links ul.collapse,
  body #footer .footer-container .links ul{
    background:transparent !important;
    background-color:transparent !important;
  }
  body #footer .col-md-6.wrapper ul.collapse li a,
  body #footer .links ul > li a{
    color:#E7EFDD !important;
    font-weight:400 !important;
  }
  body #footer .col-md-6.wrapper ul.collapse li a:hover,
  body #footer .col-md-6.wrapper ul.collapse li a:focus,
  body #footer .links ul > li a:hover{
    color:#D2B269 !important;
  }
}
/* ==== FIN — LA VOIE VERTE : l accordeon du pied sur telephone ==== */

/* ==== LA VOIE VERTE : l accordeon du pied aligne sur Votre compte ==== */
/* Sous 768 px, les sections repliables du pied vivent dans une rangee interne
   que le theme borde de 15 % de chaque cote ET bride a 70 % de large
   (34,875 px de marge et 162,75 px de large a 375) : le titre et la liste
   demarrent a 106 px quand « Votre compte » demarre a 71, et les libelles
   longs se cassent en deux alors qu il reste 100 px de marge. Annuler les
   marges ne suffit pas — sans lever la largeur, le bloc se decale sans
   s elargir. On leve les deux : la colonne repliable reprend la largeur de la
   colonne qui la porte, et tout le pied s aligne sur un seul bord gauche. */
@media (max-width:767px){
  body #footer .footer-container .links > .row{
    width:auto !important;
    max-width:none !important;
    margin-left:0 !important;
    margin-right:0 !important;
  }
  body #footer .footer-container .links > .row > .col-md-6.wrapper{
    width:100% !important;
    max-width:none !important;
    flex:0 0 100% !important;
    padding-left:0 !important;
    padding-right:0 !important;
  }
}
/* ==== FIN — LA VOIE VERTE : l accordeon du pied aligne sur Votre compte ==== */

/* ==== LA VOIE VERTE : la gouttiere de la rangee des incontournables ==== */
/* Sous 768 px, la rangee des incontournables collait au bord gauche de l ecran
   (0 px) alors que le titre et la note de la section ont une gouttiere de
   20 px. Ce n etait pas un debordement voulu : la fenetre de defilement porte
   deja `scroll-padding-left:20px`, mais la piste n avait aucune marge, donc au
   repos la premiere carte touchait le bord.

   Deux choses mesurees, et non supposees, sur cette piste en flex :
   - son `padding-right` n entre PAS dans l etendue defilable (au bout de la
     course la derniere carte finissait encore a 0 du bord) ;
   - la `margin-right` de la derniere carte non plus (mesuree a 0 elle aussi).
   Seul un pseudo-element compte comme enfant flex et reserve vraiment la
   place. Il herite alors du `gap` de 16 px de la piste, d ou la marge negative
   qui l annule : 20 px au bout de la course, exactement.

   Le `padding-right` reste utile pour autre chose : les cartes valent
   `calc(50% - 8px)` de la boite de contenu de la piste, donc l enlever les
   elargit de 160 a 170 px et fait disparaitre l apercu de la troisieme carte
   au bord droit. On garde donc les deux, chacun pour son role — la marge pour
   la largeur des cartes au repos, le pseudo-element pour la fin de course.

   Le calage par aimant (scroll-snap, cartes centrees) n en souffre pas : il
   centre les cartes dans la fenetre, independamment de la marge. */
@media (max-width:767px){
  body #lvv-vitrine .lvv-vit-piste{
    padding-left:20px !important;
    padding-right:20px !important;
  }
  body #lvv-vitrine .lvv-vit-piste::after{
    content:"" !important;
    display:block !important;
    flex:0 0 20px !important;
    width:20px !important;
    margin-left:-16px !important;
  }
}
/* ==== FIN — LA VOIE VERTE : la gouttiere de la rangee des incontournables ==== */

/* ==== DEBUT — LA VOIE VERTE : le bandeau au dessin de la maquette — 2026-09-05 ==== */
/* Cette section prolonge celle du champ de recherche, plus haut : elle ne
   refait pas ce qui y est deja fait (la pastille doree du panier, la loupe
   doree, l habillage du champ), elle change ce que la maquette demande encore.
   Tous les selecteurs commencent par html body : les regles adverses de la
   feuille unique portent deja html body devant. A egalite de poids c est la
   derniere qui gagne, mais encore faut-il etre a egalite. */

/* ---------------------------------------------------------------------------
   1. LE LOGO — quel fichier, et quelle taille.
   Le theme blanchit le logo par filter:brightness(0) invert(1), pour une encre
   sombre — ce qui emportait aussi l or de l arc. La section « bandeau de tete »
   contournait cela en REMPLACANT l image (content:url). Tant que ce
   remplacement tient, changer le logo au back-office ne change rien a l ecran.
   PS_LOGO porte desormais le lockup empile — emblème a gauche, « LA VOIE /
   VERTE / CBD SHOP » a droite, 500 x 202, creme #F7F2E4 et or #B08D3F, memes
   lettres que la variante claire — pose sur la boutique WEB seulement. On rend
   donc a l image son propre fichier, en gardant filter:none.
   Les logos des courriels et des factures ne bougent pas.
   --------------------------------------------------------------------------- */
html body #header #_desktop_logo img.logo{
  content:normal !important;
  filter:none !important;
}

/* Le petit logo du telephone et de la tablette est un AUTRE element —
   .logo_mini, dont le src est le fichier du logo des courriels — et il tombe
   lui aussi sous le content:url. On le pointe vers le meme fichier que le
   bureau : celui de PS_LOGO. Si ce logo change un jour au back-office, le
   bureau suivra tout seul mais CETTE LIGNE sera a reprendre.
   Taille mesuree : il vit dans une rangee de 53 px coincee entre le panier
   (qui finit a 128) et le compte (qui commence a 279 sur 375) — 151 px de
   large disponibles. A 48 px de haut il en fait 119 : le bandeau passe de 77 a
   80 px sur telephone, sans debordement jusqu a 320 px. */
/* Notre loupe est posee par le script a toutes les largeurs, mais elle n est
   habillee qu au-dessus de 1100 px — en dessous, le theme garde la sienne et
   sa propre mise en page. Sans cette regle, le bouton sortait sur telephone en
   blanc, avec le mot « search » ecrit en toutes lettres (la ligature Material
   Icons a besoin de la police, qui n est posee que dans le palier bureau). */
@media (max-width:1099px){
  html body #header .lvv-loupe{ display:none !important; }
}

html body #header #_desktop_logo img.logo_mini{
  content:url(https://lavoieverte.paris/img/la-voie-verte-web-logo-17885604203.jpg) !important;
  filter:none !important;
  height:48px !important;
  width:auto !important;
  max-width:none !important;
}

/* Le lockup empile fait 2,475 de large pour 1 de haut, contre 5,6 pour le
   lockup large : a largeur egale il est deux fois plus haut. On le cale donc
   par la HAUTEUR, la largeur suit. Sous 1100 px le theme reprend sa mise en
   page a deux etages et cale le logo a 24rem — 384 px — de large : avec le
   nouveau rapport cela ferait 155 px de haut et le bandeau passerait de 253 a
   339. 70 px lui rend la hauteur qu il avait. */
@media (max-width:1099px){
  html body #header #_desktop_logo .logo.img-responsive{
    height:70px !important; width:auto !important; max-width:none !important;
  }
}

/* ---------------------------------------------------------------------------
   2. LA BANDE — fond profond et plat.
   La maquette donne une bande d un seul vert, sans moulure : celui du pied,
   #182616. La moulure du theme est une ombre interne ; on la retire.
   Le tiroir du menu ouvert sur telephone gardait #2E4A32 par une regle plus
   specifique — deux verts a l ecran des qu on ouvrait le menu.
   --------------------------------------------------------------------------- */
html body #header{
  background:#182616 !important;
  box-shadow:none !important;
  border:0 !important;
}
html body #header.is-open{ background:#182616 !important; }

/* ---------------------------------------------------------------------------
   3. LA RECHERCHE REPLIEE SUR SA LOUPE.
   Au repos, seule la loupe est visible ; un clic ouvre le champ. C est ce qui
   rend les deux lignes de menu tenables : le creneau de recherche passe de
   161 a 50 px, et ces 111 px rendus au menu valent un cran entier de
   typographie.

   TROIS OBSTACLES, tous mesures au navigateur pilote (le panneau de session
   ment sur la mise en page, cf. la note de fin) :

   a) Le champ est un enfant flex de #formandbutton : `width:0` seul ne le
      replie pas, la mise en page le reetire a 118 px. Il faut `flex:0 0 0`.
      Et pas `display:none` : le theme s en sert pour son propre mode de
      recherche, le remettre en display:block reveille son panneau plein ecran.

   b) Le theme ouvre justement ce panneau des qu on touche a la loupe : il pose
      le focus sur #search_widget, qui bascule alors — SANS changement de
      classe ni de style en ligne — en position:fixed, top:-377px, 1152 x 450,
      fond blanc par-dessus le bandeau. On l epingle donc en place, quoi qu il
      arrive.

   c) La loupe du theme n est pas cliquable pour nous : un gestionnaire de
      mousedown en phase de capture arrete l evenement avant qu il n atteigne
      nos ecouteurs. Trace mesuree : `mousedown -> I.material-icons search`,
      puis `focusin -> DIV.search-widget`, et le clic qui suit a pour cible le
      DIV, plus l icone. Trois voies essayees et perdues (ecouteur sur l icone,
      capture sur document, capture sur window). On cesse de lutter : on cache
      la loupe du theme et le script en pose une a nous, sans passe.
   --------------------------------------------------------------------------- */
@media (min-width:1100px){
  /* L ordre : la maquette met la recherche AVANT le compte et le panier ; dans
     le HTML elle vient apres. La rangee est en flex, `order` suffit. */
  html body #header .header-top #search_container{ order:1 !important; }
  html body #header .header-top .user-info{ order:2 !important; }
  html body #header .header-top #_desktop_cart{ order:3 !important; }

  /* (b) l epinglage — que le theme veuille ou non ouvrir son panneau. */
  html body #header #search_container{
    position:static !important; width:auto !important; height:auto !important;
    top:auto !important; left:auto !important; flex:0 0 auto !important;
  }
  html body #header #search_container #search_widget{
    position:relative !important;
    top:auto !important; left:auto !important; right:auto !important; bottom:auto !important;
    width:auto !important; height:auto !important;
    min-height:0 !important; max-height:none !important; max-width:none !important;
    background:transparent !important; box-shadow:none !important;
    padding:0 !important; margin:0 !important; overflow:visible !important;
  }
  html body #header #search_container #search_widget #formandbutton{
    position:static !important; width:auto !important; height:auto !important;
    background:transparent !important; border:0 !important;
    transition:background .2s ease, border-color .2s ease !important;
  }

  /* (c) notre loupe a la place de celle du theme. */
  html body #header #search_widget i.material-icons.search{ display:none !important; }
  html body #header .lvv-loupe{
    display:inline-flex !important; align-items:center; justify-content:center;
    background:none; border:0; padding:6px 9px 4px; cursor:pointer;
    color:#D2B269; font-family:'Material Icons'; font-size:22px; line-height:1;
  }
  /* Le contour bleu du navigateur au clic n a rien a faire sur ce bandeau :
     on le remplace par un filet dore, et seulement au clavier. */
  html body #header .lvv-loupe:focus{ outline:none !important; }
  html body #header .lvv-loupe:focus-visible{ outline:1px solid #D2B269 !important; outline-offset:2px; }

  /* (a) le repli, et l ouverture. */
  html body #header #search_widget input#search_input,
  html body #header #search_widget input#search_input:focus{
    width:0 !important; flex:0 0 0 !important; min-width:0 !important;
    padding:0 !important; border:0 !important; opacity:0 !important;
    transition:width .25s ease, opacity .2s ease, padding .25s ease !important;
  }
  html body #header.lvv-recherche-ouverte #search_widget input#search_input,
  html body #header.lvv-recherche-ouverte #search_widget input#search_input:focus{
    width:240px !important; flex:0 0 240px !important;
    padding:7px 4px 7px 10px !important; opacity:1 !important;
  }
  html body #header.lvv-recherche-ouverte #search_container #search_widget #formandbutton{
    background:rgba(247,242,228,.09) !important;
    border:1px solid rgba(210,178,105,.42) !important;
  }
}

/* ---------------------------------------------------------------------------
   4. L ECHELLE DU MENU ET DU LOGO, PAR PALIERS.
   La maquette est dessinee autour de 1670 px, menu a 20 px. Cette generosite
   ne tient pas partout : les neuf entrees doivent rester sur DEUX lignes.
   Mesure du 2026-09-05, recherche repliee, page rechargee a chaque largeur
   (une simple redimension ne suffit pas — la mise en page mesuree reste celle
   d avant). Pour chaque palier, la valeur est prise a sa largeur la plus
   etroite, et d un cran en dessous de la rupture :

     1280 : rupture a 14/12 et a 15 — retenu 14/10, bandeau 138
     1440 : rupture a 18/12 et a 19 — retenu 18/10, bandeau 146
     1600 : rupture a 20/18 et a 21 — retenu 20/15, bandeau 162

   En dessous de 1280 on garde l echelle actuelle : la place manque, et la
   recherche repliee suffit deja a degager le menu.
   --------------------------------------------------------------------------- */
@media (min-width:1280px){
  html body #header{ padding:14px 0 !important; }
  html body #header #_desktop_top_menu .top-menu-level-0 a.menu-link{
    font-size:14px !important; padding:8px 10px !important;
  }
  html body #header #_desktop_logo .logo.img-responsive{
    height:66px !important; width:auto !important; max-width:none !important;
  }
  html body #header .header-top #search_container,
  html body #header .header-top .user-info,
  html body #header .header-top #_desktop_cart{ margin-left:16px !important; }
  html body #header.lvv-recherche-ouverte #search_widget input#search_input{ width:200px !important; }
}
@media (min-width:1440px){
  html body #header{ padding:16px 0 !important; }
  html body #header #_desktop_top_menu .top-menu-level-0 a.menu-link{
    font-size:18px !important; padding:9px 10px !important;
  }
  html body #header #_desktop_logo .logo.img-responsive{ height:76px !important; }
  html body #header .header-top #search_container,
  html body #header .header-top .user-info,
  html body #header .header-top #_desktop_cart{ margin-left:18px !important; }
  html body #header.lvv-recherche-ouverte #search_widget input#search_input{ width:240px !important; }
}
@media (min-width:1600px){
  html body #header{ padding:20px 0 !important; }
  html body #header #_desktop_top_menu .top-menu-level-0 a.menu-link{
    font-size:20px !important; padding:11px 15px !important;
  }
  html body #header #_desktop_logo .logo.img-responsive{ height:92px !important; }
  html body #header .header-top #search_container,
  html body #header .header-top .user-info,
  html body #header .header-top #_desktop_cart{ margin-left:26px !important; }
  html body #header.lvv-recherche-ouverte #search_widget input#search_input{ width:280px !important; }
}

/* ---------------------------------------------------------------------------
   4 bis. LE TIROIR DU MENU SUR TELEPHONE.
   La bande du haut etait deja passee au vert profond ; le panneau qui se
   deroule dessous, lui, restait au blanc du theme avec des liens noirs — un
   contraste dur des qu on ouvrait le menu. On le passe au meme vert, libelles
   creme, chevrons et titres de rayon dores, filets separateurs en creme tres
   dilue.
   Le wrapper occupe bien toute la largeur (mesure : 390 sur 390) ; ce sont les
   rangees qui sont en retrait de 15 px, comme dans le theme.
   Les sous-panneaux (.mega-panel) heritent : fonds rendus transparents, texte
   creme, titres dores — ils seront donc justes le jour ou ils s ouvriront.
   Note d observation, sans rapport avec cette feuille : au navigateur pilote,
   toucher le chevron ne deroule pas le sous-panneau (il garde sa classe
   `collapse` et une hauteur nulle). A regarder un jour, ce n est pas d ici.
   --------------------------------------------------------------------------- */
@media (max-width:1099px){
  html body #header #mobile_top_menu_wrapper{
    background:#182616 !important; color:#F7F2E4 !important;
  }
  html body #header #mobile_top_menu_wrapper a,
  html body #header #mobile_top_menu_wrapper span,
  html body #header #mobile_top_menu_wrapper li{ color:#F7F2E4 !important; }
  html body #header #mobile_top_menu_wrapper a.menu-link{
    border-bottom:1px solid rgba(247,242,228,.14) !important;
  }
  html body #header #mobile_top_menu_wrapper a:hover,
  html body #header #mobile_top_menu_wrapper a:focus{ color:#D2B269 !important; }
  html body #header #mobile_top_menu_wrapper .submenu-toggle,
  html body #header #mobile_top_menu_wrapper .submenu-toggle *,
  html body #header #mobile_top_menu_wrapper .arrow{ color:#D2B269 !important; }
  html body #header #mobile_top_menu_wrapper .submenu-toggle:focus{ outline:none !important; }
  html body #header #mobile_top_menu_wrapper .submenu-toggle:focus-visible{
    outline:1px solid #D2B269 !important; outline-offset:2px;
  }
  html body #header #mobile_top_menu_wrapper .mega-panel,
  html body #header #mobile_top_menu_wrapper .mega-grid,
  html body #header #mobile_top_menu_wrapper .mega-column{ background:transparent !important; }
  html body #header #mobile_top_menu_wrapper a.mega-heading{
    color:#D2B269 !important; border-bottom-color:rgba(176,141,63,.55) !important;
  }
}

/* ---------------------------------------------------------------------------
   5. LE BANDEAU QUI SE REPLIE AU DEFILEMENT.
   #header est colle en haut (position:sticky). On le fait glisser hors de
   l ecran quand on descend, revenir des qu on remonte. Le glissement se fait
   en transform : la seule propriete qui ne rejoue pas la mise en page, donc
   aucun saut de contenu et rien a recalculer a chaque image. C est aussi ce
   qui rend une bande genereuse tenable : elle ne coute sa hauteur qu au
   premier ecran.
   Pas de will-change : il ferait de #header un repere pour tout enfant en
   position:fixed — le tiroir du menu sur telephone en est un.
   --------------------------------------------------------------------------- */
#header{
  transition:transform .28s ease !important;
}
#header.lvv-bandeau-replie{
  transform:translateY(-105%) !important;
}
@media (prefers-reduced-motion:reduce){
  #header{transition:none !important}
}
/* ==== FIN — LA VOIE VERTE : le bandeau au dessin de la maquette ==== */

/* ==== LA VOIE VERTE : le repli des textes longs ==== */
/* Les textes longs se replient — 2026-09-05.
   Mesure avant : le rayon Fleurs CBD faisait 9 147 px sur ordinateur et
   15 839 px sur telephone, dont 5 143 px pour le seul texte servi sous la
   grille ; la fiche Allium OG faisait 11 487 px, dont 5 422 px pour la seule
   description. Le texte est bon et sert le referencement : on ne le retire
   pas, on le **borne visuellement**. Il reste entier dans la page, ecrete par
   une hauteur maximale, avec un fondu et un bouton qui rend la suite. Rien
   n est masque au sens de `display:none` : les moteurs lisent comme avant.

   Le fondu prend la couleur du fond reellement derriere le bloc, que le
   script pose en `--lvv-fond` : vert du site sous un rayon, blanc sous le
   panneau d une fiche. Sans cette variable il resterait vert sur blanc. */

.lvv-repli{
  position:relative;
  max-height:520px;
  overflow:hidden;
}
.lvv-repli::after{
  content:"";
  position:absolute;
  inset:auto 0 0 0;
  height:170px;
  background:linear-gradient(rgba(0,0,0,0), var(--lvv-fond, #D4E0C4) 72%, var(--lvv-fond, #D4E0C4));
  pointer-events:none;
}
/* Les plaques gravees passent DEVANT le fondu. Sans cela, la premiere plaque du
   guide de rayon tombe dans les 170 px de degrade et sort delavee : mesure sur
   telephone le 2026-09-05, vert moyen (152,157,143) au lieu de (53,64,41). Trois
   rayons sur quatre etaient dans ce cas (243 a 279-342 px, 244 a 307-370, 267 a
   223-286, la coupe etant a 420). Le fondu garde son role : il estompe le texte,
   qui est ce qui doit donner l envie de deplier, pas le titre. */
.lvv-repli h2{position:relative; z-index:1}
.lvv-repli.lvv-deplie{max-height:none}
.lvv-repli.lvv-deplie::after{display:none}

.lvv-repli-bouton{
  display:block;
  margin:16px auto 34px;
  background:#2E4A32;
  color:#FCFBF7;
  border:0;
  border-radius:0;
  font-family:inherit;
  font-size:13px;
  font-weight:600;
  line-height:1;
  letter-spacing:2px;
  text-transform:uppercase;
  padding:15px 30px;
  cursor:pointer;
}
.lvv-repli-bouton:hover,
.lvv-repli-bouton:focus{background:#243B27; color:#FCFBF7}

@media (max-width:767px){
  .lvv-repli{max-height:420px}
  .lvv-repli-bouton{width:calc(100% - 40px); padding:15px 12px}
}
/* ==== FIN — LA VOIE VERTE : le repli des textes longs ==== */

/* ==================================================================
   CE QUI SUIT NE VIENT PAS DU BLOC 23. Ce sont les sections du bloc
   « Le coin de Miss Bud », migrees et son champ vide le 2026-09-05 :
   elles n existent plus qu ici. Elles etaient deja apres le bloc 23
   dans le document, elles restent apres lui dans le fichier.
   ================================================================== */
/* ==== DEBUT — LA VOIE VERTE : le coin de Miss Bud au style de l accueil — 2026-09-05 ==== */
/* Reprise du champ Style du bloc HTML Box 24. Elle vient EN FIN de feuille :
   plusieurs de ses regles visent une valeur de style en ligne, et a specificite
   egale c est le rang qui decide. */
/* ==== DEBUT coin de Miss Bud au style de l'accueil - 2026-09-04 ==========
   Repeint les 30 pages du coin (hub CMS 8 + 29 guides) avec le vocabulaire
   visuel de la page d'accueil refondue le 2026-09-04 :
   or #B08D3F au lieu du turquoise #88BDB4, cremes accordes, titres en
   Marcellus, plaques gravees sur le hub, cartes de guide identiques a
   celles de la rangee Miss Bud de l'accueil.

   AUCUN contenu de page n'est touche : tout se joue dans cette feuille.
   Les styles en ligne des pages sont battus par !important (le style en
   ligne ne gagne pas contre lui - releve du 2026-08-17).
   ======================================================================= */

body.page-cms{
  --mb-or:#B08D3F;
  --mb-or-texte:#75591F;
  --mb-or-clair:#D2B269;
  --mb-encre:#1A2120;
  --mb-encre-douce:rgba(26,33,32,.72);
  --mb-creme:#F7F2E4;
  --mb-vert:#2E4A32;
  --mb-vert-profond:#1E2E1C;
}

/* ---- 1. Tout le turquoise devient de l'or ----------------------------- */
body.page-cms #content [style*='88bdb4' i]{border-color:var(--mb-or) !important}
body.page-cms #content [style*='color:#88bdb4' i]{color:var(--mb-or-texte) !important}
body.page-cms #content [style*='C3BCA8' i]{border-color:rgba(176,141,63,.42) !important}
/* Le filet d'encre du bloc de tete : l'accueil encadre d'or, jamais de noir. */
body.page-cms #content [style*='border-left:3px solid #1A2120' i]{border-left-color:var(--mb-or) !important}

/* ---- 2. Les cremes s'accordent a celui de l'accueil -------------------- */
body.page-cms #content [style*='F5F2EA' i]{background:var(--mb-creme) !important}

/* ---- 3. Les yeux (sur-titres en petites capitales) passent en or ------- */
body.page-cms #content p[style*='letter-spacing:1.2px'],
body.page-cms #content p[style*='letter-spacing:1.5px'],
body.page-cms #content p[style*='letter-spacing:1.6px']{
  color:var(--mb-or-texte) !important;
  font-size:10px !important; letter-spacing:1.7px !important; line-height:1.2 !important;
  text-transform:uppercase;
}
body.page-cms #content p[style*='letter-spacing:1.5px'] a,
body.page-cms #content p[style*='letter-spacing:1.6px'] a{color:var(--mb-or-texte) !important}

/* ---- 4. Les titres de section : Marcellus, filet d'or ------------------ */
body.page-cms #content h2{
  font-family:Marcellus,Georgia,serif !important;
  font-size:25px !important; font-weight:400 !important; line-height:1.22 !important;
  color:var(--mb-encre) !important;
  border-top:0 !important; position:relative;
  padding-top:26px !important;
}
body.page-cms #content h2::before{
  content:''; position:absolute; left:0; top:0; width:100%; height:1px;
  background:linear-gradient(90deg,var(--mb-or),rgba(176,141,63,.12));
}

/* ---- 5. Les cartes du hub = les cartes de guide de l'accueil ----------- */
body.page-cms #content td.lvv-carte{
  background:#FFFFFF !important;
  border-radius:0 !important;   /* l'accueil ne coupe aucun angle */
  border:1px solid rgba(26,33,32,.09) !important;
  padding:17px 20px 19px !important;
  transition:box-shadow .18s;
}
body.page-cms #content td.lvv-carte:hover{box-shadow:0 8px 20px rgba(26,33,32,.13) !important}
body.page-cms #content td.lvv-carte a{
  font-family:Marcellus,Georgia,serif !important;
  font-size:19px !important; font-weight:400 !important; line-height:1.25 !important;
  color:var(--mb-encre) !important;
}
body.page-cms #content td.lvv-carte p:last-child{
  font-size:13px !important; line-height:1.45 !important; color:var(--mb-encre-douce) !important;
}
/* Les cartes accentuees gardent leur marque, mais en or */
body.page-cms #content td.lvv-carte[style*='border-left']{border-left:3px solid var(--mb-or) !important}

/* ---- 6. Le chapo de tete : la voix de l'accueil ------------------------ */
body.page-cms #content p[style*='font-size:19px']{
  font-family:Marcellus,Georgia,serif !important;
  font-size:21px !important; line-height:1.4 !important; color:var(--mb-encre) !important;
}

/* ---- 7. Les liens du corps : soulignes d'or --------------------------- */
body.page-cms #content p a[style*='underline'],
body.page-cms #content li a[style*='underline']{
  text-decoration:none !important;
  border-bottom:1px solid rgba(176,141,63,.55) !important;
  color:var(--mb-encre) !important;
}
/* ==== FIN coin de Miss Bud au style de l'accueil ======================== */

/* ==== Variante B : + les plaques gravees de l'accueil ==================== */
/* A poser EN PLUS de feuille-missbud-ac.css. Le hub prend les plaques
   gravees de l'accueil sur ses titres de section ; les guides prennent
   une plaque unique en tete, qui porte leur rubrique. */

body.cms-id-8 #content h2[style]{
  display:table !important;
  margin:44px 0 20px calc(50% - 330px) !important;
  max-width:660px !important;
  font-family:Marcellus,Georgia,serif !important;
  font-size:19px !important; font-weight:400 !important; line-height:1.2 !important;
  text-transform:uppercase; letter-spacing:3.6px !important;
  color:#F7F2E4 !important;
  padding:13px 34px 14px !important;
  background:radial-gradient(130% 180% at 50% -10%,rgba(255,255,255,.075),rgba(255,255,255,0) 60%),
             linear-gradient(#2E4629,#182616) !important;
  border:2px solid #B08D3F !important;
  text-shadow:0 1px 0 rgba(0,0,0,.55);
  box-shadow:inset 0 0 0 1px rgba(0,0,0,.45), inset 0 0 40px rgba(0,0,0,.4), 0 10px 24px rgba(26,33,32,.16) !important;
}
body.cms-id-8 #content h2::before{display:none !important}

@media (max-width:767px){
  body.cms-id-8 #content h2[style]{
    margin-left:0 !important; font-size:15px !important; letter-spacing:2.4px !important;
    padding:11px 18px 12px !important;
  }
}
/* ==== FIN — LA VOIE VERTE : le coin de Miss Bud au style de l accueil ==== */

/* ==== DEBUT - LA VOIE VERTE : le style de l accueil sur les pages de liste - 2026-09-05 ====
   Les pages de rayon avaient deja la plaque gravee de leur titre, le fond ivoire
   des cartes et le meme filet vert que l accueil. Restaient l anatomie des
   vignettes et le rythme du guide. Toutes les declarations portent !important :
   l ordre des blocs HTML Box se rejoue a chaque enregistrement d un voisin, une
   surcharge qui ne compte que sur sa position la perd en silence. */

/* --- 1. La boite photo devient carree, comme a l accueil -----------------
   Les fichiers sont en 800x800 : dans un cadre de 249 x 246, object-fit
   ne recadre pas, il retrecit. A partir de l ordinateur seulement : sur
   telephone le carre coute 352 px de page pour 31 px de photo par carte, sur
   tablette 193 px - et ces deux ecrans viennent d etre raccourcis deux fois en
   trois jours. Au-dela de 992 px, il raccourcit meme la page (la boite etait
   plus haute que large : -144 px a 992, -120 a 1600). */
@media (min-width: 992px) {
  #js-product-list .thumbnail-container .product-thumbnail{
    display:block !important; aspect-ratio:1/1 !important; height:auto !important;
    /* Un plafond, sinon la page de recherche - dont les cartes font 348 px de
       large faute de colonne de filtres - se donnerait des photos de 346 px et
       gagnerait 1 500 px de page. Au-dela du plafond la boite redevient
       paysage, comme aujourd hui. */
    max-height:250px !important;
    background:#FBFAF6 !important;
  }
  #js-product-list .thumbnail-container .product-thumbnail img{
    position:static !important; width:100% !important; height:100% !important;
    margin:0 !important; padding:14px !important; object-fit:contain !important;
  }
  /* La carte cesse d avoir une hauteur en dur et se cale sur sa photo, plus la
     reserve du bloc blanc - qui reste pose en absolu, donc les prix restent
     alignes d une carte a l autre. Sans ca, la photo carree mord le bloc :
     3 px sur un rayon (invisible) mais 100 px sur la page de recherche, dont
     les cartes font 348 px de large. La reserve vaut 156,44 px sous 992 px et
     150 px au-dela - les valeurs posees par le theme et la passe du 03/09. */
  #js-product-list .thumbnail-container{
    height:auto !important; padding-bottom:157px !important;
  }
}
@media (min-width: 992px) {
  #js-product-list .thumbnail-container{ padding-bottom:150px !important; }
}

/* --- 2. L angle et l ombre des cartes de l accueil ----------------------- */
#js-product-list .thumbnail-container{
  border-radius:0 !important;
  box-shadow:0 1px 0 0 rgba(26,33,32,.04) !important;
}

/* --- 3. Le nom prend l encre de l accueil -------------------------------
   L interligne resserre de 20,8 a 20 px rend aussi leurs derniers mots aux
   noms longs : sept noms coupes sur les Fleurs CBD, quatre sur les
   nouveautes, zero apres. */
#js-product-list .lvv-nom-entier{
  color:#1C1E14 !important; font-size:15px !important; line-height:20px !important;
}

/* --- 4. Le pied de carte : la ligne de l accueil ------------------------
   Un filet dore pleine largeur remplace le tiret centre de 34 px, le prix
   passe a gauche en Marcellus et l appel a l action se pose a sa droite. */
#js-product-list .product-price-and-shipping{
  background-image:none !important;
  padding-top:11px !important; margin-top:auto !important;
  border-top:1px solid rgba(176,141,63,.34) !important;
  display:flex !important; flex-wrap:wrap !important;
  align-items:baseline !important; justify-content:space-between !important;
  text-align:left !important;
}
#js-product-list .product-price-and-shipping .price{
  font-family:Marcellus,serif !important; font-size:18px !important;
  font-weight:400 !important; letter-spacing:.4px !important;
  color:#1C1E14 !important; line-height:23px !important;
}
#js-product-list .product-price-and-shipping::after{
  content:"D\0000e9couvrir"; font-family:"Source Sans Pro",sans-serif !important;
  font-size:10.5px !important; font-weight:600 !important; letter-spacing:1.26px !important;
  text-transform:uppercase !important; color:#2E4A32 !important; line-height:1.3 !important;
  order:2 !important; white-space:nowrap !important;
}
/* Le prix au gramme garde sa ligne, sous le filet comme avant. */
#js-product-list .lvv-des{
  order:3 !important; flex:0 0 100% !important; text-align:left !important;
  margin-top:4px !important;
}

/* --- 5. Le guide de rayon passe sur une bande ivoire ---------------------
   C est la respiration des sections claires de l accueil : un fond ivoire,
   un filet dore au-dessus, une ombre d un pixel. */
#category-description{
  background:#FBFAF6 !important;
  border-top:1px solid rgba(176,141,63,.34) !important;
  padding:40px 34px 34px !important;
  margin-top:34px !important;
  box-shadow:0 1px 0 0 rgba(26,33,32,.04) !important;
}

/* --- 6. Les titres du guide prennent la plaque gravee -------------------
   Meme recette que les plaques posees le 2026-09-05 sur le coin de Miss Bud
   (degrade radial + lineaire, cadre or, ombre interne) : deux recettes de
   plaque sur le meme site se verraient. Calee sur le bord gauche du texte :
   les paragraphes du guide ne sont pas centres dans leur colonne, ils partent
   du bord - un calc de centrage la poussait 151 px trop a droite.
   L identifiant de la page est ajoute devant : sans lui, la regle
   " #category-description h2 { color:#2E4A32 !important } ", de meme
   specificite et declaree plus haut dans cette meme feuille, garde la main et
   laisserait un titre vert sur une plaque verte. clear:both ecarte la plaque
   des visuels Miss Bud, qui flottent dans la colonne de droite. */
body#category #category-description h2,
body#category #category-description h3.sb-h3{
  display:table !important; clear:both !important;
  max-width:680px !important;
  margin:40px 0 20px !important;
  font-family:Marcellus,Georgia,serif !important;
  font-size:19px !important; font-weight:400 !important; line-height:1.2 !important;
  text-transform:uppercase !important; letter-spacing:3.6px !important;
  color:#F7F2E4 !important;
  padding:13px 34px 14px !important;
  background:radial-gradient(130% 180% at 50% -10%,rgba(255,255,255,.075),rgba(255,255,255,0) 60%),
             linear-gradient(#2E4629,#182616) !important;
  border:2px solid #B08D3F !important;
  text-shadow:0 1px 0 rgba(0,0,0,.55);
  box-shadow:inset 0 0 0 1px rgba(0,0,0,.45), inset 0 0 40px rgba(0,0,0,.4),
             0 10px 24px rgba(26,33,32,.16) !important;
}
body#category #category-description > h2:first-child{ margin-top:0 !important; }

/* Sur telephone, la plaque se resserre et se cale au bord : 680 px de large
   n existent pas, et le calc de centrage sortirait de l ecran. */
@media (max-width: 767px) {
  body#category #category-description h2,
  body#category #category-description h3.sb-h3{
    margin:28px 0 16px !important; padding:11px 18px 12px !important;
    font-size:15px !important; letter-spacing:2.4px !important;
  }
  #category-description{ padding:26px 16px 22px !important; }
}
/* ==== FIN - LA VOIE VERTE : le style de l accueil sur les pages de liste ==== */

/* ==== DEBUT - LA VOIE VERTE : le style des rayons sur les fiches produit - 2026-09-05 ==== */
/* Les trois blocs de vignettes d une fiche (accessoires, « vous aimerez
   peut-etre aussi », « N autres produits ») gardaient l ancienne anatomie : le
   chantier du 2026-09-05 visait #js-product-list, qu une fiche ne porte pas.
   Meme structure de carte pourtant — .thumbnail-container > .product-thumbnail
   > img, puis .product-description > .product-title et .product-price-and-shipping.
   Les memes regles, reprefixees body#product, s y appliquent donc telles quelles.

   Seul ecart de nom : sur un rayon le libelle porte .lvv-nom-entier, pose par un
   module ; sur une fiche c est .product-title. Les deux sont vises. */

@media (min-width: 992px) {
  body#product .thumbnail-container .product-thumbnail{
    display:block !important; aspect-ratio:1/1 !important; height:auto !important;
    /* Un plafond, sinon la page de recherche - dont les cartes font 348 px de
       large faute de colonne de filtres - se donnerait des photos de 346 px et
       gagnerait 1 500 px de page. Au-dela du plafond la boite redevient
       paysage, comme aujourd hui. */
    max-height:250px !important;
    background:#FBFAF6 !important;
  }
  body#product .thumbnail-container .product-thumbnail img{
    position:static !important; width:100% !important; height:100% !important;
    margin:0 !important; padding:14px !important; object-fit:contain !important;
  }
  /* La carte cesse d avoir une hauteur en dur et se cale sur sa photo, plus la
     reserve du bloc blanc - qui reste pose en absolu, donc les prix restent
     alignes d une carte a l autre. Sans ca, la photo carree mord le bloc :
     3 px sur un rayon (invisible) mais 100 px sur la page de recherche, dont
     les cartes font 348 px de large. La reserve vaut 156,44 px sous 992 px et
     150 px au-dela - les valeurs posees par le theme et la passe du 03/09. */
  body#product .thumbnail-container{
    height:auto !important; padding-bottom:157px !important;
  }
}
@media (min-width: 992px) {
  body#product .thumbnail-container{ padding-bottom:150px !important; }
}

/* --- 2. L angle et l ombre des cartes de l accueil ----------------------- */
body#product .thumbnail-container{
  border-radius:0 !important;
  box-shadow:0 1px 0 0 rgba(26,33,32,.04) !important;
}

/* --- 3. Le nom prend l encre de l accueil -------------------------------
   L interligne resserre de 20,8 a 20 px rend aussi leurs derniers mots aux
   noms longs : sept noms coupes sur les Fleurs CBD, quatre sur les
   nouveautes, zero apres. */
body#product .thumbnail-container .product-title, body#product .lvv-nom-entier{
  color:#1C1E14 !important; font-size:15px !important; line-height:20px !important;
}

/* --- 4. Le pied de carte : la ligne de l accueil ------------------------
   Un filet dore pleine largeur remplace le tiret centre de 34 px, le prix
   passe a gauche en Marcellus et l appel a l action se pose a sa droite. */
body#product .product-price-and-shipping{
  background-image:none !important;
  padding-top:11px !important; margin-top:auto !important;
  border-top:1px solid rgba(176,141,63,.34) !important;
  display:flex !important; flex-wrap:wrap !important;
  align-items:baseline !important; justify-content:space-between !important;
  text-align:left !important;
}
body#product .product-price-and-shipping .price{
  font-family:Marcellus,serif !important; font-size:18px !important;
  font-weight:400 !important; letter-spacing:.4px !important;
  color:#1C1E14 !important; line-height:23px !important;
}
body#product .product-price-and-shipping::after{
  content:"D\0000e9couvrir"; font-family:"Source Sans Pro",sans-serif !important;
  font-size:10.5px !important; font-weight:600 !important; letter-spacing:1.26px !important;
  text-transform:uppercase !important; color:#2E4A32 !important; line-height:1.3 !important;
  order:2 !important; white-space:nowrap !important;
}
/* Le prix au gramme garde sa ligne, sous le filet comme avant. */
body#product .lvv-des{
  order:3 !important; flex:0 0 100% !important; text-align:left !important;
  margin-top:4px !important;
}
/* ==== FIN - LA VOIE VERTE : le style des rayons sur les fiches produit ==== */

/* ==== DEBUT - LA VOIE VERTE : l embleme de la maison dans les plaques - 2026-09-10 ====
   Demande Florent : integrer le logo - la version au demi-cercle or - AU-DESSUS
   du texte, dans chaque plaque gravee.

   CE QU ON POSE : l EMBLEME SEUL (le demi-cercle or et la feuille ivoire), pas
   le lockup complet. Le nom de la maison est deja au bandeau ; le repeter
   au-dessus de chaque titre de page le devaluerait, et la plaque prendrait le
   double de hauteur.

   D OU VIENT L IMAGE, ET POURQUOI PAS UN FICHIER A ELLE : c est le fichier de
   PS_LOGO - celui du bandeau, donc DEJA charge et deja en cache sur toutes les
   pages. On n en montre que la partie gauche, par recadrage CSS
   (background-size + background-position). Cout reseau : zero octet, zero
   requete de plus. Et si un jour ce fichier disparait, l embleme et le logo du
   bandeau tombent ENSEMBLE - une panne visible, pas une panne silencieuse.

   LA GEOMETRIE, MESUREE : le fichier fait 500 x 202 px ; l embleme y occupe
   x 7 -> 206 (199 px de large) et y 3 -> 199 (196 px de haut). Pour l afficher
   a l echelle s, il faut donc une boite de 199s x 196s, une image mise a 500s
   de large, et un decalage de -7s / -3s. Les quatre tailles ci-dessous sont
   ces memes formules a s = 1/4, 1/6, 1/7 et 1/9.

   text-indent:0 est indispensable : la plaque porte un text-indent (.24em) pour
   compenser l interlettrage, et il se transmettrait a la boite de l embleme.

   POUR REVENIR EN ARRIERE : supprimer cette section. Les plaques retrouvent
   leur padding et leur texte seul.
   ==================================================================== */

/* ---------------- GRANDE PLAQUE - titres de page - embleme 49 px (s = 1/4) */
body#category:not(.category-id-53):not(.category-id-271):not(.category-id-272):not(.category-id-273):not(.category-id-274):not(.category-id-276) #js-product-list-header .h1::before,
body#cms .page-header h1::before,
body#new-products #js-product-list-header .h1::before,
body#new-products .page-header h1::before,
body#best-sales #js-product-list-header .h1::before,
body#best-sales .page-header h1::before,
body#prices-drop #js-product-list-header .h1::before,
body#prices-drop .page-header h1::before,
body#manufacturer .page-header h1::before,
body#supplier .page-header h1::before,
body#stores .page-header h1::before,
body#search #js-product-list-header .h1::before,
body#search .page-header h1::before{
  content:'' !important;
  display:block !important;
  width:49.75px !important;
  height:49px !important;
  margin:0 auto 14px auto !important;
  text-indent:0 !important;
  background-image:url(/img/la-voie-verte-web-logo-17885604203.jpg) !important;
  background-repeat:no-repeat !important;
  background-size:125px auto !important;
  background-position:-1.75px -0.75px !important;
}

/* ---------------- PETITE PLAQUE - titres de section - embleme 28 px (s = 1/7) */
body#index #main h2::before,
.products-section-title::before,
#products .products-section-title::before,
.featured-products .products-section-title::before,
.product-accessories .products-section-title::before{
  content:'' !important;
  display:block !important;
  width:28.43px !important;
  height:28px !important;
  margin:0 auto 9px auto !important;
  text-indent:0 !important;
  background-image:url(/img/la-voie-verte-web-logo-17885604203.jpg) !important;
  background-repeat:no-repeat !important;
  background-size:71.43px auto !important;
  background-position:-1px -0.43px !important;
}

/* ---------------- Telephone : un cran plus petit, comme le texte ---------
   La grande plaque tombe de 38 a 21 px de texte, la petite de 22 a 16.
   L embleme suit : s = 1/6 (33 px) et s = 1/9 (22 px). */
@media (max-width:767px){
  body#category:not(.category-id-53):not(.category-id-271):not(.category-id-272):not(.category-id-273):not(.category-id-274):not(.category-id-276) #js-product-list-header .h1::before,
  body#cms .page-header h1::before,
  body#new-products #js-product-list-header .h1::before,
  body#new-products .page-header h1::before,
  body#best-sales #js-product-list-header .h1::before,
  body#best-sales .page-header h1::before,
  body#prices-drop #js-product-list-header .h1::before,
  body#prices-drop .page-header h1::before,
  body#manufacturer .page-header h1::before,
  body#supplier .page-header h1::before,
  body#stores .page-header h1::before,
  body#search #js-product-list-header .h1::before,
  body#search .page-header h1::before{
    width:33.17px !important;
    height:32.67px !important;
    margin:0 auto 10px auto !important;
    background-size:83.33px auto !important;
    background-position:-1.17px -0.5px !important;
  }
  body#index #main h2::before,
  .products-section-title::before,
  #products .products-section-title::before,
  .featured-products .products-section-title::before,
  .product-accessories .products-section-title::before{
    width:22.11px !important;
    height:21.78px !important;
    margin:0 auto 7px auto !important;
    background-size:55.56px auto !important;
    background-position:-0.78px -0.33px !important;
  }
}
/* ==== FIN - LA VOIE VERTE : l embleme de la maison dans les plaques ==== */

/* ==== DEBUT - LA VOIE VERTE : l embleme hors des plaques - 2026-09-10 ==== */
/* Complement de la section « l embleme de la maison dans les plaques » posee
   le meme jour par une session parallele. Elle couvre TOUS LES TITRES (plaques
   gravees des pages et des sections, par recadrage du fichier PS_LOGO, zero
   octet de plus). Celle-ci couvre CE QUI N EST PAS UN TITRE : le pied, la page
   introuvable, les deux clotures, et le filigrane de l accueil.

   Aucun selecteur commun entre les deux sections. Si la leur bouge, celle-ci
   ne bouge pas, et reciproquement.

   Pourquoi des fichiers a elle ici, alors que la section des plaques se sert
   du logo du bandeau : le recadrage d un JPG opaque tient sur une plaque
   sombre, pas sur les fonds clairs (page introuvable, filigrane creme) ni
   quand la feuille doit changer d encre. Trois PNG a fond transparent, servis
   depuis /img/cms/, 384 px, quantises a 64 couleurs (15 a 16 Ko piece) :

     lvv-embleme-or.png        tout or                         ORNEMENT
     lvv-embleme-or-vert.png   arc or / feuille vert profond   SIGNATURE sur fond clair
     lvv-embleme-or-creme.png  arc or / feuille creme          SIGNATURE sur fond sombre

   La regle tient en une phrase : un ornement est toujours tout or ; une
   signature prend la feuille a l encre opposee a son fond.

   Deux endroits ont ete ecartes a la vue, et c est volontaire : le panier
   vide, ou Miss Bud tient deja un panier renverse, et la recherche sans
   resultat, dont le titre porte deja l embleme par la section des plaques.

   POUR REVENIR EN ARRIERE : supprimer cette section. */

/* --- 1. La signature du pied, donc sur toutes les pages -------------------
   #lvv-pied-copy est un bloc plein cadre en vert profond ; sa piste interne
   est deja centree et bornee a 1180. On pose l embleme sur la piste, pas sur
   le bloc qui fait toute la largeur de la fenetre. */
#lvv-pied-copy .lvv-pied-copy-piste::before{
  content:"";
  display:block;
  width:46px; height:46px;
  margin:0 auto 12px;
  background:url(https://lavoieverte.paris/img/cms/lvv-embleme-or-creme.png) center/contain no-repeat;
  opacity:.92;
}

/* --- 2. La page introuvable ----------------------------------------------
   Le bloc est nu : un titre, un sous-titre, un champ de recherche, sur un
   carton blanc. La recherche sans resultat sert le meme bloc, mais son titre
   porte deja l embleme (section des plaques) : on borne donc a
   body#pagenotfound, sinon deux emblemes se suivraient a soixante pixels. */
body#pagenotfound #content.page-not-found::before{
  content:"";
  display:block;
  width:118px; height:118px;
  margin:6px auto 26px;
  background:url(https://lavoieverte.paris/img/cms/lvv-embleme-or-vert.png) center/contain no-repeat;
}

/* --- 3 et 4. Les clotures ------------------------------------------------
   Rien ne separait la fiche de « Vous aimerez aussi », ni le rayon de
   l etagere de Miss Bud. Un filet or qui s estompe vers les bords, coupe au
   centre par l embleme. Trois couches de fond sur un seul pseudo-element :
   aucune balise ajoutee, aucune bordure a masquer.
   Verifie le 2026-09-10 : sur ce theme, le titre « Vous aimerez aussi » n a
   pas de .products-section-title, la section des plaques ne l atteint donc
   pas et la cloture ne fait doublon avec rien. */
body#product #main > section.product-accessories::before,
body#category #main .lvv-mb::before{
  content:"";
  display:block;
  height:40px;
  max-width:520px;
  margin:14px auto 30px;
  background:
    url(https://lavoieverte.paris/img/cms/lvv-embleme-or.png) center/34px 34px no-repeat,
    linear-gradient(to right, rgba(176,141,63,0), rgba(176,141,63,.55)) left center/calc(50% - 32px) 1px no-repeat,
    linear-gradient(to left,  rgba(176,141,63,0), rgba(176,141,63,.55)) right center/calc(50% - 32px) 1px no-repeat;
}

/* --- 5. Le filigrane de la bande creme de l accueil -----------------------
   La bande « Miss Bud vous explique » est une grande plage creme unie.
   Le conteneur passe en position:relative - il etait static - et le filigrane
   reste sous tout le reste (z-index 0, pointer-events:none, aucun clic
   intercepte).

   REPRIS LE 2026-09-10, MEME JOUR : pose d abord a 7 % et centre verticalement,
   il ne se voyait pas du tout. Deux causes, mesurees sur la page servie a
   1440 px, et elles s additionnent :

   1. 7 % d or (rgb 176 141 63) sur le creme rgb(247 242 228) fait cinq points
      d ecart sur 255. Sous le seuil, ou qu on le mette.
   2. la bande fait 668 px de haut ; centre, l embleme tombait sur le carrousel
      des guides (y 242 -> 624), dont les cartes ont un fond BLANC OPAQUE et
      passent devant (elles sont en z-index 1 par la regle « > * » ci-dessous).
      Sur ses 260 px visibles, la moitie etait masquee par une carte.

   On le remonte donc sur la rangee d introduction (portrait + texte + lien,
   y 44 -> 218), qui n a aucun fond : du creme nu sur toute la largeur. Et on
   passe a 12 %, choisi a la vue sur cinq essais rendus au 1:1
   (embleme-plaques-2026-09-10/apercu-filigrane-remonte.html).

   La taille descend de 300 a 260 px pour que le bas de l embleme s arrete avant
   la premiere carte : top -12 + 260 = 248, les cartes commencent a 242.

   Il debordait a l origine de 40 px hors du cadre droit ; rentre a la demande
   de Florent le meme jour (« un peu sur la gauche », puis 90 px, puis 60 de plus) :
   right 166 px sur ordinateur, l embleme entier visible en largeur, cale entre
   la fin du texte d introduction (x 1166) et le bord de la piste (x 1310).
   Sur telephone on ne bouge pas : la bande n a que 375 px de large, l embleme y
   est deja au-dessus du texte, et 90 px de plus le mettraient au milieu. */
body#index #content > .lvv-ac-bande-creme{
  position:relative;
  overflow:hidden;
}
body#index #content > .lvv-ac-bande-creme::before{
  content:"";
  position:absolute;
  right:166px; top:-12px;
  width:260px; height:260px;
  background:url(https://lavoieverte.paris/img/cms/lvv-embleme-or.png) center/contain no-repeat;
  opacity:.12;
  pointer-events:none;
  z-index:0;
}
body#index #content > .lvv-ac-bande-creme > *{
  position:relative;
  z-index:1;
}

/* Telephone : tout se resserre d un cran. */
@media (max-width:767px){
  /* Telephone : la bande fait 503 px, la rangee d introduction y 20 -> 189 et
     les cartes commencent a 197. L embleme tient donc en 170 px a partir de 8. */
  body#index #content > .lvv-ac-bande-creme::before{
    width:170px; height:170px; right:8px; top:8px;
  }
  body#product #main > section.product-accessories::before,
  body#category #main .lvv-mb::before{
    max-width:280px; height:32px; margin:10px auto 22px;
    background-size:28px 28px, calc(50% - 26px) 1px, calc(50% - 26px) 1px;
  }
  body#pagenotfound #content.page-not-found::before{ width:92px; height:92px; }
  #lvv-pied-copy .lvv-pied-copy-piste::before{ width:38px; height:38px; }
}
/* --- 6. La photo par defaut des fiches sans image ------------------------
   Huit fiches n ont pas de photo (releve du 2026-08-17) : PrestaShop leur sert
   /img/p/fr-default-<format>.jpg, qui porte l ancien embleme turquoise et les
   lettres L V V. Plutot que de remplacer un fichier systeme et de relancer une
   regeneration de vignettes, on substitue l image a l affichage — la meme
   technique que le logo du bandeau : content:url sur la balise. Le fichier
   servi est un carre creme (#F5F2EA, celui des cartes) portant l embleme a l or.
   Reversible en supprimant ces trois lignes ; aucun fichier du catalogue n a
   bouge. */
body img[src*="/img/p/fr-default"]{
  content:url(https://lavoieverte.paris/img/cms/lvv-defaut-produit.png) !important;
}

/* ==== FIN - LA VOIE VERTE : l embleme hors des plaques ==== */

/* ==== DEBUT — LA VOIE VERTE : la vignette produit remplit son carre — 2026-09-10 ==== */
/* Marqueur : vignette-fond-perdu.
   Deux regles a nous se superposaient et se cumulaient.
   1) 2026-09-03, densite des rayons : max-width:calc(100% - 22px) + max-height:226px,
      pose quand la boite photo etait encore rectangulaire.
   2) 2026-09-05, style de l accueil sur les listes : la boite devient carree et la
      photo recoit une marge voulue de padding:14px.
   Resultat mesure sur un rayon a 1280 px : emplacement de 219 px, boite de contenu de
   169 px — la photo occupait 59 % de la surface de sa case, avec du vide sur les quatre
   cotes. Les fichiers sont tous en 500x500 (800x800 a l origine), donc object-fit
   « contain » ne rogne rien : il retrecit.
   Choix de Florent le 2026-09-10 : fond perdu, la photo remplit le carre (219 px).
   Les photos detourees sur blanc touchent alors le bord de la case ivoire #FBFAF6 —
   ecart de teinte de 4 points, invisible — et les photos de scene y gagnent nettement.
   Toutes les declarations portent !important et reprennent la specificite des regles
   qu elles remplacent : celles du 03/09 en ont deux identifiants. Etant en fin de
   feuille, cette section gagne a specificite egale. */
@media (min-width:992px){
  body#category #products .products .thumbnail-container .product-thumbnail img,
  body#new-products #products .products .thumbnail-container .product-thumbnail img,
  body#prices-drop #products .products .thumbnail-container .product-thumbnail img,
  body#best-sales #products .products .thumbnail-container .product-thumbnail img,
  body#manufacturer #products .products .thumbnail-container .product-thumbnail img,
  body#supplier #products .products .thumbnail-container .product-thumbnail img,
  body#search #products .products .thumbnail-container .product-thumbnail img,
  body #js-product-list .thumbnail-container .product-thumbnail img{
    width:100% !important; height:100% !important;
    max-width:100% !important; max-height:none !important;
    padding:0 !important; margin:0 !important;
    object-fit:contain !important; object-position:50% 50% !important;
  }
}
/* ==== FIN — LA VOIE VERTE : la vignette produit remplit son carre ==== */

/* ==== DEBUT - LA VOIE VERTE : l embleme dans les plaques des guides - 2026-09-10 ====
   Suite de "l embleme de la maison dans les plaques", posee le meme jour.
   Les plaques du guide de rayon (#category-description) en avaient d abord ete
   ecartees : petites, calees au bord gauche, au fil d un texte. Florent les
   veut alignees sur les autres - elles portent la meme gravure, elles portent
   le meme embleme.

   MEME FICHIER, MEME FORMULE que la section des plaques : le fichier de
   PS_LOGO (500 x 202), embleme a x 7 -> 206 et y 3 -> 199, donc a l echelle s
   une boite de 199s x 196s, background-size 500s, background-position -7s/-3s.
   Ici s = 1/8 sur ordinateur (texte 19 px) et s = 1/10 sur telephone (15 px).

   POURQUOI CES DEUX ECHELLES ET PAS D AUTRES : sur les plaques deja posees,
   l embleme fait 1,3 fois la taille du texte (49 pour 38, 28 pour 22). Le
   guide suit le meme rapport : 24,5 pour 19, puis 19,6 pour 15. Un embleme a
   la taille du texte se perd, il a ete essaye et ecarte a la vue.

   COUT : la plaque du guide passe d environ 53 a 85 px sur ordinateur. Un
   guide en porte huit - c est le prix de l alignement, accepte.

   POUR REVENIR EN ARRIERE : supprimer cette section. Les plaques du guide
   retrouvent leur texte seul, les autres ne bougent pas.
   ==================================================================== */

body#category #category-description h2::before,
body#category #category-description h3.sb-h3::before{
  content:'' !important;
  display:block !important;
  width:24.88px !important;
  height:24.5px !important;
  margin:0 auto 7px auto !important;
  text-indent:0 !important;
  background-image:url(/img/la-voie-verte-web-logo-17885604203.jpg) !important;
  background-repeat:no-repeat !important;
  background-size:62.5px auto !important;
  background-position:-0.875px -0.375px !important;
}

@media (max-width:767px){
  body#category #category-description h2::before,
  body#category #category-description h3.sb-h3::before{
    width:19.9px !important;
    height:19.6px !important;
    margin:0 auto 6px auto !important;
    background-size:50px auto !important;
    background-position:-0.7px -0.3px !important;
  }
}
/* ==== FIN - LA VOIE VERTE : l embleme dans les plaques des guides ==== */

/* ==== DEBUT — LA VOIE VERTE : les deux pages sans cadre - 2026-09-10 ====
   Releve d affichage du 2026-09-10 (AUDIT_AFFICHAGE_SITE_2026-09-10.md), points 1 et 2.

   A. LA PAGE DE RESULTATS DE RECHERCHE N A JAMAIS RECU SES GOUTTIERES
   Le gabarit « pleine largeur » (body.layout-full-width) sert un #content-wrapper
   SANS classe : pas de col-*, donc aucun padding. Les autres pages pleine largeur
   — plan du site, marques, pages CMS, magasins — s en sortent parce que le theme
   borne leur #content : marge de 10 % au-dessus de 768 px, 12 px en dessous
   (mesure du 2026-09-10 : 144 px a 1440, 120 a 1200, 90 a 900, puis 12 sous 768).
   La page de recherche, elle, n a pas de #content : ses resultats vivent dans
   #main > #products > #js-product-list. Elle courait donc de 0 a 1440, et la
   premiere lettre du titre « RESULTATS DE LA RECHERCHE », posee a x = 0, etait
   rasee par le bord de l ecran.
   On lui donne la meme gouttiere de 10 %, au meme point de bascule. Sous 768 px
   on ne touche pas a #main : la grille y est deja bornee a 14 px (les cartes vont
   de 14 a 361 sur 375), c est le titre seul qui manquait a l appel — voir C.
   La densite de la grille (25 % par carte entre 1200 et 1599, 20 % au-dela) reste
   celle de la section 8 de cette feuille.

   B. /promotions REPOND PAR UNE ERREUR QUAND IL N Y A RIEN EN PROMO
   Liste vide, PrestaShop tombe sur errors/not-found.tpl et sert
   « Veuillez nous excuser pour le desagrement. » + « Effectuez une nouvelle
   recherche » — le texte d une page introuvable. Or la page existe, elle est saine,
   et le lien Promotions est dans le pied de page : les 1 234 pages du site y
   renvoient. Le catalogue ne porte aujourd hui aucun prix barre, donc la liste est
   legitimement vide ; c est la reponse qui est fausse, pas la donnee.
   Les deux phrases sont retirees et remplacees par un message juste, pose en
   pseudo-elements — meme technique que la serie Miss Bud (section 14) : aucun HTML
   ajoute, aucun fichier de theme touche, retirer cette section fait tout disparaitre.
   Le champ de recherche du gabarit est conserve : il donne une suite au visiteur.
   ::after se rend apres le dernier enfant, donc apres ce champ. La section passe en
   colonne flex et l ordre est repose explicitement, pour que la phrase reste entre
   le titre et le champ.
   Les accents sont ecrits en echappements CSS a SIX chiffres : la feuille est servie
   en text/css sans parametre charset et ne declare pas @charset, et un echappement
   court avale la lettre suivante quand elle est un chiffre hexadecimal — \2019 suivi
   de « ann » a d abord rendu « l(caractere chinois)nnee ».

   C. LE TITRE DES PAGES DE LISTE TOUCHE LE BORD SUR TELEPHONE
   Sur 375 px, #js-product-list-header commence a x = 0 alors que les cartes
   commencent a 14 : le titre est desaligne de 14 px sous lui-meme, et sa premiere
   lettre est rasee. Vrai sur les six pages de liste — nouveautes, promotions,
   meilleures ventes, marques, fournisseurs, recherche. Meme liste de selecteurs que
   la section 8, pour que les deux restent solidaires.

   Ce que ceci ne repare pas, faute de pouvoir toucher le gabarit : ni /promotions ni
   la page de recherche n ont de h1 (leur titre est un h2#js-product-list-header).
   Le meme bloc d excuse sert aussi /241-graines-de-collection et
   /293-neo-cannabinoides, deux rayons vides encore lies depuis le plan du site :
   leur reparation est un arbitrage de catalogue, pas d affichage.
   ======================================================================== */

/* --- A. La page de recherche retrouve la gouttiere des pages pleine largeur --- */
@media (min-width:768px){
  body#search #main{
    margin-left:10%;
    margin-right:10%;
  }
}

/* --- B. /promotions : un message juste a la place de l erreur --- */

/* Les deux phrases du gabarit d erreur sortent du flux et de la lecture d ecran. */
body#prices-drop #js-product-list .page-content.page-not-found > h4,
body#prices-drop #js-product-list .page-content.page-not-found > p{
  display:none;
}

/* La section devient une colonne : les pseudo-elements y sont des items, et l ordre
   peut etre repose (sans quoi ::after tomberait sous le champ de recherche). */
body#prices-drop #js-product-list .page-content.page-not-found{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
}
body#prices-drop #js-product-list .page-content.page-not-found > #search_container{
  order:3;
}

/* « Aucune promotion en ce moment » — Marcellus et vert de la maison, comme les
   titres de page (releve du 2026-09-10 : #2E4A32, var(--lvv-titre)). */
body#prices-drop #js-product-list .page-content.page-not-found::before{
  order:1;
  content:"Aucune promotion en ce moment";
  display:block;
  margin:6px 0 12px;
  font-family:var(--lvv-titre),Marcellus,Georgia,serif;
  font-weight:400;
  font-size:22px;
  letter-spacing:.01em;
  line-height:1.25;
  color:#2E4A32;
}

/* La phrase qui dit ce qui, lui, tient toute l annee. Le bareme cite est celui du
   bandeau d accueil : sur les fleurs et resines, la baisse commence a 4 g. */
body#prices-drop #js-product-list .page-content.page-not-found::after{
  order:2;
  content:"Les prix d\0000e9gressifs, eux, tiennent toute l\002019ann\0000e9e\0000a0: sur les fleurs et les r\0000e9sines, le prix au gramme baisse d\0000e8s 4\0000a0g. Le bar\0000e8me complet est sur chaque fiche produit.";
  display:block;
  max-width:46em;
  margin:0 0 20px;
  font-family:var(--lvv-texte),"Source Sans Pro","Helvetica Neue",Arial,sans-serif;
  font-size:15px;
  line-height:1.55;
  color:#1A2120;
}

/* --- C. Le titre des pages de liste s aligne sur les cartes, sur telephone --- */
@media (max-width:767px){
  body#new-products #js-product-list-header,
  body#prices-drop #js-product-list-header,
  body#best-sales #js-product-list-header,
  body#manufacturer #js-product-list-header,
  body#supplier #js-product-list-header,
  body#search #js-product-list-header{
    padding-left:14px;
    padding-right:14px;
  }
}
/* ==== FIN — LA VOIE VERTE : les deux pages sans cadre ==== */

/* ==== DEBUT - LA VOIE VERTE : l embleme dans le coin de Miss Bud - 2026-09-10 ==== */
/* Demande de Florent : developper l embleme surtout dans le coin de Miss Bud.
   Trois gestes, sur les 35 pages CMS. Ils ne touchent que body.page-cms : rien
   de commun avec les deux sections « l embleme dans les plaques », qui vivent
   sur les titres de page et sur #category-description.

   1. LA CLOTURE DES GUIDES. Chaque guide se termine par trois losanges
      « ◆ ◆ ◆ » en turquoise #88BDB4 — l encre de l ancienne charte, un ornement
      dessine en caracteres faute de mieux. 25 pages le portent. Il devient
      l embleme. Le paragraphe n est pas cache (son ::before disparaitrait avec
      lui) : sa taille de police tombe a zero, ce qui demande !important parce
      qu il porte font-size:11px en style en ligne.

   2. LE SCEAU DES TITRES DE SECTION DU HUB. Les cinq titres du sommaire
      (page 8 ; la classe page-cms-8 est sur #content, pas sur le body) sont graves sur plaque sombre. La plaque est dessinee par un
      background radial-gradient et un box-shadow inset : y ajouter l embleme
      par background l effacerait ([[box-shadow-ne-s-additionne-pas]] vaut
      pareil ici pour le fond). Et le ::before du h2 est deja pris par le filet
      d or de la section « le coin de Miss Bud au style de l accueil ». Reste
      le ::after, libre — pose en absolu dans la plaque, centre verticalement,
      il tient aussi bien sur un titre d une ligne que de deux (mesure : 54 px
      de haut pour « Chez nous », 77 pour « Les precautions »).

   3. LE FILIGRANE. L embleme a 6 % en bas a droite du carton creme. Pas d
      overflow:hidden sur #content — il rognerait l ombre portee des cartes au
      survol : l embleme est simplement cale a right:8px, il ne deborde pas.

   POUR REVENIR EN ARRIERE : supprimer cette section. Les losanges reviennent,
   les plaques retrouvent leur texte seul, le filigrane disparait. */

/* --- 1. La cloture des 25 guides ---------------------------------------- */
body.page-cms #content p[style*="letter-spacing:2px"][style*="#88bdb4" i]{
  font-size:0 !important;
  letter-spacing:0 !important;
  line-height:0 !important;
}
body.page-cms #content p[style*="letter-spacing:2px"][style*="#88bdb4" i]::before{
  content:"";
  display:block;
  width:34px; height:34px;
  margin:0 auto;
  background:url(https://lavoieverte.paris/img/cms/lvv-embleme-or.png) center/contain no-repeat;
  opacity:.85;
}

/* --- 2. Le sceau des titres de section du hub ---------------------------- */
body.page-cms #content.page-cms-8 h2{
  padding-left:54px !important;
}
body.page-cms #content.page-cms-8 h2::after{
  content:"";
  position:absolute;
  left:19px; top:50%;
  transform:translateY(-50%);
  width:24px; height:24px;
  background:url(https://lavoieverte.paris/img/cms/lvv-embleme-or.png) center/contain no-repeat;
}

/* --- 3. Le filigrane des pages du coin ----------------------------------- */
body.page-cms #content{
  position:relative;
}
body.page-cms #content::after{
  content:"";
  position:absolute;
  right:8px; bottom:26px;
  width:230px; height:230px;
  background:url(https://lavoieverte.paris/img/cms/lvv-embleme-or.png) center/contain no-repeat;
  opacity:.06;
  pointer-events:none;
  z-index:0;
}

/* Telephone : la plaque est etroite, le filigrane se fait plus petit. */
@media (max-width:767px){
  body.page-cms #content.page-cms-8 h2{ padding-left:42px !important; }
  body.page-cms #content.page-cms-8 h2::after{
    left:14px; width:19px; height:19px;
  }
  body.page-cms #content::after{
    width:150px; height:150px; right:4px; bottom:18px;
  }
  body.page-cms #content p[style*="letter-spacing:2px"][style*="#88bdb4" i]::before{
    width:28px; height:28px;
  }
}
/* ==== FIN - LA VOIE VERTE : l embleme dans le coin de Miss Bud ==== */

/* ==== DEBUT - LA VOIE VERTE : les ors des guides de Miss Bud - 2026-09-10 ==== */
/* Demande de Florent : le turquoise en or partout dans les guides, developpe
   « le plus et le plus subtilement possible ».

   CE QUI ETAIT DEJA FAIT. La section « le coin de Miss Bud au style de
   l accueil » passe tout #88BDB4 a l or depuis le 2026-09-05, par deux
   regles qui visent la valeur du style en ligne. Mesure du 2026-09-10 sur les
   styles calcules : zero pixel turquoise a l ecran. Mais un seul or, plat,
   partout : chaque puce de liste porte une barre doree pleine, chaque
   citation deux traits pleins.

   LE PRINCIPE DE CETTE SECTION : plus un element revient, plus son or se fait
   leger. Releve sur les 35 pages CMS, 728 occurrences :

     370  barres de puces de liste       -> l or le plus leger, qui s efface
     198  numeros de section « 01 »      -> un or grave, en degrade
      61  filet bas des encadres de tete -> un filet qui s estompe aux bords
      27  barres des rubriques de tableau-> un or adouci, en degrade
      16  filets des citations           -> estompes, et l embleme au centre
      28  losanges de fin de guide       -> deja l embleme (section voisine)

   AUCUNE MISE EN PAGE NE BOUGE. Les bordures gardent leur epaisseur, seule
   leur couleur change ou devient transparente pour laisser voir un degrade
   peint a la meme place. Rien ne se decale d un pixel.

   POUR REVENIR EN ARRIERE : supprimer cette section. On retombe sur l or plat
   de la section « style de l accueil », rien d autre ne bouge. */

body.page-cms{
  --mb-or-rgb:176,141,63;
}

/* --- 1. Les barres de puces : l or qui s efface --------------------------
   370 occurrences, le motif le plus frequent de tous les guides. Une barre
   pleine sur chaque puce faisait une grille d or sur la page. La barre garde
   ses 2 px, mais l or part franc en haut et s efface vers le bas : l oeil
   trouve le debut de chaque puce, la colonne ne pese plus. */
body.page-cms #content li[style*='border-left:2px solid #88bdb4' i]{
  border-left-color:transparent !important;
  border-image:linear-gradient(to bottom, rgba(var(--mb-or-rgb),.78), rgba(var(--mb-or-rgb),.10)) 1 !important;
}

/* --- 2. Les numeros de section : un or grave -----------------------------
   « 01 », « 02 »... 198 fois. Un degrade vertical du clair au fonce, comme
   une lettre doree prise par la lumiere d en haut. Le titre qui suit reste a
   l encre. Sans background-clip:text, le numero garde l or-texte uni de la
   section voisine : aucun risque de numero invisible. */
@supports (-webkit-background-clip:text) or (background-clip:text){
  body.page-cms #content h2 > span[style*='color:#88bdb4' i]{
    background:linear-gradient(to bottom, #D2B269 0%, #B08D3F 52%, #7E6128 100%) !important;
    -webkit-background-clip:text !important;
            background-clip:text !important;
    -webkit-text-fill-color:transparent !important;
    color:transparent !important;
  }
}

/* --- 3. Les encadres de tete : un filet qui s estompe ---------------------
   Le carton ou Miss Bud presente le guide se ferme par un trait de 2 px.
   Il devient un filet plein au centre, fondu aux deux bords — le dessin des
   filets de l accueil. */
body.page-cms #content td[style*='border-bottom:2px solid #88bdb4' i]{
  border-bottom-color:transparent !important;
  background:
    linear-gradient(90deg, rgba(var(--mb-or-rgb),0), rgba(var(--mb-or-rgb),.85) 22%, rgba(var(--mb-or-rgb),.85) 78%, rgba(var(--mb-or-rgb),0)) left bottom/100% 2px no-repeat,
    var(--mb-creme) !important;
}
/* Pourquoi un fond et pas un border-image : les tableaux des guides sont en
   border-collapse:collapse (mesure du 2026-09-10), et dans ce mode le
   border-image ne s applique pas aux cellules. Le filet est donc peint en bas
   du fond, et la creme de la section voisine est reprise dans la meme
   declaration — sinon ce background la remplacerait. */

/* --- 4. Les rubriques de tableau : un or adouci --------------------------
   « Physique », « Psychologique »... La cellule a quatre bordures : un
   border-image les repeindrait toutes. On garde donc la bordure, et on ne
   touche qu a sa couleur gauche, un cran plus doux que l or plein. */
body.page-cms #content td[style*='border-left:3px solid #88bdb4' i]{
  border-left-color:rgba(var(--mb-or-rgb),.72) !important;
}

/* --- 5. Les citations : filets estompes, l embleme au centre -------------
   Seize filets sur huit pages, autour des phrases qu on veut qu on retienne.
   Les deux traits s estompent aux bords ; celui du haut s ouvre au centre
   pour l embleme, petit, a 80 %. Un seul par citation, huit par site : c est
   l endroit ou l embleme est le plus rare, donc le plus lu. */
body.page-cms #content p[style*='font-size:22px'][style*='88bdb4' i]{
  position:relative;
  border-top-color:transparent !important;
  border-bottom-color:transparent !important;
  background:
    linear-gradient(90deg,
      rgba(var(--mb-or-rgb),0) 0%, rgba(var(--mb-or-rgb),.7) 25%,
      rgba(var(--mb-or-rgb),.7) calc(50% - 24px), rgba(var(--mb-or-rgb),0) calc(50% - 24px),
      rgba(var(--mb-or-rgb),0) calc(50% + 24px), rgba(var(--mb-or-rgb),.7) calc(50% + 24px),
      rgba(var(--mb-or-rgb),.7) 75%, rgba(var(--mb-or-rgb),0) 100%) left top/100% 2px no-repeat border-box,
    linear-gradient(90deg, rgba(var(--mb-or-rgb),0), rgba(var(--mb-or-rgb),.7) 25%, rgba(var(--mb-or-rgb),.7) 75%, rgba(var(--mb-or-rgb),0)) left bottom/100% 2px no-repeat border-box !important;
}
/* Les deux filets sont peints en fond, dans la zone des bordures devenues
   transparentes (border-box) : celui du haut s ouvre sur 48 px au centre,
   celui du bas reste entier. L embleme se pose dans l ouverture, sans pastille
   de couleur pour masquer le trait — il n y a pas de trait a masquer. */
body.page-cms #content p[style*='font-size:22px'][style*='88bdb4' i]::before{
  content:"";
  position:absolute;
  left:50%; top:-9px;
  width:20px; height:20px;
  margin-left:-10px;
  background:url(https://lavoieverte.paris/img/cms/lvv-embleme-or.png) center/contain no-repeat;
  opacity:.9;
}

/* --- 5 bis. Les encadres de texte : la barre qui s efface -----------------
   Neuf guides ouvrent un encadre creme a barre gauche de 3 px (fabrication de
   la resine, terpenes, conservation, etiquette d huile, cartouches, entretien,
   vaporisateur, lexique, modes de culture). Meme dessin que les puces, un cran
   plus appuye : c est un encadre, pas une liste — l or tient plus longtemps
   avant de s effacer. Le chapo du hub porte le meme encadre, avec un filet
   d encre #1A2120 que la section voisine avait deja passe a l or : il prend
   le meme degrade. Ce sont des paragraphes, pas des cellules : le
   border-image s y applique. */
body.page-cms #content p[style*='border-left:3px solid #88bdb4' i],
body.page-cms #content p[style*='border-left:3px solid #1A2120' i]{
  border-left-color:transparent !important;
  border-image:linear-gradient(to bottom, rgba(var(--mb-or-rgb),.95), rgba(var(--mb-or-rgb),.22)) 1 !important;
}

/* --- 5 ter. Le hub : le sommaire et son petit filet -----------------------
   Les quatre ancres du sommaire (CHEZ NOUS · COMPRENDRE...) etaient soulignees
   d or plein, plus fort que les liens du texte. Elles passent a l or dilue
   des liens, et s affirment au survol. Le petit filet de 200 px qui ponctue
   le hub s estompe aux deux bouts. */
body.page-cms #content a[style*='border-bottom:1px solid #88bdb4' i]{
  border-bottom-color:rgba(var(--mb-or-rgb),.5) !important;
  transition:border-color .18s ease;
}
body.page-cms #content a[style*='border-bottom:1px solid #88bdb4' i]:hover{
  border-bottom-color:rgba(var(--mb-or-rgb),1) !important;
}
body.page-cms #content p[style*='max-width:200px'][style*='border-top:2px solid #88bdb4' i]{
  border-top-color:transparent !important;
  border-image:linear-gradient(90deg, rgba(var(--mb-or-rgb),0), rgba(var(--mb-or-rgb),.85) 50%, rgba(var(--mb-or-rgb),0)) 1 !important;
}

/* --- 6. Les liens du corps : l or s affirme au survol --------------------
   Soulignes d or dilue (section voisine), ils prennent l or franc au
   passage de la souris. */
body.page-cms #content p a[style*='underline'],
body.page-cms #content li a[style*='underline']{
  transition:border-color .18s ease, color .18s ease;
}
body.page-cms #content p a[style*='underline']:hover,
body.page-cms #content li a[style*='underline']:hover{
  border-bottom-color:rgba(var(--mb-or-rgb),1) !important;
  color:#75591F !important;
}

/* --- 7. La selection de texte --------------------------------------------
   Surligner une phrase pour la copier la teinte d un or tres dilue au lieu
   du bleu du systeme. Personne ne le cherche, tout le monde le voit. */
body.page-cms #content ::selection{
  background:rgba(var(--mb-or-rgb),.24);
  color:#1A2120;
}

@media (prefers-reduced-motion:reduce){
  body.page-cms #content p a[style*='underline'],
  body.page-cms #content li a[style*='underline']{ transition:none; }
}
/* ==== FIN - LA VOIE VERTE : les ors des guides de Miss Bud ==== */

/* ==== DEBUT - LA VOIE VERTE : l or de Miss Bud sur les fiches et au panier - 2026-09-10 ==== */
/* Suite des « ors des guides de Miss Bud ». Mesure du 2026-09-10 sur les styles
   calcules : hors des pages CMS, le turquoise #88BDB4 de l ancienne charte
   s affiche encore a trois endroits, et nulle part ailleurs.

     1. l encart « Le coin de Miss Bud » dans les descriptions produit
        (table.mb-ap, gabarit de la maison) : barre gauche de 3 px ;
     2. le bloc « Pour aller voir » des fiches (.lvv-pl, champ Style d un bloc
        HTML Box, 61 761 signes) : barres de puces de 2 px ;
     3. les offres du panier (#lvv-offres, section plus haut dans cette
        feuille) : filet bas des cartes, barre gauche de l encart de palier.

   Les autres turquoises comptes par la mesure sont invisibles — une couleur
   de texte heritee par des images et des liens sans texte — et ne sont pas
   touches.

   MEME VOCABULAIRE QUE LES GUIDES : l or s efface quand il revient, les
   sur-titres prennent l or-texte, les liens un souligne d or dilue qui
   s affirme au survol. Aucune mise en page ne bouge.

   POUR REVENIR EN ARRIERE : supprimer cette section. */

/* --- 1. L encart de Miss Bud dans les descriptions ------------------------
   Une seule par fiche. Le tableau est en border-collapse (style en ligne) :
   pas de border-image possible sur la cellule, et une bordure transparente y
   laisserait voir le vert de la page. La barre reste donc pleine, passee a
   l or un cran adouci — c est l unique accent de la carte. Le lien de
   l encart porte deja un souligne brun impose par une autre regle : le
   souligne d or demande !important pour passer devant. */
body#product #description table.mb-ap td.mb-ap-i{
  border-left-color:rgba(176,141,63,.85) !important;
}
body#product #description table.mb-ap td.mb-ap-t p:first-child{
  color:#75591F !important;
}
body#product #description table.mb-ap td.mb-ap-t a{
  text-decoration:none !important;
  border-bottom:1px solid rgba(176,141,63,.55) !important;
  transition:border-color .18s ease;
}
body#product #description table.mb-ap td.mb-ap-t a:hover{
  border-bottom-color:rgba(176,141,63,1) !important;
}

/* --- 2. Le bloc « Pour aller voir » des fiches ----------------------------
   Meme dessin que les puces des guides : l or franc en haut, qui s efface. */
body#product .lvv-pl li{
  border-left-color:transparent !important;
  border-image:linear-gradient(to bottom, rgba(176,141,63,.78), rgba(176,141,63,.10)) 1 !important;
}
body#product .lvv-pl p.lvv-pl-t{
  color:#75591F !important;
}
body#product .lvv-pl a{
  text-decoration-color:rgba(176,141,63,.6) !important;
  text-underline-offset:3px;
  transition:text-decoration-color .18s ease, color .18s ease;
}
body#product .lvv-pl a:hover{
  text-decoration-color:rgba(176,141,63,1) !important;
  color:#75591F !important;
}

/* --- 3. Les offres du panier ----------------------------------------------
   Des cartes creme empilees : le filet bas s estompe aux deux bords, comme
   les filets de l accueil ; l encart de palier garde sa barre, qui s efface
   vers le bas. Ce sont des div, le border-image s y applique. */
#lvv-offres .lvv-offre{
  border-bottom-color:transparent !important;
  border-image:linear-gradient(90deg, rgba(176,141,63,0), rgba(176,141,63,.8) 18%, rgba(176,141,63,.8) 82%, rgba(176,141,63,0)) 1 !important;
}
#lvv-offres .lvv-offre-palier{
  border-left-color:transparent !important;
  border-image:linear-gradient(to bottom, rgba(176,141,63,.95), rgba(176,141,63,.25)) 1 !important;
}

@media (prefers-reduced-motion:reduce){
  body#product #description table.mb-ap td.mb-ap-t a,
  body#product .lvv-pl a{ transition:none; }
}
/* ==== FIN - LA VOIE VERTE : l or de Miss Bud sur les fiches et au panier ==== */

/* ==== DEBUT - LA VOIE VERTE : les plaques qui ne s affichaient pas - 2026-09-10 ====
   Cahier d harmonie v3, chantier 1 (presta LVV/harmonie-visuelle-2026-09-10/).

   La plaque gravee et son embleme etaient prevus pour quatre gabarits, mais leurs
   selecteurs visaient une balise que la page ne sert pas :
     Nouveautes, Meilleures ventes, Promotions : la regle attend
       #js-product-list-header .h1 ; la page sert h2#js-product-list-header.h2
     Marques : la regle attend body#manufacturer .page-header h1 ; la page sert #main > h1
     Fiches, produits similaires : .featured-products .products-section-title ;
       la page sert section.featured-products > h2
     Fiches, accessoires : .product-accessories .products-section-title ;
       la page sert section.product-accessories > p.h5
   Resultat visible avant : titre de 26 px sur filet gris, titre colle au bord gauche,
   Marcellus forcee a 800 (faux gras).

   CE QUI EST POSE : les declarations deja en ligne (grande plaque, petite plaque,
   embleme, variantes telephone), recopiees A L IDENTIQUE sur le selecteur reel.
   Aucune valeur neuve. Genere depuis lvv.css?v=28 servi, par un script
   (harmonie-visuelle-2026-09-10/essai/essai.py, fonction regles + REMAP).

   POUR REVENIR EN ARRIERE : supprimer cette section.
   ==================================================================== */
body#new-products h2#js-product-list-header,
body#best-sales h2#js-product-list-header,
body#prices-drop h2#js-product-list-header,
body#manufacturer #main > h1{position:relative !important;
  display:block !important;
  width:-webkit-fit-content !important;
  width:fit-content !important;
  max-width:100% !important;
  box-sizing:border-box !important;
  margin:40px auto 38px auto !important;
  padding:30px 84px 32px 84px !important;
  font-family:Marcellus,Georgia,serif !important;
  font-weight:400 !important;
  font-size:38px !important;
  line-height:1.16 !important;
  text-align:center !important;
  text-transform:uppercase !important;
  letter-spacing:.24em !important;
  text-indent:.24em !important;
  color:#F7F2E4 !important;
  text-shadow:0 1px 0 rgba(0,0,0,.6), 0 0 26px rgba(224,197,126,.14) !important;
  background:
    repeating-linear-gradient(45deg,rgba(255,255,255,.016) 0 2px,rgba(0,0,0,0) 2px 4px),
    radial-gradient(130% 170% at 50% -10%,rgba(255,255,255,.085),rgba(255,255,255,0) 58%),
    linear-gradient(#2E4629,#182616) !important;
  border:3px solid #B08D3F !important;
  border-image:linear-gradient(148deg,#F6E7BC 0%,#C39B49 24%,#7A5C21 47%,#EFDCA8 68%,#B0873A 86%,#6E521D 100%) 1 !important;
  box-shadow:inset 0 0 0 1px rgba(0,0,0,.5), inset 0 0 74px rgba(0,0,0,.48), 0 16px 38px rgba(26,33,32,.2) !important;}
body#new-products h2#js-product-list-header::after,
body#best-sales h2#js-product-list-header::after,
body#prices-drop h2#js-product-list-header::after,
body#manufacturer #main > h1::after{content:'';
  position:absolute;
  left:10px; right:10px; top:10px; bottom:10px;
  pointer-events:none;
  border:1px solid rgba(238,215,158,.62);
  outline:1px solid rgba(238,215,158,.2);
  outline-offset:3px;
  background:
    linear-gradient(#EFDCA8,#EFDCA8) left 0 top 0/22px 2px no-repeat,
    linear-gradient(#EFDCA8,#EFDCA8) left 0 top 0/2px 22px no-repeat,
    linear-gradient(#EFDCA8,#EFDCA8) right 0 top 0/22px 2px no-repeat,
    linear-gradient(#EFDCA8,#EFDCA8) right 0 top 0/2px 22px no-repeat,
    linear-gradient(#EFDCA8,#EFDCA8) left 0 bottom 0/22px 2px no-repeat,
    linear-gradient(#EFDCA8,#EFDCA8) left 0 bottom 0/2px 22px no-repeat,
    linear-gradient(#EFDCA8,#EFDCA8) right 0 bottom 0/22px 2px no-repeat,
    linear-gradient(#EFDCA8,#EFDCA8) right 0 bottom 0/2px 22px no-repeat;}
body#product section.featured-products > h2,
body#product section.product-accessories > p.h5{position:relative !important;
  display:block !important;
  width:-webkit-fit-content !important;
  width:fit-content !important;
  max-width:100% !important;
  box-sizing:border-box !important;
  margin:34px auto 26px auto !important;
  padding:15px 44px 16px 44px !important;
  font-family:Marcellus,Georgia,serif !important;
  font-weight:400 !important;
  font-size:22px !important;
  line-height:1.2 !important;
  text-align:center !important;
  text-transform:uppercase !important;
  letter-spacing:.2em !important;
  text-indent:.2em !important;
  color:#F7F2E4 !important;
  text-shadow:0 1px 0 rgba(0,0,0,.55) !important;
  background:
    radial-gradient(130% 180% at 50% -10%,rgba(255,255,255,.075),rgba(255,255,255,0) 60%),
    linear-gradient(#2E4629,#182616) !important;
  border:2px solid #B08D3F !important;
  border-image:linear-gradient(148deg,#F6E7BC 0%,#C39B49 24%,#7A5C21 47%,#EFDCA8 68%,#B0873A 86%,#6E521D 100%) 1 !important;
  box-shadow:inset 0 0 0 1px rgba(0,0,0,.45), inset 0 0 40px rgba(0,0,0,.4), 0 10px 24px rgba(26,33,32,.16) !important;}
body#product section.featured-products > h2::after,
body#product section.product-accessories > p.h5::after{content:'';
  position:absolute;
  left:6px; right:6px; top:6px; bottom:6px;
  pointer-events:none;
  border:1px solid rgba(238,215,158,.5);}
@media (max-width:767px){
body#new-products h2#js-product-list-header,
body#best-sales h2#js-product-list-header,
body#prices-drop h2#js-product-list-header,
body#manufacturer #main > h1{margin:26px auto 26px auto !important;
    max-width:calc(100% - 26px) !important;
    padding:18px 26px 20px 26px !important;
    font-size:21px !important;
    letter-spacing:.16em !important;
    text-indent:.16em !important;
    border-width:2px !important;
    box-shadow:inset 0 0 0 1px rgba(0,0,0,.5), inset 0 0 44px rgba(0,0,0,.45), 0 10px 24px rgba(26,33,32,.18) !important;}
}
@media (max-width:767px){
body#new-products h2#js-product-list-header::after,
body#best-sales h2#js-product-list-header::after,
body#prices-drop h2#js-product-list-header::after,
body#manufacturer #main > h1::after{left:7px; right:7px; top:7px; bottom:7px;
    outline-offset:2px;
    background:
    linear-gradient(#EFDCA8,#EFDCA8) left 0 top 0/14px 2px no-repeat,
    linear-gradient(#EFDCA8,#EFDCA8) left 0 top 0/2px 14px no-repeat,
    linear-gradient(#EFDCA8,#EFDCA8) right 0 top 0/14px 2px no-repeat,
    linear-gradient(#EFDCA8,#EFDCA8) right 0 top 0/2px 14px no-repeat,
    linear-gradient(#EFDCA8,#EFDCA8) left 0 bottom 0/14px 2px no-repeat,
    linear-gradient(#EFDCA8,#EFDCA8) left 0 bottom 0/2px 14px no-repeat,
    linear-gradient(#EFDCA8,#EFDCA8) right 0 bottom 0/14px 2px no-repeat,
    linear-gradient(#EFDCA8,#EFDCA8) right 0 bottom 0/2px 14px no-repeat;}
}
@media (max-width:767px){
body#product section.featured-products > h2,
body#product section.product-accessories > p.h5{margin:26px auto 20px auto !important;
    max-width:calc(100% - 26px) !important;
    padding:12px 24px 13px 24px !important;
    font-size:16px !important;
    letter-spacing:.16em !important;
    text-indent:.16em !important;}
}
@media (max-width:767px){
body#product section.featured-products > h2::after,
body#product section.product-accessories > p.h5::after{left:5px; right:5px; top:5px; bottom:5px;}
}
body#new-products h2#js-product-list-header::before,
body#best-sales h2#js-product-list-header::before,
body#prices-drop h2#js-product-list-header::before,
body#manufacturer #main > h1::before{content:'' !important;
  display:block !important;
  width:49.75px !important;
  height:49px !important;
  margin:0 auto 14px auto !important;
  text-indent:0 !important;
  background-image:url(/img/la-voie-verte-web-logo-17885604203.jpg) !important;
  background-repeat:no-repeat !important;
  background-size:125px auto !important;
  background-position:-1.75px -0.75px !important;}
body#product section.featured-products > h2::before,
body#product section.product-accessories > p.h5::before{content:'' !important;
  display:block !important;
  width:28.43px !important;
  height:28px !important;
  margin:0 auto 9px auto !important;
  text-indent:0 !important;
  background-image:url(/img/la-voie-verte-web-logo-17885604203.jpg) !important;
  background-repeat:no-repeat !important;
  background-size:71.43px auto !important;
  background-position:-1px -0.43px !important;}
@media (max-width:767px){
body#new-products h2#js-product-list-header::before,
body#best-sales h2#js-product-list-header::before,
body#prices-drop h2#js-product-list-header::before,
body#manufacturer #main > h1::before{width:33.17px !important;
    height:32.67px !important;
    margin:0 auto 10px auto !important;
    background-size:83.33px auto !important;
    background-position:-1.17px -0.5px !important;}
}
@media (max-width:767px){
body#product section.featured-products > h2::before,
body#product section.product-accessories > p.h5::before{width:22.11px !important;
    height:21.78px !important;
    margin:0 auto 7px auto !important;
    background-size:55.56px auto !important;
    background-position:-0.78px -0.33px !important;}
}
/* ==== FIN - LA VOIE VERTE : les plaques qui ne s affichaient pas ==== */

/* ==== DEBUT - LA VOIE VERTE : champs, boutons, encre et bas des fiches - 2026-09-11 ====
   Cahier d harmonie v3, chantiers 2, 3 et 4 (presta LVV/harmonie-visuelle-2026-09-10/).
   Essaye en direct avant pose (essai/essai_234.py). Aucun HTML touche.

   1. CHAMPS : contact, connexion, quantite des fiches. Fond creme, filet or,
      contour vert au clavier. Libelles du contact au-dessus du champ.
   2. BOUTONS : trois tailles. Principal 44 px VERT pour toute action (decide
      par Florent le 2026-09-10) : ajouter au panier, envoyer, se connecter,
      commander. Cette section passe apres  l or du theme , qui met .btn-primary
      en or : elle rend le vert aux boutons d action. Secondaire 36 px au contour.
   3. ENCRE ET TYPOGRAPHIE DU GABARIT MAISON DES FICHES (classes sb-).
      Le gabarit est servi en ligne dans chaque fiche, prefixe
      body#product.product-id-category-N #description, en Helvetica et en encre
      brune #4A3B2A. Les rayons et produits de FABRICANT gardent leur police
      (decision du 2026-08-16) : ils sont exclus par une chaine de :not().
        rayons   53 Katalyzer, 271 PAX, 272 DynaVap, 273 Arizer, 274 Puffco,
                 276 Storz et Bickel
        produits 186, 2203, 2233, 2497, 2695, 2696 (fiches de marque rangees
                 hors de leur rayon)
      Specificite : 2 identifiants et 13 classes, devant les 2 identifiants et
      2 classes des regles en ligne ; !important des deux cotes.
      Titres et chiffres en Marcellus 400, libelles en Source Sans 600, texte en
      Source Sans 400. Encre #1A2120, mentions en encre douce a 72 %.
      Les tailles ne bougent pas.
      Hors classes sb- : paragraphes, listes et tableaux des descriptions en
      encre, liens en or du theme, sur les fiches ET les rayons maison (rayons
      de fabricant exclus). Mentions des listes de produits en encre douce.
   4. TITRES DU THEME SUR LES FICHES : Description, Plus de details,
      Caracteristiques, Documents joints etaient en Marcellus forcee a 800
      (faux gras). Marcellus 400, 26 px, filet or. Intertitres des descriptions
      ramenes a 24 px.
   5. REASSURANCE (fiche et panier) : le dessin du pied de page sur fond clair.
      Icones masquees, libelle en petites capitales or fonce, filets or, plus de
      retrait de 40 px.

   POUR REVENIR EN ARRIERE : supprimer cette section.
   ==================================================================== */

/* ---- 1. Les champs ---------------------------------------------------- */
body#contact .contact-form .form-control,
body#authentication .form-control,
body#product #quantity_wanted{
  background:#FFFEFA !important;
  border:1px solid rgba(176,141,63,.55) !important;
  border-radius:2px !important;
  box-shadow:none !important;
  color:#1A2120 !important;
  font-size:15px !important;
  height:44px !important;
}
body#contact .contact-form textarea.form-control{height:auto !important;min-height:120px !important}
body#contact .contact-form .form-control:focus,
body#authentication .form-control:focus,
body#product #quantity_wanted:focus{
  border-color:#2E4A32 !important;box-shadow:0 0 0 3px rgba(46,74,50,.18) !important;outline:none !important;
}
body#contact .contact-form .form-group.row > [class*=col-]{
  float:none !important;width:100% !important;max-width:560px !important;margin-left:0 !important;
}
body#contact .contact-form .form-control-label{
  text-align:left !important;padding-bottom:6px !important;
  font:600 11px/1.3 "Source Sans Pro",sans-serif !important;letter-spacing:.14em !important;
  text-transform:uppercase !important;color:#75591F !important;
}
body#contact .contact-form .form-control-comment{
  display:inline !important;padding:0 !important;font-size:13px !important;color:rgba(26,33,32,.62) !important;
}
body#contact .contact-form h3{
  font:400 28px/1.2 Marcellus,Georgia,serif !important;text-transform:none !important;
  letter-spacing:.03em !important;color:#2E4A32 !important;margin:0 0 10px !important;
}
body#contact .contact-form h3::after{content:'';display:block;width:34px;height:1px;background:#B08D3F;margin-top:12px}
body#contact .contact-form{background:#FCFBF7 !important;padding:28px 32px !important;border:0 !important;
  box-shadow:0 10px 26px -16px rgba(24,38,22,.45) !important}
body#contact .bootstrap-filestyle label.btn{
  background:transparent !important;color:#2E4A32 !important;border:1px solid #2E4A32 !important;
  border-radius:2px !important;height:44px !important;line-height:42px !important;padding:0 16px !important;
  font:600 11.5px/42px "Source Sans Pro",sans-serif !important;letter-spacing:.12em !important;
}
body#contact .bootstrap-filestyle .form-control{border-right:0 !important}
body#contact #left-column{padding-left:32px !important}
body#contact .contact-rich{background:#FCFBF7;padding:20px 22px;box-shadow:0 10px 26px -16px rgba(24,38,22,.45)}
body#contact .contact-rich h4{font:600 11px/1.3 "Source Sans Pro",sans-serif !important;letter-spacing:.16em !important;
  text-transform:uppercase !important;color:#75591F !important;margin-bottom:14px !important}
body#contact .contact-rich .icon i{color:#B08D3F !important}
body#contact .contact-rich hr{border-color:rgba(176,141,63,.35) !important}
body#contact .contact-rich .data,body#contact .contact-rich .data.email{font-size:15px !important;color:#1A2120 !important}
body#contact .contact-rich a{color:#75591F !important;text-decoration:none !important;border-bottom:1px solid rgba(176,141,63,.55)}
@media (max-width:767px){
  body#contact #left-column{padding-left:15px !important}
  body#contact .contact-form{padding:20px 16px !important}
  body#contact .contact-form h3{font-size:24px !important;white-space:nowrap !important}
  body#contact .bootstrap-filestyle{display:block !important;width:100% !important;max-width:100% !important}
  body#contact .bootstrap-filestyle .form-control{display:none !important}
  body#contact .bootstrap-filestyle .group-span-filestyle,
  body#contact .bootstrap-filestyle label.btn{display:block !important;width:100% !important;text-align:center !important}
  body#contact input.filestyle{max-width:100% !important}
  body#contact .contact-form .form-control-comment{display:block !important;padding:6px 0 0 !important}
}

/* ---- 2. Les boutons --------------------------------------------------- */
body#product .btn-primary.add-to-cart,
body#contact .contact-form .form-footer .btn-primary,
body#authentication #submit-login,
body#cart .checkout .btn-primary{
  height:44px !important;padding:0 24px !important;border-radius:2px !important;
  font:600 12.5px/42px "Source Sans Pro",sans-serif !important;letter-spacing:.14em !important;
  background:#2E4A32 !important;border:1px solid #2E4A32 !important;color:#FCFBF7 !important;
}
body#product .btn-primary.add-to-cart:hover,
body#contact .contact-form .form-footer .btn-primary:hover,
body#authentication #submit-login:hover,
body#cart .checkout .btn-primary:not(.disabled):hover{background:#182616 !important;border-color:#182616 !important}
body#product #ocs_btn_open_modal,
body#authentication .input-group-btn .btn{
  height:36px !important;line-height:34px !important;padding:0 14px !important;border-radius:2px !important;
  background:transparent !important;color:#2E4A32 !important;border:1px solid #2E4A32 !important;
  font:600 11px/34px "Source Sans Pro",sans-serif !important;letter-spacing:.12em !important;
}

/* ---- 3. Encre et typographie du gabarit maison des fiches ------------- */
body#product:not(.product-id-category-53):not(.product-id-category-271):not(.product-id-category-272):not(.product-id-category-273):not(.product-id-category-274):not(.product-id-category-276):not(.product-id-186):not(.product-id-2203):not(.product-id-2233):not(.product-id-2497):not(.product-id-2695):not(.product-id-2696) #description .sb-titre,
body#product:not(.product-id-category-53):not(.product-id-category-271):not(.product-id-category-272):not(.product-id-category-273):not(.product-id-category-274):not(.product-id-category-276):not(.product-id-186):not(.product-id-2203):not(.product-id-2233):not(.product-id-2497):not(.product-id-2695):not(.product-id-2696) #description .sb-nom,
body#product:not(.product-id-category-53):not(.product-id-category-271):not(.product-id-category-272):not(.product-id-category-273):not(.product-id-category-274):not(.product-id-category-276):not(.product-id-186):not(.product-id-2203):not(.product-id-2233):not(.product-id-2497):not(.product-id-2695):not(.product-id-2696) #description .sb-cle-v,
body#product:not(.product-id-category-53):not(.product-id-category-271):not(.product-id-category-272):not(.product-id-category-273):not(.product-id-category-274):not(.product-id-category-276):not(.product-id-186):not(.product-id-2203):not(.product-id-2233):not(.product-id-2497):not(.product-id-2695):not(.product-id-2696) #description .sb-carte-n{
  font-family:Marcellus,Georgia,serif !important;font-weight:400 !important;
}
body#product:not(.product-id-category-53):not(.product-id-category-271):not(.product-id-category-272):not(.product-id-category-273):not(.product-id-category-274):not(.product-id-category-276):not(.product-id-186):not(.product-id-2203):not(.product-id-2233):not(.product-id-2497):not(.product-id-2695):not(.product-id-2696) #description .sb-sur,
body#product:not(.product-id-category-53):not(.product-id-category-271):not(.product-id-category-272):not(.product-id-category-273):not(.product-id-category-274):not(.product-id-category-276):not(.product-id-186):not(.product-id-2203):not(.product-id-2233):not(.product-id-2497):not(.product-id-2695):not(.product-id-2696) #description .sb-badge,
body#product:not(.product-id-category-53):not(.product-id-category-271):not(.product-id-category-272):not(.product-id-category-273):not(.product-id-category-274):not(.product-id-category-276):not(.product-id-186):not(.product-id-2203):not(.product-id-2233):not(.product-id-2497):not(.product-id-2695):not(.product-id-2696) #description .sb-cle-l,
body#product:not(.product-id-category-53):not(.product-id-category-271):not(.product-id-category-272):not(.product-id-category-273):not(.product-id-category-274):not(.product-id-category-276):not(.product-id-186):not(.product-id-2203):not(.product-id-2233):not(.product-id-2497):not(.product-id-2695):not(.product-id-2696) #description .sb-th,
body#product:not(.product-id-category-53):not(.product-id-category-271):not(.product-id-category-272):not(.product-id-category-273):not(.product-id-category-274):not(.product-id-category-276):not(.product-id-186):not(.product-id-2203):not(.product-id-2233):not(.product-id-2497):not(.product-id-2695):not(.product-id-2696) #description .sb-cmp-th,
body#product:not(.product-id-category-53):not(.product-id-category-271):not(.product-id-category-272):not(.product-id-category-273):not(.product-id-category-274):not(.product-id-category-276):not(.product-id-186):not(.product-id-2203):not(.product-id-2233):not(.product-id-2497):not(.product-id-2695):not(.product-id-2696) #description .sb-carte-p,
body#product:not(.product-id-category-53):not(.product-id-category-271):not(.product-id-category-272):not(.product-id-category-273):not(.product-id-category-274):not(.product-id-category-276):not(.product-id-186):not(.product-id-2203):not(.product-id-2233):not(.product-id-2497):not(.product-id-2695):not(.product-id-2696) #description .sb-faq-q{
  font-family:"Source Sans Pro","Helvetica Neue",Arial,sans-serif !important;font-weight:600 !important;
}
body#product:not(.product-id-category-53):not(.product-id-category-271):not(.product-id-category-272):not(.product-id-category-273):not(.product-id-category-274):not(.product-id-category-276):not(.product-id-186):not(.product-id-2203):not(.product-id-2233):not(.product-id-2497):not(.product-id-2695):not(.product-id-2696) #description .sb-chapo,
body#product:not(.product-id-category-53):not(.product-id-category-271):not(.product-id-category-272):not(.product-id-category-273):not(.product-id-category-274):not(.product-id-category-276):not(.product-id-186):not(.product-id-2203):not(.product-id-2233):not(.product-id-2497):not(.product-id-2695):not(.product-id-2696) #description .sb-p,
body#product:not(.product-id-category-53):not(.product-id-category-271):not(.product-id-category-272):not(.product-id-category-273):not(.product-id-category-274):not(.product-id-category-276):not(.product-id-186):not(.product-id-2203):not(.product-id-2233):not(.product-id-2497):not(.product-id-2695):not(.product-id-2696) #description .sb-li,
body#product:not(.product-id-category-53):not(.product-id-category-271):not(.product-id-category-272):not(.product-id-category-273):not(.product-id-category-274):not(.product-id-category-276):not(.product-id-186):not(.product-id-2203):not(.product-id-2233):not(.product-id-2497):not(.product-id-2695):not(.product-id-2696) #description .sb-note,
body#product:not(.product-id-category-53):not(.product-id-category-271):not(.product-id-category-272):not(.product-id-category-273):not(.product-id-category-274):not(.product-id-category-276):not(.product-id-186):not(.product-id-2203):not(.product-id-2233):not(.product-id-2497):not(.product-id-2695):not(.product-id-2696) #description .sb-pd,
body#product:not(.product-id-category-53):not(.product-id-category-271):not(.product-id-category-272):not(.product-id-category-273):not(.product-id-category-274):not(.product-id-category-276):not(.product-id-186):not(.product-id-2203):not(.product-id-2233):not(.product-id-2497):not(.product-id-2695):not(.product-id-2696) #description .sb-cmp-td,
body#product:not(.product-id-category-53):not(.product-id-category-271):not(.product-id-category-272):not(.product-id-category-273):not(.product-id-category-274):not(.product-id-category-276):not(.product-id-186):not(.product-id-2203):not(.product-id-2233):not(.product-id-2497):not(.product-id-2695):not(.product-id-2696) #description .sb-legl,
body#product:not(.product-id-category-53):not(.product-id-category-271):not(.product-id-category-272):not(.product-id-category-273):not(.product-id-category-274):not(.product-id-category-276):not(.product-id-186):not(.product-id-2203):not(.product-id-2233):not(.product-id-2497):not(.product-id-2695):not(.product-id-2696) #description .sb-legd,
body#product:not(.product-id-category-53):not(.product-id-category-271):not(.product-id-category-272):not(.product-id-category-273):not(.product-id-category-274):not(.product-id-category-276):not(.product-id-186):not(.product-id-2203):not(.product-id-2233):not(.product-id-2497):not(.product-id-2695):not(.product-id-2696) #description .sb-carte-g{
  font-family:"Source Sans Pro","Helvetica Neue",Arial,sans-serif !important;
}
body#product:not(.product-id-category-53):not(.product-id-category-271):not(.product-id-category-272):not(.product-id-category-273):not(.product-id-category-274):not(.product-id-category-276):not(.product-id-186):not(.product-id-2203):not(.product-id-2233):not(.product-id-2497):not(.product-id-2695):not(.product-id-2696) #description .sb-chapo,
body#product:not(.product-id-category-53):not(.product-id-category-271):not(.product-id-category-272):not(.product-id-category-273):not(.product-id-category-274):not(.product-id-category-276):not(.product-id-186):not(.product-id-2203):not(.product-id-2233):not(.product-id-2497):not(.product-id-2695):not(.product-id-2696) #description .sb-p,
body#product:not(.product-id-category-53):not(.product-id-category-271):not(.product-id-category-272):not(.product-id-category-273):not(.product-id-category-274):not(.product-id-category-276):not(.product-id-186):not(.product-id-2203):not(.product-id-2233):not(.product-id-2497):not(.product-id-2695):not(.product-id-2696) #description .sb-li,
body#product:not(.product-id-category-53):not(.product-id-category-271):not(.product-id-category-272):not(.product-id-category-273):not(.product-id-category-274):not(.product-id-category-276):not(.product-id-186):not(.product-id-2203):not(.product-id-2233):not(.product-id-2497):not(.product-id-2695):not(.product-id-2696) #description .sb-note,
body#product:not(.product-id-category-53):not(.product-id-category-271):not(.product-id-category-272):not(.product-id-category-273):not(.product-id-category-274):not(.product-id-category-276):not(.product-id-186):not(.product-id-2203):not(.product-id-2233):not(.product-id-2497):not(.product-id-2695):not(.product-id-2696) #description .sb-pd,
body#product:not(.product-id-category-53):not(.product-id-category-271):not(.product-id-category-272):not(.product-id-category-273):not(.product-id-category-274):not(.product-id-category-276):not(.product-id-186):not(.product-id-2203):not(.product-id-2233):not(.product-id-2497):not(.product-id-2695):not(.product-id-2696) #description .sb-cmp-td{
  color:#1A2120 !important;
}
body#product:not(.product-id-category-53):not(.product-id-category-271):not(.product-id-category-272):not(.product-id-category-273):not(.product-id-category-274):not(.product-id-category-276):not(.product-id-186):not(.product-id-2203):not(.product-id-2233):not(.product-id-2497):not(.product-id-2695):not(.product-id-2696) #description .sb-sur,
body#product:not(.product-id-category-53):not(.product-id-category-271):not(.product-id-category-272):not(.product-id-category-273):not(.product-id-category-274):not(.product-id-category-276):not(.product-id-186):not(.product-id-2203):not(.product-id-2233):not(.product-id-2497):not(.product-id-2695):not(.product-id-2696) #description .sb-cle-l,
body#product:not(.product-id-category-53):not(.product-id-category-271):not(.product-id-category-272):not(.product-id-category-273):not(.product-id-category-274):not(.product-id-category-276):not(.product-id-186):not(.product-id-2203):not(.product-id-2233):not(.product-id-2497):not(.product-id-2695):not(.product-id-2696) #description .sb-legl,
body#product:not(.product-id-category-53):not(.product-id-category-271):not(.product-id-category-272):not(.product-id-category-273):not(.product-id-category-274):not(.product-id-category-276):not(.product-id-186):not(.product-id-2203):not(.product-id-2233):not(.product-id-2497):not(.product-id-2695):not(.product-id-2696) #description .sb-legd,
body#product:not(.product-id-category-53):not(.product-id-category-271):not(.product-id-category-272):not(.product-id-category-273):not(.product-id-category-274):not(.product-id-category-276):not(.product-id-186):not(.product-id-2203):not(.product-id-2233):not(.product-id-2497):not(.product-id-2695):not(.product-id-2696) #description .sb-carte-g{
  color:rgba(26,33,32,.72) !important;
}
/* Le texte courant hors classes sb- : la  Feuille nettoyee le 2026-08-19
   (servie en tete et dans le corps) force #4A3B2A !important sur
   #description p/li/a, .product-description p/li/a, .product-features dd,
   .tax-shipping-delivery-label et les liens des pieces jointes ; le bloc
    fin de fiche produit  le force sur la derniere colonne des tableaux.
   :not([class]) laisse aux classes de gabarit la couleur qu elles portent. */
body#product:not(.product-id-category-53):not(.product-id-category-271):not(.product-id-category-272):not(.product-id-category-273):not(.product-id-category-274):not(.product-id-category-276):not(.product-id-186):not(.product-id-2203):not(.product-id-2233):not(.product-id-2497):not(.product-id-2695):not(.product-id-2696) .product-description p:not([class]),
body#product:not(.product-id-category-53):not(.product-id-category-271):not(.product-id-category-272):not(.product-id-category-273):not(.product-id-category-274):not(.product-id-category-276):not(.product-id-186):not(.product-id-2203):not(.product-id-2233):not(.product-id-2497):not(.product-id-2695):not(.product-id-2696) .product-description li:not([class]),
body#product:not(.product-id-category-53):not(.product-id-category-271):not(.product-id-category-272):not(.product-id-category-273):not(.product-id-category-274):not(.product-id-category-276):not(.product-id-186):not(.product-id-2203):not(.product-id-2233):not(.product-id-2497):not(.product-id-2695):not(.product-id-2696) #description .product-description > table:not([class]) tr > :last-child,
body#product:not(.product-id-category-53):not(.product-id-category-271):not(.product-id-category-272):not(.product-id-category-273):not(.product-id-category-274):not(.product-id-category-276):not(.product-id-186):not(.product-id-2203):not(.product-id-2233):not(.product-id-2497):not(.product-id-2695):not(.product-id-2696) #description .sb-carte-n a{
  color:#1A2120 !important;
}
body#product:not(.product-id-category-53):not(.product-id-category-271):not(.product-id-category-272):not(.product-id-category-273):not(.product-id-category-274):not(.product-id-category-276):not(.product-id-186):not(.product-id-2203):not(.product-id-2233):not(.product-id-2497):not(.product-id-2695):not(.product-id-2696) .product-description a:not([class]){
  color:#75591F !important;
}
body#product:not(.product-id-category-53):not(.product-id-category-271):not(.product-id-category-272):not(.product-id-category-273):not(.product-id-category-274):not(.product-id-category-276):not(.product-id-186):not(.product-id-2203):not(.product-id-2233):not(.product-id-2497):not(.product-id-2695):not(.product-id-2696) #description .sb-carte-n a{
  font-weight:400 !important;
}
body#product .product-features dd,
body#product .product-features .value{color:#1A2120 !important}
body#product .product-prices .tax-shipping-delivery-label{color:rgba(26,33,32,.72) !important}
body#product .product-attachments a,
body#product .attachment a{color:#75591F !important}

/* Les rayons maison : meme regle, rayons de fabricant exclus (leur gris est
   celui de la marque). Les mentions des listes (nombre de produits, Trier
   par, Affichage 1-21) passent en encre douce sur toutes les listes. */
body#category:not(.category-id-53):not(.category-id-271):not(.category-id-272):not(.category-id-273):not(.category-id-274):not(.category-id-276) #category-description p:not([class]),
body#category:not(.category-id-53):not(.category-id-271):not(.category-id-272):not(.category-id-273):not(.category-id-274):not(.category-id-276) #category-description li:not([class]),
body#category:not(.category-id-53):not(.category-id-271):not(.category-id-272):not(.category-id-273):not(.category-id-274):not(.category-id-276) #category-description .sb-note{
  color:#1A2120 !important;
}
body#category:not(.category-id-53):not(.category-id-271):not(.category-id-272):not(.category-id-273):not(.category-id-274):not(.category-id-276) #category-description a:not([class]){
  color:#75591F !important;
}
body #js-product-list-top p,
body #js-product-list-top .sort-by-row > span,
body #js-product-list .pagination .col-md-4{color:rgba(26,33,32,.72) !important}

/* ---- 4. Les titres du theme sur les fiches : plus de faux gras -------- */
body#product #product_tabs_block .tabs > h3,
body#product #tab-content > h3,
body#product section.product-features > p.h6{
  font-family:Marcellus,Georgia,serif !important;font-weight:400 !important;font-size:26px !important;
  letter-spacing:.04em !important;text-transform:none !important;color:#2E4A32 !important;text-align:center !important;
}
body#product #product_tabs_block .tabs > h3::after,
body#product #tab-content > h3::after,
body#product section.product-features > p.h6::after{
  content:'';display:block;width:34px;height:1px;background:#B08D3F;margin:12px auto 0;
}
body#product #description .product-description h2,
body#product #description .product-description h3{font-size:24px !important}

/* ---- 5. La reassurance ------------------------------------------------ */
body#product .blockreassurance_product,
body#cart .blockreassurance_product{margin-left:0 !important;padding-left:0 !important}
body#product .blockreassurance_product img,
body#cart .blockreassurance_product img,
body#product .blockreassurance_product .item-product,
body#cart .blockreassurance_product .item-product{display:none !important}
body#product .blockreassurance_product > div,
body#cart .blockreassurance_product > div{
  display:block !important;margin:0 !important;padding:11px 0 !important;border-top:1px solid rgba(176,141,63,.4) !important;
}
body#product .blockreassurance_product > div:last-of-type,
body#cart .blockreassurance_product > div:last-of-type{border-bottom:1px solid rgba(176,141,63,.4) !important}
body#product .blockreassurance_product > div:empty,
body#cart .blockreassurance_product > div:empty{display:none !important}
body#product .blockreassurance_product .block-title,
body#cart .blockreassurance_product .block-title{
  display:block !important;margin:0 0 2px !important;padding:0 !important;
  font:600 11px/1.3 "Source Sans Pro",sans-serif !important;letter-spacing:.14em !important;
  text-transform:uppercase !important;color:#75591F !important;
}
body#product .blockreassurance_product p:not(.block-title),
body#cart .blockreassurance_product p:not(.block-title){
  margin:0 !important;padding:0 !important;font-size:14.5px !important;line-height:1.45 !important;color:rgba(26,33,32,.72) !important;
}
/* ==== FIN - LA VOIE VERTE : champs, boutons, encre et bas des fiches ==== */

/* ==== DEBUT - LA VOIE VERTE : Miss Bud a ses places - 2026-09-11 ====
   Cahier d harmonie v3, chantier 5. Charte : presta LVV/CHARTE_MISS_BUD.md, par. 3.
   Essaye en direct avant pose (essai/essai_5.py). Aucun HTML touche.

   1. MAGASINS : le visuel nos-boutiques sous la plaque, place prevue par la
      charte ( basculer vers le comptoir ). Aucune autre bulle sur la page.
   2. FIL D ARIANE : la pastille avatar-cercle au bout du fil, sans texte, sur les
      rayons pour lesquels une explication de Miss Bud existe. Decide par Florent
      le 2026-09-10 : seulement les rayons a guide. La regle lit la page, pas une
      liste : la description porte une banniere pedagogique /img/cms/miss-bud-*,
      les bandeaux de fin de description (miss-bud-fil-*) ne comptent pas.
      Releve du 2026-09-11 : 48 rayons sur 63 ; sans pastille 36, 40, 50, 55, 76,
      136, 165, 184, 186, 226, 231, 232, 245, 246, 248.
   3. BULLES RELETTREES EN MARCELLUS (29 aout) : le serveur sert aux navigateurs
      un jumeau .png.webp fabrique la nuit, jamais refait quand le PNG change ; il
      portait encore l ancienne ecriture. Le gestionnaire de fichiers ne voit pas
      les .webp : seul un nom neuf atteint le visiteur. Les PNG servis sont
      renvoyes tels quels sous miss-bud-<sujet>-marcellus.png ; recherche vide,
      panier vide et confirmation de commande (sections 14 et 15) sont
      repointes ici. La page introuvable n est pas touchee : depuis le
      2026-09-10 elle porte l embleme (section de l embleme, 118 px), pas Miss Bud.

   POUR REVENIR EN ARRIERE : supprimer cette section.
   ==================================================================== */

/* ---- 1. Magasins -------------------------------------------------------- */
body#stores .page-header::after{
  content:'' !important;display:block !important;width:min(420px,88%) !important;aspect-ratio:3/2;
  margin:4px auto 10px !important;
  background:url(/img/cms/miss-bud-nos-boutiques-v2.png) center/contain no-repeat transparent !important;
  opacity:1 !important;visibility:visible !important;
}

/* ---- 2. La pastille du fil d Ariane ------------------------------------- */
body#category:has(#category-description img[src*="/miss-bud-"]:not([src*="/miss-bud-fil-"])) .breadcrumb ol::after{
  content:'' !important;display:block !important;flex:none;width:36px;height:36px;margin-left:14px;border-radius:50%;
  background:url(/img/cms/miss-bud-avatar-cercle-v2.png) center/cover no-repeat transparent !important;
  box-shadow:0 0 0 1px rgba(176,141,63,.6);
}
@media (max-width:767px){
  body#category:has(#category-description img[src*="/miss-bud-"]:not([src*="/miss-bud-fil-"])) .breadcrumb ol::after{
    width:32px;height:32px;margin:0 6px 0 2px;
  }
}

/* ---- 3. Les bulles des pages sans point d accroche (sections 14 et 15) -- */
body#search #js-product-list .page-not-found::before{background-image:url(/img/cms/miss-bud-recherche-loupe-v2.png)}
body#cart.cart-empty .cart-overview::before{background-image:url(/img/cms/miss-bud-panier-corbeille-v2.png)}
#content-hook_order_confirmation .card-block > .row > .col-md-12::before{background-image:url(/img/cms/miss-bud-commande-confirmee-v2.png)}
/* ==== FIN - LA VOIE VERTE : Miss Bud a ses places ==== */

/* ==== DEBUT - LA VOIE VERTE : la page Nos magasins - 2026-09-11 ====
   Cahier d harmonie v3, chantier 6. Essaye en direct avant pose (essai/essai_6.py).

   La page reprend la carte boutique de l accueil (bloc texte libre, classes
   lvv-ac-bq-*) : grande photo qui defile, station de metro, nom en Marcellus,
   filet or, adresse, horaires regroupes, telephone et bouton Itineraire.

   1. LES CARTES : posees par views/js/magasins.js du module, qui lit les
      horaires, l adresse et le telephone dans les fiches magasin du theme
      (donc dans le back-office) et regroupe les jours identiques. Aucun
      horaire n est ecrit ici ni dans le script.
   2. LE FILET DE SECURITE : sans script, ou si la lecture echoue, les fiches
      du theme restent affichees, habillees au dessin de la carte.
   Le visuel Miss Bud sous la plaque est pose par la section du chantier 5.

   POUR REVENIR EN ARRIERE : supprimer cette section et la ligne qui charge
   magasins.js dans lvvstyles.php.
   ==================================================================== */

/* ---- 1. Les cartes boutique ---------------------------------------------- */
body#stores.lvv-mg-pret #content.page-stores > article.store-item{display:none !important}
body#stores #content.page-stores{background:transparent !important;box-shadow:none !important;border:0 !important}
body#stores .lvv-mg-duo{
  display:grid;grid-template-columns:1fr 1fr;gap:34px;align-items:start;
  max-width:1180px;margin:14px auto 34px;
}
body#stores .lvv-mg{position:relative;min-width:0}
body#stores .lvv-mg + .lvv-mg{margin-top:58px}
body#stores .lvv-mg-vue{position:relative}
body#stores .lvv-mg-piste{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;-webkit-overflow-scrolling:touch}
body#stores .lvv-mg-piste::-webkit-scrollbar{display:none}
body#stores .lvv-mg-piste img{
  flex:0 0 100%;display:block;width:100%;min-width:0;max-width:none;height:auto;
  aspect-ratio:3/2;object-fit:cover;object-position:center 58%;scroll-snap-align:start;
}
body#stores .lvv-mg-metro{
  position:absolute;right:0;top:0;z-index:3;background:#182616;color:#F7F2E4;
  font:400 11px/1 "Source Sans Pro",sans-serif;letter-spacing:1.2px;text-transform:uppercase;padding:8px 14px;
}
body#stores .lvv-mg-points{position:absolute;right:10px;bottom:10px;z-index:3;display:flex}
body#stores .lvv-mg-points button{
  width:24px;height:24px;padding:0;border:0;background:transparent;cursor:pointer;
  display:flex;align-items:center;justify-content:center;
}
body#stores .lvv-mg-points button::after{
  content:"";width:9px;height:9px;border-radius:50%;
  border:1px solid rgba(247,242,228,.85);background:rgba(26,33,32,.35);transition:background .2s;
}
body#stores .lvv-mg-points button[aria-current="true"]::after{background:#D2B269;border-color:#D2B269}
body#stores .lvv-mg-points button:focus-visible{outline:2px solid #D2B269;outline-offset:-2px}
body#stores .lvv-mg-carte{
  position:relative;z-index:2;background:#F7F2E4;border:2px solid #B08D3F;
  padding:24px 26px;box-shadow:0 16px 34px rgba(26,33,32,.16);margin:-28px 22px 0;color:#1A2120;
}
body#stores .lvv-mg-logo{display:block;width:128px;height:auto;margin:0 0 12px}
body#stores h2.lvv-mg-nom{
  font:400 26px/1.15 Marcellus,Georgia,serif !important;margin:6px 0 0 !important;padding:0 !important;
  color:#1A2120 !important;text-transform:none !important;letter-spacing:0 !important;text-align:left !important;
  background:none !important;border:0 !important;box-shadow:none !important;
}
body#stores h2.lvv-mg-nom::before,
body#stores h2.lvv-mg-nom::after{content:none !important;display:none !important}
body#stores .lvv-mg-filet{display:block;width:52px;height:2px;background:#B08D3F;margin:14px 0}
body#stores p.lvv-mg-adr{font-size:14px !important;line-height:1.5 !important;margin:12px 0 0 !important;color:#1A2120 !important;text-align:left !important}
body#stores .lvv-mg-h{margin:14px 0 0;font-size:13.5px;color:#1A2120}
body#stores .lvv-mg-hl{display:flex;justify-content:space-between;gap:16px;padding:5px 0;border-bottom:1px dotted rgba(26,33,32,.22)}
body#stores .lvv-mg-hl span:last-child{font-variant-numeric:tabular-nums;white-space:nowrap}
body#stores .lvv-mg-pied{display:flex;align-items:center;gap:18px;margin-top:18px;flex-wrap:wrap}
body#stores a.lvv-mg-tel{font:400 17px/1.2 Marcellus,Georgia,serif !important;color:#1A2120 !important;text-decoration:none !important;border:0 !important}
body#stores a.lvv-mg-bout{
  display:inline-block;background:#2E4A32 !important;color:#FCFBF7 !important;border:1px solid #2E4A32 !important;
  border-radius:2px;padding:13px 30px 12px;font:600 12px/1 "Source Sans Pro",sans-serif !important;
  letter-spacing:1.68px;text-transform:uppercase;text-decoration:none !important;transition:background .18s;
}
body#stores a.lvv-mg-bout:hover,
body#stores a.lvv-mg-bout:focus-visible{background:#22381F !important}
@media (max-width:767px){
  /* Defaut du theme corrige au passage : sous 768 px, theme.css met la zone a
     width:100% et custom.css lui ajoute margin-left:10% - 39 px de debordement
     horizontal sur un telephone de 390 px, cartes ou pas. */
  body#stores #main #content.page-stores{width:auto !important;margin-left:12px !important;margin-right:12px !important}
  body#stores .lvv-mg-duo{grid-template-columns:1fr;gap:30px;margin:6px 0 24px}
  body#stores .lvv-mg + .lvv-mg{margin-top:0}
  body#stores .lvv-mg-carte{margin:-18px 12px 0;padding:16px}
  body#stores .lvv-mg-logo{width:96px}
  body#stores h2.lvv-mg-nom{font-size:21px !important}
  body#stores .lvv-mg-h{font-size:13px}
  body#stores .lvv-mg-metro{font-size:10px;padding:6px 10px}
}

/* ---- 2. Le filet de securite : les fiches du theme habillees ---------- */
body#stores #content.page-stores > article.store-item{
  background:#F7F2E4 !important;border:2px solid #B08D3F !important;padding:22px 10px !important;
  box-shadow:0 16px 34px rgba(26,33,32,.16) !important;max-width:1040px;margin:0 auto 26px !important;
}
body#stores .store-picture img{width:100% !important;max-width:240px !important;height:auto !important}
body#stores .store-description .card-title{
  font:400 23px/1.2 Marcellus,Georgia,serif !important;letter-spacing:0 !important;
  text-transform:none !important;color:#1A2120 !important;
}
body#stores .store-description address{font-size:15px !important;line-height:1.6 !important;color:rgba(26,33,32,.72) !important}
body#stores .divide-left table{width:100%;font-variant-numeric:tabular-nums}
body#stores .divide-left table tr{border-bottom:1px dotted rgba(26,33,32,.22)}
body#stores .divide-left table th{
  font:600 11px/1.5 "Source Sans Pro",sans-serif !important;letter-spacing:.14em !important;text-transform:uppercase !important;
  color:#75591F !important;text-align:left !important;padding:6px 16px 6px 0 !important;
}
body#stores .divide-left table td,
body#stores .divide-left table li{font-size:14px !important;color:#1A2120 !important}
@media (max-width:767px){
  body#stores .store-item-container > [class*=col-]{float:none !important;width:100% !important;padding-left:14px !important;padding-right:14px !important}
  body#stores .store-item,
  body#stores .store-item table{max-width:100% !important}
}
/* ==== FIN - LA VOIE VERTE : la page Nos magasins ==== */

/* ==== DEBUT - LA VOIE VERTE : la page A propos - 2026-09-11 ====
   Cahier d harmonie v3, chantier 8. Essaye en direct avant pose (essai/essai_8.py).
   Regles bornees a #content.page-cms-4 : les autres pages CMS ne bougent pas.
   Textes inchanges, aucun contenu touche.

   1. UN SEUL TITRE : le h1 du contenu (A propos, sans accent) est masque, la
      plaque du theme reste.
   2. UNE COLONNE DE LECTURE : les trois colonnes de 371 px deviennent une
      colonne de 760 px, intertitres en Marcellus 24 px avec filet or.
   3. LE TEXTE : 17 px, aligne a gauche au lieu de justifie, encre #1A2120.
      Le retrait de premiere ligne vient d espaces insecables ecrits dans le
      contenu (span Apple-converted-space) : ces span sont masques. Les
      passages en gras sont ramenes a la graisse du texte, sauf la premiere
      mention de La Voie Verte. Les paragraphes vides de fin de bloc sont
      masques.

   POUR REVENIR EN ARRIERE : supprimer cette section.
   ==================================================================== */
body#cms #content.page-cms-4 > h1.page-heading{display:none !important}
body#cms #main #content.page-cms-4{
  width:auto !important;max-width:760px !important;margin-left:auto !important;margin-right:auto !important;
  padding:40px 48px 36px !important;
}
body#cms #content.page-cms-4 > .row{margin:0 !important;display:block !important}
body#cms #content.page-cms-4 > .row > [class*=col-]{float:none !important;width:100% !important;max-width:none !important;flex:none !important;padding:0 !important}
body#cms #content.page-cms-4 > .row > [class*=col-] + [class*=col-]{margin-top:30px !important}
body#cms #content.page-cms-4 .cms-block,
body#cms #content.page-cms-4 .cms-box,
body#cms #content.page-cms-4 .testimonials,
body#cms #content.page-cms-4 .testimonials .inner{margin:0 !important;padding:0 !important;background:none !important;border:0 !important}
body#cms #content.page-cms-4 h3.page-subheading{
  font:400 24px/1.2 Marcellus,Georgia,serif !important;color:#2E4A32 !important;letter-spacing:.01em !important;
  text-transform:none !important;margin:0 0 16px !important;padding:0 !important;border:0 !important;
}
body#cms #content.page-cms-4 h3.page-subheading::after{content:'';display:block;width:34px;height:1px;background:#B08D3F;margin-top:12px}
body#cms #content.page-cms-4 p.p1{
  text-indent:0 !important;text-align:left !important;font-family:"Source Sans Pro",sans-serif !important;
  font-size:17px !important;line-height:1.65 !important;color:#1A2120 !important;margin:0 0 14px !important;
}
body#cms #content.page-cms-4 .Apple-converted-space{display:none !important}
body#cms #content.page-cms-4 p.p1 b{font-weight:inherit !important}
body#cms #content.page-cms-4 .cms-block > p.p1:first-of-type > b:first-child{font-weight:600 !important}
/* Le premier paragraphe porte ses espaces de tete DANS le gras (quatre paires
   insecable + espace, 2em mesures a 17 px comme a 16 px) : pas de span a masquer,
   on les compense. Si ces espaces sont un jour retires du contenu, retirer cette
   regle, sinon le debut de ligne sortira de 2em vers la gauche. */
body#cms #content.page-cms-4 .cms-block > p.p1:first-of-type > b:first-child{margin-left:-2em !important}
body#cms #content.page-cms-4 .cms-block > p.p1:last-child:not(:first-of-type),
body#cms #content.page-cms-4 .cms-box > p.p1:last-child:not(:first-of-type){display:none !important}
body#cms #content.page-cms-4 p.p1 .s1{font-size:inherit !important;line-height:inherit !important}
body#cms #content.page-cms-4 p.p1 sup{font-size:.62em !important}
body#cms #content.page-cms-4 .testimonials p:not(.p1){margin:26px auto 0 !important}
@media (max-width:767px){
  body#cms #main #content.page-cms-4{padding:26px 20px 24px !important;margin-left:12px !important;margin-right:12px !important}
  body#cms #content.page-cms-4 h3.page-subheading{font-size:22px !important}
  body#cms #content.page-cms-4 p.p1{font-size:16px !important}
}
/* ==== FIN - LA VOIE VERTE : la page A propos ==== */

/* ==== DEBUT - LA VOIE VERTE : la barre Trier / Filtrer - 2026-09-11 ====
   Cahier d harmonie v3, chantier 9. Essaye en direct avant pose (essai/essai_9.py).
   Portee : toutes les listes de produits (rayons, nouveautes, meilleures ventes,
   promotions, pages de marque, recherche). Aucun HTML touche.

   1. LE COMPTEUR : Il y a 21 produits. devient une etiquette or en petites
      capitales, a gauche de la barre ; sur telephone il remplace, en haut de
      liste, la phrase Affichage 1-21 de 21 article(s), qui reste en bas de
      liste avec la pagination (utile quand la liste a plusieurs pages).
   2. LE TRI : bouton au contour vert de 44 px, libelle sur une ligne, a cote
      de Trier par en petites capitales or.
   3. FILTRER (telephone) : meme hauteur de 44 px que le tri, sur la meme ligne.
   Les libelles (Choisir, Il y a... produits., tris non traduits) relevent des
   traductions du theme, pas de cette feuille.

   POUR REVENIR EN ARRIERE : supprimer cette section.
   ==================================================================== */
body #js-product-list-top.products-selection{display:flex !important;align-items:center;flex-wrap:wrap;row-gap:12px;margin:0 0 20px !important}
body #js-product-list-top.products-selection::before,
body #js-product-list-top.products-selection::after{content:none !important;display:none !important}
body #js-product-list-top > .total-products{flex:1 1 auto;float:none !important;width:auto !important;max-width:none !important;min-width:0;padding:0 15px !important}
body #js-product-list-top > .total-products > p{
  display:inline-block !important;margin:0 !important;padding:9px 12px 8px !important;
  font:600 11px/1 "Source Sans Pro",sans-serif !important;letter-spacing:.14em !important;text-transform:uppercase !important;
  color:#75591F !important;background:#FCFBF7 !important;border:1px solid rgba(176,141,63,.55) !important;border-radius:2px !important;
}
body #js-product-list-top > .col-md-6:not(.total-products){flex:0 0 auto;float:none !important;width:auto !important;max-width:none !important;padding:0 15px !important}
body #js-product-list-top .sort-by-row{display:flex !important;align-items:center;flex-wrap:nowrap;gap:12px;margin:0 !important}
body #js-product-list-top .sort-by-row::before,
body #js-product-list-top .sort-by-row::after{content:none !important;display:none !important}
body #js-product-list-top .sort-by-row > .sort-by{
  flex:none;float:none !important;width:auto !important;max-width:none !important;padding:0 !important;white-space:nowrap;
  font:600 11px/1 "Source Sans Pro",sans-serif !important;letter-spacing:.14em !important;text-transform:uppercase !important;color:#75591F !important;
}
body #js-product-list-top .sort-by-row > .products-sort-order{flex:0 0 auto;float:none !important;width:auto !important;max-width:none !important;padding:0 !important}
body #js-product-list-top .products-sort-order .select-title{
  display:flex !important;align-items:center;justify-content:space-between;gap:12px;
  height:44px !important;min-width:210px;padding:0 10px 0 16px !important;margin:0 !important;
  border:1px solid #2E4A32 !important;border-radius:2px !important;background:#FCFBF7 !important;box-shadow:none !important;
  font:400 15px/1 "Source Sans Pro",sans-serif !important;color:#1A2120 !important;white-space:nowrap !important;text-align:left !important;
}
body #js-product-list-top .products-sort-order .select-title i{color:#2E4A32 !important;flex:none}
body #js-product-list-top .products-sort-order .select-title:hover,
body #js-product-list-top .products-sort-order .select-title:focus-visible{border-color:#182616 !important;background:#F7F2E4 !important}
body #js-product-list-top .products-sort-order .dropdown-menu{
  min-width:100% !important;margin-top:4px !important;padding:6px 0 !important;
  border:1px solid rgba(176,141,63,.55) !important;border-radius:2px !important;background:#FCFBF7 !important;box-shadow:0 12px 26px -14px rgba(24,38,22,.45) !important;
}
body #js-product-list-top .products-sort-order .dropdown-menu .select-list{
  display:block !important;padding:9px 16px !important;font:400 15px/1.3 "Source Sans Pro",sans-serif !important;color:#1A2120 !important;white-space:nowrap;
}
body #js-product-list-top .products-sort-order .dropdown-menu .select-list:hover,
body #js-product-list-top .products-sort-order .dropdown-menu .select-list.current{background:#EFE9DE !important;color:#2E4A32 !important}
body #js-product-list-top .sort-by-row > .filter-button{flex:none;float:none !important;width:auto !important;max-width:none !important;padding:0 !important}
body #js-product-list-top #search_filter_toggler{
  width:auto !important;height:44px !important;margin:0 !important;padding:0 22px !important;border-radius:2px !important;
  font:600 12px/42px "Source Sans Pro",sans-serif !important;letter-spacing:.14em !important;text-transform:uppercase !important;
  background:#2E4A32 !important;border:1px solid #2E4A32 !important;color:#FCFBF7 !important;box-shadow:none !important;
}
@media (max-width:767px){
  body #js-product-list-top > .total-products.hidden-sm-down{display:block !important;order:2;flex:1 0 100%}
  body #js-product-list-top > .showing.hidden-md-up{display:none !important}
  body #js-product-list-top > .col-md-6:not(.total-products){order:1;flex:1 0 100%}
  body #js-product-list-top .sort-by-row > .products-sort-order{flex:1 1 auto;min-width:0}
  body #js-product-list-top .products-sort-order .select-title{width:100% !important;min-width:0}
}
/* ==== FIN - LA VOIE VERTE : la barre Trier / Filtrer ==== */

/* ==== DEBUT barre d achat collante sur telephone — 2026-09-13 ====
   Mesure du 13/09 sur la fiche 1217 en 390 x 844 : le prix est a 810 px du haut
   et le bouton d ajout au panier a 1296 px. Un ecran et demi de defilement avant
   de pouvoir acheter, sur la page ou l on decide. La grille de paliers, elle, ne
   bouge pas : c est la meilleure chose de la fiche.
   z-index 50, volontairement bas : le bandeau cookies (cookieconsent) et la porte
   d age (remodal) portent le leur, bien au-dessus. La barre passe dessous, et le
   consentement garde la main.
   Mesure apres pose : barre de 135 px collee a 709/844, bouton atteignable sans
   defiler, zero debordement horizontal. */
@media (max-width:767px){
  body#product .product-actions > form > .product-add-to-cart{
    position:fixed; left:0; right:0; bottom:0; z-index:50;
    margin:0; padding:10px 14px calc(10px + env(safe-area-inset-bottom));
    background:#fcfbf7; border-top:1px solid rgba(46,74,50,.22);
    box-shadow:0 -2px 10px rgba(23,34,28,.12);
    align-items:center; gap:10px;
  }
  /* de quoi ne jamais recouvrir la fin du pied : la barre mesure 135 px */
  body#product{ padding-bottom:150px; }
}
/* ==== FIN barre d achat collante sur telephone — 2026-09-13 ==== */

/* ==== DEBUT barre d achat et bandeau de consentement - 2026-09-13, refait le 2026-09-24 ====
   13/09 : le bandeau cookies (colle en bas, 175 px, z-index 9999) recouvrait la barre
   d achat ; la barre etait donc remise dans le flux tant que le bandeau attendait.
   Consequence mesuree le 24/09 : un visiteur qui n a pas repondu au bandeau n a PAS de
   barre d achat collee (le bouton reste a 1 300 px dans la page).
   24/09 (ergonomie mobile, choix de Florent) : la barre reste collee, le bandeau se pose
   AU-DESSUS d elle (--lvv-barre-h, pose par views/js/mobile.js), et Miss Bud attend la
   reponse au bandeau (elle recouvrait le tiers droit de " J accepte " sur toutes les pages).
   Mesure : bouton d achat 3/3 et " J accepte " 5/5 recoivent le doigt ; bas d ecran
   occupe 246 px tant que le bandeau attend, 71 ensuite. */
@media (max-width:767px){
  body#product:has(.cc-window:not(.cc-invisible)) .cc-window.cc-floating{ bottom:var(--lvv-barre-h, 71px) !important; }
  body:has(.cc-window:not(.cc-invisible)) .lvv-mbud{ display:none !important; }
  html.lvv-nuit body#product #wrapper .product-actions > form > .product-add-to-cart .product-minimal-quantity{ color:#4A3B2A !important; }
}
/* ==== FIN barre d achat et bandeau de consentement - 2026-09-13, refait le 2026-09-24 ==== */
/* ==== DEBUT - LA VOIE VERTE : le cartouche de marque - 2026-09-13 ====
   Le cartouche `sb-cadre` existe depuis le chantier Vaporisation : un cadre en tete
   de description qui porte le logo du fabricant, son nom, le modele et une phrase,
   sous un filet a la couleur de la marque. Il est aujourd hui dessine ENTIEREMENT
   par des styles en ligne, et sa typographie vient d un <style> de page prefixe par
   rayon — 24 rayons seulement. Mesure du 13/09 : sur un rayon non dimensionne, le
   modele sort a 16 px au lieu de 27 et l encre passe au brun.

   Cette section met tout dans la feuille : le dessin ET la typographie. Le HTML
   colle dans les descriptions ne porte alors plus qu une donnee, la couleur de la
   marque, dans une variable :

       <table class="sb-cadre" style="--sb-accent:#ab1113">

   Sans cette variable, le filet prend l or de la maison — c est le repli voulu pour
   les 37 marques dont le logo ne porte aucune couleur.

   MEME EXCLUSIONS QUE LA REGLE DE TYPOGRAPHIE POSEE LE 11/09 : les six rayons de
   fabricant et les six fiches nommees gardent leur identite, decision du 16 aout.

   VALEURS : relevees au style calcule sur un rayon dimensionne (fiche 1217, rayon
   243), pas choisies. Les 24 rayons dimensionnes posent tous 15 / 11 / 27 / 17 px,
   sans une exception — il n y a donc rien a preserver rayon par rayon.

   POUR REVENIR EN ARRIERE : supprimer cette section. Les cartouches deja colles
   restent lisibles, sans cadre ni hierarchie de tailles. */

body#product:not(.product-id-category-53):not(.product-id-category-271):not(.product-id-category-272):not(.product-id-category-273):not(.product-id-category-274):not(.product-id-category-276):not(.product-id-186):not(.product-id-2203):not(.product-id-2233):not(.product-id-2497):not(.product-id-2695):not(.product-id-2696) #description table.sb-cadre{
  border-collapse:collapse;
  width:100%;
  max-width:720px;
  margin:0 auto 26px auto;
  background:#F5F2EA;
  border:0;
}
body#product:not(.product-id-category-53):not(.product-id-category-271):not(.product-id-category-272):not(.product-id-category-273):not(.product-id-category-274):not(.product-id-category-276):not(.product-id-186):not(.product-id-2203):not(.product-id-2233):not(.product-id-2497):not(.product-id-2695):not(.product-id-2696) #description table.sb-cadre td{
  padding:24px 24px 22px 24px;
  text-align:left;
}
body#product:not(.product-id-category-53):not(.product-id-category-271):not(.product-id-category-272):not(.product-id-category-273):not(.product-id-category-274):not(.product-id-category-276):not(.product-id-186):not(.product-id-2203):not(.product-id-2233):not(.product-id-2497):not(.product-id-2695):not(.product-id-2696) #description table.sb-cadre .sb-logo{
  height:52px; width:auto;
  vertical-align:middle;
  margin:0 12px 0 0;
}
body#product:not(.product-id-category-53):not(.product-id-category-271):not(.product-id-category-272):not(.product-id-category-273):not(.product-id-category-274):not(.product-id-category-276):not(.product-id-186):not(.product-id-2203):not(.product-id-2233):not(.product-id-2497):not(.product-id-2695):not(.product-id-2696) #description table.sb-cadre p.sb-nom{
  margin:0 0 16px 0;
  font-family:Marcellus,Georgia,serif !important;
  font-size:15px !important; font-weight:400 !important; line-height:21px;
  letter-spacing:2.6px; text-transform:uppercase;
  color:#1A2120 !important;
}
body#product:not(.product-id-category-53):not(.product-id-category-271):not(.product-id-category-272):not(.product-id-category-273):not(.product-id-category-274):not(.product-id-category-276):not(.product-id-186):not(.product-id-2203):not(.product-id-2233):not(.product-id-2497):not(.product-id-2695):not(.product-id-2696) #description table.sb-cadre p.sb-sur{
  margin:0 0 8px 0;
  font-family:"Source Sans Pro","Helvetica Neue",Arial,sans-serif !important;
  font-size:11px !important; font-weight:600 !important; line-height:16.5px;
  letter-spacing:2.2px; text-transform:uppercase;
  color:rgba(26,33,32,.72) !important;
}
body#product:not(.product-id-category-53):not(.product-id-category-271):not(.product-id-category-272):not(.product-id-category-273):not(.product-id-category-274):not(.product-id-category-276):not(.product-id-186):not(.product-id-2203):not(.product-id-2233):not(.product-id-2497):not(.product-id-2695):not(.product-id-2696) #description table.sb-cadre p.sb-titre{
  margin:0 0 18px 0;
  font-family:Marcellus,Georgia,serif !important;
  font-size:27px !important; font-weight:400 !important; line-height:32px;
  letter-spacing:1.5px; text-transform:uppercase;
  color:#1A2120 !important;
}
body#product:not(.product-id-category-53):not(.product-id-category-271):not(.product-id-category-272):not(.product-id-category-273):not(.product-id-category-274):not(.product-id-category-276):not(.product-id-186):not(.product-id-2203):not(.product-id-2233):not(.product-id-2497):not(.product-id-2695):not(.product-id-2696) #description table.sb-cadre p.sb-chapo{
  margin:0;
  padding:18px 0 0 0;
  border-top:3px solid var(--sb-accent, #B08D3F);
  font-family:"Source Sans Pro","Helvetica Neue",Arial,sans-serif !important;
  font-size:17px !important; font-weight:400 !important; line-height:28px;
  color:#1A2120 !important;
}
/* ==== FIN - LA VOIE VERTE : le cartouche de marque ==== */

/* ==== DEBUT - LA VOIE VERTE : les accents de marque du cartouche - 2026-09-13 ====
   Le filet du chapo prend la couleur du fabricant. Une ligne par marque, et RIEN
   dans les descriptions.

   POURQUOI PAS DANS LE HTML : mesure du 13/09 sur les sept cartouches du pilote RAW
   une fois poses. Le purificateur de PrestaShop retire l attribut `style` en entier
   a l enregistrement — sur les sept, sans exception, sans un mot et sans rien
   casser : le filet sort alors a l or du repli. Une couleur de marque ne peut pas
   voyager dans le HTML d une description.

   COMMENT CA MARCHE : le theme pose deja `product-id-manufacturer-N` sur le <body>
   de chaque fiche. On y declare la variable que la regle du cartouche consomme
   deja — `border-top:3px solid var(--sb-accent, #B08D3F)`. Cette regle n a donc pas
   a changer, et les cartouches deja poses prennent leur couleur sans etre retouches.

   Verifie sur douze temoins de douze marques differentes : le corps de page porte
   l identifiant du fabricant sur les douze, y compris pour une marque sans logo.
   Eprouve par injection : fiche 2033 (RAW), filet rgb(176,141,63) -> rgb(171,17,19).

   PREMIERE FORME ABANDONNEE, ET LA RAISON VAUT D ETRE GARDEE : surcharger
   `border-top-color` avec le prefixe a douze `:not()` marchait aussi, mais pesait
   23 657 signes contre 5 400 — et la premiere ecriture, courte, ne deplacait rien :
   la regle du cartouche porte quatorze classes de specificite et pose `border-top`
   en raccourci. Declarer la variable evite tout le probleme : une variable se
   resout a l usage, elle ne se dispute pas la specificite.

   LES DOUZE CAS DE FABRICANT ne sont pas touches : leur cartouche porte sa couleur
   en style EN LIGNE, qui bat n importe quelle feuille. Verifie sur la fiche 176
   (Mighty) : rgb(255,102,0) avant et apres.

   49 marques. Les 37 au logo noir et blanc n y figurent pas et gardent l or de la
   maison — reponse juste, pas pis-aller. La Voie Verte est absente volontairement :
   son logo sort encore dans le turquoise abandonne le 10/09, c est le defaut a
   corriger, pas une identite a servir.

   Couleurs relevees sur les logos : methode dans `couleur_des_logos.py`, valeurs
   dans `MARQUES_ACCENT_2026-09-13.json`.

   POUR REVENIR EN ARRIERE : supprimer cette section. Tous les filets reprennent
   l or de la maison. */

body#product.product-id-manufacturer-24{--sb-accent:#ab1113;}  /* RAW, 44 fiches */
body#product.product-id-manufacturer-131{--sb-accent:#130053;}  /* VEED, 40 fiches */
body#product.product-id-manufacturer-7{--sb-accent:#f67915;}  /* Storz & Bickel, 29 fiches */
body#product.product-id-manufacturer-143{--sb-accent:#005aa0;}  /* Elements, 13 fiches */
body#product.product-id-manufacturer-141{--sb-accent:#3b6b3c;}  /* Purize, 10 fiches */
body#product.product-id-manufacturer-33{--sb-accent:#008640;}  /* actiTube, 7 fiches */
body#product.product-id-manufacturer-72{--sb-accent:#ec0511;}  /* Monkey King, 7 fiches */
body#product.product-id-manufacturer-129{--sb-accent:#02a1df;}  /* Cookies, 7 fiches */
body#product.product-id-manufacturer-122{--sb-accent:#42487b;}  /* Novaloa, 7 fiches */
body#product.product-id-manufacturer-107{--sb-accent:#30ba00;}  /* Best Buds, 6 fiches */
body#product.product-id-manufacturer-85{--sb-accent:#02575e;}  /* Champ High, 6 fiches */
body#product.product-id-manufacturer-127{--sb-accent:#268cc0;}  /* Smoke Odor Exterminator, 6 fiches */
body#product.product-id-manufacturer-50{--sb-accent:#2f1c8e;}  /* Miron, 5 fiches */
body#product.product-id-manufacturer-99{--sb-accent:#db001e;}  /* Gizeh, 5 fiches */
body#product.product-id-manufacturer-139{--sb-accent:#7300c6;}  /* Monki, 5 fiches */
body#product.product-id-manufacturer-134{--sb-accent:#355880;}  /* Rue de la Boulette, 4 fiches */
body#product.product-id-manufacturer-61{--sb-accent:#2d3d40;}  /* Vector, 3 fiches — teinte pale */
body#product.product-id-manufacturer-153{--sb-accent:#0047be;}  /* The Bulldog, 3 fiches */
body#product.product-id-manufacturer-155{--sb-accent:#e21e21;}  /* Smoking, 3 fiches */
body#product.product-id-manufacturer-156{--sb-accent:#e32217;}  /* Zippo, 3 fiches */
body#product.product-id-manufacturer-53{--sb-accent:#6abd46;}  /* Roll Master, 2 fiches */
body#product.product-id-manufacturer-34{--sb-accent:#d62828;}  /* Vaptio, 2 fiches */
body#product.product-id-manufacturer-59{--sb-accent:#de0a14;}  /* XVape, 2 fiches */
body#product.product-id-manufacturer-162{--sb-accent:#fc4d01;}  /* GeekVape, 2 fiches */
body#product.product-id-manufacturer-163{--sb-accent:#759557;}  /* Tinymight, 2 fiches */
body#product.product-id-manufacturer-158{--sb-accent:#df477c;}  /* Boomz, 2 fiches */
body#product.product-id-manufacturer-36{--sb-accent:#9c9e6e;}  /* Skunk Brand, 1 fiches — teinte pale */
body#product.product-id-manufacturer-49{--sb-accent:#3ea949;}  /* Cvault, 1 fiches */
body#product.product-id-manufacturer-79{--sb-accent:#ee0e03;}  /* Ozo World, 1 fiches */
body#product.product-id-manufacturer-106{--sb-accent:#2c5c3c;}  /* Herb & Earth, 1 fiches */
body#product.product-id-manufacturer-109{--sb-accent:#019943;}  /* Cannabis Store Amsterdam, 1 fiches */
body#product.product-id-manufacturer-115{--sb-accent:#49769e;}  /* Innokin, 1 fiches — teinte pale */
body#product.product-id-manufacturer-35{--sb-accent:#c5a93b;}  /* Golden Buds, 1 fiches */
body#product.product-id-manufacturer-132{--sb-accent:#122a3e;}  /* Cannabis Bakehouse, 1 fiches */
body#product.product-id-manufacturer-32{--sb-accent:#685850;}  /* Ziggi, 1 fiches — teinte pale */
body#product.product-id-manufacturer-173{--sb-accent:#4f9840;}  /* Hemper, 1 fiches */
body#product.product-id-manufacturer-180{--sb-accent:#392f2a;}  /* Chillo, 1 fiches — teinte pale */
body#product.product-id-manufacturer-66{--sb-accent:#aa9558;}  /* Barney's Farm, 1 fiches */
/* ==== FIN - LA VOIE VERTE : les accents de marque du cartouche ==== */

/* ==== DEBUT - LA VOIE VERTE : le gabarit des fiches dans la feuille - 2026-09-13 ====
   Neuf familles de tableau, toutes leurs classes. Valeurs prises au style CALCULE
   (le CSS servi porte l ancien dessin), declarations relatives reprises au DECLARE
   (le calcule rend les rapports et les pourcentages en pixels), et !important
   partout (le calcule ne porte pas l importance, et les 159 fiches a bloc ont
   toutes un attribut style= a battre).
   Genere par essai/ecrire_section.py. NE PAS EDITER A LA MAIN.
   ==================================================================== */

/* -- Le repli : la palette maison, pour tout rayon sans palette propre -- */
body#product #description{--sb-police-0:"Source Sans Pro", "Helvetica Neue", Arial, sans-serif;--sb-police-1:Marcellus, Georgia, serif;--sb-police-2:"Helvetica Neue", Helvetica, Arial, sans-serif;--sb-graisse-0:600;--sb-graisse-1:400;--sb-graisse-2:700;--sb-encre-0:rgb(26, 33, 32);--sb-encre-1:rgba(26, 33, 32, 0.72);--sb-encre-2:rgb(26, 33, 32);--sb-encre-3:rgb(46, 74, 50)}

/* -- Les identites : une police, une graisse et quatre encres par contexte -- */
body#product.product-id-category-46 #description{--sb-police-0:"Source Sans Pro", "Helvetica Neue", Arial, sans-serif;--sb-police-1:Marcellus, Georgia, serif;--sb-police-2:"Helvetica Neue", Helvetica, Arial, sans-serif;--sb-graisse-0:600;--sb-graisse-1:400;--sb-graisse-2:700;--sb-encre-0:rgb(26, 33, 32);--sb-encre-1:rgba(26, 33, 32, 0.72);--sb-encre-2:rgb(26, 33, 32);--sb-encre-3:rgb(46, 74, 50)}
body#product.product-id-177 #description{--sb-police-0:Roboto, "Helvetica Neue", Helvetica, Arial, sans-serif;--sb-police-1:Roboto, "Helvetica Neue", Helvetica, Arial, sans-serif;--sb-police-2:Roboto, "Helvetica Neue", Helvetica, Arial, sans-serif;--sb-graisse-0:700;--sb-graisse-1:700;--sb-graisse-2:700;--sb-encre-0:rgb(40, 40, 40);--sb-encre-1:rgb(118, 118, 118);--sb-encre-2:rgb(89, 89, 89);--sb-encre-3:rgb(255, 102, 0);--sb-encre-4:rgb(40, 40, 40);--sb-encre-5:rgb(89, 89, 89)}
body#product.product-id-970 #description{--sb-police-0:"Source Sans Pro", "Helvetica Neue", Arial, sans-serif;--sb-police-1:Marcellus, Georgia, serif;--sb-police-2:"Helvetica Neue", Helvetica, Arial, sans-serif;--sb-graisse-0:600;--sb-graisse-1:400;--sb-graisse-2:700;--sb-encre-0:rgb(26, 33, 32);--sb-encre-1:rgba(26, 33, 32, 0.72);--sb-encre-2:rgb(26, 33, 32);--sb-encre-3:rgb(46, 74, 50)}
body#product.product-id-186 #description{--sb-police-0:"Helvetica Neue", Helvetica, Arial, sans-serif;--sb-police-1:"Helvetica Neue", Helvetica, Arial, sans-serif;--sb-police-2:"Helvetica Neue", Helvetica, Arial, sans-serif;--sb-graisse-0:700;--sb-graisse-1:700;--sb-graisse-2:700;--sb-encre-0:rgb(26, 33, 32);--sb-encre-1:rgb(107, 98, 87);--sb-encre-2:rgb(74, 59, 42);--sb-encre-3:rgb(46, 74, 50)}
body#product.product-id-2203 #description{--sb-police-0:"Helvetica Neue", Helvetica, Inter, Arial, sans-serif;--sb-police-1:"Helvetica Neue", Helvetica, Inter, Arial, sans-serif;--sb-police-2:"Helvetica Neue", Helvetica, Inter, Arial, sans-serif;--sb-graisse-0:700;--sb-graisse-1:700;--sb-graisse-2:700;--sb-encre-0:rgb(17, 17, 17);--sb-encre-1:rgb(126, 126, 136);--sb-encre-2:rgb(79, 79, 87);--sb-encre-3:rgb(56, 39, 87)}
body#product.product-id-2233 #description{--sb-police-0:"Noto Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;--sb-police-1:"Noto Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;--sb-police-2:"Noto Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;--sb-graisse-0:700;--sb-graisse-1:700;--sb-graisse-2:700;--sb-encre-0:rgb(35, 35, 35);--sb-encre-1:rgb(122, 122, 122);--sb-encre-2:rgb(79, 79, 79);--sb-encre-3:rgb(201, 161, 10)}
body#product.product-id-2497 #description{--sb-police-0:"Noto Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;--sb-police-1:"Noto Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;--sb-police-2:"Noto Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;--sb-graisse-0:700;--sb-graisse-1:700;--sb-graisse-2:700;--sb-encre-0:rgb(35, 35, 35);--sb-encre-1:rgb(122, 122, 122);--sb-encre-2:rgb(79, 79, 79);--sb-encre-3:rgb(201, 161, 10)}
body#product.product-id-2695 #description{--sb-police-0:"Noto Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;--sb-police-1:"Noto Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;--sb-police-2:"Noto Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;--sb-graisse-0:700;--sb-graisse-1:700;--sb-graisse-2:700;--sb-encre-0:rgb(35, 35, 35);--sb-encre-1:rgb(122, 122, 122);--sb-encre-2:rgb(79, 79, 79);--sb-encre-3:rgb(201, 161, 10)}
body#product.product-id-2696 #description{--sb-police-0:"Noto Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;--sb-police-1:"Noto Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;--sb-police-2:"Noto Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;--sb-graisse-0:700;--sb-graisse-1:700;--sb-graisse-2:700;--sb-encre-0:rgb(35, 35, 35);--sb-encre-1:rgb(122, 122, 122);--sb-encre-2:rgb(79, 79, 79);--sb-encre-3:rgb(201, 161, 10)}
body#product.product-id-category-214 #description{--sb-police-0:"Source Sans Pro", "Helvetica Neue", Arial, sans-serif;--sb-police-1:Marcellus, Georgia, serif;--sb-police-2:"Helvetica Neue", Helvetica, Arial, sans-serif;--sb-graisse-0:600;--sb-graisse-1:400;--sb-graisse-2:700;--sb-encre-0:rgb(26, 33, 32);--sb-encre-1:rgba(26, 33, 32, 0.72);--sb-encre-2:rgb(26, 33, 32);--sb-encre-3:rgb(46, 74, 50)}
body#product.product-id-category-243 #description{--sb-police-0:"Source Sans Pro", "Helvetica Neue", Arial, sans-serif;--sb-police-1:Marcellus, Georgia, serif;--sb-police-2:"Helvetica Neue", Helvetica, Arial, sans-serif;--sb-graisse-0:600;--sb-graisse-1:400;--sb-graisse-2:700;--sb-encre-0:rgb(26, 33, 32);--sb-encre-1:rgba(26, 33, 32, 0.72);--sb-encre-2:rgb(26, 33, 32);--sb-encre-3:rgb(46, 74, 50)}
body#product.product-id-category-244 #description{--sb-police-0:"Source Sans Pro", "Helvetica Neue", Arial, sans-serif;--sb-police-1:Marcellus, Georgia, serif;--sb-police-2:"Helvetica Neue", Helvetica, Arial, sans-serif;--sb-graisse-0:600;--sb-graisse-1:400;--sb-graisse-2:700;--sb-encre-0:rgb(26, 33, 32);--sb-encre-1:rgba(26, 33, 32, 0.72);--sb-encre-2:rgb(26, 33, 32);--sb-encre-3:rgb(46, 74, 50)}
body#product.product-id-category-246 #description{--sb-police-0:"Source Sans Pro", "Helvetica Neue", Arial, sans-serif;--sb-police-1:Marcellus, Georgia, serif;--sb-police-2:"Helvetica Neue", Helvetica, Arial, sans-serif;--sb-graisse-0:600;--sb-graisse-1:400;--sb-graisse-2:700;--sb-encre-0:rgb(26, 33, 32);--sb-encre-1:rgba(26, 33, 32, 0.72);--sb-encre-2:rgb(26, 33, 32);--sb-encre-3:rgb(46, 74, 50)}
body#product.product-id-category-247 #description{--sb-police-0:"Source Sans Pro", "Helvetica Neue", Arial, sans-serif;--sb-police-1:Marcellus, Georgia, serif;--sb-police-2:"Helvetica Neue", Helvetica, Arial, sans-serif;--sb-graisse-0:600;--sb-graisse-1:400;--sb-graisse-2:700;--sb-encre-0:rgb(26, 33, 32);--sb-encre-1:rgba(26, 33, 32, 0.72);--sb-encre-2:rgb(26, 33, 32);--sb-encre-3:rgb(46, 74, 50)}
body#product.product-id-category-250 #description{--sb-police-0:"Source Sans Pro", "Helvetica Neue", Arial, sans-serif;--sb-police-1:Marcellus, Georgia, serif;--sb-police-2:"Helvetica Neue", Helvetica, Arial, sans-serif;--sb-graisse-0:600;--sb-graisse-1:400;--sb-graisse-2:700;--sb-encre-0:rgb(26, 33, 32);--sb-encre-1:rgba(26, 33, 32, 0.72);--sb-encre-2:rgb(26, 33, 32);--sb-encre-3:rgb(46, 74, 50)}
body#product.product-id-category-251 #description{--sb-police-0:"Source Sans Pro", "Helvetica Neue", Arial, sans-serif;--sb-police-1:Marcellus, Georgia, serif;--sb-police-2:"Helvetica Neue", Helvetica, Arial, sans-serif;--sb-graisse-0:600;--sb-graisse-1:400;--sb-graisse-2:700;--sb-encre-0:rgb(26, 33, 32);--sb-encre-1:rgba(26, 33, 32, 0.72);--sb-encre-2:rgb(26, 33, 32);--sb-encre-3:rgb(46, 74, 50)}
body#product.product-id-category-253 #description{--sb-police-0:"Source Sans Pro", "Helvetica Neue", Arial, sans-serif;--sb-police-1:Marcellus, Georgia, serif;--sb-police-2:"Helvetica Neue", Helvetica, Arial, sans-serif;--sb-graisse-0:600;--sb-graisse-1:400;--sb-graisse-2:700;--sb-encre-0:rgb(26, 33, 32);--sb-encre-1:rgba(26, 33, 32, 0.72);--sb-encre-2:rgb(26, 33, 32);--sb-encre-3:rgb(46, 74, 50)}
body#product.product-id-category-255 #description{--sb-police-0:"Source Sans Pro", "Helvetica Neue", Arial, sans-serif;--sb-police-1:Marcellus, Georgia, serif;--sb-police-2:"Helvetica Neue", Helvetica, Arial, sans-serif;--sb-graisse-0:600;--sb-graisse-1:400;--sb-graisse-2:700;--sb-encre-0:rgb(26, 33, 32);--sb-encre-1:rgba(26, 33, 32, 0.72);--sb-encre-2:rgb(26, 33, 32);--sb-encre-3:rgb(46, 74, 50)}
body#product.product-id-category-256 #description{--sb-police-0:"Source Sans Pro", "Helvetica Neue", Arial, sans-serif;--sb-police-1:Marcellus, Georgia, serif;--sb-police-2:"Helvetica Neue", Helvetica, Arial, sans-serif;--sb-graisse-0:600;--sb-graisse-1:400;--sb-graisse-2:700;--sb-encre-0:rgb(26, 33, 32);--sb-encre-1:rgba(26, 33, 32, 0.72);--sb-encre-2:rgb(26, 33, 32);--sb-encre-3:rgb(46, 74, 50)}
body#product.product-id-category-258 #description{--sb-police-0:"Source Sans Pro", "Helvetica Neue", Arial, sans-serif;--sb-police-1:Marcellus, Georgia, serif;--sb-police-2:"Helvetica Neue", Helvetica, Arial, sans-serif;--sb-graisse-0:600;--sb-graisse-1:400;--sb-graisse-2:700;--sb-encre-0:rgb(26, 33, 32);--sb-encre-1:rgba(26, 33, 32, 0.72);--sb-encre-2:rgb(26, 33, 32);--sb-encre-3:rgb(46, 74, 50)}
body#product.product-id-category-271 #description{--sb-police-0:Inter, "Helvetica Neue", Helvetica, Arial, sans-serif;--sb-police-1:Inter, "Helvetica Neue", Helvetica, Arial, sans-serif;--sb-police-2:Inter, "Helvetica Neue", Helvetica, Arial, sans-serif;--sb-graisse-0:700;--sb-graisse-1:700;--sb-graisse-2:700;--sb-encre-0:rgb(20, 20, 20);--sb-encre-1:rgb(130, 134, 140);--sb-encre-2:rgb(91, 95, 102);--sb-encre-3:rgb(20, 20, 20)}
body#product.product-id-category-272 #description{--sb-police-0:Barlow, "Helvetica Neue", Helvetica, Arial, sans-serif;--sb-police-1:Barlow, "Helvetica Neue", Helvetica, Arial, sans-serif;--sb-police-2:Barlow, "Helvetica Neue", Helvetica, Arial, sans-serif;--sb-graisse-0:700;--sb-graisse-1:700;--sb-graisse-2:700;--sb-encre-0:rgb(17, 17, 17);--sb-encre-1:rgb(122, 122, 124);--sb-encre-2:rgb(76, 76, 78);--sb-encre-3:rgb(142, 199, 0)}
body#product.product-id-category-273 #description{--sb-police-0:Manrope, "Helvetica Neue", Helvetica, Arial, sans-serif;--sb-police-1:Manrope, "Helvetica Neue", Helvetica, Arial, sans-serif;--sb-police-2:Manrope, "Helvetica Neue", Helvetica, Arial, sans-serif;--sb-graisse-0:700;--sb-graisse-1:700;--sb-graisse-2:700;--sb-encre-0:rgb(28, 31, 34);--sb-encre-1:rgb(125, 128, 132);--sb-encre-2:rgb(73, 76, 79);--sb-encre-3:rgb(22, 91, 173)}
body#product.product-id-category-274 #description{--sb-police-0:"Helvetica Neue", Helvetica, Inter, Arial, sans-serif;--sb-police-1:"Helvetica Neue", Helvetica, Inter, Arial, sans-serif;--sb-police-2:"Helvetica Neue", Helvetica, Inter, Arial, sans-serif;--sb-graisse-0:700;--sb-graisse-1:700;--sb-graisse-2:700;--sb-encre-0:rgb(17, 17, 17);--sb-encre-1:rgb(126, 126, 136);--sb-encre-2:rgb(79, 79, 87);--sb-encre-3:rgb(56, 39, 87)}
body#product.product-id-category-276 #description{--sb-police-0:Roboto, "Helvetica Neue", Helvetica, Arial, sans-serif;--sb-police-1:Roboto, "Helvetica Neue", Helvetica, Arial, sans-serif;--sb-police-2:Roboto, "Helvetica Neue", Helvetica, Arial, sans-serif;--sb-graisse-0:700;--sb-graisse-1:700;--sb-graisse-2:700;--sb-encre-0:rgb(40, 40, 40);--sb-encre-1:rgb(118, 118, 118);--sb-encre-2:rgb(89, 89, 89);--sb-encre-3:rgb(255, 102, 0);--sb-encre-5:rgb(89, 89, 89)}
body#product.product-id-category-53 #description{--sb-police-0:"Noto Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;--sb-police-1:"Noto Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;--sb-police-2:"Noto Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;--sb-graisse-0:700;--sb-graisse-1:700;--sb-graisse-2:700;--sb-encre-0:rgb(35, 35, 35);--sb-encre-1:rgb(122, 122, 122);--sb-encre-2:rgb(79, 79, 79);--sb-encre-3:rgb(201, 161, 10)}

/* -- Police et graisse : ce que chaque contexte fait autrement que la maison -- */
body#product.product-id-177#product.product-id-177 #description .sb-badge{font-family:Roboto, "Helvetica Neue", Helvetica, Arial, sans-serif !important;font-weight:700 !important}
body#product.product-id-177#product.product-id-177 #description .sb-carte-g{font-family:Roboto, "Helvetica Neue", Helvetica, Arial, sans-serif !important}
body#product.product-id-177#product.product-id-177 #description .sb-carte-n{font-family:Roboto, "Helvetica Neue", Helvetica, Arial, sans-serif !important;font-weight:700 !important}
body#product.product-id-177#product.product-id-177 #description .sb-carte-p{font-family:Roboto, "Helvetica Neue", Helvetica, Arial, sans-serif !important;font-weight:700 !important}
body#product.product-id-177#product.product-id-177 #description .sb-chapo{font-family:Roboto, "Helvetica Neue", Helvetica, Arial, sans-serif !important}
body#product.product-id-177#product.product-id-177 #description .sb-cle-l{font-family:Roboto, "Helvetica Neue", Helvetica, Arial, sans-serif !important;font-weight:700 !important}
body#product.product-id-177#product.product-id-177 #description .sb-cle-v{font-family:Roboto, "Helvetica Neue", Helvetica, Arial, sans-serif !important;font-weight:700 !important}
body#product.product-id-177#product.product-id-177 #description .sb-cmp-td{font-family:Roboto, "Helvetica Neue", Helvetica, Arial, sans-serif !important}
body#product.product-id-177#product.product-id-177 #description .sb-cmp-th{font-family:Roboto, "Helvetica Neue", Helvetica, Arial, sans-serif !important;font-weight:700 !important}
body#product.product-id-177#product.product-id-177 #description .sb-h3{font-family:Roboto, "Helvetica Neue", Helvetica, Arial, sans-serif !important}
body#product.product-id-177#product.product-id-177 #description .sb-leg{color:rgb(118, 118, 118) !important;font-family:Roboto, "Helvetica Neue", Helvetica, Arial, sans-serif !important}
body#product.product-id-177#product.product-id-177 #description .sb-legd{font-family:Roboto, "Helvetica Neue", Helvetica, Arial, sans-serif !important}
body#product.product-id-177#product.product-id-177 #description .sb-legl{font-family:Roboto, "Helvetica Neue", Helvetica, Arial, sans-serif !important}
body#product.product-id-177#product.product-id-177 #description .sb-li{font-family:Roboto, "Helvetica Neue", Helvetica, Arial, sans-serif !important}
body#product.product-id-177#product.product-id-177 #description .sb-nom{font-family:Roboto, "Helvetica Neue", Helvetica, Arial, sans-serif !important;font-weight:700 !important}
body#product.product-id-177#product.product-id-177 #description .sb-note{font-family:Roboto, "Helvetica Neue", Helvetica, Arial, sans-serif !important}
body#product.product-id-177#product.product-id-177 #description .sb-p{font-family:Roboto, "Helvetica Neue", Helvetica, Arial, sans-serif !important}
body#product.product-id-177#product.product-id-177 #description .sb-sur{font-family:Roboto, "Helvetica Neue", Helvetica, Arial, sans-serif !important;font-weight:700 !important}
body#product.product-id-177#product.product-id-177 #description .sb-td{color:rgb(89, 89, 89) !important;font-family:Roboto, "Helvetica Neue", Helvetica, Arial, sans-serif !important}
body#product.product-id-177#product.product-id-177 #description .sb-th{font-family:Roboto, "Helvetica Neue", Helvetica, Arial, sans-serif !important;font-weight:700 !important}
body#product.product-id-177#product.product-id-177 #description .sb-titre{font-family:Roboto, "Helvetica Neue", Helvetica, Arial, sans-serif !important;font-weight:700 !important}
body#product.product-id-186#product.product-id-186 #description .sb-badge{font-family:"Helvetica Neue", Helvetica, Arial, sans-serif !important;font-weight:700 !important}
body#product.product-id-186#product.product-id-186 #description .sb-carte-g{font-family:"Helvetica Neue", Helvetica, Arial, sans-serif !important}
body#product.product-id-186#product.product-id-186 #description .sb-carte-n{font-family:"Helvetica Neue", Helvetica, Arial, sans-serif !important;font-weight:700 !important}
body#product.product-id-186#product.product-id-186 #description .sb-carte-p{font-family:"Helvetica Neue", Helvetica, Arial, sans-serif !important;font-weight:700 !important}
body#product.product-id-186#product.product-id-186 #description .sb-chapo{font-family:"Helvetica Neue", Helvetica, Arial, sans-serif !important}
body#product.product-id-186#product.product-id-186 #description .sb-cle-l{font-family:"Helvetica Neue", Helvetica, Arial, sans-serif !important;font-weight:700 !important}
body#product.product-id-186#product.product-id-186 #description .sb-cle-v{font-family:"Helvetica Neue", Helvetica, Arial, sans-serif !important;font-weight:700 !important}
body#product.product-id-186#product.product-id-186 #description .sb-cmp-td{font-family:"Helvetica Neue", Helvetica, Arial, sans-serif !important}
body#product.product-id-186#product.product-id-186 #description .sb-cmp-th{font-family:"Helvetica Neue", Helvetica, Arial, sans-serif !important;font-weight:700 !important}
body#product.product-id-186#product.product-id-186 #description .sb-legd{font-family:"Helvetica Neue", Helvetica, Arial, sans-serif !important}
body#product.product-id-186#product.product-id-186 #description .sb-legl{font-family:"Helvetica Neue", Helvetica, Arial, sans-serif !important}
body#product.product-id-186#product.product-id-186 #description .sb-li{font-family:"Helvetica Neue", Helvetica, Arial, sans-serif !important}
body#product.product-id-186#product.product-id-186 #description .sb-nom{font-family:"Helvetica Neue", Helvetica, Arial, sans-serif !important;font-weight:700 !important}
body#product.product-id-186#product.product-id-186 #description .sb-note{font-family:"Helvetica Neue", Helvetica, Arial, sans-serif !important}
body#product.product-id-186#product.product-id-186 #description .sb-p{font-family:"Helvetica Neue", Helvetica, Arial, sans-serif !important}
body#product.product-id-186#product.product-id-186 #description .sb-sur{font-family:"Helvetica Neue", Helvetica, Arial, sans-serif !important;font-weight:700 !important}
body#product.product-id-186#product.product-id-186 #description .sb-th{font-family:"Helvetica Neue", Helvetica, Arial, sans-serif !important;font-weight:700 !important}
body#product.product-id-186#product.product-id-186 #description .sb-titre{font-family:"Helvetica Neue", Helvetica, Arial, sans-serif !important;font-weight:700 !important}
body#product.product-id-2203#product.product-id-2203 #description .sb-badge{font-family:"Helvetica Neue", Helvetica, Inter, Arial, sans-serif !important;font-weight:700 !important}
body#product.product-id-2203#product.product-id-2203 #description .sb-carte-g{font-family:"Helvetica Neue", Helvetica, Inter, Arial, sans-serif !important}
body#product.product-id-2203#product.product-id-2203 #description .sb-carte-n{font-family:"Helvetica Neue", Helvetica, Inter, Arial, sans-serif !important;font-weight:700 !important}
body#product.product-id-2203#product.product-id-2203 #description .sb-carte-p{font-family:"Helvetica Neue", Helvetica, Inter, Arial, sans-serif !important;font-weight:700 !important}
body#product.product-id-2203#product.product-id-2203 #description .sb-chapo{font-family:"Helvetica Neue", Helvetica, Inter, Arial, sans-serif !important}
body#product.product-id-2203#product.product-id-2203 #description .sb-cle-l{font-family:"Helvetica Neue", Helvetica, Inter, Arial, sans-serif !important;font-weight:700 !important}
body#product.product-id-2203#product.product-id-2203 #description .sb-cle-v{font-family:"Helvetica Neue", Helvetica, Inter, Arial, sans-serif !important;font-weight:700 !important}
body#product.product-id-2203#product.product-id-2203 #description .sb-cmp-td{font-family:"Helvetica Neue", Helvetica, Inter, Arial, sans-serif !important}
body#product.product-id-2203#product.product-id-2203 #description .sb-cmp-th{font-family:"Helvetica Neue", Helvetica, Inter, Arial, sans-serif !important;font-weight:700 !important}
body#product.product-id-2203#product.product-id-2203 #description .sb-h3{font-family:"Helvetica Neue", Helvetica, Inter, Arial, sans-serif !important}
body#product.product-id-2203#product.product-id-2203 #description .sb-leg{color:rgb(126, 126, 136) !important;font-family:"Helvetica Neue", Helvetica, Inter, Arial, sans-serif !important}
body#product.product-id-2203#product.product-id-2203 #description .sb-legd{font-family:"Helvetica Neue", Helvetica, Inter, Arial, sans-serif !important}
body#product.product-id-2203#product.product-id-2203 #description .sb-legl{font-family:"Helvetica Neue", Helvetica, Inter, Arial, sans-serif !important}
body#product.product-id-2203#product.product-id-2203 #description .sb-li{font-family:"Helvetica Neue", Helvetica, Inter, Arial, sans-serif !important}
body#product.product-id-2203#product.product-id-2203 #description .sb-nom{font-family:"Helvetica Neue", Helvetica, Inter, Arial, sans-serif !important;font-weight:700 !important}
body#product.product-id-2203#product.product-id-2203 #description .sb-note{font-family:"Helvetica Neue", Helvetica, Inter, Arial, sans-serif !important}
body#product.product-id-2203#product.product-id-2203 #description .sb-p{font-family:"Helvetica Neue", Helvetica, Inter, Arial, sans-serif !important}
body#product.product-id-2203#product.product-id-2203 #description .sb-sur{font-family:"Helvetica Neue", Helvetica, Inter, Arial, sans-serif !important;font-weight:700 !important}
body#product.product-id-2203#product.product-id-2203 #description .sb-td{color:rgb(79, 79, 87) !important;font-family:"Helvetica Neue", Helvetica, Inter, Arial, sans-serif !important}
body#product.product-id-2203#product.product-id-2203 #description .sb-th{font-family:"Helvetica Neue", Helvetica, Inter, Arial, sans-serif !important;font-weight:700 !important}
body#product.product-id-2203#product.product-id-2203 #description .sb-titre{font-family:"Helvetica Neue", Helvetica, Inter, Arial, sans-serif !important;font-weight:700 !important}
body#product.product-id-2233#product.product-id-2233 #description .sb-badge{font-family:"Noto Sans", "Helvetica Neue", Helvetica, Arial, sans-serif !important;font-weight:700 !important}
body#product.product-id-2233#product.product-id-2233 #description .sb-carte-g{font-family:"Noto Sans", "Helvetica Neue", Helvetica, Arial, sans-serif !important}
body#product.product-id-2233#product.product-id-2233 #description .sb-carte-n{font-family:"Noto Sans", "Helvetica Neue", Helvetica, Arial, sans-serif !important;font-weight:700 !important}
body#product.product-id-2233#product.product-id-2233 #description .sb-carte-p{font-family:"Noto Sans", "Helvetica Neue", Helvetica, Arial, sans-serif !important;font-weight:700 !important}
body#product.product-id-2233#product.product-id-2233 #description .sb-chapo{font-family:"Noto Sans", "Helvetica Neue", Helvetica, Arial, sans-serif !important}
body#product.product-id-2233#product.product-id-2233 #description .sb-cle-l{font-family:"Noto Sans", "Helvetica Neue", Helvetica, Arial, sans-serif !important;font-weight:700 !important}
body#product.product-id-2233#product.product-id-2233 #description .sb-cle-v{font-family:"Noto Sans", "Helvetica Neue", Helvetica, Arial, sans-serif !important;font-weight:700 !important}
body#product.product-id-2233#product.product-id-2233 #description .sb-cmp-td{font-family:"Noto Sans", "Helvetica Neue", Helvetica, Arial, sans-serif !important}
body#product.product-id-2233#product.product-id-2233 #description .sb-cmp-th{font-family:"Noto Sans", "Helvetica Neue", Helvetica, Arial, sans-serif !important;font-weight:700 !important}
body#product.product-id-2233#product.product-id-2233 #description .sb-h3{font-family:"Noto Sans", "Helvetica Neue", Helvetica, Arial, sans-serif !important}
body#product.product-id-2233#product.product-id-2233 #description .sb-leg{color:rgb(122, 122, 122) !important;font-family:"Noto Sans", "Helvetica Neue", Helvetica, Arial, sans-serif !important}
body#product.product-id-2233#product.product-id-2233 #description .sb-legd{font-family:"Noto Sans", "Helvetica Neue", Helvetica, Arial, sans-serif !important}
body#product.product-id-2233#product.product-id-2233 #description .sb-legl{font-family:"Noto Sans", "Helvetica Neue", Helvetica, Arial, sans-serif !important}
body#product.product-id-2233#product.product-id-2233 #description .sb-li{font-family:"Noto Sans", "Helvetica Neue", Helvetica, Arial, sans-serif !important}
body#product.product-id-2233#product.product-id-2233 #description .sb-nom{font-family:"Noto Sans", "Helvetica Neue", Helvetica, Arial, sans-serif !important;font-weight:700 !important}
body#product.product-id-2233#product.product-id-2233 #description .sb-note{font-family:"Noto Sans", "Helvetica Neue", Helvetica, Arial, sans-serif !important}
body#product.product-id-2233#product.product-id-2233 #description .sb-p{font-family:"Noto Sans", "Helvetica Neue", Helvetica, Arial, sans-serif !important}
body#product.product-id-2233#product.product-id-2233 #description .sb-sur{font-family:"Noto Sans", "Helvetica Neue", Helvetica, Arial, sans-serif !important;font-weight:700 !important}
body#product.product-id-2233#product.product-id-2233 #description .sb-td{color:rgb(79, 79, 79) !important;font-family:"Noto Sans", "Helvetica Neue", Helvetica, Arial, sans-serif !important}
body#product.product-id-2233#product.product-id-2233 #description .sb-th{font-family:"Noto Sans", "Helvetica Neue", Helvetica, Arial, sans-serif !important;font-weight:700 !important}
body#product.product-id-2233#product.product-id-2233 #description .sb-titre{font-family:"Noto Sans", "Helvetica Neue", Helvetica, Arial, sans-serif !important;font-weight:700 !important}
body#product.product-id-2497#product.product-id-2497 #description .sb-badge{font-family:"Noto Sans", "Helvetica Neue", Helvetica, Arial, sans-serif !important;font-weight:700 !important}
body#product.product-id-2497#product.product-id-2497 #description .sb-carte-g{font-family:"Noto Sans", "Helvetica Neue", Helvetica, Arial, sans-serif !important}
body#product.product-id-2497#product.product-id-2497 #description .sb-carte-n{font-family:"Noto Sans", "Helvetica Neue", Helvetica, Arial, sans-serif !important;font-weight:700 !important}
body#product.product-id-2497#product.product-id-2497 #description .sb-carte-p{font-family:"Noto Sans", "Helvetica Neue", Helvetica, Arial, sans-serif !important;font-weight:700 !important}
body#product.product-id-2497#product.product-id-2497 #description .sb-chapo{font-family:"Noto Sans", "Helvetica Neue", Helvetica, Arial, sans-serif !important}
body#product.product-id-2497#product.product-id-2497 #description .sb-cle-l{font-family:"Noto Sans", "Helvetica Neue", Helvetica, Arial, sans-serif !important;font-weight:700 !important}
body#product.product-id-2497#product.product-id-2497 #description .sb-cle-v{font-family:"Noto Sans", "Helvetica Neue", Helvetica, Arial, sans-serif !important;font-weight:700 !important}
body#product.product-id-2497#product.product-id-2497 #description .sb-cmp-td{font-family:"Noto Sans", "Helvetica Neue", Helvetica, Arial, sans-serif !important}
body#product.product-id-2497#product.product-id-2497 #description .sb-cmp-th{font-family:"Noto Sans", "Helvetica Neue", Helvetica, Arial, sans-serif !important;font-weight:700 !important}
body#product.product-id-2497#product.product-id-2497 #description .sb-h3{font-family:"Noto Sans", "Helvetica Neue", Helvetica, Arial, sans-serif !important}
body#product.product-id-2497#product.product-id-2497 #description .sb-leg{color:rgb(122, 122, 122) !important;font-family:"Noto Sans", "Helvetica Neue", Helvetica, Arial, sans-serif !important}
body#product.product-id-2497#product.product-id-2497 #description .sb-legd{font-family:"Noto Sans", "Helvetica Neue", Helvetica, Arial, sans-serif !important}
body#product.product-id-2497#product.product-id-2497 #description .sb-legl{font-family:"Noto Sans", "Helvetica Neue", Helvetica, Arial, sans-serif !important}
body#product.product-id-2497#product.product-id-2497 #description .sb-li{font-family:"Noto Sans", "Helvetica Neue", Helvetica, Arial, sans-serif !important}
body#product.product-id-2497#product.product-id-2497 #description .sb-nom{font-family:"Noto Sans", "Helvetica Neue", Helvetica, Arial, sans-serif !important;font-weight:700 !important}
body#product.product-id-2497#product.product-id-2497 #description .sb-note{font-family:"Noto Sans", "Helvetica Neue", Helvetica, Arial, sans-serif !important}
body#product.product-id-2497#product.product-id-2497 #description .sb-p{font-family:"Noto Sans", "Helvetica Neue", Helvetica, Arial, sans-serif !important}
body#product.product-id-2497#product.product-id-2497 #description .sb-sur{font-family:"Noto Sans", "Helvetica Neue", Helvetica, Arial, sans-serif !important;font-weight:700 !important}
body#product.product-id-2497#product.product-id-2497 #description .sb-td{color:rgb(79, 79, 79) !important;font-family:"Noto Sans", "Helvetica Neue", Helvetica, Arial, sans-serif !important}
body#product.product-id-2497#product.product-id-2497 #description .sb-th{font-family:"Noto Sans", "Helvetica Neue", Helvetica, Arial, sans-serif !important;font-weight:700 !important}
body#product.product-id-2497#product.product-id-2497 #description .sb-titre{font-family:"Noto Sans", "Helvetica Neue", Helvetica, Arial, sans-serif !important;font-weight:700 !important}
body#product.product-id-2695#product.product-id-2695 #description .sb-badge{font-family:"Noto Sans", "Helvetica Neue", Helvetica, Arial, sans-serif !important;font-weight:700 !important}
body#product.product-id-2695#product.product-id-2695 #description .sb-carte-g{font-family:"Noto Sans", "Helvetica Neue", Helvetica, Arial, sans-serif !important}
body#product.product-id-2695#product.product-id-2695 #description .sb-carte-n{font-family:"Noto Sans", "Helvetica Neue", Helvetica, Arial, sans-serif !important;font-weight:700 !important}
body#product.product-id-2695#product.product-id-2695 #description .sb-carte-p{font-family:"Noto Sans", "Helvetica Neue", Helvetica, Arial, sans-serif !important;font-weight:700 !important}
body#product.product-id-2695#product.product-id-2695 #description .sb-chapo{font-family:"Noto Sans", "Helvetica Neue", Helvetica, Arial, sans-serif !important}
body#product.product-id-2695#product.product-id-2695 #description .sb-cle-l{font-family:"Noto Sans", "Helvetica Neue", Helvetica, Arial, sans-serif !important;font-weight:700 !important}
body#product.product-id-2695#product.product-id-2695 #description .sb-cle-v{font-family:"Noto Sans", "Helvetica Neue", Helvetica, Arial, sans-serif !important;font-weight:700 !important}
body#product.product-id-2695#product.product-id-2695 #description .sb-cmp-td{font-family:"Noto Sans", "Helvetica Neue", Helvetica, Arial, sans-serif !important}
body#product.product-id-2695#product.product-id-2695 #description .sb-cmp-th{font-family:"Noto Sans", "Helvetica Neue", Helvetica, Arial, sans-serif !important;font-weight:700 !important}
body#product.product-id-2695#product.product-id-2695 #description .sb-h3{font-family:"Noto Sans", "Helvetica Neue", Helvetica, Arial, sans-serif !important}
body#product.product-id-2695#product.product-id-2695 #description .sb-leg{color:rgb(122, 122, 122) !important;font-family:"Noto Sans", "Helvetica Neue", Helvetica, Arial, sans-serif !important}
body#product.product-id-2695#product.product-id-2695 #description .sb-legd{font-family:"Noto Sans", "Helvetica Neue", Helvetica, Arial, sans-serif !important}
body#product.product-id-2695#product.product-id-2695 #description .sb-legl{font-family:"Noto Sans", "Helvetica Neue", Helvetica, Arial, sans-serif !important}
body#product.product-id-2695#product.product-id-2695 #description .sb-li{font-family:"Noto Sans", "Helvetica Neue", Helvetica, Arial, sans-serif !important}
body#product.product-id-2695#product.product-id-2695 #description .sb-nom{font-family:"Noto Sans", "Helvetica Neue", Helvetica, Arial, sans-serif !important;font-weight:700 !important}
body#product.product-id-2695#product.product-id-2695 #description .sb-note{font-family:"Noto Sans", "Helvetica Neue", Helvetica, Arial, sans-serif !important}
body#product.product-id-2695#product.product-id-2695 #description .sb-p{font-family:"Noto Sans", "Helvetica Neue", Helvetica, Arial, sans-serif !important}
body#product.product-id-2695#product.product-id-2695 #description .sb-sur{font-family:"Noto Sans", "Helvetica Neue", Helvetica, Arial, sans-serif !important;font-weight:700 !important}
body#product.product-id-2695#product.product-id-2695 #description .sb-td{color:rgb(79, 79, 79) !important;font-family:"Noto Sans", "Helvetica Neue", Helvetica, Arial, sans-serif !important}
body#product.product-id-2695#product.product-id-2695 #description .sb-th{font-family:"Noto Sans", "Helvetica Neue", Helvetica, Arial, sans-serif !important;font-weight:700 !important}
body#product.product-id-2695#product.product-id-2695 #description .sb-titre{font-family:"Noto Sans", "Helvetica Neue", Helvetica, Arial, sans-serif !important;font-weight:700 !important}
body#product.product-id-2696#product.product-id-2696 #description .sb-badge{font-family:"Noto Sans", "Helvetica Neue", Helvetica, Arial, sans-serif !important;font-weight:700 !important}
body#product.product-id-2696#product.product-id-2696 #description .sb-carte-g{font-family:"Noto Sans", "Helvetica Neue", Helvetica, Arial, sans-serif !important}
body#product.product-id-2696#product.product-id-2696 #description .sb-carte-n{font-family:"Noto Sans", "Helvetica Neue", Helvetica, Arial, sans-serif !important;font-weight:700 !important}
body#product.product-id-2696#product.product-id-2696 #description .sb-carte-p{font-family:"Noto Sans", "Helvetica Neue", Helvetica, Arial, sans-serif !important;font-weight:700 !important}
body#product.product-id-2696#product.product-id-2696 #description .sb-chapo{font-family:"Noto Sans", "Helvetica Neue", Helvetica, Arial, sans-serif !important}
body#product.product-id-2696#product.product-id-2696 #description .sb-cle-l{font-family:"Noto Sans", "Helvetica Neue", Helvetica, Arial, sans-serif !important;font-weight:700 !important}
body#product.product-id-2696#product.product-id-2696 #description .sb-cle-v{font-family:"Noto Sans", "Helvetica Neue", Helvetica, Arial, sans-serif !important;font-weight:700 !important}
body#product.product-id-2696#product.product-id-2696 #description .sb-cmp-td{font-family:"Noto Sans", "Helvetica Neue", Helvetica, Arial, sans-serif !important}
body#product.product-id-2696#product.product-id-2696 #description .sb-cmp-th{font-family:"Noto Sans", "Helvetica Neue", Helvetica, Arial, sans-serif !important;font-weight:700 !important}
body#product.product-id-2696#product.product-id-2696 #description .sb-h3{font-family:"Noto Sans", "Helvetica Neue", Helvetica, Arial, sans-serif !important}
body#product.product-id-2696#product.product-id-2696 #description .sb-leg{color:rgb(122, 122, 122) !important;font-family:"Noto Sans", "Helvetica Neue", Helvetica, Arial, sans-serif !important}
body#product.product-id-2696#product.product-id-2696 #description .sb-legd{font-family:"Noto Sans", "Helvetica Neue", Helvetica, Arial, sans-serif !important}
body#product.product-id-2696#product.product-id-2696 #description .sb-legl{font-family:"Noto Sans", "Helvetica Neue", Helvetica, Arial, sans-serif !important}
body#product.product-id-2696#product.product-id-2696 #description .sb-li{font-family:"Noto Sans", "Helvetica Neue", Helvetica, Arial, sans-serif !important}
body#product.product-id-2696#product.product-id-2696 #description .sb-nom{font-family:"Noto Sans", "Helvetica Neue", Helvetica, Arial, sans-serif !important;font-weight:700 !important}
body#product.product-id-2696#product.product-id-2696 #description .sb-note{font-family:"Noto Sans", "Helvetica Neue", Helvetica, Arial, sans-serif !important}
body#product.product-id-2696#product.product-id-2696 #description .sb-p{font-family:"Noto Sans", "Helvetica Neue", Helvetica, Arial, sans-serif !important}
body#product.product-id-2696#product.product-id-2696 #description .sb-sur{font-family:"Noto Sans", "Helvetica Neue", Helvetica, Arial, sans-serif !important;font-weight:700 !important}
body#product.product-id-2696#product.product-id-2696 #description .sb-td{color:rgb(79, 79, 79) !important;font-family:"Noto Sans", "Helvetica Neue", Helvetica, Arial, sans-serif !important}
body#product.product-id-2696#product.product-id-2696 #description .sb-th{font-family:"Noto Sans", "Helvetica Neue", Helvetica, Arial, sans-serif !important;font-weight:700 !important}
body#product.product-id-2696#product.product-id-2696 #description .sb-titre{font-family:"Noto Sans", "Helvetica Neue", Helvetica, Arial, sans-serif !important;font-weight:700 !important}
body#product.product-id-category-246#product.product-id-category-246 #description .sb-td{color:rgb(26, 33, 32) !important}
body#product.product-id-category-271#product.product-id-category-271 #description .sb-badge{font-family:Inter, "Helvetica Neue", Helvetica, Arial, sans-serif !important;font-weight:700 !important}
body#product.product-id-category-271#product.product-id-category-271 #description .sb-carte-g{font-family:Inter, "Helvetica Neue", Helvetica, Arial, sans-serif !important}
body#product.product-id-category-271#product.product-id-category-271 #description .sb-carte-n{font-family:Inter, "Helvetica Neue", Helvetica, Arial, sans-serif !important;font-weight:700 !important}
body#product.product-id-category-271#product.product-id-category-271 #description .sb-carte-p{font-family:Inter, "Helvetica Neue", Helvetica, Arial, sans-serif !important;font-weight:700 !important}
body#product.product-id-category-271#product.product-id-category-271 #description .sb-chapo{font-family:Inter, "Helvetica Neue", Helvetica, Arial, sans-serif !important}
body#product.product-id-category-271#product.product-id-category-271 #description .sb-cle-l{font-family:Inter, "Helvetica Neue", Helvetica, Arial, sans-serif !important;font-weight:700 !important}
body#product.product-id-category-271#product.product-id-category-271 #description .sb-cle-v{font-family:Inter, "Helvetica Neue", Helvetica, Arial, sans-serif !important;font-weight:700 !important}
body#product.product-id-category-271#product.product-id-category-271 #description .sb-cmp-td{font-family:Inter, "Helvetica Neue", Helvetica, Arial, sans-serif !important}
body#product.product-id-category-271#product.product-id-category-271 #description .sb-cmp-th{font-family:Inter, "Helvetica Neue", Helvetica, Arial, sans-serif !important;font-weight:700 !important}
body#product.product-id-category-271#product.product-id-category-271 #description .sb-h3{font-family:Inter, "Helvetica Neue", Helvetica, Arial, sans-serif !important}
body#product.product-id-category-271#product.product-id-category-271 #description .sb-leg{color:rgb(130, 134, 140) !important;font-family:Inter, "Helvetica Neue", Helvetica, Arial, sans-serif !important}
body#product.product-id-category-271#product.product-id-category-271 #description .sb-legd{font-family:Inter, "Helvetica Neue", Helvetica, Arial, sans-serif !important}
body#product.product-id-category-271#product.product-id-category-271 #description .sb-legl{font-family:Inter, "Helvetica Neue", Helvetica, Arial, sans-serif !important}
body#product.product-id-category-271#product.product-id-category-271 #description .sb-li{font-family:Inter, "Helvetica Neue", Helvetica, Arial, sans-serif !important}
body#product.product-id-category-271#product.product-id-category-271 #description .sb-nom{font-family:Inter, "Helvetica Neue", Helvetica, Arial, sans-serif !important;font-weight:700 !important}
body#product.product-id-category-271#product.product-id-category-271 #description .sb-note{font-family:Inter, "Helvetica Neue", Helvetica, Arial, sans-serif !important}
body#product.product-id-category-271#product.product-id-category-271 #description .sb-p{font-family:Inter, "Helvetica Neue", Helvetica, Arial, sans-serif !important}
body#product.product-id-category-271#product.product-id-category-271 #description .sb-sur{font-family:Inter, "Helvetica Neue", Helvetica, Arial, sans-serif !important;font-weight:700 !important}
body#product.product-id-category-271#product.product-id-category-271 #description .sb-td{color:rgb(91, 95, 102) !important;font-family:Inter, "Helvetica Neue", Helvetica, Arial, sans-serif !important}
body#product.product-id-category-271#product.product-id-category-271 #description .sb-th{font-family:Inter, "Helvetica Neue", Helvetica, Arial, sans-serif !important;font-weight:700 !important}
body#product.product-id-category-271#product.product-id-category-271 #description .sb-titre{font-family:Inter, "Helvetica Neue", Helvetica, Arial, sans-serif !important;font-weight:700 !important}
body#product.product-id-category-272#product.product-id-category-272 #description .sb-badge{font-family:Barlow, "Helvetica Neue", Helvetica, Arial, sans-serif !important;font-weight:700 !important}
body#product.product-id-category-272#product.product-id-category-272 #description .sb-carte-g{font-family:Barlow, "Helvetica Neue", Helvetica, Arial, sans-serif !important}
body#product.product-id-category-272#product.product-id-category-272 #description .sb-carte-n{font-family:Barlow, "Helvetica Neue", Helvetica, Arial, sans-serif !important;font-weight:700 !important}
body#product.product-id-category-272#product.product-id-category-272 #description .sb-carte-p{font-family:Barlow, "Helvetica Neue", Helvetica, Arial, sans-serif !important;font-weight:700 !important}
body#product.product-id-category-272#product.product-id-category-272 #description .sb-chapo{font-family:Barlow, "Helvetica Neue", Helvetica, Arial, sans-serif !important}
body#product.product-id-category-272#product.product-id-category-272 #description .sb-cle-l{font-family:Barlow, "Helvetica Neue", Helvetica, Arial, sans-serif !important;font-weight:700 !important}
body#product.product-id-category-272#product.product-id-category-272 #description .sb-cle-v{font-family:Barlow, "Helvetica Neue", Helvetica, Arial, sans-serif !important;font-weight:700 !important}
body#product.product-id-category-272#product.product-id-category-272 #description .sb-cmp-td{font-family:Barlow, "Helvetica Neue", Helvetica, Arial, sans-serif !important}
body#product.product-id-category-272#product.product-id-category-272 #description .sb-cmp-th{font-family:Barlow, "Helvetica Neue", Helvetica, Arial, sans-serif !important;font-weight:700 !important}
body#product.product-id-category-272#product.product-id-category-272 #description .sb-h3{font-family:Barlow, "Helvetica Neue", Helvetica, Arial, sans-serif !important}
body#product.product-id-category-272#product.product-id-category-272 #description .sb-leg{color:rgb(122, 122, 124) !important;font-family:Barlow, "Helvetica Neue", Helvetica, Arial, sans-serif !important}
body#product.product-id-category-272#product.product-id-category-272 #description .sb-legd{font-family:Barlow, "Helvetica Neue", Helvetica, Arial, sans-serif !important}
body#product.product-id-category-272#product.product-id-category-272 #description .sb-legl{font-family:Barlow, "Helvetica Neue", Helvetica, Arial, sans-serif !important}
body#product.product-id-category-272#product.product-id-category-272 #description .sb-li{font-family:Barlow, "Helvetica Neue", Helvetica, Arial, sans-serif !important}
body#product.product-id-category-272#product.product-id-category-272 #description .sb-nom{font-family:Barlow, "Helvetica Neue", Helvetica, Arial, sans-serif !important;font-weight:700 !important}
body#product.product-id-category-272#product.product-id-category-272 #description .sb-note{font-family:Barlow, "Helvetica Neue", Helvetica, Arial, sans-serif !important}
body#product.product-id-category-272#product.product-id-category-272 #description .sb-p{font-family:Barlow, "Helvetica Neue", Helvetica, Arial, sans-serif !important}
body#product.product-id-category-272#product.product-id-category-272 #description .sb-sur{font-family:Barlow, "Helvetica Neue", Helvetica, Arial, sans-serif !important;font-weight:700 !important}
body#product.product-id-category-272#product.product-id-category-272 #description .sb-td{color:rgb(76, 76, 78) !important;font-family:Barlow, "Helvetica Neue", Helvetica, Arial, sans-serif !important}
body#product.product-id-category-272#product.product-id-category-272 #description .sb-th{font-family:Barlow, "Helvetica Neue", Helvetica, Arial, sans-serif !important;font-weight:700 !important}
body#product.product-id-category-272#product.product-id-category-272 #description .sb-titre{font-family:Barlow, "Helvetica Neue", Helvetica, Arial, sans-serif !important;font-weight:700 !important}
body#product.product-id-category-273#product.product-id-category-273 #description .sb-badge{font-family:Manrope, "Helvetica Neue", Helvetica, Arial, sans-serif !important;font-weight:700 !important}
body#product.product-id-category-273#product.product-id-category-273 #description .sb-carte-g{font-family:Manrope, "Helvetica Neue", Helvetica, Arial, sans-serif !important}
body#product.product-id-category-273#product.product-id-category-273 #description .sb-carte-n{font-family:Manrope, "Helvetica Neue", Helvetica, Arial, sans-serif !important;font-weight:700 !important}
body#product.product-id-category-273#product.product-id-category-273 #description .sb-carte-p{font-family:Manrope, "Helvetica Neue", Helvetica, Arial, sans-serif !important;font-weight:700 !important}
body#product.product-id-category-273#product.product-id-category-273 #description .sb-chapo{font-family:Manrope, "Helvetica Neue", Helvetica, Arial, sans-serif !important}
body#product.product-id-category-273#product.product-id-category-273 #description .sb-cle-l{font-family:Manrope, "Helvetica Neue", Helvetica, Arial, sans-serif !important;font-weight:700 !important}
body#product.product-id-category-273#product.product-id-category-273 #description .sb-cle-v{font-family:Manrope, "Helvetica Neue", Helvetica, Arial, sans-serif !important;font-weight:700 !important}
body#product.product-id-category-273#product.product-id-category-273 #description .sb-cmp-td{font-family:Manrope, "Helvetica Neue", Helvetica, Arial, sans-serif !important}
body#product.product-id-category-273#product.product-id-category-273 #description .sb-cmp-th{font-family:Manrope, "Helvetica Neue", Helvetica, Arial, sans-serif !important;font-weight:700 !important}
body#product.product-id-category-273#product.product-id-category-273 #description .sb-h3{font-family:Manrope, "Helvetica Neue", Helvetica, Arial, sans-serif !important}
body#product.product-id-category-273#product.product-id-category-273 #description .sb-leg{color:rgb(125, 128, 132) !important;font-family:Manrope, "Helvetica Neue", Helvetica, Arial, sans-serif !important}
body#product.product-id-category-273#product.product-id-category-273 #description .sb-legd{font-family:Manrope, "Helvetica Neue", Helvetica, Arial, sans-serif !important}
body#product.product-id-category-273#product.product-id-category-273 #description .sb-legl{font-family:Manrope, "Helvetica Neue", Helvetica, Arial, sans-serif !important}
body#product.product-id-category-273#product.product-id-category-273 #description .sb-li{font-family:Manrope, "Helvetica Neue", Helvetica, Arial, sans-serif !important}
body#product.product-id-category-273#product.product-id-category-273 #description .sb-nom{font-family:Manrope, "Helvetica Neue", Helvetica, Arial, sans-serif !important;font-weight:700 !important}
body#product.product-id-category-273#product.product-id-category-273 #description .sb-note{font-family:Manrope, "Helvetica Neue", Helvetica, Arial, sans-serif !important}
body#product.product-id-category-273#product.product-id-category-273 #description .sb-p{font-family:Manrope, "Helvetica Neue", Helvetica, Arial, sans-serif !important}
body#product.product-id-category-273#product.product-id-category-273 #description .sb-sur{font-family:Manrope, "Helvetica Neue", Helvetica, Arial, sans-serif !important;font-weight:700 !important}
body#product.product-id-category-273#product.product-id-category-273 #description .sb-td{color:rgb(73, 76, 79) !important;font-family:Manrope, "Helvetica Neue", Helvetica, Arial, sans-serif !important}
body#product.product-id-category-273#product.product-id-category-273 #description .sb-th{font-family:Manrope, "Helvetica Neue", Helvetica, Arial, sans-serif !important;font-weight:700 !important}
body#product.product-id-category-273#product.product-id-category-273 #description .sb-titre{font-family:Manrope, "Helvetica Neue", Helvetica, Arial, sans-serif !important;font-weight:700 !important}
body#product.product-id-category-274#product.product-id-category-274 #description .sb-badge{font-family:"Helvetica Neue", Helvetica, Inter, Arial, sans-serif !important;font-weight:700 !important}
body#product.product-id-category-274#product.product-id-category-274 #description .sb-carte-g{font-family:"Helvetica Neue", Helvetica, Inter, Arial, sans-serif !important}
body#product.product-id-category-274#product.product-id-category-274 #description .sb-carte-n{font-family:"Helvetica Neue", Helvetica, Inter, Arial, sans-serif !important;font-weight:700 !important}
body#product.product-id-category-274#product.product-id-category-274 #description .sb-carte-p{font-family:"Helvetica Neue", Helvetica, Inter, Arial, sans-serif !important;font-weight:700 !important}
body#product.product-id-category-274#product.product-id-category-274 #description .sb-chapo{font-family:"Helvetica Neue", Helvetica, Inter, Arial, sans-serif !important}
body#product.product-id-category-274#product.product-id-category-274 #description .sb-cle-l{font-family:"Helvetica Neue", Helvetica, Inter, Arial, sans-serif !important;font-weight:700 !important}
body#product.product-id-category-274#product.product-id-category-274 #description .sb-cle-v{font-family:"Helvetica Neue", Helvetica, Inter, Arial, sans-serif !important;font-weight:700 !important}
body#product.product-id-category-274#product.product-id-category-274 #description .sb-cmp-td{font-family:"Helvetica Neue", Helvetica, Inter, Arial, sans-serif !important}
body#product.product-id-category-274#product.product-id-category-274 #description .sb-cmp-th{font-family:"Helvetica Neue", Helvetica, Inter, Arial, sans-serif !important;font-weight:700 !important}
body#product.product-id-category-274#product.product-id-category-274 #description .sb-h3{font-family:"Helvetica Neue", Helvetica, Inter, Arial, sans-serif !important}
body#product.product-id-category-274#product.product-id-category-274 #description .sb-leg{color:rgb(126, 126, 136) !important;font-family:"Helvetica Neue", Helvetica, Inter, Arial, sans-serif !important}
body#product.product-id-category-274#product.product-id-category-274 #description .sb-legd{font-family:"Helvetica Neue", Helvetica, Inter, Arial, sans-serif !important}
body#product.product-id-category-274#product.product-id-category-274 #description .sb-legl{font-family:"Helvetica Neue", Helvetica, Inter, Arial, sans-serif !important}
body#product.product-id-category-274#product.product-id-category-274 #description .sb-li{font-family:"Helvetica Neue", Helvetica, Inter, Arial, sans-serif !important}
body#product.product-id-category-274#product.product-id-category-274 #description .sb-nom{font-family:"Helvetica Neue", Helvetica, Inter, Arial, sans-serif !important;font-weight:700 !important}
body#product.product-id-category-274#product.product-id-category-274 #description .sb-note{font-family:"Helvetica Neue", Helvetica, Inter, Arial, sans-serif !important}
body#product.product-id-category-274#product.product-id-category-274 #description .sb-p{font-family:"Helvetica Neue", Helvetica, Inter, Arial, sans-serif !important}
body#product.product-id-category-274#product.product-id-category-274 #description .sb-sur{font-family:"Helvetica Neue", Helvetica, Inter, Arial, sans-serif !important;font-weight:700 !important}
body#product.product-id-category-274#product.product-id-category-274 #description .sb-td{color:rgb(79, 79, 87) !important;font-family:"Helvetica Neue", Helvetica, Inter, Arial, sans-serif !important}
body#product.product-id-category-274#product.product-id-category-274 #description .sb-th{font-family:"Helvetica Neue", Helvetica, Inter, Arial, sans-serif !important;font-weight:700 !important}
body#product.product-id-category-274#product.product-id-category-274 #description .sb-titre{font-family:"Helvetica Neue", Helvetica, Inter, Arial, sans-serif !important;font-weight:700 !important}
body#product.product-id-category-276#product.product-id-category-276 #description .sb-badge{font-family:Roboto, "Helvetica Neue", Helvetica, Arial, sans-serif !important;font-weight:700 !important}
body#product.product-id-category-276#product.product-id-category-276 #description .sb-carte-g{font-family:Roboto, "Helvetica Neue", Helvetica, Arial, sans-serif !important}
body#product.product-id-category-276#product.product-id-category-276 #description .sb-carte-n{font-family:Roboto, "Helvetica Neue", Helvetica, Arial, sans-serif !important;font-weight:700 !important}
body#product.product-id-category-276#product.product-id-category-276 #description .sb-carte-p{font-family:Roboto, "Helvetica Neue", Helvetica, Arial, sans-serif !important;font-weight:700 !important}
body#product.product-id-category-276#product.product-id-category-276 #description .sb-chapo{font-family:Roboto, "Helvetica Neue", Helvetica, Arial, sans-serif !important}
body#product.product-id-category-276#product.product-id-category-276 #description .sb-cle-l{font-family:Roboto, "Helvetica Neue", Helvetica, Arial, sans-serif !important;font-weight:700 !important}
body#product.product-id-category-276#product.product-id-category-276 #description .sb-cle-v{font-family:Roboto, "Helvetica Neue", Helvetica, Arial, sans-serif !important;font-weight:700 !important}
body#product.product-id-category-276#product.product-id-category-276 #description .sb-cmp-td{font-family:Roboto, "Helvetica Neue", Helvetica, Arial, sans-serif !important}
body#product.product-id-category-276#product.product-id-category-276 #description .sb-cmp-th{font-family:Roboto, "Helvetica Neue", Helvetica, Arial, sans-serif !important;font-weight:700 !important}
body#product.product-id-category-276#product.product-id-category-276 #description .sb-h3{font-family:Roboto, "Helvetica Neue", Helvetica, Arial, sans-serif !important}
body#product.product-id-category-276#product.product-id-category-276 #description .sb-leg{color:rgb(118, 118, 118) !important;font-family:Roboto, "Helvetica Neue", Helvetica, Arial, sans-serif !important}
body#product.product-id-category-276#product.product-id-category-276 #description .sb-legd{font-family:Roboto, "Helvetica Neue", Helvetica, Arial, sans-serif !important}
body#product.product-id-category-276#product.product-id-category-276 #description .sb-legl{font-family:Roboto, "Helvetica Neue", Helvetica, Arial, sans-serif !important}
body#product.product-id-category-276#product.product-id-category-276 #description .sb-li{font-family:Roboto, "Helvetica Neue", Helvetica, Arial, sans-serif !important}
body#product.product-id-category-276#product.product-id-category-276 #description .sb-nom{font-family:Roboto, "Helvetica Neue", Helvetica, Arial, sans-serif !important;font-weight:700 !important}
body#product.product-id-category-276#product.product-id-category-276 #description .sb-note{font-family:Roboto, "Helvetica Neue", Helvetica, Arial, sans-serif !important}
body#product.product-id-category-276#product.product-id-category-276 #description .sb-p{font-family:Roboto, "Helvetica Neue", Helvetica, Arial, sans-serif !important}
body#product.product-id-category-276#product.product-id-category-276 #description .sb-sur{font-family:Roboto, "Helvetica Neue", Helvetica, Arial, sans-serif !important;font-weight:700 !important}
body#product.product-id-category-276#product.product-id-category-276 #description .sb-td{color:rgb(89, 89, 89) !important;font-family:Roboto, "Helvetica Neue", Helvetica, Arial, sans-serif !important}
body#product.product-id-category-276#product.product-id-category-276 #description .sb-th{font-family:Roboto, "Helvetica Neue", Helvetica, Arial, sans-serif !important;font-weight:700 !important}
body#product.product-id-category-276#product.product-id-category-276 #description .sb-titre{font-family:Roboto, "Helvetica Neue", Helvetica, Arial, sans-serif !important;font-weight:700 !important}
body#product.product-id-category-53#product.product-id-category-53 #description .sb-badge{font-family:"Noto Sans", "Helvetica Neue", Helvetica, Arial, sans-serif !important;font-weight:700 !important}
body#product.product-id-category-53#product.product-id-category-53 #description .sb-carte-g{font-family:"Noto Sans", "Helvetica Neue", Helvetica, Arial, sans-serif !important}
body#product.product-id-category-53#product.product-id-category-53 #description .sb-carte-n{font-family:"Noto Sans", "Helvetica Neue", Helvetica, Arial, sans-serif !important;font-weight:700 !important}
body#product.product-id-category-53#product.product-id-category-53 #description .sb-carte-p{font-family:"Noto Sans", "Helvetica Neue", Helvetica, Arial, sans-serif !important;font-weight:700 !important}
body#product.product-id-category-53#product.product-id-category-53 #description .sb-chapo{font-family:"Noto Sans", "Helvetica Neue", Helvetica, Arial, sans-serif !important}
body#product.product-id-category-53#product.product-id-category-53 #description .sb-cle-l{font-family:"Noto Sans", "Helvetica Neue", Helvetica, Arial, sans-serif !important;font-weight:700 !important}
body#product.product-id-category-53#product.product-id-category-53 #description .sb-cle-v{font-family:"Noto Sans", "Helvetica Neue", Helvetica, Arial, sans-serif !important;font-weight:700 !important}
body#product.product-id-category-53#product.product-id-category-53 #description .sb-cmp-td{font-family:"Noto Sans", "Helvetica Neue", Helvetica, Arial, sans-serif !important}
body#product.product-id-category-53#product.product-id-category-53 #description .sb-cmp-th{font-family:"Noto Sans", "Helvetica Neue", Helvetica, Arial, sans-serif !important;font-weight:700 !important}
body#product.product-id-category-53#product.product-id-category-53 #description .sb-h3{font-family:"Noto Sans", "Helvetica Neue", Helvetica, Arial, sans-serif !important}
body#product.product-id-category-53#product.product-id-category-53 #description .sb-leg{color:rgb(122, 122, 122) !important;font-family:"Noto Sans", "Helvetica Neue", Helvetica, Arial, sans-serif !important}
body#product.product-id-category-53#product.product-id-category-53 #description .sb-legd{font-family:"Noto Sans", "Helvetica Neue", Helvetica, Arial, sans-serif !important}
body#product.product-id-category-53#product.product-id-category-53 #description .sb-legl{font-family:"Noto Sans", "Helvetica Neue", Helvetica, Arial, sans-serif !important}
body#product.product-id-category-53#product.product-id-category-53 #description .sb-li{font-family:"Noto Sans", "Helvetica Neue", Helvetica, Arial, sans-serif !important}
body#product.product-id-category-53#product.product-id-category-53 #description .sb-nom{font-family:"Noto Sans", "Helvetica Neue", Helvetica, Arial, sans-serif !important;font-weight:700 !important}
body#product.product-id-category-53#product.product-id-category-53 #description .sb-note{font-family:"Noto Sans", "Helvetica Neue", Helvetica, Arial, sans-serif !important}
body#product.product-id-category-53#product.product-id-category-53 #description .sb-p{font-family:"Noto Sans", "Helvetica Neue", Helvetica, Arial, sans-serif !important}
body#product.product-id-category-53#product.product-id-category-53 #description .sb-sur{font-family:"Noto Sans", "Helvetica Neue", Helvetica, Arial, sans-serif !important;font-weight:700 !important}
body#product.product-id-category-53#product.product-id-category-53 #description .sb-td{color:rgb(79, 79, 79) !important;font-family:"Noto Sans", "Helvetica Neue", Helvetica, Arial, sans-serif !important}
body#product.product-id-category-53#product.product-id-category-53 #description .sb-th{font-family:"Noto Sans", "Helvetica Neue", Helvetica, Arial, sans-serif !important;font-weight:700 !important}
body#product.product-id-category-53#product.product-id-category-53 #description .sb-titre{font-family:"Noto Sans", "Helvetica Neue", Helvetica, Arial, sans-serif !important;font-weight:700 !important}

/* -- La geometrie des neuf familles : elle part avec le depouillement -- */
body#product#product #description table.sb-badges{width:100% !important;max-width:940px !important;margin:0 auto 30px auto !important}
body#product#product #description table.sb-cles{width:100% !important;max-width:940px !important;margin:0 auto 26px auto !important}
body#product#product #description table.sb-cartes{width:100% !important;max-width:940px !important;margin:0 auto 26px auto !important}
body#product#product #description table.sb-cadre{width:100% !important;max-width:720px !important;margin:0 auto 26px auto !important}
body#product#product #description table.sb-duo{width:100% !important;max-width:720px !important;margin:0 auto 24px auto !important}
body#product#product #description table.sb-paire{width:100% !important;max-width:720px !important;margin:0 auto 24px auto !important}
body#product#product #description table.mb-ap{width:100% !important;max-width:720px !important;margin:30px auto 30px auto !important}
body#product#product #description table.sb-comparo{width:100% !important;max-width:940px !important;margin:0 auto 26px auto !important}
/* le tableau des caracteristiques n a aucune classe : on le vise par exclusion */
body#product#product #description table:not(.sb-badges):not(.sb-cles):not(.sb-cartes):not(.sb-cadre):not(.sb-duo):not(.sb-paire):not(.mb-ap):not(.sb-comparo){width:100% !important;max-width:720px !important;margin:0 auto 16px auto !important}

/* -- La dixieme famille : l aparte de Miss Bud, 672 fiches -- */
body#product #description table.mb-ap{border-collapse:collapse !important;width:100% !important;max-width:720px !important;margin:30px auto 30px auto !important}
body#product #description td.mb-ap-i{background:#F5F2EA !important;border-left:3px solid #88BDB4 !important;padding:16px 0 16px 16px !important;width:216px !important;vertical-align:middle !important}
body#product #description td.mb-ap-t{background:#F5F2EA !important;padding:16px 20px 16px 18px !important;vertical-align:middle !important}
body#product #description td.mb-ap-t p:nth-of-type(1), body#product #description td.mb-ap-t p.mb-ap-sur{margin:0 0 7px 0 !important;font-size:11px !important;font-weight:600 !important;letter-spacing:1.4px !important;color:#7d827e !important}
body#product #description td.mb-ap-t p:nth-of-type(2), body#product #description td.mb-ap-t p.mb-ap-corps{margin:0 0 8px 0 !important;font-size:14px !important;font-weight:400 !important;line-height:1.55 !important;color:#3d443f !important}
body#product #description td.mb-ap-t p:nth-of-type(3), body#product #description td.mb-ap-t p.mb-ap-note{margin:0 !important;font-size:13px !important;font-weight:400 !important;line-height:1.5 !important}

/* -- Les classes -- */
body#product#product #description .sb-badge{color:var(--sb-encre-0) !important;font-family:"Source Sans Pro", "Helvetica Neue", Arial, sans-serif !important;font-size:11px !important;font-weight:600 !important;letter-spacing:1.5px !important;line-height:1.5 !important;text-align:center !important;text-transform:uppercase !important}
body#product#product #description .sb-badges{display:table !important;margin:0px 0px 30px !important;width:100% !important}
body#product#product #description .sb-bande{border:0px none rgb(74, 59, 42) !important;display:block !important;width:100% !important}
body#product#product #description .sb-carte-g{color:var(--sb-encre-1) !important;font-family:"Source Sans Pro", "Helvetica Neue", Arial, sans-serif !important;font-size:13px !important;line-height:1.6 !important;text-align:center !important}
body#product#product #description .sb-carte-n{color:var(--sb-encre-0) !important;font-family:Marcellus, Georgia, serif !important;font-size:14px !important;font-weight:400 !important;line-height:1.45 !important;text-align:center !important}
body#product#product #description .sb-carte-p{color:var(--sb-encre-3) !important;font-family:"Source Sans Pro", "Helvetica Neue", Arial, sans-serif !important;font-size:15px !important;font-weight:600 !important;text-align:center !important}
body#product#product #description .sb-carte-vide{display:table-cell !important}
body#product#product #description .sb-cartes{display:table !important;margin:0px !important;width:100% !important}
body#product#product #description .sb-chapo{color:var(--sb-encre-2) !important;font-family:"Source Sans Pro", "Helvetica Neue", Arial, sans-serif !important;font-size:17px !important;line-height:1.65 !important;text-align:left !important}
body#product#product #description .sb-cle-l{color:var(--sb-encre-1) !important;font-family:"Source Sans Pro", "Helvetica Neue", Arial, sans-serif !important;font-size:10px !important;font-weight:600 !important;letter-spacing:1.6px !important;line-height:1.5 !important;text-align:center !important;text-transform:uppercase !important}
body#product#product #description .sb-cle-v{color:var(--sb-encre-3) !important;font-family:Marcellus, Georgia, serif !important;font-size:23px !important;font-weight:400 !important;line-height:1.25 !important;text-align:center !important}
body#product#product #description .sb-cles{border-bottom:0px none rgb(128, 128, 128) !important;display:table !important;width:100% !important}
body#product#product #description .sb-cmp-td{color:var(--sb-encre-2) !important;font-family:"Source Sans Pro", "Helvetica Neue", Arial, sans-serif !important;font-size:14px !important;line-height:1.55 !important;text-align:left !important}
body#product#product #description .sb-cmp-th{color:var(--sb-encre-0) !important;font-family:"Source Sans Pro", "Helvetica Neue", Arial, sans-serif !important;font-size:10px !important;font-weight:600 !important;letter-spacing:1.3px !important;line-height:1.5 !important;text-align:left !important;text-transform:uppercase !important}
body#product#product #description .sb-duo{display:table !important;padding:0px !important;width:100% !important}
body#product#product #description .sb-duo-i{max-width:none !important}
body#product#product #description .sb-faq-q{color:rgb(40, 40, 40) !important;font-family:Roboto, "Helvetica Neue", Helvetica, Arial, sans-serif !important;font-size:16px !important;font-weight:700 !important;line-height:1.55 !important;text-align:left !important}
body#product#product #description .sb-fig{max-width:420px !important;text-align:center !important}
body#product#product #description .sb-h3{color:var(--sb-encre-0) !important;font-family:"Helvetica Neue", Helvetica, Arial, sans-serif !important;font-size:15px !important;font-weight:700 !important;letter-spacing:2px !important;line-height:1.4 !important;text-align:left !important;text-transform:uppercase !important}
body#product#product #description .sb-leg{color:rgb(107, 98, 87) !important;font-family:"Helvetica Neue", Helvetica, Arial, sans-serif !important;font-size:13px !important;line-height:1.6 !important;max-width:420px !important;text-align:center !important}
body#product#product #description .sb-legd{color:var(--sb-encre-1) !important;font-family:"Source Sans Pro", "Helvetica Neue", Arial, sans-serif !important;font-size:12px !important;line-height:1.55 !important;text-align:left !important}
body#product#product #description .sb-legl{color:var(--sb-encre-1) !important;font-family:"Source Sans Pro", "Helvetica Neue", Arial, sans-serif !important;font-size:13px !important;line-height:1.6 !important;text-align:center !important}
body#product#product #description .sb-li{color:var(--sb-encre-2) !important;font-family:"Source Sans Pro", "Helvetica Neue", Arial, sans-serif !important;font-size:16px !important;line-height:1.7 !important;text-align:left !important}
body#product#product #description .sb-nom{color:var(--sb-encre-0) !important;font-family:Marcellus, Georgia, serif !important;font-size:15px !important;font-weight:400 !important;letter-spacing:2.6px !important;line-height:1.4 !important;text-align:left !important;text-transform:uppercase !important}
body#product#product #description .sb-note{color:var(--sb-encre-2) !important;font-family:"Source Sans Pro", "Helvetica Neue", Arial, sans-serif !important;font-size:14px !important;line-height:1.7 !important;text-align:left !important}
body#product#product #description .sb-p{color:var(--sb-encre-2) !important;font-family:"Source Sans Pro", "Helvetica Neue", Arial, sans-serif !important;font-size:16px !important;line-height:1.75 !important;text-align:left !important}
body#product#product #description .sb-paire-c{padding:0px 11px 0px 0px !important}
body#product#product #description .sb-pd{color:rgb(89, 89, 89) !important;font-family:Roboto, "Helvetica Neue", Helvetica, Arial, sans-serif !important;font-size:16px !important;line-height:1.75 !important;text-align:left !important}
body#product#product #description .sb-scroll{max-width:100% !important;overflow-x:auto !important;overflow-y:hidden !important}
body#product#product #description .sb-sur{color:var(--sb-encre-1) !important;font-family:"Source Sans Pro", "Helvetica Neue", Arial, sans-serif !important;font-size:11px !important;font-weight:600 !important;letter-spacing:2.2px !important;line-height:1.5 !important;text-align:left !important;text-transform:uppercase !important}
body#product#product #description .sb-td{color:rgb(74, 59, 42) !important;font-family:"Helvetica Neue", Helvetica, Arial, sans-serif !important;font-size:15px !important;line-height:1.65 !important;text-align:left !important;word-break:normal !important}
body#product#product #description .sb-th{color:var(--sb-encre-0) !important;font-family:"Source Sans Pro", "Helvetica Neue", Arial, sans-serif !important;font-size:11px !important;font-weight:600 !important;letter-spacing:1.4px !important;line-height:1.55 !important;text-align:left !important;text-transform:uppercase !important}
body#product#product #description .sb-titre{color:var(--sb-encre-0) !important;font-family:Marcellus, Georgia, serif !important;font-size:27px !important;font-weight:400 !important;letter-spacing:1.5px !important;line-height:1.2 !important;text-align:left !important;text-transform:uppercase !important}
/* ==== FIN - LA VOIE VERTE : le gabarit des fiches dans la feuille ==== */

/* ==== DEBUT - LA VOIE VERTE : l aparte de Miss Bud, en entier - 2026-09-13 ====
   L aparte (table.mb-ap) est la seule famille du gabarit SANS CONTEXTE : dix fiches
   relevees dans des rayons maison et dans des rayons de marque portent exactement la
   meme signature. Il ne prend donc aucune variable - une seule ecriture pour tous.

   POURQUOI CETTE SECTION EXISTE, alors que la section generee en declare deja une
   partie : jusqu ici l aparte etait habille a TROIS endroits a la fois - le style= en
   ligne des fiches, quatre regles d un bloc HTML Box sous @media 575, et la section
   generee. Une fiche depouillee de son style= (la 2199, posee le 2026-09-13) perdait
   donc l image et les encres. Ici, tout l aparte tient dans la feuille : une fiche nue
   rend comme une fiche habillee.

   LE FILET EST OR, PAS TURQUOISE. Le #88BDB4 qu on lit encore dans le style= des
   fiches est l ANCIENNE CHARTE ; la section " l or de Miss Bud sur les fiches et au
   panier " (2026-09-10) l a passe a l or. Elle ne visait que td.mb-ap-i : sur
   telephone, ou les deux cellules s empilent et portent chacune une barre, celle du
   TEXTE etait restee turquoise. Mesure du 2026-09-13 sur la fiche 1226 comme sur la
   2199, a 390 px : image rgba(176,141,63,.85), texte rgb(136,189,180). Les deux sont
   ici a l or - c est le seul rendu que cette section change, et c est ce que la
   section du 10/09 voulait faire.

   Valeurs prises au style CALCULE d une fiche habillee (la 1226), pas au declare :
   le declare porte l ancienne charte. Tout en !important : les 158 fiches qui gardent
   leur style= en ligne ont un attribut a battre.
   ==================================================================== */

/* -- La table et ses deux cellules -- */
body#product #description table.mb-ap{
  border-collapse:collapse !important;
  width:100% !important;
  max-width:720px !important;
  margin:30px auto 30px auto !important;
}
body#product #description table.mb-ap td.mb-ap-i{
  background:#F5F2EA !important;
  border-left:3px solid rgba(176,141,63,.85) !important;
  padding:16px 0 16px 16px !important;
  width:216px !important;
  vertical-align:middle !important;
}
body#product #description table.mb-ap td.mb-ap-t{
  background:#F5F2EA !important;
  padding:16px 20px 16px 18px !important;
  vertical-align:middle !important;
}

/* -- L image : elle ne depasse jamais sa cellule -- */
body#product #description table.mb-ap td.mb-ap-i img{
  max-width:100% !important;
  height:auto !important;
}

/* -- Les trois paragraphes : au rang ET a la classe. Une fiche ancienne n a pas
      les classes mb-ap-sur / mb-ap-corps / mb-ap-note, une fiche neuve les porte. -- */
body#product #description table.mb-ap td.mb-ap-t p:nth-of-type(1),
body#product #description table.mb-ap td.mb-ap-t p.mb-ap-sur{
  margin:0 0 7px 0 !important;
  font-size:11px !important;
  font-weight:600 !important;
  letter-spacing:1.4px !important;
  color:#75591F !important;
}
body#product #description table.mb-ap td.mb-ap-t p:nth-of-type(2),
body#product #description table.mb-ap td.mb-ap-t p.mb-ap-corps{
  margin:0 0 8px 0 !important;
  font-size:14px !important;
  font-weight:400 !important;
  line-height:1.55 !important;
  color:#3d443f !important;
}
body#product #description table.mb-ap td.mb-ap-t p:nth-of-type(3),
body#product #description table.mb-ap td.mb-ap-t p.mb-ap-note{
  margin:0 !important;
  font-size:13px !important;
  font-weight:400 !important;
  line-height:1.5 !important;
  color:#1A2120 !important;
}

/* -- Le lien : encre de la maison, souligne d or (pose le 2026-09-10) -- */
body#product #description table.mb-ap td.mb-ap-t p a,
body#product #description table.mb-ap td.mb-ap-t a{
  color:#1A2120 !important;
}

/* -- Telephone : les deux cellules s empilent, chacune avec sa barre d or --
   Reprend ce que quatre regles d un bloc HTML Box faisaient jusqu ici, a une
   difference pres : la barre du texte passe a l or. Les retraits restent ceux
   que la page rend aujourd hui (16px 0 16px 16px et 16px 20px 16px 18px, ceux
   des regles ci-dessus, qui l emportaient deja sur les 14px du bloc). */
@media (max-width:575px){
  body#product #description table.mb-ap td.mb-ap-i,
  body#product #description table.mb-ap td.mb-ap-t{
    display:block !important;
  }
  body#product #description table.mb-ap td.mb-ap-i{
    width:216px !important;
    text-align:center !important;
  }
  body#product #description table.mb-ap td.mb-ap-t{
    width:100% !important;
    border-left:3px solid rgba(176,141,63,.85) !important;
  }
  /* Pas de max-width ici : celui de la regle de bureau (100%) suffit et vaut pour
     les deux largeurs. Le bloc HTML Box posait 300px ; l ecrire aurait fait bouger
     les 158 fiches habillees, qui rendent a 100%. Sans effet visible dans les deux
     cas (la cellule fait 216px), mais une fiche habillee ne doit bouger que d une
     chose : son filet. */
  body#product #description table.mb-ap td.mb-ap-i img{
    max-width:100% !important;
    width:auto !important;
    height:auto !important;
    margin:0 auto !important;
  }
}
/* ==== FIN - LA VOIE VERTE : l aparte de Miss Bud, en entier ==== */

/* ==== DEBUT - LA VOIE VERTE : le cartouche d une marque sans logo - 2026-09-14 ====
   48 fiches portent une marque qui n a pas de logo. Le gabarit sb-cadre est bati
   autour d une image de 52 px : sans elle, le cadre perd son ancrage en haut a
   gauche. Piste retenue apres trois propositions rendues sur fiches reelles :
   l INITIALE GRAVEE, dans un carre de 52 px - la hauteur exacte du logo.

   LA FEUILLE DETECTE L ABSENCE D IMAGE TOUTE SEULE, par :not(:has(p.sb-nom img)).
   Celui qui ecrit la fiche omet l <img> ; les fiches avec et sans logo partagent
   le meme HTML et le meme gabarit.

   LA LETTRE VIENT D UNE CLASSE, PAS D UN ATTRIBUT data-, ET C EST MESURE.
   Premiere version : content:attr(data-initiale). La session "mise en page" a
   releve le texte servi par 780 fiches, moi par les 817 du catalogue, deux
   corpus independants, meme resultat :
       style 27 549 declarations, class 17 678, href 4 719, src/alt 2 227,
       width/height 2 167, loading/decoding 618, itemprop 30, dir 24
       attributs data-*                 : ZERO
       proprietes personnalisees --x    : ZERO
   Aucun data- ne survit dans une description, et aucune propriete personnalisee
   non plus - ce qui est la mecanique deja payee sur --sb-accent : le purificateur
   du back-office GARDE l attribut style et JETTE chaque declaration inconnue. Il
   ne retirait pas l attribut, il le VIDAIT. La classe, elle, passe : 17 678 fois.

   VINGT-SIX REGLES POUR NE PLUS JAMAIS ROUVRIR LA FEUILLE. Dix initiales
   suffiraient aux 16 marques d aujourd hui (A B C D F H N O T U) ; on ecrit les
   vingt-six pour qu une marque nouvelle n exige aucune pose.

   data-initiale RESTE ACCEPTE, au cas ou il survivrait quelque part : il n a rien
   coute et il ne fait rien de mal. La classe est la source qui compte.

   L INITIALE EST OPTIONNELLE. Sans classe ni attribut, la regle ne s applique pas
   du tout et le cadre rend exactement comme avant. C est une correction payee en
   production : la v43, sans cette garde, a fait afficher un CARRE D OR VIDE a
   cinq cartouches deja en ligne qui n avaient ni <img> ni initiale - Mellow
   Fellow (2786, 2787), Piece de rechange (709), Accessoire compatible (2061),
   Storz & Bickel (2785). content:attr() sur un attribut absent rend une chaine
   VIDE, pas rien.

   LE FILET RESTE A L OR : sans logo il n y a pas d accent a extraire, et sur une
   fiche dont la marque n a pas d identite visuelle, c est la maison qui se porte
   garante.

   TROIS COLLISIONS D INITIALES sur les 48, jamais plus de deux marques par
   lettre : C (Cartel / Cyclones) et D (Diamond Leaf / Dragonfly) aux Feuilles a
   rouler, C (California BZ / Cheall) aux Pre-roules. L initiale ancre le regard,
   elle ne certifie pas.

   ECRITURE D UNE FICHE : <p class="sb-nom sb-i-c">Cartel</p>
   ==================================================================== */

body#product#product #description table.sb-cadre:not(:has(p.sb-nom img)) p.sb-nom:is([data-initiale],.sb-i-a,.sb-i-b,.sb-i-c,.sb-i-d,.sb-i-e,.sb-i-f,.sb-i-g,.sb-i-h,.sb-i-i,.sb-i-j,.sb-i-k,.sb-i-l,.sb-i-m,.sb-i-n,.sb-i-o,.sb-i-p,.sb-i-q,.sb-i-r,.sb-i-s,.sb-i-t,.sb-i-u,.sb-i-v,.sb-i-w,.sb-i-x,.sb-i-y,.sb-i-z){
  display:flex !important;
  align-items:center !important;
  gap:12px !important;
  margin:0 0 16px 0 !important;
}
body#product#product #description table.sb-cadre:not(:has(p.sb-nom img)) p.sb-nom:is([data-initiale],.sb-i-a,.sb-i-b,.sb-i-c,.sb-i-d,.sb-i-e,.sb-i-f,.sb-i-g,.sb-i-h,.sb-i-i,.sb-i-j,.sb-i-k,.sb-i-l,.sb-i-m,.sb-i-n,.sb-i-o,.sb-i-p,.sb-i-q,.sb-i-r,.sb-i-s,.sb-i-t,.sb-i-u,.sb-i-v,.sb-i-w,.sb-i-x,.sb-i-y,.sb-i-z)::before{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:52px;
  height:52px;
  flex:0 0 52px;
  font-family:Marcellus,Georgia,serif;
  font-size:30px;
  font-weight:400;
  letter-spacing:0;
  text-transform:uppercase;
  color:var(--sb-accent, #B08D3F);
  border:1px solid var(--sb-accent, #B08D3F);
}

/* -- La lettre : une classe par initiale, plus l attribut par tolerance -- */
body#product#product #description table.sb-cadre:not(:has(p.sb-nom img)) p.sb-nom[data-initiale]::before{content:attr(data-initiale)}
body#product#product #description table.sb-cadre:not(:has(p.sb-nom img)) p.sb-nom.sb-i-a::before{content:"A"}
body#product#product #description table.sb-cadre:not(:has(p.sb-nom img)) p.sb-nom.sb-i-b::before{content:"B"}
body#product#product #description table.sb-cadre:not(:has(p.sb-nom img)) p.sb-nom.sb-i-c::before{content:"C"}
body#product#product #description table.sb-cadre:not(:has(p.sb-nom img)) p.sb-nom.sb-i-d::before{content:"D"}
body#product#product #description table.sb-cadre:not(:has(p.sb-nom img)) p.sb-nom.sb-i-e::before{content:"E"}
body#product#product #description table.sb-cadre:not(:has(p.sb-nom img)) p.sb-nom.sb-i-f::before{content:"F"}
body#product#product #description table.sb-cadre:not(:has(p.sb-nom img)) p.sb-nom.sb-i-g::before{content:"G"}
body#product#product #description table.sb-cadre:not(:has(p.sb-nom img)) p.sb-nom.sb-i-h::before{content:"H"}
body#product#product #description table.sb-cadre:not(:has(p.sb-nom img)) p.sb-nom.sb-i-i::before{content:"I"}
body#product#product #description table.sb-cadre:not(:has(p.sb-nom img)) p.sb-nom.sb-i-j::before{content:"J"}
body#product#product #description table.sb-cadre:not(:has(p.sb-nom img)) p.sb-nom.sb-i-k::before{content:"K"}
body#product#product #description table.sb-cadre:not(:has(p.sb-nom img)) p.sb-nom.sb-i-l::before{content:"L"}
body#product#product #description table.sb-cadre:not(:has(p.sb-nom img)) p.sb-nom.sb-i-m::before{content:"M"}
body#product#product #description table.sb-cadre:not(:has(p.sb-nom img)) p.sb-nom.sb-i-n::before{content:"N"}
body#product#product #description table.sb-cadre:not(:has(p.sb-nom img)) p.sb-nom.sb-i-o::before{content:"O"}
body#product#product #description table.sb-cadre:not(:has(p.sb-nom img)) p.sb-nom.sb-i-p::before{content:"P"}
body#product#product #description table.sb-cadre:not(:has(p.sb-nom img)) p.sb-nom.sb-i-q::before{content:"Q"}
body#product#product #description table.sb-cadre:not(:has(p.sb-nom img)) p.sb-nom.sb-i-r::before{content:"R"}
body#product#product #description table.sb-cadre:not(:has(p.sb-nom img)) p.sb-nom.sb-i-s::before{content:"S"}
body#product#product #description table.sb-cadre:not(:has(p.sb-nom img)) p.sb-nom.sb-i-t::before{content:"T"}
body#product#product #description table.sb-cadre:not(:has(p.sb-nom img)) p.sb-nom.sb-i-u::before{content:"U"}
body#product#product #description table.sb-cadre:not(:has(p.sb-nom img)) p.sb-nom.sb-i-v::before{content:"V"}
body#product#product #description table.sb-cadre:not(:has(p.sb-nom img)) p.sb-nom.sb-i-w::before{content:"W"}
body#product#product #description table.sb-cadre:not(:has(p.sb-nom img)) p.sb-nom.sb-i-x::before{content:"X"}
body#product#product #description table.sb-cadre:not(:has(p.sb-nom img)) p.sb-nom.sb-i-y::before{content:"Y"}
body#product#product #description table.sb-cadre:not(:has(p.sb-nom img)) p.sb-nom.sb-i-z::before{content:"Z"}
/* ==== FIN - LA VOIE VERTE : le cartouche d une marque sans logo ==== */

/* ==== DEBUT - LA VOIE VERTE : la carte de la description, pour tous les rayons - 2026-09-14 ====
   Le conteneur #description .product-description est une CARTE BLANCHE BORDEE sur
   24 rayons, et RIEN DU TOUT sur les 37 autres : fond transparent, aucune bordure,
   zero retrait. Ce n etait pas un defaut mais une campagne inachevee, ecrite rayon
   par rayon dans des blocs HTML Box. Arbitrage de Florent du 2026-09-14 : l etendre.

   MESURE AVANT D ECRIRE. Les 24 contextes couverts prescrivent tous EXACTEMENT la
   meme chose, sans une variante : fond #ffffff, bordure 1px #ececec, retrait
   28/26/32/26 au bureau et 16/12/20/12 sous 600 px. Une seule regle suffit donc,
   et elle ne change rien la ou les blocs existent - elle ecrit ce qu ils ecrivent.

   LE POINT DE BASCULE EST A 600 px, pas a 767 : c est celui des blocs, on le
   reprend tel quel plutot que d aligner sur une autre habitude.

   PORTEE : #description .product-description SEULEMENT. La classe
   .product-description sert AUSSI aux vignettes des listes de produits
   (#products .thumbnail-container .product-description) : sans cette portee, la
   regle irait poser une carte blanche dans chaque case de rayon.

   Trois identifiants et !important : la feuille prend l autorite, pour que la
   carte survive au retrait des blocs le jour ou ils partiront.
   ==================================================================== */

body#product#product #description .product-description{
  background:#ffffff !important;
  border:1px solid #ececec !important;
  padding:28px 26px 32px 26px !important;
}
@media (max-width:600px){
  body#product#product #description .product-description{
    padding:16px 12px 20px 12px !important;
  }
}
/* ==== FIN - LA VOIE VERTE : la carte de la description ==== */

/* ==== DEBUT - LA VOIE VERTE : NUIT TOMBEE ========================================
   Saison : du 17 octobre au 2 novembre 2026. ENSUITE, IL RESTE.

   TOUT CE BLOC EST SOUS UNE CLASSE : html.lvv-nuit. Rien ne s applique tant que
   la classe n est pas posee sur <html> — c est ce qui rend la depose immediate :
   on retire le script de tete, et le site est rendu tel qu il etait.
   PENDANT LA SAISON, LA CLASSE EST POSEE POUR TOUT LE MONDE. Il n y a pas de mode
   jour, pas de bascule, pas de preference gardee : du 17 octobre au 2 novembre,
   le site est en nuit, point.
   Le travail de mesure — onze types de page, bureau et telephone, chaque contraste
   verifie — est exactement ce que coute un vrai mode sombre. La saison le paie,
   le site le garde.

   LE BLOC DE TETE (HTML Box, en TETE de page). Il pose la classe ET la phase de
   la lune, parce que la lune de ce theme est la VRAIE lune de la nuit courante
   (cf. section 12). Six lignes, aucune dependance :

     <script>(function(){
       var d=document.documentElement;
       d.classList.add('lvv-nuit');     // toute la saison, pour tout le monde
       var p=((Date.now()/864e5-10962.7597)/29.530588853)%1,  // 0=nouvelle, .5=pleine
           k=(1-Math.cos(2*Math.PI*p))/2;                     // fraction eclairee
       d.style.setProperty('--lune-b',(50*Math.abs(1-2*k)).toFixed(1)+'%');
       d.style.setProperty('--lune-sens',p<.5?'to right':'to left');
       if(k<.5) d.classList.add('lvv-lune-croissante');
     })()</script>

   La poser en tete evite le clignotement : la page ne s affiche jamais en clair
   avant de basculer. Si le script manque, la feuille rend une pleine lune — voir
   les valeurs par defaut de la section 12.
   TOUT le theme vit entre ce marqueur et le marqueur de fin. Pour deposer :
   supprimer le bloc entier, vider le cache, controler accueil + rayon + fiche.

   ATTENTION, UN COMMENTAIRE CSS NE S IMBRIQUE PAS. Cette feuille cite du
   JavaScript dans ses commentaires. Le premier fermeur de commentaire rencontre
   FERME le commentaire de tete, et tout ce qui suit devient du CSS : le parseur
   cherche la prochaine accolade ouvrante et avale le bloc entier qu il trouve.
   Deux fois le 2026-09-16, et la SECONDE fois c est ce paragraphe-ci qui a casse
   la feuille en CITANT les deux caracteres. La premiere fois, le bloc avale a ete
   :root — donc --lvv-nuit vide, donc « background:var(--lvv-nuit) » invalide au
   calcul, donc AUCUN fond de nuit, alors que « isolation:isolate » de la MEME
   regle s appliquait toujours. Une declaration qui tombe et sa voisine qui tient :
   c est la signature d une variable absente, pas d un selecteur qui rate.
   Rien n a signale l erreur : elle s est vue parce que la simulation rendait le
   site EN PLEIN JOUR. REGLES : dans un commentaire, commenter le code cite avec
   deux barres obliques, et ne jamais ECRIRE les deux caracteres d ouverture ou de
   fermeture d un commentaire, meme pour en parler. Avant toute pose, passer
   verifier-feuille.py : il lit la feuille comme un navigateur et compte ce qui
   survit.

   PLACE EN FIN DE FEUILLE, VOLONTAIREMENT : a specificite egale, il passe devant
   les sections existantes. Relire l empreinte SERVIE juste avant d ecrire (au
   2026-09-14 : 67 sections, 462 165 octets, module 1.0.42 ; la derniere section
   posee est l aparte de Miss Bud — ce bloc va APRES elle).

   LE PRINCIPE, en une phrase : L ENCRE NE SUIT PAS LA PAGE, ELLE SUIT LA SURFACE
   QUI LA PORTE. Raisonner « le fond de la page devient nuit, donc l encre devient
   creme » donne du creme sur du blanc partout ou une carte est restee claire — les
   29 cartes de guide, les 21 cartes produit d un rayon, les panneaux des guides.
   Chaque regle de ce bloc peint donc une SURFACE et son encre ensemble, jamais
   l encre seule.

   CE QU AUCUNE FEUILLE NE PEUT FAIRE : le carrousel de l accueil est fait
   d IMAGES, et il en porte DOUZE, pas six — .homeslider-container utilise
   <picture> et sert deux jeux selon la largeur : les 1536x2048 sous 480 px, les
   plates 2048x758 au-dessus. Aucune regle ne les repeindra ; un voile en degrade
   sur le conteneur ne couvre qu une bande. Les douze versions de saison sont dans
   nuit-tombee-photos/diapos/ (nuit_diapo.py) ; la devanture reprend sa version
   travaillee a la main. Sans elles, la page est en nuit et la scene d accueil
   reste en plein jour : le defaut le plus visible du theme, et le seul qu aucune
   mesure de contraste ne signale — une sonde ne mesure pas une image.
   C est aussi le seul geste qui touche des FICHIERS : il ne se retire pas d une
   ligne de script, il faut remettre les douze originaux, qui sont conserves.

   ECRIT SUR MESURE, PAS SUR LECTURE. Neuf types de page relevés au style CALCULE
   sur les pages servies les 13 et 14 septembre 2026, puis le bloc injecte dans
   chaque page et les contrastes remesures. Aucune ecriture en production.
   Une premiere version visait .lvv-ic, .lvv-missbud, .lvv-huiles : QUATRE
   SELECTEURS QUI NE TOUCHAIENT RIEN. Ne jamais ecrire ce genre de bloc depuis le
   CSS local — et ne jamais conclure qu un selecteur est mort sur une seule page :
   .product-miniature est absent de l accueil et vit 21 fois par rayon.

   COUVERTURE MESUREE (textes poses sur le fond de page / a corriger) :
     accueil        body#index          150 / 0 apres correction
     accueil 375px  body#index           77 / 0  — 76 illisibles au depart
     rayon          body#category        69 / 0
     rayon 375px    body#category         4 / 0
     nouveautes     body#new-products     5 / 4 corriges
     meilleures v.  body#best-sales       5 / 4 corriges
     recherche      body#search           4 / 4 corriges
     panier         body#cart            16 / 0 (4 faux positifs : <title> de SVG)
     404            body#pagenotfound     1 / 1 corrige
     guide CMS      body#cms              1 / 0   — tout vit sur .page-content
     boutiques      body#stores           1 / 0   — tout vit sur des cartes
     contact        body#contact          0 / 0
     FICHE          body#product        COUVERTE DEPUIS LE 2026-09-16
   Sur la fiche, la mesure a ete refaite autrement : dix fiches de familles
   differentes, chaque texte releve AVANT et APRES, contraste lu sur le PIXEL
   RENDU. 425 textes casses a la premiere pose, 0 apres. Detail : section 10.

   CE QUE CE BLOC NE TOUCHE JAMAIS :
   - l identite des marques SUR la fiche. Les 177 classes sb-* et 12 mb-* vivent
     sur la carte blanche de la description : la section 10 ne touche que ce qui
     est pose a meme le fond de page, jamais elles. La fiche, elle, est couverte
     depuis le 2026-09-16.
   - les boites de photo et les cartes : .lvv-ac-guide-vue, .lvv-ac-carte-vue,
     .lvv-vit-vue, .thumbnail-container, .page-content. La marchandise et le texte
     de guide restent sur clair.
   - les prix, les paliers, les boutons d achat, les mentions legales.
   - les bandes deja sombres (#1E2E1C) : elles sont le repere du site d origine.
   ================================================================================ */

:root{
  --lvv-nuit:#101A12;        /* remplace le papier #D4E0C4 et le creme #F7F2E4 */
  --lvv-nuit-creux:#0E1710;  /* le cran en dessous, pour les cartes */
  --lvv-nuit-bord:#24331F;
  --lvv-braise:#C1541C;      /* atmosphere : lueur, etiquette. JAMAIS un prix. */
  --lvv-halo:#E58A3C;        /* survols */
}

/* --- 1. LE FOND, PARTOUT — LA FICHE COMPRISE DEPUIS LE 2026-09-16 ---------------
   Une seule regle pour tout le site. Mesure : #wrapper rend rgb(212,224,196) sur
   les dix types de page.
   LA GARDE :not(#product) A ETE RETIREE le 2026-09-16, a la demande de Florent.
   Ce qu elle coutait est mesure, fiche par fiche : cf. section 10. */
html.lvv-nuit body #wrapper{ background:var(--lvv-nuit) !important; }

/* --- 2. L ACCUEIL ---------------------------------------------------------------
   Les deux bandes claires descendent ; les bandes .lvv-ac-bande (#1E2E1C) restent. */
html.lvv-nuit body#index .lvv-ac-bande-papier,
html.lvv-nuit body#index .lvv-ac-bande-creme{ background:var(--lvv-nuit) !important; }

html.lvv-nuit body#index .lvv-ac-guide,
html.lvv-nuit body#index .lvv-ac-bq-carte,
html.lvv-nuit body#index .lvv-ac-cellule-edito,
html.lvv-nuit body#index .lvv-ac-tuile-nom{
  background:var(--lvv-nuit-creux) !important;
  border-color:var(--lvv-nuit-bord) !important;
}
html.lvv-nuit body#index .lvv-ac-tuile-nom{ color:#EFDCA8 !important; }

/* Les textes qui deviendraient illisibles. Contraste AVANT correction :
   .lvv-ac-guide-nom (29) 1,09 · .lvv-ac-guide-det (29) 1,09 · .lvv-ac-chapo 1,09 ·
   .lvv-ac-bq-nom/-adr/-tel 1,09 · .lvv-ac-guide-cta (29) 1,82 · -oeil (29) 2,72.
   APRES : parchemin 11,9 · brume 6,4 · or clair 8,6. */
html.lvv-nuit body#index .lvv-ac-bande-creme .lvv-ac-guide-nom,
html.lvv-nuit body#index .lvv-ac-bande-papier .lvv-ac-bq-nom,
html.lvv-nuit body#index .lvv-ac-bande-papier .lvv-ac-bq-adr,
html.lvv-nuit body#index .lvv-ac-bande-papier .lvv-ac-bq-tel,
html.lvv-nuit body#index .lvv-ac-bande-papier .lvv-ac-bq-ou,
html.lvv-nuit body#index .lvv-ac-bande-creme .lvv-ac-lien-fin,
html.lvv-nuit body#index .lvv-ac-bande-papier .lvv-ac-lien-fin{ color:#EFDCA8 !important; }

html.lvv-nuit body#index .lvv-ac-bande-creme .lvv-ac-chapo,
html.lvv-nuit body#index .lvv-ac-bande-papier .lvv-ac-chapo,
html.lvv-nuit body#index .lvv-ac-bande-creme .lvv-ac-guide-det,
html.lvv-nuit body#index .lvv-ac-bande-papier .lvv-ac-bq-note,
html.lvv-nuit body#index .lvv-ac-bande-papier .lvv-ac-bq-note span{ color:#9FB08C !important; }

html.lvv-nuit body#index .lvv-ac-bande-creme .lvv-ac-guide-cta,
html.lvv-nuit body#index .lvv-ac-bande-creme .lvv-ac-guide-oeil{ color:#D2B269 !important; }

/* DEUX PRISES PAR LA PLACE, faute de classe — trouvees par la mesure, pas par la
   lecture : elles ne se seraient jamais signalees toutes seules.
   Les 8 spans d horaires des deux boutiques, et le « Conseil en boutique, 7 jours
   sur 7 » (mesure a rgb(35,35,35), ratio 1,13). */
html.lvv-nuit body#index .lvv-ac-bande-papier .lvv-ac-bq-hl,
html.lvv-nuit body#index .lvv-ac-bande-papier .lvv-ac-bq-hl span{ color:#EFDCA8 !important; }
html.lvv-nuit body#index .lvv-ac-bande-papier .lvv-ac-bq-bas p,
html.lvv-nuit body#index .lvv-ac-bande-papier .lvv-ac-bq-bas b{ color:#9FB08C !important; }

/* Les fleches de carrousel : 16 pastilles creme et blanches qui brilleraient. */
html.lvv-nuit body#index .lvv-ac-fleche,
html.lvv-nuit body#index .lvv-ac-bq-fleche,
html.lvv-nuit body#index .lvv-vit-fle{
  background:var(--lvv-nuit-creux) !important;
  border:1px solid #B08D3F !important;
  color:#D2B269 !important;
}

/* --- 2 bis. CE QUE LE RELEVE D ORIGINE AVAIT MANQUE ------------------------------
   Mesure du 2026-09-16 au PIXEL RENDU, six types de page, avant/apres. Vingt
   textes restaient en encre de jour sur le fond de nuit. Ils n avaient pas ete
   vus parce que la premiere mesure lisait le style CALCULE : elle voyait bien la
   couleur, mais pas la surface exacte sous les lettres. */
html.lvv-nuit body#index .lvv-vit-nom,
html.lvv-nuit body#index .lvv-vit-prix,
html.lvv-nuit body#index .lvv-vit-chapo,
html.lvv-nuit body#index .lvv-vit-deg,
html.lvv-nuit body#index .lvv-ac-titre{ color:#EFDCA8 !important; }
html.lvv-nuit body#index .lvv-vit-oeil,
html.lvv-nuit body#index .lvv-ac-oeil{ color:#D2B269 !important; }
html.lvv-nuit body#index .lvv-ac-bande p:not([class]){ color:#CFC49E !important; }

/* la barre de tri, sur les quatre pages a liste */
html.lvv-nuit body#category #js-product-list-top .col-sm-3,
html.lvv-nuit body#new-products #js-product-list-top .col-sm-3,
html.lvv-nuit body#best-sales #js-product-list-top .col-sm-3,
html.lvv-nuit body#search #js-product-list-top .col-sm-3{ color:#D2B269 !important; }
html.lvv-nuit body#search #wrapper h2.h2{ color:#EFDCA8 !important; }

/* --- 3. LA PLAQUE GRAVEE --------------------------------------------------------
   Mesure : body#index #main h2 (4 elements) a un fond TRANSPARENT et un
   background-image: radial-gradient(...). Ce n est pas un aplat : on surcharge
   l image de fond, pas la couleur. */
/* LE REFLET REVIENT, ET C EST UNE CORRECTION DU 2026-09-16.
   La premiere version remplacait TOUTE l image de fond de la plaque par un
   degrade sombre — et emportait avec elle le reflet, qui est la premiere des
   deux couches de la maison. Releve au style calcule sur la plaque
   << Nos huiles >> : radial-gradient(130% 180% at 50% -10%, rgba(255,255,255,.075),
   rgba(255,255,255,0) 60%) POSE SUR linear-gradient(#2E4629, #182616).
   On garde donc la premiere couche telle quelle et on n assombrit que la
   seconde. La gravure noire d un pixel, la lueur interne et le second filet d or
   a six pixels — porte par ::after — appartiennent au gabarit du site : on n y
   touche pas, ils rendent deja juste sur le fond de nuit. */
html.lvv-nuit body#index #main h2,
html.lvv-nuit body#index .lvv-ac-plaque,
html.lvv-nuit body#product #wrapper #main h2,
html.lvv-nuit body#category #wrapper #main h2{
  background-image:
    radial-gradient(130% 180% at 50% -10%, rgba(255,255,255,.075), rgba(255,255,255,0) 60%),
    linear-gradient(#24361F, #111B12) !important;
  box-shadow:inset 0 0 0 1px rgba(0,0,0,.45),
             inset 0 0 40px rgba(0,0,0,.4),
             0 0 0 4px var(--lvv-nuit),
             0 0 28px rgba(176,141,63,.22) !important;
}

/* LA PLAQUE NE DESCEND PAS DANS LA DESCRIPTION. Mesure du 2026-09-16, dix-huit
   fiches choisies pour couvrir les familles que les dix premieres ne portaient
   pas : #main h2 attrapait AUSSI les titres de la description, qui vit sur sa
   carte BLANCHE. La maison y garde son encre verte rgb(46,74,50) — faite pour du
   blanc — et la plaque lui mettait un bandeau sombre dessous : 32 titres a 1,8.
   Regle generale de cette feuille : la plaque est faite pour le fond de NUIT,
   jamais pour une carte claire. Trois identifiants comme la regle qu elle defait,
   et deux classes de plus pour passer devant.
   Sur le rayon le meme selecteur touche 21 titres de produit : ils sont en
   display none, ils ne comptent pas. Les sept titres visibles du chapeau de rayon
   portent une encre creme et rendent juste. */
html.lvv-nuit body#product #wrapper #main .product-description h2,
html.lvv-nuit body#product #wrapper #main .product-description h3{
  background-image:none !important;
  box-shadow:none !important; }

/* LES FLECHES DE LA PELLICULE PHOTO. Mesure : .scroll-box-arrows porte deux
   glyphes en encre de maison rgb(26,33,32), poses a meme le fond de nuit — 48
   occurrences sur dix-huit fiches, a 1,09. Ce sont les fleches qui font defiler
   les photos du produit : invisibles, la pellicule parait figee. */
html.lvv-nuit body#product #wrapper .scroll-box-arrows i,
html.lvv-nuit body#product #wrapper .scroll-box-arrows .material-icons{
  color:#CFC49E !important; }

/* LA DISPONIBILITE. « Rupture de stock » sortait en rgb(35,35,35) sur le fond de
   nuit, a 1,13 : la seule ligne de la fiche qu un visiteur doit lire avant de
   cliquer. La pastille d alerte orange du site rend deja juste, on n y touche pas. */
html.lvv-nuit body#product #wrapper #product-availability{ color:#CFC49E !important; }

/* DEUX SELECTEURS RETIRES LE 2026-09-14, ET LA RAISON VAUT POUR TOUT LE BLOC.
   #js-product-list-top * et #content-wrapper p peignaient l encre SANS regarder la
   surface. Mesure : 27 descriptions produit posees sur des cartes blanches
   recevaient du vert-brume, et « 21 produits » comme « Ordre du magasin » —
   qui portent LEUR PROPRE fond creme — passaient en parchemin sur creme.
   Un thème ne se juge pas seulement a ce qu il corrige, mais a ce qu il CASSE :
   la seule mesure qui le montre est la DIFFERENCE avant / apres, element par
   element. Mesurer l etat final ne dit rien — les 29 textes deja faibles de ce
   rayon le sont depuis toujours et ne sont pas de notre fait.
   Apres retrait, sur rayon et sur nouveautes : 0 degrade, 0 restant. */

/* --- 4. LES PAGES A LISTE -------------------------------------------------------
   Rayon, nouveautes, meilleures ventes, recherche, promotions : meme gabarit,
   meme barre de tri, meme pagination. Sur un rayon, 407 textes dont 336 poses sur
   des cartes qui ne bougent pas : le cout reel est 69, pas 407. */
/* LA COLONNE DES FILTRES : RIEN, ET C EST UNE CORRECTION DU 2026-09-16.
   Le releve d origine la comptait parmi les textes poses sur le fond et la
   peignait en parchemin et en or. Mesure au PIXEL RENDU : le panneau des facettes
   porte SA PROPRE carte claire rgb(252,250,245). SEIZE textes tombaient entre
   1,29 et 1,98 — c est le theme qui les cassait, pas le site. Le panneau est
   clair, il garde l encre de la maison.
   Ce que l ancienne mesure ne pouvait pas voir : elle remontait la chaine des
   ancetres jusqu au premier fond opaque ; quand une carte est peinte autrement,
   elle concluait << pose sur le fond de page >>. Seul le pixel tranche. */
html.lvv-nuit body#new-products #wrapper .h6, html.lvv-nuit body#best-sales #wrapper .h6{ color:#EFDCA8 !important; }

/* v135 : la vitrine blanche des rayons de marque porte son fond EN LIGNE ; ses liens
   (noms d appareils, « Voir le produit », guides) passaient en or clair sur blanc,
   2,04, et sur gris clair, 1,7. Elle garde son encre. */
html.lvv-nuit body#category #js-product-list-header a:not([style*="background"]):not([style*="background"] a){ color:#D2B269 !important; }

html.lvv-nuit body#category .lvv-mb-l,
html.lvv-nuit body#category .lvv-mb-l *{ color:#9FB08C !important; }

/* LA PAGINATION : RIEN, ET C EST UNE CORRECTION DU 2026-09-16.
   Onze selecteurs lui donnaient la brume. Mesure au PIXEL RENDU sur meilleures
   ventes et sur la recherche, aux deux largeurs : les chiffres et « Suivant »
   vivent sur une PASTILLE BLANCHE de la maison, pas sur le fond de nuit — 44
   textes delaves a 2,32. Le releve de style calcule ne le voyait pas : la
   pastille est peinte par un conteneur au-dessus des liens, qui sont eux
   transparents ; il faut regarder les pixels, ou la page.
   Le rayon n a jamais pu servir de temoin : avec le nombre d articles par defaut
   il n a qu une seule page, et sa pagination n existe pas dans le document.
   La ligne « Affichage 1-60 de 686 article(s) », elle, est bien posee sur le fond
   de nuit : elle est peinte ailleurs, et elle rend juste.
   L encre suit la surface. La pastille est claire, elle garde l encre claire.

   MAIS le conteneur .pagination tient DEUX choses : la pastille blanche des
   chiffres, et la ligne « Affichage 1-21 de 21 article(s) », qui est posee a
   meme le fond de nuit. Premiere coupe : les onze selecteurs retires d un bloc,
   et cette ligne est retombee a 1,09 sur cinq pages. On ne garde donc que la
   colonne de gauche — jamais les liens. */
html.lvv-nuit body#category #products #js-product-list .pagination .col-md-4,
html.lvv-nuit body#new-products #products #js-product-list .pagination .col-md-4,
html.lvv-nuit body#best-sales #products #js-product-list .pagination .col-md-4,
html.lvv-nuit body#search #products #js-product-list .pagination .col-md-4{
  color:#9FB08C !important; }

/* LE 404. Mesure du 2026-09-16 : « Effectuez une nouvelle recherche » sortait en
   parchemin #EFDCA8 sur une section BLANCHE de la maison — 1,36, aux deux
   largeurs. Le titre et le premier paragraphe sont, eux, poses sur le fond de
   nuit et gardent leur encre de saison. Meme loi : on ne peint que ce qui touche
   le fond. */
html.lvv-nuit body#pagenotfound #wrapper .page-not-found,
html.lvv-nuit body#pagenotfound #wrapper .page-not-found p,
html.lvv-nuit body#pagenotfound #wrapper .page-not-found a,
html.lvv-nuit body#pagenotfound #wrapper .page-not-found h4{ color:#1A2120 !important; }

/* --- 5. LE PANIER ---------------------------------------------------------------
   Seize textes poses directement sur le fond : c est la page la plus exposee du
   site apres l accueil, parce qu elle n a presque pas de cartes. */
/* CORRECTION DU 2026-09-16 : le bloc du total porte une carte claire
   rgb(241,241,241). Total TTC tombait a 2,05 et le montant a 1,20 — deux textes
   casses par le theme. Ils sont sortis des selecteurs ci-dessous. */
/* LA LIGNE DU TOTAL porte une bande CLAIRE rgb(241,241,241) — la seule du panier.
   Deux choix possibles : rendre l encre a la maison, ou retirer la bande. On
   retire la bande : une bande gris clair au milieu d un panier de nuit ne se
   justifie par rien, et l encre du panier reste alors la meme partout.
   Mesure : 2,05 et 1,20 avant, au-dessus du seuil apres. */
html.lvv-nuit body#cart #wrapper .cart-summary-line,
html.lvv-nuit body#cart #wrapper .cart-summary-line.cart-total,
html.lvv-nuit body#cart #wrapper .card-block{ background:transparent !important; }

html.lvv-nuit body#cart #wrapper h1,
html.lvv-nuit body#cart #wrapper .no-items,
html.lvv-nuit body#cart #wrapper .block-title,
html.lvv-nuit body#cart #wrapper label,
html.lvv-nuit body#cart #wrapper .value,
html.lvv-nuit body#cart #wrapper p,
html.lvv-nuit body#cart #wrapper .material-icons,
html.lvv-nuit body#cart #wrapper a{ color:#EFDCA8 !important; }
html.lvv-nuit body#cart #wrapper .label,
html.lvv-nuit body#cart #wrapper .js-subtotal{ color:#9FB08C !important; }

/* --- 6. LA PAGE 404 -------------------------------------------------------------
   Un seul titre a reprendre. Miss Bud y a son visuel : il reste tel quel. */
html.lvv-nuit body#pagenotfound #wrapper h1,
html.lvv-nuit body#pagenotfound #wrapper p{ color:#EFDCA8 !important; }

/* --- 7. LES PAGES A PANNEAU : RIEN A FAIRE --------------------------------------
   Guides (body#cms), boutiques (body#stores), contact (body#contact) : mesure a
   61, 55 et 17 textes, TOUS poses sur un panneau clair (.page-content, cartes).
   Le fond descend autour, le texte garde son papier. Zero correction, et c est
   voulu : un guide de 4 000 signes se lit mieux sur clair. */

/* --- 8. L ETIQUETTE DE SELECTION ------------------------------------------------
   Le seul endroit ou la braise touche une vignette. Elle dit « Orange » ou
   « Nuit » — jamais un pourcentage : sans promotion, rien ne doit imiter une
   promotion. Posee par le bloc de vignettes, pas par cette feuille. */

/* --- 9. LES SURVOLS -------------------------------------------------------------
   Deuxieme et dernier emploi de la braise. L or reste la couleur de la vente. */
html.lvv-nuit body#index .lvv-ac-bande-creme a:hover,
html.lvv-nuit body#index .lvv-ac-bande-papier a:hover{ color:var(--lvv-halo) !important; }

/* --- 10. LA FICHE PRODUIT -------------------------------------------------------
   Cette section etait VIDE jusqu au 2026-09-16 : la fiche etait la seule page que
   le theme s interdisait. Florent a demande qu il la couvre aussi.

   CE QUE CA COUTE, MESURE ET NON ESTIME. Dix fiches de familles differentes —
   fleur, resine, pre-roule, e-liquide, neo, quatre vaporisateurs, une cartouche —
   chargees telles qu elles sont servies, le theme injecte, et CHAQUE texte mesure
   deux fois : avant, apres. Contraste lu sur le PIXEL RENDU, jamais sur la couleur
   declaree. Resultat avant correction :
     37 a 52 textes casses par fiche, 425 en tout.
   Et 0 a 26 par fiche etaient DEJA sous 4,5 avant nous : ceux-la ne sont pas de
   notre fait et ne sont pas corriges ici — les corriger demanderait de toucher
   l habillage de la maison, qui n est pas saisonnier.

   LE PIEGE QUI A FAILLI COUTER QUARANTE REGLES INUTILES : la description longue
   est REPLIEE (.lvv-repli, max-height + overflow:hidden). Les blocs de marque
   sb-* gardent leurs boites en place mais ne sont PAS PEINTS. Une premiere mesure
   comptait 87 cellules sb-th/sb-td comme illisibles : elles etaient simplement
   invisibles. Un releve de contraste doit ecarter ce qui est COUPE par un ancetre
   a overflow cache — sinon il invente du travail. Apres correction du releve, il
   ne reste que DEUX textes sb-* casses, ceux qui depassent le pli.

   LA REGLE QUI TIENT L IDENTITE DES MARQUES : les 177 classes sb-* et 12 mb-*
   vivent sur la carte BLANCHE de la description (.product-description, fond
   #FFF). On ne les repeint pas — on ne touche QUE ce qui est pose a meme le fond
   de page. C est le principe de toute la feuille : l encre suit la surface.

   LE VOILE DU PLI : .lvv-repli::after est un degrade vers le creme de la page.
   Il passe au BLANC, la couleur de la carte qu il recouvre — pas au fond de nuit.
   Un voile sombre sur une carte blanche fait une ombre, pas un evanouissement.
   C est la seule chose de la fiche qui ne soit pas de l encre. */

/* LE VOILE DU PLI fond vers la CARTE, pas vers la page. La description repliee
   est une carte BLANCHE ; un voile qui va vers le fond de nuit y fait une ombre,
   pas un evanouissement — et il noircissait le bas des tableaux de marque, ce
   qu un releve de contraste compte a tort comme des textes illisibles. */
html.lvv-nuit body#product #wrapper .lvv-repli::after{
  background:linear-gradient(rgba(255,255,255,0), #FFFFFF 82%) !important; }

/* LE TITRE ET LES TITRES D ONGLET. Le site les peint en vert maison par des
   regles a identifiant : il faut l importance, la specificite ne suffit pas. */
html.lvv-nuit body#product #wrapper h1.h1,
html.lvv-nuit body#product #wrapper #product_tabs_block .tabs > h3,
html.lvv-nuit body#product #wrapper #tab-content > h3{ color:#EFDCA8 !important; }

/* LE PRIX. La feuille ne touche jamais un prix — sauf quand c est le SOL qui a
   change sous lui. Il reste le texte le plus lisible de la page. */
html.lvv-nuit body#product #wrapper .product-prices .current-price span,
html.lvv-nuit body#product #wrapper .product-prices .product-price,
html.lvv-nuit body#product #wrapper .product-prices .current-price{ color:#EFDCA8 !important; }
html.lvv-nuit body#product #wrapper .product-prices .tax-shipping-delivery-label{
  color:#9FB08C !important; }

/* L ACHAT : le libelle de quantite, les declinaisons, le titre de remise. */
html.lvv-nuit body#product #wrapper #add-to-cart-or-refresh .control-label,
html.lvv-nuit body#product #wrapper #add-to-cart-or-refresh .product-discounts .h6{
  color:#EFDCA8 !important; }
html.lvv-nuit body#product #wrapper #add-to-cart-or-refresh .lvv-qty-title,
html.lvv-nuit body#product #wrapper #add-to-cart-or-refresh .lvv-qty-note{ color:#9FB08C !important; }

/* LA DISPONIBILITE EN BOUTIQUE, et son lien Details. */
html.lvv-nuit body#product #wrapper #ocs_product_stock_info{
  color:#9FB08C !important; }
html.lvv-nuit body#product #wrapper #ocs_btn_open_modal,
html.lvv-nuit body#product #wrapper .ocs_btn_open_modal{ color:#D2B269 !important; }

/* LA REASSURANCE : neuf blocs par fiche, poses a meme le fond. */
html.lvv-nuit body#product #wrapper .blockreassurance_product .block-title{
  color:#D2B269 !important; }
html.lvv-nuit body#product #wrapper .blockreassurance_product p{ color:#9FB08C !important; }

/* L ONGLET DETAILS : reference, caracteristiques, valeurs. */
html.lvv-nuit body#product #wrapper #product-details .label,
html.lvv-nuit body#product #wrapper #product-details label,
html.lvv-nuit body#product #wrapper #product-details .product-features .h6{
  color:#EFDCA8 !important; }
html.lvv-nuit body#product #wrapper #product-details .product-reference span{ color:#9FB08C !important; }
/* la marque, dans l onglet Details : le seul lien de la fiche pose a meme le fond */
html.lvv-nuit body#product #wrapper #product-details .product-manufacturer a,
html.lvv-nuit body#product #wrapper #product-details .product-manufacturer span{
  color:#D2B269 !important; }
/* PAS dt ni dd : mesure du 2026-09-16, la fiche technique dl.data-sheet porte SA
   PROPRE carte claire rgb(247,241,229). Une premiere version les peignait en
   brume et les faisait tomber a 2,06 — vingt-deux textes casses par la regle
   censee reparer. Mesurer ce qu on repare ne dit rien de ce qu on casse. */

/* LES PIECES JOINTES : les guides en PDF. */
html.lvv-nuit body#product #wrapper #attachments .h5{ color:#EFDCA8 !important; }
html.lvv-nuit body#product #wrapper #attachments .attachment a{ color:#D2B269 !important; }
html.lvv-nuit body#product #wrapper #attachments .attachment p{ color:#9FB08C !important; }

/* LE BLOC LEGAL CBD, en bas de chaque fiche. */
html.lvv-nuit body#product #wrapper #cbd h4{ color:#EFDCA8 !important; }
html.lvv-nuit body#product #wrapper #cbd p,
html.lvv-nuit body#product #wrapper #cbd h5{ color:#9FB08C !important; }

/* NOS BLOCS DE MAISON poses sur le fond : les paliers, le chez-nous,
   la selection, les meilleures ventes, l accroche. */
html.lvv-nuit body#product #wrapper .lvv-pl .lvv-pl-g a{ color:#D2B269 !important; }
html.lvv-nuit body#product #wrapper .lvv-pl .lvv-pl-t{ color:#B08D3F !important; }
html.lvv-nuit body#product #wrapper .lvv-cn a{ color:#D2B269 !important; }
html.lvv-nuit body#product #wrapper .lvv-cn{ color:#9FB08C !important; }
html.lvv-nuit body#product #wrapper .lvv-sel-fiche,
html.lvv-nuit body#product #wrapper .lvv-bs-fiche{ color:#9FB08C !important; }
/* L ACCROCHE, sous le titre. Elle n a PAS de classe a elle : son seul repere est
   un identifiant prefixe, product-description-short-<id du produit>. Une premiere
   version visait .product-description-short, qui n existe nulle part — dix-sept
   textes restaient noirs sur la nuit. */
html.lvv-nuit body#product #wrapper [id^="product-description-short"],
html.lvv-nuit body#product #wrapper [id^="product-description-short"] p,
html.lvv-nuit body#product #wrapper [id^="product-description-short"] span,
html.lvv-nuit body#product #wrapper [id^="product-description-short"] strong{ color:#CFC49E !important; }
html.lvv-nuit body#product #wrapper [id^="product-description-short"] a{ color:#D2B269 !important; }

/* Les declinaisons et l etiquette de nouveaute, posees a meme le fond. */
html.lvv-nuit body#product #wrapper #add-to-cart-or-refresh .radio-label,
html.lvv-nuit body#product #wrapper .input-container .radio-label{ color:#EFDCA8 !important; }
html.lvv-nuit body#product #wrapper .lvv-neuf-fiche{ color:#D2B269 !important; }

/* CE QUE CETTE SECTION NE TOUCHE PAS, ET C EST VOULU :
   - la carte blanche de la description et TOUT ce qui vit dessus : les 177 sb-*,
     les 12 mb-*, les tableaux de comparaison, les badges de marque ;
   - les photos, la galerie, les vignettes ;
   - les boutons d achat, qui portent leur propre fond ;
   - le tableau des paliers .lvv-qty, qui porte ses propres cartes. */

/* CE QUI MANQUAIT ENCORE, APRES DEUX MESURES :
   la disponibilite en boutique est un <p>, pas un <span> ; le prix a l unite
   porte sa propre classe ; et le titre L essentiel des blocs de marque deborde
   de la carte blanche sur certaines fiches. */
html.lvv-nuit body#product #wrapper #ocs_product_stock_info p{ color:#9FB08C !important; }
html.lvv-nuit body#product #wrapper .product-unit-price{ color:#9FB08C !important; }

/* LA DESCRIPTION LONGUE : ON LUI DONNE LA SURFACE, ON NE CHANGE PAS SON ENCRE.
   Trois versions, et les deux premieres etaient fausses :
     1. repeindre la prose en parchemin : elle a repeint AUSSI les blocs de
        marque poses dans la meme description — sb-cle, sb-nom, sb-titre —, qui
        portent leurs propres panneaux clairs. Zero texte casse sur la cartouche
        est devenu treize.
     2. la restreindre a ce qui n a pas de classe, en distinguant la carte par
        .lvv-repli : sur la fiche neo la description est BLANCHE sans porter
        .lvv-repli, et six paragraphes se sont retrouves en parchemin sur blanc,
        a 1,74.
   La bonne reponse etait la doctrine de cette feuille, ecrite en tete : L ENCRE
   SUIT LA SURFACE. On ne touche donc pas a l encre de la description — on lui
   garantit sa carte blanche partout. Sur les fiches ou elle l avait deja, rien
   ne change ; sur les autres, la prose retrouve le fond que les blocs de marque
   supposent depuis toujours. Une regle au lieu de douze. */
html.lvv-nuit body#product #wrapper #description .product-description,
html.lvv-nuit body#product #wrapper #description > .product-description{
  background:#FFFFFF !important; }

/* LE FIL D ARIANE : RIEN, ET C EST UNE MESURE. Une premiere version le peignait
   en brume ; il vit sur une pastille CLAIRE rgb(252,251,247), et quarante et un
   textes sont tombes a 2,24. La pastille tient toute seule. */

/* LA BARRE D ACHAT DU TELEPHONE. Sous 768 px, .product-add-to-cart devient
   position:fixed avec un fond CREME rgb(252,251,247) : c est la barre collante
   qui porte la quantite et le bouton. Les encres de nuit posees plus haut y
   tombent a 1,31. La barre garde donc l encre de la maison — elle est claire,
   elle reste claire. Et la regle du telephone doit porter #add-to-cart-or-refresh
   comme celle du bureau : a deux identifiants contre trois, elle ne passait pas,
   quelle que soit sa place dans la feuille — l importance ne departage rien entre
   deux regles importantes, seule la specificite compte.
   Elle ne s etait pas montree a la premiere sonde : la porte d age etait ouverte,
   et une page dont la porte d age est ouverte ne pose AUCUN element en fixed.
   Une mesure prise a travers la porte d age ne mesure pas la page. */
@media (max-width:767px){
  html.lvv-nuit body#product #wrapper #add-to-cart-or-refresh .product-add-to-cart .control-label{
    color:#1A2120 !important; }
  /* LA DISPONIBILITE EST DANS LA BARRE, SUR TELEPHONE. Mesure du 2026-09-16 :
     la regle qui lui rend le parchemin plus haut porte trois identifiants et la
     suivait jusque dans la barre CREME, ou « Rupture de stock » tombait a 1,68.
     Quatre identifiants ici pour repasser devant. Meme loi que le reste de la
     barre : elle est claire, elle garde l encre de la maison. */
  html.lvv-nuit body#product #wrapper #add-to-cart-or-refresh .product-add-to-cart #product-availability{
    color:#1A2120 !important; }
}

/* POURQUOI #wrapper DANS CHAQUE SELECTEUR DE CETTE SECTION.
   Mesure du 2026-09-16 : la maison force l encre de la fiche par
     body#product:not(.product-id-category-53):not(...)x11 { color:#1A2120 !important }
   — un identifiant, ONZE classes, et l importance. Une regle a un seul
   identifiant ne passe jamais devant, meme avec !important : a importance egale,
   c est la specificite qui tranche, et le nombre d IDENTIFIANTS est compare en
   premier. Ajouter #wrapper donne DEUX identifiants, et (2,3,4) passe devant
   (1,11,1) quel que soit le nombre de classes.
   C est aussi ce que cette regle de maison raconte : une fiche est soit NUE —
   encre imposee — soit HABILLEE, et les onze :not() sont la liste des fiches
   habillees. Le theme de saison ne change pas cette logique, il se place au
   dessus des deux. */

/* --- 11. LE TELEPHONE -----------------------------------------------------------
   MESURE LE 2026-09-14 a 375 px, gabarit mobile servi (user-agent Android), page
   rechargee apres redimensionnement — un panneau redimensionne sans rechargement
   ment sur la mise en page.

   CE QUE LE BUREAU CACHAIT. Sur l accueil, les 25 produits de la vitrine ne sont
   PAS dans une carte : au bureau ils vivent dans une bande deja sombre, sur
   telephone la bande ne les couvre plus et leurs textes tombent a nu sur le fond.
   77 textes sur le fond contre 150 au bureau, mais 76 d entre eux illisibles —
   .lvv-vit-nom (25) et .lvv-vit-prix (25) a 1,06, .lvv-vit-oeil (25) a 2,72.
   Aucune mesure au bureau ne pouvait les trouver.
   Le rayon, lui, est PLUS simple sur telephone : 4 textes sur le fond au lieu de
   69, la colonne de filtres etant repliee dans un tiroir. Les regles de la
   section 4 suffisent — verifie : 0 restant, cartes toujours a #FCFBF7. */
@media (max-width:767px){
  html.lvv-nuit body#index .lvv-vit-nom,
  html.lvv-nuit body#index .lvv-vit-prix{ color:#EFDCA8 !important; }
  html.lvv-nuit body#index .lvv-vit-oeil{ color:#D2B269 !important; }
  html.lvv-nuit body#index .lvv-vit-deg{ color:#9FB08C !important; }
}

/* Verifie apres injection, a 375 px : accueil 77 textes / 0 sous 4,5 ;
   rayon 4 / 0. Les regles des sections 2 a 6 ne sont pas dans un @media : elles
   s appliquent aux deux gabarits, c est voulu.

   DEUX CONTROLES DE PLUS, parce qu une sonde qui ne mesure que le visible ne voit
   pas tout (2026-09-14) :
   - UN FOND PEUT ETRE UNE IMAGE, ET UNE IMAGE N EST PAS UNE COULEUR. Une sonde
     qui ne lit que background-color remonte jusqu au fond de page et annonce
     « creme sur vert pale, rapport 1,23 » sur un titre parfaitement lisible pose
     sur une plaque en degrade. Cinq faux positifs sur l accueil, sept par rayon.
     Distinguer « sur une image » de « sous le seuil ».
   - LE TIROIR DES FILTRES. Sur telephone la colonne de gauche est repliee : 117
     elements a texte y sont masques, donc jamais mesures. Tiroir OUVERT par un
     clic sur « Filtrer », theme pose, remesure : 0 sous 4,5, les .facet-title
     rendent bien en parchemin. Un thème se verifie aussi dans ce qui est ferme.
   - HORS DU #wrapper. Toutes mes mesures portaient sur #wrapper : le bandeau, le
     pied de page et le bandeau de cookies n y sont pas. Verifies a part, sous le
     theme : 59 textes, 0 sous 4,5 — ils etaient deja sombres, le theme ne les
     touche pas et n a pas a le faire. */



/* ==== PAS D INTERRUPTEUR, PAS DE MODE JOUR =====================================
   Decision de Florent, 2026-09-16 : << il ne doit y avoir que le theme nuit pas
   jour >>, et << tout doit toujours etre en mode nuit des qu on aura lance le
   theme halloween >>.
   Une premiere version portait un bouton de pied de page, .lvv-nuit-bouton, et
   une variante du script de tete lisant localStorage. Les deux sont RETIRES.
   Du 17 octobre au 2 novembre, la classe est posee pour tout le monde, sans
   exception, sans preference, sans sortie. Ce qu on fera apres le 2 novembre est
   une decision a prendre le moment venu — pas un mecanisme qu on embarque
   aujourd hui << au cas ou >>. Un interrupteur qui existe finit par etre pousse. */

/* ==== LES DEUX BLOCS AJOUTES A L ACCUEIL =======================================
   Leur HTML est a part (bloc-selection-de-la-nuit.html, bloc-tourniquet-storz.html).
   Ils ne remplacent rien : ce sont deux bandes de plus sur displayHome.

   LE PREMIER EST SAISONNIER, LE SECOND NON — et c est pour ca que leurs styles ne
   sont pas ecrits au meme endroit : la selection vit sous html.lvv-nuit et s eteint
   avec le theme ; le tourniquet vit hors de la classe et tient sur le site clair
   comme sur le sombre. */

/* --- la selection de la nuit, saisonniere --- */
/* ===== LA CARTE DU SOIR — la selection de la nuit ============================
   Premiere version : vingt-sept vignettes en grille, plus de mille pixels de
   haut. C est ce que fait n importe quelle boutique, et c etait un mur.
   Celle-ci inverse la proportion — UNE piece eclairee a la fois, les vingt-sept
   en colonnes de noms graves, et les trois lectures de saison en troisieme
   colonne. Mesure : 584 px. Et elle ne ressemble a aucune grille de produits.

   Deux reglages payes par la mesure : les articles places en FRERE de la grille
   ajoutaient 238 px et laissaient la colonne de droite vide — ils sont dedans ;
   et l etiquette de famille sur 34 px rognait cinquante-quatre noms sur
   cinquante-quatre — elle tient sur 58 et les longs sont abreges dans le HTML. */
html.lvv-nuit .lvv-cs{ padding:36px 20px 32px; background:linear-gradient(180deg,#0E1610,#0B120C);
  border-block:1px solid #24331F; }
html.lvv-nuit .lvv-cs-tete{ display:flex; align-items:center; gap:20px; max-width:1250px;
  margin:0 auto 6px; }
/* LE BLOC RETIENT SA BRUME. Voir la mesure en bas de feuille, section de la lune. */
/* ET IL DESCEND SOUS LE CARROUSEL. MESURE DU 2026-09-19, SUR LA PAGE EN LIGNE :
   le carrousel d accueil (.homeslider-container, et chaque .slide) est en
   float:left, pleine largeur. Un bloc qui suit un flottant sans le degager
   commence DANS sa bande ; et une boite en grille ou en flex, elle, ne
   chevauche jamais un flottant : elle se retrecit a la place qui reste. Il n en
   restait aucune. Releve avant correction, en haut de la page servie :
     a  390 px  tete a x=390, largeur 0 (hors ecran, et coupee par overflow-x)
     a 1280 px  tete a x=1280, vitrine a x=1280, liste a x=1514 largeur 0,
                lectures a x=1538 — tout le bloc hors champ, sauf le pied
   Le bloc occupait 1 461 px (telephone) et 1 221 px (ordinateur) de bande vide,
   et le visiteur ne lisait ni le titre, ni le chapo, ni les vingt-neuf noms.
   Un seul mot repare les deux : clear. Apres : 1 256 px et 799 px, chaque piece
   a sa place, zero debordement lateral de 360 a 1280 px.
   LA LECON : ce bloc a ete valide dans un miroir ou il etait ajoute en DERNIER
   enfant, apres les modules qui degagent deja le flottant. Pose pour de vrai
   juste apres le carrousel, il tombait dans la bande. Un bloc ne se verifie qu a
   sa vraie place dans la page servie. */
html.lvv-nuit section.lvv-cs{ overflow-x:clip; overflow-y:visible; clear:both; }
html.lvv-nuit .lvv-cs-mb{ flex:none; width:78px; height:auto; display:block;
  filter:drop-shadow(0 6px 16px rgba(0,0,0,.55)); }
/* MESURE DU 2026-09-16, bloc pose sur la VRAIE page d accueil : ce titre rendait
   rgb(46,74,50) — le vert de la maison — sur le fond du bloc rgb(14,22,16), soit
   1,88 de contraste. Une regle du site porte deux identifiants et passait devant
   la notre, qui n en a aucun. Le !important est ici le seul moyen court : le bloc
   peint sa surface ET son encre, il ne peut pas laisser le theme du site decider
   de la seconde. Verifie apres correction : 8,66. */
/* LE TITRE DU BLOC N EST PAS UNE PLAQUE, ET C EST UNE DECISION DU 2026-09-16.
   Le bloc vit dans #main : la regle de maison #main h2 lui donnait le cadre grave
   — deux filets d or, le reflet, le padding — et la tete du bloc passait de 146 a
   243 px. La plaque est belle, mais la tete de ce bloc a son propre dessin :
   Miss Bud a gauche, le titre, le filet de braise. On sort donc ce seul h2 du
   gabarit des plaques. Deux identifiants pour passer devant #main h2 ; les deux
   pseudo-elements de la plaque — l embleme et le second filet — sont eteints
   aussi, sinon ils flottent tout seuls. */
html.lvv-nuit body#index #main .lvv-cs-tete h2{
  background-image:none !important; background-color:transparent !important;
  border:0 !important; box-shadow:none !important; text-shadow:none !important;
  padding:0 !important; margin:0 !important; max-width:none !important;
  width:auto !important; text-align:left !important; }
html.lvv-nuit body#index #main .lvv-cs-tete h2::before,
html.lvv-nuit body#index #main .lvv-cs-tete h2::after{ display:none !important; }

html.lvv-nuit .lvv-cs-t h2{ font-family:Marcellus,Georgia,serif; font-size:20px;
  letter-spacing:.18em; color:#EFDCA8 !important; margin:0; text-transform:uppercase; }
html.lvv-nuit .lvv-cs-t p{ font-size:12.5px; color:#9FB08C; margin:5px 0 0; max-width:62ch; }
/* la note des Catacombes : plus basse que le chapo, sans jamais devenir une accroche */
html.lvv-nuit .lvv-cs-t .lvv-cs-cata{ font-size:11.5px; color:#7E8F72; font-style:italic;
  margin-top:7px; max-width:58ch; }
html.lvv-nuit .lvv-cs-filet{ flex:1; height:1px;
  background:linear-gradient(90deg,#C1541C,rgba(193,84,28,0)); }

html.lvv-nuit .lvv-cs .lvv-cs{ display:grid; grid-template-columns:210px minmax(0,1fr) 196px;
  gap:24px; max-width:1250px; margin:16px auto 0; align-items:start; padding:0; border:0;
  background:none; }
/* LE CADRE DE LA MAISON, repris a l identique sur la vitrine : deux filets d or
   — l exterieur de 2 px, l interieur d un pixel a 6 px du bord — un reflet blanc
   a 7,5 % pose en haut au centre, une gravure noire d un pixel et une lueur
   interne sombre. Le second filet est porte par ::after, comme sur la plaque ;
   ::before est deja pris par la lueur de la lanterne. */
html.lvv-nuit .lvv-cs-vitre{ position:relative; padding:6px;
  border:2px solid #B08D3F;
  background-image:
    radial-gradient(130% 180% at 50% -10%, rgba(255,255,255,.075), rgba(255,255,255,0) 60%),
    linear-gradient(#16211591, #0A100B);
  background-color:#0A100B;
  box-shadow:inset 0 0 0 1px rgba(0,0,0,.45), inset 0 0 40px rgba(0,0,0,.4),
             0 10px 24px rgba(0,0,0,.45); }
html.lvv-nuit .lvv-cs-vitre::after{ content:""; position:absolute; inset:6px; z-index:3;
  pointer-events:none; border:1px solid rgba(238,215,158,.5); }
/* la lueur de la lanterne : le seul endroit eclaire de la bande */
html.lvv-nuit .lvv-cs-vitre::before{ content:""; position:absolute; inset:0; pointer-events:none;
  z-index:2; background:radial-gradient(70% 55% at 50% 34%,rgba(229,138,60,.16),rgba(229,138,60,0) 70%); }
html.lvv-nuit .lvv-cs-v{ margin:0; }
html.lvv-nuit .lvv-cs-v img{ display:block; width:100%; height:auto; background:#FBF9F2; }
html.lvv-nuit .lvv-cs-v figcaption{ display:block; padding:11px 13px 14px; }
html.lvv-nuit .lvv-cs-v-fam{ display:block; font-size:8px; letter-spacing:.18em;
  text-transform:uppercase; color:#B08D3F; }
html.lvv-nuit .lvv-cs-v-n{ display:block; font-family:Marcellus,Georgia,serif; font-size:15px;
  color:#EFDCA8; margin-top:5px; line-height:1.24; }
html.lvv-nuit .lvv-cs-v-q{ display:block; font-size:11px; color:#9FB08C; margin-top:6px;
  line-height:1.45; }

html.lvv-nuit .lvv-cs-liste{ display:grid; grid-template-columns:repeat(3,1fr); gap:0 22px;
  border-top:1px solid #24331F; }
html.lvv-nuit .lvv-cs-l{ display:flex; align-items:baseline; gap:8px; padding:6px 2px 5px;
  border-bottom:1px solid #1C271D; position:relative; text-decoration:none;
  transition:background .18s ease, padding-left .18s ease; }
html.lvv-nuit .lvv-cs-l:hover,
html.lvv-nuit .lvv-cs-l:focus-visible,
html.lvv-nuit .lvv-cs-l[aria-current="true"]{ background:rgba(229,138,60,.07); padding-left:8px;
  outline:0; }
html.lvv-nuit .lvv-cs-l[aria-current="true"]::before{ content:""; position:absolute; left:0;
  top:4px; bottom:4px; width:2px; background:#E58A3C; }
/* #75591F a ete releve a #A07F36 le 2026-09-16 : mesure au pixel rendu, l or
   eteint donnait 2,83 de contraste sur le fond du bloc, trente fois. 4,93 apres.
   PUIS #B08D3F le 2026-09-17, sur le site EN PRODUCTION. Le releve de 4,93 avait
   ete pris sur le fond principal du bloc ; deux etiquettes tombent sur un fond
   un peu plus sombre, rgb(28,30,18), et y donnaient 4,49 — un centieme sous le
   seuil. C etaient les deux SEULS textes que la saison cassait sur seize pages.
   #B08D3F donne 5,41 sur ce fond-la, et c est l or deja declare en --lvv-or :
   pas une couleur de plus. */
html.lvv-nuit .lvv-cs-l-fam{ flex:none; width:58px; font-size:7.5px; letter-spacing:.1em;
  text-transform:uppercase; color:#B08D3F; overflow:hidden; white-space:nowrap;
  text-overflow:ellipsis; }
html.lvv-nuit .lvv-cs-l-n{ font-family:Marcellus,Georgia,serif; font-size:13px; color:#EFDCA8;
  line-height:1.22; }
/* LA PHOTO DE LA CARTE N EXISTE QUE SUR TELEPHONE. Le script du bloc la copie
   des que l ecran est etroit, et elle RESTE dans le HTML si on tourne ensuite le
   telephone : sans cette ligne, un ecran large retrouvait sa vitrine ET gardait
   vingt-neuf photos dans la colonne de noms. Mesure du 2026-09-19 : 390 -> 900
   -> 390, vitrine et photos correctes aux trois temps. */
html.lvv-nuit .lvv-cs-l-p{ display:none; }
/* le point marque les pieces faites POUR la saison, pas celles qu on y range */
html.lvv-nuit .lvv-cs-nuit .lvv-cs-l-n::after{ content:""; display:inline-block; width:5px;
  height:5px; border-radius:50%; background:#C1541C; margin-left:6px; vertical-align:middle; }

html.lvv-nuit .lvv-cs-arts{ border-left:1px solid #24331F; padding-left:18px; }
html.lvv-nuit .lvv-cs-arts-t{ font-size:9.5px; letter-spacing:.18em; text-transform:uppercase;
  color:#A07F36; line-height:1.5; margin:0 0 12px; }
/* LA PASTILLE, PAS LA VIGNETTE. Un en-tete de guide fait 1000x667 ; pose ici, il
   ajoutait quatre-vingt-dix pixels par article a une bande qu on venait de
   resserrer. On prend le haut du personnage en carre de 44 px, a cote du titre :
   chaque article garde sa pose, donc son signe. */
html.lvv-nuit .lvv-cs-a{ display:block; padding:10px 0; border-top:1px solid #1C271D;
  text-decoration:none; overflow:hidden; }
html.lvv-nuit .lvv-cs-a-p{ float:left; width:44px; height:44px; display:block;
  margin:1px 9px 2px 0; filter:drop-shadow(0 3px 8px rgba(0,0,0,.5)); }
html.lvv-nuit .lvv-cs-a-x{ display:block; }
html.lvv-nuit .lvv-cs-a:first-of-type{ border-top:0; padding-top:0; }
html.lvv-nuit .lvv-cs-a-m{ display:block; font-size:7.5px; letter-spacing:.16em;
  text-transform:uppercase; color:#B08D3F; }
html.lvv-nuit .lvv-cs-a-t{ display:block; font-family:Marcellus,Georgia,serif; font-size:14px;
  color:#EFDCA8; margin-top:4px; line-height:1.24; }
html.lvv-nuit .lvv-cs-a-d{ display:block; font-size:10.5px; color:#9FB08C; margin-top:5px;
  line-height:1.42; }
html.lvv-nuit .lvv-cs-a:hover .lvv-cs-a-t{ color:#E58A3C; }

html.lvv-nuit .lvv-cs-pied{ max-width:1250px; margin:18px auto 0; text-align:center;
  font-size:12px; color:#9FB08C; }

@media (max-width:1100px){
  html.lvv-nuit .lvv-cs .lvv-cs{ grid-template-columns:186px minmax(0,1fr); }
  html.lvv-nuit .lvv-cs-arts{ grid-column:1/-1; border-left:0; border-top:1px solid #24331F;
    padding:16px 0 0; display:grid; grid-template-columns:auto 1fr 1fr 1fr; gap:16px;
    align-items:start; }
  html.lvv-nuit .lvv-cs-arts-t{ max-width:9ch; margin-bottom:0; }
  html.lvv-nuit .lvv-cs-a{ border-top:0; border-left:1px solid #24331F; padding:0 0 0 14px; }
}
@media (max-width:760px){
  html.lvv-nuit .lvv-cs .lvv-cs{ grid-template-columns:1fr; }
  html.lvv-nuit .lvv-cs-vitre{ max-width:260px; }
  html.lvv-nuit .lvv-cs-liste{ grid-template-columns:repeat(2,1fr); }
  html.lvv-nuit .lvv-cs-arts{ grid-template-columns:1fr; }
  html.lvv-nuit .lvv-cs-a{ border-left:0; border-top:1px solid #1C271D; padding:10px 0 0; }
}
/* --- LA CARTE DU SOIR SUR TELEPHONE -----------------------------------------
   MESURE DU 2026-09-16, REPRISE ET CORRIGEE le meme jour, bloc pose sur la
   vraie page d accueil a 390 px, en retirant ce bloc @media puis en le remettant :
     sans le defile  tete 211 · vitrine 376 · LISTE 843 · articles 431 = 2 149 px
     avec le defile  tete 211 · vitrine 376 · LISTE 117 · articles 190 = 1 183 px
   Soit 2,55 ecrans ramenes a 1,4, contre 799 px — un seul ecran — sur bureau.
   La colonne de vingt-neuf noms empiles est ce qui coute : 843 px a elle seule.
   Le premier chiffre publie ici — 2 558 px — etait faux : il avait ete obtenu en
   decoupant le bloc @media a la premiere accolade fermante rencontree, ce qui
   n en retirait qu un morceau. Une mesure ne vaut que si l etat compare est bien
   celui qu on croit avoir pose.

   CE QU ON NE FAIT PAS : replier la liste derriere un bouton << voir les 29 >>.
   Une carte qu on deplie n est plus une carte : la liste des noms EST l objet,
   c est elle qu on parcourt du regard.

   CE QU ON FAIT : la colonne devient un DEFILE a deux rangs. Le doigt fait
   glisser les noms horizontalement, la vitrine reste en place au-dessus. La
   mecanique ne change pas — premier appui, la piece s allume ; second appui,
   la fiche s ouvre — elle est deja ecrite dans le bloc et vaut pour les deux.
   Le bord droit s efface en degrade : c est ce qui dit qu il y a la suite. */
@media (max-width:760px){
  /* LA TETE SE REMONTE EN DEUX TEMPS. En rang, Miss Bud et le filet laissaient
     232 px de texte sur 350 : le chapo cassait en trois lignes courtes. Ici la
     tete devient une grille — la mascotte et le titre font le fronton, les deux
     paragraphes prennent la largeur entiere. Le filet de braise s efface : a
     cette largeur il ne restait rien a souligner. Mesure a 390 px : tete 233 px
     contre 211, texte de 232 a 350 px de large, titre sur une seule ligne. */
  html.lvv-nuit .lvv-cs-tete{ display:grid; grid-template-columns:auto minmax(0,1fr);
    align-items:center; gap:0 14px; }
  html.lvv-nuit .lvv-cs-t{ display:contents; }
  html.lvv-nuit .lvv-cs-mb{ width:64px; grid-row:1; }
  html.lvv-nuit .lvv-cs-t h2{ grid-column:2; font-size:17px; letter-spacing:.14em; }
  html.lvv-nuit .lvv-cs-t p{ grid-column:1/-1; margin-top:10px; }
  html.lvv-nuit .lvv-cs-t .lvv-cs-cata{ margin-top:6px; }
  html.lvv-nuit .lvv-cs-filet{ display:none; }
  /* LE DEFILE DE VIGNETTES — DECISION DU 2026-09-19.
     Sur ordinateur la carte marche : une vitrine qu on allume en parcourant une
     colonne de noms graves. Sur telephone, non. Trois choses s y opposaient : on
     faisait glisser les noms de cote alors que la vitrine restait en haut, il
     fallait taper DEUX fois (une pour allumer, une pour ouvrir), et vingt-neuf
     noms sans image ne donnent pas envie d ouvrir.
     Donc sur telephone la vitrine s eteint et la liste devient elle-meme la
     vitrine : une rangee de cartes qui portent la photo, le rayon et le nom, et
     qu UNE SEULE tape ouvre. La photo est copiee depuis la vitrine par le script
     du bloc — aucune image n est ajoutee au HTML, et la vitrine reste entiere
     pour un ecran qu on tourne.
     CE QU ON PAIE : la course au doigt passe de 2 338 px (trois rangs de noms) a
     environ 5 700 px sur un seul rang. C est le prix d un objet qu on regarde au
     lieu d un objet qu on lit. L accrochage devient MANDATORY : chaque
     glissement pose une carte au bord gauche, on ne s arrete plus entre deux.
     Deux cartes et un eclat de la troisieme tiennent a l ecran : c est ce qui
     dit qu il y en a d autres, avec le degrade du bord droit. */
  html.lvv-nuit .lvv-cs-vitre{ display:none; }
  html.lvv-nuit .lvv-cs-liste{
    display:grid; grid-auto-flow:column; grid-template-rows:auto;
    grid-template-columns:none; grid-auto-columns:41vw; gap:0 12px;
    border-top:0;
    overflow-x:auto; overscroll-behavior-x:contain;
    scroll-snap-type:x mandatory; -webkit-overflow-scrolling:touch;
    padding:0 14px 12px; margin:0 -14px; scroll-padding:0 14px;
    /* 96 % et pas 93 : c est l eclat de la troisieme carte qui dit qu il y en a
       d autres, le degrade ne fait que l adoucir. Plus large, il eteignait la
       DERNIERE carte une fois le defile au bout. */
    -webkit-mask-image:linear-gradient(90deg,#000 96%,transparent);
            mask-image:linear-gradient(90deg,#000 96%,transparent); }
  html.lvv-nuit .lvv-cs-liste::-webkit-scrollbar{ height:3px; }
  html.lvv-nuit .lvv-cs-liste::-webkit-scrollbar-thumb{ background:rgba(176,141,63,.45); }
  /* LA CARTE. Le cadre est celui de la vitrine, en plus mince : un filet d or,
     le meme fond grave. La carte ne bouge NI au survol NI quand elle est
     designee — le decalage de huit pixels de la colonne de bureau ferait sauter
     une rangee qui defile. */
  html.lvv-nuit .lvv-cs-l,
  html.lvv-nuit .lvv-cs-l:hover,
  html.lvv-nuit .lvv-cs-l:focus-visible,
  html.lvv-nuit .lvv-cs-l[aria-current="true"]{
    display:block; scroll-snap-align:start; padding:0 0 11px; height:100%;
    border:1px solid #B08D3F33; border-bottom:1px solid #B08D3F33;
    background:linear-gradient(#16211591,#0A100B); }
  html.lvv-nuit .lvv-cs-l[aria-current="true"]::before{ display:none; }
  html.lvv-nuit .lvv-cs-l-p{ display:block; width:100%; height:auto;
    aspect-ratio:1 / 1; object-fit:cover; background:#FBF9F2; }
  html.lvv-nuit .lvv-cs-l-fam{ display:block; width:auto; flex:none;
    padding:9px 10px 0; font-size:8px; letter-spacing:.14em; }
  html.lvv-nuit .lvv-cs-l-n{ display:block; padding:4px 10px 0; font-size:13px;
    line-height:1.26; }
  /* les trois lectures passent de la colonne au rang */
  html.lvv-nuit .lvv-cs-arts{ grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px;
    padding-top:14px; }
  html.lvv-nuit .lvv-cs-arts-t{ grid-column:1/-1; max-width:none; margin-bottom:2px; }
  html.lvv-nuit .lvv-cs-a{ border-top:0; padding:0; }
  /* la pastille est .lvv-cs-a-p, pas .lvv-cs-a-v : une regle qui vise une classe
     absente ne previent personne, il faut la lire dans le bloc. */
  html.lvv-nuit .lvv-cs-a-p{ float:none; display:block; margin:0 0 7px; }
  html.lvv-nuit .lvv-cs-a-t{ font-size:12.5px; line-height:1.25; }
  html.lvv-nuit .lvv-cs-a-d{ display:none; }
}

/* --- le tourniquet Storz, PAS saisonnier : hors de la classe --- */
/* Le relief est ici du DESSIN, pas de l image : aucun visuel n a ete refait. La
   profondeur tient a trois choses empilees — une perspective sur la rangee, un
   biseau grave dans chaque carte, et une ombre portee au sol. Elles se voient
   ensemble ; separees, chacune passe pour un defaut. */
.lvv-sb{ padding:40px 20px 34px; position:relative;
  background:
    radial-gradient(120% 62% at 50% -6%, rgba(255,102,0,.10), rgba(255,102,0,0) 62%),
    linear-gradient(180deg,#0B0B0B,#0E1310); }
.lvv-sb-tete{ display:flex; align-items:flex-end; gap:16px; max-width:1250px; margin:0 auto 20px; }
/* LA SEULE PIECE SAISONNIERE DU BLOC. Le tourniquet ne se retire pas le 2 novembre,
   Miss Bud si : son style est le seul du bloc a vivre sous la classe de saison.
   Sans elle, l image est masquee et le bloc reste ce qu il est le reste de l annee. */
.lvv-sb-mb{ display:none; }
html.lvv-nuit .lvv-sb-mb{ display:block; flex:none; width:140px; height:auto;
  margin-bottom:-20px; filter:drop-shadow(0 10px 24px rgba(0,0,0,.6)); }
@media (max-width:767px){ html.lvv-nuit .lvv-sb-mb{ width:92px; margin-bottom:-14px; } }
.lvv-sb-logo{ flex:none; height:136px; width:auto; display:block; }
@media (max-width:767px){ .lvv-sb-logo{ height:84px; } }
.lvv-sb-sous{ font-family:Marcellus,Georgia,serif; font-size:14px; color:#9FB08C; }
.lvv-sb-filet{ flex:1; height:1px; background:linear-gradient(90deg,#FF6600,rgba(255,102,0,0)); }

/* la rangee est une scene : c est elle qui porte le point de fuite */
.lvv-sb-piste{ display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:10px;
  max-width:1250px; margin:0 auto 34px; position:relative;
  perspective:1400px; perspective-origin:50% 42%; }
/* le sol sous la rangee : sans lui les appareils flottent, avec lui ils posent */
.lvv-sb-piste::before{ content:""; position:absolute; left:0; right:0; bottom:-20px; height:30px;
  pointer-events:none;
  background:radial-gradient(58% 100% at 50% 0%, rgba(0,0,0,.92), rgba(0,0,0,0) 74%); }
/* la rangee de salon garde la MEME grille : ses deux appareils tombent donc dans les
   deux premieres colonnes, a la largeur exacte des portables. Cadrer autrement — deux
   cases larges, ou une rangee centree — donnerait deux tailles de carte dans un meme
   rayon. Seul le point de fuite se deplace, sur le centre reel de la paire. */
.lvv-sb-deux{ perspective-origin:20% 42%; }
.lvv-sb-deux::before{ right:auto; width:calc(40% - 6px);
  background:radial-gradient(72% 100% at 50% 0%, rgba(0,0,0,.92), rgba(0,0,0,0) 74%); }

.lvv-sb-c{ --a:0deg; --z:0px; position:relative; display:flex; flex-direction:column;
  text-decoration:none; border:1px solid #242424; transform-style:preserve-3d;
  transform:translateZ(var(--z)) rotateY(var(--a));
  background:linear-gradient(158deg,#191614 0%,#0C0B0A 46%,#131110 100%);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.07),
    inset 1px 0 0 rgba(255,255,255,.03),
    inset -1px 0 0 rgba(0,0,0,.65),
    inset 0 -2px 0 rgba(0,0,0,.8),
    0 2px 3px rgba(0,0,0,.6),
    0 16px 26px -12px rgba(0,0,0,.92);
  transition:transform .4s cubic-bezier(.2,.75,.25,1), box-shadow .4s ease, border-color .25s ease; }
/* L EPAISSEUR. Deux joues perpendiculaires a la carte, tirees vers l arriere sur
   18 px. Seule se voit celle du cote ou l appareil se detourne — l autre part en
   arriere-plan et backface-visibility l efface. C est ce qui separe une carte d une
   plaque imprimee : un tourniquet a de l epaisseur, et elle se voit sur la tranche. */
.lvv-sb-c::before,.lvv-sb-c::after{ content:""; position:absolute; top:0; bottom:0; width:18px;
  pointer-events:none; backface-visibility:hidden; }
.lvv-sb-c::before{ left:0; transform-origin:left center; transform:rotateY(90deg);
  background:linear-gradient(90deg,#000 0%,#241F1B 100%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.05); }
.lvv-sb-c::after{ right:0; transform-origin:right center; transform:rotateY(-90deg);
  background:linear-gradient(90deg,#241F1B 0%,#000 100%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.05); }
/* l arc du tourniquet : cinq portables, la carte du milieu de face */
.lvv-sb-piste > :nth-child(1){ --a:-17deg; --z:-54px; }
.lvv-sb-piste > :nth-child(2){ --a:-8deg;  --z:-18px; }
.lvv-sb-piste > :nth-child(3){ --a:0deg;   --z:0px; }
.lvv-sb-piste > :nth-child(4){ --a:8deg;   --z:-18px; }
.lvv-sb-piste > :nth-child(5){ --a:17deg;  --z:-54px; }
/* la rangee de salon n a que deux appareils : son arc est plus doux */
.lvv-sb-deux > :nth-child(1){ --a:-9deg; --z:-18px; }
.lvv-sb-deux > :nth-child(2){ --a:9deg;  --z:-18px; }
/* au survol l appareil se tourne de face et avance d un cran vers le visiteur */
.lvv-sb-c:hover, .lvv-sb-c:focus-visible{ --a:0deg; --z:52px; border-color:#FF6600;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.12),
    inset 0 -2px 0 rgba(0,0,0,.8),
    0 30px 46px -16px rgba(0,0,0,.95),
    0 12px 34px -12px rgba(255,102,0,.38); }
.lvv-sb-c:focus-visible{ outline:2px solid #FF6600; outline-offset:3px; }

/* la vitrine de l appareil, creusee dans la carte */
.lvv-sb-vue{ position:relative; display:block; background:#070707; overflow:hidden;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.045),
              inset 0 -14px 22px -14px rgba(0,0,0,.95); }
.lvv-sb-vue img{ display:block; width:100%; height:auto; }
/* le reflet qui glisse sur la vitre — c est lui qui donne la matiere */
.lvv-sb-vue::before{ content:""; position:absolute; inset:-10%; pointer-events:none; z-index:1;
  background:linear-gradient(112deg, rgba(255,255,255,0) 36%, rgba(255,255,255,.11) 47%,
    rgba(255,255,255,0) 58%);
  transform:translateX(-62%); transition:transform .7s cubic-bezier(.3,.7,.3,1); }
.lvv-sb-c:hover .lvv-sb-vue::before{ transform:translateX(62%); }
/* la chauffe : la seule animation du chantier, et elle dit quelque chose du produit */
.lvv-sb-vue::after{ content:""; position:absolute; left:0; right:0; bottom:0; height:0;
  background:linear-gradient(0deg,rgba(255,102,0,.5),rgba(255,102,0,0));
  transition:height .45s cubic-bezier(.3,.7,.3,1); }
.lvv-sb-c:hover .lvv-sb-vue::after{ height:70%; }

.lvv-sb-n{ display:block; padding:10px 10px 0; font-family:Marcellus,Georgia,serif;
  font-size:12.5px; line-height:1.25; color:#EFDCA8; text-shadow:0 1px 0 rgba(0,0,0,.9); }
/* ce qui distingue un appareil des six autres, en une ligne. Le texte vient de la
   description de sa propre fiche : un tourniquet qui promet ce que la fiche ne dit
   pas fabrique une deception au clic. */
.lvv-sb-q{ display:block; padding:4px 10px 0; font-size:11px; line-height:1.35;
  color:#A8B89B; }
.lvv-sb-p{ display:block; padding:6px 10px 12px; font-size:12.5px; color:#FF8534;
  font-variant-numeric:tabular-nums; margin-top:auto;
  text-shadow:0 0 14px rgba(255,102,0,.3); }
/* deux familles, parce qu on choisit d abord un usage et ensuite un prix */
.lvv-sb-groupe{ max-width:1250px; margin:0 auto 10px; font-size:10.5px; letter-spacing:.2em;
  text-transform:uppercase; color:#A4958A; }  /* et non #6E6157 : mesure 3,14 de
   contraste sur le noir du bloc, sous le seuil de 4,5 */
.lvv-sb-piste + .lvv-sb-groupe{ margin-top:10px; }
.lvv-sb-pied{ max-width:1250px; margin:16px auto 0; text-align:center; font-size:12.5px;
  color:#9FB08C; }

/* SUR TELEPHONE L ARC EST RETIRE. Une carte tournee de 9 degres sur 160 px de large
   perd deux caracteres de son nom au bord, et le doigt vise un rectangle penche.
   Le biseau et l ombre portee, eux, restent : le relief tient sans la perspective. */
@media (max-width:860px){
  .lvv-sb-piste{ grid-template-columns:repeat(3,1fr); perspective:none; margin-bottom:26px; }
  .lvv-sb-deux{ grid-template-columns:repeat(2,1fr); max-width:1250px; }
  .lvv-sb-piste > .lvv-sb-c, .lvv-sb-deux > .lvv-sb-c{ --a:0deg; --z:0px; }
  .lvv-sb-c:hover, .lvv-sb-c:focus-visible{ --z:0px; }
  .lvv-sb-c::before{ bottom:-12px; height:14px; }
}
@media (max-width:520px){ .lvv-sb-piste{ grid-template-columns:repeat(2,1fr); } }

/* ===== LE TOURNIQUET, A TOUTES LES LARGEURS ==================================
   Meme mecanique que le presentoir des sept rayons de l accueil (bloc 27, pose le
   6 septembre) : un appareil de face au centre, les six autres qui tournent sur un
   plateau vu de trois quarts, le doigt ou la souris qui fait tourner, une etagere
   qui porte le nom et le prix et qui est elle-meme un lien, sept pastilles.

   IL NE VIT PLUS SOUS 768 PX SEULEMENT. La geometrie tient dans quatre variables
   que la feuille change par palier et que le script relit : le rayon de l ellipse,
   la largeur d un appareil, la hauteur du plus lointain et la descente du plus
   proche. Une seule mecanique, trois tailles.

   Ces regles n agissent QUE si le script a pose la classe lvv-sb-tq sur le bloc.
   Sans JavaScript, ou sans PointerEvent, les deux rangees restent exactement ce
   qu elles sont : le balisage servi n est jamais retire, c est le repli. */
.lvv-sb-tq .lvv-sb-piste,
.lvv-sb-tq .lvv-sb-groupe{ display:none; }

.lvv-sb-scene{
  --rx:140px; --carte:112px; --haut:14px; --montee:40px; height:184px; max-width:1250px;
  position:relative; margin:0 auto; overflow:hidden;
  touch-action:pan-y; -webkit-user-select:none; user-select:none; cursor:grab; }
/* La scene se resserre en grandissant. A 1 250 px de large avec un appareil de
   230, l ellipse n occupait que 780 px et les cotes restaient vides : une rangee
   de sept objets dont cinq se voient ne remplit pas une pleine largeur. On rend
   donc les appareils plus grands ET la scene plus etroite. */
@media (min-width:768px){
  .lvv-sb-scene{ --rx:300px; --carte:200px; --haut:20px; --montee:70px;
    height:310px; max-width:880px; }
}
@media (min-width:1100px){
  .lvv-sb-scene{ --rx:400px; --carte:280px; --haut:24px; --montee:92px;
    height:420px; max-width:1040px; }
}
.lvv-sb-scene.lvv-sb-saisi{ cursor:grabbing; }

/* l ellipse orange : elle dit d ou vient la perspective et cale les sept appareils
   sur une meme courbe. Elle ne prend aucun clic. */
.lvv-sb-plateau{ position:absolute; left:50%; z-index:0; pointer-events:none;
  top:calc(var(--haut) + var(--carte) - 8px);
  height:calc(var(--montee) + 14px);
  width:calc(var(--rx) * 2.08); margin-left:calc(var(--rx) * -1.04);
  border:1px solid rgba(255,102,0,.30); border-radius:50%;
  background:radial-gradient(ellipse at 50% 40%,rgba(255,102,0,.12),rgba(255,102,0,0) 70%); }

/* transform-origin en bas : l echelle garde les pieds sur le plateau au lieu de
   faire grandir l appareil depuis son ventre. */
.lvv-sb-scene .lvv-sb-c{ position:absolute; left:50%; top:0;
  width:var(--carte); margin-left:calc(var(--carte) / -2);
  transform-origin:50% 100%; transition:none; will-change:transform,opacity; }
/* dans le tourniquet la carte ne porte plus que l appareil : le nom, l argument et
   le prix passent sur l etagere, une seule fois, en grand. */
.lvv-sb-scene .lvv-sb-n,
.lvv-sb-scene .lvv-sb-q,
.lvv-sb-scene .lvv-sb-p{ display:none; }
/* SUR LE PLATEAU LA CARTE DISPARAIT : il ne reste que l appareil, detoure, comme
   une mascotte de l accueil. Un cadre qui tourne se lit comme un panneau, pas
   comme un objet. */
.lvv-sb-scene .lvv-sb-c,
.lvv-sb-scene .lvv-sb-vue{ background:none; border:0; box-shadow:none; }
.lvv-sb-scene .lvv-sb-c::before,
.lvv-sb-scene .lvv-sb-c::after,
.lvv-sb-scene .lvv-sb-vue::before,
.lvv-sb-scene .lvv-sb-vue::after{ display:none; }
/* un appui tactile declenche l etat de survol : sans cette garde l appareil
   sursauterait au moment ou le doigt se pose pour tourner. */
.lvv-sb-scene .lvv-sb-c:hover{ border:0; box-shadow:none; }
.lvv-sb-ombre{ position:absolute; left:50%; bottom:-7px; z-index:-1; width:74%;
  height:calc(var(--carte) * .115); margin-left:-37%; border-radius:50%;
  background:radial-gradient(ellipse at center,rgba(0,0,0,.6),rgba(0,0,0,0) 72%);
  pointer-events:none; }

/* l etagere : ce que porte l appareil de devant, et c est un lien large */
.lvv-sb-etagere{ display:flex; align-items:baseline; justify-content:center;
  gap:12px; flex-wrap:wrap; min-height:44px; padding:12px 16px; text-decoration:none;
  max-width:560px; margin:0 auto; background:#141210; border-top:2px solid #FF6600;
  box-shadow:0 10px 22px rgba(0,0,0,.5); text-align:center; }
.lvv-sb-etagere:hover{ background:#1B1815; }
.lvv-sb-et-n{ font-family:Marcellus,Georgia,serif; font-size:16px; color:#EFDCA8; }
.lvv-sb-et-p{ font-size:15px; color:#FF8534; font-variant-numeric:tabular-nums; }
.lvv-sb-et-fl{ font-size:15px; color:#FF6600; }
/* la famille survit au tourniquet : les deux titres de rangee ont disparu, sans
   cette ligne on ne saurait plus si l appareil est de salon ou portable. */
.lvv-sb-arg{ text-align:center; font-size:12.5px; line-height:1.4; color:#A8B89B;
  padding:10px 16px 0; margin:0; }
.lvv-sb-arg b{ color:#A4958A; font-weight:400; letter-spacing:.12em;
  text-transform:uppercase; font-size:10.5px; }

.lvv-sb-points{ display:flex; justify-content:center; gap:8px; padding:14px 0 2px;
  margin:0; }
.lvv-sb-point{ width:6px; height:6px; padding:0; border:0; border-radius:50%;
  background:rgba(255,102,0,.3); cursor:pointer;
  transition:background .18s, transform .18s; }
.lvv-sb-point[aria-current="true"]{ background:#FF8534; transform:scale(1.5); }
.lvv-sb-point:focus-visible{ outline:2px solid #FF6600; outline-offset:3px; }
@media (max-width:767px){
  .lvv-sb-etagere{ max-width:none; padding:10px 14px; }
  .lvv-sb-et-n{ font-size:14px; } .lvv-sb-et-p{ font-size:13.5px; }
  .lvv-sb-arg{ font-size:11.5px; padding-top:9px; }
  .lvv-sb-point{ width:5px; height:5px; }
}
@media (prefers-reduced-motion:reduce){
  .lvv-sb-point{ transition:none; }
}

/* --- 12. LA LUNE ----------------------------------------------------------------
   Ecrit le 2026-09-16. C etait le geste 3 du dossier, et il n avait jamais ete
   ecrit : la banniere portait une pleine lune, les pages interieures rien.

   ELLE EST VRAIE. Le rendu ne montre pas une pleine lune de convention mais la
   PHASE REELLE de la nuit ou le visiteur est. Sur la saison, calculee au mois
   synodique moyen (29,530588853 j, nouvelle lune de reference 2000-01-06 18:14
   UTC — la vraie lune s en ecarte d au plus une demi-journee) :
     17/10  40 %   croissante, eclairee a DROITE
     25/10 100 %   pleine — l instant exact tombe le lundi 26 a 04h40 (Paris)
     31/10  68 %   gibbeuse DECROISSANTE, eclairee a GAUCHE
     02/11  47 %   dernier quartier
   Le soir d Halloween la lune n est PAS pleine : le dire au comptoir vaut mieux
   que d afficher une pleine lune que n importe qui peut dementir en levant la tete.

   ELLE A DEUX MAISONS, et jamais les deux a la fois.
     - Sur ordinateur, elle est FIXE dans le coin haut droit de la fenetre, dans
       le fond de toutes les pages sauf la fiche.
     - Sur telephone, ce coin ne sert a rien : mesure sur les pages servies, 25
       paliers de defilement par page, la lune n y est bien visible que 12 % du
       temps sur l accueil et 4 % sur un guide — une page de telephone n a pas de
       marge, le contenu occupe toute la largeur et il n y a plus de ciel a voir.
       Cinq placements essayes, AUCUN ne rattrape : l agrandir la rend MOINS
       visible, un grand disque etant coupe plus souvent. Le probleme n est pas
       l endroit. Donc sur telephone et sur l ACCUEIL SEULEMENT, elle passe dans
       la carte du soir — un bloc a nous, fond sombre, place garantie. Les autres
       pages du telephone gardent la lune fixe (le panier la montre 76 % du temps).

   ELLE EST AUSSI SUR LA FICHE depuis le 2026-09-16 : le theme la couvre, la lune
   la couvre. Le :not(#product) des regles ci-dessous a ete retire en meme temps
   que celui de la regle 1.

   OU ELLE VIT, ET POURQUOI LA : dans le fond, pas au-dessus. #wrapper recoit
   isolation:isolate (il cree un contexte d empilement) et sa ::before est en
   position:fixed; z-index:-1. Ordre de peinture garanti par la specification :
   le fond de #wrapper, PUIS la lune, PUIS tout le contenu. Aucune carte, aucun
   prix, aucun texte ne peut passer dessous.
   MESURE AVANT D ECRIRE (page servie, 2026-09-16) : les quatre ancetres de
   #wrapper (MAIN, BODY, HTML) sont static, sans transform ni filter ni contain —
   le position:fixed s accroche donc bien a la fenetre. Et les DIX elements du
   site a z-index >= 10 (banniere cookies 9999, en-tete collant 250, les huit
   mega-panneaux 9999, l autocompletion 100) sont TOUS HORS de #wrapper :
   l isolation n en enferme aucun. C est la mesure qui autorise cette regle.

   SA TEXTURE EST UN SVG EN LIGNE, pas un fichier : mers de la face visible
   deformees par une turbulence, crateres, grain, assombrissement du limbe.
   2,6 ko dans la feuille, aucune requete de plus, et il disparait avec le bloc.
   La deformation n est pas un effet : un flou seul produisait des ANNEAUX de
   quantification autour de chaque mer — a si faible contraste, 8 bits ne
   suffisent pas a un degrade lisse. La turbulence casse les anneaux et donne aux
   mers des cotes irregulieres, ce qu un flou ne fera jamais.

   SON ECLAT A UN PLAFOND, ET IL EST MESURE SUR LE PIXEL LE PLUS CLAIR, pas sur
   la couleur ecrite : la texture a ete rasterisee dans un navigateur et ses
   33 317 pixels tries. Le pic vaut L=0,0378, ce qui laisse la brume #9FB08C —
   l encre la plus faible du theme — a 5,16 de contraste, au-dessus de 4,5. La
   palette a ete assombrie d un facteur 0,74 pour y arriver. Une texture plus
   claire serait un texte illisible.

   LA GEOMETRIE EST CELLE DU CIEL. Le terminateur d une lune n est pas un arc de
   cercle, c est une ELLIPSE : la projection du grand cercle jour/nuit. Son
   demi-axe vaut r x |cos(angle de phase)| = r x |1 - 2k|, k etant la fraction
   eclairee. Deux cas, et le CSS porte les deux :
     - GIBBEUSE (k >= 0,5) : la partie eclairee est la moitie PLUS l ellipse. Un
       masque a deux couches suffit — leur composition par defaut est l union, et
       c est exactement ce qu il faut. Aucun mask-composite : ses valeurs ne
       rendent pas pareil d un navigateur a l autre.
     - CROISSANTE (k < 0,5) : la moitie MOINS l ellipse. Le masque ne garde que
       la moitie, et l ellipse est peinte PAR-DESSUS la texture, en couleur de
       fond de nuit. Le fond de la page etant un aplat, la retouche est invisible.
   Le script bascule d un cas a l autre en posant une classe, rien de plus.

   CE QUE LE SCRIPT DE TETE POSE (cf. en-tete de ce bloc) :
     --lune-b     demi-axe de l ellipse, en % de la boite
     --lune-sens  to right quand la lune croit, to left quand elle decroit
     la classe lvv-lune-croissante quand k < 0,5
   SANS LE SCRIPT, LA LUNE EST PLEINE : les valeurs par defaut ci-dessous donnent
   une pleine lune. Un script absent ou en erreur ne laisse jamais un croissant
   de travers, il laisse la lune de la banniere.

   POUR LA RETIRER : supprimer cette section, et les deux <i> — lvv-cs-lune et
   lvv-cs-brume — du bloc de la carte du soir. Rien d autre ne la connait. */

html.lvv-nuit{
  --lune-b:50%;                     /* defaut : pleine lune */
  --lune-sens:to right;
  --lune-d:clamp(66px, 8.5vw, 124px);
  --lune-haut:clamp(150px, 18vh, 208px);
  --lune-droite:clamp(14px, 4vw, 64px);
  /* LA BRUME. Elle vit sur une couche A PART, jamais dans la lune : le masque de
     phase s applique a l element ET a ses pseudo-elements, une brume peinte
     dedans serait donc coupee au terminateur — une nuee ne s arrete pas au bord
     de la partie eclairee. Trois couches : le halo, puis deux nuees allongees qui
     traversent le disque. */
  --lune-brume:
    radial-gradient(closest-side circle at 50% 50%,
      rgba(239,220,168,.085) 0%, rgba(239,220,168,.032) 38%,
      rgba(239,220,168,.010) 60%, rgba(239,220,168,0) 76%),
    radial-gradient(ellipse 46% 7% at 44% 46%,
      rgba(206,214,196,.075), rgba(206,214,196,0) 72%),
    radial-gradient(ellipse 34% 5% at 63% 57%,
      rgba(206,214,196,.055), rgba(206,214,196,0) 74%);
  --lune-masque:
    linear-gradient(var(--lune-sens), transparent 0 49.4%, #000 50.6% 100%),
    radial-gradient(ellipse var(--lune-b) 50% at 50% 50%, #000 0 98.5%, transparent 99.6%);
  --lune-voile:none;
  --lune-peau:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 200'><defs><radialGradient id='d' cx='43%25' cy='39%25' r='66%25'><stop offset='0' stop-color='%23293222'/><stop offset='.5' stop-color='%23262E1F'/><stop offset='.8' stop-color='%23222A1C'/><stop offset='1' stop-color='%231D2417'/></radialGradient><radialGradient id='ray' cx='50%25' cy='50%25' r='50%25'><stop offset='0' stop-color='%232F3823' stop-opacity='.55'/><stop offset='.45' stop-color='%232F3823' stop-opacity='.16'/><stop offset='1' stop-color='%232F3823' stop-opacity='0'/></radialGradient><filter id='n' x='0' y='0' width='100%25' height='100%25'><feTurbulence type='fractalNoise' baseFrequency='1.35' numOctaves='4' seed='4'/><feColorMatrix type='saturate' values='0'/></filter><filter id='b1' x='-35%25' y='-35%25' width='170%25' height='170%25'><feTurbulence type='fractalNoise' baseFrequency='.021' numOctaves='4' seed='11' result='t'/><feGaussianBlur in='SourceGraphic' stdDeviation='3.4' result='g'/><feDisplacementMap in='g' in2='t' scale='30' xChannelSelector='R' yChannelSelector='G'/><feGaussianBlur stdDeviation='1.6'/></filter><filter id='b2' x='-40%25' y='-40%25' width='180%25' height='180%25'><feGaussianBlur stdDeviation='2'/></filter><filter id='b3' x='-50%25' y='-50%25' width='200%25' height='200%25'><feGaussianBlur stdDeviation='.8'/></filter><clipPath id='c'><circle cx='100' cy='100' r='100'/></clipPath></defs><g clip-path='url(%23c)'><circle cx='100' cy='100' r='100' fill='url(%23d)'/><g filter='url(%23b1)' fill='%231D2417' opacity='.85'><ellipse cx='74' cy='54' rx='30' ry='23' transform='rotate(-16 74 54)'/><ellipse cx='110' cy='48' rx='18' ry='15'/><ellipse cx='133' cy='68' rx='16' ry='14' transform='rotate(26 133 68)'/><ellipse cx='156' cy='58' rx='10' ry='9'/><ellipse cx='141' cy='101' rx='12' ry='17' transform='rotate(-10 141 101)'/><ellipse cx='40' cy='92' rx='28' ry='40' transform='rotate(14 40 92)'/><ellipse cx='70' cy='128' rx='22' ry='16' transform='rotate(-12 70 128)'/><ellipse cx='52' cy='156' rx='16' ry='12'/><ellipse cx='104' cy='88' rx='9' ry='8'/></g><circle cx='97' cy='166' r='52' fill='url(%23ray)'/><circle cx='118' cy='96' r='30' fill='url(%23ray)'/><g filter='url(%23b2)' fill='%231F2719' opacity='.45'><circle cx='97' cy='166' r='11'/><circle cx='159' cy='129' r='7'/><circle cx='38' cy='40' r='8'/><circle cx='174' cy='90' r='6'/><circle cx='120' cy='146' r='6'/><circle cx='64' cy='76' r='5'/><circle cx='118' cy='96' r='7'/><circle cx='30' cy='140' r='6'/></g><g filter='url(%23b3)' fill='%232F3823' opacity='.5'><circle cx='97' cy='166' r='5'/><circle cx='160' cy='128' r='3.2'/><circle cx='39' cy='39' r='3.4'/><circle cx='121' cy='147' r='2.6'/><circle cx='65' cy='77' r='2.3'/><circle cx='150' cy='40' r='2.6'/><circle cx='176' cy='89' r='2.4'/><circle cx='88' cy='108' r='1.8'/><circle cx='28' cy='120' r='2'/><circle cx='112' cy='30' r='1.7'/><circle cx='118' cy='96' r='3.6'/><circle cx='31' cy='139' r='2.8'/><circle cx='143' cy='158' r='2.1'/><circle cx='56' cy='46' r='1.6'/><circle cx='166' cy='66' r='1.5'/><circle cx='82' cy='182' r='1.9'/></g><rect width='200' height='200' filter='url(%23n)' opacity='.34' style='mix-blend-mode:overlay'/><circle cx='100' cy='100' r='103' fill='none' stroke='%23131B13' stroke-width='12' opacity='.5' filter='url(%23b2)'/></g></svg>");
}
/* le seul reglage du cas croissant : le masque perd sa seconde couche, et
   l ellipse passe en voile, peinte en fond de nuit par-dessus la texture. */
html.lvv-nuit.lvv-lune-croissante{
  --lune-masque:linear-gradient(var(--lune-sens), transparent 0 49.4%, #000 50.6% 100%);
  --lune-voile:radial-gradient(ellipse var(--lune-b) 50% at 50% 50%,
                               var(--lvv-nuit) 0 98.5%, transparent 99.6%);
}

/* LE DESSIN, partage par les deux maisons de la lune. */
html.lvv-nuit body #wrapper::before,
html.lvv-nuit .lvv-cs-lune{
  content:""; display:block; pointer-events:none; border-radius:50%;
  background-image:var(--lune-voile), var(--lune-peau);
  background-size:cover, cover; background-repeat:no-repeat, no-repeat;
  -webkit-mask-image:var(--lune-masque); mask-image:var(--lune-masque);
  -webkit-mask-size:100% 100%; mask-size:100% 100%;
  -webkit-mask-repeat:no-repeat; mask-repeat:no-repeat;
  box-shadow:0 0 46px 14px rgba(239,220,168,.055),
             0 0 120px 40px rgba(239,220,168,.028);
}

/* PREMIERE MAISON : le coin de la fenetre, sur toutes les pages sauf la fiche. */
html.lvv-nuit body #wrapper{ isolation:isolate; }
html.lvv-nuit body #wrapper::before{
  position:fixed; z-index:-1;
  top:var(--lune-haut); right:var(--lune-droite);
  width:var(--lune-d); height:var(--lune-d);
}

/* LA BRUME DE LA PREMIERE MAISON. #wrapper::after etait libre : verifie sur les
   trois types de page le 2026-09-16, content rend none partout. Elle est centree
   sur la lune — d ou les deux variables de position — et fait 3,4 fois son
   diametre. Elle derive en quatre-vingt-dix secondes, de quelques pixels : c est
   ce qui separe une brume d un halo. */
html.lvv-nuit body #wrapper::after{
  content:""; position:fixed; z-index:-1; pointer-events:none;
  top:calc(var(--lune-haut) - var(--lune-d) * 1.2);
  right:calc(var(--lune-droite) - var(--lune-d) * 1.2);
  width:calc(var(--lune-d) * 3.4); height:calc(var(--lune-d) * 3.4);
  background-image:var(--lune-brume);
  background-repeat:no-repeat, no-repeat, no-repeat;
  animation:lvv-derive 90s ease-in-out infinite alternate;
}
@keyframes lvv-derive{
  from{ transform:translate3d(0,0,0); }
  to  { transform:translate3d(-9px,4px,0); }
}

/* SECONDE MAISON : le ciel de la carte du soir. Cachee par defaut. */
html.lvv-nuit .lvv-cs-lune{ display:none; }

@media (max-width:767px){
  /* sur l accueil, la lune descend dans le bloc : une seule lune a l ecran. */
  html.lvv-nuit body#index #wrapper::before{ display:none; }
  /* section.lvv-cs, PAS .lvv-cs : la grille interieure porte la meme classe, et
     un padding pose sans le tag lui ajoutait 112 px de vide au-dessus de la
     vitrine — vu a la capture, pas au raisonnement. */
  html.lvv-nuit body#index section.lvv-cs{ position:relative; padding-top:112px; }
  /* 92 px : taille arretee par Florent le 2026-09-16, apres l avoir vue sur un
     ecran de 390. Ce n est pas une valeur d essai — ne pas l ajuster. */
  html.lvv-nuit body#index .lvv-cs-lune{
    display:block; position:absolute; top:22px; right:20px; width:92px; height:92px;
    box-shadow:0 0 40px 12px rgba(239,220,168,.06),
               0 0 100px 34px rgba(239,220,168,.03); }
  /* LA BRUME DEBORDE EXPRES DU BLOC — et le bloc la retient. Mesure du
     2026-09-16 sur la vraie page d accueil : sans retenue, elle poussait la page
     a 481 px dans une fenetre de 390, a toutes les largeurs de telephone
     essayees (360, 390, 414) — la page entiere se mettait a glisser de cote.
     C etait la SEULE source du debord : un seul element, 91 px. On garde le
     debord, qui fait la nuee ; on le coupe au bord du bloc. overflow-x:clip et
     non hidden : clip ne fabrique pas de conteneur de defilement, donc rien ne
     se met a defiler a l interieur du bloc. Et la largeur est bornee en second
     rideau, pour les navigateurs qui ignorent encore clip. */
  html.lvv-nuit body#index .lvv-cs-brume{
    display:block; position:absolute; top:-56px; right:-90px;
    width:min(313px, 100%); height:313px; pointer-events:none;
    background-image:var(--lune-brume);
    background-repeat:no-repeat, no-repeat, no-repeat;
    animation:lvv-derive 90s ease-in-out infinite alternate; }
  /* les autres pages gardent la lune fixe, un peu plus petite. */
  html.lvv-nuit{ --lune-d:clamp(52px, 15vw, 74px); }
  html.lvv-nuit{ --lune-haut:clamp(112px, 15vh, 160px); --lune-droite:clamp(12px, 5vw, 26px); }
  html.lvv-nuit body #wrapper::before{
    box-shadow:0 0 30px 10px rgba(239,220,168,.05); }
}

/* Impression : le papier n a pas de ciel. */
@media (prefers-reduced-motion:reduce){
  html.lvv-nuit body #wrapper::after,
  html.lvv-nuit .lvv-cs-brume{ animation:none; }
}
@media print{
  html.lvv-nuit body #wrapper::before,
  html.lvv-nuit body #wrapper::after,
  html.lvv-nuit .lvv-cs-lune,
  html.lvv-nuit .lvv-cs-brume{ display:none; }
}

/* --- 14. LA PAGE << SELECTION DE LA NUIT >> ------------------------------------
   POURQUOI SON HABILLAGE EST ICI ET PLUS DANS LA PAGE. Mesure du 2026-09-16, sur
   trois guides deja en ligne : dans la zone de contenu d une page CMS servie, il
   y a ZERO balise de style et ZERO commentaire — PrestaShop les retire. Seuls les
   attributs style= en ligne survivent (77 sur un guide, 374 sur le lexique), et
   c est pour ca que les vingt-neuf guides de la maison sont ecrits comme ca.
   La page Selection, elle, ne peut pas l etre : son habillage porte trois
   pseudo-elements, quatre etats de survol et de focus, et DEUX requetes de
   media. Rien de tout cela ne s ecrit dans un attribut. Colle telle quelle, la
   page serait servie sans une seule de ses regles — un mur de texte.
   Ses regles vivent donc ici, et volontairement HORS de la classe de saison :
   la page doit rendre pareil que le theme de nuit soit allume ou non, comme son
   entete le demande depuis le debut.

   2026-09-17, MESURE SUR LA PAGE SERVIE : les selecteurs nus (.lvv-snuit h2)
   perdaient contre une regle de maison « body.page-cms #content h2 » qui porte
   un identifiant, deux classes et l importance — le titre sortait en encre de
   maison rgb(26,33,32) sur le fond de nuit, illisible. Chaque selecteur porte
   donc « body.page-cms #content » et chaque couleur son importance : a
   specificite egale, la section 14 est APRES la regle de maison dans lvv.css
   (position 539 703 contre 252 751), elle passe donc devant. Et ce prefixe ne
   cite PAS la classe de saison : la page garde sa promesse de rendre avec ou
   sans le theme.
   Le controle local ne pouvait pas le voir : il rendait la page sur un gabarit
   nu, sans le CSS de la maison. Une page ne se verifie que sur son vrai gabarit. Elles disparaissent avec la feuille, et la
   page est depubliee le meme jour.
   Au passage, ca ramene le contenu a coller de 24 225 a 18 186 signes — sous la
   limite de 21 844 que l editeur affiche, avec 3 658 de marge. */body.page-cms #content .lvv-snuit{background:linear-gradient(180deg,#101A12,#1B281C);color:#E4E9DC !important;
  font-family:'Source Sans 3',-apple-system,'Segoe UI',sans-serif;font-weight:300;
  padding:46px 22px 54px;line-height:1.6}
/* pas de marge negative pour aller pleine largeur : elle parie sur le rembourrage
   du gabarit, et fait deborder la page de 15 px des qu il differe. Mesure faite. */body.page-cms #content .lvv-snuit *{box-sizing:border-box}body.page-cms #content .lvv-snuit-in{max-width:1180px;margin:0 auto}body.page-cms #content .lvv-snuit-sur{font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:#B08D3F !important;
  font-weight:600;margin:0 0 12px}body.page-cms #content .lvv-snuit h2{font-family:Marcellus,Georgia,'Times New Roman',serif;font-weight:400;
  font-size:clamp(30px,5vw,50px);line-height:1.05;letter-spacing:.02em;color:#EFDCA8 !important;
  margin:0 0 16px;text-wrap:balance}body.page-cms #content .lvv-snuit h2 em{font-style:normal;color:#E58A3C !important}body.page-cms #content .lvv-snuit-chapo{max-width:62ch;font-size:17px;color:#C3D1B6 !important;margin:0 0 10px}body.page-cms #content .lvv-snuit-note{max-width:62ch;font-size:13.5px;color:#9FB08C !important;margin:0 0 30px}body.page-cms #content .lvv-snuit-filet{height:1px;background:linear-gradient(90deg,#B08D3F,rgba(176,141,63,0));
  margin:0 0 30px}
/* l en-tete : le texte a gauche, Miss Bud a droite. Elle passe SOUS le texte sur
   telephone, et sa boite garde sa place meme si l image manque. */body.page-cms #content .lvv-snuit-tete{display:flex;gap:28px;align-items:flex-end;justify-content:space-between}body.page-cms #content .lvv-snuit-mots{flex:1 1 auto;min-width:0}
@media (max-width:700px){body.page-cms #content .lvv-snuit-tete{flex-direction:column;align-items:flex-start;gap:6px}}
/* les quatre premieres images ne portent pas loading="lazy" : elles sont
   dans le premier ecran, et une image paresseuse qu on ne fait jamais defiler
   ne part jamais. */body.page-cms #content .lvv-snuit-grille{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));
  gap:16px}body.page-cms #content .lvv-snuit-c{display:flex;flex-direction:column;background:#0E1710;border:1px solid #24331F;
  border-radius:2px;overflow:hidden;text-decoration:none;color:inherit !important;
  transition:border-color .18s ease,transform .18s ease}
body.page-cms #content .lvv-snuit-c:hover,
body.page-cms #content .lvv-snuit-c:focus-visible{border-color:#B08D3F;transform:translateY(-2px)}body.page-cms #content .lvv-snuit-c:focus-visible{outline:2px solid #D2B269;outline-offset:2px}body.page-cms #content .lvv-snuit-vue{display:block;position:relative;background:#F7F2E4;overflow:hidden}body.page-cms #content .lvv-snuit-vue img{display:block;width:100%;height:auto;aspect-ratio:1;object-fit:cover}body.page-cms #content .lvv-snuit-vue::after{content:"";position:absolute;inset:auto 0 0 0;height:0;
  background:linear-gradient(180deg,rgba(16,26,18,0),rgba(16,26,18,.55));
  transition:height .22s ease}body.page-cms #content .lvv-snuit-c:hover .lvv-snuit-vue::after{height:46%}body.page-cms #content .lvv-snuit-fam{display:block;padding:12px 13px 0;font-size:9.5px;letter-spacing:.17em;
  text-transform:uppercase;color:#B08D3F !important}   /* et non #75591F : mesure 2,79 de contraste
     sur la carte, sous le seuil de 4,5. Le meme or un ton plus clair donne 5,85. */body.page-cms #content .lvv-snuit-n{display:block;padding:5px 13px 0;font-family:Marcellus,Georgia,serif;
  font-size:16px;line-height:1.25;color:#EFDCA8 !important}body.page-cms #content .lvv-snuit-q{display:block;padding:7px 13px 15px;font-size:13px;color:#9FB08C !important}body.page-cms #content .lvv-snuit-pied{margin-top:34px;padding-top:22px;border-top:1px solid #24331F;
  display:flex;flex-wrap:wrap;gap:12px 34px;align-items:baseline;font-size:14px;color:#C3D1B6 !important}body.page-cms #content .lvv-snuit-pied b{color:#EFDCA8 !important;font-weight:400;font-family:Marcellus,Georgia,serif;font-size:16px}body.page-cms #content .lvv-snuit-pied a{color:#D2B269 !important;text-decoration:none;border-bottom:1px solid rgba(210,178,105,.4)}body.page-cms #content .lvv-snuit-pied a:hover{color:#E58A3C !important;border-bottom-color:#E58A3C}
@media (max-width:480px){body.page-cms #content .lvv-snuit{padding:34px 16px 40px}body.page-cms #content .lvv-snuit-grille{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}}

/* --- 15. LE CARROUSEL SUR TELEPHONE ---------------------------------------------
   MESURE DU 2026-09-17, sur le site servi : sous 481 px le carrousel sert la
   banniere PORTRAIT 1536x2048 (rapport 0,75), et une regle de maison lui impose
     .homeslider-container picture img{ aspect-ratio:2,5/1 !important }
   sous 991 px. L image est donc rognee au centre : il ne reste que 30 % de sa
   hauteur. Sur la vitrine, ni l enseigne ni le trottoir — on ne voit pas que
   c est un magasin. Sur les prix de gros, la derniere ligne saute.
   On rend a la banniere son propre rapport, et SEULEMENT la ou le portrait est
   servi : au-dessus de 480 px c est la plate 2048x758 qui arrive, et 2,5:1 lui
   va. Un identifiant et deux classes pour passer devant la regle de maison, qui
   n en a qu une.
   Sous la classe de saison : la depose du 2 novembre rend le cadrage d avant. */
@media (max-width:480px){
  html.lvv-nuit body#index .homeslider-container picture img{
    aspect-ratio:3 / 4 !important; height:auto !important; object-fit:cover !important; }
}

/* ET ENTRE 481 ET 991 PX, LA TABLETTE. La meme regle de maison y impose 2,5:1
   alors que la plate servie est en 2,7:1 et que le bloc 23 fixe deja la hauteur
   a 37,01vw. Les deux se contredisent : a 600 px l image sortait large de 555
   dans une bande de 600 — quarante-cinq pixels de vide a droite. On rend le
   rapport a « auto » : la hauteur du bloc 23 gouverne seule, et la plate remplit. */
@media (min-width:481px) and (max-width:991px){
  html.lvv-nuit body#index .homeslider-container picture img{
    aspect-ratio:auto !important; }
}


/* --- 16. MISS BUD AILLEURS QUE SUR L ACCUEIL ------------------------------------
   MESURE DU 2026-09-17. Huit endroits ou Miss Bud parait hors de l accueil
   portaient encore le dessin de jour. Deux mecaniques differentes, donc deux
   traitements.

   POURQUOI UN NOM NEUF ET PAS UN REMPLACEMENT DE FICHIER : le serveur fabrique
   la nuit un jumeau .png.webp et le sert a tout navigateur qui accepte le webp ;
   il n est jamais refait quand le PNG change. Mesure directe : sur
   miss-bud-recherche-loupe.png, un Accept: image/webp rend image/webp. Remplacer
   le fichier en place aurait donc ete invisible pour les visiteurs. Les huit
   dessins de saison sont montes sous <sujet>-nuit.png.

   1. LES QUATRE BANDEAUX DE FIN DE DESCRIPTION sont des <img> ecrits dans la
      description de 48 rayons. On ne reecrit pas 48 descriptions pour sept
      semaines : content:url() remplace le rendu de l image sans toucher au HTML,
      et la depose de la classe rend le bandeau de jour. Les deux dessins font
      1000x260 : aucun deplacement de mise en page. Si un navigateur ignore la
      regle, il montre le bandeau de jour — l echec est silencieux et sans degat.

   2. LES QUATRE FONDS DE PSEUDO-ELEMENT viennent de la section
      << Miss Bud a ses places >> plus haut. On reprend son selecteur mot pour
      mot et on ajoute html.lvv-nuit : un type et une classe de plus, la regle
      passe devant. Pour la page des magasins l original porte !important sur le
      raccourci background — il faut donc le porter aussi.

   TROIS VISUELS DE SAISON N ONT PAS DE PLACE ET NE SONT PAS POSES :
   miss-bud-404-carte (la page introuvable porte l embleme depuis le 2026-09-10),
   miss-bud-reserve-aux-majeurs (la porte d age est en texte seul) et
   miss-bud-hub-entete (le hub porte le portrait). Les poser demanderait de creer
   un emplacement, pas d en mettre un a jour. */

html.lvv-nuit img[src*="miss-bud-fil-boutique-v2"]{content:url(/img/cms/miss-bud-fil-boutique-nuit.png)}
html.lvv-nuit img[src*="miss-bud-fil-chez-nous-v2"]{content:url(/img/cms/miss-bud-fil-chez-nous-nuit.png)}
html.lvv-nuit img[src*="miss-bud-fil-hub-v2"]{content:url(/img/cms/miss-bud-fil-hub-nuit.png)}
html.lvv-nuit img[src*="miss-bud-fil-produit-v2"]{content:url(/img/cms/miss-bud-fil-produit-nuit.png)}

html.lvv-nuit body#stores .page-header::after{
  background-image:url(/img/cms/miss-bud-nos-boutiques-nuit.png) !important; }
html.lvv-nuit body#search #js-product-list .page-not-found::before{
  background-image:url(/img/cms/miss-bud-recherche-loupe-nuit.png); }
html.lvv-nuit body#cart.cart-empty .cart-overview::before{
  background-image:url(/img/cms/miss-bud-panier-corbeille-nuit.png); }
html.lvv-nuit #content-hook_order_confirmation .card-block > .row > .col-md-12::before{
  background-image:url(/img/cms/miss-bud-commande-confirmee-nuit.png); }


/* --- 17. LA PAGE INTROUVABLE ET LA PORTE D AGE ----------------------------------
   DEMANDE DU 2026-09-19. Ces deux surfaces n avaient pas d emplacement pour
   Miss Bud : ici on en cree un, et SOUS LA CLASSE DE SAISON. Le 2 novembre la
   page introuvable retrouve son embleme et la porte d age redevient du texte
   seul, sans rien avoir a defaire.

   1. LA PAGE INTROUVABLE portait l embleme depuis le 2026-09-10 (118 px, ramene
      a 92 px sous 768). On garde SON pseudo-element et on ne change que l image
      et la boite : html.lvv-nuit ajoute un type et une classe, la regle passe
      devant celle de l embleme comme devant sa variante en media query. Le
      raccourci background de l original garde center/contain no-repeat.
      Mesure : 420 x 265 sur ordinateur, 241 x 152 a 390 px, zero debordement.

   2. LA PORTE D AGE. Le visuel se pose AVANT le titre. RIEN DU TEXTE N EST
      TOUCHE : ni le titre, ni la phrase, ni le bouton — on ajoute, on ne
      remplace pas. La bulle du dessin repete la mention, comme le panier vide
      et la recherche vide repetent la leur : c est la regle de la maison.

      LA CONTRAINTE EST VERTICALE, PAS HORIZONTALE : la porte est la premiere
      chose que voit un visiteur, et si le bouton tombe sous le bord, la
      boutique devient inatteignable. Mesures du 2026-09-19, porte ouverte :
        342 x 608 : sans garde-fou la fenetre montait a 646 et le titre passait
                    5 px au-dessus du bord. D ou la regle en max-height.
        342 x 608 avec garde-fou : image 100 x 66, fenetre 339 x 586 a y=11,
                    bouton a 551 — tout visible, aucun defilement.
        390 x 844 : image 222 x 148, fenetre 389 x 617 a y=114, bouton a 684.
       1280 x 900 : image 300 x 200, fenetre 735 x 553 a y=174, bouton a 680.
      Le voile porte overflow-y:auto : meme sur un ecran plus court que tout ce
      qui precede, la porte defile et le bouton reste atteignable. */

html.lvv-nuit body#pagenotfound #content.page-not-found::before{
  width:min(420px,86%); height:auto; aspect-ratio:1000 / 631;
  margin:6px auto 22px;
  background-image:url(/img/cms/miss-bud-404-carte-nuit.png); }

html.lvv-nuit .remodal.remodal-av::before{
  content:""; display:block;
  width:min(300px,78%); height:auto; aspect-ratio:1000 / 667;
  margin:0 auto 12px;
  background:url(/img/cms/miss-bud-reserve-aux-majeurs-nuit.png) center/contain no-repeat; }

/* Ecran court : on rend la place au titre et au bouton. */
@media (max-height:760px){
  html.lvv-nuit .remodal.remodal-av::before{ width:min(150px,42%); }
}

/* ET LA MASCOTTE DU COIN S EFFACE PENDANT QUE LA PORTE EST OUVERTE.
   Mesure avant/apres du 2026-09-19, a 390 x 844 : sans le visuel le bouton
   occupait 497..591 et la mascotte fixe 615..852 — ils ne se touchaient pas.
   Avec le visuel le bouton descend a 577..671 et passe SOUS le bras de la
   mascotte, dont le conteneur porte pointer-events:none mais dont les images
   portent auto : elementFromPoint au centre du bouton rendait
   lvv-mbud-img-bras. Le bouton de la porte d age devenait en partie
   incliquable, donc la boutique inatteignable. La porte pose
   remodal-is-locked sur <html> : on s en sert pour effacer la mascotte tant
   qu elle est ouverte, et elle revient des que la porte se ferme. */
html.lvv-nuit.remodal-is-locked .lvv-mbud{ display:none !important; }


/* --- 18. LE COIN DE MISS BUD : LE BANDEAU ET LE PORTRAIT ------------------------
   DEMANDE DU 2026-09-19.

   1. LE PORTRAIT DE LA PAGE. Le hub ecrit dans son contenu CMS son propre
      <img src=.../miss-bud-salut-portrait.png> : le bloc 2 de l accueil avait
      ete repointe le 17, mais pas celui-la. Releve du 2026-09-19 sur neuf
      pages : c est le SEUL endroit du site ou le dessin de jour est encore
      servi. Meme mecanique que les bandeaux de fin de description —
      content:url() remplace le rendu sans toucher au contenu de la page, et la
      depose de la classe le 2 novembre rend le portrait de jour.
      Le selecteur ne peut pas s auto-attraper : « miss-bud-salut-portrait.png »
      n est pas contenu dans « miss-bud-salut-portrait-nuit.png ».

   2. LE BANDEAU PREND LA PLACE DU PORTRAIT — choix de Florent du 2026-09-19,
      apres avoir vu le bandeau pose AU-DESSUS du contenu : la plaque gravee
      annonce deja « LE COIN DE MISS BUD » et la bulle le repetait juste en
      dessous, avec le portrait derriere — trois Miss Bud en 400 px de haut sur
      telephone. Le bandeau remplace donc l illustration au lieu de s y ajouter.
      Le titre n est plus dit qu une fois, par la plaque, qui garde son <h1>.

      L image du contenu porte width=200 height=200 et un height:auto en ligne :
      la largeur d attribut cede devant n importe quelle regle, et la hauteur en
      ligne vaut deja auto. On donne la largeur, le rapport 1600/500 et
      object-fit:contain pour qu un carre de 200 ne serve pas de moule a un
      dessin large.

      Ecarte le meme jour : poser le dessin a bulle vide
      (miss-bud-hub-entete-sans-texte) en fond de plaque avec le vrai h1 dedans.
      Le cadre grave resiste et son embleme se superposait au texte. */

html.lvv-nuit img[src*="miss-bud-salut-portrait-v2.png"]{
  content:url(/img/cms/miss-bud-salut-portrait-nuit.png); }

html.lvv-nuit body#cms .page-cms-8 img[src*="miss-bud-salut-portrait-v2.png"]{
  content:url(/img/cms/miss-bud-hub-entete-nuit.png);
  width:min(760px,100%); height:auto !important;
  aspect-ratio:1600 / 500; object-fit:contain; }

/* ==== FIN - LA VOIE VERTE : NUIT TOMBEE ======================================== */

/* DEBUT GABARIT FICHE - FLEURS FRANCAISES BIO (rayon 294) - pose le 2026-09-22 */
/* ======================================================================
   LE GABARIT DE FICHE - etape 1, ce que le CSS seul peut faire.
   A ajouter a lvv.css (module lvvstyles).

   BARRIERE : tout est sous `body.product-id-category-294` - " Fleurs
   Francaises Bio ", le sous-rayon cree le 22/09 pour les huit Tomine. La
   classe vient de la categorie PAR DEFAUT du produit, pas de ses
   associations : les huit sont aussi dans 238 et 243 sans que rien d ici
   n y fuie.

   Les 21 fleurs deja en ligne portent `product-id-category-243` : aucune
   regle de ce fichier ne peut les atteindre. C'est voulu - on travaille
   les huit a part, puis on etend a 243 quand le gabarit a fait ses
   preuves. Meme prudence que les classes `sb-`, servies par liste de
   rayons.

   CE QUE LE CSS NE PEUT PAS FAIRE ICI, et qui vit donc dans le script :
   construire le fil des chapitres (il faut lire les <h3>), et ecrire le
   plancher du bareme (il faut le calculer depuis la table des remises).
   ====================================================================== */

body.product-id-category-294{
  --f-titre:Marcellus,Georgia,'Times New Roman',serif;
  --f-texte:'Source Sans 3',-apple-system,'Segoe UI',Helvetica,Arial,sans-serif;
  --encre:#1A2120; --vert:#2E4A32; --or:#B08D3F; --or-texte:#75591F;
  --or-clair:#D2B269; --or-pale:#EFDCA8; --creme:#FCFBF7; --papier:#F7F2E4;
  --plaque:#F5F2EA; --bord:rgba(46,74,50,.16); --bord-or:rgba(176,141,63,.45);
  --doux:rgba(26,33,32,.72); --or-survol:#8C6E2E; --surtitre:#75591F;
}

/* --- la description : le sceau devant chaque section ------------------- */
body.product-id-category-294 .product-description h3{
  font-family:var(--f-titre);font-weight:400;font-size:23px;
  color:var(--encre);letter-spacing:.012em;
  margin:34px 0 12px;padding-left:36px;position:relative;
  scroll-margin-top:84px}
body.product-id-category-294 .product-description h3::before{
  content:"";position:absolute;left:0;top:.14em;width:26px;height:26px;
  background:url(/img/cms/embleme-or.png) center/contain no-repeat;
  opacity:.85}
body.product-id-category-294 .product-description p{
  max-width:70ch;line-height:1.62}

/* --- LE FIL DES CHAPITRES, pose par le script ------------------------- */
body.product-id-category-294 .lvv-fil{
  position:sticky;top:0;z-index:5;display:flex;align-items:baseline;
  gap:12px 16px;flex-wrap:wrap;margin:0 0 26px;padding:12px 0;
  background:var(--creme);border-top:1px solid var(--bord-or);
  border-bottom:1px solid var(--bord)}
body.product-id-category-294 .lvv-fil .t{
  flex:0 0 auto;font-size:10.5px;font-weight:600;letter-spacing:.24em;
  text-transform:uppercase;color:var(--or-texte)}
body.product-id-category-294 .lvv-fil ol{
  list-style:none;display:flex;flex-wrap:wrap;gap:4px 6px;margin:0;padding:0}
body.product-id-category-294 .lvv-fil a{
  display:inline-block;border:1px solid var(--bord);border-radius:999px;
  padding:5px 13px;font-size:13px;line-height:1.25;color:var(--doux);
  text-decoration:none;transition:color .18s ease,border-color .18s ease}
body.product-id-category-294 .lvv-fil a:hover{
  color:var(--encre);border-color:var(--or)}
body.product-id-category-294 .lvv-fil a[aria-current]{
  color:var(--or-texte);font-weight:600;border-color:var(--or);
  background:var(--plaque)}

/* --- LE PLANCHER DU BAREME, pose par le script ------------------------ */
body.product-id-category-294 .lvv-plancher{
  display:grid;grid-template-columns:auto minmax(0,1fr);gap:2px 16px;
  align-items:baseline;width:100%;text-align:left;margin-top:16px;
  padding:12px 16px;background:var(--encre);border:1px solid var(--or);
  border-radius:2px}
body.product-id-category-294 .lvv-plancher .l{
  grid-column:1/-1;font-size:9.5px;font-weight:700;letter-spacing:.16em;
  text-transform:uppercase;color:var(--or-clair);margin-bottom:4px}
body.product-id-category-294 .lvv-plancher .p{
  font-family:var(--f-titre);font-size:14px;color:var(--or-pale);
  white-space:nowrap}
body.product-id-category-294 .lvv-plancher .p b{
  font-size:25px;line-height:1;color:#FCFBF7}
body.product-id-category-294 .lvv-plancher .e{
  font-size:12px;line-height:1.4;color:rgba(252,251,247,.72)}
body.product-id-category-294 .lvv-plancher .e b{
  color:var(--or-clair);font-weight:600}
@media (max-width:420px){
  body.product-id-category-294 .lvv-plancher{grid-template-columns:minmax(0,1fr)}
}

/* ==========================================================================
   LA DESCRIPTION DES HUIT - classes " ffb- " posees par monter_descriptions.py
   --------------------------------------------------------------------------
   Le champ Description de PrestaShop retire les <style> en silence : toute la
   mise en forme doit donc vivre ici. Prefixe verifie le 22/09 contre les
   563 Ko de lvv.css - ni " ff- " ni " ffb- " n y existaient.

   Couleurs de la maison, et rien d autre :
     encre #1A2120 - vert #2E4A32 - or-texte #75591F - or-pale #EFDCA8
     creme #FCFBF7 - papier #F7F2E4 - plaque #F5F2EA - sauge #9FB08C
   Les paires texte/fond ci-dessous restent toutes au-dessus de 4,5:1.
   ========================================================================== */

body.product-id-category-294 .ffb{max-width:72ch}
body.product-id-category-294 .ffb-sec{margin:0 0 2.2rem}
body.product-id-category-294 .ffb p{line-height:1.62;color:#1A2120}

/* Les listes de definition : le libelle a gauche, le fait a droite. */
body.product-id-category-294 .ffb-def{
  display:grid;grid-template-columns:minmax(9rem,14rem) minmax(0,1fr);
  gap:.45rem 1.2rem;margin:.9rem 0}
body.product-id-category-294 .ffb-def dt{
  font-weight:600;color:#75591F;font-size:.93rem;line-height:1.5}
body.product-id-category-294 .ffb-def dd{
  margin:0;color:#1A2120;line-height:1.55}
@media (max-width:640px){
  body.product-id-category-294 .ffb-def{grid-template-columns:minmax(0,1fr);
    gap:.15rem}
  body.product-id-category-294 .ffb-def dd{margin:0 0 .7rem}
}

/* Les terpenes : arome, et ou on le retrouve. Jamais ce qu il fait. */
body.product-id-category-294 .ffb-terp{list-style:none;padding:0;margin:.9rem 0}
body.product-id-category-294 .ffb-terp li{
  padding:.55rem 0 .55rem .9rem;border-left:3px solid #EFDCA8;
  margin:0 0 .5rem;line-height:1.55}
body.product-id-category-294 .ffb-terp b{color:#2E4A32}

/* Ce que le producteur annonce, et ce que nous ne savons pas encore. */
body.product-id-category-294 .ffb-annonce,
body.product-id-category-294 .ffb-garde,
body.product-id-category-294 .ffb-pour{
  padding:.7rem .95rem;border-radius:3px;margin:.9rem 0;line-height:1.55}
body.product-id-category-294 .ffb-annonce{background:#F5F2EA}
body.product-id-category-294 .ffb-pour{background:#F7F2E4;border-left:3px solid #2E4A32}
body.product-id-category-294 .ffb-garde{background:#F7F2E4;border-left:3px solid #B08D3F}

/* L encart signe : il n existe que si quelqu un a vraiment dit quelque chose. */
body.product-id-category-294 .ffb-equipe{
  margin:.9rem 0;padding:1rem 1.2rem;background:#FCFBF7;
  border-left:4px solid #2E4A32}
body.product-id-category-294 .ffb-equipe p{margin:0 0 .5rem;font-style:italic}
body.product-id-category-294 .ffb-equipe footer{
  font-size:.88rem;color:#75591F;font-weight:600}

body.product-id-category-294 .ffb-titrant{
  font-weight:600;color:#2E4A32;margin:1.2rem 0 .3rem}

/* Les questions. Pas de <details> : PrestaShop les purge a l enregistrement
   (mesure du 22/09 : seules a, b, dd, div, dl, dt, h3, li, p, ul survivent).
   La question est donc un paragraphe en gras, la reponse le suivant. */
body.product-id-category-294 .ffb-q{
  margin:1rem 0 .2rem;line-height:1.5}
body.product-id-category-294 .ffb-q b{color:#2E4A32}
body.product-id-category-294 .ffb-r{
  margin:0 0 .2rem;padding:0 0 .8rem .9rem;
  border-left:2px solid #EFDCA8;line-height:1.6}

/* L encart signe, sans <blockquote> ni <footer> - purges eux aussi. */
body.product-id-category-294 .ffb-signe{
  margin:.5rem 0 0;font-size:.88rem;color:#75591F;font-weight:600}

body.product-id-category-294 .ffb-renvoi{font-size:.92rem}
body.product-id-category-294 .ffb-renvoi a{color:#75591F;text-decoration:underline}

body.product-id-category-294 .ffb-prevention{
  background:#F5F2EA;border-left:4px solid #B08D3F;padding:.8rem 1rem;
  font-size:.94rem;line-height:1.6}

/* LE GARDE-FOU : un trou non comble se voit de loin, et s imprime en rouge.
   Si cette regle sert un jour en production, c est qu une fiche est partie
   sans ses observations de comptoir. */
body.product-id-category-294 .ffb-trou{
  background:#FFF3F3;border:2px dashed #B3261E;color:#8C1D18;
  padding:.7rem .95rem;border-radius:3px;font-weight:600}

/* ==========================================================================
   MISS BUD NE MASQUE PLUS LA COLONNE DE DROITE
   --------------------------------------------------------------------------
   Mesure du 22/09 sur une fiche servie : " .lvv-mbud " est en position fixed,
   right:20px, 232 px de large, z-index 999999 - elle passe donc devant tout.
   La colonne des paliers s arrete a 149 px du bord ; Miss Bud commence a
   252 px du bord. Elle en recouvre donc 103 px, soit 22 % de sa largeur.

   Et ce n est pas une affaire de seuil : la chaine de conteneurs ne porte
   AUCUN max-width (mesuree jusqu a la section : w = largeur de fenetre). Les
   deux boites sont calees sur le bord droit, l ecart est constant - 103 px
   a toutes les largeurs, sur les 21 fiches existantes comme sur les huit
   neuves.

   On ne touche pas au module " lvvmissbud " (39 regles, un autre chantier) :
   on la fait simplement passer DERRIERE le contenu sur les fiches produit.
   Elle reste entierement visible dans la marge, sa croix de fermeture reste
   cliquable (verifie par elementFromPoint : BUTTON.lvv-mbud-chut), et plus
   aucun texte n est masque. Elle garde son rang partout ailleurs.

   Deux lignes a retirer si l effet ne plait pas. Et deux lignes a elargir
   a body#product le jour ou on voudra corriger tout le catalogue.
   ========================================================================== */

/* CORRECTION DU 22/09, APRES AVOIR REGARDE LA PAGE AU LIEU DE LA MESURER.
   " z-index:1 " ne l a pas fait passer derriere : un element " fixed " avec
   un z-index positif peint AU-DESSUS de tout contenu non positionne, quelle
   que soit la valeur. Capture d ecran a quatre hauteurs de defilement sur la
   fiche 2799 servie : Miss Bud recouvre le titre du chapitre, le texte, la
   carte 200 g et le plancher du bareme, a chaque hauteur.
   Sur le rayon 294 on la retire. Elle garde son rang partout ailleurs. */
body.product-id-category-294 .lvv-mbud{ display:none !important; }

/* Le z-index seul ne suffisait pas : la bulle d accroche (" Un avis sur
   ... ? ") est opaque et tombait pile sur la carte 200 g - le palier le
   plus interessant, prix et economie masques. Mesuree persistante, pas
   passagere : toujours la trente secondes apres le chargement.
   On la retire SUR LES SEULES FICHES TOMINE (rayon 294). Miss Bud y reste,
   sans sa phrase ; sur les 21 autres fleurs et partout ailleurs, rien ne
   bouge - le defaut y demeure, c est l existant, pas notre chantier du jour.
   COUT ASSUME : c est un appel a avis, et on le retire la ou il etait le
   plus pertinent. A rediscuter si le nombre d avis baisse. */
body.product-id-category-294 .lvv-mbud-accroche{ display:none !important; }

/* --- LA DESCRIPTION NE SE REPLIE PLUS SUR CES HUIT FICHES ---------------
   Mesure du 22/09 sur la premiere fiche complete : le theme pose
   " .product-description.lvv-repli { max-height:344px; overflow:hidden } "
   et un bouton " Lire la suite ". Le contenu fait 9 915 px : 96 % de la
   fiche etait cache.

   Le repli a du sens pour un texte long d un seul tenant. Il n en a plus
   quand la description porte quatorze sections ET un fil de chapitres :
   les jalons pointaient vers des ancres invisibles, et cliquer dessus ne
   depliait rien.

   Sur le rayon 294 seulement. Les 21 autres fleurs gardent leur repli. */
body.product-id-category-294 .product-description.lvv-repli{
  max-height:none !important;
  overflow:visible !important;
}
body.product-id-category-294 .lvv-repli-bouton{ display:none !important; }

/* --- REPRENDRE L ALIGNEMENT AU THEME -----------------------------------
   Mesure du 22/09 sur la premiere fiche complete : dans la description, le
   theme CENTRE tout et grossit le texte - un " dd " sortait centre et en
   32 px. Aucune regle ne le ciblait : c est de l heritage, et l heritage
   ne se corrige pas en ajoutant une classe (cf. la note de maison sur
   #custom-text, qui habille ses paragraphes et centre tout).

   Les listes libelle / valeur y perdaient tout leur sens. On reprend donc
   l alignement et la taille, explicitement, sur le rayon 294 seulement. */
body.product-id-category-294 .ffb,
body.product-id-category-294 .ffb h3,
body.product-id-category-294 .ffb p,
body.product-id-category-294 .ffb li,
body.product-id-category-294 .ffb dt,
body.product-id-category-294 .ffb dd{ text-align:left !important; }

body.product-id-category-294 .ffb-def dd{
  font-size:1rem !important;
  line-height:1.55 !important;
}
body.product-id-category-294 .ffb-def dt{ font-size:.93rem !important; }

/* --- LES VISUELS DE LA FICHE -------------------------------------------
   Les images survivent au champ Description (teste le 22/09 avant d en
   ecrire une seule). Elles vivent dans /img/cms/, envoyees et verifiees une
   par une : empreinte servie = empreinte locale sur les 42.

   Le theme centre et etire tout dans la description : chaque regle ci-dessous
   reprend explicitement ce qu il impose. */

/* Les saveurs avec leur picto : la signature visuelle de la fiche. */
body.product-id-category-294 .ffb-saveurs{
  list-style:none;padding:0;margin:1rem 0 1.2rem;
  display:flex;flex-wrap:wrap;gap:1.4rem}
body.product-id-category-294 .ffb-saveurs li{
  display:flex;flex-direction:column;align-items:center;gap:.35rem;
  width:5.4rem;text-align:center}
body.product-id-category-294 .ffb-picto{
  width:64px;height:64px;object-fit:contain;display:block}
body.product-id-category-294 .ffb-saveurs span{
  font-size:.82rem;line-height:1.25;color:#75591F;font-weight:600;
  text-align:center !important}

/* Les logos : poses en ligne, jamais etires. */
body.product-id-category-294 .ffb-logos{
  display:flex;align-items:center;gap:1.2rem;flex-wrap:wrap;margin:.6rem 0 1rem}
body.product-id-category-294 .ffb-logo{
  height:auto;object-fit:contain;display:block}

/* Les photos : une grille qui tient sur telephone, legende dessous. */
body.product-id-category-294 .ffb-photos{
  list-style:none;padding:0;margin:1rem 0;
  display:grid;grid-template-columns:repeat(auto-fit,minmax(13rem,1fr));
  gap:1rem}
body.product-id-category-294 .ffb-photos li{margin:0}
body.product-id-category-294 .ffb-photo{
  width:100%;height:auto;display:block;border-radius:3px}
body.product-id-category-294 .ffb-photos span{
  display:block;margin-top:.4rem;font-size:.82rem;line-height:1.4;
  color:#545755;text-align:left !important}

/* Les " li " heritaient de 32 px pour un interligne de 30 : le texte des
   terpenes se chevauchait. Mesure du 22/09, apres avoir releve TOUTES les
   tailles de la description - c etait la seule qui sortait du rang, tout le
   reste etant deja a 16 px. */
body.product-id-category-294 .ffb li{
  font-size:1rem !important;
  line-height:1.55 !important;
}

/* --- LES HUIT DE L ARRIVAGE -------------------------------------------
   Le chapitre " Comparer " de la simulation. En liste et non en tableau :
   <table> n a jamais ete teste contre le purificateur du champ Description,
   et les dix balises qu on sait gardees suffisent. */
body.product-id-category-294 .ffb-huit{
  list-style:none;padding:0;margin:1rem 0}
body.product-id-category-294 .ffb-huit li{
  display:grid;
  grid-template-columns:minmax(9rem,1.3fr) minmax(6rem,.8fr) minmax(0,2fr) auto;
  gap:.2rem .9rem;align-items:baseline;
  padding:.55rem 0 .55rem .8rem;
  border-left:3px solid transparent;
  border-bottom:1px solid #EFDCA8}
body.product-id-category-294 .ffb-huit b{color:#2E4A32}
body.product-id-category-294 .ffb-h-cond{font-size:.88rem;color:#75591F}
body.product-id-category-294 .ffb-h-gout{font-size:.88rem;color:#545755}
body.product-id-category-294 .ffb-h-prix{
  font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap}
body.product-id-category-294 .ffb-h-ici{
  border-left-color:#B08D3F;background:#F7F2E4}
body.product-id-category-294 .ffb-h-vous{
  display:inline-block;margin-left:.4rem;font-size:.72rem;font-weight:600;
  letter-spacing:.08em;text-transform:uppercase;color:#75591F}
@media (max-width:700px){
  body.product-id-category-294 .ffb-huit li{
    grid-template-columns:minmax(0,1fr) auto}
}

/* PAS DE REGLE DE NUIT DANS LA DESCRIPTION, ET C EST MESURE.
   Le bloc de description reste sur fond BLANC meme quand le site est en
   theme nuit (releve du 22/09 : background rgb(255,255,255) alors que
   html porte lvv-nuit). Les quatre regles nuit que j y avais posees
   supposaient un fond sombre : elles rendaient la ligne active du
   comparatif illisible a 1,54 et le profil a 2,32. Retirees.
   La roue, elle, vit HORS de ce bloc, sur le fond nuit : ses regles de
   nuit restent justes. Ne pas confondre les deux surfaces. */

/* --- LES BLOCS REPRIS A LA SIMULATION, SECONDE PASSE -------------------
   Inventaire fait le 22/09 en ouvrant la simulation chapitre par chapitre
   et en relevant ses titres et ses blocs, puis en les confrontant a la
   fiche. Huit manquaient. Ceux-ci les portent. */

/* La parole du producteur, citee et jamais reecrite. */
body.product-id-category-294 .ffb-cite{
  margin:.3rem 0 1rem;padding:.7rem 1rem;
  border-left:3px solid #9FB08C;background:#FCFBF7;
  font-style:italic;line-height:1.6}

/* Les quatre conduites, celle de la fleur mise en avant. */
body.product-id-category-294 .ffb-conduites{
  list-style:none;padding:0;margin:1rem 0}
body.product-id-category-294 .ffb-conduites li{
  display:grid;grid-template-columns:minmax(8rem,1fr) minmax(0,1.6fr) minmax(0,1.6fr);
  gap:.2rem .9rem;align-items:baseline;
  padding:.55rem 0 .55rem .8rem;
  border-left:3px solid transparent;border-bottom:1px solid #EFDCA8}
body.product-id-category-294 .ffb-conduites b{color:#2E4A32}
body.product-id-category-294 .ffb-c-quoi{font-size:.9rem;color:#545755}
body.product-id-category-294 .ffb-c-rend{font-size:.9rem;color:#75591F}
body.product-id-category-294 .ffb-c-ici{
  border-left-color:#B08D3F;background:#F7F2E4}
@media (max-width:700px){
  body.product-id-category-294 .ffb-conduites li{
    grid-template-columns:minmax(0,1fr)}
}

/* Les guides de la maison. */
body.product-id-category-294 .ffb-guides{
  list-style:none;padding:0;margin:.8rem 0;
  display:flex;flex-wrap:wrap;gap:.5rem}
body.product-id-category-294 ul.ffb-guides > li{margin:0}
body.product-id-category-294 ul.ffb-guides > li > a{
  display:inline-block;padding:.4rem .8rem;
  border:1px solid #EFDCA8;border-radius:999px;
  font-size:.9rem;color:#75591F;text-decoration:none}
body.product-id-category-294 ul.ffb-guides > li > a:hover{
  background:#F7F2E4;text-decoration:underline}

/* Ce qu une conduite donne, et ce qu elle coute. Les deux colonnes de la
   simulation : taire le cout serait vendre, pas informer. */
body.product-id-category-294 .ffb-pour-l,
body.product-id-category-294 .ffb-contre-l{
  list-style:none;padding:0;margin:.3rem 0 1rem}
body.product-id-category-294 .ffb-pour-l li,
body.product-id-category-294 .ffb-contre-l li{
  padding:.35rem 0 .35rem .9rem;border-left:3px solid #EFDCA8;
  margin:0 0 .35rem;line-height:1.55}
body.product-id-category-294 .ffb-pour-l li{border-left-color:#2E4A32}
body.product-id-category-294 .ffb-contre-l li{border-left-color:#B08D3F}

/* ==========================================================================
   LA ROUE DES SAVEURS - reprise TELLE QUELLE de la simulation.

   Les regles sont extraites du gabarit de la simulation et renommees
   ff- -> ffb-rs-, puis gatees sur le rayon 294. Les variables de la
   simulation (--e5, --encre, --or...) n existent pas sur le site : elles
   sont remplacees par leurs valeurs. Reimplementer la roue aurait produit
   une AUTRE roue ; la reprendre garantit le meme dessin.
   ========================================================================== */

body.product-id-category-294 .ffb-rs-roue .pt{cursor:pointer}
body.product-id-category-294 .ffb-rs-roue .pt circle{transition:r .18s ease}
body.product-id-category-294 .ffb-rs-roue .pt:hover circle{r:9}
body.product-id-category-294 .ffb-rs-roue-bloc{display:grid;grid-template-columns:minmax(0,340px) minmax(0,1fr);
  gap:36px;align-items:start;margin:6px 0 4px}
body.product-id-category-294 .ffb-rs-familles li{display:grid;grid-template-columns:16px auto minmax(0,1fr);
  gap:10px;align-items:baseline;padding:5px 0;font-size:13.5px}
body.product-id-category-294 .ffb-rs-familles .pastille{width:14px;height:14px;border-radius:3px;border:1px solid;
  align-self:center}
body.product-id-category-294 .ffb-rs-familles b{font-weight:600;white-space:nowrap}
body.product-id-category-294 .ffb-rs-familles i{font-style:normal;color:#545755;font-size:12.5px}
body.product-id-category-294 .ffb-rs-familles li[aria-current="true"] i::after{content:" - celle-ci";
  color:#75591F;font-weight:600}
body.product-id-category-294 .ffb-rs-roue-col{display:flex;flex-direction:column;gap:8px}
body.product-id-category-294 .ffb-rs-roue-planche{margin:0}
body.product-id-category-294 .ffb-rs-roue-planche img{width:100%;height:auto;border-radius:2px;
  border:1px solid rgba(46,74,50,.16)}
body.product-id-category-294 .ffb-rs-roue-planche figcaption{margin-top:7px;font-size:11.5px;color:#545755;
  font-style:italic;text-align:center}
body.product-id-category-294 .ffb-rs-roue-lit li{display:grid;grid-template-columns:132px minmax(0,1fr);gap:12px;
  padding:9px 0;border-top:1px solid rgba(46,74,50,.16);font-size:14.5px}
body.product-id-category-294 .ffb-rs-roue-lit{list-style:none;margin:0;padding:0}
body.product-id-category-294 .ffb-rs-roue-lit li:first-child{border-top:0}
body.product-id-category-294 .ffb-rs-roue-lit b{font-weight:600;color:#1A2120}
body.product-id-category-294 .ffb-rs-roue-lit .gros{font-family:Marcellus, Georgia, 'Times New Roman', serif;font-weight:400;font-size:19px;
  color:#1A2120;line-height:1.15}
body.product-id-category-294 .ffb-rs-roue-bloc{grid-template-columns:minmax(0,1fr);gap:18px}
body.product-id-category-294 .ffb-rs-roue-lit li{grid-template-columns:minmax(0,1fr);gap:2px}
body.product-id-category-294 .ffb-rs-vers:hover{color:#75591F}
body.product-id-category-294 .ffb-rs-roue-t-svg{max-width:560px;margin:0 auto}
body.product-id-category-294 .ffb-rs-roue-t-svg svg{width:100%;height:auto;color:#1A2120}
body.product-id-category-294 .ffb-rs-roue-chips button{background:var(--f,#F5F2EA);border:1px solid transparent;
  border-radius:999px;padding:5px 11px;font-size:12.5px;color:var(--t,#1A2120);
  font-weight:600}
body.product-id-category-294 .ffb-rs-roue-chips button[aria-pressed="true"]{border-color:var(--t,#1A2120);
  box-shadow:inset 0 0 0 1px var(--t,#1A2120)}
body.product-id-category-294 .ffb-rs-roue-chips{display:flex}
body.product-id-category-294 .ffb-rs-roue-t .mol text{display:none}
body.product-id-category-294 .ffb-rs-roue-t-svg{max-width:none}
body.product-id-category-294 .ffb-rs-roue-t .mol{cursor:pointer}
body.product-id-category-294 .ffb-rs-roue-t .mol path{transition:opacity .15s ease}
body.product-id-category-294 .ffb-rs-roue-t .mol:hover path{opacity:.72}
body.product-id-category-294 .ffb-rs-roue-t .mol:focus-visible path{outline:2px solid #B08D3F;
  outline-offset:1px}
body.product-id-category-294 .ffb-rs-roue-t-lit{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:12px 30px;align-items:start;margin-top:16px;
  padding-top:12px;border-top:1px solid rgba(46,74,50,.16)}
body.product-id-category-294 .ffb-rs-roue-t-lit > .surtitre:first-child,
body.product-id-category-294 .ffb-rs-roue-t-lit > h4,
body.product-id-category-294 .ffb-rs-roue-t-lit > .ff-arome{grid-column:1}
body.product-id-category-294 .ffb-rs-roue-t-lit h4{font-size:21px;margin:2px 0 4px}
body.product-id-category-294 .ffb-rs-roue-t-lit{grid-template-columns:minmax(0,1fr)}
body.product-id-category-294 .ffb-rs-roue-t-lit .ff-arome{margin:0 0 12px;font-size:15px;line-height:1.55;
  max-width:52ch}
body.product-id-category-294 .ffb-rs-roue-t-lit .surtitre{margin-top:12px}
body.product-id-category-294 .ffb-rs-roue-t-lit .surtitre:first-child{margin-top:0}
body.product-id-category-294 .ffb-rs-roue-t-lit .ff-sources{margin:8px 0 0}
body.product-id-category-294 .ffb-rs-roue-t-lit .ff-id{margin-top:16px;padding-top:12px;
  border-top:1px solid rgba(46,74,50,.16);grid-template-columns:auto minmax(0,1fr);
  font-size:13px;gap:8px 14px}
body.product-id-category-294 .ffb-rs-roue-t-lit .ff-id dd{line-height:1.5}
body.product-id-category-294 .ffb-rs-roue-t{grid-template-columns:minmax(0,1fr)}
body.product-id-category-294 .ffb-rs-roue-t{page-break-inside:avoid;margin:4mm 0}
body.product-id-category-294 .ffb-rs-roue-t-svg{max-width:118mm;margin:0 auto}
body.product-id-category-294 .ffb-rs-roue-t-lit{grid-template-columns:repeat(2,minmax(0,1fr));gap:3mm 6mm;
    page-break-inside:avoid}

/* La roue des saveurs est dessinee en unites utilisateur (viewBox 0 0 300 330)
   et ses font-size valent 10,5 : etiree sur toute la largeur du bloc, son
   texte devient enorme. La simulation la contraint a 340 px ; on fait pareil,
   et on ne compte pas sur la grille du parent, qui n existe pas ici. */
body.product-id-category-294 .ffb-rs-roue{max-width:340px;margin:0 auto}
body.product-id-category-294 .ffb-rs-roue svg{width:100%;height:auto;display:block}
body.product-id-category-294 .ffb-rs-roue-bloc{
  display:grid;grid-template-columns:minmax(0,340px) minmax(0,1fr);
  gap:1.6rem;align-items:start;margin:1.2rem 0}
@media (max-width:820px){
  body.product-id-category-294 .ffb-rs-roue-bloc{grid-template-columns:minmax(0,1fr)}
}


/* ==========================================================================
   LES CHAPITRES - la barre collante, et le sous-fil de chaque chapitre
   --------------------------------------------------------------------------
   La simulation ne pose pas vingt-quatre sections a plat : elle les range en
   huit chapitres, avec une barre de navigation collante en tete de page et,
   dans chaque chapitre, un sous-fil numerote. Le champ Description purge
   <h2> : le titre de chapitre est un <p> porte par sa classe.

   Le libelle court de la barre voyage dans le HTML (p.ffb-chap-nav) et n est
   jamais affiche : c est le script qui le lit pour construire la barre.
   ========================================================================== */

body.product-id-category-294 .ffb-chap-nav{ display:none !important; }

/* --- la barre des chapitres, collante ---------------------------------- */
body.product-id-category-294 .lvv-chapbar{
  position:sticky;top:0;z-index:6;margin:0 0 8px;padding:10px 0;
  background:var(--creme);border-bottom:1px solid var(--bord-or);
  overflow-x:auto;-webkit-overflow-scrolling:touch}
body.product-id-category-294 .lvv-chapbar ol{
  list-style:none;display:flex;gap:0 26px;margin:0;padding:0;
  white-space:nowrap;min-width:max-content}
body.product-id-category-294 .lvv-chapbar a{
  display:inline-block;padding:4px 0 8px;font-family:var(--f-titre);
  font-size:15px;line-height:1.2;color:var(--doux);text-decoration:none;
  border-bottom:2px solid transparent;
  transition:color .18s ease,border-color .18s ease}
body.product-id-category-294 .lvv-chapbar a:hover{ color:var(--encre) }
body.product-id-category-294 .lvv-chapbar a[aria-current]{
  color:var(--or-texte);border-bottom-color:var(--or)}
/* Au doigt, la barre de chapitres faisait 32 px de haut : on vise un pouce,
   pas une souris. Sous 768 px, chaque onglet monte a 44 px de zone touchable
   sans changer sa taille de texte. Mesure du 23/09 : 52x32, 56x32, 67x32. */
@media (max-width:767px){
  body.product-id-category-294 .lvv-chapbar a{
    padding:12px 0 14px;min-height:44px;box-sizing:border-box}
  body.product-id-category-294 .lvv-chapbar ol{gap:0 20px}
}

/* --- le chapitre, et son titre ----------------------------------------- */
body.product-id-category-294 .ffb-chap{
  margin:0 0 3.4rem;padding:2.4rem 0 0;border-top:1px solid var(--bord)}
body.product-id-category-294 .ffb-chap:first-of-type{
  border-top:0;padding-top:.6rem}
body.product-id-category-294 h2.ffb-chap-titre,
body.product-id-category-294 .ffb-chap-titre{
  font-family:var(--f-titre) !important;font-weight:400 !important;
  font-size:31px !important;line-height:1.16 !important;
  color:var(--encre) !important;letter-spacing:.008em;
  margin:0 0 1.6rem !important;padding-left:40px;position:relative;
  max-width:none !important;scroll-margin-top:88px}
body.product-id-category-294 .ffb-chap-titre::before{
  content:"";position:absolute;left:0;top:.1em;width:30px;height:30px;
  background:url(/img/cms/embleme-or.png) center/contain no-repeat;opacity:.9}

/* Le sceau est au chapitre : les sections reprennent un filet discret, pour
   que la hierarchie se lise. Sans cela, vingt-quatre sceaux identiques
   effacent les huit chapitres qu on vient de poser. */
body.product-id-category-294 .ffb-chap h3::before{
  width:0;height:0;background:none;
  content:"";border-left:2px solid var(--or);left:2px;top:.22em;
  bottom:.18em;position:absolute}
body.product-id-category-294 .ffb-chap h3{
  padding-left:18px !important;font-size:21px !important}

/* --- le sous-fil du chapitre ------------------------------------------- */
body.product-id-category-294 .lvv-souffil{
  display:flex;align-items:baseline;gap:10px 18px;flex-wrap:wrap;
  margin:0 0 1.8rem;padding:0 0 1rem;
  border-bottom:1px dotted var(--bord-or)}
body.product-id-category-294 .lvv-souffil .t{
  flex:0 0 auto;font-size:10px;font-weight:600;letter-spacing:.24em;
  text-transform:uppercase;color:var(--or-texte)}
body.product-id-category-294 .lvv-souffil ol{
  list-style:none;display:flex;flex-wrap:wrap;gap:6px 8px;margin:0;padding:0}
body.product-id-category-294 .lvv-souffil a{
  display:inline-flex;align-items:center;gap:7px;
  border:1px solid var(--bord);border-radius:999px;padding:4px 12px 4px 5px;
  font-size:12.5px;line-height:1.25;color:var(--doux);text-decoration:none;
  transition:color .18s ease,border-color .18s ease}
body.product-id-category-294 .lvv-souffil a i{
  display:inline-flex;align-items:center;justify-content:center;
  width:18px;height:18px;border-radius:50%;background:var(--plaque);
  color:var(--or-texte);font-style:normal;font-size:10.5px;font-weight:700}
body.product-id-category-294 .lvv-souffil a:hover{
  color:var(--encre);border-color:var(--or)}
body.product-id-category-294 .lvv-souffil a[aria-current]{
  color:var(--or-texte);font-weight:600;border-color:var(--or)}
body.product-id-category-294 .lvv-souffil a[aria-current] i{
  background:var(--or);color:#FCFBF7}

/* --- la roue des terpenes, deplacee dans le chapitre de l analyse ------
   Le bloc HTML Box s accroche dans la colonne d achat et enterrait le prix
   sous un millier de pixels de roue. Le script la deplace ; elle reprend ici
   la largeur du texte. */
body.product-id-category-294 .ffb-chap .lvv-roue-fiche{
  margin:2rem 0 .5rem;max-width:none}


/* ==========================================================================
   LE CHAPITRE SUR DEUX COLONNES - le texte, et son appui
   --------------------------------------------------------------------------
   Mesure du 23/09 sur la simulation, chapitre par chapitre : CHAQUE chapitre
   y est une grille de 788 px de texte et 360 px d appui. La premiere lecture
   n en avait vu qu un seul - le simulateur ne garde qu un chapitre a la fois
   dans le document, et les sept autres n existaient pas encore. Il a fallu
   cliquer les huit onglets pour le voir.

   L appui ne dit rien de neuf : une scene de Miss Bud, un rappel de ce que le
   chapitre porte deja. C est un appui, pas une source.

   La fiche produit n a pas 1148 px de large partout : la grille passe donc en
   une seule colonne sous 1100 px, et l appui vient apres le texte.
   ========================================================================== */

body.product-id-category-294 .ffb{ max-width:none }
body.product-id-category-294 .ffb-chap-corps{
  display:grid;grid-template-columns:minmax(0,1fr) 320px;
  gap:0 40px;align-items:start}
body.product-id-category-294 .ffb-chap-mots{ min-width:0;max-width:72ch }

@media (max-width:1100px){
  body.product-id-category-294 .ffb-chap-corps{
    grid-template-columns:minmax(0,1fr);gap:1.8rem 0}
}

/* --- l appui ----------------------------------------------------------- */
body.product-id-category-294 .ffb-appui{
  position:sticky;top:78px;
  padding:0 0 1.2rem;border-left:1px solid var(--bord-or);
  padding-left:22px}
@media (max-width:1100px){
  body.product-id-category-294 .ffb-appui{
    position:static;border-left:0;padding-left:0;
    border-top:1px solid var(--bord-or);padding-top:1.4rem;max-width:34rem}
}
body.product-id-category-294 .ffb-appui-scene{
  display:block;width:100%;height:auto;margin:0 0 1rem;border-radius:2px}
body.product-id-category-294 .ffb-appui-sur{
  margin:0 0 .3rem !important;font-size:10px;font-weight:600;
  letter-spacing:.24em;text-transform:uppercase;color:var(--or-texte)}
body.product-id-category-294 .ffb-appui-titre{
  font-family:var(--f-titre) !important;font-size:19px !important;
  line-height:1.2 !important;color:var(--encre) !important;
  margin:0 0 .7rem !important;max-width:none !important}
body.product-id-category-294 .ffb-appui-note{
  font-size:.86rem !important;line-height:1.5 !important;
  color:#3B4440 !important;margin:.6rem 0 0 !important;max-width:none !important}

/* La liste libelle / valeur de l appui tient dans 320 px : elle passe en
   deux lignes plutot qu en deux colonnes. */
body.product-id-category-294 .ffb-appui-def{
  display:block !important;margin:.2rem 0 0 !important}
body.product-id-category-294 .ffb-appui-def dt{
  font-size:.78rem !important;letter-spacing:.04em;margin:.7rem 0 .1rem}
body.product-id-category-294 .ffb-appui-def dd{
  font-size:.86rem !important;line-height:1.45 !important;margin:0}

body.product-id-category-294 .ffb-appui-src{
  display:flex;flex-wrap:wrap;gap:.6rem .9rem;list-style:none;
  margin:.8rem 0 0;padding:0}
body.product-id-category-294 .ffb-appui-src li{
  display:flex;flex-direction:column;align-items:center;width:58px;
  font-size:.7rem !important;line-height:1.25 !important;text-align:center}
body.product-id-category-294 .ffb-appui-src span{ margin-top:.2rem }

body.product-id-category-294 .ffb-appui-liste{
  list-style:none;margin:.2rem 0 0;padding:0}
body.product-id-category-294 .ffb-appui-liste li{
  padding:.42rem 0;border-bottom:1px dotted var(--bord);
  font-size:.86rem !important;line-height:1.35 !important}
body.product-id-category-294 .ffb-appui-liste li span{
  display:block;font-size:.74rem;color:var(--doux)}
body.product-id-category-294 .ffb-appui-liste li.ffb-appui-ici{
  font-weight:700;color:var(--or-texte)}
body.product-id-category-294 .ffb-appui-liste li.ffb-appui-ici span{
  color:var(--or-texte)}

/* --- AUCUNE IMAGE NE DEPASSE SA COLONNE --------------------------------
   Mesure du 23/09 au telephone (375 px) sur la fiche servie : l image du
   cahier de culture fait 488 px de large en nature, et RIEN ne la
   contraignait - le theme ne pose " max-width:100% " que sur ses propres
   classes Bootstrap. La page entiere defilait donc lateralement.

   La regle vaut pour toutes les images de la description : celles qui
   portent un width= (les pictos de saveur, 48 et 64 px) sont deja sous la
   limite, elles ne bougent pas. */
body.product-id-category-294 .ffb img{
  max-width:100% !important;height:auto}

/* ==========================================================================
   LES BLOCS DE LA SIMULATION - feuille portee, regle par regle
   --------------------------------------------------------------------------
   Releve du 23/09 : les regles ci-dessous sont celles de la simulation,
   extraites de ses 80 Ko de feuille, renommees " ff- " en " ffb- " et
   prefixees par le rayon. On ne les a pas reecrites de memoire : c est la
   seule facon d avoir le meme dessin, et non un dessin qui lui ressemble.

   Trois adaptations, et rien d autre :
     - " .ffb-cle i " devient " span " : le champ Description ne garde pas <i>
     - " html.nuit " devient " html.lvv-nuit " : le nom de la maison
     - l etat courant d une barre passait par aria-current ; on ne sait pas si
       l attribut survit au purificateur, on sait que les classes survivent.

   L echelle d espacement et deux couleurs de la simulation manquaient a
   lvv.css : elles sont posees ICI, sur le rayon seul, jamais en global.
   ========================================================================== */

body.product-id-category-294{
  --e1:4px; --e2:8px; --e3:12px; --e4:16px; --e5:24px; --e6:32px; --e7:40px;
  --titre:#1A2120; --carte:#FFFFFF; --texte:#1A2120;
  --f-texte:'Source Sans 3',-apple-system,'Segoe UI',Helvetica,Arial,sans-serif;
}

@media (max-width:760px){
}
body.product-id-category-294 .ffb-abrege{padding:10px 0;border-top:1px solid var(--bord)}
body.product-id-category-294 .ffb-abrege b{display:block;font-family:var(--f-titre);font-weight:400;font-size:15px;
  color:var(--titre);margin-bottom:4px}
body.product-id-category-294 .ffb-abrege ul{margin:0;padding-left:16px;font-size:12.5px;line-height:1.45;
  color:var(--doux)}
body.product-id-category-294 .ffb-abrege li{margin-bottom:3px}
body.product-id-category-294 .ffb-appui .ffb-faits li{grid-template-columns:minmax(0,1fr);gap:2px;font-size:13.5px}
body.product-id-category-294 .ffb-faits{list-style:none;margin:6px 0 0;padding:0}
body.product-id-category-294 .ffb-faits li{display:grid;grid-template-columns:150px minmax(0,1fr);gap:16px;
  padding:9px 0;border-top:1px solid var(--bord);font-size:14.5px}
body.product-id-category-294 .ffb-faits li:first-child{border-top:0}
body.product-id-category-294 .ffb-faits b{font-weight:600;color:var(--titre)}
@media (max-width:640px){
  body.product-id-category-294 .ffb-faits li{grid-template-columns:minmax(0,1fr);gap:2px}
}
body.product-id-category-294 .ffb-bars{margin-top:12px}
body.product-id-category-294 .ffb-bar{display:grid;grid-template-columns:118px minmax(0,1fr) 50px;gap:9px;
  align-items:center;padding:4px 0;font-size:13px;background:none;border:0;width:100%;
  text-align:left}
body.product-id-category-294 .ffb-bar:hover span.n{color:var(--or-texte)}
body.product-id-category-294 .ffb-bar span.n{color:var(--doux);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
body.product-id-category-294 .ffb-bar .piste{height:8px;background:var(--plaque);border-radius:999px;overflow:hidden}
/* display:block indispensable : .jauge est un <span>, et un span sans display
   est INLINE. Une boite inline vide ignore width et height : la jauge
   mesurait 0 x 0 et ne peignait rien, quelle que soit sa largeur calculee.
   .piste, elle, est un element de grille et se blockifie toute seule ; c est
   pourquoi la piste se voyait et la jauge jamais. Mesure du 23/09 sur la
   fiche servie : display inline, rect 0 x 0 ; force a block, 111 x 8. */
body.product-id-category-294 .ffb-bar .jauge{display:block;height:100%;background:var(--or);border-radius:999px;width:0;
  transition:width .7s cubic-bezier(.22,.8,.3,1)}
body.product-id-category-294 .ffb-bar-ici .jauge{background:var(--vert)}
/* Il y avait ici une regle html.lvv-nuit qui repeignait cette jauge en
   var(--sauge). Deux fautes en une : --sauge n a jamais ete portee dans ce
   rayon (donc la declaration etait invalide et la jauge devenait
   TRANSPARENTE), et html.lvv-nuit est pose en permanence sur ce site : ce
   n est pas un mode sombre optionnel. La barre de la fleur courante, celle
   de sa propre fiche, ne se voyait donc sur aucune des huit. */
body.product-id-category-294 .ffb-bar-ici span.n{color:var(--titre);font-weight:600}
body.product-id-category-294 .ffb-bar .v{text-align:right;color:var(--titre);font-family:var(--f-titre);font-size:14px}
body.product-id-category-294 .ffb-cles{display:grid;grid-template-columns:repeat(2,1fr);gap:0;margin:2px 0 22px}
body.product-id-category-294 .ffb-cle{padding:12px 16px 12px 0;border-top:1px solid var(--bord)}
body.product-id-category-294 .ffb-cle:nth-child(2n){border-left:1px solid var(--bord);padding-left:20px}
body.product-id-category-294 .ffb-cle b{display:block;font-family:var(--f-titre);font-weight:400;font-size:24px;
  color:var(--titre);line-height:1.1}
body.product-id-category-294 .ffb-cle span{font-style:normal;font-size:11px;letter-spacing:.1em;text-transform:uppercase;
  color:var(--doux)}
body.product-id-category-294 .ffb-frise{list-style:none;margin:10px 0 0;padding:0 0 0 22px;
  border-left:1px solid var(--bord-or)}
/* LES SEPT CLES QUI NOMMENT A LA FOIS UNE SECTION ET UN BLOC DESSINE
   (cles, taux, cahier, frise, guides, encore, prevention) : une regle qui
   vise le bloc PAR DESCENDANCE atteint aussi tout ce que la SECTION contient.
   Vu le 23/09 en regardant la page : les pastilles de " Ils en ont parle "
   portaient les pastilles d or de la frise, posees par-dessus le texte : les
   deux listes vivent dans la meme section " ffb-frise ". Le garde structurel
   pose plus haut remettait la section a plat, il ne pouvait rien contre un
   ::before sur un descendant. Ces regles-la passent donc par le combinateur
   d enfant, avec le nom de la balise : ul.ffb-frise > li. */
body.product-id-category-294 ul.ffb-frise > li{position:relative;padding:0 0 20px 8px}
body.product-id-category-294 ul.ffb-frise > li::before{content:"";position:absolute;left:-27px;top:7px;width:9px;height:9px;
  border-radius:50%;background:var(--or)}
body.product-id-category-294 ul.ffb-frise > li > b{display:block;font-family:var(--f-titre);font-weight:400;font-size:17px;
  color:var(--titre)}
body.product-id-category-294 ul.ffb-frise > li > p{margin:3px 0 0;font-size:14.5px;color:var(--doux);max-width:62ch}
body.product-id-category-294 .ffb-tab-boite{overflow-x:auto;margin:14px 0 8px}
body.product-id-category-294 .ffb-tab-boite .ffb-tab{margin:0;min-width:720px}
@media (max-width:640px){
  body.product-id-category-294 .ffb-tab-boite{overflow-x:visible}
  body.product-id-category-294 .ffb-tab-boite .ffb-tab{min-width:0}
}
body.product-id-category-294 .ffb-tab{width:100%;border-collapse:collapse;font-size:14.5px;margin:14px 0 8px}
body.product-id-category-294 .ffb-tab th{font-family:var(--f-texte);font-size:10.5px;font-weight:600;letter-spacing:.14em;
  text-transform:uppercase;color:var(--papier);background:var(--vert);padding:10px 12px;
  text-align:left;white-space:nowrap}
body.product-id-category-294 .ffb-tab td{padding:10px 12px;border-top:1px solid var(--bord);vertical-align:top}
body.product-id-category-294 .ffb-tab tr[aria-current="true"] td{background:var(--plaque);font-weight:600}
body.product-id-category-294 .ffb-cmp td b{font-weight:600}
body.product-id-category-294 .ffb-cmp th{cursor:pointer}
body.product-id-category-294 .ffb-cmp th span{opacity:.6;margin-left:5px}
body.product-id-category-294 .ffb-cmp tbody tr:hover td{background:var(--plaque)}
body.product-id-category-294 .ffb-cmp .nom{display:flex;align-items:center;gap:11px}
/* La colonne " Registre " : le picto de la famille, puis son nom. Ces deux
   regles vivaient hors du bloc extrait de la simulation : la colonne sortait
   sans picto, et le tableau sans une seule image (releve du 23/09). */
body.product-id-category-294 .ffb-cmp .reg{display:inline-flex;align-items:center;gap:7px}
body.product-id-category-294 .ffb-cmp .reg img{width:24px;height:24px;opacity:.78;flex:0 0 auto}
body.product-id-category-294 .ffb-cmp .nom .vg{max-width:42px}
body.product-id-category-294 .ffb-cmp .nom .vg{width:42px;height:42px;flex:0 0 auto;object-fit:cover;border-radius:2px;
  background:var(--papier);display:flex;align-items:center;justify-content:center;
  font-size:8px;line-height:1.1;text-align:center;color:var(--doux);
  border:1px dashed var(--bord-or)}
body.product-id-category-294 .ffb-cmp .nom img.vg{border-style:solid;border-color:var(--bord)}
body.product-id-category-294 .ffb-cmp .nom b{font-family:var(--f-titre);font-weight:400;font-size:15px;color:var(--titre)}
body.product-id-category-294 .ffb-ecart{font-size:12.5px;color:var(--doux)}
body.product-id-category-294 .ffb-graine .ffb-faits li{border-top-color:rgba(46,74,50,.14)}
body.product-id-category-294 .ffb-presse{display:flex;flex-wrap:wrap;gap:8px;margin:6px 0 0;padding:0;list-style:none}
body.product-id-category-294 .ffb-presse li{border:1px solid var(--bord);border-radius:999px;padding:6px 14px;
  font-size:13px;color:var(--doux)}
body.product-id-category-294 .ffb-terpz-avant .ffb-faits{columns:2;column-gap:var(--e7)}
body.product-id-category-294 .ffb-terpz-avant .ffb-faits li{break-inside:avoid;grid-template-columns:118px minmax(0,1fr)}
@media (max-width:860px){
  body.product-id-category-294 .ffb-terpz-avant .ffb-faits{columns:1}
}
body.product-id-category-294 .ffb-var .vg:not(img),
/* " Menees de la meme facon " : les soeurs de conduite, dans l appui du
   chapitre culture. Portees de .ff-suite ; <i> etant purge par le champ
   Description, la ligne de chiffres porte une classe. */
body.product-id-category-294 .ffb-suite{list-style:none;margin:14px 0 0;padding:0}
body.product-id-category-294 .ffb-suite li{border-top:1px solid var(--bord)}
body.product-id-category-294 .ffb-suite li > a{
  display:flex;width:100%;gap:12px;align-items:center;
  padding:10px 4px;text-decoration:none;color:inherit}
body.product-id-category-294 .ffb-suite li > a:hover b{color:var(--or-texte)}
body.product-id-category-294 .ffb-suite .vg{
  width:44px;height:44px;flex:0 0 auto;object-fit:cover;border-radius:2px;
  background:var(--plaque)}
body.product-id-category-294 .ffb-suite b{
  display:block;font-family:var(--f-titre);font-weight:400;font-size:15px;
  color:var(--titre);line-height:1.2}
body.product-id-category-294 .ffb-suite-l{
  font-size:12.5px;color:var(--doux)}

body.product-id-category-294 .ffb-suite .vg:not(img),
body.product-id-category-294 .ffb-cmp .nom .vg:not(img){background:var(--plaque) url(/img/cms/embleme-or.png) center/34% no-repeat;
  background-blend-mode:luminosity}
@media (max-width:640px){
  body.product-id-category-294 .ffb-cles{grid-template-columns:repeat(2,1fr)}
  body.product-id-category-294 .ffb-cmp thead{display:none}
  body.product-id-category-294 .ffb-cmp tbody tr{display:grid;grid-template-columns:1fr auto;gap:2px 10px;padding:12px 0;
    border-top:1px solid var(--bord)}
  body.product-id-category-294 .ffb-cmp td{border:0;padding:2px 0}
  body.product-id-category-294 .ffb-cmp td:first-child{grid-column:1/-1}
  body.product-id-category-294 .ffb-cmp td::before{content:attr(data-l) " : ";font-size:12px;color:var(--doux)}
  body.product-id-category-294 .ffb-cmp td:first-child::before,
body.product-id-category-294 .ffb-cmp td:last-child::before{content:""}
}
@media print{
  body.product-id-category-294 .ffb-ruban,
body.product-id-category-294 .ffb-outils,
body.product-id-category-294 .ffb-pastille,
body.product-id-category-294 .ffb-etagere,
body.product-id-category-294 .ffb-sommaire,
body.product-id-category-294 .ffb-pied,
body.product-id-category-294 .ffb-tour,
body.product-id-category-294 .ffb-mot,
body.product-id-category-294 .ffb-ajouter,
body.product-id-category-294 .ffb-qte-note,
body.product-id-category-294 .ffb-fleche,
body.product-id-category-294 .ffb-pastilles,
body.product-id-category-294 .ffb-compte,
body.product-id-category-294 .ffb-loupe,
body.product-id-category-294 .ffb-vignettes,
body.product-id-category-294 .ffb-maillage,
body.product-id-category-294 .ffb-renvois,
body.product-id-category-294 .ffb-socle .b,
  body.product-id-category-294 .ffb-tab th{background:#eee !important;color:#000 !important;
    border-bottom:1px solid #999}
  body.product-id-category-294 .ffb-graine,
body.product-id-category-294 .ffb-terpz,
body.product-id-category-294 .ffb-planche,
body.product-id-category-294 .ffb-cite,
body.product-id-category-294 .ffb-saison,
body.product-id-category-294 .ffb-photo,
body.product-id-category-294 .ffb-cahier figure,
body.product-id-category-294 .ffb-faits li,
body.product-id-category-294 .ffb-echelle li,
body.product-id-category-294 .ffb-roue-bloc,
body.product-id-category-294 .ffb-precautions{page-break-inside:avoid}
}

/* Les jauges de l appui : une classe par pas de 5 pour cent. */
body.product-id-category-294 .ffb-j0{width:0%}
body.product-id-category-294 .ffb-j5{width:5%}
body.product-id-category-294 .ffb-j10{width:10%}
body.product-id-category-294 .ffb-j15{width:15%}
body.product-id-category-294 .ffb-j20{width:20%}
body.product-id-category-294 .ffb-j25{width:25%}
body.product-id-category-294 .ffb-j30{width:30%}
body.product-id-category-294 .ffb-j35{width:35%}
body.product-id-category-294 .ffb-j40{width:40%}
body.product-id-category-294 .ffb-j45{width:45%}
body.product-id-category-294 .ffb-j50{width:50%}
body.product-id-category-294 .ffb-j55{width:55%}
body.product-id-category-294 .ffb-j60{width:60%}
body.product-id-category-294 .ffb-j65{width:65%}
body.product-id-category-294 .ffb-j70{width:70%}
body.product-id-category-294 .ffb-j75{width:75%}
body.product-id-category-294 .ffb-j80{width:80%}
body.product-id-category-294 .ffb-j85{width:85%}
body.product-id-category-294 .ffb-j90{width:90%}
body.product-id-category-294 .ffb-j95{width:95%}
body.product-id-category-294 .ffb-j100{width:100%}

/* LES JAUGES NE MONTRAIENT RIEN : les huit barres des totaux sortaient
   toutes de la meme longueur, et ce qu on voyait etait la PISTE, pas la
   jauge. La regle de base " .ffb-bar .jauge{width:0} " compte trois
   classes, les aides de largeur " .ffb-jNN " n en comptent que deux : la
   base gagnait, la jauge restait a zero, et la barre ne disait plus rien
   du taux. Vu le 23/09 en REGARDANT le graphique : aucune sonde ne
   compare huit longueurs entre elles.
   Les memes largeurs, reecrites au niveau de la jauge. */
body.product-id-category-294 .ffb-bar .jauge.ffb-j0{width:0%}
body.product-id-category-294 .ffb-bar .jauge.ffb-j5{width:5%}
body.product-id-category-294 .ffb-bar .jauge.ffb-j10{width:10%}
body.product-id-category-294 .ffb-bar .jauge.ffb-j15{width:15%}
body.product-id-category-294 .ffb-bar .jauge.ffb-j20{width:20%}
body.product-id-category-294 .ffb-bar .jauge.ffb-j25{width:25%}
body.product-id-category-294 .ffb-bar .jauge.ffb-j30{width:30%}
body.product-id-category-294 .ffb-bar .jauge.ffb-j35{width:35%}
body.product-id-category-294 .ffb-bar .jauge.ffb-j40{width:40%}
body.product-id-category-294 .ffb-bar .jauge.ffb-j45{width:45%}
body.product-id-category-294 .ffb-bar .jauge.ffb-j50{width:50%}
body.product-id-category-294 .ffb-bar .jauge.ffb-j55{width:55%}
body.product-id-category-294 .ffb-bar .jauge.ffb-j60{width:60%}
body.product-id-category-294 .ffb-bar .jauge.ffb-j65{width:65%}
body.product-id-category-294 .ffb-bar .jauge.ffb-j70{width:70%}
body.product-id-category-294 .ffb-bar .jauge.ffb-j75{width:75%}
body.product-id-category-294 .ffb-bar .jauge.ffb-j80{width:80%}
body.product-id-category-294 .ffb-bar .jauge.ffb-j85{width:85%}
body.product-id-category-294 .ffb-bar .jauge.ffb-j90{width:90%}
body.product-id-category-294 .ffb-bar .jauge.ffb-j95{width:95%}
body.product-id-category-294 .ffb-bar .jauge.ffb-j100{width:100%}

/* La signature de Miss Bud et " Une autre question ? " : le meme balisage
   que la simulation, portrait compris. Le champ Description garde div, img,
   h3 et p ; seule la colonne de boutons de la simulation manque, faute de
   <button>, d ou deux colonnes au lieu de trois. */
body.product-id-category-294 .ffb-mb-sig{
  display:flex;align-items:center;gap:18px;
  margin-top:26px;padding-top:20px;border-top:1px solid var(--bord-or)}
body.product-id-category-294 .ffb-mb-sig img{width:86px;flex:0 0 auto}
body.product-id-category-294 .ffb-mb-sig p{
  margin:0;font-size:14px !important;color:var(--doux) !important;max-width:62ch}
body.product-id-category-294 .ffb-encore{
  display:grid;grid-template-columns:78px minmax(0,1fr);
  gap:var(--e5);align-items:center;
  margin:var(--e6) 0 0 !important;padding:var(--e5) 0 0;
  border-top:1px solid var(--bord-or)}
body.product-id-category-294 .ffb-encore img{width:78px}
body.product-id-category-294 .ffb-encore-t{min-width:0}
body.product-id-category-294 .ffb-encore-t h3{
  margin:0 0 4px !important;padding:0 !important;background:none !important;
  font-size:19px !important}
body.product-id-category-294 .ffb-encore-t p{
  margin:0 !important;font-size:14px !important;line-height:1.5 !important;
  color:var(--doux) !important;max-width:58ch}
body.product-id-category-294 .ffb-cmp-ici td{
  background:var(--plaque);font-weight:600}
body.product-id-category-294 .ffb-cmp td span{
  font-size:.78em;color:var(--doux)}
body.product-id-category-294 .ffb-presse li{
  font-size:.92rem !important;line-height:1.5 !important;margin:.35rem 0}

/* ==========================================================================
   L ETAGERE - le bandeau des huit, en tete de fiche
   --------------------------------------------------------------------------
   La simulation pose ce bandeau au-dessus du produit et change de fleur sans
   quitter la page. Ici chaque vignette est un LIEN : huit pages distinctes,
   c est la difference entre une maquette a un seul document et un catalogue.

   Sept fleurs sur huit ont leur couverture ; Lementos n en a pas, et sa
   vignette porte le sceau - c est ce que fait la simulation pour une fleur
   sans photo, pas un trou.
   ========================================================================== */

body.product-id-category-294 .ffb-etagere{
  margin:0 0 2.2rem;padding:0 0 1.1rem;
  border-bottom:1px solid var(--bord)}
body.product-id-category-294 .ffb-etagere-t{
  display:flex;align-items:center;gap:10px;
  margin:0 0 .7rem !important;
  font-size:10.5px !important;font-weight:600;letter-spacing:.24em;
  text-transform:uppercase;color:var(--or-texte) !important;
  max-width:none !important}
body.product-id-category-294 .ffb-etagere-t::before{
  content:"";width:20px;height:20px;flex:0 0 auto;
  background:url(/img/cms/embleme-or.png) center/contain no-repeat;opacity:.8}
body.product-id-category-294 .ffb-piste{
  display:flex;gap:10px;overflow-x:auto;padding:0 0 6px;margin:0;
  list-style:none;scrollbar-width:thin}
/* La simulation ne fait pas des cartes de l etagere : des PASTILLES
   (.ff-var) : une vignette ronde de 38 px, le nom, puis " conduite . prix "
   sur une seule ligne. En cartes, la bande faisait 278 px de haut contre 107,
   et chaque vignette 132 px contre 38 (mesure du 23/09). */
body.product-id-category-294 .ffb-carte{
  flex:0 0 auto;margin:0;padding:0;list-style:none;
  border:1px solid var(--bord);border-left:3px solid var(--bord);
  border-radius:999px}
body.product-id-category-294 .ffb-carte:hover{
  border-color:var(--or);background:var(--plaque)}
body.product-id-category-294 .ffb-carte > a,
body.product-id-category-294 .ffb-carte-ici{
  display:flex;align-items:center;gap:9px;
  padding:5px 15px 5px 5px;text-decoration:none;color:inherit}
body.product-id-category-294 .ffb-carte .vg{
  width:38px;height:38px;flex:0 0 auto;object-fit:cover;border-radius:50%;
  background:var(--plaque);transition:opacity .18s ease}
body.product-id-category-294 .ffb-carte img.vg{border:1px solid var(--bord)}
/* Le fondu " luminosity " de la simulation eteignait le sceau sur la plaque
   claire : vignette vide a l ecran. On garde le sceau en clair. */
body.product-id-category-294 .ffb-carte .vg-sans{
  display:block;
  background:var(--plaque) url(/img/cms/embleme-or.png) center/20px no-repeat}
body.product-id-category-294 .ffb-carte a:hover .vg{opacity:.88}
body.product-id-category-294 .ffb-carte .in{display:block;padding:0}
body.product-id-category-294 .ffb-carte b{
  display:block;font-family:var(--f-titre);font-weight:400;
  font-size:13px;line-height:1.15;margin:0;color:var(--titre);
  white-space:nowrap}
body.product-id-category-294 .ffb-carte .cd,
body.product-id-category-294 .ffb-carte .pr{
  display:inline;font-size:11px;line-height:1.3;color:var(--doux);
  white-space:nowrap}
/* Une seule ligne " conduite . prix ", comme la simulation. */
body.product-id-category-294 .ffb-carte .cd::after{content:" \00b7 "}
body.product-id-category-294 .ffb-carte .pr{color:var(--or-texte)}
body.product-id-category-294 .ffb-carte .pr::after{content:"/g"}
body.product-id-category-294 .ffb-carte a:hover b{color:var(--or-texte)}
body.product-id-category-294 .ffb-carte .fam{
  width:25px;height:25px;flex:0 0 auto;opacity:.7;margin-left:3px}
body.product-id-category-294 .ffb-carte-ici{
  border-color:var(--or);background:var(--plaque);
  box-shadow:inset 0 0 0 1px var(--or)}
body.product-id-category-294 .ffb-carte-ici .fam{opacity:1}
body.product-id-category-294 .ffb-carte-ici b{
  color:var(--or-texte);font-weight:600}
@media (max-width:640px){
  body.product-id-category-294 .ffb-carte{flex:0 0 108px}
}

/* --- LA BARRE D ACHAT COLLANTE, posee par le script --------------------- */
body.product-id-category-294 .lvv-achat{
  position:fixed;left:0;right:0;bottom:0;z-index:40;
  display:flex;align-items:center;gap:16px;
  padding:10px 20px;background:var(--encre);
  border-top:1px solid var(--or);
  transform:translateY(105%);transition:transform .22s ease}
body.product-id-category-294 .lvv-achat-on{transform:translateY(0)}
body.product-id-category-294 .lvv-achat .t{
  font-family:var(--f-titre);font-size:15px;color:var(--or-pale);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1 1 auto}
body.product-id-category-294 .lvv-achat .p{
  font-family:var(--f-titre);font-size:22px;color:#FCFBF7;
  white-space:nowrap;flex:0 0 auto}
body.product-id-category-294 .lvv-achat .p span{
  display:block;font-size:11px;letter-spacing:.06em;color:var(--or-clair)}
body.product-id-category-294 .lvv-achat button{
  flex:0 0 auto;border:1px solid var(--or);background:var(--or);
  color:#1A2120;font-size:12px;font-weight:700;letter-spacing:.12em;
  text-transform:uppercase;padding:11px 20px;border-radius:2px;
  cursor:pointer}
body.product-id-category-294 .lvv-achat button:hover{
  background:var(--or-clair);border-color:var(--or-clair)}
@media (max-width:640px){
  body.product-id-category-294 .lvv-achat{gap:10px;padding:8px 12px}
  body.product-id-category-294 .lvv-achat .t{display:none}
}
body.product-id-category-294 .ffb-tete .ffb-prod{display:flex;align-items:center;gap:var(--e3);flex-wrap:wrap;
  margin:9px 0 0;font-size:14px}
body.product-id-category-294 .ffb-tete .ffb-prod b{background:none;border:0;padding:0;font:inherit;
  font-family:var(--f-titre);font-size:18px;color:var(--titre);
  border-bottom:1px solid var(--or);line-height:1.2;transition:color .18s ease}
body.product-id-category-294 .ffb-tete .ffb-prod b:hover{color:var(--or-texte)}
body.product-id-category-294 .ffb-tete .ffb-prod .lieu{color:var(--doux);font-size:13.5px}
body.product-id-category-294 .ffb-tete .ffb-prod .avec{color:var(--or);font-size:15px;margin:0 -4px}
body.product-id-category-294 .ffb-tete .ffb-prod .cond{background:none;border:0;padding:0 0 0 16px;font:inherit;
  font-size:13px;color:var(--doux);position:relative;transition:color .18s ease}
body.product-id-category-294 .ffb-tete .ffb-prod .cond::before{content:"";position:absolute;left:0;top:.42em;
  width:9px;height:9px;border-radius:50%;background:var(--cond,var(--bord))}
body.product-id-category-294 .ffb-tete .ffb-prod .cond:hover{color:var(--or-texte)}
body.product-id-category-294 .ffb-taux{display:flex;align-items:flex-end;gap:26px}
body.product-id-category-294 .ffb-terp{display:block;background:none;border:0;padding:0;text-align:right;
  transition:color .18s ease}
body.product-id-category-294 .ffb-terp.petit{padding-right:26px;border-right:1px solid var(--bord);
  order:-1;text-align:right}
body.product-id-category-294 .ffb-terp.petit .v{font-size:27px;color:var(--titre)}
body.product-id-category-294 .ffb-terp.petit .l{margin-top:5px;font-size:9.5px;letter-spacing:.18em}
body.product-id-category-294 .ffb-terp.petit .d{margin-top:4px;font-size:12px}
body.product-id-category-294 .ffb-terp.petit:hover .v{color:var(--or-texte)}
body.product-id-category-294 .ffb-tx .v{display:block;font-family:var(--f-titre);font-weight:400;font-size:44px;
  line-height:1;color:var(--or-texte);letter-spacing:.01em}
body.product-id-category-294 .ffb-tx .l{display:block;margin-top:6px;font-size:10.5px;font-weight:600;
  letter-spacing:.2em;text-transform:uppercase;color:var(--surtitre)}
body.product-id-category-294 .ffb-tx .d{display:block;margin-top:5px;font-size:13px;color:var(--doux)}
body.product-id-category-294 .ffb-terp:hover .v{color:var(--or-survol)}
@media (max-width:760px){
  body.product-id-category-294 .ffb-tx{text-align:left}
  body.product-id-category-294 .ffb-tx .v{font-size:36px}
}
body.product-id-category-294 .ffb-serie{font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--doux);
  margin:0}
body.product-id-category-294 .ffb-cite{margin:22px 0;padding:0 0 0 20px;border-left:1px solid var(--or);
  font-size:15px;line-height:1.6;color:var(--doux);max-width:64ch}
body.product-id-category-294 .ffb-cite .ffb-cite-sur{margin-bottom:6px}
body.product-id-category-294 .ffb-temp{margin-top:6px}
body.product-id-category-294 .ffb-temp input[type=range]{width:100%;accent-color:#B08D3F;margin:10px 0 4px}
body.product-id-category-294 .ffb-temp .deg{font-family:var(--f-titre);font-size:30px;color:var(--titre)}
body.product-id-category-294 .ffb-temp .etat{font-size:13.5px;line-height:1.5;color:var(--doux);min-height:4.2em}
body.product-id-category-294 .ffb-temp .bornes{display:flex;justify-content:space-between;font-size:11px;color:var(--doux)}
body.product-id-category-294 .ffb-vapo{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));
  gap:var(--e4) var(--e7);margin:0 0 var(--e4)}
body.product-id-category-294 .ffb-mol{list-style:none;margin:var(--e3) 0 0;padding:0}
body.product-id-category-294 .ffb-mol li{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;
  padding:6px 0;border-top:1px solid var(--bord);font-size:14px}
body.product-id-category-294 .ffb-mol li:first-child{border-top:0}
body.product-id-category-294 .ffb-mol b{font-weight:600;color:var(--titre)}
body.product-id-category-294 .ffb-mol .deg{font-style:normal;font-size:12.5px;color:var(--doux);
  font-variant-numeric:tabular-nums}
body.product-id-category-294 .ffb-mol .u{text-decoration:none;margin-left:auto;font-size:10px;font-weight:700;
  letter-spacing:.1em;text-transform:uppercase;color:var(--or-texte);
  border:1px solid var(--bord-or);border-radius:999px;padding:2px 9px}
body.product-id-category-294 .ffb-mol li.sienne b{color:var(--or-texte)}
@media (max-width:640px){
  body.product-id-category-294 .ffb-vapo{grid-template-columns:minmax(0,1fr)}
}
body.product-id-category-294 .ffb-frise{list-style:none;margin:10px 0 0;padding:0 0 0 22px;
  border-left:1px solid var(--bord-or)}
body.product-id-category-294 ul.ffb-frise > li{position:relative;padding:0 0 20px 8px}
body.product-id-category-294 ul.ffb-frise > li::before{content:"";position:absolute;left:-27px;top:7px;width:9px;height:9px;
  border-radius:50%;background:var(--or)}
body.product-id-category-294 ul.ffb-frise > li > b{display:block;font-family:var(--f-titre);font-weight:400;font-size:17px;
  color:var(--titre)}
body.product-id-category-294 ul.ffb-frise > li > p{margin:3px 0 0;font-size:14.5px;color:var(--doux);max-width:62ch}
body.product-id-category-294 .ffb-photos{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));
  gap:var(--e4);margin-top:var(--e4)}
body.product-id-category-294 .ffb-photo{background:none;border:0}
body.product-id-category-294 .ffb-photo img{width:100%;aspect-ratio:4/3;object-fit:cover;background:var(--plaque);
  border-radius:2px}
body.product-id-category-294 .ffb-photo span{padding:9px 0 0;font-size:12.5px;line-height:1.45;
  color:var(--doux)}
body.product-id-category-294 .ffb-echelle{list-style:none;margin:6px 0 0;padding:0}
body.product-id-category-294 .ffb-echelle li{display:grid;grid-template-columns:118px minmax(0,1fr);gap:var(--e4);
  align-items:baseline;padding:9px 0;border-top:1px solid var(--bord);font-size:14.5px}
body.product-id-category-294 .ffb-echelle li:first-child{border-top:0}
body.product-id-category-294 .ffb-echelle li.ici{background:var(--plaque)}
body.product-id-category-294 .ffb-echelle .m{background:none;border:0;padding:0;font:inherit;
  font-family:var(--f-titre);font-size:16px;color:var(--titre);white-space:nowrap;
  text-align:left}
body.product-id-category-294 .ffb-echelle .m:hover{color:var(--or-texte)}
body.product-id-category-294 .ffb-echelle .fl{color:var(--or)}
body.product-id-category-294 .ffb-echelle span{color:var(--doux);line-height:1.5}
body.product-id-category-294 .ffb-echelle b{color:var(--titre);font-weight:600}
@media (max-width:640px){
  body.product-id-category-294 .ffb-echelle li{grid-template-columns:minmax(0,1fr);gap:2px}
}
body.product-id-category-294 .ffb-deux{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:26px;margin-top:8px}
body.product-id-category-294 .ffb-deux h4{font-size:16px;margin-bottom:6px}
body.product-id-category-294 .ffb-deux ul{margin:0;padding-left:18px;font-size:14.5px;color:var(--doux)}
body.product-id-category-294 .ffb-deux li{margin-bottom:7px}
@media (max-width:760px){
  body.product-id-category-294 .ffb-deux{grid-template-columns:minmax(0,1fr);gap:16px}
}
body.product-id-category-294 .ffb-tour{position:relative;overflow:hidden;margin:var(--e4) 0 var(--e3);
  padding:var(--e5) var(--e5) var(--e4);border-radius:4px;
  background:var(--encre);border:1px solid rgba(176,141,63,.35);
  user-select:none;touch-action:pan-y;
  --titre:#FCFBF7; --doux:rgba(252,251,247,.66); --carte:rgba(252,251,247,.06);
  --bord:rgba(252,251,247,.24); --or-texte:var(--or-clair); --plaque:#24331F}
@media (max-width:640px){
  body.product-id-category-294 .ffb-tour{padding:var(--e4) var(--e3) var(--e3)}
}
body.product-id-category-294 .ffb-oriente{display:grid;grid-template-columns:232px minmax(0,1fr);gap:28px;
  align-items:start;margin:6px 0 30px;padding-bottom:26px;
  border-bottom:1px solid var(--bord)}
body.product-id-category-294 .ffb-oriente .elle img{width:100%;border-radius:2px}
body.product-id-category-294 .ffb-oriente .elle p{margin:9px 0 0;font-size:12px;line-height:1.45;color:var(--doux)}
body.product-id-category-294 .ffb-oriente h3{margin:0 0 4px;padding:0;background:none;font-size:20px}
body.product-id-category-294 .ffb-oriente .intro{margin:0 0 14px;font-size:14.5px;color:var(--doux);max-width:60ch}
@media (max-width:760px){
  body.product-id-category-294 .ffb-oriente{grid-template-columns:minmax(0,1fr);gap:16px}
  body.product-id-category-294 .ffb-oriente .elle{max-width:200px}
}
body.product-id-category-294 .ffb-graine-src{margin:var(--e5) 0 0;padding:var(--e4) 0 0;
  border-top:1px solid var(--bord)}
body.product-id-category-294 .ffb-graine-src ul{list-style:none;margin:var(--e3) 0 0;padding:0}
body.product-id-category-294 .ffb-graine-src li{display:flex;gap:var(--e3);align-items:baseline;padding:5px 0;
  font-size:13px;line-height:1.5;color:var(--doux)}
body.product-id-category-294 .ffb-graine-src li b{color:var(--titre);font-weight:600}
body.product-id-category-294 .ffb-graine-src .dom{font-size:11.5px;color:var(--or-texte);
  border-bottom:1px solid rgba(176,141,63,.45);white-space:nowrap}
body.product-id-category-294 .ffb-graine-src .rang{flex:0 0 auto;font-size:9px;font-weight:700;
  letter-spacing:.12em;text-transform:uppercase;padding:3px 8px;border-radius:999px;
  border:1px solid}
body.product-id-category-294 .ffb-graine-src .primaire{color:var(--vert);border-color:rgba(46,74,50,.45);
  background:rgba(46,74,50,.07)}
/* Meme faute au meme endroit : une regle nuit en var(--sauge) sur la
   pastille primaire. Elle etait couverte par une autre regle, donc sans
   degat visible ; retiree pour ne pas laisser un piege dormant. */
body.product-id-category-294 .ffb-graine-src .secondaire{color:var(--doux);border-color:var(--bord)}
body.product-id-category-294 .ffb-carrousel{margin:18px 0 6px}
body.product-id-category-294 .ffb-presse{display:flex;flex-wrap:wrap;gap:8px;margin:6px 0 0;padding:0;list-style:none}
body.product-id-category-294 .ffb-presse li{border:1px solid var(--bord);border-radius:999px;padding:6px 14px;
  font-size:13px;color:var(--doux)}
body.product-id-category-294 .ffb-saisons{display:grid;grid-template-columns:repeat(auto-fit,minmax(168px,1fr));
  gap:12px;margin-top:10px}
body.product-id-category-294 .ffb-saison{background:var(--plaque);border-radius:2px;padding:14px 15px}
body.product-id-category-294 .ffb-saison b{display:block;font-family:var(--f-titre);font-weight:400;font-size:17px;
  color:var(--titre);margin-bottom:5px}
body.product-id-category-294 .ffb-saison span{font-size:13.5px;line-height:1.45;color:var(--doux)}
body.product-id-category-294 .ffb-serie{margin-top:26px}
body.product-id-category-294 .ffb-serie-t{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;
  padding-bottom:9px;border-bottom:1px solid var(--bord-or);margin-bottom:14px}
body.product-id-category-294 .ffb-serie-t b{margin:0;padding:0;background:none;font-size:21px}
body.product-id-category-294 .ffb-serie-t span{font-size:13px;color:var(--doux)}
body.product-id-category-294 .ffb-lot{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:14px}
body.product-id-category-294 .ffb-lot-c{background:none;border:0;border-top:1px solid var(--bord);text-align:left;
  padding:14px 0 0;transition:none;
  display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start}
body.product-id-category-294 .ffb-lot-c .in{display:flex;flex-direction:column;flex:1}
body.product-id-category-294 .ffb-lot-c .u{margin-top:auto;padding-top:7px}
body.product-id-category-294 .ffb-lot-c:hover b{color:var(--or-texte)}
body.product-id-category-294 .ffb-lot-ici{border-top-color:var(--or)}
body.product-id-category-294 .ffb-lot-ici b{color:var(--or-texte)}
body.product-id-category-294 .ffb-lot-c .vg{width:100%;aspect-ratio:4/3;object-fit:cover;background:var(--plaque);
  border-radius:2px;display:flex;align-items:center;justify-content:center;
  font-size:11px;color:var(--doux)}
body.product-id-category-294 .ffb-lot-c .in{padding:10px 0 0}
body.product-id-category-294 .ffb-lot-c b{display:block;font-family:var(--f-titre);font-weight:400;font-size:16px;
  color:var(--titre);line-height:1.2}
body.product-id-category-294 .ffb-lot-c .g{display:block;font-style:normal;font-size:13px;color:var(--doux);margin:5px 0 0}
body.product-id-category-294 .ffb-lot-c .u{display:block;text-decoration:none;font-size:13.5px;color:var(--or-texte);
  margin-top:7px}
body.product-id-category-294 .ffb-cahier{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));
  gap:var(--e4);margin-top:var(--e3)}
@media (max-width:1040px){
  body.product-id-category-294 .ffb-cahier{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:560px){
  body.product-id-category-294 .ffb-cahier{grid-template-columns:minmax(0,1fr)}
}
body.product-id-category-294 ul.ffb-cahier > li{margin:0;background:none;border:0}
body.product-id-category-294 ul.ffb-cahier > li > img{width:100%;aspect-ratio:4/3;object-fit:cover;background:var(--plaque);
  border-radius:2px}
body.product-id-category-294 ul.ffb-cahier > li{padding:11px 0 0}
body.product-id-category-294 ul.ffb-cahier > li > b{display:block;font-family:var(--f-titre);font-weight:400;font-size:16px;
  color:var(--titre);margin-bottom:5px;line-height:1.2}
body.product-id-category-294 ul.ffb-cahier > li > span{font-size:13.5px;line-height:1.5;color:var(--doux)}
body.product-id-category-294 .ffb-terpz .ffb-photos{margin-top:var(--e5);max-width:760px;
  grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
body.product-id-category-294 .ffb-serie-t::before{content:"";width:20px;height:20px;flex:0 0 auto;
  background:url(/img/cms/embleme-or.png) center/contain no-repeat;opacity:.7;
  align-self:center}
body.product-id-category-294 .ffb-lot-c .vg:not(img),
body.product-id-category-294 .ffb-carte .vg:not(img){background:var(--plaque) url(/img/cms/embleme-or.png) center 34% / 46px no-repeat;
  background-blend-mode:luminosity;align-items:flex-end;padding-bottom:26%}
@media print{
  body.product-id-category-294 .ffb-ruban,
body.product-id-category-294 .ffb-outils,
body.product-id-category-294 .ffb-pastille,
body.product-id-category-294 .ffb-etagere,
body.product-id-category-294 .ffb-sommaire,
body.product-id-category-294 .ffb-pied,
body.product-id-category-294 .ffb-tour,
body.product-id-category-294 .ffb-mot,
body.product-id-category-294 .ffb-ajouter,
body.product-id-category-294 .ffb-qte-note,
body.product-id-category-294 .ffb-fleche,
body.product-id-category-294 .ffb-pastilles,
body.product-id-category-294 .ffb-compte,
body.product-id-category-294 .ffb-loupe,
body.product-id-category-294 .ffb-vignettes,
body.product-id-category-294 .ffb-maillage,
body.product-id-category-294 .ffb-renvois,
body.product-id-category-294 .ffb-socle .b,
body.product-id-category-294 .ffb-encore .b,
body.product-id-category-294 .ffb-raz,
body.product-id-category-294 .ffb-voir,
body.product-id-category-294 .ffb-allerv,
body.product-id-category-294 .ffb-cmp-q,
body.product-id-category-294 .ffb-criteres,
body.product-id-category-294 .ffb-interne{display:none !important}
  body.product-id-category-294 .ffb-tete .ffb-prod{gap:3mm;font-size:10pt}
  body.product-id-category-294 .ffb-tete .ffb-prod b{font-size:12pt}
  body.product-id-category-294 .ffb-tx .v{font-size:20pt}
  body.product-id-category-294 .ffb-terp.petit .v{font-size:14pt}
  body.product-id-category-294 .ffb-plancher,
body.product-id-category-294 .ffb-tour,
body.product-id-category-294 .ffb-terpz-pictos img{background:#fff !important;
    color:#000 !important;border:1px solid #999 !important}
  body.product-id-category-294 .ffb-vapo{gap:3mm 6mm;page-break-inside:avoid}
  body.product-id-category-294 .ffb-mol li{padding:3px 0}
  body.product-id-category-294 .ffb-mol .u{border-color:#999;color:#000}
  body.product-id-category-294 .ffb-graine,
body.product-id-category-294 .ffb-terpz,
body.product-id-category-294 .ffb-planche,
body.product-id-category-294 .ffb-cite,
body.product-id-category-294 .ffb-saison,
body.product-id-category-294 .ffb-photo,
body.product-id-category-294 .ffb-cahier li,
body.product-id-category-294 .ffb-faits li,
body.product-id-category-294 .ffb-echelle li,
body.product-id-category-294 .ffb-roue-bloc,
body.product-id-category-294 .ffb-precautions{page-break-inside:avoid}
  body.product-id-category-294 .ffb-mots h2::before,
body.product-id-category-294 .ffb-renvois-t::before,
body.product-id-category-294 .ffb-serie-t::before,
body.product-id-category-294 .ffb-etagere-t::before,
body.product-id-category-294 .ffb-tour-t::before{filter:grayscale(1) contrast(1.4)}
}
/* --- raccords : notre balisage n a ni <i>, ni <u>, ni <figure> ----------- */
body.product-id-category-294 .ffb-vapo-t{
  margin:0 0 .5rem !important;font-size:10px !important;font-weight:600;
  letter-spacing:.2em;text-transform:uppercase;color:var(--or-texte) !important}
body.product-id-category-294 .ffb-cite-sur{
  margin:0 0 .4rem !important;font-size:10px !important;font-weight:600;
  letter-spacing:.2em;text-transform:uppercase;color:var(--or-texte) !important}
body.product-id-category-294 .ffb-serie-t{
  display:flex;align-items:baseline;gap:6px 14px;flex-wrap:wrap;
  margin:0 0 .9rem !important;max-width:none !important}
body.product-id-category-294 .ffb-serie-t b{
  font-family:var(--f-titre);font-weight:400;font-size:20px;color:var(--titre)}
body.product-id-category-294 .ffb-mol li .u{
  display:block;font-size:10.5px;color:var(--or-texte)}
body.product-id-category-294 .ffb-mol li.vide{
  color:var(--doux);font-style:italic}
body.product-id-category-294 .ffb-lot{
  list-style:none;margin:0;padding:0}
body.product-id-category-294 .ffb-lot-c a{
  display:flex;gap:12px;text-decoration:none;color:inherit}
body.product-id-category-294 .ffb-lot-c .g{
  display:block;font-size:12.5px;line-height:1.4;color:var(--doux)}
body.product-id-category-294 .ffb-lot-c .u{
  display:block;margin-top:3px;font-size:13px;color:var(--or-texte);
  font-weight:600}
body.product-id-category-294 .ffb-lot-c .vg-sans{
  background:var(--plaque) url(/img/cms/embleme-or.png) center/38px no-repeat}
body.product-id-category-294 .ffb-echelle{list-style:none}
body.product-id-category-294 .ffb-echelle .m{
  font-family:var(--f-titre);white-space:nowrap}
body.product-id-category-294 .ffb-photos{list-style:none;margin:0;padding:0}
body.product-id-category-294 .ffb-cahier{list-style:none;margin:0;padding:0}
body.product-id-category-294 .ffb-carte-fr{
  display:block;width:100%;height:auto;margin-top:16px}

/* --- l en-tete : les deux taux en grand ---------------------------------- */
body.product-id-category-294 .ffb-tete{
  display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px 34px;
  align-items:start;margin:0 0 2.4rem;padding:0 0 1.6rem;
  border-bottom:1px solid var(--bord)}
body.product-id-category-294 .ffb-tete-sur{
  margin:0 0 .5rem !important;font-size:10.5px !important;font-weight:600;
  letter-spacing:.24em;text-transform:uppercase;color:var(--or-texte) !important;
  max-width:none !important}
body.product-id-category-294 .ffb-tete-sur span{opacity:.55;margin:0 .3em}
body.product-id-category-294 .ffb-tete-gout{
  margin:.5rem 0 0 !important;font-size:.9rem !important;
  letter-spacing:.06em;text-transform:lowercase;color:var(--doux) !important;
  max-width:none !important}
body.product-id-category-294 .ffb-taux{
  display:flex;gap:26px;align-items:flex-start}
body.product-id-category-294 .ffb-tx{text-align:right}
body.product-id-category-294 .ffb-tx .v{
  display:block;font-family:var(--f-titre);font-size:34px;line-height:1;
  color:var(--or-texte)}
body.product-id-category-294 .ffb-tx-petit .v{font-size:25px;color:var(--titre)}
body.product-id-category-294 .ffb-tx .l{
  display:block;margin-top:4px;font-size:10px;font-weight:600;
  letter-spacing:.14em;text-transform:uppercase;color:var(--doux)}
body.product-id-category-294 .ffb-tx .d{
  display:block;margin-top:3px;font-size:11.5px;color:var(--doux)}
@media (max-width:860px){
  body.product-id-category-294 .ffb-tete{grid-template-columns:minmax(0,1fr)}
  body.product-id-category-294 .ffb-tx{text-align:left}
}

/* ==========================================================================
   CE QUI BOUGE - monte par le script, par-dessus un balisage statique
   --------------------------------------------------------------------------
   Le champ Description ne garde ni <button> ni <input>. Le carrousel, le
   curseur de temperature et le presentoir sont donc poses par le script du
   bloc HTML Box. Regle : jamais un bloc qui n existe que par le script - la
   liste statique reste juste et lisible si le script ne part pas.
   ========================================================================== */

body.product-id-category-294 .lvv-carr-cadre{
  position:relative;margin:1.2rem 0}
body.product-id-category-294 ul.lvv-carr{
  list-style:none;margin:0;padding:0}
body.product-id-category-294 ul.lvv-carr li{margin:0;padding:0}
body.product-id-category-294 ul.lvv-carr img{
  display:block;width:100%;height:auto;border-radius:2px}
body.product-id-category-294 ul.lvv-carr li span{
  display:block;margin-top:.5rem;font-size:.82rem;line-height:1.45;
  color:var(--doux)}
body.product-id-category-294 .lvv-carr-f{
  position:absolute;top:34%;transform:translateY(-50%);
  width:38px;height:38px;border-radius:50%;
  border:1px solid var(--bord-or);background:rgba(252,251,247,.92);
  color:var(--encre);font-size:20px;line-height:1;cursor:pointer;
  display:flex;align-items:center;justify-content:center}
body.product-id-category-294 .lvv-carr-f:hover{
  background:var(--creme);border-color:var(--or)}
body.product-id-category-294 .lvv-carr-g{left:10px}
body.product-id-category-294 .lvv-carr-d{right:10px}
body.product-id-category-294 .lvv-carr-pas{
  display:flex;gap:6px;justify-content:center;margin:.7rem 0 0 !important}
body.product-id-category-294 .lvv-carr-pas button{
  width:7px;height:7px;padding:0;border-radius:50%;cursor:pointer;
  border:1px solid var(--bord-or);background:none}
body.product-id-category-294 .lvv-carr-pas button[aria-current="true"]{
  background:var(--or);border-color:var(--or)}

body.product-id-category-294 .ffb-temp input[type="range"]{
  width:100%;margin:.6rem 0 .2rem;accent-color:#B08D3F}

body.product-id-category-294 .lvv-tour-cadre{
  position:relative;height:250px;margin:1.4rem 0 .4rem;
  perspective:900px;overflow:hidden}
body.product-id-category-294 ul.lvv-tour{
  list-style:none;margin:0;padding:0;
  position:absolute;inset:0;transform-style:preserve-3d}
body.product-id-category-294 ul.lvv-tour li{
  position:absolute;left:50%;top:50%;width:158px;margin:0;padding:0;
  text-align:center;cursor:pointer;
  transition:transform .28s ease,opacity .28s ease}
body.product-id-category-294 ul.lvv-tour li img{
  display:block;width:100%;height:auto;border-radius:2px;
  border:1px solid var(--bord)}
body.product-id-category-294 ul.lvv-tour li a{
  display:block;margin-top:.5rem;font-size:.82rem;line-height:1.35;
  color:var(--titre);text-decoration:none}
body.product-id-category-294 ul.lvv-tour li a:hover{color:var(--or-texte)}
body.product-id-category-294 .lvv-tour-f{
  position:absolute;top:50%;transform:translateY(-50%);z-index:30;
  width:38px;height:38px;border-radius:50%;
  border:1px solid var(--bord-or);background:rgba(252,251,247,.92);
  color:var(--encre);font-size:20px;line-height:1;cursor:pointer;
  display:flex;align-items:center;justify-content:center}
body.product-id-category-294 .lvv-tour-g{left:4px}

/* Le presentoir : la legende " en appui du chapitre ... " n avait AUCUNE
   regle. Elle heritait donc les 16 px du corps, dans une carte de 158 px :
   70 px de hauteur a elle seule, la carte a 239 px dans un cadre de 250, et
   sur les cartes reculees (mises a l echelle par le carrousel) un pate de
   lettres qui mord sur la voisine. Mesure du 23/09 : img 106, lien 13,12 px
   pour 50, legende 16 px pour 70. Toutes les autres legendes de la fiche
   sont en 11,5-12,5 px et en encre douce ; celle-ci rentre dans le rang. */
body.product-id-category-294 ul.lvv-tour li .ou{
  display:block;margin-top:.3rem;font-size:11.5px;line-height:1.3;
  color:var(--doux)}

/* .ffb-picto posait une boite de 64 x 64 et object-fit:contain, pour que les
   mots se rangent sur une meme ligne de base. La regle generale
   " .ffb img{height:auto} ", deux types contre un, la battait : chaque picto
   reprenait son rapport d origine et les etiquettes tombaient a quatre
   hauteurs differentes. Mesure du 23/09 : 24 px d ecart sur le profil
   aromatique, 27 px sur la carte du nez. On remonte la specificite en
   nommant la balise. */
body.product-id-category-294 img.ffb-picto{
  width:64px;height:64px;object-fit:contain;display:block}

/* Le tableau comparatif coupait les sommes entre le nombre et l euro :
   " 9,75 " sur une ligne, " EUR " sur la suivante, sur les huit lignes.
   .ffb-cmp-total avait deja sa garde, pas ses voisines. Colonnes 7 (le
   gramme) et 8 (a la quantite choisie) : un montant ne se coupe pas. */
body.product-id-category-294 table.ffb-cmp td:nth-child(7),
body.product-id-category-294 table.ffb-cmp td:nth-child(8),
body.product-id-category-294 .ffb-cmp-des{white-space:nowrap}

/* La colonne CBD. La mise en page automatique ne lui donnait que 53 px,
   parce que ses mots sont courts (" 9 ", " a ", " 11 ", " % ") : elle
   rendait " 9 a / 11 / % " sur trois lignes et poussait six lignes du
   tableau a 111 px. En la declarant insecable, sa largeur minimale passe a
   82 px, prise sur les colonnes qui avaient du mou. Mesure du 23/09 : six
   lignes sur huit retombent de 111 a 81 px. */
body.product-id-category-294 table.ffb-cmp td:nth-child(4){white-space:nowrap}

/* LE HALO DU QUADRANT. Les 48 textes du graphique des saveurs sont dessines
   avec paint-order:stroke et stroke="var(--fond)" : un contour de la couleur
   du fond, qui creuse une bande propre sous le libelle de la fleur et le
   detache des graduations (1 a 4 %) qu il traverse. --fond existe dans la
   simulation (elle en a trois, une par fond), mais n avait JAMAIS ete portee
   dans lvv.css : 0 occurrence. Le trait etait donc invalide, stroke calcule
   a " none ", aucun halo : " Legendary Purple Tonic " passait au travers
   de " 4 % ", " 4,00 % de terpenes " au travers de " 2 % ". Mesure du 23/09 :
   16 px de chevauchement sur deux fiches (Legendary Purple Tonic, Lementos),
   les six autres indemnes.
   La variable est posee sur le quadrant SEUL, pas sur le body : la roue du
   pied de page vit sur le fond de nuit, et un blanc global l attendrait au
   tournant. Fond releve sous le quadrant sur la fiche servie : #FFFFFF, celui
   de .product-description. */
body.product-id-category-294 .ffb-rs-roue{--fond:#FFFFFF}

/* La table " Caracteristiques " du theme met une majuscule a chaque mot
   (text-transform:capitalize sur dd.value). Le texte stocke est juste :
   c est l affichage qui ecrit " Moins De 0,3 % ", " Selection Maison ",
   " Terpinolene Et Beta-Caryophyllene ". Dix valeurs par fiche. On rend
   leur casse aux valeurs, sur ce rayon seulement. */
body.product-id-category-294 dl.data-sheet dd.value{text-transform:none}
body.product-id-category-294 .lvv-tour-d{right:4px}

body.product-id-category-294 th.lvv-triable{cursor:pointer;user-select:none}
body.product-id-category-294 th.lvv-triable:hover{color:var(--or-pale)}
body.product-id-category-294 th.lvv-triable[aria-sort]::after{
  content:" \2191";font-size:.8em}
body.product-id-category-294 th.lvv-triable[aria-sort="descending"]::after{
  content:" \2193"}

@media (max-width:640px){
  body.product-id-category-294 .lvv-tour-cadre{height:225px}
  body.product-id-category-294 ul.lvv-tour li{width:130px}
}

/* La section " ffb-guides " etait habillee en flex du temps ou elle ne
   portait qu une liste de liens. Le cadre du presentoir, insere dedans,
   devenait un element de flex sans contenu propre : largeur zero, cartes
   posees hors du cadre. Mesure du 23/09 : cadre 0 x 250, premiere carte a
   79 px a gauche de son cadre. On rend la section bloc, et on donne au
   cadre sa pleine largeur dans les deux cas. */
body.product-id-category-294 .ffb-sec.ffb-guides{ display:block }
body.product-id-category-294 .lvv-tour-cadre,
body.product-id-category-294 .lvv-carr-cadre{
  width:100%;flex:1 1 100%;box-sizing:border-box}

/* La fleche de l escalier venait de la simulation en " --or " (#B08D3F) :
   3,12 sur blanc, mesure du 23/09. Sur fond clair, la maison ecrit l or en
   " --or-texte " (#75591F). Huit occurrences corrigees d un coup. */
body.product-id-category-294 .ffb-echelle .fl{ color:var(--or-texte) }

/* ==========================================================================
   LES DERNIERS BLOCS - releve du 23/09, panneau par panneau
   --------------------------------------------------------------------------
   Compare bloc a bloc entre la simulation et la fiche servie : anecdote du
   producteur, planche dessinee de la roue, planche du producteur, replis de
   la ferme, sources de la roue, orientation de Miss Bud, criteres du
   tableau. Les trois derniers sont montes par le script par-dessus ce que
   les chapitres portent deja - ils ne recopient aucun texte.
   ========================================================================== */

body.product-id-category-294 .ffb-roue-bloc{
  margin:1.4rem 0 .5rem;max-width:340px}
body.product-id-category-294 .ffb-roue-planche{
  display:block;width:100%;height:auto;border-radius:2px}
body.product-id-category-294 .ffb-roue-legende{
  margin:.6rem 0 0 !important;font-size:.82rem !important;
  line-height:1.45 !important;color:var(--doux) !important}

body.product-id-category-294 .ffb-planche{
  display:grid;grid-template-columns:150px minmax(0,1fr);gap:16px;
  align-items:start;margin:1.4rem 0;padding:14px;
  background:var(--papier);border:1px solid var(--bord)}
body.product-id-category-294 .ffb-planche-img{
  display:block;width:100%;height:auto;border-radius:2px}
body.product-id-category-294 .ffb-planche-l{
  margin:0 !important;font-size:.86rem !important;line-height:1.5 !important;
  color:var(--doux) !important;max-width:none !important}
body.product-id-category-294 .ffb-planche-l b{color:var(--titre)}
@media (max-width:640px){
  body.product-id-category-294 .ffb-planche{grid-template-columns:minmax(0,1fr)}
}

/* --- les replis de la ferme --------------------------------------------- */
body.product-id-category-294 .ffb-repli{
  margin:.7rem 0;border-top:1px solid var(--bord)}
body.product-id-category-294 .ffb-repli-t{
  margin:0 !important;padding:.75rem 26px .75rem 0;position:relative;
  cursor:pointer;font-family:var(--f-titre);font-size:17px !important;
  color:var(--titre) !important;max-width:none !important}
body.product-id-category-294 .ffb-repli-t span{
  display:block;font-family:var(--f-texte);font-size:12px;color:var(--doux)}
body.product-id-category-294 .ffb-repli-t::after{
  content:"+";position:absolute;right:2px;top:.7rem;
  font-size:19px;line-height:1;color:var(--or-texte)}
body.product-id-category-294 .ffb-repli-t[aria-expanded="true"]::after{content:"\2212"}
body.product-id-category-294 .ffb-repli-t:focus-visible{
  outline:2px solid var(--or);outline-offset:2px}
body.product-id-category-294 .ffb-repli-c{padding:0 0 .9rem}

/* --- les sources, primaire ou secondaire -------------------------------- */
body.product-id-category-294 .ffb-graine-src{
  margin:1.2rem 0;padding:14px;background:var(--plaque);
  border:1px solid var(--bord)}
body.product-id-category-294 .ffb-graine-src ul{
  list-style:none;margin:.6rem 0 0;padding:0}
body.product-id-category-294 .ffb-graine-src li{
  display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;
  padding:.5rem 0;border-top:1px dotted var(--bord);
  font-size:.84rem !important;line-height:1.45 !important}
body.product-id-category-294 .ffb-graine-src li:first-child{border-top:0}
body.product-id-category-294 .ffb-graine-src .rang{
  align-self:start;padding:2px 8px;border-radius:999px;
  font-size:9.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;
  background:var(--vert);color:#FCFBF7}
body.product-id-category-294 .ffb-graine-src .rang.secondaire{
  background:none;border:1px solid var(--bord-or);color:var(--or-texte)}
body.product-id-category-294 .ffb-graine-src .dom{color:var(--doux)}

/* --- l orientation de Miss Bud ------------------------------------------ */
body.product-id-category-294 .lvv-oriente{
  margin:0 0 1.8rem;padding:16px;background:var(--papier);
  border:1px solid var(--bord-or)}
body.product-id-category-294 .lvv-oriente-t{
  margin:0 0 .8rem !important;font-family:var(--f-titre);
  font-size:20px !important;color:var(--titre) !important;
  max-width:none !important}
body.product-id-category-294 .lvv-choix{
  display:flex;flex-wrap:wrap;gap:7px}
body.product-id-category-294 .lvv-choix button{
  border:1px solid var(--bord);background:none;border-radius:999px;
  padding:6px 14px;font-size:13px;color:var(--doux);cursor:pointer}
body.product-id-category-294 .lvv-choix button:hover{
  color:var(--titre);border-color:var(--or)}
body.product-id-category-294 .lvv-choix button[aria-pressed="true"]{
  background:var(--vert);border-color:var(--vert);color:#FCFBF7}
body.product-id-category-294 .lvv-reponse{margin-top:1rem}
body.product-id-category-294 .lvv-suite{
  margin:.7rem 0 0 !important;font-size:.88rem !important}
body.product-id-category-294 .lvv-suite a{color:var(--or-texte)}

/* --- les criteres du tableau des huit ----------------------------------- */
body.product-id-category-294 .lvv-criteres{
  margin:1.2rem 0;padding:14px;background:var(--plaque);
  border:1px solid var(--bord)}
body.product-id-category-294 .lvv-crit-l{
  display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:9px}
body.product-id-category-294 .lvv-crit-t{
  flex:0 0 92px;font-size:10px;font-weight:600;letter-spacing:.18em;
  text-transform:uppercase;color:var(--or-texte)}
body.product-id-category-294 .lvv-verdict{
  margin:.7rem 0 0 !important;padding-top:.7rem;
  border-top:1px dotted var(--bord);
  font-size:.88rem !important;line-height:1.5 !important;
  color:var(--titre) !important;max-width:none !important}

/* ==========================================================================
   LE HAUT DE PAGE - l etagere, l en-tete, la provenance, le nez, la loupe
   --------------------------------------------------------------------------
   La simulation ne met pas ces quatre blocs dans le texte long : ils
   entourent le produit. Le champ Description n ecrit qu a un seul endroit,
   le script les en sort et les pose ici. La carte de France arrive donc AVEC
   la page, a cote de la photo - elle n attend plus qu on ouvre le chapitre
   de la ferme.
   ========================================================================== */

/* Le gabarit est en pleine largeur : la rangee produit va de bord a bord et
   ce sont ses colonnes qui portent la gouttiere de 15 px. Mesure du 23/09 :
   boite 0..1280, galerie 15..595. Sans cette gouttiere, la premiere vignette
   du bandeau etait coupee par le bord de la fenetre. */
body.product-id-category-294 .lvv-etagere-boite{
  margin:0 0 22px;padding:0 15px;box-sizing:border-box}
body.product-id-category-294 .lvv-etagere-boite .ffb-etagere{
  margin:0;padding:0 0 1.1rem}

/* --- l en-tete, sous le titre ------------------------------------------- */
body.product-id-category-294 .product-information .ffb-tete,
body.product-id-category-294 .col-md-6 > .ffb-tete{
  margin:0 0 1.4rem;padding:0 0 1.1rem}

/* --- la provenance, A COTE de la photo ---------------------------------- */
/* La simulation tient .ff-haut en deux colonnes : la photo, puis 200 px de
   marge. Le script monte le meme cadre (.lvv-haut). Sous la galerie et en
   pleine largeur, la carte de France sortait a 546x546 au lieu de 200x105. */
/* La photo au format de la simulation : 418 px a cote de la carte (mesure a
   1440 sur .ff-scene), jamais plus de 430. En 1fr elle prenait 471 px et la
   fleur sortait 13 % plus grosse, au repos comme sous la loupe. Le plafond de
   430 ne vaut qu a partir de 992 px : en dessous le theme range les
   vignettes A COTE de la photo dans .images-container, et le brider
   retrecissait la photo (316 -> 301 a 760). */
body.product-id-category-294 .lvv-haut{
  display:grid;grid-template-columns:minmax(0,418px) 200px;
  gap:1.2rem;align-items:start}
@media (min-width:992px){
  body.product-id-category-294 .lvv-haut > .images-container{max-width:430px}
}
/* Entre 1041 et 1333 px, le cadre suit la simulation, largeur par largeur.
   La simulation tient la photo a (fenetre - 822 px), plafonnee a 418 :
   219 a 1041, 278 a 1100, 358 a 1180, 398 a 1220, 418 des 1240. Le site
   partage la page moitie-moitie : la photo sortait a 271 a 1041 (trop
   grande) et a 391 a 1280 (trop petite), et 418 + 200 de carte ne tenaient
   pas dans une demi-page avant 1334. La colonne de gauche s elargit donc
   juste ce qu il faut (photo + carte + gouttieres = photo + 250 px), jamais
   moins de la moitie ; celle d achat prend le reste (521 px au plus serre).
   La page est en flottants : la colonne d achat doit recevoir sa largeur
   explicitement, sinon elle passe sous la photo. Elle n est pas le dernier
   enfant de .product-container : " + ", pas " :last-child ". */
@media (min-width:1041px){
  body.product-id-category-294 .lvv-haut{
    grid-template-columns:minmax(0,min(418px,calc(100vw - 822px))) 200px}
  body#product.product-id-category-294 .product-container > .col-md-6:first-child{
    flex:0 0 max(50%, calc(min(418px, 100vw - 822px) + 250px));
    max-width:max(50%, calc(min(418px, 100vw - 822px) + 250px));
    width:max(50%, calc(min(418px, 100vw - 822px) + 250px))}
  body#product.product-id-category-294 .product-container > .col-md-6 + .col-md-6{
    flex:0 0 calc(100% - max(50%, calc(min(418px, 100vw - 822px) + 250px)));
    max-width:calc(100% - max(50%, calc(min(418px, 100vw - 822px) + 250px)));
    width:calc(100% - max(50%, calc(min(418px, 100vw - 822px) + 250px)))}
}
@media (max-width:1040px){
  body.product-id-category-294 .lvv-haut{grid-template-columns:minmax(0,1fr)}
}
body.product-id-category-294 .lvv-haut > .images-container{margin:0;min-width:0}
body.product-id-category-294 .lvv-haut > .ffb-legende{
  grid-column:1;margin:9px 0 0 !important;font-size:11.5px !important;
  line-height:1.45 !important;color:var(--doux) !important;font-style:italic;
  max-width:none !important}
body.product-id-category-294 .lvv-haut > .ffb-cote{grid-column:2;grid-row:1/3}
@media (max-width:1040px){
  body.product-id-category-294 .lvv-haut > .ffb-cote{grid-column:1;grid-row:auto}
}
body.product-id-category-294 .ffb-cote{
  margin:0;padding:14px;background:var(--papier);
  border:1px solid var(--bord)}
/* Le sceau devant les onglets, comme .ff-sommaire .ff-sceau. */
body.product-id-category-294 .lvv-chapbar .lvv-sceau{
  width:26px;height:26px;flex:0 0 auto;opacity:.9;margin-right:4px}
body.product-id-category-294 .ffb-marques{
  margin:0 0 .8rem !important;text-align:center}
body.product-id-category-294 .ffb-marques-t{
  margin:0 0 .4rem !important;font-size:10px !important;font-weight:600;
  letter-spacing:.2em;text-transform:uppercase;
  color:var(--or-texte) !important;max-width:none !important}
/* Deux logos cote a cote dans une marge de 170 px : sans " min-width:0 ",
   chacun reclame sa largeur propre et la rangee sortait a 198 px, 28 px hors
   de la colonne (mesure du 23/09 sur The Palladium, fleur en collaboration). */
body.product-id-category-294 .ffb-marques .rang{
  display:flex;align-items:center;justify-content:center;gap:8px;
  margin:0 !important;max-width:100%}
body.product-id-category-294 .ffb-marques .rang > .ffb-marque-logo{
  flex:1 1 0;min-width:0;width:auto;max-width:100%}
body.product-id-category-294 .ffb-marques .croix{flex:0 0 auto}
body.product-id-category-294 .ffb-marques .croix{color:var(--doux)}
/* Le logotype prend la largeur de la marge et se borne en hauteur, comme
   .ff-marques .marque-logo img. Le bornage a 104 px de large avait ete pose
   pour l arche en PNG servie a la place du SVG ; le SVG est large (124x47). */
body.product-id-category-294 .ffb-marque-logo{
  display:block;width:100%;max-width:none;height:auto;max-height:54px;
  object-fit:contain;object-position:center}
/* La simulation ROGNE la carte a 105 px de haut (.ff-cote .carte{height:105px}
   + object-fit:cover) : c est une vignette de reperage, pas une planche. En
   hauteur libre, le SVG est carre et la carte mangeait 170 px de la colonne. */
/* v151 : la hauteur suit la largeur (proportion 170/105) au lieu de 105 px
   fixes. A 170 px (ordinateur) rien ne change ; au telephone (333 px) la
   hauteur fixe ne montrait qu un tiers de la carte et la ferme sortait du
   cadre. Meme cadrage a toutes les largeurs. */
body.product-id-category-294 .ffb-cote .ffb-carte-fr{
  display:block;width:100%;height:auto;aspect-ratio:170/105;object-fit:cover;
  margin:.6rem 0 1rem}
body.product-id-category-294 .ffb-cote-mots p{
  margin:0 0 .8rem !important;font-size:.88rem !important;
  line-height:1.5 !important;max-width:none !important}
body.product-id-category-294 .ffb-id{
  display:block !important;margin:0 !important}
body.product-id-category-294 .ffb-id dt{
  font-size:9.5px !important;font-weight:600;letter-spacing:.16em;
  text-transform:uppercase;color:var(--or-texte) !important;
  margin:.65rem 0 .1rem}
body.product-id-category-294 .ffb-id dd{
  font-size:.86rem !important;line-height:1.45 !important;margin:0}

/* --- le nez, sous la photo ---------------------------------------------- */
body.product-id-category-294 .ffb-nez{
  margin:1.1rem 0 0;padding:.9rem 0 0;border-top:1px solid var(--bord)}
body.product-id-category-294 .ffb-nez-t{
  margin:0 0 .6rem !important;font-size:10px !important;font-weight:600;
  letter-spacing:.2em;text-transform:uppercase;
  color:var(--or-texte) !important;max-width:none !important}
body.product-id-category-294 .ffb-nez .ffb-saveurs{
  display:flex;flex-wrap:wrap;gap:.7rem 1.1rem;list-style:none;
  margin:0;padding:0}
/* La simulation range le nez sous la photo EN LIGNE : picto de 40 px, puis le
   mot, un filet entre chaque (.ff-nez-bas .ff-saveur). En colonnes de 64 px,
   les pictos sortaient a 64 au lieu de 40 et la bande prenait deux fois la
   hauteur. */
body.product-id-category-294 .ffb-nez .ffb-saveurs li{
  display:inline-flex;flex-direction:row;align-items:center;gap:8px;
  width:auto;padding:0 4px 0 0;
  font-size:13.5px !important;line-height:1.3 !important;text-align:left}
body.product-id-category-294 .ffb-nez .ffb-saveurs li + li{
  border-left:1px solid var(--bord);padding-left:16px}
body.product-id-category-294 .ffb-nez .ffb-saveurs li img{
  height:40px;width:auto;flex:0 0 auto}

/* --- la loupe : la photo s agrandit autour du point vise ----------------
   NE PAS nommer cette classe " lvv-loupe " : elle appartient deja au bouton
   de recherche de l en-tete (4 regles dans lvv.css). Ma regle a ecrase sa
   police d icone le 23/09, et la ligature Material Icons est ressortie en
   toutes lettres - le mot SEARCH en serif de 22 px, sur toutes les fiches du
   rayon. Un prefixe de classe se verifie dans la feuille du site : les
   vingt-cinq autres noms poses ce jour-la ont ete controles, zero collision. */
body.product-id-category-294 .lvv-scene{
  position:relative;overflow:hidden}
/* Trois ecarts a la simulation, mesures le 24/09 sur la fiche 2799 servie.
   1. Le style en ligne " #product .product-cover " pose 10 px de marge
      interieure : la photo sortait a 396 px dans un cadre de 418, la
      simulation la tient a 416 bord a bord. Il faut un identifiant pour
      le battre.
   2. Le calque .layer du theme (qui ouvre la grande photo au clic) couvre
      la photo au survol d un voile noir a 60 % et d une icone de 50 px :
      la fleur zoomee sortait assombrie. On le rend invisible, le clic reste.
   3. La galerie lvv-gal met les photos cote a cote dans une piste : grossie,
      la vignette voisine debordait sur la photo visible. Chaque vue garde
      son grossissement pour elle. */
body#product.product-id-category-294 .product-cover.lvv-scene{padding:0}
body#product.product-id-category-294 .product-cover.lvv-scene .layer{opacity:0}
/* Sans photo (Lementos, 2794 : le theme sert son image par defaut
   /img/p/fr-default), la simulation ne monte ni scene ni loupe. En ligne,
   " Survolez pour agrandir " invitait a grossir une image vide. */
body.product-id-category-294 .lvv-scene:has(img[src*="/p/fr-default"]) .lvv-agrandir{display:none}
body.product-id-category-294 .lvv-scene:has(img[src*="/p/fr-default"]) img{transform:none}
body.product-id-category-294 .lvv-scene .lvv-gal-vue{overflow:hidden}
/* Le grossissement et sa duree sont ceux de la simulation (.ff-scene) :
   1,85 en .35 s. Pose a 2 en .22 s le 23/09, la fleur sortait plus grosse
   et plus seche que sur la maquette validee. */
body.product-id-category-294 .lvv-scene img{
  transition:transform .35s ease}
body.product-id-category-294 .lvv-scene.lvv-zoom img{
  transform:scale(1.85)}
body.product-id-category-294 .lvv-agrandir{
  position:absolute;left:12px;bottom:12px;z-index:3;pointer-events:none;
  padding:5px 11px;border-radius:999px;
  background:rgba(26,33,32,.72);color:#FCFBF7;
  font-size:9.5px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;
  transition:opacity .18s ease}
body.product-id-category-294 .lvv-scene.lvv-zoom .lvv-agrandir{opacity:0}
@media (hover:none){
  body.product-id-category-294 .lvv-agrandir{display:none}
  body.product-id-category-294 .lvv-scene.lvv-zoom img{transform:none}
}

/* ==========================================================================
   LES BLOCS SORTIS DE LA DESCRIPTION CHANGENT DE FOND
   --------------------------------------------------------------------------
   Mesure du 23/09, juste apres le deplacement : le nom d une vignette du
   bandeau sortait a 1,09 - encre #1A2120 sur le fond de nuit #101A12. Ces
   quatre blocs etaient dessines pour la plaque creme de la description ; en
   haut de page, ils tombent sur la nuit du gabarit produit.

   La simulation, elle, est une page claire de bout en bout. On ne refait pas
   le theme pour ca : on donne a ces blocs l encre de nuit de la maison
   (or-pale sur nuit, sauge pour le second plan). Ecart assume et note.
   ========================================================================== */

body.product-id-category-294 .lvv-etagere-boite .ffb-etagere{
  border-bottom-color:rgba(176,141,63,.45)}
body.product-id-category-294 .lvv-etagere-boite .ffb-etagere-t,
body.product-id-category-294 .col-md-6 > .ffb-tete .ffb-tete-sur,
body.product-id-category-294 .ffb-nez .ffb-nez-t{
  color:#D2B269 !important}
body.product-id-category-294 .lvv-etagere-boite .ffb-carte b,
body.product-id-category-294 .col-md-6 > .ffb-tete .ffb-prod b{
  color:#EFDCA8 !important}
body.product-id-category-294 .lvv-etagere-boite .ffb-carte .cd,
body.product-id-category-294 .col-md-6 > .ffb-tete .ffb-prod .lieu,
body.product-id-category-294 .col-md-6 > .ffb-tete .ffb-prod .cond,
body.product-id-category-294 .col-md-6 > .ffb-tete .ffb-tete-gout,
body.product-id-category-294 .ffb-nez .ffb-saveurs li,
body.product-id-category-294 .ffb-nez .ffb-saveurs li span{
  color:#9FB08C !important}
body.product-id-category-294 .lvv-etagere-boite .ffb-carte .pr{
  color:#D2B269 !important}
body.product-id-category-294 .lvv-etagere-boite .ffb-carte a:hover b{
  color:#FCFBF7 !important}
body.product-id-category-294 .lvv-etagere-boite .ffb-carte-ici b{
  color:#FCFBF7 !important}
/* La pastille de la fleur courante, et le survol : je leur ai donne le 23/09
   un fond de PLAQUE CLAIRE (var(--plaque), #F5F2EA) alors que la bande est
   sur la nuit du gabarit, et l encre, elle, est restee celle de la nuit.
   Mesure : le nom a 1,08, la conduite a 2,07, le prix a 1,82. Invisible.
   Sur cette bande, la marque du " vous y etes " est un or transparent. */
body.product-id-category-294 .lvv-etagere-boite .ffb-carte-ici,
body.product-id-category-294 .lvv-etagere-boite .ffb-carte:hover{
  background:rgba(210,178,105,.16) !important}
/* La legende de la photo, posee le 23/09 sous la galerie : elle est dans la
   colonne produit, donc sur la nuit, et portait l encre du jour a 72 %.
   Mesure : 1,09. En sauge de nuit : 7,69. */
body.product-id-category-294 .lvv-haut > .ffb-legende{
  color:#9FB08C !important}
/* LA BANDE " AU NEZ " EST RESTEE SUR LA NUIT, avec les autres blocs du haut.
   Elle avait recu une plaque blanche le 23/09 pour cacher le halo blanc que
   les planches de saveur trainaient depuis leur detourage d origine. Les 29
   planches ont ete REDETOUREES le meme jour : le halo n existe plus, et le
   cache-misere avec lui. Un vestige se retire, il ne se garde pas " au cas
   ou " : cf. publication/redetourer.py et le controle a deux lignes. */
body.product-id-category-294 .col-md-6 > .ffb-tete{
  border-bottom:1px solid rgba(176,141,63,.45)}
body.product-id-category-294 .col-md-6 > .ffb-tete .ffb-tx .v{
  color:#EFDCA8 !important}
body.product-id-category-294 .col-md-6 > .ffb-tete .ffb-tx-petit .v{
  color:#FCFBF7 !important}
body.product-id-category-294 .col-md-6 > .ffb-tete .ffb-tx .l,
body.product-id-category-294 .col-md-6 > .ffb-tete .ffb-tx .d{
  color:#9FB08C !important}
body.product-id-category-294 .ffb-nez{
  border-top-color:rgba(176,141,63,.45)}

/* La provenance garde sa plaque, mais en nuit : le papier creme sur la
   colonne de gauche aurait fait une carte blanche au milieu du sombre. */
body.product-id-category-294 .ffb-cote{
  background:#0E1710;border-color:#24331F}
body.product-id-category-294 .ffb-cote .ffb-cote-mots p{color:#EFDCA8 !important}
/* Le logotype du producteur est un trace VERT FONCE (#1a3428) : sur la plaque
   de nuit de la marge il ressort a 1,3 de contraste, on lit a peine le nom.
   C est un <img>, la couleur ne s atteint pas de l exterieur : on retourne
   donc le trace en blanc par un filtre. Sur #0E1710 : 17. */
body.product-id-category-294 .ffb-cote .ffb-marque-logo{
  filter:brightness(0) invert(1);opacity:.92}
body.product-id-category-294 .ffb-cote .ffb-id dt{color:#D2B269 !important}
body.product-id-category-294 .ffb-cote .ffb-id dd{color:#9FB08C !important}
body.product-id-category-294 .ffb-cote .ffb-marques-t{color:#D2B269 !important}
body.product-id-category-294 .ffb-cote .ffb-marques .croix{color:#9FB08C !important}

/* --- deux encres qui tombaient a cote ----------------------------------
   1. La roue des terpenes a ete ecrite pour une page de nuit ; deplacee dans
      la description, elle se retrouve sur une plaque BLANCHE - " On le
      retrouve " sortait en or pale sur blanc, 1,36. Le meme piege que la
      premiere fois : la description reste claire meme quand la page est en
      nuit. On rend l encre du jour a ce qui vit dans un chapitre.
   2. Le rang d une source (" primaire ") : l encre de la maison gagnait sur
      la mienne, encre sur vert = 1,67. */
body.product-id-category-294 .ffb-chap .lvv-roue-ou b,
body.product-id-category-294 .ffb-chap .lvv-roue-t b,
body.product-id-category-294 .ffb-chap .lvv-roue-liste b{
  color:#1A2120 !important}
body.product-id-category-294 .ffb-graine-src .rang{
  color:#FCFBF7 !important}
body.product-id-category-294 .ffb-graine-src .rang.secondaire{
  color:#75591F !important}

/* --- le selecteur de quantite du tableau des huit ----------------------- */
body.product-id-category-294 .ffb-cmp-q{
  margin:1.2rem 0;padding:14px;background:var(--plaque);
  border:1px solid var(--bord)}
body.product-id-category-294 .ffb-cmp-q-t{
  margin:0 0 .6rem !important;font-size:10px !important;font-weight:600;
  letter-spacing:.18em;text-transform:uppercase;
  color:var(--or-texte) !important;max-width:none !important}
body.product-id-category-294 .ffb-cmp-q-l{
  display:flex;flex-wrap:wrap;gap:7px;list-style:none;margin:0;padding:0}
body.product-id-category-294 .ffb-cmp-q-l li{
  border:1px solid var(--bord);border-radius:999px;padding:5px 14px;
  font-size:13px;line-height:1.25;color:var(--doux);margin:0}
body.product-id-category-294 .ffb-cmp-q-l li.lvv-q-choix{cursor:pointer}
body.product-id-category-294 .ffb-cmp-q-l li.lvv-q-choix:hover{
  color:var(--titre);border-color:var(--or)}
body.product-id-category-294 .ffb-cmp-q-l li.ffb-q-ici{
  background:var(--vert);border-color:var(--vert);color:#FCFBF7;font-weight:600}
body.product-id-category-294 .ffb-cmp-q-l li:focus-visible{
  outline:2px solid var(--or);outline-offset:2px}
body.product-id-category-294 .ffb-cmp-q .ffb-garde{
  margin:.7rem 0 0 !important}

/* Les deux colonnes calculees, et le lien de fin de ligne. */
body.product-id-category-294 .ffb-cmp-des b{
  font-family:var(--f-titre);font-size:1.05em;color:var(--or-texte)}
body.product-id-category-294 .ffb-cmp-total{white-space:nowrap}
body.product-id-category-294 .ffb-voir{
  display:inline-block;border:1px solid var(--bord-or);border-radius:999px;
  padding:3px 12px;font-size:12px;color:var(--or-texte);text-decoration:none;
  white-space:nowrap}
body.product-id-category-294 .ffb-voir:hover{
  background:var(--or);border-color:var(--or);color:#FCFBF7}
body.product-id-category-294 .ffb-ici{
  font-size:12px;color:var(--doux);white-space:nowrap}
body.product-id-category-294 .ffb-tab-boite .ffb-cmp{min-width:930px}

/* LE TELEPHONE. Trois fautes qui, ensemble, faisaient defiler TOUTE la
   page de cote : 968 px de large sur un ecran de 375. Mesure du 24/09 en
   emulation reelle (Pixel, 375 px, user agent Android).
   1. La ligne du dessus pose min-width:930px pour le bureau, SANS exception
      telephone, et plus bas que le bloc telephone qui remettait min-width:0 :
      a specificite egale, l ordre l emportait. Et le bloc telephone met la
      boite en overflow-x:visible, donc les 930 px poussaient la page.
   2. La ligne d en-tete n etait pas masquee : la regle vise thead, que le
      champ Description purge. L en-tete est un <tr> de <th> dans le tbody,
      rendu en grille : 283 px d etiquettes flottantes au-dessus des cartes.
   3. Le tableau des quatre conduites garde ses en-tetes insecables :
      91 + 122 + 145 = 358 px dans une boite de 299.
   Apres : largeur de page 375 = largeur d ecran, zero element qui deborde. */
@media (max-width:640px){
  body.product-id-category-294 .ffb-tab-boite .ffb-cmp{min-width:0}
  body.product-id-category-294 .ffb-cmp tr:has(> th){display:none}
  body.product-id-category-294 .ffb-tab th{white-space:normal}
}

/* LE TELEPHONE, SUITE : les cibles tactiles. Releve du 24/09 en emulation
   375 px : 111 liens et boutons sous 40 px dans la fiche. Par familles :
   27 puces " Dans ce chapitre " a 28 px, 15 points de carrousel a 7 x 7,
   7 pastilles de quantite a 37, 7 " Voir " a 38, 20 pastilles de la roue
   a 31, les fleches a 38. On les porte a 40 px de haut SANS changer leur
   dessin. Restent volontairement : les 20 secteurs de la roue SVG (les
   pastilles dessous menent aux memes molecules, et elles sont a 40), les
   liens pris dans une phrase (exemptes, WCAG 2.5.8), et les points du
   carrousel : 15 dans 299 px, 19 px de pas au mieux ; 40 de haut, le point
   visible reste de 7, dessine par ::before. Fleches et glisser restent les
   gestes principaux. */
@media (max-width:640px){
  body.product-id-category-294 .lvv-souffil a{min-height:40px;box-sizing:border-box}
  body.product-id-category-294 .ffb-cmp-q-l li.lvv-q-choix{min-height:40px;box-sizing:border-box;
    display:inline-flex;align-items:center}
  body.product-id-category-294 .ffb-voir{min-height:40px;min-width:48px;box-sizing:border-box;
    display:inline-flex;align-items:center;justify-content:center}
  body.product-id-category-294 ul.lvv-tour li.ffb-guide a{min-height:40px;box-sizing:border-box;
    display:flex;align-items:center;justify-content:center}
  body.product-id-category-294 .lvv-roue-chips a{min-height:40px;box-sizing:border-box;
    display:inline-flex;align-items:center}
  body.product-id-category-294 .lvv-carr-f,
  body.product-id-category-294 .lvv-tour-f{width:40px;height:40px}
  body.product-id-category-294 .ffb-rs-vers{min-height:40px}
  body.product-id-category-294 .lvv-suite a{display:inline-flex;align-items:center;min-height:40px}
  body.product-id-category-294 .lvv-carr-pas{gap:0}
  body.product-id-category-294 .lvv-carr-pas button{width:19px;height:40px;border:0;background:none;
    position:relative}
  body.product-id-category-294 .lvv-carr-pas button::before{content:"";position:absolute;left:50%;
    top:50%;width:7px;height:7px;margin:-3.5px 0 0 -3.5px;border-radius:50%;
    border:1px solid var(--bord-or);box-sizing:border-box}
  body.product-id-category-294 .lvv-carr-pas button[aria-current="true"]{background:none}
  body.product-id-category-294 .lvv-carr-pas button[aria-current="true"]::before{
    background:var(--or);border-color:var(--or)}

  /* La ligne de la fleur courante, dans les cartes du comparatif : chaque
     cellule peignait sa plaque et la grille laissait voir ses gouttieres
     blanches entre elles : un damier. On peint la ligne, pas les cellules. */
  body.product-id-category-294 .ffb-cmp tr.ffb-cmp-ici{background:var(--plaque);
    padding-left:10px;padding-right:10px}
  body.product-id-category-294 .ffb-cmp tr.ffb-cmp-ici td{background:transparent}

  /* Les quatre conduites : trois colonnes dans 299 px, un mot par ligne,
     794 px de haut. En cartes, comme le comparatif : le nom en titre, les
     deux textes dessous, chacun avec son etiquette. Les etiquettes sont
     ecrites ici parce que le champ Description a purge le thead : aucune
     data-l a lire. (\E7 = c cedille : lvv.css est servi sans charset.) */
  body.product-id-category-294 .ffb-conduites .ffb-tab tr:has(> th){display:none}
  body.product-id-category-294 .ffb-conduites .ffb-tab tr{display:block;padding:12px 10px;
    border-top:1px solid var(--bord)}
  body.product-id-category-294 .ffb-conduites .ffb-tab td{display:block;border:0;padding:2px 0;
    background:transparent}
  body.product-id-category-294 .ffb-conduites .ffb-tab td:first-child{font-size:16px;margin-bottom:4px}
  body.product-id-category-294 .ffb-conduites .ffb-tab td:nth-child(2)::before{
    content:"En deux mots : ";color:var(--doux);font-size:12.5px;font-weight:400}
  body.product-id-category-294 .ffb-conduites .ffb-tab td:nth-child(3)::before{
    content:"Ce que \E7 a donne : ";color:var(--doux);font-size:12.5px;font-weight:400}
  body.product-id-category-294 .ffb-conduites .ffb-tab tr.ffb-cmp-ici{background:var(--plaque)}
}

/* LE BLOC D ACHAT, SUR TELEPHONE ET TABLETTE. Sur le reste du site, sous
   768 px, .product-add-to-cart devient une barre collante CREME, et une
   regle du theme (trois identifiants, !important) y force l encre sombre
   #1A2120 sur le libelle " Quantite ". Sur ce rayon, le gabarit porte sa
   propre barre collante (.lvv-achat) et laisse .product-add-to-cart dans le
   flux, SUR LA NUIT : position static, fond transparent sur #101A12. L encre
   sombre y tombait a 1,09 : invisible. Et le bloc, rangee flex sans retour,
   serrait .product-quantity a 91 px : le bouton " Ajouter au panier "
   debordait a gauche et passait SUR le libelle.
   Mesure du 24/09 en emulation 375 px. Apres : " QUANTITE [1] " sur une
   ligne en or, le bouton pleine largeur dessous, fleches a 40 x 24. */
@media (max-width:767px){
  body.product-id-category-294 .product-add-to-cart{flex-wrap:wrap;align-items:center;gap:12px 14px}
  body.product-id-category-294 .product-add-to-cart > .control-label{margin:0}
  body.product-id-category-294 .product-add-to-cart .product-quantity{display:contents}
  body.product-id-category-294 .product-add-to-cart .product-quantity .add{flex:1 1 100%;margin:0;float:none}
  body.product-id-category-294 .product-add-to-cart .product-quantity .add .add-to-cart{width:100%}
  body.product-id-category-294 .bootstrap-touchspin .btn-touchspin{width:40px;height:24px}
  html.lvv-nuit body#product.product-id-category-294 #wrapper #add-to-cart-or-refresh
    .product-add-to-cart .control-label{color:#D2B269 !important}
}

/* LES ANCRES ATTERRISSAIENT SOUS LA BARRE DES CHAPITRES. La barre
   .lvv-chapbar est collante : 85 px de haut au bureau, 99 au telephone.
   Toucher " L analyse " posait le conteneur du chapitre a 0 et son titre a
   40 px : SOUS la barre, qu il soit au bureau ou au telephone. Les liens
   " Dans ce chapitre " visent des h3 a 84 px de marge : au ras de la barre
   au bureau, 15 px dessous au telephone. Mesure du 24/09 sur la fiche servie,
   bureau 1440 et emulation 375 : titres de chapitre a 39-40 px, barre a 85
   et 99. Apres (verifie par injection) : 119-120 px.
   Les h3 portaient deja 84 px par ".product-description h3" (deux classes,
   deux types) : la regle d ancre doit egaler cette specificite. */
body.product-id-category-294 [id^="lvv-chap-"]{scroll-margin-top:80px}
body.product-id-category-294 .product-description h3[id^="lvv-sec-"]{scroll-margin-top:100px}
@media (max-width:767px){
  body.product-id-category-294 .product-description h3[id^="lvv-sec-"]{scroll-margin-top:114px}
}

/* LES FLECHES ORPHELINES. Le theme pose .scroll-box-arrows (fleches gauche
   et droite) a cote de la liste des vignettes photo. Le gabarit a range la
   galerie dans .lvv-haut ; les fleches sont restees seules en fin de
   section.page-content, et flottaient a cote de la rangee " Au nez " sans
   rien faire defiler (trois vignettes, qui tiennent). */
body.product-id-category-294 section.page-content > .scroll-box-arrows{display:none}

/* " 11 a 13 % " se coupait avant le " % " dans l en-tete, au telephone.
   Mesure : 94 px disponibles, la valeur tient en 94 une fois insecable. */
body.product-id-category-294 .ffb-tx .v{white-space:nowrap}

/* Un chapitre sans appui prend toute la largeur : la grille reservait une
   colonne de 320 px vide, et le tableau des huit se retrouvait serre dans
   600 px avec un defilement lateral. Mesure du 23/09. */
body.product-id-category-294 .ffb-chap-corps.ffb-chap-plein{
  display:block}
body.product-id-category-294 .ffb-chap-plein .ffb-chap-mots{
  max-width:none}

/* La pastille choisie perdait son texte. A importance egale, ce sont les
   identifiants qui tranchent : la feuille de la maison habille ses listes
   depuis " #wrapper ", et gagnait malgre mon !important. Un #wrapper de plus
   suffit - c est la lecon deja ecrite pour l encre des fiches. */
#wrapper body.product-id-category-294 .ffb-cmp-q-l li.ffb-q-ici,
body.product-id-category-294 #wrapper .ffb-cmp-q-l li.ffb-q-ici,
body.product-id-category-294 .ffb .ffb-cmp-q-l li.ffb-q-ici{
  color:#FCFBF7 !important}

/* ==========================================================================
   UNE SECTION N EST QU UN CONTENEUR - jamais un bloc dessine
   --------------------------------------------------------------------------
   La convention veut qu une section porte " ffb-sec ffb-<cle> ". Sept cles
   portent AUSSI le nom d un bloc dessine a l interieur : cles, taux, cahier,
   frise, guides, encore, prevention. La section heritait donc de la mise en
   forme du bloc.

   Mesure du 23/09 sur la fiche servie : " Les taux " passait en display flex
   - la regle des deux grands taux de l en-tete - ses cinq enfants se
   rangeaient cote a cote, et la deuxieme colonne des listes libelle/valeur
   tombait a ZERO pixel. Le texte debordait de 98 px hors de sa colonne.
   Cinq autres sections heritaient d une grille ou d un retrait.

   Plutot que de renommer sept classes et d en oublier une la prochaine fois,
   on pose la regle structurelle : une section fille de " ffb-chap-mots " est
   un bloc nu. Tout le dessin vit sur ses enfants.
   ========================================================================== */
body.product-id-category-294 .ffb-chap-mots > .ffb-sec{
  display:block !important;
  grid-template-columns:none !important;
  flex-direction:initial !important;
  gap:normal !important;
  padding:0 !important;
  background:none !important;
  border:0 !important;
  max-width:none !important;
  margin:0 0 2.2rem !important}

/* La carte d une serie : vignette a gauche, texte a droite. La regle portee
   de la simulation donnait " width:100% " a la vignette, pensee pour une
   carte EN COLONNE ; dans la rangee, vignette et texte faisaient 584 px a
   eux deux dans une cellule de 292. Mesure du 23/09 : debordement de 85 px.
   La vignette est bornee, le texte peut se retrecir. */
body.product-id-category-294 .ffb-lot-c .vg{
  flex:0 0 84px;width:84px;height:84px;aspect-ratio:auto;
  object-fit:cover;border-radius:2px}
body.product-id-category-294 .ffb-lot-c .in{
  flex:1 1 auto;min-width:0}
/* La carte de la fleur COURANTE n a pas de lien (on est deja sur sa fiche) :
   vignette et texte sont poses directement dans le <li>, qui reste en
   colonne comme dans la simulation. Les sept autres portent un <a> en
   rangee. Resultat : sur chaque fiche, sa propre carte avait le titre SOUS
   la photo, les autres a cote. Mesure du 24/09 sur Mazout : ecart, hauteur
   et largeur de texte identiques aux sept autres une fois en rangee. */
body.product-id-category-294 .ffb-lot-c.ffb-lot-ici{flex-direction:row;gap:12px;align-items:flex-start}
body.product-id-category-294 .ffb-lot-c .in b,
body.product-id-category-294 .ffb-lot-c .in .g,
body.product-id-category-294 .ffb-lot-c .in .u{
  overflow-wrap:anywhere}
body.product-id-category-294 .ffb-lot{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));
  gap:10px 14px}
@media (max-width:640px){
  body.product-id-category-294 .ffb-lot{grid-template-columns:minmax(0,1fr)}
}

/* --- les six noms de familles de la roue des terpenes -------------------
   Releve du 23/09, et il a fallu une sonde qui lise le SVG pour le voir :
   mes releves precedents visaient h2, p, li, dt, dd, span... jamais
   " svg text ". Les six noms de familles etaient peints dans la couleur de
   leur famille, pensee pour les arcs, pas pour du texte :

     Terreux  2,60    Epice    3,56    Resineux 3,56
     Herbace  3,58    Floral   3,59    Agrumes  3,60

   Assombries a teinte constante jusqu a passer 4,5 sur blanc. Le codage
   couleur reste porte par les arcs, qui eux ne sont pas du texte. On ne
   touche qu au texte : les variables --tf-* gardent leur valeur pour le
   reste de la roue. */
/* Les libelles de famille de la roue ne sont PAS sur le fond de la page :
   chacun est pose sur le quartier de sa famille, une teinte translucide
   composee sur le blanc de la description (ex. agrumes : rgba(210,178,105,.34)
   sur blanc = rgb(240,229,204)). Mesure du 23/09 : contre le blanc ils
   donnent 5,15 a 5,22 et paraissent bons ; contre LEUR quartier, 4,00 a 4,37.
   Les valeurs ci-dessous tiennent 4,61 au pire sur le quartier ET sur les
   quatre fonds clairs de la maison. Troisieme fois que le fond est le piege :
   mesurer le fond REEL, pas celui de la page. */
body.product-id-category-294 .ffb svg text[fill="var(--tf-agrumes)"]{ fill:#75633C }
body.product-id-category-294 .ffb svg text[fill="var(--tf-floral)"]{ fill:#9B5836 }
body.product-id-category-294 .ffb svg text[fill="var(--tf-resineux)"]{ fill:#4F6C52 }
body.product-id-category-294 .ffb svg text[fill="var(--tf-epice)"]{ fill:#766034 }
body.product-id-category-294 .ffb svg text[fill="var(--tf-terreux)"]{ fill:#616661 }
body.product-id-category-294 .ffb svg text[fill="var(--tf-herbace)"]{ fill:#5E6857 }
/* FIN GABARIT FICHE - FLEURS FRANCAISES BIO (rayon 294) */

/* DEBUT LA ROUE DES TERPENES (page CMS et fiches) - pose et revu le 2026-09-22 */
/* ====================================================================
   LA ROUE DES TERPENES — regles pour lvv.css (module lvvstyles).

   Elles ne peuvent PAS vivre dans la page : PrestaShop retire toute
   balise <style> du contenu d une page CMS (mesure du 16/09 sur trois
   guides servis). D ou ce fichier.

   L etat est dans l ADRESSE : #t-<molecule>. Aucun script.
   ==================================================================== */

:root{
  --tf-agrumes:#84682B; --tb-agrumes:rgba(210,178,105,.34);
  --tf-floral:#B94B13; --tb-floral:rgba(193,84,28,.13);
  --tf-resineux:#2E4A32; --tb-resineux:rgba(46,74,50,.14);
  --tf-epice:#6B4E17; --tb-epice:rgba(117,89,31,.18);
  --tf-terreux:#1A2120; --tb-terreux:rgba(26,33,32,.12);
  --tf-herbace:#657158; --tb-herbace:rgba(159,176,140,.30);
}
html.lvv-nuit{
  --tf-agrumes:#9C8450; --tb-agrumes:rgba(210,178,105,.20);
  --tf-floral:#C67146; --tb-floral:rgba(198,113,70,.20);
  --tf-resineux:#6A916F; --tb-resineux:rgba(106,145,111,.20);
  --tf-epice:#A38347; --tb-epice:rgba(163,131,71,.20);
  --tf-terreux:#9AA39B; --tb-terreux:rgba(154,163,155,.18);
  --tf-herbace:#808B75; --tb-herbace:rgba(128,139,117,.22);
}

.lvv-roue{margin:28px 0}
.lvv-roue-dessin{max-width:560px;margin:0 auto}
.lvv-roue-svg{width:100%;height:auto;color:#1A2120}

/* LE THEME NUIT. Sans ces quatre lignes, l encre reste a #1A2120 — du noir
   sur le fond #101A12 de la nuit. Releve le 22/09 dans lvv.css : la maison
   ecrit en #EFDCA8, attenue en #9FB08C, et file ses bords en #24331F.
   Contrastes calcules sur le fond nuit : 13,13 / 7,69 / 1,33 (un filet
   n est pas du texte). Les six familles y tiennent de 4,95 a 6,86. */
/* La couleur de famille passe par une CLASSE, jamais par un style= en ligne :
   un style en ligne bat toute regle, et la variante nuit ne prenait donc
   jamais. Mesure du 22/09 sur une fiche en theme nuit : l etiquette sortait
   a #84682B — la valeur du JOUR — pour 3,39 de contraste. */
.lvv-roue-f-agrumes{color:var(--tf-agrumes)}
.lvv-roue-f-floral{color:var(--tf-floral)}
.lvv-roue-f-resineux{color:var(--tf-resineux)}
.lvv-roue-f-epice{color:var(--tf-epice)}
.lvv-roue-f-terreux{color:var(--tf-terreux)}
.lvv-roue-f-herbace{color:var(--tf-herbace)}

/* LE THEME NUIT, EN ENTIER. La premiere passe n avait couvert que le SVG et
   les notes : releve du 22/09 sur une fiche servie, fond #101A12 — le corps
   des panneaux tombait a 1,09 (du noir sur du noir), les titres a 1,82.
   Contrastes apres correction : titres 13,13 ; corps 7,69 ; familles de
   4,95 a 6,86 ; filets 1,33, mais un filet n est pas du texte. */
/* Le « !important » n est pas une facilite : la maison force
   « h1, .h1, h2, .h2, h3, .h3 { color:#2E4A32 !important } ». Sans le mien,
   les titres de la roue sortaient a 1,82 de contraste sur le fond nuit,
   quelle que soit ma specificite — un !important ne se bat qu avec un autre.
   Mesure du 22/09 sur une fiche servie. */
html.lvv-nuit .lvv-roue h2,
html.lvv-nuit .lvv-roue h3{color:#EFDCA8 !important}
/* Les liens n avaient aucune regle nuit : ils heritaient de l or #75591F,
   soit 2,72 sur le fond nuit. #D2B269 est l or clair de la maison, 8,75.
   RESTREINT AUX NOTES, et ce n est pas un detail : vise sur tous les « a »,
   la regle battait .lvv-roue-f-<famille> (0,2,2 contre 0,1,0) et les vingt
   pastilles viraient toutes a l or. Le releve disait « zero sous 4,5 » et le
   code couleur des familles avait disparu — un contraste correct ne dit rien
   d une couleur juste. */
html.lvv-nuit .lvv-roue-note a,
html.lvv-nuit .lvv-roue-meta a{color:#D2B269}
html.lvv-nuit .lvv-roue p,
html.lvv-nuit .lvv-roue li,
html.lvv-nuit .lvv-roue-arome,
html.lvv-nuit .lvv-roue-ou{color:#9FB08C}
html.lvv-nuit .lvv-roue-arome b,
html.lvv-nuit .lvv-roue-ou b{color:#EFDCA8}
html.lvv-nuit .lvv-roue-svg{color:#EFDCA8}
html.lvv-nuit .lvv-roue-meta,
html.lvv-nuit .lvv-roue-note{color:#9FB08C}
html.lvv-nuit .lvv-roue-t{border-top-color:#24331F}
html.lvv-nuit .lvv-roue-chips a{border-color:#24331F}
.lvv-mol{cursor:pointer}
.lvv-mol path{transition:opacity .15s ease}
.lvv-mol:hover path{opacity:.72}
.lvv-mol:focus-visible path{outline:2px solid #B08D3F;outline-offset:1px}

/* Un panneau par molecule : celui que l adresse designe, et le premier
   tant qu elle n en designe aucun. */
.lvv-roue-t{display:none;margin-top:22px;padding-top:18px;
  border-top:1px solid rgba(46,74,50,.16)}
.lvv-roue-t:target{display:block}
.lvv-roue-liste:not(:has(:target)) .lvv-roue-t:first-child{display:block}
.lvv-roue-t h3{margin:2px 0 6px;font-size:21px}
.lvv-roue-fam{margin:0;font-size:10.5px;font-weight:600;letter-spacing:.2em;
  text-transform:uppercase}
.lvv-roue-arome{margin:0 0 10px;font-size:15px;line-height:1.55;max-width:56ch}
.lvv-roue-ou{margin:0 0 6px;font-size:14px;line-height:1.5;max-width:66ch}
/* Les sources avec leur planche, comme .ff-source dans la simulation : une
   planche de 26 px, le mot a cote, un filet entre chaque. Les mots sans
   planche gardent un point, pour que la rangee reste reguliere. */
.lvv-roue-sources{display:flex;flex-wrap:wrap;gap:10px 14px;margin:0 0 8px}
.lvv-roue-src{display:inline-flex;align-items:center;gap:8px;font-size:14px}
.lvv-roue-src + .lvv-roue-src{border-left:1px solid rgba(46,74,50,.16);
  padding-left:14px}
.lvv-roue-src img{height:26px;width:auto;display:block}
.lvv-roue-src .pt{width:26px;height:26px;border-radius:50%;
  background:#B08D3F;opacity:.25;display:block}
.lvv-roue-dans{margin:0 0 6px;font-size:13.5px;line-height:1.5}
.lvv-roue-dans b{display:block;font-size:9.5px;font-weight:600;
  letter-spacing:.16em;text-transform:uppercase;color:#75591F;margin:0 0 2px}
.lvv-roue-dans a{color:#75591F}
html.lvv-nuit .lvv-roue-src + .lvv-roue-src{border-left-color:rgba(210,178,105,.22)}
html.lvv-nuit .lvv-roue-dans{color:#9FB08C}
html.lvv-nuit .lvv-roue-dans b,html.lvv-nuit .lvv-roue-dans a{color:#D2B269}
.lvv-roue-meta{margin:0;font-size:12.5px;color:rgba(26,33,32,.72)}
.lvv-roue-note{margin:14px 0 0;font-size:12.5px;line-height:1.5;
  color:rgba(26,33,32,.72)}

.lvv-roue-chips{list-style:none;display:none;flex-wrap:wrap;gap:5px;
  margin:18px 0 0;padding:0}
.lvv-roue-chips a{display:inline-block;border:1px solid rgba(46,74,50,.16);
  border-radius:999px;padding:5px 11px;font-size:12.5px;font-weight:600;
  text-decoration:none}

/* Sous 620 px aucune etiquette tournee n est lisible : les pastilles
   prennent le relais, et les noms quittent la roue. */
@media (max-width:620px){
  .lvv-roue-chips{display:flex}
  .lvv-mol text{display:none}
  .lvv-roue-dessin{max-width:none}
}

/* La version des fiches produit : plus petite, panneau reduit. */
.lvv-roue-petite .lvv-roue-dessin{max-width:400px}
.lvv-roue-petite .lvv-roue-t h3{font-size:18px}
.lvv-roue-petite .lvv-roue-arome{font-size:14px}

/* La part designee se remplit du trait de sa famille. */
.lvv-roue:has(#t-d-limonene:target) .lvv-mol-d-limonene path{fill:var(--tf-agrumes)}
.lvv-roue:has(#tp-d-limonene:target) .lvv-mol-d-limonene path{fill:var(--tf-agrumes)}
.lvv-roue:has(#t-valencene:target) .lvv-mol-valencene path{fill:var(--tf-agrumes)}
.lvv-roue:has(#tp-valencene:target) .lvv-mol-valencene path{fill:var(--tf-agrumes)}
.lvv-roue:has(#t-geraniol:target) .lvv-mol-geraniol path{fill:var(--tf-agrumes)}
.lvv-roue:has(#tp-geraniol:target) .lvv-mol-geraniol path{fill:var(--tf-agrumes)}
.lvv-roue:has(#t-linalol:target) .lvv-mol-linalol path{fill:var(--tf-floral)}
.lvv-roue:has(#tp-linalol:target) .lvv-mol-linalol path{fill:var(--tf-floral)}
.lvv-roue:has(#t-alpha-bisabolol:target) .lvv-mol-alpha-bisabolol path{fill:var(--tf-floral)}
.lvv-roue:has(#tp-alpha-bisabolol:target) .lvv-mol-alpha-bisabolol path{fill:var(--tf-floral)}
.lvv-roue:has(#t-nerolidol:target) .lvv-mol-nerolidol path{fill:var(--tf-floral)}
.lvv-roue:has(#tp-nerolidol:target) .lvv-mol-nerolidol path{fill:var(--tf-floral)}
.lvv-roue:has(#t-terpineol:target) .lvv-mol-terpineol path{fill:var(--tf-floral)}
.lvv-roue:has(#tp-terpineol:target) .lvv-mol-terpineol path{fill:var(--tf-floral)}
.lvv-roue:has(#t-alpha-pinene:target) .lvv-mol-alpha-pinene path{fill:var(--tf-resineux)}
.lvv-roue:has(#tp-alpha-pinene:target) .lvv-mol-alpha-pinene path{fill:var(--tf-resineux)}
.lvv-roue:has(#t-beta-pinene:target) .lvv-mol-beta-pinene path{fill:var(--tf-resineux)}
.lvv-roue:has(#tp-beta-pinene:target) .lvv-mol-beta-pinene path{fill:var(--tf-resineux)}
.lvv-roue:has(#t-terpinolene:target) .lvv-mol-terpinolene path{fill:var(--tf-resineux)}
.lvv-roue:has(#tp-terpinolene:target) .lvv-mol-terpinolene path{fill:var(--tf-resineux)}
.lvv-roue:has(#t-guaiol:target) .lvv-mol-guaiol path{fill:var(--tf-resineux)}
.lvv-roue:has(#tp-guaiol:target) .lvv-mol-guaiol path{fill:var(--tf-resineux)}
.lvv-roue:has(#t-beta-caryophyllene:target) .lvv-mol-beta-caryophyllene path{fill:var(--tf-epice)}
.lvv-roue:has(#tp-beta-caryophyllene:target) .lvv-mol-beta-caryophyllene path{fill:var(--tf-epice)}
.lvv-roue:has(#t-alpha-humulene:target) .lvv-mol-alpha-humulene path{fill:var(--tf-epice)}
.lvv-roue:has(#tp-alpha-humulene:target) .lvv-mol-alpha-humulene path{fill:var(--tf-epice)}
.lvv-roue:has(#t-sabinene:target) .lvv-mol-sabinene path{fill:var(--tf-epice)}
.lvv-roue:has(#tp-sabinene:target) .lvv-mol-sabinene path{fill:var(--tf-epice)}
.lvv-roue:has(#t-camphene:target) .lvv-mol-camphene path{fill:var(--tf-epice)}
.lvv-roue:has(#tp-camphene:target) .lvv-mol-camphene path{fill:var(--tf-epice)}
.lvv-roue:has(#t-beta-myrcene:target) .lvv-mol-beta-myrcene path{fill:var(--tf-terreux)}
.lvv-roue:has(#tp-beta-myrcene:target) .lvv-mol-beta-myrcene path{fill:var(--tf-terreux)}
.lvv-roue:has(#t-phytol:target) .lvv-mol-phytol path{fill:var(--tf-terreux)}
.lvv-roue:has(#tp-phytol:target) .lvv-mol-phytol path{fill:var(--tf-terreux)}
.lvv-roue:has(#t-borneol:target) .lvv-mol-borneol path{fill:var(--tf-terreux)}
.lvv-roue:has(#tp-borneol:target) .lvv-mol-borneol path{fill:var(--tf-terreux)}
.lvv-roue:has(#t-ocimene:target) .lvv-mol-ocimene path{fill:var(--tf-herbace)}
.lvv-roue:has(#tp-ocimene:target) .lvv-mol-ocimene path{fill:var(--tf-herbace)}
.lvv-roue:has(#t-eucalyptol:target) .lvv-mol-eucalyptol path{fill:var(--tf-herbace)}
.lvv-roue:has(#tp-eucalyptol:target) .lvv-mol-eucalyptol path{fill:var(--tf-herbace)}

/* LE PERIMETRE DES DEUX ROUES. Les blocs HTML Box 33 (displayFooterAfter)
   et 34 (sous la description produit) s affichent sur TOUTES les pages de
   leur crochet. Leur version du 22/09 portait une enveloppe masquee et un
   script qui ne les revelait que sur la page CMS 43 et sur les fiches du
   rayon 294. Republies le 23/09 depuis la sortie du nouveau montage, qui ne
   porte plus cette garde : depuis, la roue autonome (1 160 px) sortait en
   bas de la page d accueil et de chaque fiche, et la roue des fiches sur
   les fleurs du rayon 243. Signale le 24/09 par la session du rayon 243.
   La garde vit desormais ICI, et non dans les blocs : une repose du contenu
   d un bloc ne peut plus la perdre. */
body:not(.cms-id-43) .lvv-roue.lvv-roue-page{display:none !important}
body:not(.product-id-category-294) .lvv-roue.lvv-roue-fiche,
body:not(.product-id-category-294) .lvv-roue.lvv-roue-petite{display:none !important}

/* LES PICTOS DE SOURCES, DANS LA ROUE DES FICHES. .lvv-roue-src img les
   pose a 26 px de haut (0,1,1). Sur les fiches du rayon 294, la roue est
   deplacee DANS la description, sous .ffb, ou " .ffb img{height:auto} "
   (0,2,2) la bat : citron, orange, romarin sortaient a 128 px, leur taille
   de fichier, sous " On le retrouve, a l identique, dans ". Mesure du 24/09
   sur la fiche servie, bureau et telephone ; la roue de la page CMS 43, hors
   de .ffb, n etait pas touchee. */
body.product-id-category-294 .ffb .lvv-roue-src img{height:26px;width:auto}

/* LE DESSIN, AU TELEPHONE. Sous 620 px les noms de molecules quittent la
   roue (regle du 22/09, plus haut) ; mais le viewBox leur garde leur place,
   et l anneau ne faisait que 160 px au milieu d une boite de 299. On
   l agrandit : x1,7 donne 272 px, et il reste dans sa boite (mesure).
   RESTREINT au dessin actuel (viewBox 560) : la nouvelle roue de la session
   " Image roue des terpenes " n a plus d etiquettes autour et remplit deja
   sa boite (viewBox 520, rayon 254) ; x1,7 la ferait deborder de 70 %. Des
   qu elle est posee, cette regle ne vise plus rien. */
@media (max-width:620px){
  .lvv-roue .lvv-roue-dessin:has(svg[viewBox="0 0 560 560"]){overflow:hidden}
  .lvv-roue .lvv-roue-dessin svg[viewBox="0 0 560 560"]{transform:scale(1.7);transform-origin:50% 50%}
}
/* FIN LA ROUE DES TERPENES (page CMS et fiches) */

/* DEBUT FLEURS CHAPITRES - FLEURS DU RAYON 243 (15 fiches ; les 5 Monki passees au gabarit Tomine le 2026-09-24, v145) - prepare le 2026-09-24
   Regles des chapitres du gabarit Tomine, recopiees pour ces fiches.
   Tirees de lvv.css au commit 2d08a9d fiches Tomine : la carte de la fleur courante en rangee comme les autres (lvv.css v128, module 1.2.19 — A POSER)
   par mise-a-niveau-fleurs-2026-09-24/feuille/extraire.py */
body:is(.product-id-1217,.product-id-1220,.product-id-1515,.product-id-1951,.product-id-1992,.product-id-2119,.product-id-2310,.product-id-2342,.product-id-2398,.product-id-2421,.product-id-2422,.product-id-2438,.product-id-2581,.product-id-2582,.product-id-2670){--f-titre:Marcellus,Georgia,'Times New Roman',serif;
  --f-texte:'Source Sans 3',-apple-system,'Segoe UI',Helvetica,Arial,sans-serif;
  --encre:#1A2120; --vert:#2E4A32; --or:#B08D3F; --or-texte:#75591F;
  --or-clair:#D2B269; --or-pale:#EFDCA8; --creme:#FCFBF7; --papier:#F7F2E4;
  --plaque:#F5F2EA; --bord:rgba(46,74,50,.16); --bord-or:rgba(176,141,63,.45);
  --doux:rgba(26,33,32,.72); --or-survol:#8C6E2E; --surtitre:#75591F;}
body:is(.product-id-1217,.product-id-1220,.product-id-1515,.product-id-1951,.product-id-1992,.product-id-2119,.product-id-2310,.product-id-2342,.product-id-2398,.product-id-2421,.product-id-2422,.product-id-2438,.product-id-2581,.product-id-2582,.product-id-2670) .product-description h3{font-family:var(--f-titre);font-weight:400;font-size:23px;
  color:var(--encre);letter-spacing:.012em;
  margin:34px 0 12px;padding-left:36px;position:relative;
  scroll-margin-top:84px}
body:is(.product-id-1217,.product-id-1220,.product-id-1515,.product-id-1951,.product-id-1992,.product-id-2119,.product-id-2310,.product-id-2342,.product-id-2398,.product-id-2421,.product-id-2422,.product-id-2438,.product-id-2581,.product-id-2582,.product-id-2670) .product-description h3::before{content:"";position:absolute;left:0;top:.14em;width:26px;height:26px;
  background:url(/img/cms/embleme-or.png) center/contain no-repeat;
  opacity:.85}
body:is(.product-id-1217,.product-id-1220,.product-id-1515,.product-id-1951,.product-id-1992,.product-id-2119,.product-id-2310,.product-id-2342,.product-id-2398,.product-id-2421,.product-id-2422,.product-id-2438,.product-id-2581,.product-id-2582,.product-id-2670) .product-description p{max-width:70ch;line-height:1.62}
body:is(.product-id-1217,.product-id-1220,.product-id-1515,.product-id-1951,.product-id-1992,.product-id-2119,.product-id-2310,.product-id-2342,.product-id-2398,.product-id-2421,.product-id-2422,.product-id-2438,.product-id-2581,.product-id-2582,.product-id-2670) .lvv-fil{position:sticky;top:0;z-index:5;display:flex;align-items:baseline;
  gap:12px 16px;flex-wrap:wrap;margin:0 0 26px;padding:12px 0;
  background:var(--creme);border-top:1px solid var(--bord-or);
  border-bottom:1px solid var(--bord)}
body:is(.product-id-1217,.product-id-1220,.product-id-1515,.product-id-1951,.product-id-1992,.product-id-2119,.product-id-2310,.product-id-2342,.product-id-2398,.product-id-2421,.product-id-2422,.product-id-2438,.product-id-2581,.product-id-2582,.product-id-2670) .lvv-fil .t{flex:0 0 auto;font-size:10.5px;font-weight:600;letter-spacing:.24em;
  text-transform:uppercase;color:var(--or-texte)}
body:is(.product-id-1217,.product-id-1220,.product-id-1515,.product-id-1951,.product-id-1992,.product-id-2119,.product-id-2310,.product-id-2342,.product-id-2398,.product-id-2421,.product-id-2422,.product-id-2438,.product-id-2581,.product-id-2582,.product-id-2670) .lvv-fil ol{list-style:none;display:flex;flex-wrap:wrap;gap:4px 6px;margin:0;padding:0}
body:is(.product-id-1217,.product-id-1220,.product-id-1515,.product-id-1951,.product-id-1992,.product-id-2119,.product-id-2310,.product-id-2342,.product-id-2398,.product-id-2421,.product-id-2422,.product-id-2438,.product-id-2581,.product-id-2582,.product-id-2670) .lvv-fil a{display:inline-block;border:1px solid var(--bord);border-radius:999px;
  padding:5px 13px;font-size:13px;line-height:1.25;color:var(--doux);
  text-decoration:none;transition:color .18s ease,border-color .18s ease}
body:is(.product-id-1217,.product-id-1220,.product-id-1515,.product-id-1951,.product-id-1992,.product-id-2119,.product-id-2310,.product-id-2342,.product-id-2398,.product-id-2421,.product-id-2422,.product-id-2438,.product-id-2581,.product-id-2582,.product-id-2670) .lvv-fil a:hover{color:var(--encre);border-color:var(--or)}
body:is(.product-id-1217,.product-id-1220,.product-id-1515,.product-id-1951,.product-id-1992,.product-id-2119,.product-id-2310,.product-id-2342,.product-id-2398,.product-id-2421,.product-id-2422,.product-id-2438,.product-id-2581,.product-id-2582,.product-id-2670) .lvv-fil a[aria-current]{color:var(--or-texte);font-weight:600;border-color:var(--or);
  background:var(--plaque)}
body:is(.product-id-1217,.product-id-1220,.product-id-1515,.product-id-1951,.product-id-1992,.product-id-2119,.product-id-2310,.product-id-2342,.product-id-2398,.product-id-2421,.product-id-2422,.product-id-2438,.product-id-2581,.product-id-2582,.product-id-2670) .ffb-def{display:grid;grid-template-columns:minmax(9rem,14rem) minmax(0,1fr);
  gap:.45rem 1.2rem;margin:.9rem 0}
body:is(.product-id-1217,.product-id-1220,.product-id-1515,.product-id-1951,.product-id-1992,.product-id-2119,.product-id-2310,.product-id-2342,.product-id-2398,.product-id-2421,.product-id-2422,.product-id-2438,.product-id-2581,.product-id-2582,.product-id-2670) .ffb-def dt{font-weight:600;color:#75591F;font-size:.93rem;line-height:1.5}
body:is(.product-id-1217,.product-id-1220,.product-id-1515,.product-id-1951,.product-id-1992,.product-id-2119,.product-id-2310,.product-id-2342,.product-id-2398,.product-id-2421,.product-id-2422,.product-id-2438,.product-id-2581,.product-id-2582,.product-id-2670) .ffb-def dd{margin:0;color:#1A2120;line-height:1.55}
@media (max-width:640px){
body:is(.product-id-1217,.product-id-1220,.product-id-1515,.product-id-1951,.product-id-1992,.product-id-2119,.product-id-2310,.product-id-2342,.product-id-2398,.product-id-2421,.product-id-2422,.product-id-2438,.product-id-2581,.product-id-2582,.product-id-2670) .ffb-def{grid-template-columns:minmax(0,1fr);
    gap:.15rem}
body:is(.product-id-1217,.product-id-1220,.product-id-1515,.product-id-1951,.product-id-1992,.product-id-2119,.product-id-2310,.product-id-2342,.product-id-2398,.product-id-2421,.product-id-2422,.product-id-2438,.product-id-2581,.product-id-2582,.product-id-2670) .ffb-def dd{margin:0 0 .7rem}
}
body:is(.product-id-1217,.product-id-1220,.product-id-1515,.product-id-1951,.product-id-1992,.product-id-2119,.product-id-2310,.product-id-2342,.product-id-2398,.product-id-2421,.product-id-2422,.product-id-2438,.product-id-2581,.product-id-2582,.product-id-2670) .product-description.lvv-repli{max-height:none !important;
  overflow:visible !important;}
body:is(.product-id-1217,.product-id-1220,.product-id-1515,.product-id-1951,.product-id-1992,.product-id-2119,.product-id-2310,.product-id-2342,.product-id-2398,.product-id-2421,.product-id-2422,.product-id-2438,.product-id-2581,.product-id-2582,.product-id-2670) .lvv-repli-bouton{display:none !important;}
body:is(.product-id-1217,.product-id-1220,.product-id-1515,.product-id-1951,.product-id-1992,.product-id-2119,.product-id-2310,.product-id-2342,.product-id-2398,.product-id-2421,.product-id-2422,.product-id-2438,.product-id-2581,.product-id-2582,.product-id-2670) .ffb-def dd{font-size:1rem !important;
  line-height:1.55 !important;}
body:is(.product-id-1217,.product-id-1220,.product-id-1515,.product-id-1951,.product-id-1992,.product-id-2119,.product-id-2310,.product-id-2342,.product-id-2398,.product-id-2421,.product-id-2422,.product-id-2438,.product-id-2581,.product-id-2582,.product-id-2670) .ffb-def dt{font-size:.93rem !important;}
body:is(.product-id-1217,.product-id-1220,.product-id-1515,.product-id-1951,.product-id-1992,.product-id-2119,.product-id-2310,.product-id-2342,.product-id-2398,.product-id-2421,.product-id-2422,.product-id-2438,.product-id-2581,.product-id-2582,.product-id-2670) .ffb-saveurs{list-style:none;padding:0;margin:1rem 0 1.2rem;
  display:flex;flex-wrap:wrap;gap:1.4rem}
body:is(.product-id-1217,.product-id-1220,.product-id-1515,.product-id-1951,.product-id-1992,.product-id-2119,.product-id-2310,.product-id-2342,.product-id-2398,.product-id-2421,.product-id-2422,.product-id-2438,.product-id-2581,.product-id-2582,.product-id-2670) .ffb-saveurs li{display:flex;flex-direction:column;align-items:center;gap:.35rem;
  width:5.4rem;text-align:center}
body:is(.product-id-1217,.product-id-1220,.product-id-1515,.product-id-1951,.product-id-1992,.product-id-2119,.product-id-2310,.product-id-2342,.product-id-2398,.product-id-2421,.product-id-2422,.product-id-2438,.product-id-2581,.product-id-2582,.product-id-2670) .ffb-picto{width:64px;height:64px;object-fit:contain;display:block}
body:is(.product-id-1217,.product-id-1220,.product-id-1515,.product-id-1951,.product-id-1992,.product-id-2119,.product-id-2310,.product-id-2342,.product-id-2398,.product-id-2421,.product-id-2422,.product-id-2438,.product-id-2581,.product-id-2582,.product-id-2670) .ffb-saveurs span{font-size:.82rem;line-height:1.25;color:#75591F;font-weight:600;
  text-align:center !important}
body:is(.product-id-1217,.product-id-1220,.product-id-1515,.product-id-1951,.product-id-1992,.product-id-2119,.product-id-2310,.product-id-2342,.product-id-2398,.product-id-2421,.product-id-2422,.product-id-2438,.product-id-2581,.product-id-2582,.product-id-2670) .ffb-chap-nav{display:none !important;}
body:is(.product-id-1217,.product-id-1220,.product-id-1515,.product-id-1951,.product-id-1992,.product-id-2119,.product-id-2310,.product-id-2342,.product-id-2398,.product-id-2421,.product-id-2422,.product-id-2438,.product-id-2581,.product-id-2582,.product-id-2670) .lvv-chapbar{position:sticky;top:0;z-index:6;margin:0 0 8px;padding:10px 0;
  background:var(--creme);border-bottom:1px solid var(--bord-or);
  overflow-x:auto;-webkit-overflow-scrolling:touch}
body:is(.product-id-1217,.product-id-1220,.product-id-1515,.product-id-1951,.product-id-1992,.product-id-2119,.product-id-2310,.product-id-2342,.product-id-2398,.product-id-2421,.product-id-2422,.product-id-2438,.product-id-2581,.product-id-2582,.product-id-2670) .lvv-chapbar ol{list-style:none;display:flex;gap:0 26px;margin:0;padding:0;
  white-space:nowrap;min-width:max-content}
body:is(.product-id-1217,.product-id-1220,.product-id-1515,.product-id-1951,.product-id-1992,.product-id-2119,.product-id-2310,.product-id-2342,.product-id-2398,.product-id-2421,.product-id-2422,.product-id-2438,.product-id-2581,.product-id-2582,.product-id-2670) .lvv-chapbar a{display:inline-block;padding:4px 0 8px;font-family:var(--f-titre);
  font-size:15px;line-height:1.2;color:var(--doux);text-decoration:none;
  border-bottom:2px solid transparent;
  transition:color .18s ease,border-color .18s ease}
body:is(.product-id-1217,.product-id-1220,.product-id-1515,.product-id-1951,.product-id-1992,.product-id-2119,.product-id-2310,.product-id-2342,.product-id-2398,.product-id-2421,.product-id-2422,.product-id-2438,.product-id-2581,.product-id-2582,.product-id-2670) .lvv-chapbar a:hover{color:var(--encre)}
body:is(.product-id-1217,.product-id-1220,.product-id-1515,.product-id-1951,.product-id-1992,.product-id-2119,.product-id-2310,.product-id-2342,.product-id-2398,.product-id-2421,.product-id-2422,.product-id-2438,.product-id-2581,.product-id-2582,.product-id-2670) .lvv-chapbar a[aria-current]{color:var(--or-texte);border-bottom-color:var(--or)}
@media (max-width:767px){
body:is(.product-id-1217,.product-id-1220,.product-id-1515,.product-id-1951,.product-id-1992,.product-id-2119,.product-id-2310,.product-id-2342,.product-id-2398,.product-id-2421,.product-id-2422,.product-id-2438,.product-id-2581,.product-id-2582,.product-id-2670) .lvv-chapbar a{padding:12px 0 14px;min-height:44px;box-sizing:border-box}
body:is(.product-id-1217,.product-id-1220,.product-id-1515,.product-id-1951,.product-id-1992,.product-id-2119,.product-id-2310,.product-id-2342,.product-id-2398,.product-id-2421,.product-id-2422,.product-id-2438,.product-id-2581,.product-id-2582,.product-id-2670) .lvv-chapbar ol{gap:0 20px}
}
body:is(.product-id-1217,.product-id-1220,.product-id-1515,.product-id-1951,.product-id-1992,.product-id-2119,.product-id-2310,.product-id-2342,.product-id-2398,.product-id-2421,.product-id-2422,.product-id-2438,.product-id-2581,.product-id-2582,.product-id-2670) h2.ffb-chap-titre,
body:is(.product-id-1217,.product-id-1220,.product-id-1515,.product-id-1951,.product-id-1992,.product-id-2119,.product-id-2310,.product-id-2342,.product-id-2398,.product-id-2421,.product-id-2422,.product-id-2438,.product-id-2581,.product-id-2582,.product-id-2670) .ffb-chap-titre{font-family:var(--f-titre) !important;font-weight:400 !important;
  font-size:31px !important;line-height:1.16 !important;
  color:var(--encre) !important;letter-spacing:.008em;
  margin:0 0 1.6rem !important;padding-left:40px;position:relative;
  max-width:none !important;scroll-margin-top:88px}
body:is(.product-id-1217,.product-id-1220,.product-id-1515,.product-id-1951,.product-id-1992,.product-id-2119,.product-id-2310,.product-id-2342,.product-id-2398,.product-id-2421,.product-id-2422,.product-id-2438,.product-id-2581,.product-id-2582,.product-id-2670) .ffb-chap-titre::before{content:"";position:absolute;left:0;top:.1em;width:30px;height:30px;
  background:url(/img/cms/embleme-or.png) center/contain no-repeat;opacity:.9}
body:is(.product-id-1217,.product-id-1220,.product-id-1515,.product-id-1951,.product-id-1992,.product-id-2119,.product-id-2310,.product-id-2342,.product-id-2398,.product-id-2421,.product-id-2422,.product-id-2438,.product-id-2581,.product-id-2582,.product-id-2670) .lvv-souffil{display:flex;align-items:baseline;gap:10px 18px;flex-wrap:wrap;
  margin:0 0 1.8rem;padding:0 0 1rem;
  border-bottom:1px dotted var(--bord-or)}
body:is(.product-id-1217,.product-id-1220,.product-id-1515,.product-id-1951,.product-id-1992,.product-id-2119,.product-id-2310,.product-id-2342,.product-id-2398,.product-id-2421,.product-id-2422,.product-id-2438,.product-id-2581,.product-id-2582,.product-id-2670) .lvv-souffil .t{flex:0 0 auto;font-size:10px;font-weight:600;letter-spacing:.24em;
  text-transform:uppercase;color:var(--or-texte)}
body:is(.product-id-1217,.product-id-1220,.product-id-1515,.product-id-1951,.product-id-1992,.product-id-2119,.product-id-2310,.product-id-2342,.product-id-2398,.product-id-2421,.product-id-2422,.product-id-2438,.product-id-2581,.product-id-2582,.product-id-2670) .lvv-souffil ol{list-style:none;display:flex;flex-wrap:wrap;gap:6px 8px;margin:0;padding:0}
body:is(.product-id-1217,.product-id-1220,.product-id-1515,.product-id-1951,.product-id-1992,.product-id-2119,.product-id-2310,.product-id-2342,.product-id-2398,.product-id-2421,.product-id-2422,.product-id-2438,.product-id-2581,.product-id-2582,.product-id-2670) .lvv-souffil a{display:inline-flex;align-items:center;gap:7px;
  border:1px solid var(--bord);border-radius:999px;padding:4px 12px 4px 5px;
  font-size:12.5px;line-height:1.25;color:var(--doux);text-decoration:none;
  transition:color .18s ease,border-color .18s ease}
body:is(.product-id-1217,.product-id-1220,.product-id-1515,.product-id-1951,.product-id-1992,.product-id-2119,.product-id-2310,.product-id-2342,.product-id-2398,.product-id-2421,.product-id-2422,.product-id-2438,.product-id-2581,.product-id-2582,.product-id-2670) .lvv-souffil a i{display:inline-flex;align-items:center;justify-content:center;
  width:18px;height:18px;border-radius:50%;background:var(--plaque);
  color:var(--or-texte);font-style:normal;font-size:10.5px;font-weight:700}
body:is(.product-id-1217,.product-id-1220,.product-id-1515,.product-id-1951,.product-id-1992,.product-id-2119,.product-id-2310,.product-id-2342,.product-id-2398,.product-id-2421,.product-id-2422,.product-id-2438,.product-id-2581,.product-id-2582,.product-id-2670) .lvv-souffil a:hover{color:var(--encre);border-color:var(--or)}
body:is(.product-id-1217,.product-id-1220,.product-id-1515,.product-id-1951,.product-id-1992,.product-id-2119,.product-id-2310,.product-id-2342,.product-id-2398,.product-id-2421,.product-id-2422,.product-id-2438,.product-id-2581,.product-id-2582,.product-id-2670) .lvv-souffil a[aria-current]{color:var(--or-texte);font-weight:600;border-color:var(--or)}
body:is(.product-id-1217,.product-id-1220,.product-id-1515,.product-id-1951,.product-id-1992,.product-id-2119,.product-id-2310,.product-id-2342,.product-id-2398,.product-id-2421,.product-id-2422,.product-id-2438,.product-id-2581,.product-id-2582,.product-id-2670) .lvv-souffil a[aria-current] i{background:var(--or);color:#FCFBF7}
body:is(.product-id-1217,.product-id-1220,.product-id-1515,.product-id-1951,.product-id-1992,.product-id-2119,.product-id-2310,.product-id-2342,.product-id-2398,.product-id-2421,.product-id-2422,.product-id-2438,.product-id-2581,.product-id-2582,.product-id-2670){--e1:4px; --e2:8px; --e3:12px; --e4:16px; --e5:24px; --e6:32px; --e7:40px;
  --titre:#1A2120; --carte:#FFFFFF; --texte:#1A2120;
  --f-texte:'Source Sans 3',-apple-system,'Segoe UI',Helvetica,Arial,sans-serif;}
body:is(.product-id-1217,.product-id-1220,.product-id-1515,.product-id-1951,.product-id-1992,.product-id-2119,.product-id-2310,.product-id-2342,.product-id-2398,.product-id-2421,.product-id-2422,.product-id-2438,.product-id-2581,.product-id-2582,.product-id-2670) img.ffb-picto{width:64px;height:64px;object-fit:contain;display:block}
body:is(.product-id-1217,.product-id-1220,.product-id-1515,.product-id-1951,.product-id-1992,.product-id-2119,.product-id-2310,.product-id-2342,.product-id-2398,.product-id-2421,.product-id-2422,.product-id-2438,.product-id-2581,.product-id-2582,.product-id-2670) .lvv-chapbar .lvv-sceau{width:26px;height:26px;flex:0 0 auto;opacity:.9;margin-right:4px}
body:is(.product-id-1217,.product-id-1220,.product-id-1515,.product-id-1951,.product-id-1992,.product-id-2119,.product-id-2310,.product-id-2342,.product-id-2398,.product-id-2421,.product-id-2422,.product-id-2438,.product-id-2581,.product-id-2582,.product-id-2670) .ffb-nez{margin:1.1rem 0 0;padding:.9rem 0 0;border-top:1px solid var(--bord)}
body:is(.product-id-1217,.product-id-1220,.product-id-1515,.product-id-1951,.product-id-1992,.product-id-2119,.product-id-2310,.product-id-2342,.product-id-2398,.product-id-2421,.product-id-2422,.product-id-2438,.product-id-2581,.product-id-2582,.product-id-2670) .ffb-nez-t{margin:0 0 .6rem !important;font-size:10px !important;font-weight:600;
  letter-spacing:.2em;text-transform:uppercase;
  color:var(--or-texte) !important;max-width:none !important}
body:is(.product-id-1217,.product-id-1220,.product-id-1515,.product-id-1951,.product-id-1992,.product-id-2119,.product-id-2310,.product-id-2342,.product-id-2398,.product-id-2421,.product-id-2422,.product-id-2438,.product-id-2581,.product-id-2582,.product-id-2670) .ffb-nez .ffb-saveurs{display:flex;flex-wrap:wrap;gap:.7rem 1.1rem;list-style:none;
  margin:0;padding:0}
body:is(.product-id-1217,.product-id-1220,.product-id-1515,.product-id-1951,.product-id-1992,.product-id-2119,.product-id-2310,.product-id-2342,.product-id-2398,.product-id-2421,.product-id-2422,.product-id-2438,.product-id-2581,.product-id-2582,.product-id-2670) .ffb-nez .ffb-saveurs li{display:inline-flex;flex-direction:row;align-items:center;gap:8px;
  width:auto;padding:0 4px 0 0;
  font-size:13.5px !important;line-height:1.3 !important;text-align:left}
body:is(.product-id-1217,.product-id-1220,.product-id-1515,.product-id-1951,.product-id-1992,.product-id-2119,.product-id-2310,.product-id-2342,.product-id-2398,.product-id-2421,.product-id-2422,.product-id-2438,.product-id-2581,.product-id-2582,.product-id-2670) .ffb-nez .ffb-saveurs li + li{border-left:1px solid var(--bord);padding-left:16px}
body:is(.product-id-1217,.product-id-1220,.product-id-1515,.product-id-1951,.product-id-1992,.product-id-2119,.product-id-2310,.product-id-2342,.product-id-2398,.product-id-2421,.product-id-2422,.product-id-2438,.product-id-2581,.product-id-2582,.product-id-2670) .ffb-nez .ffb-saveurs li img{height:40px;width:auto;flex:0 0 auto}
body:is(.product-id-1217,.product-id-1220,.product-id-1515,.product-id-1951,.product-id-1992,.product-id-2119,.product-id-2310,.product-id-2342,.product-id-2398,.product-id-2421,.product-id-2422,.product-id-2438,.product-id-2581,.product-id-2582,.product-id-2670) .ffb-nez .ffb-nez-t{color:#D2B269 !important}
body:is(.product-id-1217,.product-id-1220,.product-id-1515,.product-id-1951,.product-id-1992,.product-id-2119,.product-id-2310,.product-id-2342,.product-id-2398,.product-id-2421,.product-id-2422,.product-id-2438,.product-id-2581,.product-id-2582,.product-id-2670) .ffb-nez .ffb-saveurs li,
body:is(.product-id-1217,.product-id-1220,.product-id-1515,.product-id-1951,.product-id-1992,.product-id-2119,.product-id-2310,.product-id-2342,.product-id-2398,.product-id-2421,.product-id-2422,.product-id-2438,.product-id-2581,.product-id-2582,.product-id-2670) .ffb-nez .ffb-saveurs li span{color:#9FB08C !important}
body:is(.product-id-1217,.product-id-1220,.product-id-1515,.product-id-1951,.product-id-1992,.product-id-2119,.product-id-2310,.product-id-2342,.product-id-2398,.product-id-2421,.product-id-2422,.product-id-2438,.product-id-2581,.product-id-2582,.product-id-2670) .ffb-nez{border-top-color:rgba(176,141,63,.45)}
@media (max-width:640px){
body:is(.product-id-1217,.product-id-1220,.product-id-1515,.product-id-1951,.product-id-1992,.product-id-2119,.product-id-2310,.product-id-2342,.product-id-2398,.product-id-2421,.product-id-2422,.product-id-2438,.product-id-2581,.product-id-2582,.product-id-2670) .lvv-souffil a{min-height:40px;box-sizing:border-box}
}
body:is(.product-id-1217,.product-id-1220,.product-id-1515,.product-id-1951,.product-id-1992,.product-id-2119,.product-id-2310,.product-id-2342,.product-id-2398,.product-id-2421,.product-id-2422,.product-id-2438,.product-id-2581,.product-id-2582,.product-id-2670) [id^="lvv-chap-"]{scroll-margin-top:80px}
body:is(.product-id-1217,.product-id-1220,.product-id-1515,.product-id-1951,.product-id-1992,.product-id-2119,.product-id-2310,.product-id-2342,.product-id-2398,.product-id-2421,.product-id-2422,.product-id-2438,.product-id-2581,.product-id-2582,.product-id-2670) .product-description h3[id^="lvv-sec-"]{scroll-margin-top:100px}
@media (max-width:767px){
body:is(.product-id-1217,.product-id-1220,.product-id-1515,.product-id-1951,.product-id-1992,.product-id-2119,.product-id-2310,.product-id-2342,.product-id-2398,.product-id-2421,.product-id-2422,.product-id-2438,.product-id-2581,.product-id-2582,.product-id-2670) .product-description h3[id^="lvv-sec-"]{scroll-margin-top:114px}
}
body:is(.product-id-1217,.product-id-1220,.product-id-1515,.product-id-1951,.product-id-1992,.product-id-2119,.product-id-2310,.product-id-2342,.product-id-2398,.product-id-2421,.product-id-2422,.product-id-2438,.product-id-2581,.product-id-2582,.product-id-2670) #description .product-description > h2.ffb-chap-titre{margin-top:3.4rem !important;padding-top:2.4rem;border-top:1px solid var(--bord);text-align:left !important}
body:is(.product-id-1217,.product-id-1220,.product-id-1515,.product-id-1951,.product-id-1992,.product-id-2119,.product-id-2310,.product-id-2342,.product-id-2398,.product-id-2421,.product-id-2422,.product-id-2438,.product-id-2581,.product-id-2582,.product-id-2670) #description .ffb-def dt,
body:is(.product-id-1217,.product-id-1220,.product-id-1515,.product-id-1951,.product-id-1992,.product-id-2119,.product-id-2310,.product-id-2342,.product-id-2398,.product-id-2421,.product-id-2422,.product-id-2438,.product-id-2581,.product-id-2582,.product-id-2670) #description .ffb-def dd{text-align:left !important}
body:is(.product-id-1217,.product-id-1220,.product-id-1515,.product-id-1951,.product-id-1992,.product-id-2119,.product-id-2310,.product-id-2342,.product-id-2398,.product-id-2421,.product-id-2422,.product-id-2438,.product-id-2581,.product-id-2582,.product-id-2670) .lvv-roue.lvv-roue-petite.lvv-roue-fleurs{display:block !important}
body:is(.product-id-1217,.product-id-1220,.product-id-1515,.product-id-1951,.product-id-1992,.product-id-2119,.product-id-2310,.product-id-2342,.product-id-2398,.product-id-2421,.product-id-2422,.product-id-2438,.product-id-2581,.product-id-2582,.product-id-2670) .lvv-roue-fleurs a.lvv-mol-attendu path{stroke:#1A2120 !important;stroke-width:3 !important}
body:is(.product-id-1217,.product-id-1220,.product-id-1515,.product-id-1951,.product-id-1992,.product-id-2119,.product-id-2310,.product-id-2342,.product-id-2398,.product-id-2421,.product-id-2422,.product-id-2438,.product-id-2581,.product-id-2582,.product-id-2670) .lvv-roue-fleurs a.lvv-mol-attendu text{font-weight:700 !important}
body:is(.product-id-1217,.product-id-1220,.product-id-1515,.product-id-1951,.product-id-1992,.product-id-2119,.product-id-2310,.product-id-2342,.product-id-2398,.product-id-2421,.product-id-2422,.product-id-2438,.product-id-2581,.product-id-2582,.product-id-2670) .lvv-roue-fleurs .lvv-roue-chips a.lvv-mol-attendu{box-shadow:0 0 0 2px #1A2120;font-weight:700}
body:is(.product-id-1217,.product-id-1220,.product-id-1515,.product-id-1951,.product-id-1992,.product-id-2119,.product-id-2310,.product-id-2342,.product-id-2398,.product-id-2421,.product-id-2422,.product-id-2438,.product-id-2581,.product-id-2582,.product-id-2670) .lvv-roue-fleurs svg a,body:is(.product-id-1217,.product-id-1220,.product-id-1515,.product-id-1951,.product-id-1992,.product-id-2119,.product-id-2310,.product-id-2342,.product-id-2398,.product-id-2421,.product-id-2422,.product-id-2438,.product-id-2581,.product-id-2582,.product-id-2670) .lvv-roue-fleurs svg a text{text-decoration:none !important}
body:is(.product-id-1217,.product-id-1220,.product-id-1515,.product-id-1951,.product-id-1992,.product-id-2119,.product-id-2310,.product-id-2342,.product-id-2398,.product-id-2421,.product-id-2422,.product-id-2438,.product-id-2581,.product-id-2582,.product-id-2670) .lvv-roue-fleurs .lvv-roue-attendus{font-size:13px;color:rgba(26,33,32,.72);margin:0 0 .6rem;text-align:left}
body:is(.product-id-1217,.product-id-1220,.product-id-1515,.product-id-1951,.product-id-1992,.product-id-2119,.product-id-2310,.product-id-2342,.product-id-2398,.product-id-2421,.product-id-2422,.product-id-2438,.product-id-2581,.product-id-2582,.product-id-2670) #description .ffb-nez{margin:0 0 1.2rem;text-align:left}
body:is(.product-id-1217,.product-id-1220,.product-id-1515,.product-id-1951,.product-id-1992,.product-id-2119,.product-id-2310,.product-id-2342,.product-id-2398,.product-id-2421,.product-id-2422,.product-id-2438,.product-id-2581,.product-id-2582,.product-id-2670) #description .ffb-nez .ffb-nez-t{text-align:left !important;margin:0 0 .6rem !important}
body:is(.product-id-1217,.product-id-1220,.product-id-1515,.product-id-1951,.product-id-1992,.product-id-2119,.product-id-2310,.product-id-2342,.product-id-2398,.product-id-2421,.product-id-2422,.product-id-2438,.product-id-2581,.product-id-2582,.product-id-2670) #description .ffb-nez .ffb-saveurs{display:flex !important;flex-wrap:wrap;gap:10px 22px;justify-content:flex-start;margin:0;padding:0;list-style:none}
body:is(.product-id-1217,.product-id-1220,.product-id-1515,.product-id-1951,.product-id-1992,.product-id-2119,.product-id-2310,.product-id-2342,.product-id-2398,.product-id-2421,.product-id-2422,.product-id-2438,.product-id-2581,.product-id-2582,.product-id-2670) #description .ffb-nez .ffb-saveurs li{display:flex !important;flex-direction:column;align-items:center;flex:0 0 auto;width:auto !important;margin:0 !important;padding:0 !important;border:0 !important}
body:is(.product-id-1217,.product-id-1220,.product-id-1515,.product-id-1951,.product-id-1992,.product-id-2119,.product-id-2310,.product-id-2342,.product-id-2398,.product-id-2421,.product-id-2422,.product-id-2438,.product-id-2581,.product-id-2582,.product-id-2670) #description .ffb-nez .ffb-saveurs li img{width:56px !important;height:56px !important;object-fit:contain;margin:0 !important}
body:is(.product-id-1217,.product-id-1220,.product-id-1515,.product-id-1951,.product-id-1992,.product-id-2119,.product-id-2310,.product-id-2342,.product-id-2398,.product-id-2421,.product-id-2422,.product-id-2438,.product-id-2581,.product-id-2582,.product-id-2670) #description .ffb-nez .ffb-saveurs li span{font-size:12px !important;margin:4px 0 0 !important;text-align:center;color:rgba(26,33,32,.72) !important}
body:is(.product-id-1217,.product-id-1220,.product-id-1515,.product-id-1951,.product-id-1992,.product-id-2119,.product-id-2310,.product-id-2342,.product-id-2398,.product-id-2421,.product-id-2422,.product-id-2438,.product-id-2581,.product-id-2582,.product-id-2670) #description .product-description > h2.ffb-chap-titre::before{top:calc(2.4rem + .1em)}
body:is(.product-id-1217,.product-id-1220,.product-id-1515,.product-id-1951,.product-id-1992,.product-id-2119,.product-id-2310,.product-id-2342,.product-id-2398,.product-id-2421,.product-id-2422,.product-id-2438,.product-id-2581,.product-id-2582,.product-id-2670) #description .product-description > h2.ffb-chap-titre:first-of-type{margin-top:.6rem !important;padding-top:0;border-top:0}
body:is(.product-id-1217,.product-id-1220,.product-id-1515,.product-id-1951,.product-id-1992,.product-id-2119,.product-id-2310,.product-id-2342,.product-id-2398,.product-id-2421,.product-id-2422,.product-id-2438,.product-id-2581,.product-id-2582,.product-id-2670) #description .product-description > h2.ffb-chap-titre:first-of-type::before{top:.1em}
/* FIN FLEURS CHAPITRES - FLEURS DU RAYON 243 */
/* GARDE BLOC 32 HORS TOMINE (v131, 2026-09-24). Le bloc HTML Box 32 (gabarit Tomine,
   displayFooterProduct) sert sur TOUTES les fiches un div.lvv-partage (histoire des
   Plantes de Tomine) que seul le rayon 294 range et habille. Ailleurs il s affichait
   brut : ~2 360 px d encre sombre sur le fond nuit (vu sur 1951 et 2548). */
body:not(.product-id-category-294) .lvv-partage{display:none !important}
/* ROUE DE FICHE LISIBLE SUR LA CARTE BLANCHE (v132, 2026-09-24). Sur les fiches, la petite
   roue (.lvv-roue-fiche) vit dans la carte blanche de .product-description ; les regles
   html.lvv-nuit .lvv-roue-ou b (#EFDCA8) et .lvv-roue-dans b (#D2B269), faites pour le fond
   nuit de la grande roue, y donnaient 1,36 et 2,04. Le gras reprend l encre de sa phrase
   (74,59,42 : 10,77). La grande roue (.lvv-roue-page, fond nuit) n est pas touchee. */
html.lvv-nuit .lvv-roue-fiche .lvv-roue-ou b,html.lvv-nuit .lvv-roue-fiche .lvv-roue-dans b{color:inherit}
/* BLOC D ACHAT PLEINE LARGEUR SUR TELEPHONE (v133, 2026-09-24). Le custom.css du theme
   pose .product-information{width:78%} sans media query : sous 768 px, quand les deux
   colonnes de la fiche s empilent, le bloc d achat (prix, paliers, bouton, reassurance)
   ne faisait que 269 px sur 345, 22 % vides a droite. Ordinateur et tablette inchanges. */
@media (max-width:767.98px){#product .product-information{width:auto}}
/* IMAGES DES PAGES CMS PLAFONNEES A LEUR COLONNE (v134, 2026-09-24). Des images de page CMS
   portent class="img-responsive" (Bootstrap 3), inconnue du theme (Bootstrap 4, img-fluid) :
   rien ne les plafonnait. /content/11-terpenes (miss-bud-terpenes-v2.png, width=620) faisait
   653 px de large au telephone pour 375. Teste sur les 40 pages CMS en 375 et 1440 : seule
   celle-ci bouge. */
#cms .page-content img{max-width:100%;height:auto}
/* M4 - champs a 16 px au telephone (valide par Florent le 24/09/2026).
   Sous 16 px, l'iPhone zoome la page au toucher du champ. A poser dans lvv.css
   par la session qui tient la feuille ; mesure : 46 pages -> 0, 75 champs -> 0. */
@media (max-width: 767px) {
  /* M4 - Champs a 16 px : sous 16 px, l'iPhone zoome la page au
     toucher du champ (newsletter 13 px, quantite 15 px, recherche). */
  html body input[type="email"], html body input[type="text"], html body input[type="search"],
  html body input[type="tel"], html body input[type="password"], html body input[type="number"],
  html body select, html body textarea,
  html body #footer .block_newsletter input[type="email"], html body #footer .block_newsletter input[type="text"],
  body#contact .contact-form .form-control, body#authentication .form-control, body#password .form-control,
  body#checkout .form-control, body#product #quantity_wanted { font-size: 16px !important; }
}


/* === NUIT TOMBEE — LISIBILITE, PASSE DU 2026-09-24 (v135) ========================
   Releve au PIXEL RENDU sur 239 pages servies (1280 et 390), puis vu a l oeil.
   Une seule cause, sept visages : l encre de jour posee sur le fond de nuit, ou
   l encre de nuit posee sur une carte claire. L encre suit la surface.
   Encres sur #101A12 : parchemin #EFDCA8 13,1 · brume claire #C3D1B6 11,1 ·
   brume #9FB08C 7,7 · or clair #D2B269 8,8. */

/* 1. LE FOND DE PAGE. Une bande vert pale de 16 px restait entre l en-tete et la
   page, sur tous les gabarits sauf l accueil : le body #D4E0C4 passait par
   l interstice. */
html.lvv-nuit body{ background-color:var(--lvv-nuit) !important; }

/* 2. LES RAYONS-SOMMAIRES (238, 240, 248, 249, 36, 37, 40, 188).
   Leur description est en display:contents : sa carte creme n est JAMAIS peinte,
   et tout son texte tombait a meme la nuit — 1,09 pour le corps, 1,82 pour le
   gras. Environ 1 400 textes sur ces neuf pages. Pas de carte possible sans
   toucher la mise en page : le texte prend l encre de nuit, et les blocs qui
   portent LEUR propre fond (encadres creme, tableaux blancs) gardent la leur —
   c est ce que les :not ecartent. Le #wrapper n est pas decoratif : sans lui, la
   regle « body#category:not(x6) #category-description a » gagnait (2,6 contre 2,5).
   LE RAYON 26 N EN FAIT PAS PARTIE : sa description, elle, est peinte sur creme —
   simule avec, ses 25 textes tombaient de 7,9 a 1,5. */
html.lvv-nuit body#category:is(.category-id-238,.category-id-240,.category-id-248,.category-id-249,.category-id-36,.category-id-37,.category-id-40,.category-id-188) #wrapper #category-description :is(p,li,dd,dt,td,th,span,em,i,small,sup,sub,div,figcaption,label):not([style*="background"]):not([style*="background"] *):not(.lvv-rayons *):not(h2 *):not(h3 *):not(.lvv-repli-bouton){ color:#C3D1B6 !important; }
html.lvv-nuit body#category:is(.category-id-238,.category-id-240,.category-id-248,.category-id-249,.category-id-36,.category-id-37,.category-id-40,.category-id-188) #wrapper #category-description :is(strong,b):not([style*="background"] *):not(.lvv-rayons *):not(h2 *):not(h3 *){ color:#EFDCA8 !important; }
html.lvv-nuit body#category:is(.category-id-238,.category-id-240,.category-id-248,.category-id-249,.category-id-36,.category-id-37,.category-id-40,.category-id-188) #wrapper #category-description a:not([style*="background"]):not([style*="background"] *):not(.lvv-rayons *):not(h2 *):not(h3 *),
html.lvv-nuit body#category:is(.category-id-238,.category-id-240,.category-id-248,.category-id-249,.category-id-36,.category-id-37,.category-id-40,.category-id-188) #wrapper #category-description a:not([style*="background"]):not([style*="background"] *):not(.lvv-rayons *):not(h2 *):not(h3 *) *{ color:#D2B269 !important; }
/* les intertitres h3 du rayon Neo (248) : #2E4A32 sur la nuit, 1,82 */
html.lvv-nuit body#category:is(.category-id-238,.category-id-240,.category-id-248,.category-id-249,.category-id-36,.category-id-37,.category-id-40,.category-id-188) #wrapper #category-description h3:not([style*="background"]):not([style*="background"] *){ color:#EFDCA8 !important; }
/* le fondu du pli lit --lvv-fond : il peignait un voile creme sur la nuit */
html.lvv-nuit body#category:is(.category-id-238,.category-id-240,.category-id-248,.category-id-249,.category-id-36,.category-id-37,.category-id-40,.category-id-188) #wrapper #category-description .lvv-repli{ --lvv-fond:#101A12 !important; }
/* les titres des tuiles. Le dessin les veut creme #F4F1E8 sur la tuile #1A2120
   (regle « .lvv-rayons td > p > a »), mais la regle generale
   « body#category:not(x6) #category-description a:not([class]) » les repeint en
   or #75591F : 2,5. Defaut de jour aussi, que la nuit rend criant. Parchemin,
   12,1 ; le #wrapper fait gagner l identifiant. */
html.lvv-nuit body#category #wrapper #category-description .lvv-rayons a,
html.lvv-nuit body#category #wrapper #category-description .lvv-rayons a *{ color:#EFDCA8 !important; }

/* 3. LES RAYONS DE MARQUE (Storz, Arizer, Puffco, PAX...). « En detail :
   handicap et accessibilite · LGBTQIA+ », sous la vitrine, a meme la nuit :
   #4A504E et liens #1A2120 — 1,65 et 1,09. RESTREINT A CES SIX RAYONS : ailleurs
   (243, 244, 26, 268) la meme ligne est posee sur la carte creme ; simulee sans
   restriction, elle y tombait de 15,7 a 2,2. (La regle des liens de l en-tete,
   plus haut, n atteint plus la vitrine blanche : cf. section 4 du theme.) */
html.lvv-nuit body#category:is(.category-id-53,.category-id-271,.category-id-272,.category-id-273,.category-id-274,.category-id-276) #wrapper #category-description > p:has(> a[href*="37-handicap"]){ color:#9FB08C !important; }
html.lvv-nuit body#category:is(.category-id-53,.category-id-271,.category-id-272,.category-id-273,.category-id-274,.category-id-276) #wrapper #category-description > p:has(> a[href*="37-handicap"]) a{ color:#D2B269 !important; }
/* le titre de ces rayons est en encre de marque (#111, #1C1F22, #282828) :
   1,06 a 1,21 sur la nuit. */
html.lvv-nuit body#category:is(.category-id-53,.category-id-271,.category-id-272,.category-id-273,.category-id-274,.category-id-276) #js-product-list-header h1{ color:#EFDCA8 !important; }

/* 4. LES PAGES MARQUE (/brand/...). « Son histoire, son origine, ses valeurs » et
   « Le detail » (.lvv-gouttiere) sont ecrits pour une page claire, encre en
   ligne : 1,09 a 1,82 sur 97 pages. On leur rend leur surface — la carte creme
   des descriptions de rayon — plutot que de repeindre chaque encre. */
html.lvv-nuit body#manufacturer .lvv-gouttiere{
  background:#FBFAF6 !important; padding-top:26px !important; padding-bottom:22px !important;
  border-top:1px solid rgba(176,141,63,.55); box-shadow:0 10px 30px rgba(0,0,0,.35); }
html.lvv-nuit body#manufacturer #js-product-list-top .col-sm-3,
html.lvv-nuit body#manufacturer .sort-by{ color:#D2B269 !important; }
html.lvv-nuit body#manufacturer #products #js-product-list .pagination .col-md-4{ color:#9FB08C !important; }

/* 5. LA FICHE. « La quantite minimale pour pouvoir commander ce produit est N »
   etait en #1A2120 sur la nuit, 1,09 : une regle de vente que personne ne voyait.
   Le libelle « Quantite » aussi, hors de la media ou il etait deja traite. */
html.lvv-nuit body#product #wrapper .product-minimal-quantity{ color:#9FB08C !important; }
html.lvv-nuit body#product #wrapper .product-add-to-cart .control-label{ color:#EFDCA8 !important; }

/* 6. LE PLAN DU SITE, LA CONNEXION, LE MOT DE PASSE. Aucune regle de nuit :
   titres #2E4A32 a 1,82, liens #75591F a 2,72. Les formulaires gardent leur carte
   blanche (.page-content) ; on ne touche qu a ce qui est pose sur la nuit. */
html.lvv-nuit body:is(#sitemap,#authentication,#password,#registration) #wrapper .page-header h1,
html.lvv-nuit body:is(#sitemap,#authentication,#password,#registration) #wrapper h1.h1{ color:#EFDCA8 !important; }
html.lvv-nuit body#sitemap #wrapper :is(h2,.h2,.sitemap-title){ color:#EFDCA8 !important; border-color:rgba(176,141,63,.45) !important; }
html.lvv-nuit body#sitemap #wrapper .sitemap a{ color:#C3D1B6 !important; }
html.lvv-nuit body#sitemap #wrapper .sitemap a:hover{ color:#E58A3C !important; }
html.lvv-nuit body.page-customer-account #wrapper .page-footer a,
html.lvv-nuit body.page-customer-account #wrapper .page-footer a *{ color:#D2B269 !important; }

/* === NUIT TOMBEE — LISIBILITE, RETOUCHE DU 2026-09-24 (v136) =====================
   Regression de la v135, trouvee par le releve large apres pose : sur telephone,
   une fois les cookies acceptes, le bloc d achat devient la barre collante CREME
   (#fcfbf7, section « barre d achat collante sur telephone »). La mention « La
   quantite minimale pour pouvoir commander ce produit est N » y prenait la brume
   de nuit #9FB08C : 2,24. Dans la barre, elle reprend l encre de jour, 10,4.
   Hors barre (ordinateur, ou bandeau cookies encore la), la brume reste. */
@media (max-width:767px){
  html.lvv-nuit body#product:not(:has(.cc-window:not(.cc-invisible))) #wrapper .product-actions > form > .product-add-to-cart .product-minimal-quantity{ color:#4A3B2A !important; }
}
/* CADRES "PAGE INTROUVABLE" CENTRES (v137, 2026-09-24). custom.css pose
   #main .page-content{margin-left:10%;margin-right:10%}, qui ecrase le centrage auto du theme :
   le cadre de la 404, de /promotions vide, de /241, /293 et de la recherche sans resultat etait
   cale a gauche (144-714 en 1440). /promotions gardait aussi une colonne gauche vide de 360 px.
   Telephone inchange (le cadre garde ses marges de 10 %). */
@media (min-width:768px){#main .page-content.page-not-found{margin-left:auto;margin-right:auto}}
body#prices-drop #wrapper .container:has(.page-not-found) #left-column{display:none}
body#prices-drop #wrapper .container:has(.page-not-found) #content-wrapper{flex:0 0 100%;max-width:100%;width:100%}
body#pagenotfound #main .page-header h1{text-align:center;padding:0 15px}

/* === DEBUT ergonomie mobile (session Ergonomie mobile du site, 24/09/2026) ===
   Telephone uniquement (max-width: 767px). Mesure et simulation : presta LVV/audit-mobile-2026-09-24.
   Contenu : M22 bandeau cookies apres la porte d'age ; M23 panier "- 1 +" ; M2 barre d'achat
   sur une rangee (+ correctifs Bugs d'affichage) ; M13 prix dans la barre ; M8 M21 panier lisible ;
   M5 plancher 13 px ; M10 page 404 ; M3 M9 M11 zones de toucher ; M14 raccourci vers les produits ;
   M15 plaque Neo en double ; M17 Marques en grille ; M18 plan du site ; M19 commande.
   Miss Bud (M1) : chantier de la session Bugs d'affichage, absent d'ici. M13, M14 et la hauteur de
   barre (--lvv-barre-h) viennent de views/js/mobile.js.
   Retour arriere : supprimer tout jusqu'au marqueur FIN. */
@media (max-width: 767px) {
  /* M22 (B13) - A l'arrivee, la porte d'age et le bandeau cookies s'empilent.
     Le bandeau attend que la porte soit franchie (la porte verrouille <html>). */
  html.remodal-is-locked .cc-window { display: none !important; }

  /* M23 (B14) - Quantite du panier : les deux fleches de 16 px empilees
     deviennent " - 1 + " sur une rangee, boutons de 44 px. La ligne se range
     sans la colonne vide de 110 px qui la precedait : quantite, prix, corbeille. */
  body#cart .cart-item .product-line-grid-right > .row { display: flex !important; align-items: center !important; }
  body#cart .cart-item .product-line-grid-right > .row > .hidden-md-up { display: none !important; }
  body#cart .cart-item .product-line-grid-right > .row > .col-xs-6 { flex: 1 1 auto !important; width: auto !important; max-width: none !important; }
  body#cart .cart-item .product-line-grid-right > .row > .col-xs-6 > .row { display: flex !important; align-items: center !important; gap: 14px !important; margin: 0 !important; }
  body#cart .cart-item .product-line-grid-right .qty, body#cart .cart-item .product-line-grid-right .price {
    flex: 0 0 auto !important; width: auto !important; max-width: none !important; padding: 0 !important; }
  body#cart .cart-item .product-line-grid-right .price .product-price { white-space: nowrap !important; }
  body#cart .cart-item .bootstrap-touchspin { display: flex !important; align-items: stretch !important; width: auto !important; }
  body#cart .cart-item .bootstrap-touchspin .input-group-btn-vertical { display: contents !important; }
  body#cart .cart-item .bootstrap-touchspin .bootstrap-touchspin-down { order: 0; }
  body#cart .cart-item .bootstrap-touchspin .js-cart-line-product-quantity { order: 1; width: 48px !important; height: 44px !important; text-align: center; }
  body#cart .cart-item .bootstrap-touchspin .bootstrap-touchspin-up { order: 2; }
  body#cart .cart-item .bootstrap-touchspin .btn-touchspin {
    position: static !important; width: 44px !important; height: 44px !important; min-height: 44px !important;
    margin: 0 !important; padding: 0 !important; display: inline-flex !important; align-items: center; justify-content: center;
    background: rgb(252, 251, 247) !important; border: 1px solid rgba(46, 74, 50, .3) !important;
  }
  body#cart .cart-item .bootstrap-touchspin .btn-touchspin i { position: static !important; font-size: 0 !important; width: auto !important; height: auto !important; }
  body#cart .cart-item .bootstrap-touchspin .btn-touchspin i::before { content: none !important; }
  body#cart .cart-item .bootstrap-touchspin .bootstrap-touchspin-up i::after { content: "+" !important; font: 700 22px/1 sans-serif !important; color: rgb(46, 74, 50) !important; }
  body#cart .cart-item .bootstrap-touchspin .bootstrap-touchspin-down i::after { content: "\2212" !important; font: 700 22px/1 sans-serif !important; color: rgb(46, 74, 50) !important; }
  body#cart .cart-item .remove-from-cart { position: relative !important; }
  body#cart .cart-item .remove-from-cart::after { content: ""; position: absolute; left: 50%; top: 50%; width: 44px; height: 44px; transform: translate(-50%, -50%); }

  /* M2 - Barre d'achat collee : une seule rangee de 64 px
     (quantite a gauche, bouton pleine largeur a droite) au lieu
     de 135 px ou le bouton passe sur le libelle " Quantite ". */
  body#product .product-actions > form > .product-add-to-cart {
    display: flex !important; flex-wrap: wrap !important; align-items: center !important; gap: 6px 10px !important;
    padding: 8px 12px calc(8px + env(safe-area-inset-bottom)) !important;
  }
  /* " La quantite minimale ... est 3 " : une ligne pleine largeur sous la rangee,
     au lieu d'une troisieme colonne qui deborde. Les enfants vides disparaissent. */
  body#product .product-add-to-cart > .product-minimal-quantity {
    order: 3; flex: 1 1 100% !important; width: 100% !important; margin: 0 !important;
    font-size: 13px !important; line-height: 1.3 !important;
  }
  body#product .product-add-to-cart > span:empty, body#product .product-add-to-cart > p:empty { display: none !important; }
  body#product .product-add-to-cart > .control-label {
    position: absolute !important; width: 1px !important; height: 1px !important;
    overflow: hidden !important; clip: rect(0 0 0 0) !important; margin: 0 !important;
  }
  body#product .product-add-to-cart .product-quantity {
    display: flex !important; flex-direction: row !important; flex: 1 1 0 !important; min-width: 0 !important; flex-wrap: nowrap !important;
    align-items: center !important; gap: 10px !important; width: 100% !important; margin: 0 !important;
  }
  body#product .product-add-to-cart .product-quantity .qty { flex: 0 0 auto !important; margin: 0 !important; }
  body#product .product-add-to-cart .product-quantity .add { flex: 1 1 auto !important; margin: 0 !important; }
  body#product .product-add-to-cart .add .add-to-cart {
    width: 100% !important; min-height: 48px !important; margin: 0 !important;
  }
  body#product .product-add-to-cart #quantity_wanted {
    height: 48px !important; width: 48px !important; font-size: 16px !important; text-align: center !important;
  }
  body#product .product-add-to-cart .bootstrap-touchspin .btn-touchspin {
    height: 24px !important; width: 32px !important;
  }

  /* M2 (suite) - rejeu de la session Bugs d'affichage : les pseudo-elements du .clearfix
     et #product-availability prenaient chacun un ecart de 10 px (bouton arrete a 343/375).
     La disponibilite garde sa ligne pleine largeur (Rupture de stock), masquee si vide. */
  body#product .product-add-to-cart .product-quantity::before,
  body#product .product-add-to-cart .product-quantity::after { display: none !important; }
  body#product .product-actions > form > .product-add-to-cart > #product-availability {
    order: 4; flex: 1 1 100% !important; margin: 0 !important; font-size: 13px !important; line-height: 1.3 !important; }
  body#product .product-actions > form > .product-add-to-cart > #product-availability:not(:has(*)) { display: none !important; }

  /* M13 - Prix rappele dans la barre d'achat (le script y copie le prix). */
  body#product .product-add-to-cart .lvv-barre-prix {
    flex: 0 0 auto; font-size: 17px; font-weight: 700; color: rgb(46, 74, 50); white-space: nowrap;
  }

  /* M8 - Panier : ligne produit et prix lisibles sur la nuit. */
  body#cart .cart-item, body#cart .cart-item a, body#cart .cart-item .product-price,
  body#cart .cart-item .price, body#cart .cart-grid-body a.label { color: rgb(236, 226, 196) !important; }
  body#cart .cart-item .js-cart-line-product-quantity { height: 44px !important; font-size: 16px !important; }
  body#cart .cart-item .bootstrap-touchspin .btn-touchspin { height: 22px !important; width: 36px !important; }

  /* M21 - Offre du panier : le texte creme est pose sur la carte creme (invisible). */
  /* Le theme de nuit (html.lvv-nuit body#cart #wrapper ...) repeint en creme ce qui
     est pose sur la carte creme : on vise plus precis que lui. */
  html.lvv-nuit body#cart #wrapper #lvv-offres .lvv-offre-accroche { color: rgb(46, 74, 50) !important; }
  html.lvv-nuit body#cart #wrapper #lvv-offres .lvv-offre-sous, html.lvv-nuit body#cart #wrapper #lvv-offres .lvv-offre-nom,
  html.lvv-nuit body#cart #wrapper #lvv-offres .lvv-offre-saveur span { color: rgb(51, 65, 58) !important; }

  /* M20 (panier seulement) - titre des offres du panier, sombre sur la nuit. */
  body#cart #lvv-offres .lvv-offres-titre { color: rgb(236, 226, 196) !important; }

  /* M5 - Plancher de lecture : aucun texte courant sous 13 px
     (34 % des signes de l'accueil sont sous 12 px). */
  .lvv-ac-guide-oeil, .lvv-ac-guide-cta, .lvv-vit-oeil, .lvv-ac-carte-det,
  .lvv-cs-l-fam, .blockreassurance, .blockreassurance *, .bln, .bln *:not(input),
  .lvv-des-prix, .lvv-des-cond, .lvv-qty-note, #lvv-pied-copy, #footer .links li a,
  .product-miniature .lvv-neuf { font-size: 13px !important; }

  /* M10 - Page introuvable : le titre colle au bord gauche. */
  body#pagenotfound #main .page-header, body#pagenotfound #main h1 { padding-left: 16px !important; padding-right: 16px !important; }

  /* M3 - Icones de l'en-tete : zone de toucher 44 x 44 px
     (elles mesurent 24 x 24 aujourd'hui), dessin inchange.
     La zone se pose sur l'element qui REAGIT au doigt. Posee sur l'enveloppe
     .cartheader (v172 et avant), elle recouvrait le lien du panier : le doigt
     tombait sur le div, le panier ne s'ouvrait pas (2026-09-29, tap reel sur 3 pages). */
  #header #menu-icon, #header #_mobile_cart .cartheader > a,
  #header .user-info a, #header .lvv-loupe { position: relative !important; }
  #header #menu-icon::after, #header #_mobile_cart .cartheader > a::after,
  #header .user-info a::after, #header .lvv-loupe::after {
    content: ""; position: absolute; left: 50%; top: 50%;
    width: 48px; height: 48px; transform: translate(-50%, -50%);
  }

  /* M9 - Pastilles de carrousel : 8 px visibles, 32 px touchables. */
  .lvv-tq-point, .lvv-sb-point, .lvv-ac-bq-points button, .lvv-ac-bq-pastilles {
    min-width: 32px !important; min-height: 32px !important; background-clip: content-box !important;
    padding: 12px !important; box-sizing: border-box !important;
  }

  /* M11 - Pied de page : liens du compte et reseaux a 44 px de haut. */
  #footer .links li a, #footer .block-social a { display: inline-block; min-height: 44px; line-height: 44px; }

  /* M14 - Raccourci " Voir les produits " sous le titre des rayons longs. */
  html body a.lvv-vers-produits, html body a.lvv-vers-produits:visited,
  html.lvv-nuit body#category #js-product-list-header a.lvv-vers-produits,
  html.lvv-nuit body#manufacturer #wrapper a.lvv-vers-produits {
    display: flex; align-items: center; justify-content: center; gap: 8px;
    margin: 12px 16px 4px; min-height: 48px; padding: 0 16px;
    background: rgb(236, 226, 196); color: rgb(26, 33, 32) !important;
    font-size: 14px; letter-spacing: .12em; text-transform: uppercase; text-decoration: none !important;
  }

  /* L'ancre du raccourci arrive sous l'en-tete (deja colle par le site), pas dessous. */
  #js-product-list { scroll-margin-top: 90px; }

  /* M15 - Neo : le second titre du guide repete la plaque. */
  html body#category #category-description .neo-guide__hero > h2:first-child { display: none !important; }

  /* M17 - Page Marques : grille de logos sur deux colonnes, sans les notices. */
  body#manufacturer #main ul:has(> li.brand) { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin: 0 !important; width: auto !important; padding: 0 12px !important; }
  body#manufacturer #main li.brand { width: auto !important; min-width: 0 !important; max-width: 100% !important; margin: 0 !important; padding: 10px !important; text-align: center; box-sizing: border-box !important; }
  body#manufacturer #main li.brand .brand-img, body#manufacturer #main li.brand .brand-img a { width: 100% !important; max-width: 100% !important; min-width: 0 !important; }
  body#manufacturer #main li.brand .brand-img img { max-width: 100%; height: auto; }
  body#manufacturer #main li.brand .brand-infos { width: auto !important; }
  body#manufacturer #main li.brand .brand-infos > :not(p:first-child) { display: none !important; }
  body#manufacturer #main li.brand .brand-infos p:first-child a { display: block; min-height: 44px; line-height: 44px; }

  /* M18 - Plan du site : liens en rangees de 44 px. */
  body#sitemap #main a { display: inline-block; min-height: 44px; line-height: 44px; }

  /* M19 - Commande : cases a cocher et boutons radio de 22 px. */
  body#checkout .custom-radio { width: 24px !important; height: 24px !important; }
  body#checkout .custom-radio input { width: 100% !important; height: 100% !important; }
  body#checkout .radio-inline { min-height: 44px; display: inline-flex !important; align-items: center; gap: 6px; margin-right: 16px; }
}
/* === FIN ergonomie mobile === */
/* MISS BUD A 120 PX AU TELEPHONE, AU-DESSUS DE LA BARRE D ACHAT (v139, 2026-09-24).
   Choix de Florent : 120 px avec sa bulle (elle faisait 232 x 237 px, 62 % de l ecran).
   Urgent : depuis v138 le bouton d achat est a droite de la barre collee, et ses jambes
   le couvraient (elementFromPoint = img.lvv-mbud-img-bras sur 1951, 479, 1437).
   --lvv-barre-h est posee par views/js/mobile.js ; 64px de repli sans barre. */
@media (max-width: 767px) {
  .lvv-mbud { right: 6px !important; bottom: 6px !important; }
  .lvv-mbud .lvv-mbud-img-corps { width: 120px !important; }
  body#product .lvv-mbud { bottom: calc(var(--lvv-barre-h, 64px) + 8px) !important; }
}

/* (bloc ecrit par la session "Lisibilite du theme nuit", mis de cote en v140 ; verifie et pose en v141 par "Bugs d affichage" a la demande de Florent :
   23 pages x 2 largeurs, 0 element deplace, pire encre changee 2,03 -> 5,90, 0 texte sous 4,5, 0 encre en baisse, pages temoins inchangees.) */

/* === VITRINES DE MARQUE - LISIBILITE, 2026-09-24 ===============================
   Storz, Katalyzer, DynaVap, PAX, Arizer, Puffco : les vitrines portent leurs encres
   de marque, sur les rayons (en ligne, style=) et sur les fiches (variables
   --sb-encre-1 et -3, et .sb-leg ecrit en dur). Mesure au pixel sur 23 pages :
   gris secondaires 3,66 a 4,29 sur blanc ; accents en texte 2,03 (vert DynaVap),
   2,45 (or Katalyzer), 2,94 (orange Storz) ; blanc sur ces trois accents, idem.
   Defaut de jour comme de nuit : ce bloc ne depend pas du theme.
   La teinte ne bouge pas, seule la clarte descend, jusqu a 5,6 pour les gris
   (sur blanc ET sur les teintes pales des encadres) et 4,8 pour les accents.
   Sur un aplat d accent vif, le texte passe en encre sombre : 6,3 a 9,1. Arizer
   (#165bad), Puffco (#382757) et PAX (#141414) portent deja du blanc lisible. */
/* A. rayons de marque : encres ecrites en ligne */
#wrapper#wrapper#wrapper :is(#category-description,#description) [style*="color:#767676"]{ color:#5a5a5a !important; }
#wrapper#wrapper#wrapper :is(#category-description,#description) [style*="color:#7a7a7a"]{ color:#5a5a5a !important; }
#wrapper#wrapper#wrapper :is(#category-description,#description) [style*="color:#7a7a7c"]{ color:#5a5a5c !important; }
#wrapper#wrapper#wrapper :is(#category-description,#description) [style*="color:#7e7e88"]{ color:#5a5a62 !important; }
#wrapper#wrapper#wrapper :is(#category-description,#description) [style*="color:#7d8084"]{ color:#595b5e !important; }
#wrapper#wrapper#wrapper :is(#category-description,#description) [style*="color:#82868c"]{ color:#585b5f !important; }
#wrapper#wrapper#wrapper :is(#category-description,#description) [style*="color:#7d827e"]{ color:#575b58 !important; }
#wrapper#wrapper#wrapper :is(#category-description,#description) [style*="color:#ff6600"]:not([style*="background:#ff6600"]){ color:#ab4400 !important; }
#wrapper#wrapper#wrapper :is(#category-description,#description) [style*="background:#ff6600"][style*="color:#ffffff"]{ color:#141414 !important; }
#wrapper#wrapper#wrapper :is(#category-description,#description) [style*="color:#c9a10a"]:not([style*="background:#c9a10a"]){ color:#796106 !important; }
#wrapper#wrapper#wrapper :is(#category-description,#description) [style*="background:#c9a10a"][style*="color:#ffffff"]{ color:#141414 !important; }
#wrapper#wrapper#wrapper :is(#category-description,#description) [style*="color:#8ec700"]:not([style*="background:#8ec700"]){ color:#4e6e00 !important; }
#wrapper#wrapper#wrapper :is(#category-description,#description) [style*="background:#8ec700"][style*="color:#ffffff"]{ color:#141414 !important; }
/* B. fiches : les variables de marque, un identifiant de plus que leur declaration */
body#product#product.product-id-177 #description{ --sb-encre-1:#5a5a5a;--sb-encre-3:#ab4400; }
body#product#product.product-id-2203 #description{ --sb-encre-1:#5a5a62; }
body#product#product.product-id-2233 #description{ --sb-encre-1:#5a5a5a;--sb-encre-3:#796106; }
body#product#product.product-id-2497 #description{ --sb-encre-1:#5a5a5a;--sb-encre-3:#796106; }
body#product#product.product-id-2695 #description{ --sb-encre-1:#5a5a5a;--sb-encre-3:#796106; }
body#product#product.product-id-2696 #description{ --sb-encre-1:#5a5a5a;--sb-encre-3:#796106; }
body#product#product.product-id-category-271 #description{ --sb-encre-1:#585b5f; }
body#product#product.product-id-category-272 #description{ --sb-encre-1:#5a5a5c;--sb-encre-3:#4e6e00; }
body#product#product.product-id-category-273 #description{ --sb-encre-1:#595b5e; }
body#product#product.product-id-category-274 #description{ --sb-encre-1:#5a5a62; }
body#product#product.product-id-category-276 #description{ --sb-encre-1:#5a5a5a;--sb-encre-3:#ab4400; }
body#product#product.product-id-category-53 #description{ --sb-encre-1:#5a5a5a;--sb-encre-3:#796106; }
/* C. fiches : .sb-leg ecrit en dur par marque - meme selecteur, un #product de plus */
body#product#product.product-id-177#product.product-id-177 #description .sb-leg{ color:#5a5a5a !important; }
body#product#product.product-id-2203#product.product-id-2203 #description .sb-leg{ color:#5a5a62 !important; }
body#product#product.product-id-2233#product.product-id-2233 #description .sb-leg{ color:#5a5a5a !important; }
body#product#product.product-id-2497#product.product-id-2497 #description .sb-leg{ color:#5a5a5a !important; }
body#product#product.product-id-2695#product.product-id-2695 #description .sb-leg{ color:#5a5a5a !important; }
body#product#product.product-id-2696#product.product-id-2696 #description .sb-leg{ color:#5a5a5a !important; }
body#product#product.product-id-category-271#product.product-id-category-271 #description .sb-leg{ color:#585b5f !important; }
body#product#product.product-id-category-272#product.product-id-category-272 #description .sb-leg{ color:#5a5a5c !important; }
body#product#product.product-id-category-273#product.product-id-category-273 #description .sb-leg{ color:#595b5e !important; }
body#product#product.product-id-category-274#product.product-id-category-274 #description .sb-leg{ color:#5a5a62 !important; }
body#product#product.product-id-category-276#product.product-id-category-276 #description .sb-leg{ color:#5a5a5a !important; }
body#product#product.product-id-category-53#product.product-id-category-53 #description .sb-leg{ color:#5a5a5a !important; }
/* MISS BUD : LA CROIX "NE PLUS AFFICHER" SE CACHE QUAND LE PANNEAU EST OUVERT (v141, 2026-09-24).
   Au telephone, le rond x de .lvv-mbud-chut restait pose sur le bord droit du panneau ouvert
   (carte "J ai une question") : doublon de la croix du panneau, et un toucher a cet endroit
   renvoyait Miss Bud au lieu d ouvrir la carte. */
@media (max-width:767px){.lvv-mbud.lvv-mbud-ouvert .lvv-mbud-chut{display:none !important}}

/* ==== DEBUT v142 - 2026-09-24 - LE DEFILEMENT AU TELEPHONE (defilement-mobile-2026-09-24) ====
   Decide par Florent le 2026-09-24 (" va pour le sommaire sur les fiches fleurs aussi ").
   Borne au telephone. S1 cartes compactes, S2/S6 etageres qui glissent, S3 sommaire
   depliable (le script mobile.js pose les classes .lvv-acc-*), S4 paliers en bande, S5 pied
   ramasse et texte legal CBD en pleine largeur. Mesure : 47 pages, 366 -> 242 ecrans,
   debordement 0. Retour arriere : retirer ce bloc ET le second bloc de mobile.js. */
@media (max-width:767px){

/* S1 - CARTE COMPACTE : photo inchangee en largeur, texte ramasse sous elle.
   Avant 329 px (photo 141 dans une boite de 173, nom sur 3 lignes, " Decouvrir ",
   " des " sur sa ligne). Le nom tient sur 2 lignes, la carte entiere reste un lien. */
html body #wrapper .products .product-miniature .thumbnail-container{padding-bottom:0 !important;margin-bottom:0 !important;height:auto !important}
html body #wrapper .products .product-miniature a.thumbnail.product-thumbnail{padding-top:0 !important;height:auto !important;position:relative !important}
html body #wrapper .products .product-miniature a.thumbnail.product-thumbnail img{margin:6px auto !important;width:calc(100% - 12px) !important;height:auto !important;aspect-ratio:1/1;object-fit:contain}
html body #wrapper .products .product-miniature .product-description{position:static !important;height:auto !important;padding:4px 8px 8px !important;display:flex !important;flex-direction:column !important}
html body #wrapper .products .product-miniature .lvv-nom-entier{order:1;font-size:14px !important;line-height:1.3 !important;text-align:left !important;display:-webkit-box !important;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:0 !important;margin:0 !important;padding:0 !important;border:0 !important}
html body #wrapper .products .product-miniature .product-price-and-shipping{order:2;padding-top:4px !important;margin:0 !important;display:block !important;min-height:0 !important;border:0 !important}
html body #wrapper .products .product-miniature .product-price-and-shipping::after{display:none !important}
html body #wrapper .products .product-miniature .product-price-and-shipping .price{display:inline !important;font-size:17px !important}
html body #wrapper .products .product-miniature .product-price-and-shipping .price::after{font-size:12px}
html body #wrapper .products .product-miniature .lvv-des{display:block !important;font-size:13px !important;margin:1px 0 0 !important}
html body #wrapper .products .product-miniature .lvv-des *{font-size:13px !important}
html body #wrapper .products > div, html body #wrapper .products > article{margin-bottom:10px !important}

/* S2 + S6 - ETAGERES : une rangee qui defile de cote au lieu d une colonne qui descend. */
.lvv-etagere{margin:0 0 18px}
.lvv-etagere-tete{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:0 16px 8px;color:#F3EBD8}
.lvv-etagere-tete b{font-size:17px;letter-spacing:.5px;font-weight:600}
.lvv-etagere-tete a{color:#D9B25F !important;font-size:14px;white-space:nowrap;padding:10px 0}
html body #wrapper .lvv-etagere-piste{display:flex !important;flex-wrap:nowrap !important;overflow-x:auto;scroll-snap-type:x mandatory;gap:10px;padding:0 16px 6px;margin:0 !important;scrollbar-width:none}
html body #wrapper .lvv-etagere-piste > *{flex:0 0 42% !important;max-width:42% !important;width:42% !important;scroll-snap-align:start;padding:0 !important;margin:0 !important;float:none !important}
html body #wrapper .lvv-etagere-piste::-webkit-scrollbar{display:none}
html body #wrapper .lvv-etageres-actif{display:block !important}

/* S3 - SOMMAIRE DEPLIABLE : chaque chapitre devient une rangee qu on ouvre. */
html body #wrapper .lvv-acc-actif.lvv-repli{max-height:none !important;overflow:visible !important}
html body #wrapper .lvv-acc-actif.lvv-repli::after{display:none !important}
html body #wrapper .lvv-acc-actif ~ .lvv-repli-bouton, html body #wrapper .lvv-acc-actif + .lvv-repli-bouton{display:none !important}
html body #wrapper .lvv-acc-actif .lvv-chapbar, html body #wrapper .lvv-acc-actif .ffb-chap-nav, html body #wrapper .lvv-acc-actif .lvv-souffil{display:none !important}
html body #wrapper .lvv-acc-tete{display:block;width:100%;text-align:left;background:#F3EBD8;color:#1E2B20;border:0;border-bottom:1px solid rgba(30,43,32,.15);padding:13px 44px 11px 14px;margin:0;position:relative;cursor:pointer;font-family:inherit}
html body #wrapper .lvv-acc-tete .lvv-acc-t{display:block;font-size:16px;font-weight:600;line-height:1.3;letter-spacing:0;text-transform:none}
html body #wrapper .lvv-acc-tete .lvv-acc-r{display:block;width:0;min-width:100%;font-size:13px;line-height:1.35;opacity:.75;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px}
html body #wrapper .lvv-acc-tete::after{content:"";position:absolute;right:18px;top:50%;width:9px;height:9px;border-right:2px solid #2E4A32;border-bottom:2px solid #2E4A32;transform:translateY(-70%) rotate(45deg);transition:transform .2s}
html body #wrapper .lvv-acc-tete[aria-expanded="true"]::after{transform:translateY(-30%) rotate(-135deg)}
html body #wrapper .lvv-acc-tete:first-of-type{border-top-left-radius:6px;border-top-right-radius:6px}
html body #wrapper .lvv-acc-actif{min-width:0 !important;max-width:100% !important}
html body #wrapper .lvv-acc-actif > .lvv-acc-cache{display:none !important}
html body #wrapper .lvv-acc-titre-cache{position:absolute !important;width:1px !important;height:1px !important;overflow:hidden !important;clip:rect(0 0 0 0) !important;margin:0 !important;padding:0 !important;border:0 !important}

/* S4 - PALIERS DE QUANTITE EN BANDE : 8 cartes sur 2 rangees -> 1 rangee qui glisse. */
html body #wrapper .lvv-qty .lvv-qty-grille, html body #wrapper .lvv-qty-bande{display:flex !important;flex-wrap:nowrap !important;overflow-x:auto;scroll-snap-type:x mandatory;gap:8px;scrollbar-width:none}
html body #wrapper .lvv-qty-bande > *{flex:0 0 27% !important;max-width:27% !important;scroll-snap-align:start}

/* S5 - PIED RAMASSE : " Votre compte " replie comme ses voisins ; texte de la lettre
   reduit a une ligne. */
html body #wrapper ~ #footer .lvv-pied-cache, html body #footer .lvv-pied-cache{display:none !important}
}
@media (max-width:767px){
/* les pastilles Selection / Best-seller restent posees sur la photo */
html body #wrapper .products .product-miniature .thumbnail-container{position:relative !important}
html body #wrapper .products .product-miniature .lvv-sel, html body #wrapper .products .product-miniature .lvv-neuf, html body #wrapper .products .product-miniature .lvv-bs{position:absolute !important;left:8px !important;top:8px !important;bottom:auto !important;right:auto !important;z-index:2;order:0}
}
@media (max-width:767px){
/* S5b - le texte legal CBD des fiches : pleine largeur, une taille, au lieu d une colonne de 161 px sur 847 */
html body#product #wrapper #cbd{width:auto !important;max-width:none !important;float:none !important;padding:0 16px !important;margin:0 0 12px !important;height:auto !important}
html body#product #wrapper #cbd *{font-size:13px !important;line-height:1.45 !important;width:auto !important;max-width:none !important;margin:0 0 4px !important;text-align:left !important}
}
/* ==== FIN v142 - le defilement au telephone ==== */
/* SURTITRE JAUNE GIMBER LISIBLE (v143, 2026-09-24). La page de marque The Original Gimber ecrit
   son surtitre ("Boisson") en jaune de marque #FAB81C, 12 px, sur sa carte #FFF8E8 : 1,66
   au pixel rendu. Meme teinte, plus sombre : #8C6303, 5,09. */
#wrapper#wrapper#wrapper :is(#manufacturer-short_description,#manufacturer-description,#category-description,#description) [style*="color:#FAB81C"]{ color:#8C6303 !important; }
/* SURTITRE JAUNE GIMBER SUR LA LISTE DES MARQUES (v146, 2026-09-24). /brands reprend la
   description courte de chaque marque : le surtitre Gimber ("Boisson", #FAB81C sur #FFF8E8)
   y reste a 1,66 au pixel rendu. Meme encre qu en v143 : #8C6303, 5,09. */
#wrapper#wrapper#wrapper .brand-infos [style*="color:#FAB81C"]{ color:#8C6303 !important; }

/* ==== DEBUT v147 - 2026-09-24 - VAGUE 2 : RACCOURCIS DE RAYON ET FIN DE FICHE AU TELEPHONE ====
   S7 : une rangee de boutons qui glisse sous le titre d un rayon, tiree d une famille de
   filtres existante (Format, Types de culture, Matiere, Marque...) ; un toucher filtre la grille
   sur place par le filtre du theme. S8 : fin de fiche ramassee (Plus de details, Documents
   joints, Pour aller voir en rangees depliables). La reassurance reste telle quelle : sur une
   ligne, la condition "des 50 EUR" tombait et le titre "Livraison gratuite" mentait. Borne au telephone. */
@media (max-width:767px){
html body #wrapper .lvv-puces{display:flex;flex-wrap:nowrap;gap:8px;overflow-x:auto;scrollbar-width:none;padding:2px 16px 12px;margin:0 0 4px;scroll-padding:0 16px;scroll-snap-type:x proximity;max-width:100%;box-sizing:border-box}
html body #wrapper .lvv-puces::-webkit-scrollbar{display:none}
html body #wrapper .lvv-puce{flex:0 0 auto;scroll-snap-align:start;min-height:40px;padding:9px 16px;border-radius:20px;border:1px solid rgba(217,178,95,.7);background:transparent;color:#F3EBD8;font-family:inherit;font-size:14px;font-weight:600;line-height:1.2;white-space:nowrap;cursor:pointer}
html body #wrapper .lvv-puce[aria-pressed="true"]{background:#D9B25F;border-color:#D9B25F;color:#1E2B20}
html body #wrapper .lvv-puce-n{font-weight:400;opacity:.75;margin-left:4px}
html body #wrapper .lvv-puces-titre{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}

html body #wrapper .lvv-fin-tete{display:block;width:100%;text-align:left;background:#F3EBD8;color:#1E2B20;border:0;border-bottom:1px solid rgba(30,43,32,.15);padding:13px 44px 11px 14px;margin:0;position:relative;cursor:pointer;font-family:inherit}
html body #wrapper .lvv-fin-tete .lvv-acc-t{display:block;font-size:16px;font-weight:600;line-height:1.3;text-transform:none;letter-spacing:0}
html body #wrapper .lvv-fin-tete .lvv-acc-r{display:block;width:0;min-width:100%;font-size:13px;line-height:1.35;opacity:.75;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px}
html body #wrapper .lvv-fin-tete::after{content:"";position:absolute;right:18px;top:50%;width:9px;height:9px;border-right:2px solid #2E4A32;border-bottom:2px solid #2E4A32;transform:translateY(-70%) rotate(45deg)}
html body #wrapper .lvv-fin-tete[aria-expanded="true"]::after{transform:translateY(-30%) rotate(-135deg)}
html body #wrapper .lvv-fin-cache-titre{display:none !important}

html body #wrapper .lvv-fin-tete.lvv-fin-pl{width:calc(100% - 32px);margin:0 16px 10px}
}
/* ==== FIN v147 - vague 2 ==== */

/* ================================================================
   LA VOIE VERTE - ICONES DE RAYON DANS LE MENU - 2026-09-25
   ----------------------------------------------------------------
   Genere par mega-menu-2026-08-31/generer_icones_menu.py : ne pas
   retoucher a la main, regenerer.

   CE QUE CA FAIT. Chaque rayon du menu porte une petite illustration
   en couleur devant son libelle (28 px), chaque sous-rayon neo la
   sienne (22 px). Ordinateur (panneau creme) et telephone (tiroir
   vert) partagent les memes images. Les six marques vapo portent leur
   logo : section LOGOS plus haut pour l ordinateur, section 4 ici pour
   le telephone.

   LES IMAGES. Illustrations generees avec ChatGPT le 25/09 (planches
   dans mega-menu-2026-08-31/icones-gpt/planches), decoupees, reduites
   a 84 px et livrees en WebP DANS le module : views/img/menu/.
   38 fichiers, 136 Ko. Une image de fond ne se charge que lorsque son
   panneau s affiche.

   LE GARDE-FOU DE LA VARIABLE. La largeur de l icone vaut
   var(--lvv-icw,0) : un rayon sans illustration (ajoute plus tard, ou
   une marque) garde une boite de largeur nulle et reste propre.

   LE TEXTE N EST PAS TOUCHE : l ancre du lien reste entiere.

   POUR REVENIR EN ARRIERE : retirer cette section.
   ================================================================ */

/* ==== DEBUT MENU ICONES ==== */

/* --- 1. LES ILLUSTRATIONS, une par motif, portees par le lien ---- */
#_desktop_top_menu a.mega-heading[href*='/243-'],
#_mobile_top_menu a.mega-heading[href*='/243-'],
#_desktop_top_menu a.mega-heading[href*='/248-'],
#_mobile_top_menu a.mega-heading[href*='/248-']{
  --lvv-icw:28px;--lvv-ich:28px;--lvv-icm:10px;
  --lvv-ic:url(../img/menu/fleur.webp);
}
#_desktop_top_menu a.mega-heading[href*='/244-'],
#_mobile_top_menu a.mega-heading[href*='/244-'],
#_desktop_top_menu a.mega-heading[href*='/249-'],
#_mobile_top_menu a.mega-heading[href*='/249-']{
  --lvv-icw:28px;--lvv-ich:28px;--lvv-icm:10px;
  --lvv-ic:url(../img/menu/resine.webp);
}
#_desktop_top_menu a.mega-heading[href*='/245-'],
#_mobile_top_menu a.mega-heading[href*='/245-'],
#_desktop_top_menu a.mega-heading[href*='/260-'],
#_mobile_top_menu a.mega-heading[href*='/260-']{
  --lvv-icw:28px;--lvv-ich:28px;--lvv-icm:10px;
  --lvv-ic:url(../img/menu/preroule.webp);
}
#_desktop_top_menu a.mega-heading[href*='/246-'],
#_mobile_top_menu a.mega-heading[href*='/246-'],
#_desktop_top_menu a.mega-heading[href*='/261-'],
#_mobile_top_menu a.mega-heading[href*='/261-']{
  --lvv-icw:28px;--lvv-ich:28px;--lvv-icm:10px;
  --lvv-ic:url(../img/menu/cartouche.webp);
}
#_desktop_top_menu a.mega-heading[href*='/247-'],
#_mobile_top_menu a.mega-heading[href*='/247-'],
#_desktop_top_menu a.mega-heading[href*='/262-'],
#_mobile_top_menu a.mega-heading[href*='/262-']{
  --lvv-icw:28px;--lvv-ich:28px;--lvv-icm:10px;
  --lvv-ic:url(../img/menu/minibuds.webp);
}
#_desktop_top_menu a.mega-heading[href*='/269-'],
#_mobile_top_menu a.mega-heading[href*='/269-'],
#_desktop_top_menu a.mega-heading[href*='/270-'],
#_mobile_top_menu a.mega-heading[href*='/270-']{
  --lvv-icw:28px;--lvv-ich:28px;--lvv-icm:10px;
  --lvv-ic:url(../img/menu/eliquide.webp);
}
#_desktop_top_menu a.mega-heading[href*='/185-'],
#_mobile_top_menu a.mega-heading[href*='/185-']{
  --lvv-icw:28px;--lvv-ich:28px;--lvv-icm:10px;
  --lvv-ic:url(../img/menu/collection.webp);
}
#_desktop_top_menu a.mega-heading[href*='/231-'],
#_mobile_top_menu a.mega-heading[href*='/231-']{
  --lvv-icw:28px;--lvv-ich:28px;--lvv-icm:10px;
  --lvv-ic:url(../img/menu/bocal.webp);
}
#_desktop_top_menu a.mega-heading[href*='/232-'],
#_mobile_top_menu a.mega-heading[href*='/232-']{
  --lvv-icw:28px;--lvv-ich:28px;--lvv-icm:10px;
  --lvv-ic:url(../img/menu/alcool.webp);
}
#_desktop_top_menu a.mega-heading[href*='/230-'],
#_mobile_top_menu a.mega-heading[href*='/230-']{
  --lvv-icw:28px;--lvv-ich:28px;--lvv-icm:10px;
  --lvv-ic:url(../img/menu/canette.webp);
}
#_desktop_top_menu a.mega-heading[href*='/27-'],
#_mobile_top_menu a.mega-heading[href*='/27-']{
  --lvv-icw:28px;--lvv-ich:28px;--lvv-icm:10px;
  --lvv-ic:url(../img/menu/vapo.webp);
}
#_desktop_top_menu a.mega-heading[href*='/214-'],
#_mobile_top_menu a.mega-heading[href*='/214-']{
  --lvv-icw:28px;--lvv-ich:28px;--lvv-icm:10px;
  --lvv-ic:url(../img/menu/goupillon.webp);
}
#_desktop_top_menu a.mega-heading[href*='/68-'],
#_mobile_top_menu a.mega-heading[href*='/68-']{
  --lvv-icw:28px;--lvv-ich:28px;--lvv-icm:10px;
  --lvv-ic:url(../img/menu/pen.webp);
}
#_desktop_top_menu a.mega-heading[href*='/46-'],
#_mobile_top_menu a.mega-heading[href*='/46-']{
  --lvv-icw:28px;--lvv-ich:28px;--lvv-icm:10px;
  --lvv-ic:url(../img/menu/boite.webp);
}
#_desktop_top_menu a.mega-heading[href*='/47-'],
#_mobile_top_menu a.mega-heading[href*='/47-']{
  --lvv-icw:28px;--lvv-ich:28px;--lvv-icm:10px;
  --lvv-ic:url(../img/menu/grinder.webp);
}
#_desktop_top_menu a.mega-heading[href*='/48-'],
#_mobile_top_menu a.mega-heading[href*='/48-']{
  --lvv-icw:28px;--lvv-ich:28px;--lvv-icm:10px;
  --lvv-ic:url(../img/menu/briquet.webp);
}
#_desktop_top_menu a.mega-heading[href*='/49-'],
#_mobile_top_menu a.mega-heading[href*='/49-']{
  --lvv-icw:28px;--lvv-ich:28px;--lvv-icm:10px;
  --lvv-ic:url(../img/menu/bang.webp);
}
#_desktop_top_menu a.mega-heading[href*='/50-'],
#_mobile_top_menu a.mega-heading[href*='/50-']{
  --lvv-icw:28px;--lvv-ich:28px;--lvv-icm:10px;
  --lvv-ic:url(../img/menu/plateau.webp);
}
#_desktop_top_menu a.mega-heading[href*='/55-'],
#_mobile_top_menu a.mega-heading[href*='/55-']{
  --lvv-icw:28px;--lvv-ich:28px;--lvv-icm:10px;
  --lvv-ic:url(../img/menu/herbes.webp);
}
#_desktop_top_menu a.mega-heading[href*='/76-'],
#_mobile_top_menu a.mega-heading[href*='/76-']{
  --lvv-icw:28px;--lvv-ich:28px;--lvv-icm:10px;
  --lvv-ic:url(../img/menu/balance.webp);
}
#_desktop_top_menu a.mega-heading[href*='/184-'],
#_mobile_top_menu a.mega-heading[href*='/184-']{
  --lvv-icw:28px;--lvv-ich:28px;--lvv-icm:10px;
  --lvv-ic:url(../img/menu/cendrier.webp);
}
#_desktop_top_menu a.mega-heading[href*='/136-'],
#_mobile_top_menu a.mega-heading[href*='/136-']{
  --lvv-icw:28px;--lvv-ich:28px;--lvv-icm:10px;
  --lvv-ic:url(../img/menu/livre.webp);
}
#_desktop_top_menu a.mega-heading[href*='/165-'],
#_mobile_top_menu a.mega-heading[href*='/165-']{
  --lvv-icw:28px;--lvv-ich:28px;--lvv-icm:10px;
  --lvv-ic:url(../img/menu/bougie.webp);
}
#_desktop_top_menu a.mega-heading[href*='/186-'],
#_mobile_top_menu a.mega-heading[href*='/186-']{
  --lvv-icw:28px;--lvv-ich:28px;--lvv-icm:10px;
  --lvv-ic:url(../img/menu/tshirt.webp);
}
#_desktop_top_menu a.mega-heading[href*='/65-'],
#_mobile_top_menu a.mega-heading[href*='/65-']{
  --lvv-icw:28px;--lvv-ich:28px;--lvv-icm:10px;
  --lvv-ic:url(../img/menu/filtre.webp);
}
#_desktop_top_menu a.mega-heading[href*='/67-'],
#_mobile_top_menu a.mega-heading[href*='/67-']{
  --lvv-icw:28px;--lvv-ich:28px;--lvv-icm:10px;
  --lvv-ic:url(../img/menu/feuilles.webp);
}
#_desktop_top_menu a.mega-heading[href*='/275-'],
#_mobile_top_menu a.mega-heading[href*='/275-']{
  --lvv-icw:28px;--lvv-ich:28px;--lvv-icm:10px;
  --lvv-ic:url(../img/menu/spatule.webp);
}
#_desktop_top_menu a.mega-heading[href*='/226-'],
#_mobile_top_menu a.mega-heading[href*='/226-']{
  --lvv-icw:28px;--lvv-ich:28px;--lvv-icm:10px;
  --lvv-ic:url(../img/menu/coeur.webp);
}
#_desktop_top_menu a.mega-heading[href*='/267-'],
#_mobile_top_menu a.mega-heading[href*='/267-']{
  --lvv-icw:28px;--lvv-ich:28px;--lvv-icm:10px;
  --lvv-ic:url(../img/menu/huile.webp);
}
#_desktop_top_menu a.mega-heading[href*='/268-'],
#_mobile_top_menu a.mega-heading[href*='/268-']{
  --lvv-icw:28px;--lvv-ich:28px;--lvv-icm:10px;
  --lvv-ic:url(../img/menu/baume.webp);
}
#_desktop_top_menu a.level-3-link[href*='/251-'],
#_mobile_top_menu a.level-3-link[href*='/251-'],
#_desktop_top_menu a.level-3-link[href*='/256-'],
#_mobile_top_menu a.level-3-link[href*='/256-']{
  --lvv-icw:22px;--lvv-ich:22px;--lvv-ict:-11px;--lvv-icm:9px;
  --lvv-ic:url(../img/menu/sauce.webp);
}
#_desktop_top_menu a.level-3-link[href*='/253-'],
#_mobile_top_menu a.level-3-link[href*='/253-'],
#_desktop_top_menu a.level-3-link[href*='/258-'],
#_mobile_top_menu a.level-3-link[href*='/258-']{
  --lvv-icw:22px;--lvv-ich:22px;--lvv-ict:-11px;--lvv-icm:9px;
  --lvv-ic:url(../img/menu/cbc.webp);
}
#_desktop_top_menu a.level-3-link[href*='/250-'],
#_mobile_top_menu a.level-3-link[href*='/250-'],
#_desktop_top_menu a.level-3-link[href*='/255-'],
#_mobile_top_menu a.level-3-link[href*='/255-']{
  --lvv-icw:22px;--lvv-ich:22px;--lvv-ict:-11px;--lvv-icm:9px;
  --lvv-ic:url(../img/menu/ohhhc.webp);
}
#_desktop_top_menu a.level-3-link[href*='/294-'],
#_mobile_top_menu a.level-3-link[href*='/294-']{
  --lvv-icw:22px;--lvv-ich:22px;--lvv-ict:-11px;--lvv-icm:9px;
  --lvv-ic:url(../img/menu/pousse.webp);
}
#_desktop_top_menu a.level-3-link[href*='/208-'],
#_mobile_top_menu a.level-3-link[href*='/208-']{
  --lvv-icw:22px;--lvv-ich:22px;--lvv-ict:-11px;--lvv-icm:9px;
  --lvv-ic:url(../img/menu/cookie.webp);
}
#_desktop_top_menu a.level-3-link[href*='/209-'],
#_mobile_top_menu a.level-3-link[href*='/209-']{
  --lvv-icw:22px;--lvv-ich:22px;--lvv-ict:-11px;--lvv-icm:9px;
  --lvv-ic:url(../img/menu/sirop.webp);
}
#_desktop_top_menu a.level-3-link[href*='/278-'],
#_mobile_top_menu a.level-3-link[href*='/278-']{
  --lvv-icw:22px;--lvv-ich:22px;--lvv-ict:-11px;--lvv-icm:9px;
  --lvv-ic:url(../img/menu/ourson.webp);
}
#_desktop_top_menu a.level-3-link[href*='/279-'],
#_mobile_top_menu a.level-3-link[href*='/279-']{
  --lvv-icw:22px;--lvv-ich:22px;--lvv-ict:-11px;--lvv-icm:9px;
  --lvv-ic:url(../img/menu/chips.webp);
}

/* --- 2. ORDINATEUR : le panneau creme ----------------------------
   L illustration grandit d un rien au survol : c est le seul geste.
   Au niveau 3, elle remplace le tiret or de la feuille premium. --- */
@media (min-width:768px){
body #header #_desktop_top_menu a.mega-heading:before{
  content:'';
  flex:none;
  width:var(--lvv-icw,0);
  height:var(--lvv-ich,0);
  margin-right:var(--lvv-icm,0);
  background:var(--lvv-ic) center/contain no-repeat;
  transition:transform .15s;
}
body #header #_desktop_top_menu a.mega-heading:hover:before,
body #header #_desktop_top_menu a.mega-heading:focus-visible:before{
  transform:scale(1.12);
}
body #header #_desktop_top_menu a.level-3-link[href*='/251-'],
body #header #_desktop_top_menu a.level-3-link[href*='/253-'],
body #header #_desktop_top_menu a.level-3-link[href*='/250-'],
body #header #_desktop_top_menu a.level-3-link[href*='/256-'],
body #header #_desktop_top_menu a.level-3-link[href*='/258-'],
body #header #_desktop_top_menu a.level-3-link[href*='/255-'],
body #header #_desktop_top_menu a.level-3-link[href*='/294-'],
body #header #_desktop_top_menu a.level-3-link[href*='/208-'],
body #header #_desktop_top_menu a.level-3-link[href*='/209-'],
body #header #_desktop_top_menu a.level-3-link[href*='/278-'],
body #header #_desktop_top_menu a.level-3-link[href*='/279-']{
  padding-left:2rem !important;
}
body #header #_desktop_top_menu a.level-3-link[href*='/251-']:before,
body #header #_desktop_top_menu a.level-3-link[href*='/253-']:before,
body #header #_desktop_top_menu a.level-3-link[href*='/250-']:before,
body #header #_desktop_top_menu a.level-3-link[href*='/256-']:before,
body #header #_desktop_top_menu a.level-3-link[href*='/258-']:before,
body #header #_desktop_top_menu a.level-3-link[href*='/255-']:before,
body #header #_desktop_top_menu a.level-3-link[href*='/294-']:before,
body #header #_desktop_top_menu a.level-3-link[href*='/208-']:before,
body #header #_desktop_top_menu a.level-3-link[href*='/209-']:before,
body #header #_desktop_top_menu a.level-3-link[href*='/278-']:before,
body #header #_desktop_top_menu a.level-3-link[href*='/279-']:before{
  top:50% !important;
  width:var(--lvv-icw) !important;
  height:var(--lvv-ich) !important;
  margin-top:var(--lvv-ict);
  opacity:1 !important;
  background:var(--lvv-ic) center/contain no-repeat !important;
}
}

/* --- 3. TELEPHONE : le tiroir vert -------------------------------
   Le libelle passe en ligne souple pour poser l illustration devant.
   La fleche tourne toute seule quand le rayon est deroule : custom.css
   du theme retourne le bouton sur aria-expanded=true, que pose mobile.js
   (section MENU TELEPHONE). Ne pas ajouter de rotation ici : la v149 en
   avait une, et les deux demi-tours s annulaient.
   LE PANNEAU DEROULE S AFFICHE. custom.css du theme pose
   .mega-panel{display:none !important} sous 992 px : le panneau ne
   s ouvrait jamais au telephone, meme avec la classe in du collapse.
   La regle ci-dessous ne vaut que pour le panneau ouvert du tiroir.
   ------------------------------------------------------------------ */
@media (max-width:1099px){
html body #header #mobile_top_menu_wrapper .mega-panel.collapse.in{
  display:block !important;
}
html body #header #mobile_top_menu_wrapper a.mega-heading,
html body #header #mobile_top_menu_wrapper a.level-3-link{
  display:flex !important;
  align-items:center;
}
html body #header #mobile_top_menu_wrapper a.mega-heading:before,
html body #header #mobile_top_menu_wrapper a.level-3-link:before{
  content:'';
  flex:none;
  width:var(--lvv-icw,0);
  height:var(--lvv-ich,0);
  margin-right:var(--lvv-icm,0);
  background:var(--lvv-ic) center/contain no-repeat;
}
}

/* --- 4. TELEPHONE : LES LOGOS DES SIX MARQUES VAPO ---------------
   Meme principe que sur ordinateur (section LOGOS) : le logotype remplace
   le mot, qui reste dans le lien pour le moteur (taille de police nulle).
   Sur le vert du tiroir, un logo noir disparaitrait : il est pose sur une
   PLAQUE CREME, la meme que sur les pages de marque. La fusion
   multiplicative contre le creme efface le blanc des JPG ; le vert de
   DynaVap, deja detoure, passe tel quel.
   ------------------------------------------------------------------ */
@media (max-width:1099px){
html body #header #mobile_top_menu_wrapper a.mega-heading[href*='/276-'],
html body #header #mobile_top_menu_wrapper a.mega-heading[href*='/274-'],
html body #header #mobile_top_menu_wrapper a.mega-heading[href*='/272-'],
html body #header #mobile_top_menu_wrapper a.mega-heading[href*='/53-'],
html body #header #mobile_top_menu_wrapper a.mega-heading[href*='/271-'],
html body #header #mobile_top_menu_wrapper a.mega-heading[href*='/273-']{
  font-size:0 !important;
  letter-spacing:0 !important;
}
html body #header #mobile_top_menu_wrapper a.mega-heading[href*='/276-']:before,
html body #header #mobile_top_menu_wrapper a.mega-heading[href*='/274-']:before,
html body #header #mobile_top_menu_wrapper a.mega-heading[href*='/272-']:before,
html body #header #mobile_top_menu_wrapper a.mega-heading[href*='/53-']:before,
html body #header #mobile_top_menu_wrapper a.mega-heading[href*='/271-']:before,
html body #header #mobile_top_menu_wrapper a.mega-heading[href*='/273-']:before{
  width:132px;
  height:38px;
  margin:0;
  border-radius:3px;
  background-color:#FDFDF9;
  background-repeat:no-repeat;
  background-position:center;
  background-blend-mode:multiply;
  box-shadow:0 0 0 1px rgba(210,178,105,.45);
}
html body #header #mobile_top_menu_wrapper a.mega-heading[href*='/276-']:before{background-image:url(/img/m/7.jpg);background-size:auto 30px;}
html body #header #mobile_top_menu_wrapper a.mega-heading[href*='/274-']:before{background-image:url(/img/m/60.jpg);background-size:auto 15px;}
html body #header #mobile_top_menu_wrapper a.mega-heading[href*='/272-']:before{background-image:url(/img/cms/logo-dynavap-vert.png);background-size:auto 14px;}
html body #header #mobile_top_menu_wrapper a.mega-heading[href*='/53-']:before{background-image:url(../img/menu/katalyzer.webp);background-size:auto 30px;}
html body #header #mobile_top_menu_wrapper a.mega-heading[href*='/271-']:before{background-image:url(/img/m/88.jpg);background-size:auto 15px;}
html body #header #mobile_top_menu_wrapper a.mega-heading[href*='/273-']:before{background-image:url(/img/m/30.jpg);background-size:auto 18px;}
}

/* --- 5. TELEPHONE : UN TIROIR PLUS SERRE -----------------------
   Mesure le 25/09 a 390 px : un titre de rayon prenait 69 px (10 px de
   marge interieure, ligne de 30 px, filet or de 3 px, 16 px d ecart),
   un sous-rayon 50 px ; Accessoires deroule faisait 983 px. On vise
   45 px par rayon et 44 par sous-rayon, jamais moins : c est la zone
   de toucher minimale d un doigt. Le filet or passe a 1 px, les
   sous-rayons se decalent sous leur titre pour montrer la hierarchie.
   ------------------------------------------------------------------ */
@media (max-width:1099px){
html body #header #mobile_top_menu_wrapper .mega-panel.collapse.in{
  margin:0 0 6px !important;
  padding:2px 0 !important;
  border-top:1px solid rgba(210,178,105,.28) !important;
}
html body #header #mobile_top_menu_wrapper .mega-column{
  margin:0 !important;
  padding:0 !important;
}
html body #header #mobile_top_menu_wrapper a.mega-heading{
  min-height:45px;
  margin:0 !important;
  padding:10px 10px 10px 14px !important;
  line-height:22px !important;
  border-bottom:1px solid rgba(210,178,105,.22) !important;
}
html body #header #mobile_top_menu_wrapper .mega-list{
  margin:0 !important;
  padding:0 0 4px !important;
}
html body #header #mobile_top_menu_wrapper a.level-3-link{
  min-height:44px;
  padding:10px 10px 10px 40px !important;
  line-height:22px !important;
}
}

/* ==== FIN MENU ICONES ==== */

/* ==== DEBUT v150 - 2026-09-25 - VAGUE 3 : MARQUES, PLAN DU SITE, AFFICHER PLUS, FILTRES AU TELEPHONE ====
   S9 : page Marques avec recherche, index A-Z et trois colonnes. S10 : plan du site en sommaire.
   S11 : " Afficher plus " a la place de la page 2 (les produits suivants s ajoutent sous la grille).
   S12 : les filtres montent dans un panneau par le bas, la grille reste derriere.
   Borne au telephone. Le script (fin de mobile.js) pose les classes. */
@media (max-width:767px){
/* S9 */
html body#manufacturer #wrapper .lvv-marques-outils{padding:0 12px 10px}
html body#manufacturer #wrapper .lvv-marques-cherche{display:block;width:100%;box-sizing:border-box;font-size:16px;padding:11px 14px;border:1px solid rgba(217,178,95,.7);border-radius:22px;background:#F3EBD8;color:#1E2B20;margin:0 0 10px}
html body#manufacturer #wrapper .lvv-marques-az{display:flex;flex-wrap:nowrap;overflow-x:auto;gap:6px;scrollbar-width:none;padding:0 0 4px}
html body#manufacturer #wrapper .lvv-marques-az::-webkit-scrollbar{display:none}
html body#manufacturer #wrapper .lvv-marques-az button{flex:0 0 auto;min-width:40px;min-height:40px;border-radius:20px;border:1px solid rgba(217,178,95,.7);background:transparent;color:#F3EBD8;font-family:inherit;font-size:15px;font-weight:600;cursor:pointer}
html body#manufacturer #wrapper .lvv-marques-n{color:#C3D1B6;font-size:13px;margin:6px 0 0}
html body#manufacturer #wrapper #main ul.lvv-marques-grille{grid-template-columns:repeat(3,minmax(0,1fr)) !important;gap:8px !important;padding:0 10px !important}
html body#manufacturer #wrapper #main ul.lvv-marques-grille > li.brand{padding:6px !important;scroll-margin-top:96px}
html body#manufacturer #wrapper #main ul.lvv-marques-grille > li.brand .brand-infos p:first-child a{min-height:40px !important;line-height:1.2 !important;font-size:13px !important;display:flex !important;align-items:center;justify-content:center;overflow-wrap:anywhere}

/* S10 */
html body #wrapper .lvv-plan-tete{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:48px;text-align:left;background:#F3EBD8;color:#1E2B20;border:0;border-bottom:1px solid rgba(30,43,32,.15);padding:10px 44px 10px 14px;margin:0;position:relative;cursor:pointer;font-family:inherit;font-size:16px;font-weight:600}
html body #wrapper .lvv-plan-tete .lvv-plan-n{font-weight:400;font-size:13px;opacity:.7;margin-left:8px}
html body #wrapper .lvv-plan-tete::after{content:"";position:absolute;right:18px;top:50%;width:9px;height:9px;border-right:2px solid #2E4A32;border-bottom:2px solid #2E4A32;transform:translateY(-70%) rotate(45deg)}
html body #wrapper .lvv-plan-tete[aria-expanded="true"]::after{transform:translateY(-30%) rotate(-135deg)}
html body #wrapper .lvv-plan-tete.lvv-plan-sous{background:transparent;color:inherit;min-height:44px;font-size:15px;border-bottom:1px solid rgba(243,235,216,.15)}
html body #wrapper .lvv-plan-tete.lvv-plan-sous::after{border-color:#D9B25F}

/* S11 */
html body #wrapper .lvv-plus{display:block;width:calc(100% - 32px);margin:8px 16px 18px;min-height:48px;border:0;border-radius:24px;background:#D9B25F;color:#1E2B20;font-family:inherit;font-size:15px;font-weight:700;cursor:pointer}
html body #wrapper .lvv-plus[disabled]{opacity:.6}
html body #wrapper .lvv-plus-actif .pagination .page-list{display:none !important}

/* S12 */
html body.lvv-feuille-ouverte{overflow:hidden !important}
html body.lvv-feuille-ouverte #search_filters_wrapper{display:block !important;position:fixed !important;left:0 !important;right:0 !important;bottom:0 !important;top:auto !important;width:auto !important;max-height:78vh;overflow-y:auto;z-index:3001 !important;background:#F3EBD8 !important;border-radius:16px 16px 0 0;padding:8px 16px calc(16px + env(safe-area-inset-bottom)) !important;box-shadow:0 -8px 30px rgba(0,0,0,.35);margin:0 !important}
html body.lvv-feuille-ouverte #search_filters_wrapper *{color:#1E2B20}
html body.lvv-feuille-ouverte #search_filter_controls{position:sticky;top:-8px;z-index:2;background:#F3EBD8;display:flex !important;justify-content:space-between;align-items:center;padding:8px 0;margin:0 0 6px}
html body.lvv-feuille-ouverte #search_filter_controls .ok{min-height:44px;padding:0 22px;border-radius:22px;background:#2E4A32 !important;color:#FCFBF7 !important;border:0}
html body.lvv-feuille-ouverte #search_filter_controls .ok *{color:#FCFBF7 !important}
html body #wrapper ~ .lvv-voile, html body .lvv-voile{position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:3000;display:none}
html body.lvv-feuille-ouverte .lvv-voile{display:block}
html body.lvv-feuille-ouverte #content-wrapper{display:block !important}
/* hors de sa colonne, le panneau perd les regles du theme qui exigent #left-column : familles
   repliees, un seul chevron. On les redonne. Miss Bud (z-index 999999) se retire le temps du panneau. */
html body.lvv-feuille-ouverte > #search_filters_wrapper .facet .collapse{display:none !important}
html body.lvv-feuille-ouverte > #search_filters_wrapper .facet .collapse.in{display:block !important}
html body.lvv-feuille-ouverte > #search_filters_wrapper .collapse-icons .remove{display:none !important}
html body.lvv-feuille-ouverte > #search_filters_wrapper .title[aria-expanded="true"] .collapse-icons .add{display:none !important}
html body.lvv-feuille-ouverte > #search_filters_wrapper .title[aria-expanded="true"] .collapse-icons .remove{display:inline-block !important}
html body.lvv-feuille-ouverte .lvv-mbud{visibility:hidden !important}
html body.lvv-feuille-ouverte > #search_filters_wrapper .facet{border-bottom:1px solid rgba(30,43,32,.15);padding:0 !important;margin:0 !important}
html body.lvv-feuille-ouverte > #search_filters_wrapper .facet .title{display:flex !important;justify-content:space-between;align-items:center;min-height:50px;padding:0 4px !important;cursor:pointer}
html body.lvv-feuille-ouverte > #search_filters_wrapper .facet .title > *{flex:0 0 auto;width:auto !important;float:none !important;position:static !important}
html body.lvv-feuille-ouverte > #search_filters_wrapper .facet .title .facet-title{flex:1 1 auto;margin:0 !important;font-size:14px !important;letter-spacing:1px;color:#1E2B20 !important}
html body.lvv-feuille-ouverte > #search_filters_wrapper .facet .collapse-icons{display:flex !important;align-items:center;justify-content:center;width:32px !important;height:32px;padding:0 !important;margin:0 !important}
html body.lvv-feuille-ouverte > #search_filters_wrapper .facet .collapse-icons i{position:static !important;margin:0 !important;float:none !important;top:auto !important;left:auto !important;right:auto !important;transform:none !important}
html body.lvv-feuille-ouverte > #search_filters_wrapper .facet ul.collapse.in{margin:0 0 10px !important}
html body.lvv-feuille-ouverte > #search_filters_wrapper .facet li{min-height:44px;display:flex;align-items:center}
}
/* ==== FIN v150 - vague 3 ==== */

/* ================================================================
   LA VOIE VERTE - BANDEAU COOKIES COMPACT AU TELEPHONE - 2026-09-25
   ----------------------------------------------------------------
   Module pccookieconsent (bibliotheque cookieconsent, .cc-window).
   Au telephone, le bandeau empilait texte et bouton : 175 px, soit
   21 % d un ecran de 390 x 844 et 27 % d un 360 x 640. Ici texte et
   bouton passent cote a cote, texte a 12,5 px. Avec le texte court
   pose le meme jour dans le reglage du module (contexte WEB :
   Cookies necessaires uniquement, aucun traceur publicitaire. / lien
   En savoir plus) : 64 px, 8 %. Choix B valide par Florent.

   NE TOUCHE NI LA POSITION NI LES CLASSES du bandeau : les regles de
   la section barre d achat et bandeau de consentement (v140) restent
   maitresses - bandeau au-dessus de la barre d achat sur une fiche,
   Miss Bud masquee tant qu on n a pas repondu, bandeau cache derriere
   la porte d age. Bouton J accepte : 44 px de haut au moins.

   Ordinateur : rien ne change (bandeau flottant a droite).
   POUR REVENIR EN ARRIERE : retirer cette section, et remettre le
   texte d origine dans le reglage du module (bandeau-cookies-2026-09-25/
   reglage-avant.json).
   ================================================================ */

/* ==== DEBUT BANDEAU COOKIES ==== */
@media (max-width:767px){
html body .cc-window.cc-floating.cc-bottom{
  flex-direction:row !important;
  align-items:center !important;
  flex-wrap:nowrap !important;
  padding:10px 12px !important;
  gap:12px;
  max-width:none !important;
}
html body .cc-window.cc-floating .cc-message{
  margin:0 !important;
  flex:1 1 auto !important;
  font-size:12.5px !important;
  line-height:1.4 !important;
}
html body .cc-window.cc-floating .cc-compliance{
  flex:0 0 auto !important;
}
html body .cc-window.cc-floating .cc-btn{
  display:flex !important;
  align-items:center;
  justify-content:center;
  min-height:44px;
  padding:0 16px !important;
  white-space:nowrap;
  font-size:14px !important;
}
}
/* ==== FIN BANDEAU COOKIES ==== */

/* ==== DEBUT v155 - 2026-09-25 - VAGUE 4 : BOUTON HAUT DE PAGE FLOTTANT AU TELEPHONE ====
   S13 : un rond de 48 px en bas a gauche (Miss Bud est a droite, son cadre laisse passer les
   touchers), au-dessus de la barre d achat sur les fiches (--lvv-barre-h, publiee par mobile.js).
   Il apparait quand on remonte apres 1,5 ecran, disparait quand on redescend ou pres du haut.
   Borne au telephone. Le script (fin de mobile.js) le cree. Nom : lvv-remonter, parce que
   .lvv-haut appartient deja au gabarit des fiches Tomine (rayon 294, 11 regles) - verifie le 25/09. */
@media (max-width:767px){
html body .lvv-remonter{position:fixed;left:16px;bottom:calc(var(--lvv-barre-h, 0px) + 16px);z-index:60;width:48px;height:48px;border-radius:50%;border:1px solid rgba(217,178,95,.8);background:rgba(30,43,32,.92);color:#F3EBD8;display:flex;align-items:center;justify-content:center;padding:0;margin:0;cursor:pointer;box-shadow:0 4px 14px rgba(0,0,0,.35);opacity:0;visibility:hidden;transform:translateY(12px);transition:opacity .2s,transform .2s,visibility 0s linear .2s}
html body .lvv-remonter::before{content:"";width:12px;height:12px;border-left:2px solid #D9B25F;border-top:2px solid #D9B25F;transform:translateY(3px) rotate(45deg)}
html body .lvv-remonter.lvv-remonter-vu{opacity:1;visibility:visible;transform:none;transition:opacity .2s,transform .2s,visibility 0s}
html body.lvv-feuille-ouverte .lvv-remonter{display:none !important}
}
/* ==== FIN v155 - vague 4 ==== */

/* ===== RAYONS A L ORDINATEUR (2026-09-25) : etageres par rayon et raccourcis, comme au
   telephone. Tout est sous (min-width:768px) : le telephone garde ses propres regles. ===== */
@media (min-width:768px){
html body #wrapper .lvv-etageres{display:block;margin:0 0 8px}
html body #wrapper .lvv-etagere{margin:0 0 34px}
html body #wrapper .lvv-etagere-tete{display:flex;align-items:center;gap:14px;padding:0 0 12px;margin:0 0 14px;border-bottom:1px solid rgba(217,178,95,.35);color:#F3EBD8}
html body #wrapper .lvv-etagere-tete b{font-size:21px;letter-spacing:.4px;font-weight:600}
html body #wrapper .lvv-etagere-n{font-size:14px;opacity:.65;margin-right:auto}
html body #wrapper .lvv-etagere-nav{display:flex;gap:8px}
html body #wrapper .lvv-etagere-pleine .lvv-etagere-nav{display:none}
html body #wrapper .lvv-etagere-nav button{width:36px;height:36px;border-radius:50%;border:1px solid rgba(217,178,95,.7);background:transparent;color:#F3EBD8;font-size:22px;line-height:1;padding:0 0 3px;cursor:pointer}
html body #wrapper .lvv-etagere-nav button:hover:not(:disabled){background:#D9B25F;border-color:#D9B25F;color:#1E2B20}
html body #wrapper .lvv-etagere-nav button:disabled{opacity:.3;cursor:default}
html body #wrapper .lvv-etagere-tete a{color:#D9B25F !important;font-size:15px;white-space:nowrap;padding:8px 0 8px 6px}
html body #wrapper .lvv-etagere-tete a:hover{text-decoration:underline}
/* la piste : une rangee qui glisse ; marge haute et basse pour qu une carte au survol ne soit pas rognee */
/* justify-content : le theme centre sa grille ; une rangee plus large que l ecran deborderait des deux cotes et son debut serait hors d atteinte */
html body #wrapper .lvv-etagere-piste{display:flex !important;flex-wrap:nowrap !important;justify-content:flex-start !important;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;gap:16px;padding:6px 2px 12px !important;margin:0 !important;scrollbar-width:none}
html body #wrapper .lvv-etagere-piste::-webkit-scrollbar{display:none}
html body #wrapper .lvv-etagere-piste > *{flex:0 0 calc((100% - 32px) / 3) !important;max-width:calc((100% - 32px) / 3) !important;width:auto !important;scroll-snap-align:start;padding:0 !important;margin:0 !important;float:none !important}
html body #wrapper .lvv-puces{display:flex;flex-wrap:wrap;gap:10px;padding:0;margin:0 0 22px;max-width:100%;box-sizing:border-box}
html body #wrapper .lvv-puce{flex:0 0 auto;min-height:38px;padding:8px 18px;border-radius:20px;border:1px solid rgba(217,178,95,.7);background:transparent;color:#F3EBD8;font-family:inherit;font-size:14px;font-weight:600;line-height:1.2;white-space:nowrap;cursor:pointer;transition:background .15s,color .15s}
html body #wrapper .lvv-puce:hover{border-color:#D9B25F;background:rgba(217,178,95,.14)}
html body #wrapper .lvv-puce[aria-pressed="true"]{background:#D9B25F;border-color:#D9B25F;color:#1E2B20}
html body #wrapper .lvv-puce-n{font-weight:400;opacity:.75;margin-left:5px}
}
@media (min-width:1200px){
html body #wrapper .lvv-etagere-piste > *{flex-basis:calc((100% - 48px) / 4) !important;max-width:calc((100% - 48px) / 4) !important}
}

/* ==== DEBUT v157 - 2026-09-25 - VAGUE 5 : PREMIER ECRAN DES RAYONS AU TELEPHONE ====
   S14 plaque du titre compacte ; S15 nombre de produits, tri et Filtrer sur une rangee ;
   S16 tuiles des sous-rayons en bande qui glisse ; S17 introduction coupee a trois lignes ;
   S18 carrousel des vitrines de marque retire au telephone (option A)
   (le script pose .lvv-intro-court et le bouton). Borne au telephone, rayons seulement. */
@media (max-width:767px){
/* S14 */
html body#category #wrapper #main #js-product-list-header h1.h1{margin:6px auto 10px !important;padding:9px 18px !important;font-size:19px !important;line-height:1.25 !important}
/* l embleme reduit a 18 px devenait une tache illisible : au telephone, la plaque garde son cadre et perd l embleme */
html body#category #wrapper #main #js-product-list-header h1.h1::before{display:none !important}
/* S15 */
html body#category #wrapper #js-product-list-top{display:flex !important;flex-wrap:nowrap !important;align-items:center !important;gap:8px;margin:0 0 10px !important;padding:0 15px !important}
html body#category #wrapper #js-product-list-top > .total-products{display:block !important;order:0;flex:0 0 auto;width:auto !important;max-width:none !important;padding:0 !important;margin:0 !important}
html body#category #wrapper #js-product-list-top > .total-products p{margin:0 !important;padding:0 !important;border:0 !important;background:none !important;font-size:13px !important;letter-spacing:.5px;white-space:nowrap}
html body#category #wrapper #js-product-list-top > div:not(.total-products){order:1;flex:1 1 auto;min-width:0;width:auto !important;max-width:none !important;padding:0 !important;margin:0 !important}
html body#category #wrapper #js-product-list-top .sort-by-row{margin:0 !important;flex-wrap:nowrap !important;gap:8px}
html body#category #wrapper #js-product-list-top .products-sort-order{flex:1 1 auto;min-width:0;width:auto !important;max-width:none !important;padding:0 !important}
html body#category #wrapper #js-product-list-top .products-sort-order .select-title{width:100% !important;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-size:14px !important}
html body#category #wrapper #js-product-list-top .filter-button{flex:0 0 auto;width:auto !important;max-width:none !important;padding:0 !important}
/* S16 */
html body#category #wrapper #category-description table.lvv-rayons, html body#category #wrapper #category-description table.lvv-rayons > tbody{display:block !important;width:100% !important;margin:0 0 14px !important}
html body#category #wrapper #category-description table.lvv-rayons > tbody{display:flex !important;flex-wrap:nowrap;overflow-x:auto;gap:8px;scroll-snap-type:x proximity;scrollbar-width:none;padding:0 0 4px}
html body#category #wrapper #category-description table.lvv-rayons > tbody::-webkit-scrollbar{display:none}
html body#category #wrapper #category-description table.lvv-rayons tr{display:contents !important}
html body#category #wrapper #category-description table.lvv-rayons td{display:block !important;flex:0 0 29% !important;width:29% !important;max-width:29% !important;padding:0 !important;scroll-snap-align:start}
html body#category #wrapper #category-description table.lvv-rayons td *{font-size:12px !important;line-height:1.25 !important}
html body#category #wrapper #category-description table.lvv-rayons td img{width:100% !important;height:auto !important;margin:0 0 4px !important}
/* S17 */
html body#category #wrapper .lvv-intro-court{display:-webkit-box !important;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden !important;margin-bottom:4px !important}
/* S18 - vitrines de marque (option A, choisie par Florent le 25/09) : logo, titre et chapeau restent ;
   le carrousel d appareils - les memes que la grille juste dessous - se retire au telephone */
html body#category #wrapper .sb-marque .sb-piste, html body#category #wrapper .sb-marque .sb-indice{display:none !important}
html body#category #wrapper .sb-marque .sb-cadre{padding-bottom:14px !important}
html body#category #wrapper .lvv-intro-suite{display:inline-block;background:none;border:0;padding:4px 0 10px;margin:0;color:#D9B25F;font-family:inherit;font-size:14px;font-weight:600;cursor:pointer}
}
/* ==== FIN v157 - vague 5 ==== */

/* ==== DEBUT barre d achat rapide des fleurs - 25/09/2026 ====
   Demande de Florent : au telephone, la barre collee des fleurs propose 4 g d emblee,
   avec 9 g et 20 g a cote (Monki : 5, 10, 40 g ; les quantites viennent du tableau des
   remises, cf. M24 dans views/js/mobile.js). Rayons 243, 294, 248, 250, 251, 253.
   La barre (.lvv-br) est posee par le script, hors de #wrapper ; tout le reste de cette
   section ne s applique que si elle existe (body.lvv-br-on) : un script en panne rend la
   barre d avant. Le formulaire du theme quitte le bas d ecran et reste dans la page,
   sous les cartes de paliers (" Pour 1 g ou une autre quantite, utilisez le champ
   ci-dessous "). La barre Tomine du bloc 32 (.lvv-achat) s efface derriere celle-ci.
   Chaque bouton porte sa remise ; le moins cher au gramme des trois porte " Plus avantageux " ;
   un toucher bloque la barre jusqu a la mise a jour du panier ; la barre s efface tant que les
   cartes de paliers ou le formulaire de la page sont a l ecran (demandes de Florent, 25/09).
   Couleurs : encre et or sur toutes les fleurs, comme la barre du gabarit Tomine — la
   premiere version creme jurait sur les pages de nuit (retour de Florent, 25/09).
   Retour arriere : supprimer cette section et le bloc M24 de mobile.js. */
@media (max-width:767px){
  .lvv-br{position:fixed;left:0;right:0;bottom:0;z-index:50;box-sizing:border-box;
    display:flex;align-items:stretch;gap:8px;margin:0;
    padding:8px 12px calc(8px + env(safe-area-inset-bottom));
    background:var(--encre,#1A2120);border-top:1px solid var(--or,#B08D3F);box-shadow:0 -2px 10px rgba(0,0,0,.35)}
  .lvv-br .lvv-br-b{flex:0 0 74px;min-height:48px;margin:0;padding:4px 6px;box-sizing:border-box;
    display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;
    border:1px solid var(--or,#B08D3F);border-radius:2px;background:transparent;color:#FCFBF7;
    font-family:"Source Sans Pro",sans-serif;line-height:1.15;text-transform:none;letter-spacing:0;
    cursor:pointer;-webkit-tap-highlight-color:transparent}
  .lvv-br .lvv-br-principal{flex:1 1 auto;background:var(--or,#B08D3F);color:#1A2120}
  .lvv-br .lvv-br-q{font-size:15px;font-weight:700;white-space:nowrap}
  .lvv-br .lvv-br-p{font-size:13px;font-weight:600;white-space:nowrap}
  .lvv-br .lvv-br-principal .lvv-br-q{font-size:14px;font-weight:600;letter-spacing:.5px}
  .lvv-br .lvv-br-principal .lvv-br-p{font-size:16px;font-weight:700}
  /* remise, " Plus avantageux ", toucher en cours, " Ajoute ", barre effacee sur les offres */
  .lvv-br{padding-top:13px;transition:transform .22s ease}
  .lvv-br.lvv-br-cache{transform:translateY(110%);visibility:hidden;transition:transform .22s ease,visibility 0s linear .22s}
  .lvv-br .lvv-br-b{position:relative;transition:opacity .15s}
  .lvv-br .lvv-br-r{font-size:11px;font-weight:600;color:var(--or-clair,#D2B269);white-space:nowrap}
  .lvv-br .lvv-br-principal .lvv-br-r{font-size:12px;color:#1A2120;opacity:.75}
  .lvv-br .lvv-br-top:not(.lvv-br-principal){border-color:var(--or-pale,#EFDCA8);background:rgba(239,220,168,.12)}
  .lvv-br .lvv-br-tag{position:absolute;top:-8px;left:50%;transform:translateX(-50%);white-space:nowrap;
    padding:2px 5px;border-radius:2px;background:var(--or-pale,#EFDCA8);color:#1A2120;
    font-size:9px;font-weight:700;line-height:1.2;letter-spacing:.06em;text-transform:uppercase}
  .lvv-br.lvv-br-occupe .lvv-br-b{opacity:.55}
  .lvv-br.lvv-br-occupe .lvv-br-b.lvv-br-ok{opacity:1}
  .lvv-br .lvv-br-ok .lvv-br-q{font-size:0 !important}
  .lvv-br .lvv-br-ok .lvv-br-q::after{content:"Ajout\E9";font-size:14px;letter-spacing:.5px}
  /* le formulaire du theme rentre dans la page */
  body#product.lvv-br-on .product-actions > form > .product-add-to-cart{
    position:static !important;margin:14px 0 0 !important;box-shadow:none !important}
  /* le formulaire de la page, encre et or comme la barre (la creme jurait sur la nuit, choix
     de Florent 25/09). Les encres sombres que la maison force dans l ancienne barre claire
     (disponibilite 4 identifiants, quantite minimale 2) sont reprises ici avec un cran de plus. */
  html body#product.lvv-br-on #wrapper #add-to-cart-or-refresh .product-add-to-cart{
    background:var(--encre,#1A2120) !important;border:1px solid var(--or,#B08D3F) !important;border-radius:2px;
    padding:12px !important}
  html body#product.lvv-br-on #wrapper #add-to-cart-or-refresh .product-add-to-cart #quantity_wanted{
    background:transparent !important;color:#FCFBF7 !important;border:1px solid var(--or,#B08D3F) !important;box-shadow:none !important}
  html body#product.lvv-br-on #wrapper #add-to-cart-or-refresh .product-add-to-cart .bootstrap-touchspin{box-shadow:none !important}
  html body#product.lvv-br-on #wrapper #add-to-cart-or-refresh .product-add-to-cart .btn-touchspin{
    background:transparent !important;border:1px solid var(--or,#B08D3F) !important;color:var(--or-pale,#EFDCA8) !important}
  html body#product.lvv-br-on #wrapper #add-to-cart-or-refresh .product-add-to-cart .btn-touchspin i{color:var(--or-pale,#EFDCA8) !important}
  html body#product.lvv-br-on #wrapper #add-to-cart-or-refresh .product-add-to-cart .add-to-cart{
    background:var(--or,#B08D3F) !important;border-color:var(--or,#B08D3F) !important;color:#1A2120 !important}
  html.lvv-nuit body#product.lvv-br-on #wrapper #add-to-cart-or-refresh .product-add-to-cart #product-availability,
  html.lvv-nuit body#product.lvv-br-on #wrapper #add-to-cart-or-refresh .product-add-to-cart .product-minimal-quantity{
    color:var(--or-pale,#EFDCA8) !important}
  /* les quantites dans la police des cartes de paliers */
  .lvv-br .lvv-br-q{font-family:Marcellus,Georgia,serif;font-weight:400}
  .lvv-br .lvv-br-principal .lvv-br-q{font-weight:400;letter-spacing:.02em}
  .lvv-br .lvv-br-ok .lvv-br-q::after{font-family:"Source Sans Pro",sans-serif;font-weight:600}
  body#product.lvv-br-on .product-add-to-cart .lvv-barre-prix{display:none !important}
  body.lvv-br-on .lvv-achat{display:none !important}
  .lvv-br .lvv-br-t{display:none}
  /* quatre boutons (100 g ajoute le 26/09) : les petits se resserrent pour tenir en 375 px */
  .lvv-br.lvv-br-4{gap:6px;padding-left:8px;padding-right:8px}
  .lvv-br.lvv-br-4 .lvv-br-b{flex-basis:62px;padding:4px 2px}
  .lvv-br.lvv-br-4 .lvv-br-principal{flex:1 1 auto;min-width:0}
  .lvv-br.lvv-br-4 .lvv-br-q{font-size:14px}
  .lvv-br.lvv-br-4 .lvv-br-p{font-size:12px}
  .lvv-br.lvv-br-4 .lvv-br-r{font-size:10px}
  .lvv-br.lvv-br-4 .lvv-br-principal .lvv-br-q{font-size:13px}
  .lvv-br.lvv-br-4 .lvv-br-principal .lvv-br-p{font-size:15px}
  .lvv-br.lvv-br-4 .lvv-br-principal .lvv-br-r{font-size:11px}
  .lvv-br.lvv-br-4 .lvv-br-tag{font-size:8px;padding:2px 4px;letter-spacing:.04em}
  /* plus large que son bouton : sur le dernier, elle s aligne a droite pour ne pas sortir de l ecran */
  .lvv-br.lvv-br-4 .lvv-br-b:last-child .lvv-br-tag{left:auto;right:0;transform:none}
}
/* A L ORDINATEUR (26/09, " ca doit etre la meme chose sur pc ", Florent) : la meme barre, en
   bas d ecran, effacee tant que les cartes de paliers ou le formulaire sont a l ecran (au
   premier ecran de la fiche, donc : elle arrive quand on descend, comme la barre Tomine du
   bloc 32, qu elle remplace). Le nom du produit a gauche, les trois boutons a droite, dans la
   largeur du contenu. Miss Bud monte au-dessus de la barre. Le formulaire de la page reste tel
   quel : a l ordinateur il est deja dans la colonne d achat. */
@media (min-width:768px){
  .lvv-br{position:fixed;left:0;right:0;bottom:0;z-index:50;box-sizing:border-box;
    display:flex;align-items:center;gap:12px;margin:0;
    padding:14px max(24px, calc((100% - 1180px) / 2)) 12px;
    background:var(--encre,#1A2120);border-top:1px solid var(--or,#B08D3F);box-shadow:0 -2px 12px rgba(0,0,0,.35);
    transition:transform .22s ease}
  .lvv-br.lvv-br-cache{transform:translateY(110%);visibility:hidden;transition:transform .22s ease,visibility 0s linear .22s}
  .lvv-br .lvv-br-t{flex:1 1 auto;min-width:0;font-family:Marcellus,Georgia,serif;font-size:18px;line-height:1.3;
    color:var(--or-pale,#EFDCA8);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .lvv-br .lvv-br-b{position:relative;flex:0 0 112px;min-height:54px;margin:0;padding:5px 8px;box-sizing:border-box;
    display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;
    border:1px solid var(--or,#B08D3F);border-radius:2px;background:transparent;color:#FCFBF7;
    font-family:"Source Sans Pro",sans-serif;line-height:1.15;text-transform:none;letter-spacing:0;
    cursor:pointer;transition:opacity .15s,background-color .15s}
  .lvv-br .lvv-br-b:hover{background:rgba(239,220,168,.14)}
  .lvv-br .lvv-br-principal{flex:0 0 260px;background:var(--or,#B08D3F);color:#1A2120}
  .lvv-br .lvv-br-principal:hover{background:var(--or-clair,#D2B269)}
  .lvv-br .lvv-br-q{font-family:Marcellus,Georgia,serif;font-size:17px;font-weight:400;white-space:nowrap}
  .lvv-br .lvv-br-p{font-size:14px;font-weight:600;white-space:nowrap}
  .lvv-br .lvv-br-principal .lvv-br-q{font-size:16px;letter-spacing:.02em}
  .lvv-br .lvv-br-principal .lvv-br-p{font-size:17px;font-weight:700}
  .lvv-br .lvv-br-r{font-size:12px;font-weight:600;color:var(--or-clair,#D2B269);white-space:nowrap}
  .lvv-br .lvv-br-principal .lvv-br-r{font-size:13px;color:#1A2120;opacity:.75}
  .lvv-br .lvv-br-top:not(.lvv-br-principal){border-color:var(--or-pale,#EFDCA8);background:rgba(239,220,168,.12)}
  .lvv-br .lvv-br-tag{position:absolute;top:-9px;left:50%;transform:translateX(-50%);white-space:nowrap;
    padding:2px 6px;border-radius:2px;background:var(--or-pale,#EFDCA8);color:#1A2120;
    font-size:10px;font-weight:700;line-height:1.2;letter-spacing:.06em;text-transform:uppercase}
  .lvv-br.lvv-br-occupe .lvv-br-b{opacity:.55}
  .lvv-br.lvv-br-occupe .lvv-br-b.lvv-br-ok{opacity:1}
  .lvv-br .lvv-br-ok .lvv-br-q{font-size:0 !important}
  .lvv-br .lvv-br-ok .lvv-br-q::after{content:"Ajout\E9";font-family:"Source Sans Pro",sans-serif;font-weight:600;font-size:15px}
  body.lvv-br-on .lvv-achat{display:none !important}
  body#product.lvv-br-on .lvv-mbud{bottom:calc(var(--lvv-barre-h, 0px) - 8px) !important;transition:bottom .22s ease}
  /* la fin du pied de page ne passe pas sous la barre : sa hauteur est reservee en bas de page */
  /* (le body a une hauteur figee par le theme : le reserver sur lui n allonge pas la page) */
  body#product.lvv-br-on #footer{padding-bottom:92px !important}
}
/* ==== FIN barre d achat rapide des fleurs - 25/09/2026 ==== */

/* ==== DEBUT v159 - 2026-09-25 - RAYON 26 : LA GRILLE DES MARQUES AU-DESSUS DES PRODUITS ====
   Demande de Florent. Les tuiles de marque (table.lvv-rayons) vivent DANS
   #category-description. Sur le 26, c est tout #category-description qui recevait
   order:10 (section "Rayon 26 : le guide passe sous les produits") : la grille
   partait avec le guide, sous les 167 produits (7 167 px du haut a 1440).
   On ouvre la description en display:contents : ses enfants deviennent des items
   de #main, le texte garde order:10, la grille prend order:0 et se range sous le
   titre. Le .block-category-inner est deja en display:contents ici.
   Va avec une ligne du script de repli (bloc HTML Box 23, replierEclate) qui ne
   choisit plus la grille comme "plus grand enfant" a replier - sans elle, la
   grille sortait coupee a 520 px a l ordinateur (defaut deja present sur le 40).
   Retour arriere : retirer cette section. Dossier : grille-vapo-en-tete-2026-09-25. */
body#category.category-id-26 #js-product-list-header #category-description{display:contents!important}
body#category.category-id-26 #js-product-list-header #category-description > *{order:10}
body#category.category-id-26 #js-product-list-header #category-description > table.lvv-rayons{order:0}
/* ==== FIN v159 - rayon 26 grille en tete ==== */


/* ==== DEBUT - 2026-09-25 - ETAGERES COMPLETES ET LISTE SERREE (longueur-rayons-2026-09-25) ====
   A. Rayons parents : la grille du theme et sa pagination laissent la place aux etageres
      completes (script : bloc ETAGERES COMPLETES de mobile.js). Telephone et ordinateur.
   C. Telephone, sous-rayons d Accessoires (liste couchee) : vignette 104 -> 84 px, pastille
      Selection posee sur la photo au lieu d avoir sa ligne, marges resserrees.
   Avec ce bloc, les 8 selecteurs « body#category.category-id-40 #products ... » de la section
   « cartes couchees sur telephone, rayon Accessoires » sont retires : le rayon 40 n a plus de
   grille, et ses etageres ne doivent pas etre couchees. Les sous-rayons (category-id-parent-40)
   restent en liste - sauf quand leurs etageres par famille sont actives : les 8 selecteurs
   « category-id-parent-40 #products » de la meme section prennent :not(.lvv-etag-complet).
   Retour arriere : retirer ce bloc ET le bloc ETAGERES COMPLETES de mobile.js. */

/* A - la grille, la pagination et « Afficher plus » s effacent devant les etageres */
html body.lvv-etag-complet #js-product-list .products:not(.lvv-etagere-piste),
html body.lvv-etag-complet #js-product-list .pagination,
html body.lvv-etag-complet #js-product-list .lvv-plus,
html body.lvv-etag-complet #js-product-list-bottom,
html body.lvv-tout-charge #js-product-list .pagination,
html body.lvv-tout-charge #js-product-list .lvv-plus{display:none !important}
html body #wrapper .lvv-etageres-attente{min-height:70vh}
html body #wrapper .lvv-etag-charge{color:#F3EBD8;opacity:.7;font-size:15px;padding:24px 16px;margin:0}
html body #wrapper .lvv-etageres-completes{margin-top:14px}

@media (max-width:767px){
  html body #wrapper .lvv-etageres-completes .lvv-etagere-tete{justify-content:flex-start;gap:10px}
  html body #wrapper .lvv-etageres-completes .lvv-etagere-n{font-size:13px;opacity:.6;margin-right:auto;white-space:nowrap}
  html body #wrapper .lvv-etageres-completes .lvv-etagere-nav{display:none}
  /* Accessoires : la photo y compte moins que sur les fleurs, trois cartes par vue ou presque */
  html body#category.category-id-40 #wrapper .lvv-etagere-piste > *,
  html body#category[class~='category-id-parent-40'] #wrapper .lvv-etagere-piste > *{flex:0 0 34% !important;max-width:34% !important;width:34% !important}
  html body#category.category-id-40 #wrapper .lvv-etagere-piste .lvv-nom-entier,
  html body#category[class~='category-id-parent-40'] #wrapper .lvv-etagere-piste .lvv-nom-entier{font-size:13px !important}
}

/* A - ordinateur large : cinq cartes par vue sur les etageres completes (quatre ailleurs) */
@media (min-width:1200px){
  html body #wrapper .lvv-etageres-completes .lvv-etagere-piste > *{flex-basis:calc((100% - 64px) / 5) !important;max-width:calc((100% - 64px) / 5) !important}
}

/* C - liste serree des sous-rayons d Accessoires (telephone, sous 576 px comme la liste) */
@media (max-width:575px){
  body#category[class~='category-id-parent-40']:not(.lvv-etag-complet) #products{--lvv-vig:84px}
  html body#category[class~='category-id-parent-40']:not(.lvv-etag-complet) #wrapper #products .products > div{margin-bottom:6px !important}
  html body#category[class~='category-id-parent-40']:not(.lvv-etag-complet) #products .thumbnail-container{margin-bottom:0 !important;position:relative}
  /* le texte n est plus un repere : la pastille se cale sur la carte, donc sur la photo */
  html body#category[class~='category-id-parent-40']:not(.lvv-etag-complet) #products .thumbnail-container .product-description{padding:4px 10px 4px 10px !important;position:static !important}
  html body#category[class~='category-id-parent-40']:not(.lvv-etag-complet) #products .thumbnail-container .lvv-sel{
    position:absolute !important;top:4px !important;left:4px !important;margin:0 !important;
    transform:scale(.78);transform-origin:top left;z-index:2}
}
/* ==== FIN - ETAGERES COMPLETES ET LISTE SERREE ==== */

/* DEBUT nuit-textes-illisibles (2026-09-26)
   1. RAYON 26 VAPORISATION. La v159 a ouvert sa description en display:contents
      (la grille des marques remonte au-dessus des produits) : sa carte creme n est
      plus peinte, et le texte du rayon tombait a meme la nuit - 1,1 pour le chapeau,
      2,2 a 2,7 pour le guide. La section "nuit" section 2 l avait ecarte expres ("sa
      description, elle, est peinte sur creme") : ce n est plus vrai, il la rejoint.
      Memes regles, meme exclusions, pour le seul 26. */
html.lvv-nuit body#category.category-id-26 #wrapper #category-description :is(p,li,dd,dt,td,th,span,em,i,small,sup,sub,div,figcaption,label):not([style*="background"]):not([style*="background"] *):not(.lvv-rayons *):not(h2 *):not(h3 *):not(.lvv-repli-bouton){ color:#C3D1B6 !important; }
html.lvv-nuit body#category.category-id-26 #wrapper #category-description :is(strong,b):not([style*="background"] *):not(.lvv-rayons *):not(h2 *):not(h3 *){ color:#EFDCA8 !important; }
html.lvv-nuit body#category.category-id-26 #wrapper #category-description a:not([style*="background"]):not([style*="background"] *):not(.lvv-rayons *):not(h2 *):not(h3 *),
html.lvv-nuit body#category.category-id-26 #wrapper #category-description a:not([style*="background"]):not([style*="background"] *):not(.lvv-rayons *):not(h2 *):not(h3 *) *{ color:#D2B269 !important; }
html.lvv-nuit body#category.category-id-26 #wrapper #category-description h3:not([style*="background"]):not([style*="background"] *){ color:#EFDCA8 !important; }
html.lvv-nuit body#category.category-id-26 #wrapper #category-description .lvv-repli{ --lvv-fond:#101A12 !important; }

/* 2. LES TETES D ACCORDEON, AU TELEPHONE. Le bouton est une bande creme #F3EBD8,
   mais la regle de nuit section 2 repeint tout span du texte en brume #C3D1B6 : titre et
   resume a 1,3 sur 238, 240, 248, 249, 36, 37 (et 26 avec le point 1). On leur rend
   l encre du dessin. Le :not(#lvv-nuit-acc) ne vise rien : il donne a la regle le
   poids d un identifiant de plus que section 2 (3 id + 6 classes), sans toucher au HTML. */
html.lvv-nuit body#category #wrapper #category-description :is(.lvv-acc-tete,.lvv-fin-tete):not(#lvv-nuit-acc) :is(.lvv-acc-t,.lvv-acc-r){ color:#1E2B20 !important; }

@media (max-width:767px){
/* 3. LE COMPTE DES PRODUITS, AU TELEPHONE ("89 produits", tous les rayons). S15
   lui retire sa plaque blanche (background:none) mais lui laisse l encre d or
   fonce #75591F de la plaque : 2,7 sur la nuit. Or clair, 8,8. */
html.lvv-nuit body#category #wrapper #js-product-list-top > .total-products p{ color:#D2B269 !important; }
/* 4. "VOIR LES N PRODUITS", AU TELEPHONE. M14 le dessine en bande creme #ECE2C4
   a encre sombre, mais sur les rayons de marque (53, 271, 272, 274, 276) et le 248
   une regle de liens de nuit le repeint en or #D2B269 : 1,6 sur sa propre bande.
   Meme poids d identifiant de plus que ci-dessus. */
html.lvv-nuit body#category #wrapper #main a.lvv-vers-produits:not(#lvv-nuit-acc),
html.lvv-nuit body#category #wrapper #main a.lvv-vers-produits:not(#lvv-nuit-acc) *{ color:#1A2120 !important; }
}
/* FIN nuit-textes-illisibles */

/* DEBUT tomine-bouton-analyse (2026-09-26)
   Fiches Tomine (rayon 294) : dans la legende de la roue du comptoir, le renvoi
   "L analyse" est un <button> (il ouvre le chapitre, il ne change pas de page).
   La reprise de la roue n a garde que sa regle :hover : le bouton sortait brut,
   fond gris #EFEFEF, bordure en relief, encre noire. On l habille en lien de la
   phrase : or fonce #75591F comme les autres liens de la fiche, souligne parce
   qu il est dans du texte courant. Le :hover existant garde sa couleur ;
   le survol et le focus clavier epaississent le trait. */
body.product-id-category-294 .ffb-rs-vers{background:none;border:0;border-radius:0;padding:0;margin:0;
  font:inherit;color:#75591F;text-decoration:underline;text-underline-offset:2px;cursor:pointer;
  -webkit-appearance:none;appearance:none;vertical-align:baseline}
body.product-id-category-294 .ffb-rs-vers:hover,
body.product-id-category-294 .ffb-rs-vers:focus-visible{text-decoration-thickness:2px}
/* FIN tomine-bouton-analyse */

/* ================================================================
   LA VOIE VERTE - ICONES DES ETAGERES DE RAYON - 2026-09-26
   ----------------------------------------------------------------
   Genere par icones-etageres-2026-09-26/generer.py : ne pas retoucher
   a la main, regenerer.

   Demande de Florent : une icone devant le nom de chaque etagere, dans
   chaque rayon. mobile.js marque l etagere (data-cat = sous-rayon,
   data-val = valeur de filtre) et pose i.lvv-etagere-ic devant le nom ;
   ici, l image. Sous-rayons : illustrations du menu. Marques : leur
   logo sur une pastille blanche. Appareils : la photo de leur fiche
   dans un rond blanc. Nombre de parties : le grinder et le chiffre.

   GARDE-FOU : largeur var(--lvv-icw,0) - une etagere sans image garde
   une boite nulle, le nom reste a sa place.
   RETOUR ARRIERE : retirer cette section (le script seul ne montre rien).
   ================================================================ */
/* ==== DEBUT ETAGERES ICONES ==== */
html body #wrapper .lvv-etageres-completes .lvv-etagere .lvv-etagere-ic{flex:0 0 auto;align-self:center;position:relative;display:block;box-sizing:border-box;
  width:var(--lvv-icw,0);max-width:130px;height:var(--lvv-ich,0);margin:0;padding:var(--lvv-icp,0);
  background:var(--lvv-icf,transparent) var(--lvv-ic,none) center/contain no-repeat;background-origin:content-box;
  border-radius:var(--lvv-icr,0);box-shadow:var(--lvv-ics,none)}
html body #wrapper .lvv-etageres-completes .lvv-etagere .lvv-etagere-ic::after{content:var(--lvv-icn,none);position:absolute;right:-6px;bottom:-4px;min-width:18px;height:18px;padding:0 4px;
  box-sizing:border-box;border-radius:9px;background:#D9B25F;color:#1E2B20;font:700 12px/18px Arial,sans-serif;text-align:center}
/* illustrations : 38 px a l ordinateur */
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='27'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='46'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='47'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='48'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='49'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='50'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='55'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='65'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='67'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='68'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='76'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='136'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='165'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='184'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='185'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='186'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='208'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='209'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='214'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='226'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='230'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='231'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='232'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='243'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='244'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='245'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='246'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='247'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='248'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='249'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='250'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='251'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='253'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='255'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='256'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='258'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='260'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='261'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='262'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='267'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='268'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='269'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='270'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='275'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='278'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='279'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='294'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='2-parties'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='3-parties'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='4-parties'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='5-parties'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='6-parties'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='ceramique'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='metal'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='silicone'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='verre'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='bois'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='pierre'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='charbon-actif'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='blunt-wrap'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='cone'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='king-size'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='king-size-slim'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='regular-1-1-4'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='rouleau-xxl'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='slim'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='acidules'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='gourmand'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='autres']{--lvv-icw:38px;--lvv-ich:38px}
/* logos : pastille blanche de 32 px, largeur au rapport du logo */
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='53'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='276'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='274'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='271'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='273'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='272'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='actitube'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='airvape'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='arizer'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='astral-project'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='barney-s-farm'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='best-buds'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='black-leaf'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='blazer'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='blazy-susan'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='boomz'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='canapuff'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='cannabis-bakehouse'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='cannabis-store-amsterdam'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='cannadom'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='cannaline'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='champ-high'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='chillo'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='choosypapers'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='clipper'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='cookies'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='cvault'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='dexso'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='dynavap'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='elements'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='euphoria'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='flower-mill'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='futurola'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='g-rollz'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='geekvape'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='gizeh'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='golden-buds'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='hachette'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='hempbrothers'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='hemper'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='hempium'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='herb-earth'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='higher-standards'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='hybrid-filters'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='innokin'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='ispire'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='jane'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='katalyzer'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='la-ferme-du-rial'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='la-voie-verte'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='limpuro'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='maison-dutier'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='miron'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='mj-arsenal'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='monkey-king'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='monki'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='morning-star'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='novaloa'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='nwtn-home'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='ogeez-krunch'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='osmoz'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='oxva'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='ozo-world'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='pax'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='puffco'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='pulsar'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='purize'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='raw'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='red-eye-tek'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='roll-master'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='rollz'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='rue-de-la-boulette'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='ryot'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='santa-cruz-shredder'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='skunk-brand'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='smoke-odor-exterminator'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='smoking'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='stilla'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='storz-bickel'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='the-bulldog'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='the-hempy-lab'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='the-original-gimber'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='thorinder'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='tinymight'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='vaptio'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='vector'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='veed'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='voopoo'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='white-rabbit'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='xmax'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='xvape'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='ziggi'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='zippo']{--lvv-ich:32px;--lvv-icp:6px 9px;--lvv-icw:calc(20px * var(--lvv-icq,3) + 18px);--lvv-icf:#fff;--lvv-icr:7px;--lvv-ics:0 1px 3px rgba(0,0,0,.35)}
/* appareils : rond blanc de 40 px */
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='crafty'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='mighty'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='volcano'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='puffco-peak'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='puffco-proxy']{--lvv-icw:40px;--lvv-ich:40px;--lvv-icp:3px;--lvv-icf:#fff;--lvv-icr:50%;--lvv-ics:0 1px 3px rgba(0,0,0,.35)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='27']{--lvv-ic:url(../img/menu/vapo.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='46']{--lvv-ic:url(../img/menu/boite.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='47']{--lvv-ic:url(../img/menu/grinder.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='48']{--lvv-ic:url(../img/menu/briquet.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='49']{--lvv-ic:url(../img/menu/bang.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='50']{--lvv-ic:url(../img/menu/plateau.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='55']{--lvv-ic:url(../img/menu/herbes.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='65']{--lvv-ic:url(../img/menu/filtre.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='67']{--lvv-ic:url(../img/menu/feuilles.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='68']{--lvv-ic:url(../img/menu/pen.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='76']{--lvv-ic:url(../img/menu/balance.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='136']{--lvv-ic:url(../img/menu/livre.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='165']{--lvv-ic:url(../img/menu/bougie.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='184']{--lvv-ic:url(../img/menu/cendrier.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='185']{--lvv-ic:url(../img/menu/collection.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='186']{--lvv-ic:url(../img/menu/tshirt.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='208']{--lvv-ic:url(../img/menu/cookie.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='209']{--lvv-ic:url(../img/menu/sirop.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='214']{--lvv-ic:url(../img/menu/goupillon.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='226']{--lvv-ic:url(../img/menu/coeur.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='230']{--lvv-ic:url(../img/menu/canette.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='231']{--lvv-ic:url(../img/menu/bocal.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='232']{--lvv-ic:url(../img/menu/alcool.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='243']{--lvv-ic:url(../img/menu/fleur.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='244']{--lvv-ic:url(../img/menu/resine.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='245']{--lvv-ic:url(../img/menu/preroule.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='246']{--lvv-ic:url(../img/menu/cartouche.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='247']{--lvv-ic:url(../img/menu/minibuds.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='248']{--lvv-ic:url(../img/menu/fleur.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='249']{--lvv-ic:url(../img/menu/resine.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='250']{--lvv-ic:url(../img/menu/ohhhc.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='251']{--lvv-ic:url(../img/menu/sauce.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='253']{--lvv-ic:url(../img/menu/cbc.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='255']{--lvv-ic:url(../img/menu/ohhhc.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='256']{--lvv-ic:url(../img/menu/sauce.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='258']{--lvv-ic:url(../img/menu/cbc.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='260']{--lvv-ic:url(../img/menu/preroule.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='261']{--lvv-ic:url(../img/menu/cartouche.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='262']{--lvv-ic:url(../img/menu/minibuds.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='267']{--lvv-ic:url(../img/menu/huile.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='268']{--lvv-ic:url(../img/menu/baume.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='269']{--lvv-ic:url(../img/menu/eliquide.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='270']{--lvv-ic:url(../img/menu/eliquide.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='275']{--lvv-ic:url(../img/menu/spatule.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='278']{--lvv-ic:url(../img/menu/ourson.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='279']{--lvv-ic:url(../img/menu/chips.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='294']{--lvv-ic:url(../img/menu/pousse.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='53']{--lvv-icq:2.192;--lvv-ic:url(../img/menu/katalyzer.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='276']{--lvv-icq:1.667;--lvv-ic:url(../img/marques/7.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='274']{--lvv-icq:3.571;--lvv-ic:url(../img/marques/60.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='271']{--lvv-icq:3.717;--lvv-ic:url(../img/marques/88.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='273']{--lvv-icq:3.946;--lvv-ic:url(../img/marques/30.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='272']{--lvv-icq:4.583;--lvv-ic:url(/img/cms/logo-dynavap-vert.png)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='actitube']{--lvv-icq:1.709;--lvv-ic:url(../img/marques/33.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='airvape']{--lvv-icq:3.758;--lvv-ic:url(../img/marques/8.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='arizer']{--lvv-icq:3.946;--lvv-ic:url(../img/marques/30.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='astral-project']{--lvv-icq:4.286;--lvv-ic:url(../img/marques/157.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='barney-s-farm']{--lvv-icq:2.880;--lvv-ic:url(../img/marques/66.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='best-buds']{--lvv-icq:1.558;--lvv-ic:url(../img/marques/107.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='black-leaf']{--lvv-icq:2.947;--lvv-ic:url(../img/marques/52.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='blazer']{--lvv-icq:3.964;--lvv-ic:url(../img/marques/176.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='blazy-susan']{--lvv-icq:5.111;--lvv-ic:url(../img/marques/145.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='boomz']{--lvv-icq:1.240;--lvv-ic:url(../img/marques/158.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='canapuff']{--lvv-icq:1.853;--lvv-ic:url(../img/marques/121.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='cannabis-bakehouse']{--lvv-icq:2.738;--lvv-ic:url(../img/marques/132.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='cannabis-store-amsterdam']{--lvv-icq:1.004;--lvv-ic:url(../img/marques/109.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='cannadom']{--lvv-icq:1.238;--lvv-ic:url(../img/marques/154.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='cannaline']{--lvv-icq:0.928;--lvv-ic:url(../img/marques/42.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='champ-high']{--lvv-icq:1.201;--lvv-ic:url(../img/marques/85.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='chillo']{--lvv-icq:4.308;--lvv-ic:url(../img/marques/180.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='choosypapers']{--lvv-icq:3.729;--lvv-ic:url(../img/marques/152.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='clipper']{--lvv-icq:2.930;--lvv-ic:url(../img/marques/83.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='cookies']{--lvv-icq:2.409;--lvv-ic:url(../img/marques/129.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='cvault']{--lvv-icq:2.401;--lvv-ic:url(../img/marques/49.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='dexso']{--lvv-icq:3.574;--lvv-ic:url(../img/marques/84.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='dynavap']{--lvv-icq:4.670;--lvv-ic:url(../img/marques/10.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='elements']{--lvv-icq:3.009;--lvv-ic:url(../img/marques/143.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='euphoria']{--lvv-icq:4.667;--lvv-ic:url(../img/marques/147.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='flower-mill']{--lvv-icq:2.778;--lvv-ic:url(../img/marques/175.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='futurola']{--lvv-icq:1.000;--lvv-ic:url(../img/marques/183.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='g-rollz']{--lvv-icq:3.365;--lvv-ic:url(../img/marques/159.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='geekvape']{--lvv-icq:8.544;--lvv-ic:url(../img/marques/162.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='gizeh']{--lvv-icq:1.132;--lvv-ic:url(../img/marques/99.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='golden-buds']{--lvv-icq:0.716;--lvv-ic:url(../img/marques/35.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='hachette']{--lvv-icq:2.752;--lvv-ic:url(../img/marques/188.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='hempbrothers']{--lvv-icq:3.111;--lvv-ic:url(../img/marques/128.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='hemper']{--lvv-icq:0.589;--lvv-ic:url(../img/marques/173.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='hempium']{--lvv-icq:4.440;--lvv-ic:url(../img/marques/130.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='herb-earth']{--lvv-icq:0.608;--lvv-ic:url(../img/marques/106.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='higher-standards']{--lvv-icq:0.852;--lvv-ic:url(../img/marques/81.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='hybrid-filters']{--lvv-icq:1.002;--lvv-ic:url(../img/marques/148.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='innokin']{--lvv-icq:5.865;--lvv-ic:url(../img/marques/115.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='ispire']{--lvv-icq:3.047;--lvv-ic:url(../img/marques/94.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='jane']{--lvv-icq:2.937;--lvv-ic:url(../img/marques/90.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='katalyzer']{--lvv-icq:2.194;--lvv-ic:url(../img/marques/22.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='la-ferme-du-rial']{--lvv-icq:0.848;--lvv-ic:url(../img/marques/124.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='la-voie-verte']{--lvv-icq:2.733;--lvv-ic:url(../img/marques/17.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='limpuro']{--lvv-icq:1.359;--lvv-ic:url(../img/marques/86.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='maison-dutier']{--lvv-icq:2.038;--lvv-ic:url(../img/marques/123.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='miron']{--lvv-icq:3.152;--lvv-ic:url(../img/marques/50.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='mj-arsenal']{--lvv-icq:1.000;--lvv-ic:url(../img/marques/144.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='monkey-king']{--lvv-icq:3.611;--lvv-ic:url(../img/marques/72.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='monki']{--lvv-icq:2.215;--lvv-ic:url(../img/marques/139.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='morning-star']{--lvv-icq:1.130;--lvv-ic:url(../img/marques/105.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='novaloa']{--lvv-icq:1.287;--lvv-ic:url(../img/marques/122.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='nwtn-home']{--lvv-icq:2.500;--lvv-ic:url(../img/marques/166.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='ogeez-krunch']{--lvv-icq:2.404;--lvv-ic:url(../img/marques/38.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='osmoz']{--lvv-icq:3.100;--lvv-ic:url(../img/marques/77.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='oxva']{--lvv-icq:7.039;--lvv-ic:url(../img/marques/169.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='ozo-world']{--lvv-icq:0.830;--lvv-ic:url(../img/marques/79.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='pax']{--lvv-icq:3.717;--lvv-ic:url(../img/marques/88.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='puffco']{--lvv-icq:3.571;--lvv-ic:url(../img/marques/60.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='pulsar']{--lvv-icq:5.172;--lvv-ic:url(../img/marques/168.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='purize']{--lvv-icq:2.728;--lvv-ic:url(../img/marques/141.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='raw']{--lvv-icq:2.728;--lvv-ic:url(../img/marques/24.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='red-eye-tek']{--lvv-icq:5.158;--lvv-ic:url(../img/marques/177.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='roll-master']{--lvv-icq:1.888;--lvv-ic:url(../img/marques/53.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='rollz']{--lvv-icq:1.907;--lvv-ic:url(../img/marques/126.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='rue-de-la-boulette']{--lvv-icq:1.379;--lvv-ic:url(../img/marques/134.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='ryot']{--lvv-icq:2.228;--lvv-ic:url(../img/marques/167.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='santa-cruz-shredder']{--lvv-icq:5.615;--lvv-ic:url(../img/marques/164.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='skunk-brand']{--lvv-icq:3.387;--lvv-ic:url(../img/marques/36.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='smoke-odor-exterminator']{--lvv-icq:1.000;--lvv-ic:url(../img/marques/127.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='smoking']{--lvv-icq:2.622;--lvv-ic:url(../img/marques/155.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='stilla']{--lvv-icq:1.000;--lvv-ic:url(../img/marques/74.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='storz-bickel']{--lvv-icq:1.667;--lvv-ic:url(../img/marques/7.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='the-bulldog']{--lvv-icq:1.000;--lvv-ic:url(../img/marques/153.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='the-hempy-lab']{--lvv-icq:2.045;--lvv-ic:url(../img/marques/151.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='the-original-gimber']{--lvv-icq:3.016;--lvv-ic:url(../img/marques/114.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='thorinder']{--lvv-icq:2.211;--lvv-ic:url(../img/marques/179.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='tinymight']{--lvv-icq:3.829;--lvv-ic:url(../img/marques/163.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='vaptio']{--lvv-icq:5.256;--lvv-ic:url(../img/marques/34.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='vector']{--lvv-icq:4.229;--lvv-ic:url(../img/marques/61.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='veed']{--lvv-icq:1.457;--lvv-ic:url(../img/marques/131.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='voopoo']{--lvv-icq:6.432;--lvv-ic:url(../img/marques/40.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='white-rabbit']{--lvv-icq:1.719;--lvv-ic:url(../img/marques/119.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='xmax']{--lvv-icq:0.999;--lvv-ic:url(../img/marques/58.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='xvape']{--lvv-icq:5.737;--lvv-ic:url(../img/marques/59.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='ziggi']{--lvv-icq:1.665;--lvv-ic:url(../img/marques/32.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='zippo']{--lvv-icq:4.439;--lvv-ic:url(../img/marques/156.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='crafty']{--lvv-ic:url(../img/etageres/app-crafty.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='mighty']{--lvv-ic:url(../img/etageres/app-mighty.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='volcano']{--lvv-ic:url(../img/etageres/app-volcano.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='puffco-peak']{--lvv-ic:url(../img/etageres/app-puffco-peak.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='puffco-proxy']{--lvv-ic:url(../img/etageres/app-puffco-proxy.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='2-parties']{--lvv-ic:url(../img/menu/grinder.webp);--lvv-icn:'2'}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='3-parties']{--lvv-ic:url(../img/menu/grinder.webp);--lvv-icn:'3'}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='4-parties']{--lvv-ic:url(../img/menu/grinder.webp);--lvv-icn:'4'}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='5-parties']{--lvv-ic:url(../img/menu/grinder.webp);--lvv-icn:'5'}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='6-parties']{--lvv-ic:url(../img/menu/grinder.webp);--lvv-icn:'6'}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='ceramique']{--lvv-ic:url(../img/etageres/ceramique.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='metal']{--lvv-ic:url(../img/etageres/metal.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='silicone']{--lvv-ic:url(../img/etageres/silicone.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='verre']{--lvv-ic:url(../img/etageres/verre.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='bois']{--lvv-ic:url(../img/etageres/bois.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='pierre']{--lvv-ic:url(../img/etageres/pierre.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='charbon-actif']{--lvv-ic:url(../img/etageres/charbon-actif.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='blunt-wrap']{--lvv-ic:url(../img/etageres/blunt-wrap.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='cone']{--lvv-ic:url(../img/etageres/cone.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='king-size']{--lvv-ic:url(../img/etageres/king-size.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='king-size-slim']{--lvv-ic:url(../img/etageres/king-size-slim.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='regular-1-1-4']{--lvv-ic:url(../img/etageres/regular-1-1-4.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='rouleau-xxl']{--lvv-ic:url(../img/etageres/rouleau-xxl.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='slim']{--lvv-ic:url(../img/etageres/slim.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='acidules']{--lvv-ic:url(../img/etageres/acidules.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='gourmand']{--lvv-ic:url(../img/etageres/gourmand.webp)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='autres']{--lvv-ic:url(../img/etageres/autres.webp)}
@media (max-width:767px){
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='27'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='46'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='47'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='48'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='49'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='50'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='55'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='65'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='67'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='68'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='76'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='136'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='165'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='184'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='185'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='186'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='208'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='209'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='214'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='226'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='230'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='231'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='232'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='243'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='244'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='245'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='246'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='247'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='248'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='249'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='250'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='251'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='253'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='255'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='256'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='258'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='260'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='261'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='262'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='267'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='268'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='269'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='270'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='275'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='278'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='279'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='294'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='2-parties'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='3-parties'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='4-parties'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='5-parties'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='6-parties'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='ceramique'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='metal'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='silicone'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='verre'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='bois'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='pierre'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='charbon-actif'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='blunt-wrap'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='cone'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='king-size'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='king-size-slim'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='regular-1-1-4'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='rouleau-xxl'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='slim'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='acidules'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='gourmand'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='autres']{--lvv-icw:30px;--lvv-ich:30px}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='53'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='276'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='274'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='271'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='273'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-cat='272'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='actitube'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='airvape'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='arizer'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='astral-project'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='barney-s-farm'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='best-buds'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='black-leaf'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='blazer'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='blazy-susan'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='boomz'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='canapuff'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='cannabis-bakehouse'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='cannabis-store-amsterdam'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='cannadom'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='cannaline'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='champ-high'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='chillo'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='choosypapers'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='clipper'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='cookies'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='cvault'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='dexso'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='dynavap'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='elements'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='euphoria'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='flower-mill'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='futurola'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='g-rollz'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='geekvape'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='gizeh'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='golden-buds'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='hachette'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='hempbrothers'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='hemper'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='hempium'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='herb-earth'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='higher-standards'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='hybrid-filters'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='innokin'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='ispire'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='jane'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='katalyzer'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='la-ferme-du-rial'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='la-voie-verte'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='limpuro'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='maison-dutier'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='miron'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='mj-arsenal'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='monkey-king'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='monki'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='morning-star'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='novaloa'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='nwtn-home'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='ogeez-krunch'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='osmoz'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='oxva'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='ozo-world'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='pax'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='puffco'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='pulsar'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='purize'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='raw'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='red-eye-tek'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='roll-master'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='rollz'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='rue-de-la-boulette'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='ryot'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='santa-cruz-shredder'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='skunk-brand'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='smoke-odor-exterminator'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='smoking'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='stilla'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='storz-bickel'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='the-bulldog'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='the-hempy-lab'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='the-original-gimber'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='thorinder'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='tinymight'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='vaptio'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='vector'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='veed'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='voopoo'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='white-rabbit'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='xmax'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='xvape'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='ziggi'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='zippo']{--lvv-ich:26px;--lvv-icp:5px 7px;--lvv-icw:calc(16px * var(--lvv-icq,3) + 14px)}
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='crafty'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='mighty'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='volcano'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='puffco-peak'],
html body #wrapper .lvv-etageres-completes .lvv-etagere[data-val='puffco-proxy']{--lvv-icw:32px;--lvv-ich:32px;--lvv-icp:2px}
}
/* ==== FIN ETAGERES ICONES ==== */

/* ==== DEBUT v166 - 2026-09-26 - RAYONS 185 ET 248 : GRILLE DE SOUS-RAYONS AU-DESSUS DES PRODUITS ====
   Demande de Florent ("pareil sur les autres rayons parents"). Les deux rayons
   recoivent une table.lvv-rayons en tete de description (ecrite au back-office).
   Toutes les regles sont conditionnees par :has(> table.lvv-rayons) : sans la
   table, elles ne font rien - la feuille peut donc etre posee avant les textes.
   185 Delta 9 : la description est un bloc range en order:10 sous les produits,
   comme l etait le 26 : meme mecanique que la section v159 (display:contents,
   texte en order:10, grille en order:0).
   248 Fleurs Neo : la description est deja en display:contents et la regle
   nth-child(n+3) renvoie en bas tout enfant a partir du 3e. La grille, inseree en
   1re position, decale le reste d un rang : l encart .neo-guide__information-grid
   passerait sous les produits. On lui rend l ordre qu il avait.
   Retour arriere : retirer cette section et la table des deux descriptions.
   Dossier : grille-vapo-en-tete-2026-09-25 (grilles-185-248). */
body#category.category-id-185 #js-product-list-header #category-description:has(> table.lvv-rayons){display:contents!important}
body#category.category-id-185 #js-product-list-header #category-description:has(> table.lvv-rayons) > *{order:10}
body#category.category-id-185 #js-product-list-header #category-description > table.lvv-rayons{order:0}
body#category.category-id-248 #js-product-list-header #category-description > table.lvv-rayons{order:0}
body#category.category-id-248 #js-product-list-header #category-description > table.lvv-rayons ~ .neo-guide__information-grid{order:0}
/* ==== FIN v166 - grilles 185 et 248 ==== */

/* ==== DEBUT - LA VOIE VERTE : tunnel d achat lisible sur la nuit - 2026-09-26 ==== */
/* Releve du 2026-09-26 (panier rempli, 1440 et telephone emule) : 40 textes sous 4,5
   au panier en ordinateur, 16 au telephone, 15 a l etape Commande.
   Trois causes :
     - le theme de nuit repeint les prix du panier seulement sous 768 px (M8) ;
     - M20 / M21 (offres du panier) ne valent aussi que sous 768 px, et oublient
       prix, detail, note et palier, que la regle de nuit sur les p passe en creme
       sur la carte creme (1,21) ;
     - l etape Commande (body#checkout) n a aucune regle de nuit : le recapitulatif
       garde l encre sombre du theme sur le fond de nuit (1,09 a 1,82).
   Chaque selecteur porte trois identifiants pour passer devant
   html.lvv-nuit body#cart #wrapper p (deux identifiants). */

/* 1. Panier : prix unitaire et total de ligne, a toutes les largeurs. */
html.lvv-nuit body#cart #wrapper .cart-item .product-price,
html.lvv-nuit body#cart #wrapper .cart-item .product-price strong,
html.lvv-nuit body#cart #wrapper .cart-item .current-price .price{ color:#ECE2C4 !important; }

/* 2. Offres du panier : l encre de la maison sur la carte creme, a toutes les largeurs. */
html.lvv-nuit body#cart #wrapper #lvv-offres .lvv-offres-titre{ color:#ECE2C4 !important; }
html.lvv-nuit body#cart #wrapper #lvv-offres .lvv-offre-accroche,
html.lvv-nuit body#cart #wrapper #lvv-offres .lvv-offre-prix,
html.lvv-nuit body#cart #wrapper #lvv-offres .lvv-offre-net{ color:#2E4A32 !important; }
html.lvv-nuit body#cart #wrapper #lvv-offres .lvv-offre-sous,
html.lvv-nuit body#cart #wrapper #lvv-offres .lvv-offre-nom,
html.lvv-nuit body#cart #wrapper #lvv-offres .lvv-offre-saveur,
html.lvv-nuit body#cart #wrapper #lvv-offres .lvv-offre-saveur span,
html.lvv-nuit body#cart #wrapper #lvv-offres .lvv-offre-detail,
html.lvv-nuit body#cart #wrapper #lvv-offres .lvv-offre-unite,
html.lvv-nuit body#cart #wrapper #lvv-offres .lvv-offre-palier-txt{ color:#33413A !important; }
html.lvv-nuit body#cart #wrapper #lvv-offres .lvv-offre-note,
html.lvv-nuit body#cart #wrapper #lvv-offres .lvv-offre-barre{ color:#5F6562 !important; }
html.lvv-nuit body#cart #wrapper #lvv-offres .lvv-offre-echec{ color:#A3372F !important; }

/* 3. Etape Commande : le recapitulatif et la reassurance, comme au panier. */
html.lvv-nuit body#checkout #wrapper #js-checkout-summary .card-block,
html.lvv-nuit body#checkout #wrapper #js-checkout-summary .cart-summary-line,
html.lvv-nuit body#checkout #wrapper #js-checkout-summary .cart-summary-line.cart-total{ background:transparent !important; }
html.lvv-nuit body#checkout #wrapper #js-checkout-summary p,
html.lvv-nuit body#checkout #wrapper #js-checkout-summary .value,
html.lvv-nuit body#checkout #wrapper #js-checkout-summary .cart-total .label,
html.lvv-nuit body#checkout #wrapper #js-checkout-summary .media-body,
html.lvv-nuit body#checkout #wrapper #js-checkout-summary .media-body span,
html.lvv-nuit body#checkout #wrapper #js-checkout-summary .product-name a,
html.lvv-nuit body#checkout #wrapper #js-checkout-summary .product-price{ color:#ECE2C4 !important; }
html.lvv-nuit body#checkout #wrapper #js-checkout-summary .label,
html.lvv-nuit body#checkout #wrapper #js-checkout-summary .product-quantity{ color:#9FB08C !important; }
html.lvv-nuit body#checkout #wrapper #js-checkout-summary .cart-total .label{ color:#ECE2C4 !important; }
html.lvv-nuit body#checkout #wrapper #js-checkout-summary a,
html.lvv-nuit body#checkout #wrapper #js-checkout-summary .material-icons,
html.lvv-nuit body#checkout #wrapper .cart-voucher a.collapse-button{ color:#EFDCA8 !important; }
html.lvv-nuit body#checkout #wrapper .blockreassurance_product .block-title{ color:#D2B269 !important; }
html.lvv-nuit body#checkout #wrapper .blockreassurance_product p{ color:#9FB08C !important; }
html.lvv-nuit body#checkout #footer .text-sm-center,
html.lvv-nuit body#checkout #footer .text-sm-center a{ color:rgba(247,242,228,.72) !important; }

/* 3 bis. Volets depliables (code promo, detail des articles) : sous 768 px ils
   prennent un fond clair rgb(248,249,250), la seule bande claire du tunnel ; la
   regle de nuit sur les liens y passait " Fermer " en creme (1,29). On retire la
   bande, comme la ligne du total au panier. */
html.lvv-nuit body#cart #wrapper #promo-code.collapse,
html.lvv-nuit body#checkout #wrapper #promo-code.collapse,
html.lvv-nuit body#checkout #wrapper #cart-summary-product-list.collapse{ background:transparent !important; }
html.lvv-nuit body#cart #wrapper #promo-code a.collapse-button,
html.lvv-nuit body#checkout #wrapper #promo-code a.collapse-button{ color:#EFDCA8 !important; }

/* 3 ter. Coche " etape faite " : le vert clair du theme rgb(76,187,108) sur la carte
   blanche (2,43) ; vert de la maison. */
body#checkout .checkout-step .step-title i.done{ color:#2E4A32 !important; }

/* 4. Fenetre " ajoute au panier " : le compte d articles en turquoise de l ancienne charte. */
#blockcart-modal .cart-content .cart-products-count{ color:#2E4A32 !important; }

/* 5. Telephone : les commandes du panier a 44 px sous le doigt. */
@media (max-width: 767px){
  html.lvv-nuit body#cart #wrapper #lvv-offres .lvv-offre-btn,
  html.lvv-nuit body#cart #wrapper #lvv-offres .lvv-offre-palier-btn{ min-height:44px !important; }
  html.lvv-nuit body#cart #wrapper #lvv-offres .lvv-offre-pas{ width:44px !important; height:44px !important; }
  html.lvv-nuit body#cart #wrapper #lvv-offres .lvv-offre-nb,
  html.lvv-nuit body#cart #wrapper #lvv-offres .lvv-offre-saveur select{ height:44px !important; }
  body#cart .cart-item .bootstrap-touchspin .btn-touchspin{ width:44px !important; }
  body#cart .cart-grid-body > a.label,
  body#cart .cart-voucher .promo-code-button a.collapse-button,
  body#checkout .cart-voucher .promo-code-button a.collapse-button,
  body#checkout #js-checkout-summary .cart-summary-products p > a,
  body#cart #promo-code a.collapse-button,
  body#checkout #promo-code a.collapse-button{ display:inline-block; padding:12px 0; }
  body#cart .cart-voucher .promo-code form .btn,
  body#checkout .cart-voucher .promo-code form .btn,
  body#checkout .checkout-step .form-footer .continue,
  body#checkout .checkout-step button.continue,
  body#checkout #payment-confirmation button,
  body#checkout .checkout-step .form-control,
  #blockcart-modal .cart-content-btn .btn{ min-height:44px !important; }
  body#checkout .checkout-step .nav-inline .nav-link,
  body#checkout .address-footer a,
  body#checkout .payment-option label{ display:inline-block; padding-top:7px !important; padding-bottom:7px !important; }
  body#checkout .add-address a{ display:inline-block; padding:12px 0; }
}
/* ==== FIN - LA VOIE VERTE : tunnel d achat lisible sur la nuit - 2026-09-26 ==== */

/* ==== DEBUT BANDEAU MARQUES (accueil, 2026-09-27) ====
   Ligne de logos posee sur une etagere sous #header, accueil seul. Balisage et script : bloc HTML Box dedie (displayHome).
   Logos : views/img/marques/*.webp. Source : FORGE/agents/verde/livrables/bandeau-marques-accueil (monter_v3.py) */
.lvv-marques{position:relative;z-index:3;padding:10px 0 0;
  background:radial-gradient(ellipse 60% 120% at 50% 0,rgba(201,168,92,.10),transparent 70%),linear-gradient(#182616,#142112);
  border-top:1px solid rgba(201,168,92,.25);box-shadow:inset 0 1px 0 rgba(0,0,0,.35),0 6px 14px -8px rgba(0,0,0,.6)}
.lvv-marques:before{content:'';position:absolute;left:0;right:0;bottom:12px;height:2px;pointer-events:none;
  background:linear-gradient(90deg,transparent,rgba(201,168,92,.55) 12%,#d9bd7a 50%,rgba(201,168,92,.55) 88%,transparent);
  box-shadow:0 -1px 0 rgba(255,240,200,.18)}
.lvv-marques:after{content:'';position:absolute;left:0;right:0;bottom:0;height:12px;pointer-events:none;
  background:linear-gradient(rgba(201,168,92,.13),transparent)}
.lvv-marques__rail{display:flex;align-items:flex-end;max-width:1320px;margin:0 auto;padding:0 0 14px;
  overflow-x:auto;scroll-snap-type:x proximity;scroll-padding-left:16px;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.lvv-marques__rail::-webkit-scrollbar{display:none}
.lvv-marques__rail:before,.lvv-marques__rail:after{content:'';flex:0 0 8px}
.lvv-marques__titre{display:none;flex:0 0 auto;margin:0 14px 2px 0;font:400 11px/1.2 Marcellus,Georgia,serif;letter-spacing:.16em;
  text-transform:uppercase;color:#c9a85c;white-space:nowrap}
.lvv-marques a.lvv-marques__m{position:relative;flex:0 0 auto;display:flex;align-items:flex-end;justify-content:center;
  padding:6px 12px 0;scroll-snap-align:start;text-decoration:none;outline:none;
  filter:drop-shadow(0 -1px 0 rgba(255,246,220,.22)) drop-shadow(0 1px 0 rgba(0,0,0,.7)) drop-shadow(0 3px 2px rgba(0,0,0,.45))}
.lvv-marques a.lvv-marques__m img{position:relative;z-index:1;display:block;width:auto;height:auto;max-width:100%;
  max-height:calc(var(--h)*0.9);transition:transform .2s ease}
.lvv-marques a.lvv-marques__m:after{content:'';position:absolute;left:14%;right:14%;bottom:-3px;height:6px;border-radius:50%;
  background:radial-gradient(closest-side,rgba(0,0,0,.6),transparent);transition:transform .2s ease,opacity .2s ease}
.lvv-marques a.lvv-marques__m:hover img,.lvv-marques a.lvv-marques__m:focus-visible img{transform:translateY(-4px)}
.lvv-marques a.lvv-marques__m:hover:after,.lvv-marques a.lvv-marques__m:focus-visible:after{transform:scaleX(.75);opacity:.55}
.lvv-marques a:focus-visible{box-shadow:0 0 0 1px #c9a85c;border-radius:6px}
.lvv-marques__sep{flex:0 0 auto;width:5px;height:5px;margin:0 6px 1px;transform:rotate(45deg);background:#c9a85c;opacity:.7}
.lvv-marques a.lvv-marques__toutes{flex:0 0 auto;max-width:7.5em;margin:0 0 0 10px;padding:0 4px 1px;scroll-snap-align:end;
  font:400 11px/1.25 Marcellus,Georgia,serif;letter-spacing:.1em;text-transform:uppercase;color:#d9bd7a;text-decoration:none}
.lvv-marques a.lvv-marques__toutes:hover{color:#f3e3b0}
@media (min-width:1100px){
  .lvv-marques__rail{overflow:visible;justify-content:center;padding:0 16px 14px}
  .lvv-marques__rail:before,.lvv-marques__rail:after{display:none}
  .lvv-marques a.lvv-marques__m{flex:0 1 auto;min-width:0;padding:6px 14px 0}
  .lvv-marques a.lvv-marques__m img{max-height:var(--h)}
}
@media (min-width:1280px){.lvv-marques__titre{display:block}}
@media (prefers-reduced-motion:reduce){.lvv-marques *{transition:none!important}}
.lvv-marques a.lvv-marques__m[href$='/130-hempium']{--h:25px}
.lvv-marques a.lvv-marques__m[href$='/129-cookies']{--h:32px}
.lvv-marques a.lvv-marques__m[href$='/126-rollz']{--h:36px}
.lvv-marques a.lvv-marques__m[href$='/141-purize']{--h:38px}
.lvv-marques a.lvv-marques__m[href$='/24-raw']{--h:26px}
.lvv-marques a.lvv-marques__m[href$='/7-storz-bickel']{--h:41px}
.lvv-marques a.lvv-marques__m[href$='/10-dynavap']{--h:18px}
.lvv-marques a.lvv-marques__m[href$='/60-puffco']{--h:29px}
.lvv-marques a.lvv-marques__m[href$='/22-katalyzer']{--h:40px}
/* ==== FIN BANDEAU MARQUES ==== */

/* ==== DEBUT - LA VOIE VERTE : tunnel de commande sur telephone - 2026-09-28 ==== */
/* Releve du 2026-09-28 (lvv.css v170, /commande, 375 px) : etape 1 = 4,4 ecrans.
   Cause premiere : l interligne est fige a 30 px (herite du corps a 24 px) ; un texte
   de 14 px occupe deux fois sa hauteur, et tout ce qui n a pas de taille propre sort
   en 24 px (lien Fermer, montants du sous-total, onglets Invite / Connexion).
   Ensuite : marges empilees (carte 15 + colonne 15 + etiquette 15), boutons cales
   a droite ou a gauche, titres d etape qui se coupent, cartes transporteur a
   colonnes vides, recapitulatif au prix isole sur sa ligne.
   Tout est sous 768 px et sous body#checkout : ordinateur et tablette inchanges. */
@media (max-width:767px){

/* 1. Base : taille et interligne du texte courant. */
html body#checkout #wrapper #content{ font-size:15px; line-height:1.45; }
html body#checkout #wrapper #content p,
html body#checkout #wrapper #content label,
html body#checkout #wrapper #content span,
html body#checkout #wrapper #content em,
html body#checkout #wrapper #content a,
html body#checkout #wrapper #content li{ line-height:1.45 !important; }

/* 2. Gouttieres : une seule marge, la carte. */
html body#checkout #wrapper .cart-grid-body,
html body#checkout #wrapper .cart-grid-right{ padding-left:10px; padding-right:10px; }
html body#checkout #wrapper section.checkout-step{ padding:14px 16px !important; margin:0 0 8px; border-radius:10px; border:0 !important; }
html body#checkout #wrapper section.checkout-step .content{ padding:12px 0 4px; }
html body#checkout #wrapper section.checkout-step .row{ margin-left:0; margin-right:0; }
html body#checkout #wrapper section.checkout-step [class*="col-"]{ padding-left:0; padding-right:0; }

/* 3. Titre d etape : pastille, titre, Modifier, sur une ligne. */
html body#checkout #wrapper section.checkout-step .step-title{
  display:flex !important; align-items:center; gap:10px; margin:0;
  font-size:16px !important; line-height:1.25 !important; letter-spacing:.04em; }
html body#checkout #wrapper section.checkout-step .step-title .step-number,
html body#checkout #wrapper section.checkout-step .step-title i.done{
  flex:0 0 28px; width:28px; height:28px; padding:0 !important; margin:0 !important;
  align-items:center; justify-content:center;
  border-radius:50%; font-size:14px !important; line-height:1 !important; }
html body#checkout #wrapper section.checkout-step .step-title .step-number{ display:inline-flex !important; border:1.5px solid currentColor; }
html body#checkout #wrapper section.checkout-step .step-title i.done{ display:none !important; }
html body#checkout #wrapper section.checkout-step.-complete .step-title .step-number{ display:none !important; }
html body#checkout #wrapper section.checkout-step.-complete .step-title i.done{
  display:inline-flex !important; background:#2E4A32; color:#fff !important; font-size:18px !important; }
html body#checkout #wrapper section.checkout-step .step-title .step-edit{
  margin-left:auto; display:none !important; align-items:center; gap:4px;
  min-height:44px; padding:0 0 0 8px; font-family:"Source Sans Pro",sans-serif;
  font-size:14px !important; letter-spacing:0; text-transform:none; white-space:nowrap; float:none !important; }
html body#checkout #wrapper section.checkout-step .step-title .step-edit i{ font-size:16px !important; }
html body#checkout #wrapper section.checkout-step.-complete:not(.-current) .step-title .step-edit{ display:inline-flex !important; }

/* 4. Invite / Connexion : deux boutons egaux. */
html body#checkout #wrapper #checkout-personal-information-step .nav-inline{
  display:flex; margin:0 0 16px; border:1px solid #2E4A32; border-radius:8px; overflow:hidden; }
html body#checkout #wrapper #checkout-personal-information-step .nav-inline .nav-item{ flex:1 1 0; margin:0 !important; float:none; }
html body#checkout #wrapper #checkout-personal-information-step .nav-inline .nav-item:first-child{ flex:0 0 64%; }
html body#checkout #wrapper #checkout-personal-information-step .nav-inline .nav-item:nth-child(2){ display:none; }
html body#checkout #wrapper #checkout-personal-information-step .nav-inline .nav-link{
  display:flex !important; align-items:center; justify-content:center; text-align:center;
  width:100%; min-height:46px; padding:6px 4px !important; font-size:13.5px !important; line-height:1.2 !important;
  color:#2E4A32 !important; background:#fff; border:0 !important; border-radius:0; }
html body#checkout #wrapper #checkout-personal-information-step .nav-inline .nav-link.active{ background:#2E4A32; color:#fff !important; }

/* 5. Champs : etiquette au-dessus, aide collee au champ, rien de vide. */
html body#checkout #wrapper section.checkout-step .form-group{ margin:0 0 14px; }
html body#checkout #wrapper section.checkout-step .form-control-label{
  display:block; width:100%; padding:0 !important; margin:0 0 5px; font-size:14px; font-weight:600; text-align:left; }
html body#checkout #wrapper section.checkout-step .col-md-6{ padding-top:0 !important; }
html body#checkout #wrapper section.checkout-step .form-control-comment{
  display:block; padding:4px 0 0 !important; font-size:13px !important; }
html body#checkout #wrapper section.checkout-step .col-md-3.form-control-comment{ padding:0 !important; margin-top:-2px; }
html body#checkout #wrapper section.checkout-step .form-control{ min-height:46px; }
html body#checkout #wrapper section.checkout-step .input-group{ display:flex; }
html body#checkout #wrapper section.checkout-step .input-group .form-control{ flex:1 1 auto; min-width:0; }
html body#checkout #wrapper section.checkout-step .input-group-btn{ display:flex; width:auto; }
html body#checkout #wrapper section.checkout-step .input-group-btn .btn{ min-height:46px; padding:0 14px; }
html body#checkout #wrapper #customer-form > section > p{ margin:18px 0 12px; }
html body#checkout #wrapper section.checkout-step .radio-inline{ min-height:44px; }

/* 6. Cases a cocher : case a gauche, texte aligne, precision en petit dessous. */
html body#checkout #wrapper section.checkout-step .custom-checkbox{ display:block; }
html body#checkout #wrapper section.checkout-step .custom-checkbox > label{
  position:relative; display:block; min-height:24px; margin:0; padding:1px 0 0 34px; font-size:14px; text-align:left; }
html body#checkout #wrapper section.checkout-step .custom-checkbox > label > input{
  position:absolute; left:0; top:0; width:24px; height:24px; margin:0; }
html body#checkout #wrapper section.checkout-step .custom-checkbox > label > input + span{
  position:absolute; left:0; top:0; width:22px; height:22px; margin:0; }
html body#checkout #wrapper section.checkout-step .custom-checkbox > label > input + span .checkbox-checked{ font-size:18px; margin:0; }
html body#checkout #wrapper section.checkout-step .custom-checkbox > label em{
  display:block; margin-top:3px; font-size:12.5px; color:#6B5A45 !important; }
html body#checkout #wrapper section.checkout-step .custom-checkbox > label br{ display:none; }

/* 7. Boutons d action : toute la largeur. */
html body#checkout #wrapper section.checkout-step button.continue,
html body#checkout #wrapper #payment-confirmation button{
  float:none !important; display:block; width:100%; min-height:52px; margin:8px 0 4px;
  font-size:15px !important; border-radius:8px; }
html body#checkout #wrapper section.checkout-step .form-footer{ margin-top:4px; }
html body#checkout #wrapper #payment-confirmation button[disabled]{
  background:#E4E8DF !important; border-color:#C9D0C2 !important; color:#4F5F51 !important; opacity:1 !important; }
html body#checkout #wrapper #payment-confirmation:has(button[disabled])::before{
  content:"Pour commander : choisissez le paiement et cochez les conditions.";
  display:block; margin:4px 0 2px; font-size:13px; line-height:1.4; color:#6B5A45; text-align:center; }

/* 8. Adresses. */
html body#checkout #wrapper #checkout-addresses-step .address-item{ margin:0 0 12px; }
html body#checkout #wrapper #checkout-addresses-step .content > .js-address-form > form > p,
html body#checkout #wrapper #checkout-addresses-step .add-address,
html body#checkout #wrapper #checkout-addresses-step form > p{ margin:0 0 10px; font-size:14px; }
html body#checkout #wrapper #checkout-addresses-step form > p > a{ display:inline-block; padding:11px 0; }
html body#checkout #wrapper #checkout-addresses-step .address-footer a{ display:inline-flex; align-items:center; min-height:44px; padding:0 8px; }

/* 9. Mode de livraison : une carte par transporteur, logo, nom et prix sur une ligne. */
html body#checkout #wrapper #hook-display-before-carrier .ocs_display_before_carrier_block{ margin:0 0 12px; font-size:13px; }
html body#checkout #wrapper #hook-display-before-carrier br{ display:none; }
html body#checkout #wrapper #hook-display-before-carrier .ocs_display_before_carrier_span1{ display:block; margin:0 0 2px; color:#2E4A32 !important; }
html body#checkout #wrapper #hook-display-before-carrier .ocs_display_before_carrier_span3{ color:#2E4A32 !important; margin-right:4px; }
html body#checkout #wrapper .delivery-options .delivery-option{
  display:flex; flex-wrap:nowrap !important; align-items:flex-start; gap:12px; margin:0 0 10px !important; padding:12px 14px !important;
  background:#fff !important; border:1px solid #D9D2BE !important; border-radius:8px; }
html body#checkout #wrapper .delivery-options .delivery-option:has(input:checked){ border-color:#B08D3F !important; box-shadow:0 0 0 1px #B08D3F; }
html body#checkout #wrapper .delivery-options .delivery-option > .col-sm-1{ flex:0 0 24px !important; max-width:24px !important; width:24px; margin-top:8px; }
html body#checkout #wrapper .delivery-options .delivery-option > label{ flex:1 1 auto !important; max-width:none !important; width:auto; margin:0; padding:0; text-align:left; }
html body#checkout #wrapper .delivery-options .delivery-option > label > .row{
  display:grid; grid-template-columns:1fr auto; column-gap:10px; row-gap:2px; align-items:center; }
html body#checkout #wrapper .delivery-options .delivery-option > label > .row > div{ width:auto; float:none; }
html body#checkout #wrapper .delivery-options .delivery-option > label > .row > div:nth-child(2){ grid-column:1 / -1; grid-row:2; }
html body#checkout #wrapper .delivery-options .delivery-option .carrier{ display:flex; flex-wrap:nowrap !important; align-items:center; gap:10px; }
html body#checkout #wrapper .delivery-options .delivery-option .carrier > div{ width:auto; float:none; flex:0 0 auto !important; max-width:none !important; }
html body#checkout #wrapper .delivery-options .delivery-option .carrier > .carriere-name-container{ flex:1 1 auto !important; min-width:0; }
html body#checkout #wrapper .delivery-options .delivery-option .carrier-logo img{ width:40px; height:auto; margin:0; }
html body#checkout #wrapper .delivery-options .delivery-option .carrier-name{ font-size:15px !important; line-height:1.25 !important; margin:0; }
html body#checkout #wrapper .delivery-options .delivery-option .carrier-delay{ display:block; font-size:13px; color:#5E5446; padding-left:50px; }
html body#checkout #wrapper .delivery-options .delivery-option .carrier-price{ font-weight:600; white-space:nowrap; }
html body#checkout #wrapper .delivery-options .carrier-extra-content{ margin:-4px 0 12px !important; padding:0 4px; }
html body#checkout #wrapper .delivery-options .carrier-extra-content,
html body#checkout #wrapper #cnc_pickupatstore_container{ border:0 !important; box-shadow:none !important; }
html body#checkout #wrapper #cnc_pickupatstore_container{ margin:0; padding:0 0 0 12px; }
html body#checkout #wrapper #cnc_pickupatstore_title{ margin:0 0 8px; }
html body#checkout #wrapper #cnc_pickupatstore_title span{ font-size:13px; }
html body#checkout #wrapper .cnc-pickupatstore-option{
  display:flex; flex-wrap:nowrap !important; align-items:flex-start; gap:12px; margin:0 0 8px !important;
  padding:10px 12px !important; border:1px solid #D9D2BE !important; border-radius:8px; }
html body#checkout #wrapper .cnc-pickupatstore-option:has(input:checked){ border-color:#B08D3F !important; }
html body#checkout #wrapper .cnc-pickupatstore-option > .col-sm-1{ flex:0 0 24px !important; max-width:24px !important; margin-top:2px; }
html body#checkout #wrapper .cnc-pickupatstore-option > label{ flex:1 1 auto !important; max-width:none !important; width:auto; margin:0; padding:0; text-align:left; }
html body#checkout #wrapper .cnc-pickupatstore-option > label > .row > div{ flex:0 0 100% !important; max-width:100% !important; text-align:left !important; }
html body#checkout #wrapper .cnc-pickupatstore-option .cnc-shop-name{ display:block !important; float:none !important; text-align:left !important; font-size:15px !important; line-height:1.25 !important; margin:0 0 2px; }
html body#checkout #wrapper .cnc-pickupatstore-option .cnc-shop-name + span{ display:block !important; float:none !important; text-align:left !important; margin:0 0 4px; }
html body#checkout #wrapper .cnc-pickupatstore-option .ocs_btn_open_modal{ display:inline-block !important; float:none !important; margin:2px 0 6px !important; }
html body#checkout #wrapper .cnc-pickupatstore-option > label > .row > div:first-child > br{ display:none; }
html body#checkout #wrapper .cnc-pickupatstore-option .cnc-shop-address{ display:block; font-size:13px; line-height:1.35 !important; color:#5E5446; }
html body#checkout #wrapper #cnc_pickupatstore_additional_delay span{ font-size:12.5px; }
html body#checkout #wrapper .order-options label{ font-size:13px; }
html body#checkout #wrapper .order-options textarea{ width:100%; font-size:16px; }

/* 10. Paiement : moyen et conditions alignes sur leur case. */
html body#checkout #wrapper #checkout-payment-step .payment-option{
  display:flex; align-items:center; gap:12px; padding:10px 14px; margin:0 0 12px;
  border:1px solid #D9D2BE; border-radius:8px; }
html body#checkout #wrapper #checkout-payment-step .payment-option:has(input:checked){ border-color:#B08D3F; box-shadow:0 0 0 1px #B08D3F; }
html body#checkout #wrapper #checkout-payment-step .payment-option .custom-radio{ float:none !important; flex:0 0 24px; margin:0; }
html body#checkout #wrapper #checkout-payment-step .payment-option label{ margin:0; padding:10px 0 !important; text-align:left; flex:1 1 auto; }
html body#checkout #wrapper #conditions-to-approve ul{ margin:0 0 6px; padding:0; }
html body#checkout #wrapper #conditions-to-approve li{ display:flex; align-items:flex-start; gap:10px; }
html body#checkout #wrapper #conditions-to-approve li > .float-xs-left{ float:none !important; flex:0 0 24px; }
html body#checkout #wrapper #conditions-to-approve .custom-checkbox input,
html body#checkout #wrapper #conditions-to-approve .custom-checkbox input + span{ width:22px; height:22px; margin:0; }
html body#checkout #wrapper #conditions-to-approve .condition-label{ margin:0; }
html body#checkout #wrapper #conditions-to-approve .condition-label label{ font-size:14px; text-align:left; margin:0; }
html body#checkout #wrapper #conditions-to-approve .condition-label a{ display:inline-block; padding:11px 0; margin:-11px 0; }

/* 11. Recapitulatif : nombre d articles et detail sur une ligne, lignes produit compactes. */
html body#checkout #wrapper #js-checkout-summary .card-block{ padding:14px 6px 6px; }
html body#checkout #wrapper #js-checkout-summary .cart-summary-products{
  display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; }
html body#checkout #wrapper #js-checkout-summary .cart-summary-products > p{ margin:0; font-size:15px; }
html body#checkout #wrapper #js-checkout-summary .cart-summary-products > p > a{ padding:10px 0; }
html body#checkout #wrapper #js-checkout-summary #cart-summary-product-list{ flex:0 0 100%; }
html body#checkout #wrapper #js-checkout-summary .media-list{ margin:6px 0 0; }
html body#checkout #wrapper #js-checkout-summary .media{
  display:flex; align-items:flex-start; gap:12px; margin:0; padding:10px 0; border-bottom:1px solid rgba(236,226,196,.14); }
html body#checkout #wrapper #js-checkout-summary .media-left{ flex:0 0 52px; padding:0; }
html body#checkout #wrapper #js-checkout-summary .media-left img{ width:52px; height:52px; object-fit:cover; border-radius:4px; }
html body#checkout #wrapper #js-checkout-summary .media-body{
  flex:1 1 auto; width:auto !important; display:flex; flex-wrap:wrap; align-items:baseline; column-gap:6px; min-width:0; }
html body#checkout #wrapper #js-checkout-summary .media-body .product-name{ flex:0 0 100%; font-size:14px; line-height:1.35 !important; margin-bottom:3px; }
html body#checkout #wrapper #js-checkout-summary .media-body .product-quantity{ display:inline !important; font-size:13px; }
html body#checkout #wrapper #js-checkout-summary .media-body .product-price{ float:none !important; font-size:13px; }
html body#checkout #wrapper #js-checkout-summary .media-body .product-price::before{ content:"\E0\A0"; }
html body#checkout #wrapper #js-checkout-summary .media-body > br{ display:none; }
html body#checkout #wrapper #js-checkout-summary .cart-summary-subtotals-container{ padding:10px 6px 4px !important; border:0 !important; }
html body#checkout #wrapper #js-checkout-summary .cart-summary-line{
  display:flex; justify-content:space-between; align-items:baseline; margin:0 0 4px; }
html body#checkout #wrapper #js-checkout-summary .cart-summary-line .label,
html body#checkout #wrapper #js-checkout-summary .cart-summary-line .value{ float:none !important; width:auto !important; font-size:15px !important; padding:0; }
html body#checkout #wrapper #js-checkout-summary .cart-summary-line .label{ flex:1 1 auto; text-align:left !important; }
html body#checkout #wrapper #js-checkout-summary .cart-summary-line .value{ flex:0 0 auto; margin-left:auto; text-align:right !important; }
html body#checkout #wrapper #js-checkout-summary .cart-summary-totals{ padding:10px 6px 12px !important; margin:0; border-top:1px solid rgba(236,226,196,.35); }
html body#checkout #wrapper #js-checkout-summary .cart-summary-totals .cart-total{ padding:0 !important; background:none !important; }
html body#checkout #wrapper #js-checkout-summary .cart-summary-totals .cart-total .label,
html body#checkout #wrapper #js-checkout-summary .cart-summary-totals .cart-total .value{ font-size:18px !important; font-weight:700; }

/* 12. Code promo : lien discret, champ et bouton sur une ligne, Fermer a sa taille. */
html body#checkout #wrapper #js-checkout-summary .block-promo{ margin:0 0 8px; padding:0 6px; }
html body#checkout #wrapper #js-checkout-summary .cart-voucher .promo-code-button{ margin:0; text-align:left; }
html body#checkout #wrapper #js-checkout-summary .promo-code{ padding:6px 0 0; }
html body#checkout #wrapper #js-checkout-summary .promo-code form{ display:flex; gap:8px; }
html body#checkout #wrapper #js-checkout-summary .promo-code .promo-input{ flex:1 1 auto; min-width:0; height:46px; margin:0; font-size:16px; }
html body#checkout #wrapper #js-checkout-summary .promo-code .btn{ float:none; flex:0 0 auto; height:46px; margin:0; padding:0 18px; }
html body#checkout #wrapper #js-checkout-summary .promo-code a.cancel-promo{ display:inline-block; font-size:14px !important; padding:12px 0; margin:0; }

/* 13. Reassurance sous le recapitulatif : plus serree. */
html body#checkout #wrapper .blockreassurance_product{ margin-top:12px; padding:0 4px; }
html body#checkout #wrapper .blockreassurance_product > div{ margin-bottom:10px; }
html body#checkout #wrapper .blockreassurance_product .block-title{ font-size:14px; }
html body#checkout #wrapper .blockreassurance_product p{ font-size:13.5px; margin-bottom:0; }

/* 14. Pied du tunnel : la mention du logiciel a la taille d une mention. */
html body#checkout #footer, html body#checkout #footer a{ font-size:13px !important; line-height:1.4 !important; }
}
/* ==== FIN - LA VOIE VERTE : tunnel de commande sur telephone - 2026-09-28 ==== */

/* ==== DEBUT - LA VOIE VERTE : panier sur telephone - 2026-09-28 ==== */
/* Releve du 2026-09-28 (lvv.css v171, /panier, 375 px, quatre articles) : 5,3 ecrans.
   Meme cause qu au tunnel : interligne fige a 30 px, et les montants sans taille
   propre heritent des 24 px du corps (sous-total et livraison plus gros que le total).
   Lignes produit : image de 100 px, nom a double interligne, quantite / total / corbeille
   sur une ligne a part qui repart du bord gauche. Commander : petit bouton cale a gauche.
   L ORDRE N EST PAS TOUCHE ICI : le recapitulatif reste sous les propositions
   (section "Le recapitulatif passe SOUS les propositions").
   Tout est sous 768 px et sous body#cart : ordinateur et tablette inchanges. */
@media (max-width:767px){

/* 1. Base. */
html body#cart #wrapper .cart-grid .cart-overview,
html body#cart #wrapper .cart-grid .cart-summary{ font-size:15px; line-height:1.45; }
html body#cart #wrapper .cart-grid .cart-overview a,
html body#cart #wrapper .cart-grid .cart-overview span,
html body#cart #wrapper .cart-grid .cart-summary a,
html body#cart #wrapper .cart-grid .cart-summary span{ line-height:1.35 !important; }
html body#cart #wrapper .cart-container > .card-block{ padding:12px 6px 10px; }

/* 2. Ligne produit : image a gauche, nom et prix a droite, quantite / total / corbeille dessous. */
html body#cart #wrapper .cart-items{ padding:4px 0; }
html body#cart #wrapper .cart-items .cart-item{ padding:12px 4px; }
html body#cart #wrapper .cart-item .product-line-grid{
  display:grid; grid-template-columns:76px minmax(0,1fr); column-gap:12px; row-gap:8px; align-items:start; }
html body#cart #wrapper .cart-item .product-line-grid > div{
  float:none !important; width:auto !important; max-width:none !important; padding:0 !important; margin:0 !important; }
html body#cart #wrapper .cart-item .product-line-grid > .clearfix{ display:none; }
html body#cart #wrapper .cart-item .product-line-grid-left{ grid-column:1; grid-row:1 / span 2; }
html body#cart #wrapper .cart-item .product-line-grid-left img{ display:block; width:76px; height:76px; object-fit:cover; border-radius:6px; }
html body#cart #wrapper .cart-item .product-line-grid-body{ grid-column:2; grid-row:1; }
html body#cart #wrapper .cart-item .product-line-grid-body > br{ display:none; }
html body#cart #wrapper .cart-item .product-line-grid-body .product-line-info{ margin:0; }
html body#cart #wrapper .cart-item .product-line-grid-body a.label{ display:inline-block; font-size:14.5px !important; padding:10px 0; margin:-8px 0 -8px; }
html body#cart #wrapper .cart-item .product-line-grid-body .product-price{ margin:3px 0 0 !important; font-size:13px !important; line-height:1.3 !important; }
html body#cart #wrapper .cart-item .product-line-grid-body .product-price .price{ font-size:13px !important; }
html body#cart #wrapper .cart-item .product-line-grid-body .product-price .price::after{ content:"\A0l\27unit\E9"; }
html body#cart #wrapper .cart-item .product-line-grid-right{ grid-column:2; grid-row:2; }
html body#cart #wrapper .cart-item .product-line-grid-right > .row{ display:flex; align-items:center; margin:0; }
html body#cart #wrapper .cart-item .product-line-grid-right > .row > div{
  float:none !important; width:auto !important; max-width:none !important; padding:0 !important; }
html body#cart #wrapper .cart-item .product-line-grid-right > .row > .hidden-md-up{ display:none !important; }
html body#cart #wrapper .cart-item .product-line-grid-right > .row > div:nth-child(2){ flex:1 1 auto; }
html body#cart #wrapper .cart-item .product-line-grid-right > .row > div:nth-child(2) > .row{ display:flex; align-items:center; gap:10px; margin:0; }
html body#cart #wrapper .cart-item .product-line-grid-right > .row > div:nth-child(2) > .row > div{
  float:none !important; width:auto !important; max-width:none !important; padding:0 !important; }
html body#cart #wrapper .cart-item .product-line-grid-right .price{ margin-left:auto; text-align:right; }
html body#cart #wrapper .cart-item .product-line-grid-right .price .product-price,
html body#cart #wrapper .cart-item .product-line-grid-right .price strong{ font-size:17px !important; font-weight:700; white-space:nowrap; }
html body#cart #wrapper .cart-item .product-line-grid-right > .row > div:last-child{ flex:0 0 44px; }
html body#cart #wrapper .cart-item .cart-line-product-actions{ display:flex; justify-content:center; }
@media (max-width:359px){
  html body#cart #wrapper .cart-item .product-line-grid-left{ grid-row:1; }
  html body#cart #wrapper .cart-item .product-line-grid-right{ grid-column:1 / -1; }
}

/* 3. Recapitulatif : libelle a gauche, montant a droite, total en tete de hierarchie. */
html body#cart #wrapper .cart-summary .card-block{ padding:14px 6px 4px; }
html body#cart #wrapper .cart-summary .cart-summary-line{ display:flex; flex-wrap:wrap; justify-content:space-between; align-items:baseline; margin:0 0 4px; }
html body#cart #wrapper .cart-summary .cart-summary-line > div{ flex:0 0 100%; }
html body#cart #wrapper .cart-summary .cart-summary-line .label,
html body#cart #wrapper .cart-summary .cart-summary-line .value{ float:none !important; width:auto !important; font-size:15px !important; padding:0; }
html body#cart #wrapper .cart-summary .cart-summary-line > .value{ margin-left:auto; text-align:right; }
html body#cart #wrapper .cart-summary .cart-summary-totals{ padding:10px 6px 12px !important; border-top:1px solid rgba(236,226,196,.35); }
html body#cart #wrapper .cart-summary .cart-summary-totals .cart-total{ padding:0 !important; background:none !important; }
html body#cart #wrapper .cart-summary .cart-summary-totals .label,
html body#cart #wrapper .cart-summary .cart-summary-totals .value{ font-size:18px !important; font-weight:700; }

/* 4. Code promo. */
html body#cart #wrapper .cart-summary .block-promo{ margin:0 0 4px; padding:0 6px; }
html body#cart #wrapper .cart-summary .cart-voucher .promo-code-button{ margin:0; text-align:left; }
html body#cart #wrapper .cart-summary .promo-code{ padding:6px 0 0; }
html body#cart #wrapper .cart-summary .promo-code form{ display:flex; gap:8px; }
html body#cart #wrapper .cart-summary .promo-code .promo-input{ flex:1 1 auto; min-width:0; height:46px; margin:0; font-size:16px; }
html body#cart #wrapper .cart-summary .promo-code .btn{ float:none; flex:0 0 auto; height:46px; margin:0; padding:0 18px; }
html body#cart #wrapper .cart-summary .promo-code a.cancel-promo{ display:inline-block; font-size:14px !important; padding:12px 0; margin:0; }

/* 5. Commander : toute la largeur. */
html body#cart #wrapper .cart-summary .cart-detailed-actions{ margin:8px 0 0; padding:0 0 16px; }
html body#cart #wrapper .cart-summary .cart-detailed-actions .btn{
  display:flex !important; align-items:center; justify-content:center; width:100% !important; max-width:none !important;
  min-height:52px; line-height:1.2 !important; padding:0 16px !important;
  font-size:15px !important; border-radius:8px; text-align:center; }
}
/* ==== FIN - LA VOIE VERTE : panier sur telephone - 2026-09-28 ==== */

/* ==== DEBUT v173 - 2026-09-29 - FIN DES FICHES SUR TELEPHONE : LA PLACE DE LA BARRE ET DE MISS BUD ====
   Demande de Florent (" aucun bug de ce genre " apres le panier). Mesure au doigt, 47 pages a 390 :
   en bas de TOUTES les fiches, le bouton OK de la lettre d information restait sous Miss Bud
   (elementFromPoint = img.lvv-mbud-img-bras, 12 fiches sur 14) et rien ne pouvait le degager :
   le defilement est au bout. La barre d achat collee cachait aussi l embleme et la mention
   " Vente interdite aux mineurs ". Le pied garde donc en bas la hauteur de la barre
   (--lvv-barre-h, publiee par views/js/mobile.js) + Miss Bud (122 px) + 18 px d air.
   Remplace les 92 px reserves pour la seule barre des fleurs (section du 25/09). */
@media (max-width: 767px) {
  body#product #footer, body#product.lvv-br-on #footer{padding-bottom:calc(var(--lvv-barre-h, 64px) + 140px) !important}
}
/* ==== FIN v173 ==== */

/* ==== DEBUT v176 - 2026-09-29 - LARGEUR ORDINATEUR DES RAYONS ====
   1. Cadre de marque (.sb-marque, rayons 276, 271-274, 53) : le plafond de
      lecture (> * max-width:680px, >= 992 px) le bridait ; il suit la colonne.
   2. Texte de presentation deplie (.lvv-repli.lvv-deplie) : deux colonnes des
      1200 px, chaque intertitre et chaque tableau sur toute la largeur, pour que
      chaque section se lise en deux colonnes courtes ; un paragraphe n'est
      jamais coupe entre deux colonnes. Replie : inchange. */
@media (min-width:992px){
  body#category[class*="category-id-"] div#category-description > div.sb-marque{max-width:none}
}
@media (min-width:1200px){
  body#category[class*="category-id-"] div#category-description > .lvv-repli.lvv-deplie{max-width:none}
  body#category[class*="category-id-"] :is(div#category-description.lvv-repli.lvv-deplie, div#category-description > .lvv-repli.lvv-deplie){columns:2 400px;column-gap:56px;column-rule:1px solid rgba(176,141,63,.22)}
  body#category[class*="category-id-"] :is(div#category-description.lvv-repli.lvv-deplie, div#category-description > .lvv-repli.lvv-deplie) > *{max-width:none}
  body#category[class*="category-id-"] :is(div#category-description.lvv-repli.lvv-deplie, div#category-description > .lvv-repli.lvv-deplie) > :is(h2,h3,table,div){column-span:all;break-inside:avoid}
  body#category[class*="category-id-"] :is(div#category-description.lvv-repli.lvv-deplie, div#category-description > .lvv-repli.lvv-deplie) :is(p,li){break-inside:avoid}
  body#category[class*="category-id-"] :is(div#category-description.lvv-repli.lvv-deplie, div#category-description > .lvv-repli.lvv-deplie) > p:has(img.img-fluid){float:none;width:auto;max-width:240px;margin:4px auto 18px;break-inside:avoid}
}
/* ==== FIN v176 ==== */

/* ==== DEBUT v177 - 2026-09-29 - FICHES SUR ORDINATEUR : SECTIONS COTE A COTE ====
   La grille des cartes .lvv-sec posees par views/js/mobile.js (section v177), >= 1200 px seulement. */
@media (min-width:1200px){
  html body#product#product #description .product-description.lvv-secs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:56px;align-items:start}
  html body#product#product #description .product-description.lvv-secs > :not(.lvv-sec){grid-column:1/-1}
  html body#product#product #description .product-description.lvv-secs > .lvv-sec > :is(p,ul,ol,table,h2,h3){max-width:none !important}
}
/* ==== FIN v177 ==== */
