/* N&S Pharmacie — affichage des produits, version 2 (chargé seulement quand body.nsp-v2 est actif).
 * Bandeaux de titre sur les fonds animés, « étagère » qui défile, « vitrine » (meilleure remise en grand),
 * animations d'entrée. Le mouvement est coupé si l'appareil demande moins d'animations. */
body.nsp-v2{--nsp-ease:cubic-bezier(.22,1,.36,1)}

/* Montant économisé (promotions) */
body.nsp-v2 .price .nsp-eco{display:block;margin-top:3px;font:600 12px/1.3 "Archivo NSP",Arial,sans-serif!important;color:#C2410C!important;letter-spacing:0}
body.nsp-v2.single-product .summary .price .nsp-eco{font-size:14px!important;margin-top:6px}

/* ---------- Titres de section : bandeau sur le fond animé ---------- */
body.nsp-v2 .nsp-titre-bande{position:relative;overflow:hidden;min-height:150px}
body.nsp-v2 .nsp-titre-bande::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(90deg,rgba(255,255,255,.93) 0%,rgba(255,255,255,.76) 45%,rgba(255,255,255,0) 80%)}
body.nsp-v2 .nsp-titre-bande > .e-con-inner{position:relative;z-index:2}
body.nsp-v2 .nsp-sec-label p,body.nsp-v2 .nsp-sec-label .elementor-widget-container{margin:0!important;font:600 12px/1.3 "Archivo NSP",Arial,sans-serif!important;letter-spacing:.08em;text-transform:uppercase;color:#085838!important}
body.nsp-v2 .nsp-sec-titre .elementor-heading-title{margin:0;font-family:"Archivo NSP","Helvetica Neue",Arial,sans-serif!important;font-size:36px!important;font-weight:700!important;font-stretch:120%;letter-spacing:-.02em!important;line-height:1.05!important;color:#0E1E1F!important;text-transform:none!important}
body.nsp-v2 .nsp-sec-voir .elementor-button{background:#fff!important;color:#085838!important;border-radius:4px!important;padding:12px 16px!important;font:600 13px/1 "Archivo NSP",Arial,sans-serif!important;letter-spacing:.06em!important;text-transform:uppercase!important;box-shadow:0 6px 18px -10px rgba(14,30,31,.4)}
body.nsp-v2 .nsp-sec-voir .elementor-button:hover{background:#F4F7F6!important;color:#05412A!important}
body.nsp-v2 .nsp-sec-voir .elementor-button-icon svg{fill:currentColor;width:14px;height:14px}
body.nsp-v2 .nsp-sec-voir .elementor-button-icon{transition:transform .3s var(--nsp-ease)}
body.nsp-v2 .nsp-sec-voir .elementor-button:hover .elementor-button-icon{transform:translateX(3px)}
body.nsp-v2 .nsp-titre-bande.nsp-anime .elementor-widget{opacity:0;transform:translateY(16px)}
body.nsp-v2 .nsp-titre-bande.nsp-vu .elementor-widget{animation:nspMonte .8s var(--nsp-ease) forwards}
body.nsp-v2 .nsp-titre-bande.nsp-vu .nsp-sec-titre{animation-delay:.1s}
body.nsp-v2 .nsp-titre-bande.nsp-vu .nsp-sec-voir{animation-delay:.22s}
@media (max-width:767px){
	body.nsp-v2 .nsp-titre-bande{min-height:118px}
	body.nsp-v2 .nsp-sec-titre .elementor-heading-title{font-size:24px!important}
	body.nsp-v2 .nsp-sec-voir .elementor-button-text{display:none}
	body.nsp-v2 .nsp-sec-voir .elementor-button{padding:12px!important}
}
@keyframes nspMonte{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
@keyframes nspPose{from{opacity:0;transform:translateX(60px)}to{opacity:1;transform:none}}
@keyframes nspZoom{from{opacity:0;transform:scale(.95)}to{opacity:1;transform:none}}
@keyframes nspGlisse{from{opacity:0;transform:translateX(40px)}to{opacity:1;transform:none}}

/* ---------- Éléments communs (étagère et vitrine) ---------- */
body.nsp-v2 :is(.nsp-etagere,.related.products,.upsells.products,.nsp-vitrine) ul.products::before,
body.nsp-v2 :is(.nsp-etagere,.related.products,.upsells.products,.nsp-vitrine) ul.products::after{display:none!important}
body.nsp-v2 :is(.nsp-etagere,.related.products,.upsells.products,.nsp-vitrine) li.product{float:none!important;margin:0!important;padding:0;width:auto!important;max-width:none!important;position:relative;list-style:none}
body.nsp-v2 :is(.nsp-etagere,.related.products,.upsells.products,.nsp-vitrine) .product-loop-wrapper{font-family:"Archivo NSP","Helvetica Neue",Arial,sans-serif;text-align:left}
body.nsp-v2 :is(.nsp-etagere,.related.products,.upsells.products,.nsp-vitrine) .product-loop-action{display:none!important}
body.nsp-v2 :is(.nsp-etagere,.related.products,.upsells.products,.nsp-vitrine) .product-loop-content{text-align:left!important;padding:0!important;position:static!important}
body.nsp-v2 :is(.nsp-etagere,.related.products,.upsells.products,.nsp-vitrine) .product-loop-wrapper{position:static!important}
body.nsp-v2 :is(.nsp-etagere,.related.products,.upsells.products,.nsp-vitrine) .woocommerce-loop-product__title{margin:0 0 6px!important;padding:0!important;font-family:"Archivo NSP","Helvetica Neue",Arial,sans-serif!important;letter-spacing:0!important;font-size:15px!important;font-weight:600!important;line-height:1.35!important;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
body.nsp-v2 :is(.nsp-etagere,.related.products,.upsells.products,.nsp-vitrine) .woocommerce-loop-product__title a{color:#0E1E1F!important;text-decoration:none!important;font-family:inherit!important}
body.nsp-v2 :is(.nsp-etagere,.related.products,.upsells.products,.nsp-vitrine) .product-loop-meta{height:auto!important;max-height:none!important;overflow:visible!important;position:static!important}
body.nsp-v2 :is(.nsp-etagere,.related.products,.upsells.products,.nsp-vitrine) .animated-meta{display:block!important;transform:none!important;position:static!important;height:auto!important}
body.nsp-v2 :is(.nsp-etagere,.related.products,.upsells.products,.nsp-vitrine) .animated-meta > *{transform:none!important;opacity:1!important;visibility:visible!important}
body.nsp-v2 :is(.nsp-etagere,.related.products,.upsells.products,.nsp-vitrine) .price{display:block!important;position:static!important;font-variant-numeric:tabular-nums}
body.nsp-v2 :is(.nsp-etagere,.related.products,.upsells.products,.nsp-vitrine) :is(.price,.price ins,.price > .amount,.price ins .amount,.price .woocommerce-Price-currencySymbol){font-size:17px!important;font-weight:700!important;color:#0E1E1F!important;text-decoration:none!important;font-family:"Archivo NSP",Arial,sans-serif!important}
body.nsp-v2 :is(.nsp-etagere,.related.products,.upsells.products,.nsp-vitrine) :is(.price del,.price del .amount,.price del .woocommerce-Price-currencySymbol){font-size:13px!important;font-weight:500!important;color:#66767A!important}
body.nsp-v2 :is(.nsp-etagere,.related.products,.upsells.products,.nsp-vitrine) .price del{margin-right:6px}
body.nsp-v2 :is(.nsp-etagere,.related.products,.upsells.products,.nsp-vitrine) .onsale{position:absolute!important;top:0!important;left:0!important;z-index:4;background:#C2410C!important;color:#fff!important;font:700 12px/1 "Archivo NSP",Arial,sans-serif!important;padding:6px 8px!important;border-radius:3px!important;min-width:0!important;min-height:0!important;height:auto!important;width:auto!important}
body.nsp-v2 :is(.nsp-etagere,.related.products,.upsells.products,.nsp-vitrine) .added_to_cart{display:none!important}

/* Bouton rond « + » (ajouter au panier) */
body.nsp-v2 :is(.nsp-etagere,.related.products,.upsells.products) .loop-add-to-cart-btn,
body.nsp-v2 .nsp-vitrine li.product:not(:first-child) .loop-add-to-cart-btn{position:absolute!important;z-index:5;width:44px!important;height:44px!important;min-height:0!important;padding:0!important;margin:0!important;border:0!important;border-radius:50%!important;background:#085838!important;color:#fff!important;font-size:0!important;line-height:0!important;display:grid!important;place-items:center;box-shadow:0 10px 18px -8px rgba(5,65,42,.6)!important;transition:transform .25s var(--nsp-ease),background .2s!important;opacity:1!important;visibility:visible!important}
body.nsp-v2 :is(.nsp-etagere,.related.products,.upsells.products) .loop-add-to-cart-btn::before,
body.nsp-v2 .nsp-vitrine li.product:not(:first-child) .loop-add-to-cart-btn::before{content:"+";font:500 28px/1 "Archivo NSP",Arial,sans-serif;color:#fff}
body.nsp-v2 :is(.nsp-etagere,.related.products,.upsells.products) .loop-add-to-cart-btn.added::before,
body.nsp-v2 .nsp-vitrine li.product:not(:first-child) .loop-add-to-cart-btn.added::before{content:"\2713";font-size:20px}
body.nsp-v2 :is(.nsp-etagere,.related.products,.upsells.products,.nsp-vitrine) .loop-add-to-cart-btn.loading{opacity:.6!important}
body.nsp-v2 :is(.nsp-etagere,.related.products,.upsells.products) .loop-add-to-cart-btn .woostify-svg-icon,
body.nsp-v2 .nsp-vitrine li.product:not(:first-child) .loop-add-to-cart-btn .woostify-svg-icon{display:none!important}
body.nsp-v2 :is(.nsp-etagere,.related.products,.upsells.products) .loop-add-to-cart-btn:hover,
body.nsp-v2 .nsp-vitrine li.product:not(:first-child) .loop-add-to-cart-btn:hover{transform:scale(1.08);background:#05412A!important}

/* ---------- L'étagère : produits posés sur une planche, défilement horizontal ---------- */
body.nsp-v2 :is(.nsp-etagere,.related.products,.upsells.products) ul.products{display:flex!important;flex-wrap:nowrap!important;gap:24px!important;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scrollbar-width:none;padding:8px 0 18px!important;margin:0!important;grid-template-columns:none!important}
body.nsp-v2 :is(.nsp-etagere,.related.products,.upsells.products) ul.products::-webkit-scrollbar{display:none}
body.nsp-v2 :is(.nsp-etagere,.related.products,.upsells.products) li.product{flex:0 0 calc((100% - 96px) / 4.3)!important;scroll-snap-align:start}
body.nsp-v2 :is(.nsp-etagere,.related.products,.upsells.products) .product-loop-image-wrapper{position:relative;height:220px;display:flex!important;align-items:flex-end;justify-content:center;padding:0 0 14px!important;margin:0 0 14px!important;background:none!important;border:0!important;border-radius:0!important;overflow:visible!important;aspect-ratio:auto!important}
body.nsp-v2 :is(.nsp-etagere,.related.products,.upsells.products) .product-loop-image-wrapper::after{content:"";position:absolute;left:-12px;right:-12px;bottom:0;height:14px;background:linear-gradient(180deg,#fff,#E9EEEC);border-top:1px solid #DAE2E2;box-shadow:0 10px 16px -10px rgba(14,30,31,.35)}
body.nsp-v2 :is(.nsp-etagere,.related.products,.upsells.products) .product-loop-image-wrapper > a{display:flex!important;align-items:flex-end;justify-content:center;width:100%;height:100%;position:relative;z-index:1}
body.nsp-v2 :is(.nsp-etagere,.related.products,.upsells.products) img.product-loop-image{width:84%!important;height:190px!important;max-width:none!important;max-height:none!important;object-fit:contain;object-position:center bottom;margin:0!important;filter:drop-shadow(0 12px 10px rgba(14,30,31,.18));transition:transform .5s var(--nsp-ease)}
body.nsp-v2 :is(.nsp-etagere,.related.products,.upsells.products) li.product:hover img.product-loop-image{transform:translateY(-6px)}
body.nsp-v2 :is(.nsp-etagere,.related.products,.upsells.products) .loop-add-to-cart-btn{top:162px;right:2px}
body.nsp-v2 :is(.nsp-etagere,.related.products,.upsells.products) ul.products.nsp-anime li.product{opacity:0}
body.nsp-v2 :is(.nsp-etagere,.related.products,.upsells.products) ul.products.nsp-vu li.product{animation:nspPose .8s var(--nsp-ease) both}
body.nsp-v2 .nsp-fleches{display:flex;justify-content:flex-end;gap:8px;margin-top:10px}
body.nsp-v2 .nsp-fleches[hidden]{display:none}
body.nsp-v2 .nsp-fleche{width:42px;height:42px;border-radius:50%;border:1px solid #DAE2E2;background:#fff;color:#0E1E1F;display:grid;place-items:center;cursor:pointer;padding:0;transition:border-color .2s,color .2s}
body.nsp-v2 .nsp-fleche:hover:not(:disabled){border-color:#085838;color:#085838}
body.nsp-v2 .nsp-fleche:disabled{opacity:.35;cursor:default}
body.nsp-v2 .nsp-fleche svg{width:18px;height:18px}
@media (max-width:767px){
	body.nsp-v2 :is(.nsp-etagere,.related.products,.upsells.products) ul.products{gap:18px!important}
	body.nsp-v2 :is(.nsp-etagere,.related.products,.upsells.products) li.product{flex-basis:62%!important}
	body.nsp-v2 :is(.nsp-etagere,.related.products,.upsells.products) .product-loop-image-wrapper{height:190px}
	body.nsp-v2 :is(.nsp-etagere,.related.products,.upsells.products) img.product-loop-image{height:160px!important}
	body.nsp-v2 :is(.nsp-etagere,.related.products,.upsells.products) .loop-add-to-cart-btn{top:132px}
	body.nsp-v2 .nsp-fleches{display:none}
}

/* ---------- La vitrine : la meilleure remise en grand, les autres en liste ---------- */
body.nsp-v2 .nsp-vitrine ul.products{display:grid!important;grid-template-columns:1.15fr 1fr!important;grid-auto-rows:auto;gap:12px 20px!important;margin:0!important;padding:0!important}
body.nsp-v2 .nsp-vitrine li.product:first-child{grid-row:1 / span 3;background:#05412A;border-radius:10px;padding:18px!important;overflow:hidden;isolation:isolate}
/* Verre sapin (comme la boîte des horaires du hero) posé sur la photo du hero, qui bouge lentement. */
body.nsp-v2 .nsp-vitrine li.product:first-child::before{content:"";position:absolute;inset:-8%;z-index:0;background:url(/wp-content/uploads/nsp-hero/fond-vitrine-v2a.webp) center/cover no-repeat;animation:nspKb 18s ease-in-out infinite alternate}
body.nsp-v2 .nsp-vitrine li.product:first-child .product-loop-wrapper{position:relative!important;z-index:1;background:rgba(5,65,42,.45);-webkit-backdrop-filter:blur(16px) brightness(90%);backdrop-filter:blur(16px) brightness(90%);border:1px solid rgba(255,255,255,.28);border-radius:8px;padding:20px;box-shadow:0 24px 48px -24px rgba(0,0,0,.3)}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){body.nsp-v2 .nsp-vitrine li.product:first-child .product-loop-wrapper{background:rgba(5,65,42,.85)}}
@keyframes nspKb{from{transform:scale(1)}to{transform:scale(1.12) translateX(-2%)}}
body.nsp-v2 .nsp-vitrine li.product:first-child .product-loop-wrapper{display:grid;grid-template-columns:1fr 1fr;gap:22px;align-items:center;height:100%}
body.nsp-v2 .nsp-vitrine li.product:first-child .product-loop-image-wrapper{aspect-ratio:3/4;background:#fff;border-radius:6px;display:flex!important;align-items:center;justify-content:center;padding:14px!important;margin:0!important;overflow:hidden;position:relative}
body.nsp-v2 .nsp-vitrine .product-loop-image-wrapper > a{display:flex!important;align-items:center;justify-content:center;width:100%;height:100%}
body.nsp-v2 .nsp-vitrine li.product:first-child img.product-loop-image{width:100%!important;height:100%!important;object-fit:contain;margin:0!important;transition:transform .6s var(--nsp-ease)}
body.nsp-v2 .nsp-vitrine li.product:first-child:hover img.product-loop-image{transform:scale(1.05)}
body.nsp-v2 .nsp-vitrine li.product:first-child .onsale{top:12px!important;left:12px!important}
body.nsp-v2 .nsp-vitrine .nsp-tag{display:inline-block;background:#fff;color:#085838;font:700 11px/1 "Archivo NSP",Arial,sans-serif;letter-spacing:.08em;text-transform:uppercase;padding:7px 10px;border-radius:3px;margin-bottom:12px}
body.nsp-v2 .nsp-vitrine li.product:first-child .woocommerce-loop-product__title{font-size:24px!important;line-height:1.15!important;font-weight:700!important;font-stretch:112%;-webkit-line-clamp:3;margin:0 0 14px!important}
body.nsp-v2 .nsp-vitrine li.product:first-child .woocommerce-loop-product__title a{color:#fff!important}
body.nsp-v2 .nsp-vitrine li.product:first-child :is(.price,.price ins,.price ins .amount,.price > .amount,.price ins .woocommerce-Price-currencySymbol){font-size:30px!important;color:#fff!important}
body.nsp-v2 .nsp-vitrine li.product:first-child :is(.price del,.price del .amount,.price del .woocommerce-Price-currencySymbol){color:rgba(255,255,255,.7)!important;font-size:18px!important}
body.nsp-v2 .nsp-vitrine li.product:first-child .price .nsp-eco{color:#FFD7C2!important;font-size:14px!important;margin-top:6px}
body.nsp-v2 .nsp-vitrine li.product:first-child .loop-add-to-cart-btn{display:flex!important;align-items:center;justify-content:center;gap:8px;width:100%!important;height:44px!important;margin:18px 0 0!important;padding:0 14px!important;border:0!important;border-radius:4px!important;background:#fff!important;color:#085838!important;font:600 12px/1 "Archivo NSP",Arial,sans-serif!important;letter-spacing:.06em!important;text-transform:uppercase!important;position:static!important;box-shadow:none!important;opacity:1!important;visibility:visible!important}
body.nsp-v2 .nsp-vitrine li.product:first-child .loop-add-to-cart-btn:hover{background:#F4F7F6!important}
body.nsp-v2 .nsp-vitrine li.product:first-child .loop-add-to-cart-btn svg path{fill:currentColor!important}
body.nsp-v2 .nsp-vitrine li.product:not(:first-child){background:#F4F7F6;border-radius:8px;padding:12px 68px 12px 12px!important;transition:transform .35s var(--nsp-ease)}
body.nsp-v2 .nsp-vitrine li.product:not(:first-child):hover{transform:translateX(-4px)}
body.nsp-v2 .nsp-vitrine li.product:not(:first-child) .product-loop-wrapper{display:grid;grid-template-columns:104px 1fr;gap:16px;align-items:center}
body.nsp-v2 .nsp-vitrine li.product:not(:first-child) .product-loop-image-wrapper{aspect-ratio:1;background:#fff;border-radius:6px;display:flex!important;align-items:center;justify-content:center;padding:8px!important;margin:0!important;overflow:hidden;position:relative}
body.nsp-v2 .nsp-vitrine li.product:not(:first-child) img.product-loop-image{width:100%!important;height:100%!important;object-fit:contain;margin:0!important}
body.nsp-v2 .nsp-vitrine li.product:not(:first-child) .onsale{font-size:11px!important;padding:5px 6px!important}
body.nsp-v2 .nsp-vitrine li.product:not(:first-child) :is(.price,.price ins .amount,.price > .amount){font-size:16px!important}
body.nsp-v2 .nsp-vitrine li.product:not(:first-child) .loop-add-to-cart-btn{right:12px;top:50%;margin-top:-22px!important}
body.nsp-v2 .nsp-vitrine ul.products.nsp-anime li.product{opacity:0}
body.nsp-v2 .nsp-vitrine ul.products.nsp-vu li.product:first-child{animation:nspZoom .9s var(--nsp-ease) both}
body.nsp-v2 .nsp-vitrine ul.products.nsp-vu li.product:not(:first-child){animation:nspGlisse .7s var(--nsp-ease) both}
@media (max-width:767px){
	body.nsp-v2 .nsp-vitrine ul.products{grid-template-columns:1fr!important}
	body.nsp-v2 .nsp-vitrine li.product:first-child{grid-row:auto;padding:12px!important}
	body.nsp-v2 .nsp-vitrine li.product:first-child .product-loop-wrapper{padding:14px}
	body.nsp-v2 .nsp-vitrine li.product:first-child .product-loop-wrapper{grid-template-columns:42% 1fr;gap:14px}
	body.nsp-v2 .nsp-vitrine li.product:first-child .woocommerce-loop-product__title{font-size:18px!important;margin:0 0 8px!important}
	body.nsp-v2 .nsp-vitrine li.product:first-child :is(.price,.price ins .amount,.price > .amount){font-size:22px!important}
	body.nsp-v2 .nsp-vitrine .nsp-tag{margin-bottom:6px}
	body.nsp-v2 .nsp-vitrine li.product:first-child .loop-add-to-cart-btn{margin-top:10px!important;height:40px!important}
	body.nsp-v2 .nsp-vitrine li.product:not(:first-child){padding:10px 62px 10px 10px!important}
	body.nsp-v2 .nsp-vitrine li.product:not(:first-child) .product-loop-wrapper{grid-template-columns:84px 1fr;gap:12px}
	body.nsp-v2 .nsp-vitrine li.product:not(:first-child) .woocommerce-loop-product__title{font-size:14px!important}
}

/* ---------- Grilles des rayons et de la boutique : entrée en douceur, image animée au survol ---------- */
body.nsp-v2.woocommerce.archive li.product img.product-loop-image{transition:transform .5s var(--nsp-ease)}
body.nsp-v2.woocommerce.archive li.product:hover img.product-loop-image{transform:scale(1.06)}
body.nsp-v2.woocommerce.archive li.product.nsp-anime{opacity:0}
body.nsp-v2.woocommerce.archive li.product.nsp-vu{animation:nspMonte .7s var(--nsp-ease) both}
body.nsp-v2.woocommerce.archive li.product .onsale{background:#C2410C!important}

@media (prefers-reduced-motion:reduce){
	body.nsp-v2 .nsp-vitrine li.product:first-child::before{animation:none}
	body.nsp-v2 .nsp-anime,body.nsp-v2 .nsp-anime li.product,body.nsp-v2 .nsp-titre-bande.nsp-anime .elementor-widget{opacity:1!important;animation:none!important;transform:none!important}
}

/* Police du site sur les noms et prix des grilles, et titre « Produits similaires » */
body.nsp-v2.woocommerce.archive li.product .woocommerce-loop-product__title,body.nsp-v2.woocommerce.archive li.product .woocommerce-loop-product__title a{font-family:"Archivo NSP","Helvetica Neue",Arial,sans-serif!important;letter-spacing:0!important}
body.nsp-v2 :is(.related,.upsells).products > h2{font-family:"Archivo NSP","Helvetica Neue",Arial,sans-serif!important;font-size:30px!important;font-weight:700!important;font-stretch:120%;letter-spacing:-.02em!important;line-height:1.1!important;text-align:left!important;color:#0E1E1F!important;margin:0 0 20px!important;text-transform:none!important}
@media (max-width:767px){body.nsp-v2 :is(.related,.upsells).products > h2{font-size:22px!important}}
