body.vn-shop-gallery-page ul.products:has(> li.product:not(.product-category)) { display:grid; justify-content:center; grid-template-columns:repeat(auto-fit,minmax(120px,120px)); grid-auto-rows:120px; gap:15px; grid-auto-flow:dense; }
body.vn-shop-gallery-page ul.products:has(> li.product:not(.product-category)) > li.product:not(.product-category) { position:relative!important; margin:0!important; padding:0!important; width:100%!important; height:100%!important; overflow:visible!important; }
body.vn-shop-gallery-page ul.products:has(> li.product:not(.product-category)) > li.product:not(.product-category) > figure { position:absolute!important; inset:0!important; margin:0!important; width:100%!important; height:100%!important; z-index:1!important; }
body.vn-shop-gallery-page ul.products:has(> li.product:not(.product-category)) > li.product:not(.product-category) > figure a.ct-media-container { display:block!important; width:100%!important; height:100%!important; }
body.vn-shop-gallery-page ul.products:has(> li.product:not(.product-category)) > li.product:not(.product-category) > figure img { display:block!important; width:100%!important; height:100%!important; object-fit:cover!important; }
body.vn-shop-gallery-page ul.products:has(> li.product:not(.product-category)) > li.product:not(.product-category).paysage { grid-column:span 3; grid-row:span 2; }
body.vn-shop-gallery-page ul.products:has(> li.product:not(.product-category)) > li.product:not(.product-category).portrait { grid-column:span 3; grid-row:span 4; }
body.vn-shop-gallery-page ul.products:has(> li.product:not(.product-category)) > li.product:not(.product-category).carre { grid-column:span 2; grid-row:span 2; }
body.vn-shop-gallery-page ul.products:has(> li.product:not(.product-category)) > li.product:not(.product-category).pano21 { grid-column:span 4; grid-row:span 2; }
body.vn-shop-gallery-page ul.products:has(> li.product:not(.product-category)) > li.product:not(.product-category).pano { grid-column:span 6; grid-row:span 2; }
body.vn-shop-gallery-page ul.products:has(> li.product:not(.product-category)) > li.product:not(.product-category) .woocommerce-loop-product__title { position:absolute!important; top:3px!important; left:0!important; right:0!important; z-index:5!important; margin:0!important; padding:0!important; text-align:center!important; font-size:var(--vn-shop-title-font-size,12px)!important; font-weight:normal!important; line-height:1.25!important; }
body.vn-shop-gallery-page ul.products:has(> li.product:not(.product-category)) > li.product:not(.product-category) .woocommerce-loop-product__title a { display:inline-block!important; padding:1px 4px!important; background:#fff!important; color:inherit!important; }
body.vn-shop-hide-titles ul.products:has(> li.product:not(.product-category)) > li.product:not(.product-category) .woocommerce-loop-product__title { display:none!important; }
body.vn-shop-gallery-page ul.products:has(> li.product:not(.product-category)) > li.product:not(.product-category) > .price { display:none!important; }
body.vn-shop-gallery-page ul.products:has(> li.product:not(.product-category)) > li.product:not(.product-category) .ct-woo-card-actions { position:absolute!important; left:0!important; right:0!important; bottom:3px!important; z-index:5!important; margin:0!important; padding:0!important; text-align:center!important; }
body.vn-shop-gallery-page ul.products:has(> li.product:not(.product-category)) > li.product:not(.product-category) .ct-woo-card-actions a { display:inline-block!important; font-size:var(--vn-shop-button-font-size,11px)!important; }
@media (min-width:631px) {
 body.vn-shop-gallery-page ul.products:has(> li.product:not(.product-category)) > li.product:not(.product-category) .ct-woo-card-actions a { opacity:0; visibility:hidden; pointer-events:none; transition:opacity .18s ease; }
 body.vn-shop-gallery-page ul.products:has(> li.product:not(.product-category)) > li.product:not(.product-category):hover .ct-woo-card-actions a,
 body.vn-shop-gallery-page ul.products:has(> li.product:not(.product-category)) > li.product:not(.product-category):focus-within .ct-woo-card-actions a { opacity:1; visibility:visible; pointer-events:auto; }
}
/* TI WooCommerce Wishlist — bouton favoris sur les galeries. */
body.vn-shop-gallery-page ul.products:has(> li.product:not(.product-category)) > li.product:not(.product-category) > .tinvwl-loop-button-wrapper { position:absolute!important; top:var(--vn-shop-wishlist-offset,5px)!important; left:var(--vn-shop-wishlist-offset,5px)!important; z-index:6!important; margin:0!important; padding:0!important; width:auto!important; opacity:0; visibility:hidden; pointer-events:none; transition:opacity .18s ease; }
body.vn-shop-gallery-page ul.products:has(> li.product:not(.product-category)) > li.product:not(.product-category):hover > .tinvwl-loop-button-wrapper { opacity:1; visibility:visible; pointer-events:auto; }
body.vn-shop-gallery-page ul.products:has(> li.product:not(.product-category)) > li.product:not(.product-category) > .tinvwl-loop-button-wrapper .tinvwl_add_to_wishlist_button { box-sizing:border-box!important; align-items:center!important; justify-content:center!important; width:auto!important; min-width:44px!important; height:var(--vn-shop-wishlist-button-height,44px)!important; min-height:var(--vn-shop-wishlist-button-height,44px)!important; margin:0!important; padding:0 8px!important; background:#fff!important; border:0!important; border-radius:3px!important; line-height:1!important; }
body.vn-shop-gallery-page ul.products:has(> li.product:not(.product-category)) > li.product:not(.product-category) > .tinvwl-loop-button-wrapper .tinvwl_add_to_wishlist_button img { width:auto!important; height:100%!important; max-width:none!important; max-height:100%!important; object-fit:contain!important; margin:0!important; }
body.vn-shop-gallery-page ul.products:has(> li.product:not(.product-category)) > li.product:not(.product-category) > .tinvwl-loop-button-wrapper .tinvwl_add_to_wishlist_button img { transition:transform .18s ease, filter .18s ease; transform-origin:center center; }
body.vn-shop-gallery-page ul.products:has(> li.product:not(.product-category)) > li.product:not(.product-category) > .tinvwl-loop-button-wrapper .tinvwl_add_to_wishlist_button:hover img,
body.vn-shop-gallery-page ul.products:has(> li.product:not(.product-category)) > li.product:not(.product-category) > .tinvwl-loop-button-wrapper .tinvwl_add_to_wishlist_button:focus-visible img { transform:scale(1.08); filter:drop-shadow(0 1px 2px rgba(0,0,0,.38)); }
/* Desktop : le lien TI épouse la largeur réelle de l'icône, sans bande blanche latérale. */
@media (min-width:631px) {
 body.vn-shop-gallery-page ul.products:has(> li.product:not(.product-category)) > li.product:not(.product-category) > .tinvwl-loop-button-wrapper .tinvwl_add_to_wishlist_button { min-width:0!important; width:auto!important; padding:0!important; }
}
@media (max-width:630px) {
 body.vn-shop-gallery-page ul.products:has(> li.product:not(.product-category)) { display:block; }
 body.vn-shop-gallery-page ul.products:has(> li.product:not(.product-category)) > li.product:not(.product-category) { width:100%!important; height:auto!important; aspect-ratio:auto!important; margin:10px 0!important; overflow:visible!important; }
 body.vn-shop-gallery-page ul.products:has(> li.product:not(.product-category)) > li.product:not(.product-category) > figure { position:relative!important; inset:auto!important; height:auto!important; }
 body.vn-shop-gallery-page ul.products:has(> li.product:not(.product-category)) > li.product:not(.product-category) > figure a.ct-media-container { height:auto!important; }
 body.vn-shop-gallery-page ul.products:has(> li.product:not(.product-category)) > li.product:not(.product-category) > figure img { height:auto!important; object-fit:contain!important; }
 body.vn-shop-gallery-page ul.products:has(> li.product:not(.product-category)) > li.product:not(.product-category) .ct-woo-card-actions { position:relative!important; bottom:auto!important; margin-top:5px!important; }
 body.vn-shop-gallery-page ul.products:has(> li.product:not(.product-category)) > li.product:not(.product-category) .ct-woo-card-actions a { opacity:1!important; visibility:visible!important; pointer-events:auto!important; }
 /* Smartphone : favoris sous la photo, à gauche de « Choix des options ». */
 body.vn-shop-gallery-page ul.products:has(> li.product:not(.product-category)) > li.product:not(.product-category) {
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto minmax(0,1fr)!important;
  grid-template-rows:auto auto!important;
  align-items:center!important;
 }
 body.vn-shop-gallery-page ul.products:has(> li.product:not(.product-category)) > li.product:not(.product-category) > figure {
  grid-column:1 / -1!important;
  grid-row:1!important;
 }
/* 5 px internal white frame and stronger shadow on hover */
body.vn-shop-gallery-page ul.products:has(> li.product:not(.product-category)) > li.product:not(.product-category)::after { content:""; position:absolute; inset:0; z-index:4; pointer-events:none; box-shadow:inset 0 0 0 0 #fff; transition:box-shadow .20s ease, filter .20s ease; }
body.vn-shop-gallery-page ul.products:has(> li.product:not(.product-category)) > li.product:not(.product-category):hover::after,
body.vn-shop-gallery-page ul.products:has(> li.product:not(.product-category)) > li.product:not(.product-category):focus-within::after { box-shadow:inset 0 0 0 5px #fff; }
body.vn-shop-gallery-page ul.products:has(> li.product:not(.product-category)) > li.product:not(.product-category):hover { box-shadow:0 8px 18px rgba(0,0,0,.28); }

}
/* Infobulles gallery — V1.9.40
   Les deux infobulles sont désormais contrôlées par Vision-Nature Shop.
   Options : pseudo-element sur le bouton WooCommerce.
   Favoris : élément DOM .vn-shop-wishlist-tooltip créé par JavaScript.
   TI reste seul responsable de l'état Ajouter/Retirer. */
body.vn-shop-gallery-page ul.products:has(> li.product:not(.product-category)) > li.product:not(.product-category) > .ct-woo-card-actions a::after {
 position:absolute;
 display:block;
 box-sizing:border-box;
 width:max-content;
 max-width:min(230px,80vw);
 padding:6px 9px;
 background:#303030;
 color:#fff;
 border:1px solid #fff;
 border-radius:4px;
 font:400 12px/1.35 Arial,sans-serif;
 text-align:center;
 white-space:normal;
 box-shadow:0 3px 9px rgba(0,0,0,.32);
 pointer-events:none;
 content:"Consulter la photo et ses options d'achat";
 bottom:calc(100% + 7px);
 left:50%;
 transform:translateX(-50%);
 opacity:0;
 visibility:hidden;
 z-index:20;
 transition:opacity .18s ease,visibility .18s ease;
}
body.vn-shop-gallery-page ul.products:has(> li.product:not(.product-category)) > li.product:not(.product-category) > .ct-woo-card-actions a:hover::after,
body.vn-shop-gallery-page ul.products:has(> li.product:not(.product-category)) > li.product:not(.product-category) > .ct-woo-card-actions a:focus-visible::after {
 opacity:1;
 visibility:visible;
}

/* Tooltip Favoris : entièrement créé et affiché par wishlist-tooltip.js.
   Le CSS ne pilote volontairement pas sa visibilité : le JavaScript affiche
   la div uniquement pendant le survol du bouton TI. */
body.vn-shop-gallery-page ul.products:has(> li.product:not(.product-category)) > li.product:not(.product-category) > .tinvwl-loop-button-wrapper .tinvwl-tooltip {
 display:none!important;
}

body.vn-shop-gallery-page ul.products > li.product-category { display:block; }
.vn-shop-top-pagination { margin-bottom:15px; }
body.vn-shop-result-count-right .woo-listing-top p.woocommerce-result-count { float:none!important; margin-left:auto!important; margin-right:0!important; text-align:right!important; }
@media (max-width:630px) {
 body.vn-shop-gallery-page ul.products:has(> li.product:not(.product-category)) > li.product:not(.product-category) > .tinvwl-loop-button-wrapper { position:relative!important; top:auto!important; left:auto!important; right:auto!important; bottom:auto!important; grid-column:1!important; grid-row:2!important; justify-self:end!important; align-self:center!important; opacity:1!important; visibility:visible!important; pointer-events:auto!important; margin:4px 5px 0 0!important; padding:0!important; width:auto!important; z-index:6!important; transform:translateY(-2px)!important; }
 body.vn-shop-gallery-page ul.products:has(> li.product:not(.product-category)) > li.product:not(.product-category) .ct-woo-card-actions { grid-column:2 / 4!important; grid-row:2!important; justify-self:start!important; align-self:center!important; width:auto!important; margin:4px 0 0 5px!important; transform:translateY(-2px)!important; }
 body.vn-shop-gallery-page ul.products:has(> li.product:not(.product-category)) > li.product:not(.product-category) > .tinvwl-loop-button-wrapper .tinvwl_add_to_wishlist_button { align-items:center!important; justify-content:center!important; }
}
body.vn-shop-gallery-page ul.products:has(> li.product:not(.product-category)) > li.product:not(.product-category) > .tinvwl-loop-button-wrapper.vn-shop-wishlist-height-match { display:flex!important; align-items:stretch!important; }
body.vn-shop-gallery-page ul.products:has(> li.product:not(.product-category)) > li.product:not(.product-category) > .tinvwl-loop-button-wrapper.vn-shop-wishlist-height-match > a { box-sizing:border-box!important; height:var(--vn-shop-wishlist-button-height)!important; min-height:var(--vn-shop-wishlist-button-height)!important; align-items:center!important; justify-content:center!important; }
