/* Grille Vitrine : cartes produits « photo pleine » pour WoodMart (style de survol quelconque).
   Couleurs réglables avec les variables ci-dessous. */
body.gv-vitrine{--gv-accent:#F37823;--gv-img:#1B1B1B;--gv-shade:8,24,36;--gv-text:#fff;--gv-muted:#8AA0B6;--gv-ok:#7FD1A8;--gv-low:#F2B84B;--gv-radius:12px;--gv-ratio:4/5}

/* Le widget Elementor qui contient la grille prend toute la largeur.
   Sans ça, dans un conteneur Elementor en colonne avec retour à la ligne,
   la hauteur des cartes est calculée à largeur nulle et le pied de page
   passe par-dessus les produits (cas de la catégorie Mystery pack). */
body.gv-vitrine .elementor-widget:has(.wd-products),body.gv-vitrine .elementor-widget-wd_archive_products,body.gv-vitrine .elementor-widget-wd_products{width:100%!important;max-width:100%!important}

/* La carte */
body.gv-vitrine .wd-products .wd-product .product-wrapper{position:relative!important;display:block!important;aspect-ratio:var(--gv-ratio);padding:0!important;margin:0!important;border:1px solid rgba(255,255,255,.08)!important;border-radius:var(--gv-radius)!important;background:var(--gv-img)!important;background-clip:padding-box!important;overflow:hidden!important;box-shadow:none!important}

/* Photo : carrée, en haut, zoom léger au survol */
body.gv-vitrine .wd-products .wd-product .product-element-top{position:absolute!important;inset:0 0 auto 0;margin:0!important;border-radius:0!important;background:transparent!important}
body.gv-vitrine .wd-products .wd-product .product-element-top img{width:100%;aspect-ratio:1/1;object-fit:cover}

/* Infos en surimpression sur un dégradé */
body.gv-vitrine .wd-products .wd-product .product-element-bottom{position:absolute!important;left:0;right:0;bottom:0;z-index:3;display:grid!important;grid-template-columns:1fr auto;align-items:end;gap:8px 10px;margin:0!important;padding:50px 16px 16px!important;background:linear-gradient(to top,rgba(var(--gv-shade),.97) 48%,rgba(var(--gv-shade),0))!important;text-align:left!important;pointer-events:none}
body.gv-vitrine .wd-products .wd-product .product-element-bottom a,body.gv-vitrine .wd-products .wd-product .product-element-bottom .wd-add-btn{pointer-events:auto}
body.gv-vitrine .wd-products .wd-product .wd-product-header{display:contents!important}
/* Titre : taille, graisse, hauteur de ligne et couleur gérées par WoodMart */
body.gv-vitrine .wd-products .wd-product .wd-entities-title{grid-column:1/-1;grid-row:2;margin:0!important;text-align:left!important}
body.gv-vitrine .wd-products .wd-product .wd-entities-title a{display:-webkit-box;-webkit-line-clamp:var(--gv-lines,2);line-clamp:var(--gv-lines,2);-webkit-box-orient:vertical;overflow:hidden}
body.gv-vitrine .wd-products .wd-product .wrap-price{grid-column:1;grid-row:3;align-self:center;display:flex!important;align-items:center;min-height:20px;margin:0!important}
body.gv-vitrine .wd-products .wd-product .wrap-price .swap-wrapp,body.gv-vitrine .wd-products .wd-product .wrap-price .swap-elements{display:flex!important;align-items:center;height:auto!important;line-height:1!important}
body.gv-vitrine .wd-products .wd-product .wd-product-header>.wcav-loop-rating,body.gv-vitrine .wd-products .wd-product .wd-product-header>.wcav-stars,body.gv-vitrine .wd-products .wd-product .wd-product-header>.star-rating{grid-column:2;grid-row:3;justify-self:end;align-self:center;margin:0!important}
body.gv-vitrine .wd-products .wd-product .wcav-loop-rating{font-size:12px!important}
body.gv-vitrine .wd-products .wd-product .price{color:var(--gv-accent)!important;font-size:17px!important;font-weight:700!important;line-height:1!important}
body.gv-vitrine .wd-products .wd-product .price del{font-size:13px!important;font-weight:400!important;color:var(--gv-muted)!important;opacity:1!important}
body.gv-vitrine .wd-products .wd-product .price ins{text-decoration:none!important}
body.gv-vitrine .wd-products .wd-product .wc-stripe-bnpl-shop-message{display:none!important}

/* Neutralise l'échange prix / bouton de WoodMart */
body.gv-vitrine .wd-products .wd-product .swap-wrapp{overflow:visible!important;height:auto!important}
body.gv-vitrine .wd-products .wd-product .swap-elements{transform:none!important;display:block!important}

/* Bouton panier : absent sur mobile et tactile */
body.gv-vitrine .wd-products .wd-product .wd-add-btn{display:none!important}
/* Bouton panier : caché, il remplace les infos au survol */
body.gv-vitrine .wd-products .wd-product .wd-add-btn>a{display:flex!important;align-items:center;justify-content:center;gap:8px;width:100%;height:34px!important;min-height:34px!important;padding:0 10px!important;border:0!important;border-radius:7px!important;background:var(--gv-accent)!important;color:#fff!important;font-size:12px!important;font-weight:600!important;line-height:1!important;letter-spacing:0;text-transform:none;text-decoration:none!important}
body.gv-vitrine .wd-products .wd-product .wd-add-btn>a .wd-action-text{text-decoration:none!important;border:0!important;padding:0!important;display:inline!important;opacity:1!important;position:static!important;transform:none!important;color:#fff!important}

/* Badges (promo, nouveau…) : pastilles orange en haut à gauche */
body.gv-vitrine .wd-products .wd-product .product-labels{inset:14px auto auto 14px!important;z-index:3}
body.gv-vitrine .wd-products .wd-product .product-labels .product-label{min-width:0!important;height:auto!important;padding:5px 10px!important;border-radius:6px!important;background:var(--gv-accent)!important;color:#fff!important;font-size:11px!important;font-weight:700!important;line-height:1.2!important;letter-spacing:.02em}

/* Pastille de stock en haut à droite */
.gv-stock{position:static;grid-column:1/-1;grid-row:1;justify-self:start;align-self:end;margin:0 0 -2px;z-index:3;display:inline-flex;align-items:center;gap:6px;padding:5px 9px;border-radius:8px;background:rgba(8,24,36,.82);color:var(--gv-ok);font-size:11px;font-weight:600;line-height:1.2;pointer-events:none}
.gv-stock::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}
.gv-stock.is-low{color:var(--gv-low)}
.gv-stock.is-out{color:var(--gv-muted)}

/* Mobile / tactile : pas de survol, les infos restent visibles */
@media (hover:none),(max-width:767px){
	body.gv-vitrine .wd-products .wd-product .product-element-bottom{padding:56px 12px 12px!important}
	body.gv-vitrine .wd-products .wd-product .price{font-size:15px!important}
	body.gv-vitrine .wd-products .wd-product .wd-product-header>.wcav-loop-rating span{display:none}
	.gv-stock{font-size:10px;padding:4px 7px}
}

/* Note compacte */
.gv-rating{display:inline-flex;align-items:center;gap:5px;font-size:12px;line-height:1;color:var(--gv-muted,#8AA0B6);white-space:nowrap}
.gv-rating b{color:#fff;font-weight:600}
.gv-stars{display:inline-block;width:60px;height:12px;background:linear-gradient(90deg,var(--gv-accent,#F37823) var(--gv-fill),rgba(138,160,182,.35) var(--gv-fill));-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2.2l2.9 6.3 6.9.7-5.2 4.6 1.5 6.8L12 17.1l-6.1 3.5 1.5-6.8L2.2 9.2l6.9-.7z'/%3E%3C/svg%3E") left center/12px 12px repeat-x;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2.2l2.9 6.3 6.9.7-5.2 4.6 1.5 6.8L12 17.1l-6.1 3.5 1.5-6.8L2.2 9.2l6.9-.7z'/%3E%3C/svg%3E") left center/12px 12px repeat-x}
body.gv-vitrine .wd-products .wd-product .wd-product-header>.gv-rating{grid-column:2;grid-row:3;justify-self:end;align-self:center;margin:0!important}
/* La pastille ne s'affiche que dans les grilles vitrine (la carte sert de repère) */
.gv-stock{display:none!important}
body.gv-vitrine .wd-products .wd-product .gv-stock{display:inline-flex!important}
/* Colonnes étroites (5 par ligne) : on garde la note courte */
@media (max-width:1400px){body.gv-vitrine .wd-products.grid-columns-5 .gv-rating .gv-stars{width:12px;-webkit-mask-size:12px 12px;mask-size:12px 12px;--gv-fill:100%}}

/* Effets de survol : uniquement sur ordinateur avec souris.
   Sur mobile, un appui ne déclenche aucune animation. */
@media (hover:hover) and (min-width:768px){
	body.gv-vitrine .wd-products .wd-product .product-wrapper{transition:border-color .2s,transform .2s,box-shadow .2s}
	body.gv-vitrine .wd-products .wd-product .product-element-top img{transition:transform .5s ease}
	.gv-stock{transition:opacity .2s}
	body.gv-vitrine .wd-products .wd-product:hover .product-wrapper{border-color:rgba(243,120,35,.55)!important;transform:translateY(-3px);box-shadow:0 12px 30px rgba(0,0,0,.35)!important}
	body.gv-vitrine .wd-products .wd-product:hover .product-image-link img{transform:scale(1.05)}
	body.gv-vitrine .wd-products .wd-product .wd-add-btn{position:absolute!important;left:14px;right:14px;bottom:14px;z-index:4;margin:0!important;display:block!important;opacity:0;visibility:hidden;transition:opacity .15s,visibility .15s}
	body.gv-vitrine .wd-products .wd-product:hover .wd-add-btn{opacity:1;visibility:visible}
	/* Le titre reste visible au survol : il remonte juste au-dessus du bouton */
	body.gv-vitrine .wd-products .wd-product .wd-entities-title{transition:transform .2s ease}
	body.gv-vitrine .wd-products .wd-product:hover .wd-entities-title{transform:translateY(-18px)}
	body.gv-vitrine .wd-products .wd-product:hover .wrap-price .price,body.gv-vitrine .wd-products .wd-product:hover .wd-product-header>*:not(.wd-entities-title){visibility:hidden!important;opacity:0!important}
	body.gv-vitrine .wd-products .wd-product:hover .gv-stock{opacity:0}
}

/* Mobile / tactile : retour visuel au toucher (bordure orange et zoom photo),
   sans rien masquer. */
@media (hover:none),(max-width:767px){
	body.gv-vitrine .wd-products .wd-product .product-wrapper{transition:border-color .2s}
	body.gv-vitrine .wd-products .wd-product .product-element-top img{transition:transform .35s ease}
	body.gv-vitrine .wd-products .wd-product:active .product-wrapper,body.gv-vitrine .wd-products .wd-product:hover .product-wrapper{border-color:rgba(243,120,35,.55)!important}
	body.gv-vitrine .wd-products .wd-product:active .product-image-link img,body.gv-vitrine .wd-products .wd-product:hover .product-image-link img{transform:scale(1.05)}
}
