/* Product-specific styles extracted from panstellar.css to reduce the global payload.
   SINGLE PRODUCT — template Elementor (ps-sp-*)
   (scope sous .elementor-location-single pour battre les defauts Woo/Elementor)
   ========================================================= */
/* Layout 2 colonnes : galerie | résumé */
.elementor-location-single .ps-sp-hero {
  max-width: 1400px;
  margin: 0 auto;
  padding: 48px 32px 56px;
  gap: 56px;
  align-items: flex-start;
}

/* ===== PALETTE CONVERSION PRODUIT (staging, 2026-07-29) =====
   Noir = action, bleu nuit = choix/confiance, bronze = economie,
   rouille = urgence reelle, vert foret = etat fonctionnel uniquement. */
body.single-product{
  --ps-choice:#223A5E;
  --ps-choice-soft:#E8EEF5;
  --ps-value:#6B5320;
  --ps-value-soft:#F3E7C3;
  --ps-urgency:#8A3B2C;
  --ps-urgency-soft:#F6E5DC;
  --ps-success:#2F5D50;
}
body.single-product :is(#pdpx-hero-sec, .ps-sp-hero, .ps-pdpx){
  --teal:var(--ps-choice) !important;
}

/* Avis et preuves : l'or reste reserve aux etoiles. */
body.single-product :is(#pdpx-hero-sec, .ps-sp-hero, .ps-pdpx) .ps-tr-star.is-on svg,
body.single-product :is(#pdpx-hero-sec, .ps-sp-hero, .ps-pdpx) .pdpx-testi-stars{
  color:#C9A84C !important;
  fill:#C9A84C !important;
}

/* Information, benefices et reassurance : bleu nuit. */
body.single-product :is(#pdpx-hero-sec, .ps-sp-hero, .ps-pdpx) .pdpx-specs svg,
body.single-product :is(#pdpx-hero-sec, .ps-sp-hero, .ps-pdpx) .pdpx-bullets .elementor-icon-list-icon svg,
body.single-product :is(#pdpx-hero-sec, .ps-sp-hero, .ps-pdpx) .pdpx-benefits svg,
body.single-product :is(#pdpx-hero-sec, .ps-sp-hero, .ps-pdpx) .pdpx-reassure svg,
body.single-product :is(#pdpx-hero-sec, .ps-sp-hero, .ps-pdpx) .pdpx-guarantee svg,
body.single-product :is(#pdpx-hero-sec, .ps-sp-hero, .ps-pdpx) .pdpx-testi-ok,
body.single-product :is(.elementor-8676, .elementor-106, .elementor-772, .elementor-773) .pp-bf-ico,
body.single-product :is(.elementor-8676, .elementor-106, .elementor-772, .elementor-773) .ps-ed-bullets .elementor-icon-list-icon,
body.single-product :is(.elementor-8676, .elementor-106, .elementor-772, .elementor-773) .ps-ed-bullets .elementor-icon-list-icon svg,
body.single-product :is(.elementor-8676, .elementor-106, .elementor-772, .elementor-773) .ps-ed-bullets .elementor-icon-list-icon i,
body.single-product .ps-est-delivery svg{
  color:var(--ps-choice) !important;
  fill:var(--ps-choice) !important;
  stroke:var(--ps-choice) !important;
}
body.single-product .ps-est-delivery strong{
  color:var(--ps-choice) !important;
}

/* Choix de variante et recommandation editoriale. */
body.single-product :is(#pdpx-hero-sec, .ps-sp-hero, .ps-pdpx) li.variable-item:hover{
  border-color:rgba(34,58,94,.52) !important;
}
body.single-product :is(#pdpx-hero-sec, .ps-sp-hero, .ps-pdpx) li.variable-item.selected,
body.single-product :is(#pdpx-hero-sec, .ps-sp-hero, .ps-pdpx) li.variable-item[aria-checked="true"]{
  border-color:var(--ps-choice) !important;
  background:#F4F7FA !important;
  box-shadow:0 0 0 3px rgba(34,58,94,.13) !important;
}
body.single-product :is(#pdpx-hero-sec, .ps-sp-hero, .ps-pdpx) li.variable-item.selected::after,
body.single-product :is(#pdpx-hero-sec, .ps-sp-hero, .ps-pdpx) li.variable-item[aria-checked="true"]::after{
  border-color:var(--ps-choice) !important;
  background:var(--ps-choice) !important;
}
body.single-product :is(#pdpx-hero-sec, .ps-sp-hero, .ps-pdpx) .ps-variant-card__ribbon,
body.single-product :is(#pdpx-hero-sec, .ps-sp-hero, .ps-pdpx) li.variable-item:last-child .ps-variant-card__ribbon{
  color:#fff !important;
  background:var(--ps-choice) !important;
  border-color:var(--ps-choice) !important;
  box-shadow:0 2px 8px rgba(34,58,94,.28) !important;
}

/* Economies : bronze sur or pale, sans rose ni vert. */
body.single-product :is(#pdpx-hero-sec, .ps-sp-hero, .ps-pdpx) .ps-variant-card__badge--save,
body.single-product .ps-sp-buycard .ps-variant-card__badge--save{
  color:var(--ps-value) !important;
  background:var(--ps-value-soft) !important;
  border:1px solid #D8C58B !important;
  box-shadow:none !important;
}

/* Blocs de confiance et d'objection. */
body.single-product :is(#pdpx-hero-sec, .ps-sp-hero, .ps-pdpx) .pdpx-guarantee,
body.single-product :is(#pdpx-hero-sec, .ps-sp-hero, .ps-pdpx) .pdpx-mbg{
  background:var(--ps-choice-soft) !important;
  border-color:#C3D0DF !important;
}
body.single-product :is(#pdpx-hero-sec, .ps-sp-hero, .ps-pdpx) .pdpx-warn{
  background:var(--ps-urgency-soft) !important;
  border-color:#D9A596 !important;
}
/* Le bloc "Beware of unverified copies" est conserve dans le modele pour
   rollback, mais doit rester totalement masque dans la buy box. */
body.single-product :is(#pdpx-hero-sec, .ps-sp-hero, .ps-pdpx) .pdpx-warn[hidden]{
  display:none !important;
}
body.single-product :is(#pdpx-hero-sec, .ps-sp-hero, .ps-pdpx) .pdpx-warn svg{
  fill:var(--ps-urgency) !important;
}
body.single-product :is(#pdpx-hero-sec, .ps-sp-hero, .ps-pdpx) .pdpx-warn b{
  color:var(--ps-urgency) !important;
}

/* Etat de stock : vert foret discret, uniquement fonctionnel. */
body.single-product :is(#pdpx-hero-sec, .ps-sp-hero, .ps-pdpx) p.stock.in-stock,
body.single-product :is(#pdpx-hero-sec, .ps-sp-hero, .ps-pdpx) .stock.in-stock{
  color:var(--ps-success) !important;
}

/* Le bouton d'achat reste l'unique action dominante. */
body.single-product :is(#pdpx-hero-sec, .ps-sp-hero, .ps-pdpx) .single_add_to_cart_button,
body.single-product .ps-sticky-atc__btn{
  background:#1A1816 !important;
  color:#F5F1E8 !important;
}
body.single-product :is(#pdpx-hero-sec, .ps-sp-hero, .ps-pdpx) .single_add_to_cart_button:hover,
body.single-product .ps-sticky-atc__btn:hover{
  background:#2B2926 !important;
  color:#F5F1E8 !important;
}
body.single-product .ps-sticky-atc .ps-variant-pill.is-active{
  background:var(--ps-choice) !important;
  border-color:var(--ps-choice) !important;
  color:#fff !important;
}

.elementor-location-single .ps-sp-gallery,
.elementor-location-single .ps-sp-summary {
  padding: 0;
  flex: 1 1 50%;
  max-width: 50%;
}
.elementor-location-single .ps-sp-gallery { position: sticky; top: 96px; }
.elementor-location-single .ps-sp-summary { gap: 0; }

/* Galerie */
.elementor-location-single .ps-sp-gallery .woocommerce-product-gallery { width: 100% !important; margin: 0; float: none; position: relative; }
.elementor-location-single .ps-sp-gallery .woocommerce-product-gallery__image img { border-radius: 18px; }
/* Anti-overflow galerie : le flexslider WooCommerce étale toutes les slides en ligne
   dans .__wrapper (largeur = N×slide) puis les translate dans la fenêtre .flex-viewport.
   On confine UNIQUEMENT la galerie racine + la flex-viewport (qui clippe le défilement) ;
   on NE touche PAS au .__wrapper ni aux .__image (largeurs gérées par flexslider, sinon
   les images secondaires disparaissent). overflow:clip sur la galerie empêche le débordement
   AVANT l'init JS (slides côte à côte ~9000px) sans casser le slider une fois initialisé. */
.elementor-location-single .ps-sp-gallery .woocommerce-product-gallery {
  overflow: clip;
  max-width: 100%;
  opacity: 1 !important;
}
.elementor-location-single .ps-sp-gallery .woocommerce-product-gallery .flex-viewport {
  overflow: hidden;
  max-width: 100%;
}
.elementor-location-single .ps-sp-gallery .woocommerce-product-gallery .ps-gallery-fallback-hidden {
  display: none !important;
}
/* Miniatures masquées a la demande : la nav generee par flexslider
   (.flex-control-nav / .flex-control-thumbs) n'a jamais eu de style dedie
   dans cette feuille, d'ou des tailles incoherentes (chaque image a sa
   taille naturelle). Masquage plutot que restylage. */
.woocommerce-product-gallery .flex-control-nav,
.woocommerce-product-gallery .flex-control-thumbs {
  display: none !important;
}

/* Fil d'ariane + titre + chapo */
.elementor-location-single .ps-sp-summary .woocommerce-breadcrumb {
  font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase;
  color: var(--ink-soft); margin-bottom: 10px;
}
.elementor-location-single .ps-sp-summary .woocommerce-breadcrumb a { color: var(--ink-soft); text-decoration: none; }
.elementor-location-single .ps-sp-summary .product_title {
  font-size: clamp(28px, 3.4vw, 44px); font-weight: 600; letter-spacing: -0.02em;
  color: var(--ink); line-height: 1.05; margin: 4px 0 12px;
}
.elementor-location-single .ps-sp-summary .woocommerce-product-details__short-description {
  color: var(--ink-soft); font-size: 16px; line-height: 1.6; margin-bottom: 22px;
}

/* Prix */
.elementor-location-single .ps-sp-summary p.price,
.elementor-location-single .ps-sp-summary .price {
  font-size: 26px; font-weight: 600; color: var(--ink); margin: 0 0 20px;
}
.elementor-location-single .ps-sp-summary .price del { color: var(--ink-soft); font-weight: 400; opacity: 0.7; }
.elementor-location-single .ps-sp-summary .price ins { text-decoration: none; }

/* Sélecteur de variations (dropdowns, en attendant les swatches) */
.elementor-location-single .ps-sp-summary table.variations { width: 100%; margin: 0 0 16px; border: 0; }
.elementor-location-single .ps-sp-summary table.variations tbody,
.elementor-location-single .ps-sp-summary table.variations tr { display: block; }
.elementor-location-single .ps-sp-summary table.variations td,
.elementor-location-single .ps-sp-summary table.variations th {
  display: block; width: 100%; padding: 0 0 6px; border: 0; text-align: left;
}
.elementor-location-single .ps-sp-summary table.variations .label label {
  font-size: 11px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--ink-soft); font-weight: 600;
}
.elementor-location-single .ps-sp-summary table.variations select {
  width: 100%; padding: 13px 16px; border: 1.5px solid rgba(26,24,22,0.15);
  border-radius: 12px; background: #fff; font-size: 14px; color: var(--ink); margin-bottom: 12px;
}
.elementor-location-single .ps-sp-summary .reset_variations { font-size: 12px; color: var(--ink-soft); }

/* Add to cart + quantité */
.elementor-location-single .ps-sp-summary .woocommerce-variation-add-to-cart,
.elementor-location-single .ps-sp-summary form.cart:not(.variations_form) {
  display: flex; gap: 12px; align-items: stretch; margin-top: 6px; flex-wrap: wrap;
}
.elementor-location-single .ps-sp-summary .quantity { flex: 0 0 auto; }
.elementor-location-single .ps-sp-summary .quantity input.qty {
  width: 76px; height: 100%; min-height: 52px; padding: 0 8px; text-align: center;
  border: 1.5px solid rgba(26,24,22,0.15); border-radius: 999px; font-size: 15px; background: #fff;
}
.elementor-location-single .ps-sp-summary .single_add_to_cart_button { flex: 1 1 200px; width: auto; }
.elementor-location-single .ps-sp-summary .single_add_to_cart_button.disabled,
.elementor-location-single .ps-sp-summary .single_add_to_cart_button[disabled] {
  opacity: .46;
  cursor: not-allowed;
  pointer-events: none;
}
.elementor-location-single .ps-sp-summary .single_variation .price { font-size: 24px; margin-bottom: 12px; }
.elementor-location-single .ps-sp-summary .woocommerce-variation-availability { font-size: 13px; color: var(--ink-soft); }

/* Badges de confiance (widget HTML) */
.ps-sp-trust {
  display: flex; gap: 18px 22px; flex-wrap: wrap;
  margin: 20px 0 4px; padding-top: 18px; border-top: 1px solid rgba(26,24,22,0.08);
}
.ps-sp-trust span {
  display: inline-flex; align-items: center; gap: 7px;
  font-size: 11px; letter-spacing: 0.06em; text-transform: uppercase; color: var(--ink-soft); font-weight: 500;
}
.ps-sp-trust svg { width: 18px !important; height: 18px !important; fill: var(--gold) !important; color:var(--gold) !important; }

/* Méta produit */
.elementor-location-single .ps-sp-summary .product_meta { font-size: 13px; color: var(--ink-soft); margin-top: 14px; }
.elementor-location-single .ps-sp-summary .product_meta > span { display: block; margin-bottom: 4px; }
.elementor-location-single .ps-sp-summary .product_meta a { color: var(--ink); text-decoration: none; }

/* Onglets (description / infos / avis) */
.elementor-location-single .ps-sp-tabs { max-width: 1100px; margin: 0 auto; padding: 12px 32px 56px; }
.elementor-location-single .ps-sp-tabs .woocommerce-tabs ul.tabs {
  display: flex; flex-wrap: wrap; gap: 8px; border: 0; padding: 0; margin: 0 0 26px; list-style: none;
}
.elementor-location-single .ps-sp-tabs .woocommerce-tabs ul.tabs::before { display: none; }
.elementor-location-single .ps-sp-tabs .woocommerce-tabs ul.tabs li {
  background: none; border: 0; border-radius: 999px; padding: 0; margin: 0;
}
.elementor-location-single .ps-sp-tabs .woocommerce-tabs ul.tabs li::before,
.elementor-location-single .ps-sp-tabs .woocommerce-tabs ul.tabs li::after { display: none; }
.elementor-location-single .ps-sp-tabs .woocommerce-tabs ul.tabs li a {
  padding: 10px 20px; border: 1.5px solid rgba(26,24,22,0.15); border-radius: 999px;
  font-size: 12px; letter-spacing: 0.1em; text-transform: uppercase; font-weight: 600; color: var(--ink-soft); text-decoration: none;
}
.elementor-location-single .ps-sp-tabs .woocommerce-tabs ul.tabs li.active a { background: var(--ink); color: var(--bone); border-color: var(--ink); }
.elementor-location-single .ps-sp-tabs .woocommerce-Tabs-panel { font-size: 16px; line-height: 1.7; color: var(--ink); }
.elementor-location-single .ps-sp-tabs .woocommerce-Tabs-panel h2 { font-size: 22px; font-weight: 600; margin-bottom: 12px; color: var(--ink); }
.elementor-location-single .ps-sp-tabs .shop_attributes th { color: var(--ink); }

/* Produits liés */
.elementor-location-single .ps-sp-related { max-width: 1400px; margin: 0 auto; padding: 12px 32px 80px; }
.elementor-location-single .ps-sp-related > .related > h2,
.elementor-location-single .ps-sp-related .elementor-widget-container > h2 {
  font-family: var(--e-global-typography-primary-font-family, 'Newsreader'), Georgia, serif;
  font-size: 28px; font-weight: 500; color: var(--ink); margin-bottom: 24px; text-align: center;
}
.elementor-location-single .ps-sp-related ul.products {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; margin: 0; padding: 0; list-style: none;
}
.elementor-location-single .ps-sp-related ul.products li.product { width: auto; margin: 0; float: none; text-align: center; }
.elementor-location-single .ps-sp-related .woocommerce-loop-product__title { font-size: 15px; font-weight: 500; color: var(--ink); }

/* Responsive : tout empile */
@media (max-width: 1023px) {
  .elementor-location-single .ps-sp-hero { flex-direction: column; gap: 32px; padding: 28px 16px 40px; }
  .elementor-location-single .ps-sp-gallery,
  .elementor-location-single .ps-sp-summary { max-width: 100%; flex-basis: 100%; }
  .elementor-location-single .ps-sp-gallery { position: static; }
  .elementor-location-single .ps-sp-tabs,
  .elementor-location-single .ps-sp-related { padding-left: 16px; padding-right: 16px; }
  .elementor-location-single .ps-sp-related ul.products { grid-template-columns: repeat(2, 1fr); }
}

/* Garde-fou anti-overflow horizontal MOBILE sur les fiches produit (Core/Gut débordaient
   à droite ~531px à 390px de viewport : un texte d'accordéon pp-acc / une carte review
   pp-rv qui ne rétrécit pas sous la largeur du viewport). Stack n'en a pas besoin mais la
   règle est inoffensive pour lui. overflow-x:clip confine sans casser le sticky desktop. */
@media (max-width: 767px) {
  .elementor-location-single .e-con.e-parent,
  .elementor-location-single [class*="ps-sec-"],
  .elementor-location-single .ps-sp-hero {
    overflow-x: clip;
    max-width: 100%;
  }
  .elementor-location-single .pp-acc-row { flex-wrap: wrap; }
  .elementor-location-single .pp-rv-scroll { max-width: 100%; }
}

/* Sections ajoutées au template : vérification (pp-tg), contenu produit, FAQ (pp-qa).
   pp-tg / pp-qa se contraignent eux-mêmes (max-width + margin auto) → wrappers à 0. */
.elementor-location-single .ps-sp-verify,
.elementor-location-single .ps-sp-faq,
.elementor-location-single .ps-sp-content { padding: 0; }
.elementor-location-single .ps-sp-content .elementor-widget-container { padding: 0; }
/* Description "plate" (avant contenu riche) : texte lisible centré ;
   les <section> pp-* gardent leur pleine largeur / styles propres. */
.elementor-location-single .ps-sp-content p:not([class]),
.elementor-location-single .ps-sp-content ul:not([class]),
.elementor-location-single .ps-sp-content ol:not([class]),
.elementor-location-single .ps-sp-content h2:not([class]),
.elementor-location-single .ps-sp-content h3:not([class]) {
  max-width: 920px; margin-left: auto; margin-right: auto; padding-left: 32px; padding-right: 32px;
  font-size: 16px; line-height: 1.7; color: var(--ink);
}
.elementor-location-single .ps-sp-content { padding-top: 8px; padding-bottom: 8px; }

/* Buy box : carte blanche arrondie (reprend le style source .pp-buy) + pills/stats + Klarna/FDA */
.elementor-location-single .ps-sp-buycard {
  background: #fff;
  border: 1px solid rgba(26, 24, 22, 0.08);
  border-radius: 18px;
  padding: 22px;
  box-shadow: 0 10px 30px rgba(26, 24, 22, 0.06);
  margin-top: 10px;
  gap: 0;
}
.elementor-location-single .ps-sp-buycard .pp-klarna {
  font-size: 11px; color: var(--ink-soft); text-align: center; margin: 12px 0 0; line-height: 1.4;
}
.elementor-location-single .ps-sp-buycard .pp-fda-micro {
  font-size: 10px; color: var(--ink-soft); font-style: italic; text-align: center; margin: 8px 0 0; line-height: 1.4;
}
/* pills + bandeau chiffré sous le titre (utilise .pp-pill-row / .pp-sci-strip du CSS source) */
.elementor-location-single .ps-sp-summary .pp-pill-row { margin: 6px 0 14px; }
.elementor-location-single .ps-sp-summary .pp-sci-strip { margin: 0 0 16px; }

/* =========================================================
   PRODUCT PAGE (pp-*) — extrait de la source product page.
   Sert au contenu riche PAR PRODUIT (Description) + sections generiques du template.
   ========================================================= */
.pp-dev-note, .pp-dev-tag { display: none !important; }
/* =================================================================
   PRODUCT PAGE — Stack 157™ additional styles
   ================================================================= */

/* DEV annotations (toggle off via <body class="dev-off">) */
.pp-dev-banner {background:#000; color:#fff; font-family:'JetBrains Mono',monospace; font-size:11px; text-align:center; padding:7px; letter-spacing:0.05em;}
.pp-dev-banner b {color:#00FF94;}
.pp-dev-note {background:#000; color:#FFD93D; font-family:'JetBrains Mono',monospace; font-size:11px; padding:9px 13px; border-radius:6px; margin:14px auto 0; max-width:1100px; line-height:1.55;}
.pp-dev-tag {position:absolute; top:14px; left:14px; background:#000; color:#00FF94; font-family:'JetBrains Mono',monospace; font-size:10px; padding:4px 8px; border-radius:4px; z-index:5;}
body.dev-off .pp-dev-banner, body.dev-off .pp-dev-note, body.dev-off .pp-dev-tag {display:none !important;}
.pp-divider {height:1px; background:rgba(26,24,22,0.08); max-width:1200px; margin:0 auto;}
.pp-eyebrow {font-size:11px; letter-spacing:0.3em; text-transform:uppercase; color:var(--gold); font-weight:600; margin-bottom:14px;}
.pp-tm {font-size:0.5em; vertical-align:super;}
/* === HERO + BUYBOX === */
.pp-hero {padding:90px 32px 60px; max-width:1280px; margin:0 auto; display:grid; grid-template-columns:1.05fr 1fr; gap:64px; align-items:center;}
.pp-hero-visual {position:relative; aspect-ratio:1/1.05; border-radius:22px; overflow:hidden;
  background:radial-gradient(ellipse at 50% 50%, #f4ecd3 0%, #ECE6D7 80%);
  display:flex; align-items:center; justify-content:center;}
.pp-hero-bottle {width:38%; height:78%;
  background:linear-gradient(180deg, #2a241d 0%, #0a0a0a 100%);
  border-radius:14px 14px 8px 8px;
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  padding:18px 14px; position:relative;
  box-shadow:0 22px 60px rgba(26,24,22,0.18);}
.pp-hero-bottle::before {content:''; position:absolute; top:8px; left:8px; right:8px; height:18px; background:linear-gradient(90deg, transparent, var(--gold-bright), transparent); border-radius:6px; opacity:0.45;}
.pp-bot-brand {font-family:'Söhne','Newsreader',Georgia,serif; font-style:italic; font-size:14px; color:var(--gold-bright); letter-spacing:0.04em; margin-bottom:8px;}
.pp-bot-name {font-size:22px; font-weight:600; color:var(--bone); letter-spacing:-0.01em; line-height:1.05; text-align:center;}
.pp-bot-tm {font-size:9px; vertical-align:super;}
.pp-bot-formula {font-size:9.5px; letter-spacing:0.18em; color:rgba(245,241,232,0.55); text-transform:uppercase; margin-top:10px; text-align:center;}
.pp-bot-caps {position:absolute; bottom:14px; font-size:8px; color:var(--gold); letter-spacing:0.16em;}
.pp-hero-info h1 {font-family:'Söhne','Newsreader',Georgia,serif; font-style:italic; font-size:clamp(34px,4.4vw,56px); font-weight:500; letter-spacing:-0.025em; line-height:1; margin-bottom:14px;}
.pp-hero-tag {font-size:14.5px; color:var(--ink-soft); line-height:1.55; max-width:480px; margin-bottom:22px;}
.pp-pill-row {display:flex; gap:8px; flex-wrap:wrap; margin-bottom:24px;}
.pp-pill {display:inline-flex; align-items:center; gap:7px; padding:7px 13px; border-radius:999px; border:1px solid rgba(26,24,22,0.16); font-size:11.5px; font-weight:600;}
.pp-pill svg {width:13px !important; height:13px !important; fill:var(--gold-deep) !important; color:var(--gold-deep) !important;}
.pp-pill.usp {background:var(--ink); color:var(--gold); border-color:var(--ink);}
.pp-pill.usp svg {stroke:var(--gold);}
.pp-sci-strip {display:grid; grid-template-columns:repeat(4,1fr); gap:12px; padding:16px 0; border-top:1px solid rgba(26,24,22,0.1); border-bottom:1px solid rgba(26,24,22,0.1); margin-bottom:26px;}
.pp-sci-cell {text-align:center;}
.pp-sci-n {font-family:'Söhne','Newsreader',Georgia,serif; font-style:italic; font-size:22px; font-weight:600; color:var(--gold-deep); line-height:1;}
.pp-sci-l {font-size:9.5px; letter-spacing:0.08em; text-transform:uppercase; color:var(--ink-soft); margin-top:5px;}
.pp-buy {background:#fff; border:1px solid rgba(26,24,22,0.08); border-radius:18px; padding:22px; box-shadow:0 10px 30px rgba(26,24,22,0.06);}
.pp-buy-toggle {display:grid; grid-template-columns:1fr 1fr; gap:6px; background:rgba(26,24,22,0.05); padding:4px; border-radius:999px; margin-bottom:18px;}
.pp-buy-toggle button {padding:9px 12px; border-radius:999px; font-size:12px; font-weight:600; transition:all 0.2s ease;}
.pp-buy-toggle button.active {background:var(--ink); color:var(--bone);}
.pp-format-row {display:grid; grid-template-columns:1fr 1fr; gap:8px; margin-bottom:18px;}
.pp-format {border:1.5px solid rgba(26,24,22,0.15); border-radius:14px; padding:14px; cursor:pointer; position:relative; transition:all 0.2s ease;}
.pp-format.selected {border-color:var(--gold); background:rgba(201,168,76,0.05);}
.pp-format-badge {position:absolute; top:-9px; right:14px; background:var(--gold); color:var(--ink); padding:2px 9px; border-radius:999px; font-size:9px; letter-spacing:0.14em; font-weight:700; text-transform:uppercase;}
.pp-format-size {font-size:14px; font-weight:700;}
.pp-format-month {font-size:11px; color:var(--ink-soft); margin-bottom:8px;}
.pp-format-price {font-size:18px; font-weight:700;}
.pp-format-once {font-size:11px; color:var(--ink-soft);}
.pp-buy-cta {display:block; width:100%; padding:15px 18px; background:var(--ink); color:var(--bone); border-radius:999px; font-size:13px; font-weight:700; letter-spacing:0.15em; text-transform:uppercase; text-align:center; text-decoration:none; transition:background 0.2s ease;}
.pp-buy-cta:hover {background:var(--gold-deep); color:var(--gold-bright);}
.pp-buy-micro {display:flex; justify-content:space-around; gap:10px; margin-top:14px; font-size:9.5px; color:var(--ink-soft); letter-spacing:0.06em; text-transform:uppercase;}
.pp-buy-micro span {display:flex; align-items:center; gap:5px;}
.pp-buy-micro svg {width:12px !important; height:12px !important; fill:var(--gold-deep) !important; color:var(--gold-deep) !important;}
.pp-klarna {font-size:11px; color:var(--ink-soft); text-align:center; margin-top:10px;}
/* === BUILT FOR === */
.pp-bf {padding:48px 24px; text-align:center;}
.pp-bf-grid {display:grid; grid-template-columns:repeat(6,1fr); gap:16px; max-width:880px; margin:0 auto;}
.pp-bf-cell {display:flex; flex-direction:column; align-items:center; gap:10px; padding:8px 4px; transition:transform 0.25s var(--ease);}
.pp-bf-cell:hover {transform:translateY(-4px);}
.pp-bf-ico {width:52px; height:52px; border-radius:50%; background:radial-gradient(circle at 35% 30%, rgba(201,168,76,0.16), rgba(201,168,76,0.04)); display:flex; align-items:center; justify-content:center; position:relative;}
.pp-bf-ico::before {content:''; position:absolute; inset:0; border-radius:50%; padding:1.5px; background:linear-gradient(140deg, var(--gold-bright), rgba(201,168,76,0.12)); -webkit-mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite:xor; mask-composite:exclude;}
.pp-bf-ico svg {width:25px !important; height:25px !important; fill:var(--gold-deep) !important; color:var(--gold-deep) !important;}
.pp-bf-label {font-size:12.5px; font-weight:600;}
/* === ACCORDION (Ritual style) === */
.pp-acc {padding:60px 32px; max-width:900px; margin:0 auto;}
.pp-acc-head {text-align:center; margin-bottom:32px;}
.pp-acc-title {font-family:'Söhne','Newsreader',Georgia,serif; font-style:italic; font-size:clamp(26px,3.2vw,38px); font-weight:500; letter-spacing:-0.02em;}
.pp-acc-rows {border-top:1px solid rgba(26,24,22,0.12);}
.pp-acc-row {width:100%; display:flex; align-items:center; gap:18px; padding:22px 8px; border-bottom:1px solid rgba(26,24,22,0.12); text-align:left; transition:background 0.2s ease; cursor:pointer;}
.pp-acc-row:hover {background:rgba(26,24,22,0.02);}
.pp-acc-row-ico {width:22px; height:22px; flex-shrink:0; fill:var(--gold-deep);}
.pp-acc-row-txt {flex:1; min-width:0; overflow-wrap:anywhere;}
.pp-acc-row-t {font-size:16px; font-weight:600; letter-spacing:-0.01em; overflow-wrap:anywhere;}
.pp-acc-row-s {font-size:12px; color:var(--ink-soft); margin-top:2px; overflow-wrap:anywhere;}
.pp-acc-row-plus {width:20px; height:20px; flex-shrink:0; position:relative;}
.pp-acc-row-plus::before, .pp-acc-row-plus::after {content:''; position:absolute; background:var(--ink); transition:transform 0.3s ease;}
.pp-acc-row-plus::before {top:50%; left:0; width:100%; height:1.5px; transform:translateY(-50%);}
.pp-acc-row-plus::after {left:50%; top:0; height:100%; width:1.5px; transform:translateX(-50%);}
.pp-acc-row.usp {background:linear-gradient(135deg, rgba(201,168,76,0.08), transparent);}
.pp-acc-row.usp .pp-acc-row-t::after {content:'★ verify online'; font-size:9px; letter-spacing:0.12em; text-transform:uppercase; color:var(--gold-deep); background:rgba(201,168,76,0.15); border:1px solid rgba(201,168,76,0.4); padding:2px 8px; border-radius:999px; margin-left:10px; font-weight:600;}
/* MODAL */
.pp-modal-ov {position:fixed; inset:0; z-index:1000; background:rgba(26,24,22,0.55); backdrop-filter:blur(3px); opacity:0; pointer-events:none; transition:opacity 0.3s ease; display:flex; align-items:center; justify-content:center; padding:40px;}
.pp-modal-ov.open {opacity:1; pointer-events:auto;}
.pp-modal {background:var(--bone); width:100%; max-width:620px; max-height:88vh; border-radius:22px; overflow-y:auto; position:relative; transform:translateY(20px); transition:transform 0.35s var(--ease); box-shadow:0 22px 70px rgba(26,24,22,0.22);}
.pp-modal-ov.open .pp-modal {transform:translateY(0);}
.pp-modal-close {position:sticky; top:0; float:right; margin:16px 16px 0; width:36px; height:36px; border-radius:50%; background:var(--bone); border:1px solid rgba(26,24,22,0.15); display:flex; align-items:center; justify-content:center; z-index:5; cursor:pointer;}
.pp-modal-close svg {width:15px; height:15px; stroke:var(--ink); stroke-width:1.6; fill:none;}
.pp-modal-body {padding:8px 34px 36px;}
.pp-modal-eye {font-size:11px; letter-spacing:0.28em; text-transform:uppercase; color:var(--gold); font-weight:600; margin-bottom:10px;}
.pp-modal-title {font-family:'Söhne','Newsreader',Georgia,serif; font-style:italic; font-size:28px; font-weight:500; letter-spacing:-0.02em; margin-bottom:8px; line-height:1.05;}
.pp-modal-lead {font-size:14px; color:var(--ink-soft); margin-bottom:24px;}
.pp-icon-ring {width:50px; height:50px; border-radius:50%; display:flex; align-items:center; justify-content:center; position:relative; background:radial-gradient(circle at 35% 30%, rgba(201,168,76,0.16), rgba(201,168,76,0.04)); flex-shrink:0;}
.pp-icon-ring::before {content:''; position:absolute; inset:0; border-radius:50%; padding:1.5px; background:linear-gradient(140deg,var(--gold-bright),rgba(201,168,76,0.15)); -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0); -webkit-mask-composite:xor; mask-composite:exclude;}
.pp-icon-ring svg {width:24px !important; height:24px !important; fill:var(--gold-deep) !important; color:var(--gold-deep) !important;}
/* Ingredients modal */
.pp-ing-card {display:grid; grid-template-columns:auto 1fr auto; gap:16px; align-items:center; padding:18px 0; border-bottom:1px solid rgba(26,24,22,0.08);}
.pp-ing-card:last-of-type {border-bottom:none;}
.pp-ing-body h4 {font-size:15px; font-weight:700; margin-bottom:2px;}
.pp-ing-out {font-family:'Söhne','Newsreader',Georgia,serif; font-style:italic; font-size:12.5px; color:var(--gold-deep); margin-bottom:4px;}
.pp-ing-desc {font-size:12.5px; color:var(--ink-soft); line-height:1.5;}
.pp-ing-dose {font-size:12px; font-weight:700; color:var(--gold-deep); white-space:nowrap; padding:5px 10px; background:rgba(201,168,76,0.1); border:1px solid rgba(201,168,76,0.3); border-radius:999px;}
.pp-suppfacts {border:2px solid var(--ink); border-radius:10px; padding:16px 18px; margin-top:24px; background:#fff;}
.pp-sf-title {font-family:'Söhne','Newsreader',Georgia,serif; font-weight:600; font-size:18px; border-bottom:5px solid var(--ink); padding-bottom:5px; margin-bottom:8px;}
.pp-sf-meta {font-size:11.5px; padding:4px 0; border-bottom:1px solid var(--ink);}
.pp-sf-row {display:flex; justify-content:space-between; align-items:flex-start; font-size:13px; padding:8px 0; border-bottom:1px solid rgba(26,24,22,0.15); gap:12px;}
.pp-sf-row .sf-n {font-weight:600;}
.pp-sf-row .sf-note {font-size:10.5px; color:var(--ink-soft); font-style:italic;}
.pp-sf-row .sf-amt {font-weight:700; white-space:nowrap;}
.pp-sf-foot {font-size:10px; color:var(--ink-soft); margin-top:8px; line-height:1.5;}
/* Benefits modal */
.pp-ben-list {display:grid; grid-template-columns:1fr 1fr; gap:12px;}
.pp-ben-cell {display:flex; gap:12px; align-items:flex-start; padding:16px; background:#fff; border:1px solid rgba(26,24,22,0.06); border-radius:12px;}
.pp-ben-cell .pp-icon-ring {width:42px; height:42px;}
.pp-ben-cell .pp-icon-ring svg {width:20px !important; height:20px !important; fill:var(--gold-deep) !important; color:var(--gold-deep) !important;}
.pp-ben-cell h4 {font-size:13.5px; font-weight:700; margin-bottom:3px;}
.pp-ben-out {font-family:'Söhne','Newsreader',Georgia,serif; font-style:italic; font-size:11.5px; color:var(--gold-deep);}
/* COA modal */
.pp-coa-stats {display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:rgba(26,24,22,0.1); border:1px solid rgba(26,24,22,0.1); border-radius:12px; overflow:hidden; margin-bottom:22px;}
.pp-coa-stat {background:#fff; padding:16px 8px; text-align:center;}
.pp-coa-stat-n {font-family:'Söhne','Newsreader',Georgia,serif; font-style:italic; font-size:24px; font-weight:600; line-height:1;}
.pp-coa-stat-n .u {font-size:14px; color:var(--gold);}
.pp-coa-stat-l {font-size:9px; letter-spacing:0.08em; text-transform:uppercase; color:var(--ink-soft); margin-top:5px;}
.pp-verify-box {background:#0A0A0A; color:var(--bone); border-radius:16px; padding:24px; margin-bottom:22px; position:relative; overflow:hidden;}
.pp-verify-label {font-size:9.5px; letter-spacing:0.22em; text-transform:uppercase; color:var(--gold-bright); font-weight:600; margin-bottom:7px;}
.pp-verify-h {font-family:'Söhne','Newsreader',Georgia,serif; font-style:italic; font-size:18px; margin-bottom:6px;}
.pp-verify-p {font-size:12px; color:rgba(245,241,232,0.68); margin-bottom:14px;}
.pp-verify-row {display:flex; gap:7px;}
.pp-verify-input {flex:1; padding:11px 14px; border-radius:9px; border:1px solid rgba(245,241,232,0.2); background:rgba(245,241,232,0.06); color:var(--bone); font-size:12.5px; font-family:'JetBrains Mono',monospace;}
.pp-verify-input::placeholder {color:rgba(245,241,232,0.35);}
.pp-verify-btn {padding:11px 17px; background:var(--gold); color:var(--ink); border-radius:9px; font-size:11px; letter-spacing:0.1em; text-transform:uppercase; font-weight:700; white-space:nowrap; cursor:pointer;}
.pp-verify-btn:hover {background:var(--gold-bright);}
.pp-verify-qr {display:flex; align-items:center; gap:10px; margin-top:12px; font-size:10.5px; color:rgba(245,241,232,0.6);}
.pp-verify-qr svg {width:30px; height:30px;}
.pp-coa-sample {border:1px solid rgba(26,24,22,0.12); border-radius:14px; overflow:hidden; margin-bottom:22px; background:#fff;}
.pp-coa-sample-head {display:flex; justify-content:space-between; align-items:center; padding:12px 16px; border-bottom:1px solid rgba(26,24,22,0.1);}
.pp-coa-sample-head .l {font-size:11.5px; font-weight:700;}
.pp-coa-sample-head .r {font-size:9.5px; color:var(--ink-soft); font-family:'JetBrains Mono',monospace;}
.pp-coa-chart {padding:14px;}
.pp-coa-chart svg {width:100%; height:100px; display:block;}
.pp-coa-sample-foot {display:grid; grid-template-columns:1fr 1fr 1fr; border-top:1px solid rgba(26,24,22,0.1);}
.pp-coa-sample-foot > div {padding:11px; text-align:center; border-right:1px solid rgba(26,24,22,0.08);}
.pp-coa-sample-foot > div:last-child {border-right:none;}
.pp-csf-l {font-size:9px; letter-spacing:0.08em; text-transform:uppercase; color:var(--ink-soft); margin-bottom:3px;}
.pp-csf-v {font-size:12.5px; font-weight:700; color:var(--ink);}
.pp-csf-v.ok {color:#2d7a1f;}
.pp-subacc {border-top:1px solid rgba(26,24,22,0.1);}
.pp-subacc details {border-bottom:1px solid rgba(26,24,22,0.1);}
.pp-subacc summary {padding:14px 0; font-size:13.5px; font-weight:600; cursor:pointer; list-style:none; display:flex; justify-content:space-between; align-items:center;}
.pp-subacc summary::-webkit-details-marker {display:none;}
.pp-subacc summary::after {content:'+'; font-size:18px; font-weight:300; transition:transform 0.3s ease;}
.pp-subacc details[open] summary::after {transform:rotate(45deg);}
.pp-subacc-content {padding:0 0 16px; font-size:12.5px; color:var(--ink-soft); line-height:1.55;}
.pp-subacc-content strong {color:var(--ink);}
.pp-test-grid {display:grid; grid-template-columns:repeat(4,1fr); gap:12px 10px; margin:8px 0 4px;}
.pp-test-cell {display:flex; flex-direction:column; align-items:center; text-align:center; gap:6px;}
.pp-test-cell .t-ico {width:38px; height:38px; border-radius:50%; border:1px solid rgba(26,24,22,0.18); display:flex; align-items:center; justify-content:center;}
.pp-test-cell .t-ico svg {width:19px !important; height:19px !important; fill:var(--gold-deep) !important; color:var(--gold-deep) !important;}
.pp-test-cell span {font-size:9.5px; color:var(--ink); line-height:1.3; font-weight:500;}
.pp-deepdive {display:flex; align-items:center; gap:10px; margin-top:20px; padding:14px 16px; background:var(--stone); border-radius:14px; text-decoration:none; color:var(--ink);}
.pp-deepdive:hover {background:#e3dcc9;}
.pp-deepdive svg {width:30px; height:30px; flex-shrink:0;}
.pp-deepdive .dl-t {font-size:12.5px; font-weight:700;}
.pp-deepdive .dl-s {font-size:10.5px; color:var(--ink-soft);}
.pp-deepdive .dl-arrow {margin-left:auto; font-size:17px; color:var(--gold-deep);}
/* HowTo modal */
.pp-howto-step {display:flex; gap:14px; padding:14px 0; border-bottom:1px solid rgba(26,24,22,0.08);}
.pp-howto-step:last-child {border-bottom:none;}
.pp-howto-n {font-family:'Söhne','Newsreader',Georgia,serif; font-style:italic; font-size:26px; color:var(--gold); font-weight:600; line-height:1; flex-shrink:0; width:28px;}
.pp-howto-step h5 {font-size:13.5px; font-weight:700; margin-bottom:3px;}
.pp-howto-step p {font-size:12px; color:var(--ink-soft); line-height:1.5;}
/* === PROBLEM/SOLUTION === */
.pp-ps-head {text-align:center; max-width:780px; margin:0 auto; padding:48px 24px 24px;}
.pp-ps-title {font-family:'Söhne','Newsreader',Georgia,serif; font-style:italic; font-size:clamp(26px,3.4vw,40px); font-weight:500; letter-spacing:-0.02em; line-height:1.06;}
.pp-ps-split {display:grid; grid-template-columns:1fr 1fr; max-width:1240px; margin:0 auto 56px; border-radius:22px; overflow:hidden; box-shadow:0 14px 40px rgba(26,24,22,0.08);}
.pp-ps-panel {padding:38px 32px; position:relative;}
.pp-ps-panel.problem {background:#0A0A0A; color:var(--bone);}
.pp-ps-panel.solution {background:var(--bone); color:var(--ink);}
.pp-ps-side-eye {font-size:10.5px; letter-spacing:0.26em; text-transform:uppercase; font-weight:600; margin-bottom:12px;}
.pp-ps-panel.problem .pp-ps-side-eye {color:rgba(245,241,232,0.5);}
.pp-ps-panel.solution .pp-ps-side-eye {color:var(--gold);}
.pp-ps-side-title {font-family:'Söhne','Newsreader',Georgia,serif; font-style:italic; font-size:clamp(22px,2.4vw,28px); font-weight:500; letter-spacing:-0.02em; line-height:1.08; margin-bottom:20px;}
.pp-ps-list {list-style:none; display:flex; flex-direction:column; gap:11px; font-size:13.5px;}
.pp-ps-list li {display:flex; align-items:flex-start; gap:11px; line-height:1.45;}
.pp-ps-list li .dot {width:14px; height:14px; border-radius:50%; flex-shrink:0; margin-top:3px; display:flex; align-items:center; justify-content:center;}
.pp-ps-panel.problem .dot {background:rgba(245,241,232,0.05); border:1px solid rgba(245,241,232,0.22);}
.pp-ps-panel.problem .pp-ps-list {color:rgba(245,241,232,0.82);}
.pp-ps-panel.solution .dot {background:var(--gold); background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231A1816' stroke-width='3'%3E%3Cpolyline points='4 12 10 18 20 6'/%3E%3C/svg%3E"); background-size:62%; background-position:center; background-repeat:no-repeat;}
.pp-ps-panel.solution .pp-ps-list li strong {font-weight:700;}
.pp-ps-stat-strip {display:flex; gap:16px; margin-top:22px; padding-top:18px; border-top:1px solid rgba(26,24,22,0.1);}
.pp-ps-stat {flex:1;}
.pp-ps-stat-n {font-family:'Söhne','Newsreader',Georgia,serif; font-style:italic; font-size:20px; font-weight:700; color:var(--gold-deep); line-height:1;}
.pp-ps-stat-l {font-size:10px; letter-spacing:0.08em; text-transform:uppercase; color:var(--ink-soft); margin-top:5px;}
/* === DELIVERY VIDEO === */
.pp-dv {padding:64px 24px; max-width:1140px; margin:0 auto;}
.pp-dv-head {text-align:center; max-width:680px; margin:0 auto 28px;}
.pp-dv-title {font-family:'Söhne','Newsreader',Georgia,serif; font-style:italic; font-size:clamp(26px,3.2vw,38px); font-weight:500; letter-spacing:-0.02em;}
.pp-dv-sub {font-size:13.5px; color:var(--ink-soft); margin-top:10px;}
.pp-dv-player {position:relative; aspect-ratio:16/9; border-radius:20px; overflow:hidden; background:radial-gradient(ellipse at 50% 50%, #1a1715 0%, #050505 90%); display:flex; align-items:center; justify-content:center; cursor:pointer; box-shadow:0 22px 60px rgba(26,24,22,0.25);}
.pp-dv-player::after {content:''; position:absolute; inset:0; background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.04'/%3E%3C/svg%3E"); pointer-events:none;}
.pp-dv-thumb-svg {width:46%; max-width:380px; opacity:0.92;}
.pp-dv-play {position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); width:84px; height:84px; border-radius:50%; background:rgba(245,241,232,0.95); display:flex; align-items:center; justify-content:center; box-shadow:0 12px 36px rgba(26,24,22,0.4); transition:transform 0.25s var(--ease);}
.pp-dv-player:hover .pp-dv-play {transform:translate(-50%,-50%) scale(1.06);}
.pp-dv-play svg {width:30px; height:30px; fill:var(--ink); margin-left:4px;}
.pp-dv-tag {position:absolute; bottom:18px; left:18px; font-size:10px; letter-spacing:0.2em; text-transform:uppercase; color:var(--gold-bright); font-family:'JetBrains Mono',monospace;}
.pp-dv-dur {position:absolute; bottom:18px; right:18px; font-size:11px; color:rgba(245,241,232,0.7); background:rgba(0,0,0,0.5); padding:5px 11px; border-radius:99px; font-family:'JetBrains Mono',monospace; letter-spacing:0.06em;}
.pp-dv-steps {display:grid; grid-template-columns:repeat(4,1fr); gap:18px; margin-top:32px;}
.pp-dv-step {padding:18px; background:#fff; border:1px solid rgba(26,24,22,0.06); border-radius:14px;}
.pp-dv-step-n {font-family:'Söhne','Newsreader',Georgia,serif; font-style:italic; font-size:13px; color:var(--gold); font-weight:600; margin-bottom:6px; letter-spacing:0.04em;}
.pp-dv-step h4 {font-size:14px; font-weight:700; margin-bottom:5px; letter-spacing:-0.01em;}
.pp-dv-step p {font-size:12px; color:var(--ink-soft); line-height:1.5;}
/* === COMPARISON vs CATEGORIES === */
.pp-cmp {padding:64px 24px; max-width:1100px; margin:0 auto;}
.pp-cmp-head {text-align:center; max-width:760px; margin:0 auto 28px;}
.pp-cmp-title {font-family:'Söhne','Newsreader',Georgia,serif; font-style:italic; font-size:clamp(26px,3.2vw,38px); font-weight:500; letter-spacing:-0.02em; line-height:1.05;}
.pp-cmp-table {display:grid; background:#fff; border-radius:18px; overflow:hidden; box-shadow:0 8px 30px rgba(26,24,22,0.06); grid-template-columns:1.3fr 1.2fr 1fr 1fr 1fr;}
.pp-cmp-cell {padding:18px 14px; border-bottom:1px solid rgba(26,24,22,0.06); font-size:13px; text-align:center;}
.pp-cmp-row-l {text-align:left !important; font-weight:600;}
.pp-cmp-cell.stack {background:rgba(201,168,76,0.06); font-weight:600; border-left:2px solid var(--gold); border-right:2px solid var(--gold);}
.pp-cmp-header {background:var(--stone); font-size:12px; font-weight:700; padding:24px 12px; letter-spacing:0.08em; text-transform:uppercase; position:relative;}
.pp-cmp-header.stack {background:linear-gradient(180deg,rgba(201,168,76,0.22),rgba(201,168,76,0.08));}
.pp-cmp-header-badge {position:absolute; top:-10px; left:50%; transform:translateX(-50%); background:var(--ink); color:var(--gold); padding:3px 12px; border-radius:999px; font-size:9px; letter-spacing:0.18em; white-space:nowrap;}
.pp-cmp-check {width:22px; height:22px; margin:0 auto; stroke:var(--gold); fill:none; stroke-width:2.4; display:block;}
.pp-cmp-check.dim {stroke:#aaa;}
.pp-cmp-dash {color:rgba(26,24,22,0.42); font-style:italic; font-size:11px;}
.pp-cmp-x {color:rgba(26,24,22,0.32); font-size:17px;}
.pp-cmp-mobile {display:none;}
.pp-cmp-feat {background:#fff; border:1px solid rgba(26,24,22,0.06); border-radius:14px; padding:14px 16px; margin-bottom:10px;}
.pp-cmp-feat-n {font-size:13px; font-weight:700; margin-bottom:9px;}
.pp-cmp-feat-row {display:flex; justify-content:space-between; align-items:center; padding:6px 0; font-size:12px; gap:10px;}
.pp-cmp-feat-row:not(:last-child) {border-bottom:1px solid rgba(26,24,22,0.05);}
.pp-cmp-feat-row.s {font-weight:700; color:var(--gold-deep);}
.pp-cmp-feat-row.s .v::before {content:'✓ '; color:var(--gold);}
.pp-cmp-feat-row .v.no {color:var(--ink-soft); font-style:italic;}
/* === RANGE (Core/Stack/Gut) === */
.pp-rng {padding:48px 24px; max-width:1100px; margin:0 auto;}
.pp-rng-head {text-align:center; margin-bottom:24px;}
.pp-rng-title {font-family:'Söhne','Newsreader',Georgia,serif; font-style:italic; font-size:clamp(24px,3vw,34px); font-weight:500; letter-spacing:-0.02em;}
.pp-rng-grid {display:grid; grid-template-columns:repeat(3,1fr); gap:14px;}
.pp-rng-card {background:#fff; border:1px solid rgba(26,24,22,0.06); border-radius:18px; padding:22px 18px; text-align:center; position:relative; transition:transform 0.25s var(--ease);}
.pp-rng-card:hover {transform:translateY(-4px); box-shadow:0 12px 30px rgba(26,24,22,0.1);}
.pp-rng-card.featured {background:linear-gradient(180deg, var(--ink) 0%, #0a0a0a 100%); color:var(--bone); border:1px solid var(--gold);}
.pp-rng-badge {position:absolute; top:-9px; left:50%; transform:translateX(-50%); background:var(--gold); color:var(--ink); padding:3px 12px; border-radius:999px; font-size:9px; letter-spacing:0.18em; text-transform:uppercase; font-weight:700; white-space:nowrap;}
.pp-rng-bot {width:60px; height:80px; margin:6px auto 12px; background:linear-gradient(180deg, #2a241d 0%, #0a0a0a 100%); border-radius:5px; display:flex; flex-direction:column; align-items:center; justify-content:flex-end; padding-bottom:6px; font-size:7px; color:var(--gold); letter-spacing:0.12em;}
.pp-rng-card.featured .pp-rng-bot {background:linear-gradient(180deg,#3a2f1f 0%, #1a1308 100%); width:72px; height:96px;}
.pp-rng-name {font-size:15px; font-weight:700; margin-bottom:2px;}
.pp-rng-card.featured .pp-rng-name {font-size:18px;}
.pp-rng-tier {font-size:10.5px; letter-spacing:0.06em; color:var(--ink-soft); text-transform:uppercase; margin-bottom:14px;}
.pp-rng-card.featured .pp-rng-tier {color:rgba(245,241,232,0.65); font-size:11.5px;}
.pp-rng-feats {list-style:none; text-align:left; display:flex; flex-direction:column; gap:7px; margin-bottom:16px;}
.pp-rng-feats li {font-size:12px; display:flex; align-items:flex-start; gap:7px; line-height:1.4;}
.pp-rng-feats li::before {content:'✓'; color:var(--gold); flex-shrink:0; font-weight:700;}
.pp-rng-cta {display:block; width:100%; padding:10px 14px; font-size:10.5px; font-weight:700; letter-spacing:0.18em; text-transform:uppercase; border-radius:999px; border:1.5px solid var(--ink); color:var(--ink); text-decoration:none;}
.pp-rng-cta:hover {background:var(--ink); color:var(--bone);}
.pp-rng-card.featured .pp-rng-cta {background:var(--gold); border-color:var(--gold); color:var(--ink);}
/* === REVIEWS === */
.pp-rv {padding:48px 0 36px;}
.pp-rv-head {text-align:center; max-width:680px; margin:0 auto 26px; padding:0 24px;}
.pp-rv-stars {display:inline-flex; gap:2px; color:var(--gold); margin-bottom:10px;}
.pp-rv-stars svg {width:18px; height:18px; fill:currentColor;}
.pp-rv-title {font-family:'Söhne','Newsreader',Georgia,serif; font-style:italic; font-size:clamp(24px,2.8vw,32px); font-weight:500; letter-spacing:-0.02em;}
.pp-rv-sub {font-size:12.5px; color:var(--ink-soft); margin-top:8px;}
.pp-rv-scroll {display:flex; gap:14px; overflow-x:auto; padding:0 24px 16px; scroll-snap-type:x mandatory;}
.pp-rv-scroll::-webkit-scrollbar {height:5px;}
.pp-rv-scroll::-webkit-scrollbar-thumb {background:rgba(26,24,22,0.2); border-radius:99px;}
.pp-rv-card {flex:0 0 260px; background:#fff; border:1px solid rgba(26,24,22,0.06); border-radius:16px; padding:22px; scroll-snap-align:start; display:flex; flex-direction:column; gap:10px;}
.pp-rv-card-stars {display:flex; gap:1px; color:var(--gold);}
.pp-rv-card-stars svg {width:13px; height:13px; fill:currentColor;}
.pp-rv-card-h {font-size:14px; font-weight:700; line-height:1.3;}
.pp-rv-card-q {font-size:12.5px; color:var(--ink-soft); line-height:1.5; flex:1;}
.pp-rv-card-meta {display:flex; justify-content:space-between; align-items:center; padding-top:10px; border-top:1px solid rgba(26,24,22,0.06); font-size:10.5px;}
.pp-rv-card-name {font-weight:700; letter-spacing:0.06em; text-transform:uppercase;}
.pp-rv-card-day {color:var(--gold-deep); font-weight:600;}
.pp-rv-link {text-align:center; margin-top:8px;}
.pp-rv-link a {font-size:12px; color:var(--ink); text-decoration:none; border-bottom:1px solid var(--gold); padding-bottom:1px; font-weight:500;}
/* === TRUST GRID (Tested.Verified.Traceable.) === */
.pp-tg {padding:48px 24px; max-width:900px; margin:0 auto; text-align:center;}
.pp-tg-title {font-family:'Söhne','Newsreader',Georgia,serif; font-style:italic; font-size:clamp(24px,3vw,34px); font-weight:500; letter-spacing:-0.02em; margin-bottom:8px;}
.pp-tg-sub {font-size:13px; color:var(--ink-soft); margin-bottom:26px; max-width:520px; margin-left:auto; margin-right:auto;}
.pp-tg-grid {display:grid; grid-template-columns:repeat(4,1fr); gap:10px; max-width:780px; margin:0 auto;}
.pp-tg-cell {background:#fff; border:1px solid rgba(26,24,22,0.06); border-radius:12px; padding:14px 8px; display:flex; flex-direction:column; align-items:center; gap:6px; transition:transform 0.2s ease, border-color 0.2s ease;}
.pp-tg-cell:hover {transform:translateY(-2px); border-color:var(--gold);}
.pp-tg-cell svg {width:22px !important; height:22px !important; fill:var(--gold-deep) !important; color:var(--gold-deep) !important;}
.pp-tg-cell span {font-size:10px; letter-spacing:0.04em; font-weight:500; line-height:1.25;}
.pp-tg-cta {margin-top:18px;}
.pp-tg-cta a {font-size:12px; color:var(--ink); text-decoration:none; border-bottom:1px solid var(--gold); padding-bottom:1px; font-weight:500;}
/* === PAIR WITH === */
.pp-pw {padding:36px 24px; max-width:780px; margin:0 auto;}
.pp-pw-title {font-family:'Söhne','Newsreader',Georgia,serif; font-style:italic; font-size:clamp(22px,2.4vw,30px); font-weight:500; letter-spacing:-0.02em; text-align:center; margin-bottom:20px;}
.pp-pw-card {display:flex; align-items:center; gap:18px; background:#fff; border:1px solid rgba(26,24,22,0.08); border-radius:16px; padding:18px 22px; box-shadow:0 8px 24px rgba(26,24,22,0.06); transition:transform 0.25s var(--ease);}
.pp-pw-card:hover {transform:translateY(-3px);}
.pp-pw-bot {width:60px; height:80px; flex-shrink:0; background:linear-gradient(180deg, #2a241d 0%, #0a0a0a 100%); border-radius:5px; display:flex; flex-direction:column; align-items:center; justify-content:flex-end; padding-bottom:7px; font-size:7px; color:var(--gold); letter-spacing:0.14em;}
.pp-pw-info {flex:1; min-width:0;}
.pp-pw-name {font-size:15px; font-weight:700;}
.pp-pw-tag {font-size:12px; color:var(--ink-soft); margin:2px 0 4px;}
.pp-pw-price {font-size:13px; font-weight:600;}
.pp-pw-btn {padding:10px 18px; border:1.5px solid var(--ink); border-radius:999px; font-size:11px; letter-spacing:0.18em; text-transform:uppercase; font-weight:700; flex-shrink:0; cursor:pointer;}
.pp-pw-btn:hover {background:var(--ink); color:var(--bone);}
/* === Q&A === */
.pp-qa {padding:48px 24px; max-width:1100px; margin:0 auto;}
.pp-qa-wrap {display:grid; grid-template-columns:260px 1fr; gap:48px; align-items:start;}
.pp-qa-left h2 {font-family:'Söhne','Newsreader',Georgia,serif; font-style:italic; font-size:28px; letter-spacing:-0.02em; line-height:1.06; font-weight:500; margin-bottom:10px;}
.pp-qa-left p {font-size:13px; color:var(--ink-soft); line-height:1.5; margin-bottom:14px;}
.pp-qa-left a {display:inline-block; font-size:12.5px; color:var(--ink); text-decoration:none; border-bottom:1px solid var(--gold); padding-bottom:1px; font-weight:500;}
.pp-qa-cols {display:grid; grid-template-columns:1fr 1fr; column-gap:28px;}
.pp-qa-cols details {border-bottom:1px solid rgba(26,24,22,0.1);}
.pp-qa-cols summary {padding:13px 0; font-size:13.5px; font-weight:600; cursor:pointer; list-style:none; display:flex; justify-content:space-between; align-items:center; gap:14px; line-height:1.35;}
.pp-qa-cols summary::-webkit-details-marker {display:none;}
.pp-qa-cols summary::after {content:'+'; font-size:18px; font-weight:300; flex-shrink:0; transition:transform 0.3s ease;}
.pp-qa-cols details[open] summary::after {transform:rotate(45deg);}
.pp-qa-cols details p {padding-bottom:13px; font-size:12.5px; color:var(--ink-soft); line-height:1.5;}
/* === STICKY BOTTOM CTA (mobile only) === */
.pp-sticky {display:none;}
/* === BOTTLE OVERRIDE — BLACK PLASTIC (matches production reality) === */
.pp-hero-bottle {background: linear-gradient(145deg, #1F1F1F 0%, #0A0A0A 100%) !important;
  border: 1px solid rgba(201,168,76,0.2) !important;
  color: var(--bone) !important;
  box-shadow: 0 18px 48px rgba(0,0,0,0.35), inset 0 1px 0 rgba(255,255,255,0.04) !important;}
.pp-bot-brand {color: rgba(245,241,232,0.7) !important;}
.pp-bot-name {color: var(--gold-bright) !important;}
.pp-bot-formula {color: rgba(245,241,232,0.8) !important;}
.pp-bot-caps {color: var(--gold) !important; border-color: rgba(201,168,76,0.3) !important;}
.pp-bot-tm {color: var(--gold) !important;}
/* ===== PRODUCT PAGE responsive (@media source, manqué au 1er passage) ===== */
@media (max-width:980px) {
  .pp-hero {grid-template-columns:1fr; gap:30px; padding:60px 16px 36px;}
  .pp-hero-visual {aspect-ratio:1/1; max-height:48vh;}
  .pp-ps-split {grid-template-columns:1fr; margin:0 16px 36px; border-radius:18px;}
  .pp-ps-panel {padding:26px 22px;}
  .pp-qa-wrap {grid-template-columns:1fr; gap:18px;}
  .pp-qa-cols {grid-template-columns:1fr; column-gap:0;}
  .pp-dv-steps {grid-template-columns:1fr 1fr; gap:10px; margin-top:20px;}
  .pp-cmp-table {display:none;}
  .pp-cmp-mobile {display:block;}
  .pp-bf-grid {grid-template-columns:repeat(3,1fr); gap:14px 8px; max-width:340px;}
  .pp-bf-ico {width:46px; height:46px;}
  .pp-bf-ico svg {width:22px; height:22px;}
  .pp-bf-label {font-size:11.5px;}
  .pp-acc {padding:44px 16px;}
  .pp-modal-ov {padding:0; align-items:flex-end;}
  .pp-modal {max-width:100%; max-height:94vh; border-radius:22px 22px 0 0;}
  .pp-modal-body {padding:8px 20px 36px;}
  .pp-ben-list {grid-template-columns:1fr;}
  .pp-test-grid {grid-template-columns:repeat(3,1fr);}
  .pp-dv {padding:44px 16px;}
  .pp-dv-thumb-svg {width:60%;}
  .pp-dv-play {width:64px; height:64px;}
  .pp-rng-grid {grid-template-columns:1fr 1fr; grid-template-rows:auto auto; gap:10px;}
  .pp-rng-card.featured {grid-column:1 / -1; grid-row:1;}
  .pp-rng-card:not(.featured) .pp-rng-feats {display:none;}
  .pp-rng-card:not(.featured) .pp-rng-bot {width:42px; height:56px;}
  .pp-rv-card {flex:0 0 240px; padding:18px;}
  .pp-tg-grid {grid-template-columns:repeat(4,1fr); gap:8px;}
  .pp-tg-cell {padding:11px 5px; gap:5px;}
  .pp-tg-cell svg {width:18px; height:18px;}
  .pp-tg-cell span {font-size:9px;}
  .pp-sticky {display:block; position:fixed; bottom:0; left:0; right:0; background:var(--ink); color:var(--bone); padding:11px 16px; z-index:50; display:flex; align-items:center; justify-content:space-between; gap:12px; box-shadow:0 -10px 30px rgba(0,0,0,0.18);}
  .pp-sticky-info {font-size:11px;}
  .pp-sticky-info strong {font-size:14px;}
  .pp-sticky a {padding:11px 18px; background:var(--gold); color:var(--ink); border-radius:999px; font-size:11.5px; font-weight:700; letter-spacing:0.14em; text-transform:uppercase; text-decoration:none;}
}
/* ===== Fixes fiche produit (retours utilisateur) ===== */
/* [1] Anti-débordement horizontal mobile (filet de sécurité) */
.elementor-location-single .ps-sp-rich { overflow-x: hidden; }
@media (max-width: 767px) {
  .elementor-location-single .pp-sci-strip { grid-template-columns: repeat(2, 1fr); }
}
/* [2] Masquer UGS + Catégorie sous le buy box */
.elementor-location-single .product_meta { display: none !important; }
/* [3] FAQ : espace titre/réponse + pas d'outline */
.elementor-location-single .pp-qa-cols details > p,
.elementor-location-single .pp-qa-cols details > *:not(summary) {
  margin: 4px 0 14px; color: var(--ink-soft); font-size: 13.5px; line-height: 1.6;
}
.elementor-location-single .pp-qa-cols summary,
.elementor-location-single .pp-qa-cols summary:focus,
.elementor-location-single .pp-qa-cols details { outline: none; }
/* [4] Badge comparatif "Most complete" : ne plus le clipper (il était à top:-10px sous overflow:hidden) */
.elementor-location-single .pp-cmp-header.stack { padding-top: 34px; }
.elementor-location-single .pp-cmp-header-badge { top: 6px; }
/* [5] Bouteilles réelles dans les mini-boîtes (the range + most pair) */
.elementor-location-single .pp-rng-bot img {
  width: 100%; height: 100%; object-fit: cover; border-radius: 5px; display: block;
}
.elementor-location-single .pp-rng-bot { overflow: hidden; }
/* pairs-with : bouteille entiere (contain), slot clair, pas de rognage */
.elementor-location-single .pp-pw-bot { background: transparent !important; overflow: visible !important; height: auto !important; align-self: center; }
.elementor-location-single .pp-pw-bot img { width: 100% !important; height: auto !important; object-fit: contain !important; border-radius: 0; display: block; }

/* Sections riches découpées : chaque section = 1 conteneur nommé ; le padding vertical
   est géré par les .pp-* internes → on neutralise le padding du conteneur Elementor. */
.elementor-location-single [class*="ps-sec-"],
.elementor-location-single [class*="ps-sec-"] > .e-con-inner { padding: 0; }


/* ===== Fiches produit BASIQUES (lqp-*) — NAD & co ===== */
.col-card-rating .stars {color:var(--gold); font-size:11px; letter-spacing:0.5px;}
.lqp-hero {padding:60px 32px 48px; max-width:1200px; margin:0 auto; display:grid; grid-template-columns:1fr 1fr; gap:48px; align-items:center;}
.lqp-img {aspect-ratio:1/1; background:linear-gradient(135deg, #F5F1E8 0%, #ECE6D7 100%); border-radius:20px; display:flex; align-items:center; justify-content:center; overflow:hidden;}
.lqp-img img {width:78%; height:78%; object-fit:contain; mix-blend-mode:multiply;}
.lqp-info .lqp-cat {font-size:11px; letter-spacing:0.3em; text-transform:uppercase; color:var(--gold); font-weight:600; margin-bottom:14px;}
.lqp-info h1 {font-family:'Söhne','Newsreader',Georgia,serif; font-style:italic; font-size:clamp(32px,4.2vw,46px); font-weight:500; letter-spacing:-0.02em; line-height:1.04; margin-bottom:10px;}
.lqp-sub {font-size:14px; color:var(--ink-soft); margin-bottom:14px;}
.lqp-rating {display:flex; align-items:center; gap:8px; margin-bottom:18px; font-size:12.5px; color:var(--ink-soft);}
.lqp-rating .stars {color:var(--gold); font-size:14px;}
.lqp-bullets {list-style:none; display:flex; flex-direction:column; gap:8px; margin-bottom:22px;}
.lqp-bullets li {display:flex; align-items:flex-start; gap:10px; font-size:13.5px; line-height:1.5;}
.lqp-bullets li::before {content:'✓'; color:var(--gold); font-weight:700; flex-shrink:0;}
.lqp-flash {display:inline-block; padding:5px 12px; background:rgba(201,168,76,0.15); border:1px solid rgba(201,168,76,0.4); color:var(--gold-deep); border-radius:99px; font-size:10.5px; font-weight:700; letter-spacing:0.14em; text-transform:uppercase; margin-bottom:18px;}
.lqp-buybox {background:#fff; border:1px solid rgba(26,24,22,0.08); border-radius:18px; padding:22px; box-shadow:0 10px 28px rgba(26,24,22,0.06);}
.lqp-toggle {display:grid; grid-template-columns:1fr 1fr; gap:6px; background:rgba(26,24,22,0.05); padding:4px; border-radius:999px; margin-bottom:16px;}
.lqp-toggle button {padding:9px 12px; border-radius:999px; font-size:12px; font-weight:600; cursor:pointer; background:none; border:none; color:inherit; font-family:inherit;}
.lqp-toggle button.active {background:var(--ink); color:var(--bone);}
.lqp-formats {display:grid; grid-template-columns:1fr 1fr; gap:8px; margin-bottom:16px;}
.lqp-format {border:1.5px solid rgba(26,24,22,0.15); border-radius:14px; padding:14px; cursor:pointer; position:relative; transition:all 0.2s ease;}
.lqp-format.selected {border-color:var(--gold); background:rgba(201,168,76,0.05);}
.lqp-format-badge {position:absolute; top:-8px; right:12px; background:var(--gold); color:var(--ink); padding:2px 9px; border-radius:999px; font-size:9px; letter-spacing:0.14em; font-weight:700; text-transform:uppercase;}
.lqp-format-size {font-size:14px; font-weight:700;}
.lqp-format-month {font-size:10.5px; color:var(--ink-soft); margin:2px 0 6px;}
.lqp-format-orig {font-size:11px; color:rgba(26,24,22,0.4); text-decoration:line-through;}
.lqp-format-price {font-size:17px; font-weight:700;}
.lqp-format-savings {font-size:10px; color:var(--gold-deep); font-weight:700; margin-top:3px; letter-spacing:0.04em; text-transform:uppercase;}
.lqp-cta {display:block; width:100%; padding:14px 18px; background:var(--ink); color:var(--bone); border-radius:999px; font-size:12.5px; font-weight:700; letter-spacing:0.15em; text-transform:uppercase; text-align:center; text-decoration:none; transition:background 0.2s ease;}
.lqp-cta:hover {background:var(--gold-deep); color:var(--gold-bright);}
.lqp-micro {display:flex; justify-content:space-around; gap:10px; margin-top:14px; font-size:9.5px; color:var(--ink-soft); letter-spacing:0.06em; text-transform:uppercase; text-align:center;}
.lqp-micro span {display:flex; flex-direction:column; align-items:center; gap:4px;}
.lqp-klarna {font-size:11px; color:var(--ink-soft); text-align:center; margin-top:10px; line-height:1.5;}
.lqp-fda {font-size:10px; color:var(--ink-soft); font-style:italic; text-align:center; margin-top:10px; line-height:1.45;}
.lqp-desc {padding:48px 32px; max-width:780px; margin:0 auto;}
.lqp-desc h2 {font-family:'Söhne','Newsreader',Georgia,serif; font-style:italic; font-size:26px; font-weight:500; letter-spacing:-0.02em; margin-bottom:14px;}
.lqp-desc p {font-size:14.5px; line-height:1.7; color:var(--ink); margin-bottom:14px;}
.lqp-divider {height:1px; background:rgba(26,24,22,0.08); max-width:1100px; margin:0 auto;}
.lqp-reviews {padding:48px 24px; max-width:880px; margin:0 auto; text-align:center;}
.lqp-reviews-title {font-family:'Söhne','Newsreader',Georgia,serif; font-style:italic; font-size:26px; font-weight:500; letter-spacing:-0.02em; margin-bottom:6px;}
.lqp-reviews-sub {font-size:13px; color:var(--ink-soft); margin-bottom:26px;}
.lqp-reviews-grid {display:grid; grid-template-columns:1fr 1fr 1fr; gap:14px; text-align:left;}
.lqp-review {background:#fff; border:1px solid rgba(26,24,22,0.06); border-radius:14px; padding:18px;}
.lqp-review .stars {color:var(--gold); font-size:13px; margin-bottom:6px;}
.lqp-review h4 {font-size:14px; font-weight:700; margin-bottom:6px;}
.lqp-review p {font-size:12.5px; color:var(--ink-soft); line-height:1.55; margin-bottom:10px;}
.lqp-review .name {font-size:10.5px; font-weight:700; letter-spacing:0.06em; text-transform:uppercase; color:var(--ink);}
.lqp-faq {padding:48px 24px 60px; max-width:780px; margin:0 auto;}
.lqp-faq h2 {font-family:'Söhne','Newsreader',Georgia,serif; font-style:italic; font-size:26px; font-weight:500; text-align:center; margin-bottom:24px;}
.lqp-faq details {border-bottom:1px solid rgba(26,24,22,0.1);}
.lqp-faq summary {padding:14px 0; font-size:14px; font-weight:600; cursor:pointer; list-style:none; display:flex; justify-content:space-between; align-items:center;}
.lqp-faq summary::-webkit-details-marker {display:none;}
.lqp-faq summary::after {content:'+'; font-size:18px; transition:transform 0.3s ease; flex-shrink:0;}
.lqp-faq details[open] summary::after {transform:rotate(45deg);}
.lqp-faq details p {padding:0 0 14px; font-size:13px; color:var(--ink-soft); line-height:1.6;}
@media (max-width:900px) {
  .lqp-hero { grid-template-columns:1fr; gap:24px; padding:36px 16px 24px; }
  .lqp-img { max-height:46vh; }
  .lqp-reviews { padding:36px 16px; }
  .lqp-reviews-grid { grid-template-columns:1fr; }
  .lqp-faq { padding:36px 16px 48px; }
}


/* ── Trust badges sous le buy box (CRO P0) ─────────────────────────── */
.ps-trust-badges{
  list-style:none; margin:18px 0 4px; padding:16px 0 0;
  display:grid; grid-template-columns:1fr 1fr; gap:14px 18px;
  border-top:1px solid rgba(26,24,22,0.12);
}
.ps-trust-item{
  display:flex; align-items:center; gap:10px; margin:0; padding:0;
}
.ps-trust-ico{
  flex:0 0 auto; width:26px; height:26px; color:var(--gold,#C9A84C);
  stroke-width:1.5;
}
.ps-trust-txt{
  display:flex; flex-direction:column; line-height:1.2;
  font-family:var(--e-global-typography-text-font-family,'Manrope'),sans-serif;
}
.ps-trust-txt strong{
  font-size:13px; font-weight:600; color:var(--ink,#1A1816); letter-spacing:.01em;
}
.ps-trust-txt{ font-size:11.5px; color:var(--ink-soft,rgba(26,24,22,0.65)); }
@media (max-width:600px){
  .ps-trust-badges{ grid-template-columns:1fr 1fr; gap:12px 12px; }
  .ps-trust-ico{ width:22px; height:22px; }
  .ps-trust-txt strong{ font-size:12px; }
  .ps-trust-txt{ font-size:10.5px; }
}

/* ── FIX: titres/sous-titres accordéon collés (spans inline → block) ── */
.pp-acc-row-t, .pp-acc-row-s { display:block; }

/* ── FIX: croix de fermeture modale invisible (couleur + viewbox bas-de-casse) ── */
.pp-modal-close svg { overflow:visible; }
.pp-modal-close svg path,
.pp-modal-close svg line {
  stroke:var(--ink,#1A1816) !important;
  stroke-width:2 !important;
  fill:none !important;
}

/* ════════════════════════════════════════════════════════════════════
   Sélecteur de variants — pills premium (remplace le format carré wvs)
   Générique : Size, Dosage, Protocole... (multi-attributs)
   ════════════════════════════════════════════════════════════════════ */
.variations{ display:block !important; width:100%; border:0; margin:0 0 18px; }
.variations tbody{ display:block; width:100%; }
.variations tr{ display:block; width:100%; }
.variations tr + tr{ margin-top:18px; }
.variations td, .variations th{ display:block; width:100%; padding:0; border:0; text-align:left; }
.variations th.label, .variations .label{
  font-family:var(--e-global-typography-text-font-family,'Manrope'),sans-serif;
  font-size:11px; font-weight:600; letter-spacing:0.16em; text-transform:uppercase;
  color:var(--ink-soft,rgba(26,24,22,0.62)); margin:0 0 10px;
}
.variations th.label label{ margin:0; font-weight:inherit; }
.variations .value{ position:relative; }
.variable-items-wrapper{ display:flex !important; flex-wrap:wrap; gap:10px; margin:0; padding:0; list-style:none; }
.variable-item.button-variable-item{
  width:auto !important; height:auto !important; min-width:0 !important; max-width:none !important;
  margin:0 !important; padding:13px 22px !important; border-radius:999px !important;
  border:1px solid rgba(26,24,22,0.22) !important;
  background:#fff !important; color:var(--ink,#1A1816) !important;
  display:inline-flex !important; align-items:center; justify-content:center;
  min-height:48px; box-shadow:none !important; outline:none !important;
  font-family:var(--e-global-typography-text-font-family,'Manrope'),sans-serif;
  font-size:13.5px; font-weight:600; letter-spacing:0.01em; line-height:1;
  cursor:pointer; transition:border-color .2s, background .2s, color .2s, transform .12s;
}
.variable-item.button-variable-item .variable-item-span{ font:inherit; color:inherit; padding:0; margin:0; background:none; box-shadow:none; width:auto; }
.variable-item.button-variable-item:hover{ border-color:var(--ink,#1A1816) !important; transform:translateY(-1px); }
.variable-item.button-variable-item.selected,
.variable-item.button-variable-item[aria-checked="true"]{
  background:var(--ink,#1A1816) !important; color:var(--bone,#F5F1E8) !important; border-color:var(--ink,#1A1816) !important;
}
.variable-item.button-variable-item.disabled,
.variable-item.button-variable-item.wvs-disabled{ opacity:.35 !important; cursor:not-allowed; text-decoration:line-through; }
.variable-item.button-variable-item.selected:hover{ transform:none; }
.variations .reset_variations{ display:inline-block; margin-top:8px; font-size:11px; letter-spacing:.04em; color:var(--ink-soft,rgba(26,24,22,0.55)); text-decoration:underline; }
@media (max-width:600px){
  .variable-item.button-variable-item{ padding:12px 18px !important; font-size:13px; min-height:46px; }
  .variable-items-wrapper{ gap:8px; }
}

/* ════════════════════════════════════════════════════════════════════
   WooCommerce Square — boutons express (Apple Pay / Google Pay)
   Contraints à la buy box, pleine largeur, pill (NE PAS toucher display:
   géré par le JS Square selon dispo du wallet)
   ════════════════════════════════════════════════════════════════════ */
#wc-square-digital-wallet{
  width:100% !important; max-width:100% !important;
  flex:1 0 100% !important; order:99 !important;
  margin:14px 0 0 !important; padding:0 !important;
  box-sizing:border-box; clear:both; float:none !important; text-align:center;
}
/* Conteneur flex du buy box : autoriser le passage à la ligne pour le wallet */
.woocommerce-variation-add-to-cart.variations_button,
.woocommerce-variation-add-to-cart{ flex-wrap:wrap !important; }
#wc-square-digital-wallet > div{
  width:100% !important; max-width:100% !important; margin:0 0 10px !important;
  box-sizing:border-box; float:none !important;
}
#wc-square-digital-wallet > div:last-child{ margin-bottom:0 !important; }

/* Apple Pay */
.apple-pay-button.wc-square-wallet-buttons,
#apple-pay-button.apple-pay-button{
  width:100% !important; min-width:0 !important; max-width:100% !important;
  height:50px !important; border-radius:999px !important;
  -apple-pay-button-style:black; box-sizing:border-box;
}

/* Google Pay (Square injecte un bouton/iframe) */
#wc-square-google-pay{ width:100% !important; max-width:100% !important; }
#wc-square-google-pay > *,
#wc-square-google-pay button,
#wc-square-google-pay .gpay-card-info-container,
.wc-square-wallet-buttons.gpay-card-info-container{
  width:100% !important; max-width:100% !important; min-width:0 !important;
  height:50px !important; border-radius:999px !important; box-sizing:border-box;
}

/* FunnelKit Square express wallets belong in the express area, not as duplicate
   radio methods below. Keep the gateways available server-side for tokenized
   express checkout, but hide the confusing lower-list rows. */
body.woocommerce-checkout #payment .wc_payment_method.payment_method_fkwcsq_google_pay,
body.woocommerce-checkout #payment .wc_payment_method.payment_method_fkwcsq_apple_pay,
#wfacp-e-form #payment .wc_payment_method.payment_method_fkwcsq_google_pay,
#wfacp-e-form #payment .wc_payment_method.payment_method_fkwcsq_apple_pay{
  display:none !important;
}

/* Séparateur "or" discret au-dessus des wallets (optionnel, sobre) */
#wc-square-digital-wallet:not([style*="display:none"]):not([style*="display: none"])::before{
  content:"or"; display:block; text-align:center;
  font-family:var(--e-global-typography-text-font-family,'Manrope'),sans-serif;
  font-size:11px; letter-spacing:0.18em; text-transform:uppercase;
  color:var(--ink-soft,rgba(26,24,22,0.5)); margin:4px 0 12px;
}

/* ── Quantity stepper horizontal (epouse la hauteur de la rangee) ── */
.elementor-location-single .ps-sp-summary .quantity.ps-qty-ready{
  flex:0 0 auto !important; display:inline-flex !important; flex-direction:row; align-items:stretch;
  width:auto !important; height:100% !important; min-height:52px !important;
  border:1.5px solid rgb(26 24 22 / .15) !important; border-radius:999px !important;
  overflow:hidden !important; background:#fff !important; padding:0 !important; box-sizing:border-box;
}
.elementor-location-single .ps-sp-summary .quantity.ps-qty-ready input.qty{
  border:0 !important; border-radius:0 !important; background:transparent !important;
  width:46px !important; height:100% !important; min-height:50px !important; flex:0 0 auto !important;
  padding:0 !important; margin:0 !important; text-align:center;
  font-size:16px !important; font-weight:600 !important; color:var(--ink,#1A1816) !important;
  -moz-appearance:textfield; appearance:textfield; box-shadow:none !important;
}
.ps-sp-summary .quantity.ps-qty-ready input.qty::-webkit-outer-spin-button,
.ps-sp-summary .quantity.ps-qty-ready input.qty::-webkit-inner-spin-button{ -webkit-appearance:none; margin:0; }
.elementor-location-single .ps-sp-summary .quantity.ps-qty-ready .ps-qty-btn{
  border:0 !important; outline:0 !important; background:transparent !important;
  color:var(--ink,#1A1816) !important; fill:var(--ink,#1A1816) !important;
  width:46px !important; height:100% !important; min-height:50px !important; flex:0 0 auto !important;
  padding:0 !important; margin:0 !important; border-radius:0 !important; box-shadow:none !important;
  font-family:var(--e-global-typography-text-font-family,'Manrope'),sans-serif;
  font-size:20px !important; font-weight:400 !important; line-height:1 !important; letter-spacing:0 !important;
  display:flex !important; align-items:center; justify-content:center; box-sizing:border-box;
  cursor:pointer; transition:background .15s; -webkit-tap-highlight-color:transparent; user-select:none;
  text-transform:none !important; text-shadow:none !important; min-width:0 !important;
}
.elementor-location-single .ps-sp-summary .quantity.ps-qty-ready .ps-qty-btn:hover{ background:rgb(26 24 22 / .06) !important; }
.elementor-location-single .ps-sp-summary .quantity.ps-qty-ready .ps-qty-btn:active{ background:rgb(26 24 22 / .12) !important; }
.elementor-location-single .ps-sp-summary .quantity.ps-qty-ready .ps-qty-minus{ border-right:1px solid rgb(26 24 22 / .12) !important; }
.elementor-location-single .ps-sp-summary .quantity.ps-qty-ready .ps-qty-plus{ border-left:1px solid rgb(26 24 22 / .12) !important; }
@media (max-width:600px){
  .elementor-location-single .ps-sp-summary .quantity.ps-qty-ready input.qty{ width:40px !important; font-size:15px !important; }
  .elementor-location-single .ps-sp-summary .quantity.ps-qty-ready .ps-qty-btn{ width:44px !important; font-size:19px !important; }
}

/* ════════════════════════════════════════════════════════════════════
   Allègement visuel (demande boss 2026) :
   1) Suppression des eyebrows (trop de texte)
   2) Suppression des mouvements au hover (pills/cartes/images)
   ════════════════════════════════════════════════════════════════════ */

/* 1. Eyebrows masqués site-wide (modale .pp-modal-eye conservée = contexte) */
.eyebrow, .hero-eyebrow, .outcomes-eyebrow, .pp-eyebrow, .price-eyebrow,
.reviews-eyebrow, .science-eyebrow, .sci-card-eyebrow, .col-eyebrow,
.block-eyebrow, .delivery-left-eyebrow, .formula-capsule-eyebrow,
.lp-eyebrow, .sp-eyebrow, .stub-eyebrow, .pp-ps-side-eye{
  display:none !important;
}

/* 2. Plus de mouvement au hover (on garde couleur/ombre = feedback discret,
      on retire uniquement le déplacement/zoom qui crée la confusion) */
.product-mini-card:hover, .review-card:hover, .product-teaser:hover,
.product-teaser:hover .product-arrow, .pp-bf-cell:hover, .pp-rng-card:hover,
.pp-tg-cell:hover, .pp-pw-card:hover, .sci-card:hover,
.hero-cta:hover, .outcomes-shop-btn:hover,
.price-cta:hover, .pp-cmp-row:hover, .ps-trust-item:hover{
  transform:none !important;
}

/* ════════════════════════════════════════════════════════════════════
   PhotoSwipe (lightbox galerie produit) — boutons à la charte
   Icônes dessinées en CSS (croix + chevrons), indépendant du sprite PNG
   ════════════════════════════════════════════════════════════════════ */
.pswp__bg{ background:rgba(12,11,10,0.94) !important; }

/* Neutraliser les sprites par défaut sur les 3 boutons concernés */
.pswp__button--close,
.pswp__button--arrow--left,
.pswp__button--arrow--right{
  background:none !important; box-shadow:none !important; opacity:.9 !important;
}
.pswp__button--close:hover,
.pswp__button--arrow--left:hover,
.pswp__button--arrow--right:hover{ opacity:1 !important; }

/* ── Croix de fermeture (deux barres) ── */
.pswp__button--close{ position:relative; width:54px !important; height:54px !important; }
.pswp__button--close::before,
.pswp__button--close::after{
  content:"" !important; position:absolute; left:50%; top:50%;
  width:22px; height:2px; background:#F5F1E8 !important; border-radius:2px;
  margin:0 !important;
}
.pswp__button--close::before{ transform:translate(-50%,-50%) rotate(45deg); }
.pswp__button--close::after{  transform:translate(-50%,-50%) rotate(-45deg); }
.pswp__button--close:hover::before,
.pswp__button--close:hover::after{ background:#C9A84C !important; }

/* Visionneuse minimale : seule la fermeture reste visible. La navigation
   entre images reste disponible par swipe sur tactile. */
body.single-product .pswp{
  z-index:2147483000 !important;
}
body.single-product .pswp .pswp__button:not(.pswp__button--close){
  display:none !important;
  visibility:hidden !important;
  width:0 !important;
  height:0 !important;
  margin:0 !important;
  padding:0 !important;
  pointer-events:none !important;
}
body.single-product .pswp .pswp__counter{ display:none !important; }

/* Product reassurance + payment brands: meaningful icons and real logo assets. */
body.single-product :is(#pdpx-hero-sec, .ps-sp-hero, .ps-pdpx) .pdpx-reassure{
  gap:9px 18px !important;
}
body.single-product :is(#pdpx-hero-sec, .ps-sp-hero, .ps-pdpx) .pdpx-reassure span{
  gap:7px !important;
}
body.single-product :is(#pdpx-hero-sec, .ps-sp-hero, .ps-pdpx) .pdpx-reassure .pdpx-reassure-icon{
  width:17px !important;
  height:17px !important;
  flex:0 0 17px;
  color:var(--ps-choice,#223A5E) !important;
  stroke:currentColor !important;
  fill:none !important;
  stroke-width:1.8 !important;
}
body.single-product :is(#pdpx-hero-sec, .ps-sp-hero, .ps-pdpx) .pdpx-pay{
  align-items:center !important;
  gap:8px 10px !important;
}
body.single-product :is(#pdpx-hero-sec, .ps-sp-hero, .ps-pdpx) .pdpx-pay-lbl{
  /* "Secure checkout" est deja present dans la ligne de reassurance. */
  display:none !important;
  align-items:center;
  gap:6px;
  white-space:nowrap;
}
body.single-product :is(#pdpx-hero-sec, .ps-sp-hero, .ps-pdpx) .pdpx-pay-lock{
  width:15px !important;
  height:15px !important;
  flex:0 0 15px;
  color:var(--ps-choice,#223A5E) !important;
  stroke:currentColor !important;
  fill:none !important;
}
body.single-product :is(#pdpx-hero-sec, .ps-sp-hero, .ps-pdpx) .pdpx-pay-ico{
  display:inline-flex !important;
  align-items:center;
  flex-wrap:wrap;
  gap:5px !important;
}
body.single-product :is(#pdpx-hero-sec, .ps-sp-hero, .ps-pdpx) .pdpx-pay-ico img{
  display:block;
  width:auto !important;
  height:24px !important;
  margin:0 !important;
  border:0 !important;
  border-radius:3px;
  box-shadow:none !important;
}
body.single-product :is(#pdpx-hero-sec, .ps-sp-hero, .ps-pdpx) .pdpx-pay-ico img.pdpx-pay-google{
  width:46px !important;
}
body.single-product :is(#pdpx-hero-sec, .ps-sp-hero, .ps-pdpx) .pdpx-pay-bank{
  box-sizing:border-box;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:38px;
  height:24px;
  color:#1A1816;
  background:#fff;
  border:1px solid #D5D9D9;
  border-radius:3px;
}
body.single-product :is(#pdpx-hero-sec, .ps-sp-hero, .ps-pdpx) .pdpx-pay-bank svg{
  width:20px !important;
  height:20px !important;
  stroke:currentColor !important;
  fill:none !important;
}

@media (max-width:600px){
  body.single-product :is(#pdpx-hero-sec, .ps-sp-hero, .ps-pdpx) .pdpx-reassure{
    gap:8px 14px !important;
  }
  body.single-product :is(#pdpx-hero-sec, .ps-sp-hero, .ps-pdpx) .pdpx-pay{
    gap:7px 9px !important;
  }
}

/* ════════════════════════════════════════════════════════════════════
   FIX dropdown desktop : le trou de 8px (top: calc(100% + 8px)) faisait
   perdre le :hover quand la souris traversait vers le sous-menu.
   Solution : pont invisible qui comble le trou + grâce à la fermeture.
   ════════════════════════════════════════════════════════════════════ */

/* Pont invisible : prolonge la zone hover du nav-item jusqu'au dropdown */
.nav-item .nav-dropdown::before{
  content:""; position:absolute; left:0; right:0;
  top:-14px; height:16px; background:transparent;
}

/* Petite grâce à la fermeture (le dropdown reste ~0.12s après le un-hover) */
.nav-item .nav-dropdown{ transition-delay:0.12s; }
.nav-item:hover .nav-dropdown,
.nav-item.is-open .nav-dropdown{ transition-delay:0s; }

/* ════════════════════════════════════════════════════════════════════
   Avis réels (CusRev/WooCommerce) — charte Panstellar
   ════════════════════════════════════════════════════════════════════ */

/* Masquer les placeholders sur les produits qui ont de vrais avis */
.ps-has-real-reviews .lqp-reviews{ display:none !important; }

/* Section avis */
.ps-real-reviews{ background:var(--bone,#F5F1E8); padding:56px 24px; border-top:1px solid rgba(26,24,22,.08); }
.ps-real-reviews-inner{ max-width:920px; margin:0 auto; }
.ps-real-reviews #reviews{ margin:0; }
.ps-real-reviews .woocommerce-Reviews-title,
.ps-real-reviews #comments > h2,
.ps-real-reviews .comment-reply-title{
  font-family:var(--font-serif,'Newsreader'),Georgia,serif;
  font-weight:400; font-size:clamp(24px,3.5vw,34px); color:var(--ink,#1A1816);
  letter-spacing:-0.01em; margin:0 0 24px;
}

/* Étoiles en or */
.ps-real-reviews .star-rating span::before,
.ps-real-reviews .star-rating::before,
.ps-real-reviews p.stars a::before{ color:var(--gold,#C9A84C) !important; }
.ps-real-reviews .star-rating{ color:var(--gold,#C9A84C); }

/* Liste d'avis en cartes */
.ps-real-reviews .commentlist{ list-style:none; margin:0 0 8px; padding:0; display:grid; gap:16px; }
.ps-real-reviews .commentlist li.review,
.ps-real-reviews .commentlist li.comment,
.ps-real-reviews .comment_container{
  background:#fff; border:1px solid rgba(26,24,22,.08); border-radius:14px;
  padding:20px 22px; box-shadow:0 6px 18px rgba(26,24,22,.04);
}
.ps-real-reviews .comment_container{ display:block; }
.ps-real-reviews .comment-text{ margin:0; }
.ps-real-reviews .meta{ font-size:12px; color:var(--ink-soft,rgba(26,24,22,.6)); margin:8px 0; }
.ps-real-reviews .woocommerce-review__author{ font-weight:600; color:var(--ink,#1A1816); }
.ps-real-reviews .cr_rev_title, .ps-real-reviews .cr-comment-head-text{
  font-weight:600; color:var(--ink,#1A1816); font-size:15px; margin:6px 0 4px;
}
.ps-real-reviews .woocommerce-review__verified{ color:var(--gold-deep,#9c7e2e); font-size:11px; }
.ps-real-reviews .description p, .ps-real-reviews .comment-text p{
  font-family:var(--font-sans,'Manrope'),sans-serif; color:var(--ink,#1A1816); line-height:1.6; font-size:14.5px;
}

/* Formulaire d'avis à la charte */
.ps-real-reviews .comment-respond{ margin-top:32px; padding-top:28px; border-top:1px solid rgba(26,24,22,.1); }
.ps-real-reviews .comment-form input[type=text],
.ps-real-reviews .comment-form input[type=email],
.ps-real-reviews .comment-form textarea{
  width:100%; border:1px solid rgba(26,24,22,.2); border-radius:12px; padding:12px 16px;
  font-family:var(--font-sans,'Manrope'),sans-serif; background:#fff; color:var(--ink);
}
.ps-real-reviews .comment-form .submit,
.ps-real-reviews #submit{
  background:var(--ink,#1A1816) !important; color:var(--bone,#F5F1E8) !important;
  border:0 !important; border-radius:999px !important; padding:14px 34px !important;
  font-size:12px !important; letter-spacing:.14em; text-transform:uppercase; font-weight:600; cursor:pointer;
}
/* Histogramme / résumé CusRev (note moyenne) */
.ps-real-reviews .cr-reviews-histogram, .ps-real-reviews .cr-summary-bar{ margin-bottom:24px; }
@media (max-width:600px){ .ps-real-reviews{ padding:40px 16px; } }

/* ── Avis custom (ps-rv-*) — charte ─────────────────────────────────── */
.ps-rv-section-title{
  font-family:var(--font-serif,'Newsreader'),Georgia,serif; font-weight:400;
  font-size:clamp(24px,3.5vw,34px); color:var(--ink,#1A1816); letter-spacing:-0.01em; margin:0 0 22px;
}
.ps-rv-head{ display:flex; align-items:baseline; gap:12px; margin:0 0 26px; flex-wrap:wrap; }
.ps-rv-avg{ font-family:var(--font-serif,'Newsreader'),Georgia,serif; font-size:40px; line-height:1; color:var(--ink,#1A1816); }
.ps-rv-headstars{ color:var(--gold,#C9A84C); font-size:20px; letter-spacing:2px; }
.ps-rv-count{ font-size:13px; color:var(--ink-soft,rgba(26,24,22,.6)); }
.ps-rv-list{ list-style:none; margin:0 0 24px; padding:0; display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.ps-rv-item{ background:#fff; border:1px solid rgba(26,24,22,.08); border-radius:14px; padding:20px 22px; box-shadow:0 6px 18px rgba(26,24,22,.04); }
.ps-rv-stars{ color:var(--gold,#C9A84C); font-size:14px; letter-spacing:2px; margin-bottom:8px; }
.ps-rv-title{ font-family:var(--font-sans,'Manrope'),sans-serif; font-weight:600; font-size:15px; color:var(--ink,#1A1816); margin:0 0 6px; }
.ps-rv-text{ font-family:var(--font-sans,'Manrope'),sans-serif; font-size:14px; line-height:1.6; color:var(--ink,#1A1816); }
.ps-rv-text p{ margin:0; }
.ps-rv-meta{ margin-top:10px; font-size:12px; color:var(--ink-soft,rgba(26,24,22,.55)); }
.ps-rv-verified{ color:var(--gold-deep,#9c7e2e); font-weight:600; }
.ps-rv-all{
  display:inline-block; font-family:var(--font-sans,'Manrope'),sans-serif; font-size:13px; font-weight:600;
  letter-spacing:.04em; color:var(--ink,#1A1816); text-decoration:none; border-bottom:1.5px solid var(--gold,#C9A84C); padding-bottom:2px;
}
.ps-rv-all:hover{ color:var(--gold-deep,#9c7e2e); }
@media (max-width:600px){ .ps-rv-list{ grid-template-columns:1fr; } .ps-rv-avg{ font-size:32px; } }

/* ── Retraits demandés (badges redondants avec .ps-trust-badges + Klarna + section) ── */
.ps-sp-trust{ display:none !important; }                              /* Made in USA + Batch tested (buybox) */
.pp-klarna{ display:none !important; }                                /* 4 interest-free Klarna (non offert) */
.pp-ps-split{ display:none !important; }                              /* section "Repair that never quite catches up" */
.footer-trust-grid .ftrust-item:nth-child(2){ display:none !important; } /* 60-day refund (footer) */
.ps-real-reviews{visibility:hidden}
.ps-real-reviews{ animation: psRvReveal 0s linear 2s forwards; }
@keyframes psRvReveal{ to{ visibility:visible; } }
/* Masquer aussi le placeholder reviews des produits 157 (section .ps-sec-pp-rv) */
.ps-has-real-reviews .ps-sec-pp-rv{ display:none !important; }

/* ════════════════════════════════════════════════════════════════════
   Multi-attributs (ex. Core 157) : pills compactes au lieu des cartes
   Surcharge l'Additional CSS Customizer (.woo-variation-swatches ... .variable-item)
   ════════════════════════════════════════════════════════════════════ */
/* Labels d'attribut visibles (Strength / No of Capsules) */
.ps-multi-attr .variations,
.ps-multi-attr .variations tbody,
.ps-multi-attr .variations tr,
.ps-multi-attr .variations td,
.ps-multi-attr .variations th{ display:block !important; width:100% !important; text-align:left !important; padding:0 !important; border:0 !important; }
.ps-multi-attr .variations tr + tr{ margin-top:16px !important; }
.ps-multi-attr .variations th.label,
.ps-multi-attr .variations .label{
  font-family:var(--e-global-typography-text-font-family,'Manrope'),sans-serif !important;
  font-size:11px !important; font-weight:600 !important; letter-spacing:.16em !important;
  text-transform:uppercase !important; color:var(--ink-soft,rgba(26,24,22,.62)) !important; margin:0 0 10px !important;
}

/* Wrapper en ligne (pas en grille) */
.ps-multi-attr.woo-variation-swatches .variable-items-wrapper{
  display:flex !important; flex-wrap:wrap !important; gap:8px !important; grid-template-columns:none !important;
}
/* Swatch -> pill compacte */
.ps-multi-attr.woo-variation-swatches .variable-items-wrapper .variable-item{
  position:relative !important; width:auto !important; min-height:46px !important; height:auto !important;
  padding:11px 20px !important; border:1px solid rgba(26,24,22,.22) !important; border-radius:999px !important;
  background:#fff !important; box-shadow:none !important;
  display:inline-flex !important; align-items:center !important; justify-content:center !important; text-align:center !important;
}
.ps-multi-attr.woo-variation-swatches .variable-items-wrapper .variable-item.selected,
.ps-multi-attr.woo-variation-swatches .variable-items-wrapper .variable-item:hover{
  border-color:var(--ink,#1A1816) !important; box-shadow:none !important; background:var(--ink,#1A1816) !important;
}
.ps-multi-attr.woo-variation-swatches .variable-item-span{
  text-align:center !important; font-size:13.5px !important; font-weight:600 !important; color:var(--ink,#1A1816) !important;
}
.ps-multi-attr.woo-variation-swatches .variable-items-wrapper .variable-item.selected .variable-item-span,
.ps-multi-attr.woo-variation-swatches .variable-items-wrapper .variable-item:hover .variable-item-span{ color:var(--bone,#F5F1E8) !important; }
.ps-multi-attr .variable-item-contents{ width:auto !important; }

/* ╔══════════════════════════════════════════════════════════════╗
   ║ MIGRÉ depuis Customizer Additional CSS (2026-06-16)          ║
   ║ Source vidée après migration. Gérer ce CSS ici désormais.    ║
   ╚══════════════════════════════════════════════════════════════╝ */
.header-icn .nav-icon{
	 border: 1px solid rgba(26, 24, 22, 0.15) !important;
    border-radius: 50% !important;
}
.variations .label{
    padding-left: 20px !important;
}
.variations .value{
	  padding-left: 20px !important;
    padding-right: 20px !important;
}
.pp-acc-row{
    border-top: 1px solid rgba(26, 24, 22, 0.12) !important;
    border-left: none !important;
    border-right: none !important;
}
.stub-box{
	  width: 50%;
    margin-left: auto;
    margin-right: auto;
}
.about-cta {
	    display: inline-block;
    margin-top: 18px;
    padding: 14px 28px;
    background: var(--ink);
    color: var(--bone);
    border-radius: 999px;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    text-decoration: none;
}
.about-cta .a.cta:hover{    							background: #6B5320 !important;
    color: #fff !important;
}
.ct-row input, .ct-row select, .ct-row textarea{
	    width: 100%;
    padding: 11px 14px;
    border: 1px solid rgba(26, 24, 22, 0.15);
    border-radius: 10px;
    font-size: 13.5px;
    font-family: inherit;
    background: #fff;
}
.ct-submit{
	padding: 14px 32px;
    background: var(--ink);
    color: var(--bone);
    border-radius: 999px;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    cursor: pointer;
    transition: background 0.2s ease;
		border:none;
}

button.ct-submit:hover,
button.ct-submit:focus,
.ct-form button.ct-submit:hover,
.ct-form button.ct-submit:focus {
    background: #8a6a24 !important;
    color: #f4d06f !important;
    border-color: #8a6a24 !important;
}
.footer-col-header {
	   text-align: left;
    padding: 0 !important;
    color: #E5C56C !important;
	font-size:11px !important;
	
	
}
.s-video {
	   width: 72%;
    margin-left: auto;
    margin-right: auto;
	  height:647px;
}




:root{
    --theme-bg: #f5f1e8;
    --theme-color: #1A1816;
}
body.page:not(.home):not(.page-id-15):not(.single-product):not(.woocommerce-cart):not(.woocommerce-checkout):not(.woocommerce-account) .elementor > .e-con.e-con-full{
	max-width: 100%;
}

body.page-id-135.page:not(.home):not(.page-id-15):not(.single-product):not(.woocommerce-cart):not(.woocommerce-checkout):not(.woocommerce-account) .elementor.elementor-135  > .e-con.e-con-full,body.page-id-138.page:not(.home):not(.page-id-15):not(.single-product):not(.woocommerce-cart):not(.woocommerce-checkout):not(.woocommerce-account) .elementor.elementor-138  > .e-con.e-con-full,body.page-id-139.page:not(.home):not(.page-id-15):not(.single-product):not(.woocommerce-cart):not(.woocommerce-checkout):not(.woocommerce-account) .elementor.elementor-139  > .e-con.e-con-full,body.page-id-136.page:not(.home):not(.page-id-15):not(.single-product):not(.woocommerce-cart):not(.woocommerce-checkout):not(.woocommerce-account) .elementor.elementor-136  > .e-con.e-con-full,body.page-id-137.page:not(.home):not(.page-id-15):not(.single-product):not(.woocommerce-cart):not(.woocommerce-checkout):not(.woocommerce-account) .elementor.elementor-137  > .e-con.e-con-full,body.page-id-25.page:not(.home):not(.page-id-15):not(.single-product):not(.woocommerce-cart):not(.woocommerce-checkout):not(.woocommerce-account) .elementor.elementor-25  > .e-con.e-con-full,body.page-id-3.page:not(.home):not(.page-id-15):not(.single-product):not(.woocommerce-cart):not(.woocommerce-checkout):not(.woocommerce-account) .elementor.elementor-3  > .e-con.e-con-full{
	max-width:1240px !important;
}
body,
.products{
    background: var(--theme-bg) !important;
    color: var(--theme-color) !important;
}

h4,
h5,
h6,
.elementor-heading-title,
.product_title,
.entry-title{
    color: var(--theme-color) !important;
}
.researcher .topic{
	color:rgba(245,241,232,.8) !important;
}
.pp-acc-row-t{
	color:#1A1816 !important;
}
.subnew{
	color:#fff;
}.eyebrowNew {
	color:#E5C56C !important;
}
.footer-col a, .footer-bot a{
	margin-right:10px !important;
}
.product-mini-card .product-mini-img,.price-card .price-product-img{
	padding-bottom:0 !important;
}
.product-mini-card .product-mini-img img, .price-card .price-product-img img{
	height:100% !important;
	width:100% !important;
	object-fit:cover !important;
}
.outcomes-track .outcome-card .outcome-visual img{
	height:100% !important;
	
}
.price-card .price-product-img{
	overflow:hidden !important;
}
.ps-sec-prac-hero.elementor-element{
	padding-left:0 !important;
	padding-right:0 !important;
		
}
.woocommerce .woocommerce-MyAccount-navigation ul{
	list-style: none !important;
}
article.elementor-element ul, article.elementor-element ol{
	margin-left:25px !important;
}
.elementor-element-1feb1aff, .elementor-element-35b5e3ef, .elementor-element-5d7e33ea,.elementor-element-cc25edc5,.elementor-element-c69591e9{
	display:none !important;
}
@media screen and (max-width:767px) {
	.s-video{
		width: 100%;
    height: 336px;
	}
	.stub-box{
		width:100%;
	}
}
@media screen and (min-width:768px) and (max-width: 992px) {
		.s-video{
		width: 100%;
    height: 336px;
	}
	.stub-box{
		width:100%;
	}
}
.pp-rng-feats{
	    height: 163px !important;
}
.pp-rng-bot {
	width:100% !important;
	height:282px !important;
	margin:0 !important;
	padding-bottom:0 !important;
	margin-bottom: 10px !important;
}


.ps-sp-trust{
	justify-content: center !important;
}

.ps-multi-attr .variable-item-contents{
	width:auto !important;
}

        .single_variation .woocommerce-variation-description {
            display: none !important;
        }
 
        .woo-variation-swatches.ps-legacy-variation-cards .variable-items-wrapper {
            display: grid;
            grid-template-columns: repeat(2, minmax(0, 1fr));
            gap: 12px;
        }
 
        .woo-variation-swatches.ps-legacy-variation-cards .variable-items-wrapper .variable-item {
            position: relative !important;
            width: 100% !important;
            min-height: 125px !important;
            height: auto !important;
            padding: 14px !important;
            border: 1px solid #C9A84C !important;
            border-radius: 12px !important;
            background: #fffdf8 !important;
            box-shadow: none !important;
            display: flex !important;
            align-items: flex-start !important;
            justify-content: flex-start !important;
            text-align: left !important;
            overflow: visible !important;
        }
 
        .woo-variation-swatches.ps-legacy-variation-cards .variable-items-wrapper .variable-item.selected,
        .woo-variation-swatches.ps-legacy-variation-cards .variable-items-wrapper .variable-item:hover {
            border-color: #000 !important;
            box-shadow: 0 0 0 1px #000 !important;
        }
 
        .woo-variation-swatches.ps-legacy-variation-cards .variable-item-span {
            text-align: left !important;
            font-size: 14px !important;
            font-weight: 700 !important;
            line-height: 1.25 !important;
            color: #181818 !important;
					font-family: 'inter' !important;
        }
 
        .variation-card-month {
            display: block;
            margin-top: 6px;
            font-size: 11px;
            font-weight: 400;
            color: #1a1816a6;
					 font-family:'inter' !important;
        }
 
        .variation-card-price {
            display: block;
            margin-top: 12px;
            font-size: 18px;
            font-weight: 700;
            color: #1A1816;
            line-height: 1.2;
			font-family:'inter' !important;
        }
 
        .variation-card-badge {
            position: absolute;
            top: -12px;
            right: 14px;
            background: #d6b657;
            color: #111;
            font-size: 11px;
            font-weight: 700;
            padding: 4px 10px;
            border-radius: 20px;
            text-transform: uppercase;
            letter-spacing: 0.5px;
            line-height: 1;
            white-space: nowrap;
        }
 
        @media (max-width: 600px) {
          /*  .woo-variation-swatches .variable-items-wrapper {
                grid-template-columns: 2fr;
            }*/
 
            .variation-card-badge {
                top: -10px;
                right: 12px;
            }
        }
@media screen and (max-width:767px){
	.woo-variation-items-wrapper{
		padding-left:0 !important;
		padding-right:0 !important;
	}
	.formula-visual {
		width: 100% !important;
	}
}

.woocommerce-variation-price .price{
	display:none !important;
}
.elementor-product-variable .variations_form .label{
	display:none !important;
}
.woo-variation-items-wrapper{
	background:none !important;
	padding-bottom:0 !important;
}
.elementor-widget-woocommerce-product-price{
	display:none !important;
}

.formula-grid .formula-visual-title{
	color:#000 !important;
} 









/* ════════════════════════════════════════════════════════════════════
   Multi-attributs : prix de la variation visible + design pills affiné
   ════════════════════════════════════════════════════════════════════ */

/* Ré-afficher le prix de la combinaison choisie (caché par le système de cartes) */
.ps-multi-attr .woocommerce-variation-price .price,
.ps-multi-attr .single_variation .price{
  display:block !important;
  font-family:var(--font-serif,'Newsreader'),Georgia,serif !important;
  font-size:30px !important; font-weight:500 !important; color:var(--ink,#1A1816) !important;
  letter-spacing:-0.01em; margin:2px 0 14px !important; line-height:1.1 !important;
}
.ps-multi-attr .woocommerce-variation-price .price del{ opacity:.5; font-size:.7em; font-weight:400; margin-right:8px; }
.ps-multi-attr .woocommerce-variation-price .price ins{ text-decoration:none; }

/* Design pills affiné */
.ps-multi-attr.woo-variation-swatches .variable-items-wrapper{ gap:10px !important; margin-top:2px !important; }
.ps-multi-attr.woo-variation-swatches .variable-items-wrapper .variable-item{
  padding:12px 22px !important; min-height:48px !important;
  border:1.5px solid rgba(26,24,22,.16) !important; border-radius:999px !important;
  background:#fff !important; transition:border-color .2s, background .2s, color .2s, box-shadow .2s !important;
}
.ps-multi-attr.woo-variation-swatches .variable-items-wrapper .variable-item:hover{
  border-color:rgba(26,24,22,.45) !important; background:#fff !important;
}
.ps-multi-attr.woo-variation-swatches .variable-items-wrapper .variable-item.selected{
  background:var(--ink,#1A1816) !important; border-color:var(--ink,#1A1816) !important;
  box-shadow:0 4px 14px rgba(26,24,22,.18) !important;
}
.ps-multi-attr.woo-variation-swatches .variable-items-wrapper .variable-item.selected:hover{
  background:var(--ink,#1A1816) !important; border-color:var(--ink,#1A1816) !important;
}
.ps-multi-attr.woo-variation-swatches .variable-item-span{ font-size:14px !important; font-weight:600 !important; letter-spacing:.01em; }
.ps-multi-attr.woo-variation-swatches .variable-items-wrapper .variable-item.selected .variable-item-span{ color:var(--bone,#F5F1E8) !important; }

/* Espace entre les 2 sélecteurs */
.ps-multi-attr .variations tr + tr{ margin-top:20px !important; }

/* ════════════════════════════════════════════════════════════════════
   Single-attribute variants: visual cards with bottle image
   ════════════════════════════════════════════════════════════════════ */
.elementor-location-single .ps-sp-buycard form.variations_form.ps-visual-variation-form .woo-variation-items-wrapper{
  padding-left:0 !important;
  padding-right:0 !important;
}
.elementor-location-single .ps-sp-buycard form.variations_form.ps-visual-variation-form .ps-variant-group-label{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin:0 0 12px;
  font-size:11px;
  font-weight:700;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:rgba(26,24,22,.72);
}
.elementor-location-single .ps-sp-buycard form.variations_form.ps-visual-variation-form .ps-variant-group-label::after{
  content:"";
  flex:1 1 auto;
  height:1px;
  background:rgba(26,24,22,.1);
}
.elementor-location-single .ps-sp-buycard form.variations_form.ps-visual-variation-form .variable-items-wrapper.ps-visual-variation-grid{
  display:grid !important;
  grid-template-columns:repeat(2, minmax(0, 1fr)) !important;
  gap:12px !important;
  margin:0 !important;
  padding:0 !important;
  list-style:none !important;
}
.elementor-location-single .ps-sp-buycard form.variations_form.ps-visual-variation-form .variable-items-wrapper.ps-visual-variation-grid .variable-item{
  position:relative !important;
  width:100% !important;
  min-height:126px !important;
  height:auto !important;
  padding:16px !important;
  border:1px solid rgba(26,24,22,.14) !important;
  border-radius:16px !important;
  background:#fff !important;
  box-shadow:none !important;
  display:block !important;
  text-align:left !important;
  overflow:visible !important;
  transition:border-color .18s ease, box-shadow .18s ease, transform .18s ease, background .18s ease !important;
}
.elementor-location-single .ps-sp-buycard form.variations_form.ps-visual-variation-form .variable-items-wrapper.ps-visual-variation-grid .variable-item::after{
  content:"";
  position:absolute;
  top:14px;
  right:14px;
  width:18px;
  height:18px;
  border-radius:50%;
  border:1.5px solid rgba(26,24,22,.16);
  background:#fff;
  box-sizing:border-box;
}
.elementor-location-single .ps-sp-buycard form.variations_form.ps-visual-variation-form .variable-items-wrapper.ps-visual-variation-grid .variable-item:hover{
  border-color:rgba(26,24,22,.32) !important;
  box-shadow:0 10px 22px rgba(26,24,22,.06) !important;
  transform:translateY(-1px);
}
.elementor-location-single .ps-sp-buycard form.variations_form.ps-visual-variation-form .variable-items-wrapper.ps-visual-variation-grid .variable-item.selected,
.elementor-location-single .ps-sp-buycard form.variations_form.ps-visual-variation-form .variable-items-wrapper.ps-visual-variation-grid .variable-item[aria-checked="true"]{
  border-color:var(--ink,#1A1816) !important;
  background:#fffdfa !important;
  box-shadow:0 0 0 1.5px var(--ink,#1A1816), 0 12px 28px rgba(26,24,22,.1) !important;
}
.elementor-location-single .ps-sp-buycard form.variations_form.ps-visual-variation-form .variable-items-wrapper.ps-visual-variation-grid .variable-item.selected::after,
.elementor-location-single .ps-sp-buycard form.variations_form.ps-visual-variation-form .variable-items-wrapper.ps-visual-variation-grid .variable-item[aria-checked="true"]::after{
  border-color:var(--ink,#1A1816);
  background:var(--ink,#1A1816);
  box-shadow:inset 0 0 0 4px #fff;
}
.elementor-location-single .ps-sp-buycard form.variations_form.ps-visual-variation-form .variable-items-wrapper.ps-visual-variation-grid .variable-item.disabled,
.elementor-location-single .ps-sp-buycard form.variations_form.ps-visual-variation-form .variable-items-wrapper.ps-visual-variation-grid .variable-item.wvs-disabled{
  opacity:.42 !important;
  cursor:not-allowed !important;
  transform:none !important;
  box-shadow:none !important;
}
.elementor-location-single .ps-sp-buycard form.variations_form.ps-visual-variation-form .variable-item-contents{
  width:100% !important;
}
.elementor-location-single .ps-sp-buycard form.variations_form.ps-visual-variation-form .variable-item-span{
  display:block !important;
  width:100% !important;
  padding:0 !important;
  background:none !important;
  box-shadow:none !important;
  text-align:left !important;
  color:inherit !important;
  font-family:inherit !important;
}
.elementor-location-single .ps-sp-buycard form.variations_form.ps-visual-variation-form .variable-item-span.variable-item-span-button{
  font-size:0 !important;
  line-height:0 !important;
}
.elementor-location-single .ps-sp-buycard form.variations_form.ps-visual-variation-form .ps-variant-card{
  display:grid;
  grid-template-columns:minmax(0, 1fr) 44px;
  gap:12px;
  align-items:start;
  width:100%;
}
.elementor-location-single .ps-sp-buycard form.variations_form.ps-visual-variation-form .ps-variant-card.ps-variant-card--no-image{
  grid-template-columns:minmax(0, 1fr);
}
.elementor-location-single .ps-sp-buycard form.variations_form.ps-visual-variation-form .ps-variant-card__media{
  order:2;
  width:44px;
  height:44px;
  border-radius:12px;
  overflow:hidden;
  border:1px solid rgba(26,24,22,.08);
  background:#f7f3ea;
  display:flex;
  align-items:center;
  justify-content:center;
}
.elementor-location-single .ps-sp-buycard form.variations_form.ps-visual-variation-form .ps-variant-card__media img{
  width:100%;
  height:100%;
  object-fit:contain;
  padding:5px;
  display:block;
  mix-blend-mode:multiply;
}
.elementor-location-single .ps-sp-buycard form.variations_form.ps-visual-variation-form .ps-variant-card__body{
  order:1;
  display:block;
  min-width:0;
  padding-right:18px;
}
.elementor-location-single .ps-sp-buycard form.variations_form.ps-visual-variation-form .ps-variant-card__header{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:8px;
}
.elementor-location-single .ps-sp-buycard form.variations_form.ps-visual-variation-form .ps-variant-card__title-wrap{
  display:block;
  min-width:0;
}
.elementor-location-single .ps-sp-buycard form.variations_form.ps-visual-variation-form .ps-variant-card__title{
  display:block;
  font-size:14px !important;
  font-weight:700 !important;
  line-height:1.22 !important;
  letter-spacing:0 !important;
  color:var(--ink,#1A1816) !important;
}
.elementor-location-single .ps-sp-buycard form.variations_form.ps-visual-variation-form .ps-variant-card__subtitle{
  display:block;
  margin-top:4px;
  font-size:11.5px !important;
  font-weight:500 !important;
  line-height:1.4 !important;
  color:rgba(26,24,22,.62) !important;
}
.elementor-location-single .ps-sp-buycard form.variations_form.ps-visual-variation-form .ps-variant-card__badge{
  flex:0 0 auto;
  align-self:flex-start;
  padding:4px 8px;
  border-radius:999px;
  background:rgba(201,168,76,.16);
  color:var(--gold-deep,#9c7e2e) !important;
  font-size:10px !important;
  font-weight:700 !important;
  line-height:1.15 !important;
  letter-spacing:.06em !important;
  text-transform:uppercase;
  white-space:normal;
  text-align:right;
  max-width:86px;
}
.elementor-location-single .ps-sp-buycard form.variations_form.ps-visual-variation-form .variation-card-month,
.elementor-location-single .ps-sp-buycard form.variations_form.ps-visual-variation-form .variation-card-price,
.elementor-location-single .ps-sp-buycard form.variations_form.ps-visual-variation-form .variation-card-badge{
  display:none !important;
}
.elementor-location-single .ps-sp-buycard form.variations_form.ps-visual-variation-form .ps-variant-card__footer{
  display:flex;
  align-items:baseline;
  flex-wrap:wrap;
  gap:8px;
  margin-top:10px;
}
.elementor-location-single .ps-sp-buycard form.variations_form.ps-visual-variation-form .ps-variant-card__price{
  font-size:18px !important;
  font-weight:700 !important;
  line-height:1.1 !important;
  color:var(--ink,#1A1816) !important;
}
.elementor-location-single .ps-sp-buycard form.variations_form.ps-visual-variation-form .ps-variant-card__compare{
  font-size:12px !important;
  font-weight:500 !important;
  color:rgba(26,24,22,.42) !important;
  text-decoration:line-through;
}
.elementor-location-single .ps-sp-buycard form.variations_form.ps-visual-variation-form .reset_variations{
  margin-top:12px !important;
  font-size:12px !important;
  font-weight:600 !important;
  color:rgba(26,24,22,.62) !important;
}
/* Raw swatch fallback: keep variant labels visible and usable if the richer card
   enhancement does not attach on a product page. */
.elementor-location-single .ps-sp-buycard form.variations_form:not(.ps-visual-variation-form) .label,
.elementor-location-single .ps-sp-buycard form.variations_form:not(.ps-visual-variation-form) .label label{
  display:block !important;
}
.elementor-location-single .ps-sp-buycard form.variations_form:not(.ps-visual-variation-form) .label label{
  margin:0 0 12px !important;
  font-size:11px !important;
  font-weight:700 !important;
  letter-spacing:.12em !important;
  text-transform:uppercase !important;
  color:rgba(26,24,22,.72) !important;
}
.elementor-location-single .ps-sp-buycard form.variations_form:not(.ps-visual-variation-form) .variable-items-wrapper{
  display:flex !important;
  flex-wrap:wrap !important;
  gap:10px !important;
  margin:0 0 12px !important;
  padding:0 !important;
  list-style:none !important;
}
.elementor-location-single .ps-sp-buycard form.variations_form:not(.ps-visual-variation-form) .variable-item{
  width:auto !important;
  min-width:0 !important;
  min-height:48px !important;
  padding:12px 18px !important;
  border:1.5px solid rgba(26,24,22,.16) !important;
  border-radius:999px !important;
  background:#fff !important;
  box-shadow:none !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  text-align:center !important;
  transition:border-color .18s ease, background .18s ease, box-shadow .18s ease, color .18s ease !important;
}
.elementor-location-single .ps-sp-buycard form.variations_form:not(.ps-visual-variation-form) .variable-item:hover{
  border-color:rgba(26,24,22,.38) !important;
}
.elementor-location-single .ps-sp-buycard form.variations_form:not(.ps-visual-variation-form) .variable-item.selected,
.elementor-location-single .ps-sp-buycard form.variations_form:not(.ps-visual-variation-form) .variable-item[aria-checked="true"]{
  background:var(--ink,#1A1816) !important;
  border-color:var(--ink,#1A1816) !important;
  box-shadow:0 6px 16px rgba(26,24,22,.14) !important;
}
.elementor-location-single .ps-sp-buycard form.variations_form:not(.ps-visual-variation-form) .variable-item .variable-item-contents{
  width:auto !important;
}
.elementor-location-single .ps-sp-buycard form.variations_form:not(.ps-visual-variation-form) .variable-item .variable-item-span,
.elementor-location-single .ps-sp-buycard form.variations_form:not(.ps-visual-variation-form) .variable-item .variable-item-span.variable-item-span-button{
  display:block !important;
  width:auto !important;
  font-size:14px !important;
  line-height:1.25 !important;
  font-weight:600 !important;
  letter-spacing:.01em !important;
  color:var(--ink,#1A1816) !important;
  background:none !important;
  box-shadow:none !important;
}
.elementor-location-single .ps-sp-buycard form.variations_form:not(.ps-visual-variation-form) .variable-item.selected .variable-item-span,
.elementor-location-single .ps-sp-buycard form.variations_form:not(.ps-visual-variation-form) .variable-item[aria-checked="true"] .variable-item-span{
  color:var(--bone,#F5F1E8) !important;
}
.elementor-location-single .ps-sp-buycard form.variations_form.ps-variation-selection-pending .variable-items-wrapper{
  animation:psVariationSelectionPulse .22s ease-in-out 2;
}
@keyframes psVariationSelectionPulse {
  0% { transform:translateX(0); }
  25% { transform:translateX(-2px); }
  75% { transform:translateX(2px); }
  100% { transform:translateX(0); }
}
@media (max-width: 767px) {
  .elementor-location-single .ps-sp-buycard form.variations_form.ps-visual-variation-form .variable-items-wrapper.ps-visual-variation-grid{
    grid-template-columns:1fr !important;
  }
  .elementor-location-single .ps-sp-buycard form.variations_form.ps-visual-variation-form .variable-items-wrapper.ps-visual-variation-grid .variable-item{
    min-height:116px !important;
  }
  .elementor-location-single .ps-sp-buycard form.variations_form.ps-visual-variation-form .ps-variant-card{
    grid-template-columns:minmax(0, 1fr) 40px;
    gap:12px;
  }
  .elementor-location-single .ps-sp-buycard form.variations_form.ps-visual-variation-form .ps-variant-card__media{
    width:40px;
    height:40px;
  }
  .elementor-location-single .ps-sp-buycard form.variations_form.ps-visual-variation-form .ps-variant-card__header{
    padding-right:18px;
  }
  .elementor-location-single .ps-sp-buycard form.variations_form:not(.ps-visual-variation-form) .variable-items-wrapper{
    gap:8px !important;
  }
}

/* Headline cleanup: keep the serif tone, but remove italic from actual product-page titles. */
.pp-hero-info h1,
.pp-acc-title,
.pp-modal-title,
.pp-ps-title,
.pp-ps-side-title,
.pp-dv-title,
.pp-cmp-title,
.pp-rng-title,
.pp-rv-title,
.pp-tg-title,
.pp-pw-title,
.pp-qa-left h2,
.lqp-info h1,
.lqp-desc h2,
.lqp-reviews-title,
.lqp-faq h2,
.elementor-location-single .ps-sp-related > .related > h2,
.elementor-location-single .ps-sp-related .elementor-widget-container > h2,
.elementor-location-single .ps-sp-summary .product_title,
.elementor-location-single .ps-sp-tabs .woocommerce-Tabs-panel h2,
.elementor-location-single .ps-sp-content h2:not([class]),
.elementor-location-single .ps-sp-content h3:not([class]) {
  font-style: normal !important;
}

/* Fallback hardening: apply compact card sizing directly on injected variant-card
   elements too, so old swatch rules cannot keep the bottle thumbnail oversized. */
.woo-variation-swatches .variable-item .variable-item-contents{
  width:100% !important;
}
.woo-variation-swatches .variable-item .variable-item-span{
  width:100% !important;
}
.woo-variation-swatches form.variations_form.ps-visual-variation-form .variable-item .variable-item-span.variable-item-span-button{
  font-size:0 !important;
  line-height:0 !important;
}
.woo-variation-swatches form.variations_form:not(.ps-visual-variation-form) .variable-item .variable-item-span.variable-item-span-button{
  font-size:14px !important;
  line-height:1.25 !important;
}
.woo-variation-swatches .variable-item .ps-variant-card{
  display:grid !important;
  grid-template-columns:minmax(0, 1fr) 44px !important;
  gap:12px !important;
  align-items:start !important;
  width:100% !important;
}
.woo-variation-swatches .variable-item .ps-variant-card__media{
  order:2 !important;
  width:44px !important;
  height:44px !important;
  border-radius:12px !important;
  flex:0 0 44px !important;
}
.woo-variation-swatches .variable-item .ps-variant-card__media img{
  width:100% !important;
  height:100% !important;
  padding:5px !important;
  object-fit:contain !important;
}
.woo-variation-swatches .variable-item .ps-variant-card__body{
  order:1 !important;
  min-width:0 !important;
  padding-right:18px !important;
}
.woo-variation-swatches .variable-item .ps-variant-card__title{
  font-size:14px !important;
  line-height:1.22 !important;
}
.woo-variation-swatches .variable-item .ps-variant-card__subtitle{
  font-size:11.5px !important;
  line-height:1.4 !important;
}
.woo-variation-swatches .variable-item .ps-variant-card__badge{
  max-width:86px !important;
  white-space:normal !important;
}
.woo-variation-swatches .variable-item .variation-card-month,
.woo-variation-swatches .variable-item .variation-card-price,
.woo-variation-swatches .variable-item .variation-card-badge{
  display:none !important;
}
.ps-sp-buycard .variation-card-month,
.ps-sp-buycard .variation-card-price,
.ps-sp-buycard .variation-card-badge{
  display:none !important;
}
@media (max-width: 767px) {
  .woo-variation-swatches .variable-item .ps-variant-card{
    grid-template-columns:minmax(0, 1fr) 40px !important;
  }
  .woo-variation-swatches .variable-item .ps-variant-card__media{
    width:40px !important;
    height:40px !important;
    flex-basis:40px !important;
  }
}

/* Final fallback hardening: keep raw swatch button text visible even if theme/plugin
   styles load later than the main product stylesheet. */
body.single-product.woo-variation-swatches .elementor.elementor-location-single .ps-sp-buycard form.variations_form:not(.ps-visual-variation-form) .variable-items-wrapper .variable-item.button-variable-item{
  min-width:96px !important;
  width:auto !important;
  padding:12px 16px !important;
}
body.single-product.woo-variation-swatches .elementor.elementor-location-single .ps-sp-buycard form.variations_form:not(.ps-visual-variation-form) .variable-items-wrapper .variable-item.button-variable-item .variable-item-contents{
  width:auto !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
}
body.single-product.woo-variation-swatches .elementor.elementor-location-single .ps-sp-buycard form.variations_form:not(.ps-visual-variation-form) .variable-items-wrapper .variable-item.button-variable-item .variable-item-span.variable-item-span-button{
  display:inline !important;
  width:auto !important;
  height:auto !important;
  font-size:14px !important;
  line-height:1.25 !important;
  font-weight:600 !important;
  white-space:nowrap !important;
  opacity:1 !important;
  color:var(--ink,#1A1816) !important;
}
body.single-product.woo-variation-swatches .elementor.elementor-location-single .ps-sp-buycard form.variations_form:not(.ps-visual-variation-form) .variable-items-wrapper .variable-item.button-variable-item.selected .variable-item-span.variable-item-span-button,
body.single-product.woo-variation-swatches .elementor.elementor-location-single .ps-sp-buycard form.variations_form:not(.ps-visual-variation-form) .variable-items-wrapper .variable-item.button-variable-item[aria-checked="true"] .variable-item-span.variable-item-span-button{
  color:var(--bone,#F5F1E8) !important;
}

/* ════════════════════════════════════════════════════════════════════
   Core price fix 2026-07-14 : en multi-attributs, afficher la fourchette
   de prix au chargement (le widget est masqué globalement car les produits
   mono-attribut affichent les prix sur les cartes). Masquée automatiquement
   dès que le prix exact de la variation choisie est injecté par WooCommerce.
   ════════════════════════════════════════════════════════════════════ */
.ps-multi-attr .elementor-widget-woocommerce-product-price{
  display:block !important;
}
.ps-multi-attr .elementor-widget-woocommerce-product-price .price{
  display:block !important;
  font-family:var(--font-serif,'Newsreader'),Georgia,serif !important;
  font-size:30px !important; font-weight:500 !important; color:var(--ink,#1A1816) !important;
  letter-spacing:-0.01em; margin:2px 0 14px !important; line-height:1.1 !important;
}
.ps-multi-attr:has(.single_variation .price) .elementor-widget-woocommerce-product-price{
  display:none !important;
}

/* Généralisation : tout produit VARIABLE affiche la fourchette de prix tant que
   le JS n'a pas peint le prix précis (cartes ou variation). Produits simples non concernés. */
.product-type-variable .elementor-widget-woocommerce-product-price{ display:block !important; }
.product-type-variable .elementor-widget-woocommerce-product-price .price{
  display:block !important;
  font-family:var(--font-serif,'Newsreader'),Georgia,serif !important;
  font-size:30px !important; font-weight:500 !important; color:var(--ink,#1A1816) !important;
  letter-spacing:-0.01em; margin:2px 0 14px !important; line-height:1.1 !important;
}
.product-type-variable:has(.single_variation .price) .elementor-widget-woocommerce-product-price,
.product-type-variable:has(.ps-vc-price) .elementor-widget-woocommerce-product-price{ display:none !important; }

/* Eyebrow / fil d ariane au-dessus du titre produit : masque (demande user 2026-07-14) */
body.single-product .woocommerce-breadcrumb{ display:none !important; }

/* 2026-07-16 — Sticky add-to-cart masqué quand un modal produit est ouvert
   (il recouvrait le bas des modals Ingredients/Benefits/COA). */
body:has(.pp-modal-ov.open) .ps-sticky-atc { display: none !important; }

/* 2026-07-16 — Pairs-with : l'image remplit son conteneur sans déformation. */
.pp-pw img { width: 100% !important; height: 100% !important; object-fit: contain !important; display: block; }

/* 2026-07-16 v2 : sticky ATC masqué via classe body (robuste au système de modal) */
body.ps-modal-open .ps-sticky-atc { display: none !important; }

/* 2026-07-17 — pairs-with mobile : la colonne texte était écrasée (51px) entre
   l'image et le bouton -> texte flexible, bouton pleine largeur en dessous. */
@media (max-width: 767px) {
  .pp-pw-card { flex-wrap: wrap !important; row-gap: 14px !important; align-items: center !important; }
  .pp-pw-card .pp-pw-info { flex: 1 1 0 !important; min-width: 0 !important; }
  .pp-pw-card .pp-pw-btn { flex: 1 1 100% !important; margin-top: 2px; }
}

/* 2026-07-17 — CLS : les images de galerie (exclues du lazyload Makfast pour
   corriger les slides blanches) ont perdu sa réservation d'espace -> on
   réserve nous-mêmes le ratio du visuel principal (1254x1254). */
.ps-sp-gallery .woocommerce-product-gallery__wrapper { aspect-ratio: 1 / 1; overflow: hidden; }
.ps-sp-gallery .woocommerce-product-gallery__image img {
  width: 100%; height: auto; aspect-ratio: 1 / 1; object-fit: contain;
}

/* 2026-07-17 — CLS v2 : réserver l'espace des blocs injectés en async dans la
   buybox (bouton Google Pay ; prix+stock de la variante par défaut). */
.ps-sp-buycard .fkwcsq_express_btn,
.ps-sp-buycard .fkwcsq_hidden_wrap { min-height: 46px; }
.ps-sp-buycard .single_variation_wrap { min-height: 96px; }

/* 2026-07-17 — CLS v3 (racine) : images eager = 6 slides empilées (~4300px)
   avant l'init flexslider, puis repli -> saut géant. Pré-init (wrapper enfant
   direct de la galerie), on ne montre que la 1re slide dans un carré réservé.
/* Product Gallery Slide Sizing & Display (all slides visible to slider) */
body.single-product .woocommerce-product-gallery .woocommerce-product-gallery__image {
  display: block !important;
  opacity: 1 !important;
  visibility: visible !important;
  width: 100% !important;
  box-sizing: border-box !important;
}

body.single-product .woocommerce-product-gallery .woocommerce-product-gallery__image img {
  width: 100% !important;
  height: auto !important;
  aspect-ratio: 1 / 1 !important;
  object-fit: contain !important;
  display: block !important;
}

/* ═══ Template 8419 (Stack landing, modèle Zorla) — layout scopé ═══ */
.elementor-8419 .pp-inner { max-width: 1200px !important; width: 100% !important; margin-left: auto !important; margin-right: auto !important; }
/* Grilles auto-adaptatives (2 ou 3 col selon nb d'enfants), 1 col en mobile */
.elementor-8419 .pp-grid { display: grid !important; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)) !important; gap: 20px !important; width: 100% !important; align-items: stretch !important; }
.elementor-8419 .pp-grid2 { display: grid !important; grid-template-columns: 1fr 1fr !important; gap: 12px !important; width: 100% !important; }
.elementor-8419 .pp-grid > *, .elementor-8419 .pp-grid2 > * { width: 100% !important; min-width: 0 !important; max-width: 100% !important; flex: none !important; }
@media (max-width: 640px) { .elementor-8419 .pp-grid, .elementor-8419 .pp-grid2 { grid-template-columns: 1fr !important; } }
/* Cartes : remplir la hauteur de la cellule */
.elementor-8419 .pp-grid > .e-con, .elementor-8419 .pp-grid > .e-con-inner { height: 100% !important; }
/* Texte clair sur fonds foncés (études / bannière / CTA) */
.elementor-8419 .pp-dark .elementor-heading-title,
.elementor-8419 .pp-dark .elementor-widget-text-editor,
.elementor-8419 .pp-dark p { color: #F5F1E8 !important; }
/* Fallback : tout container vert foncé */
.elementor-8419 .e-con[style*="1f3a2e"] .elementor-heading-title,
.elementor-8419 .e-con[style*="1f3a2e"] p { color: #F5F1E8 !important; }
/* Hero : galerie et buybox alignées en haut, image galerie qui remplit */
.elementor-8419 .woocommerce-product-gallery { width: 100% !important; }
.elementor-8419 .woocommerce-product-gallery img { width: 100% !important; height: auto !important; }
/* Compteurs & icon-box centrés */
.elementor-8419 .elementor-widget-counter, .elementor-8419 .elementor-widget-icon-box { text-align: center; }

/* Template 8419 — hero 2 colonnes desktop */
.elementor-8419 .pp-hero { display: grid !important; grid-template-columns: 1fr 1fr !important; gap: 40px !important; align-items: start !important; }
.elementor-8419 .pp-hero > * { width: 100% !important; min-width: 0 !important; flex: none !important; max-width: 100% !important; }
@media (max-width: 900px) { .elementor-8419 .pp-hero { grid-template-columns: 1fr !important; } }

/* ═══════════════════════════════════════════════════════════════════════
   TEMPLATE 8419 — Design system premium (scopé, éditorial supplément)
   ═══════════════════════════════════════════════════════════════════════ */
.elementor-8419 { --g:#09B29C; --deep:#1f3a2e; --bone:#F5F1E8; --ink:#1A1816; --gold:#C9A84C; --line:rgba(26,24,22,.08); }

/* ---- Titres : serif éditorial, hiérarchie forte ---- */
.elementor-8419 .elementor-widget-heading .elementor-heading-title{
  font-family:'Newsreader',Georgia,serif !important; font-weight:500 !important;
  letter-spacing:-.015em !important; line-height:1.12 !important; color:var(--ink);
}
.elementor-8419 .elementor-widget-heading.elementor-widget-heading .elementor-heading-title{ margin:0; }
/* Titres de section (h2) : grands + centrés + respirer */
.elementor-8419 .elementor-element > .elementor-widget-container > .elementor-heading-title,
.elementor-8419 h2.elementor-heading-title{ font-size:clamp(28px,3.4vw,44px) !important; }
/* sous-titres (text-editor juste après un h2) : gris doux, plus grand */
.elementor-8419 .elementor-widget-text-editor{ color:#5a554f; font-size:16px; line-height:1.65; }
.elementor-8419 .elementor-widget-text-editor p{ margin:0; }

/* ---- Rythme des sections : padding généreux, fonds alternés doux ---- */
.elementor-8419 > .elementor-element{ padding-top:clamp(48px,6vw,88px) !important; padding-bottom:clamp(48px,6vw,88px) !important; }

/* ---- Icon-box (bénéfices) : icône cerclée vert, carte aérée ---- */
.elementor-8419 .elementor-widget-icon-box .elementor-icon-box-wrapper{ text-align:left; display:flex; gap:14px; align-items:flex-start; }
.elementor-8419 .elementor-widget-icon-box .elementor-icon-box-icon{ margin:0 !important; flex:0 0 auto; }
.elementor-8419 .elementor-widget-icon-box .elementor-icon{
  width:46px; height:46px; display:flex; align-items:center; justify-content:center;
  background:rgba(9,178,156,.12); border-radius:50%; color:var(--g); font-size:20px;
}
.elementor-8419 .elementor-widget-icon-box .elementor-icon-box-title{ font-family:'Newsreader',serif; font-size:19px !important; font-weight:500; margin:2px 0 6px; color:var(--ink); }
.elementor-8419 .elementor-widget-icon-box .elementor-icon-box-description{ font-size:14.5px; line-height:1.55; color:#6a655f; }

/* ---- Icon-list (checks) : espacé, coché vert ---- */
.elementor-8419 .elementor-widget-icon-list .elementor-icon-list-item{ margin-bottom:9px !important; align-items:flex-start; }
.elementor-8419 .elementor-widget-icon-list .elementor-icon-list-icon{ color:var(--g); padding-top:3px; }
.elementor-8419 .elementor-widget-icon-list .elementor-icon-list-text{ font-size:14.5px; color:#3d3a36; line-height:1.5; }
/* checks inline (badges sous le titre) → pilules */
.elementor-8419 .elementor-widget-icon-list .elementor-inline-items .elementor-icon-list-item{
  background:rgba(9,178,156,.08); border:1px solid rgba(9,178,156,.22); border-radius:999px; padding:5px 12px !important; margin-right:8px; }

/* ---- Boutons : pilule, hover lift ---- */
.elementor-8419 .elementor-widget-button .elementor-button{
  border-radius:999px !important; padding:15px 32px !important; font-family:'Manrope',sans-serif;
  font-weight:600 !important; letter-spacing:.02em; font-size:14px; text-transform:none;
  transition:transform .18s ease, box-shadow .18s ease; box-shadow:0 6px 18px rgba(26,24,22,.12); }
.elementor-8419 .elementor-widget-button .elementor-button:hover{ transform:translateY(-2px); box-shadow:0 12px 28px rgba(26,24,22,.18); }

/* ---- Compteurs : chiffres serif géants, vert ---- */
.elementor-8419 .elementor-widget-counter .elementor-counter-number-wrapper{
  font-family:'Newsreader',serif !important; font-size:clamp(46px,6vw,68px) !important; font-weight:500; color:var(--g); line-height:1; }
.elementor-8419 .elementor-widget-counter .elementor-counter-title{ font-family:'Manrope',sans-serif; font-size:14px; color:#6a655f; margin-top:10px; font-weight:500; }

/* ---- Cartes (conteneurs à fond) : ombre douce, radius, hover ---- */
.elementor-8419 .e-con.e-child[style*="background-color"]{ border-radius:20px !important; transition:transform .2s ease, box-shadow .2s ease; }
.elementor-8419 .e-con.e-child[style*="background-color:#FFFFFF"],
.elementor-8419 .e-con.e-child[style*="background-color:#ffffff"]{ box-shadow:0 10px 30px rgba(26,24,22,.06); border:1px solid var(--line); }
/* cartes vertes foncées (études/CTA) : texte bone + accent or sur les boutons */
.elementor-8419 .e-con[style*="1f3a2e"] .elementor-heading-title,
.elementor-8419 .e-con[style*="1f3a2e"] .elementor-widget-text-editor,
.elementor-8419 .e-con[style*="1f3a2e"] p{ color:var(--bone) !important; }
.elementor-8419 .e-con[style*="1f3a2e"] .elementor-button{ background:var(--gold) !important; color:var(--deep) !important; }

/* ---- Accordéons : lignes fines, titres serif, + doux ---- */
.elementor-8419 .e-n-accordion-item{ border-bottom:1px solid var(--line); }
.elementor-8419 .e-n-accordion-item-title{ font-family:'Newsreader',serif !important; font-size:18px !important; font-weight:500; padding:18px 4px !important; color:var(--ink); }

/* ---- Onglets : nav épurée, soulignée vert ---- */
.elementor-8419 .e-n-tabs-heading .e-n-tab-title{ font-family:'Manrope',sans-serif; font-weight:600; font-size:15px; color:#6a655f; padding:14px 20px !important; }
.elementor-8419 .e-n-tabs-heading .e-n-tab-title[aria-selected="true"]{ color:var(--ink); border-bottom:2px solid var(--g); }

/* ---- Témoignages : citation éditoriale ---- */
.elementor-8419 .elementor-widget-testimonial .elementor-testimonial-content{ font-family:'Newsreader',serif; font-style:italic; font-size:20px; line-height:1.5; color:var(--ink); }
.elementor-8419 .elementor-widget-testimonial .elementor-testimonial-name{ color:var(--g); font-weight:600; }

/* ---- Galerie hero : radius + ombre douce ---- */
.elementor-8419 .woocommerce-product-gallery__image img{ border-radius:20px; box-shadow:0 20px 50px rgba(26,24,22,.08); }

/* ---- Notice bar : plus fine, lettrage soigné ---- */
.elementor-8419 > .elementor-element:first-child{ padding-top:16px !important; padding-bottom:16px !important; }

/* ---- Prix : serif imposant ---- */
.elementor-8419 .elementor-widget-woocommerce-product-price .price{ font-family:'Newsreader',serif !important; font-size:30px !important; color:var(--ink); }

/* ---- Buybox titre produit dynamique : très grand ---- */
.elementor-8419 .ps-hero .elementor-widget-heading:first-child .elementor-heading-title,
.elementor-8419 h1.elementor-heading-title{ font-size:clamp(30px,4vw,44px) !important; line-height:1.08 !important; }

/* ===== COUCHE BUNDLES PREVIEW (2026-07-22) — badge d'economie en vert =====
   Ne cible QUE .ps-variant-card__badge--save, pose par le JS uniquement quand le
   token contient "save". Les flags editoriaux ("Best Value" des fiches live)
   n'ont pas cette classe => ils restent or, rendu live strictement inchange. */
.elementor-location-single .ps-sp-buycard form.variations_form.ps-visual-variation-form .ps-variant-card__badge--save,
.woo-variation-swatches .variable-item .ps-variant-card__badge--save{
  background:rgba(9,178,148,.14) !important;
  color:#07806B !important;
}

/* ===== COUCHE PREVIEW BUNDLES #8676 (2026-07-22) — grille d'indices visuels =====
   Scopee :is(.elementor-8676, .elementor-106, .elementor-772, .elementor-773) : la fiche live (.elementor-106) garde ses 6 mots courts
   et sa grille d'origine, strictement inchangee. */
:is(.elementor-8676, .elementor-106, .elementor-772, .elementor-773) .pp-bf-grid{
  display:grid !important;
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  gap:14px 22px !important;
  align-items:start !important;
}
:is(.elementor-8676, .elementor-106, .elementor-772, .elementor-773) .pp-bf-cell{
  display:flex !important;
  flex-direction:row !important;
  align-items:flex-start !important;
  gap:10px !important;
  text-align:left !important;
  min-width:0 !important;
}
:is(.elementor-8676, .elementor-106, .elementor-772, .elementor-773) .pp-bf-ico{
  flex:0 0 20px !important;
  width:20px !important;
  height:20px !important;
  margin:1px 0 0 !important;
  color:#09B29C !important;
}
:is(.elementor-8676, .elementor-106, .elementor-772, .elementor-773) .pp-bf-ico svg{ width:20px !important; height:20px !important; }
:is(.elementor-8676, .elementor-106, .elementor-772, .elementor-773) .pp-bf-label{
  white-space:normal !important;
  font-size:13.5px !important;
  line-height:1.35 !important;
  font-weight:500 !important;
  letter-spacing:0 !important;
  text-transform:none !important;
  min-width:0 !important;
}
@media (max-width:600px){
  :is(.elementor-8676, .elementor-106, .elementor-772, .elementor-773) .pp-bf-grid{ grid-template-columns:minmax(0,1fr) !important; }
}

/* ===== COUCHE PREVIEW #8676 (2026-07-22) — cartes bundles en mobile =====
   Probleme corrige : .ps-variant-card__header est un flex qui pose titre et badge
   COTE A COTE quelle que soit la largeur. Sous ~400px il ne restait que ~57px au
   titre => cassure mot par mot puis chevauchement avec le badge.
   Correctif : sous 900px le header repasse en bloc (titre pleine largeur, badge
   dessous). Scope :is(.elementor-8676, .elementor-106, .elementor-772, .elementor-773) => fiches live intactes. */
@media (max-width:900px){
  :is(.elementor-8676, .elementor-106, .elementor-772, .elementor-773) .ps-variant-card__header{
    display:block !important;
  }
  :is(.elementor-8676, .elementor-106, .elementor-772, .elementor-773) .ps-variant-card__title-wrap{
    display:block !important;
    width:100% !important;
  }
  :is(.elementor-8676, .elementor-106, .elementor-772, .elementor-773) .ps-variant-card__title{
    font-size:13.5px !important;
    line-height:1.25 !important;
    white-space:normal !important;
    overflow-wrap:break-word !important;
  }
  :is(.elementor-8676, .elementor-106, .elementor-772, .elementor-773) .ps-variant-card__subtitle{
    white-space:normal !important;
  }
  :is(.elementor-8676, .elementor-106, .elementor-772, .elementor-773) .ps-variant-card__badge{
    display:inline-block !important;
    max-width:none !important;
    width:auto !important;
    margin-top:6px !important;
    text-align:left !important;
    white-space:nowrap !important;
  }
}

/* Une carte par ligne sur telephone : evite les colonnes de ~170px qui compriment tout. */
@media (max-width:600px){
  :is(.elementor-8676, .elementor-106, .elementor-772, .elementor-773) .variable-items-wrapper{
    grid-template-columns:minmax(0,1fr) !important;
  }
  :is(.elementor-8676, .elementor-106, .elementor-772, .elementor-773) .ps-variant-card__ribbon{
    top:-8px !important;
    right:10px !important;
    font-size:9px !important;
  }
}

/* Pile de flacons : le visuel ne doit jamais ecraser le texte. */
:is(.elementor-8676, .elementor-106, .elementor-772, .elementor-773) .ps-variant-card__media--stack{
  pointer-events:none;
}
:is(.elementor-8676, .elementor-106, .elementor-772, .elementor-773) .ps-variant-card__bottle img{
  max-width:100% !important;
  height:100% !important;
}

/* ===== COUCHE PREVIEW #8672 (2026-07-22) — barre collante mobile =====
   .ps-sticky-atc est un enfant direct de <body> (hors :is(.elementor-8676, .elementor-106, .elementor-772, .elementor-773)) : on scope
   donc par body.postid-8672 pour ne viser QUE le produit preview.
   Probleme : .ps-variant-pills est en flex-wrap:nowrap / overflow-x:visible ; avec
   les libelles de bundles ("Buy 3 Get 2 Free") la rangee faisait 389px pour 375px
   de viewport => debordement horizontal de la page.
   Correctif : la rangee devient scrollable horizontalement (scrollbar masquee),
   la barre clippe le reste. Hauteur de barre inchangee. */
body.postid-8672 .ps-sticky-atc{
  overflow-x:clip !important;
  max-width:100vw !important;
}
body.postid-8672 .ps-sticky-atc .ps-variant-pills{
  min-width:0 !important;
  max-width:100% !important;
  overflow-x:auto !important;
  -webkit-overflow-scrolling:touch !important;
  scrollbar-width:none !important;
  scroll-snap-type:x proximity !important;
}
body.postid-8672 .ps-sticky-atc .ps-variant-pills::-webkit-scrollbar{
  display:none !important;
}
body.postid-8672 .ps-sticky-atc .ps-variant-pill{
  flex:0 0 auto !important;
  scroll-snap-align:start !important;
  white-space:nowrap !important;
}

/* ===== COUCHE PREVIEW #8676 (2026-07-22) — pile de flacons, correctif d'affichage =====
   Les flacons etaient invisibles : le conteneur portait .ps-variant-card__media, donc
   .woo-variation-swatches .variable-item .ps-variant-card__media{width:44px!important;
   height:44px!important} (40px sous 767px) l'enfermait dans une cage qui rognait les
   3 flacons. Le conteneur s'appelle desormais .ps-variant-card__stack (hors de ces
   regles) et TOUTES les tailles sont pilotees ici, avec une specificite (0,4,0)
   superieure aux regles d'origine (0,3,0). Scope :is(.elementor-8676, .elementor-106, .elementor-772, .elementor-773) => live intact. */

/* Colonne visuelle elargie uniquement pour les cartes multi-flacons */
:is(.elementor-8676, .elementor-106, .elementor-772, .elementor-773) .woo-variation-swatches .variable-item .ps-variant-card--multi[data-bottles="2"]{
  grid-template-columns:minmax(0,1fr) 53px !important;
}
:is(.elementor-8676, .elementor-106, .elementor-772, .elementor-773) .woo-variation-swatches .variable-item .ps-variant-card--multi[data-bottles="3"]{
  grid-template-columns:minmax(0,1fr) 70px !important;
}

:is(.elementor-8676, .elementor-106, .elementor-772, .elementor-773) .ps-variant-card__stack{
  order:2 !important;
  position:relative !important;
  display:block !important;
  height:44px !important;
  overflow:visible !important;
  flex:0 0 auto !important;
}
:is(.elementor-8676, .elementor-106, .elementor-772, .elementor-773) .ps-variant-card__stack[data-bottles="2"]{ width:53px !important; }
:is(.elementor-8676, .elementor-106, .elementor-772, .elementor-773) .ps-variant-card__stack[data-bottles="3"]{ width:70px !important; }

:is(.elementor-8676, .elementor-106, .elementor-772, .elementor-773) .ps-variant-card__bottle{
  position:absolute !important;
  top:0 !important;
  width:36px !important;
  height:44px !important;
  border-radius:10px !important;
  overflow:hidden !important;
  border:1px solid rgba(26,24,22,.08) !important;
  background:#f7f3ea !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  box-shadow:-3px 0 6px rgba(26,24,22,.12) !important;
}
/* Eventail : le flacon le plus a droite passe devant, on lit la quantite d'un coup d'oeil */
:is(.elementor-8676, .elementor-106, .elementor-772, .elementor-773) .ps-variant-card__bottle:nth-child(1){ left:0  !important; z-index:1 !important; }
:is(.elementor-8676, .elementor-106, .elementor-772, .elementor-773) .ps-variant-card__bottle:nth-child(2){ left:17px !important; z-index:2 !important; }
:is(.elementor-8676, .elementor-106, .elementor-772, .elementor-773) .ps-variant-card__bottle:nth-child(3){ left:34px !important; z-index:3 !important; }

:is(.elementor-8676, .elementor-106, .elementor-772, .elementor-773) .ps-variant-card__bottle img{
  width:100% !important;
  height:100% !important;
  object-fit:contain !important;
  padding:3px !important;
  display:block !important;
  max-width:none !important;
}

@media (max-width:767px){
  :is(.elementor-8676, .elementor-106, .elementor-772, .elementor-773) .woo-variation-swatches .variable-item .ps-variant-card--multi[data-bottles="2"]{
    grid-template-columns:minmax(0,1fr) 47px !important;
  }
  :is(.elementor-8676, .elementor-106, .elementor-772, .elementor-773) .woo-variation-swatches .variable-item .ps-variant-card--multi[data-bottles="3"]{
    grid-template-columns:minmax(0,1fr) 62px !important;
  }
  :is(.elementor-8676, .elementor-106, .elementor-772, .elementor-773) .ps-variant-card__stack{ height:40px !important; }
  :is(.elementor-8676, .elementor-106, .elementor-772, .elementor-773) .ps-variant-card__stack[data-bottles="2"]{ width:47px !important; }
  :is(.elementor-8676, .elementor-106, .elementor-772, .elementor-773) .ps-variant-card__stack[data-bottles="3"]{ width:62px !important; }
  :is(.elementor-8676, .elementor-106, .elementor-772, .elementor-773) .ps-variant-card__bottle{ width:32px !important; height:40px !important; }
  :is(.elementor-8676, .elementor-106, .elementor-772, .elementor-773) .ps-variant-card__bottle:nth-child(2){ left:15px !important; }
  :is(.elementor-8676, .elementor-106, .elementor-772, .elementor-773) .ps-variant-card__bottle:nth-child(3){ left:30px !important; }
}

/* ===== CORRECTIF GRILLE PILE DE FLACONS (2026-07-22) =====
   Le bloc precedent utilisait ":is(.elementor-8676, .elementor-106, .elementor-772, .elementor-773) .woo-variation-swatches ..." : impossible
   a matcher, car .woo-variation-swatches est pose sur <body> (donc ANCETRE de
   :is(.elementor-8676, .elementor-106, .elementor-772, .elementor-773), pas descendant). La colonne restait a 40px et ecrasait la pile.

   Ici on s'appuie sur .ps-variant-card--multi, qui n'est ajoutee par le JS que si
   bottleCount > 1 : aucune variation live n'atteint ce cas, la classe est donc son
   propre scope. On double le selecteur pour battre les DEUX familles de regles :
     - .woo-variation-swatches .variable-item .ps-variant-card            (0,3,0)
     - .elementor-location-single .ps-sp-buycard form... .ps-variant-card (0,5,1) */

.woo-variation-swatches .variable-item .ps-variant-card--multi[data-bottles="2"],
.elementor-location-single .ps-sp-buycard form.variations_form.ps-visual-variation-form .ps-variant-card--multi[data-bottles="2"]{
  grid-template-columns:minmax(0,1fr) 53px !important;
}
.woo-variation-swatches .variable-item .ps-variant-card--multi[data-bottles="3"],
.elementor-location-single .ps-sp-buycard form.variations_form.ps-visual-variation-form .ps-variant-card--multi[data-bottles="3"]{
  grid-template-columns:minmax(0,1fr) 70px !important;
}

@media (max-width:767px){
  .woo-variation-swatches .variable-item .ps-variant-card--multi[data-bottles="2"],
  .elementor-location-single .ps-sp-buycard form.variations_form.ps-visual-variation-form .ps-variant-card--multi[data-bottles="2"]{
    grid-template-columns:minmax(0,1fr) 47px !important;
  }
  .woo-variation-swatches .variable-item .ps-variant-card--multi[data-bottles="3"],
  .elementor-location-single .ps-sp-buycard form.variations_form.ps-visual-variation-form .ps-variant-card--multi[data-bottles="3"]{
    grid-template-columns:minmax(0,1fr) 62px !important;
  }
}

/* ===== ECARTEMENT DE L'EVENTAIL (2026-07-22) =====
   Chaque flacon devoilait ~15px (tranche trop fine). On passe a ~21px desktop /
   ~18px mobile : la quantite se lit d'un coup d'oeil, pour +8px de largeur. */
:is(.elementor-8676, .elementor-106, .elementor-772, .elementor-773) .ps-variant-card__bottle:nth-child(2){ left:21px !important; }
:is(.elementor-8676, .elementor-106, .elementor-772, .elementor-773) .ps-variant-card__bottle:nth-child(3){ left:42px !important; }
:is(.elementor-8676, .elementor-106, .elementor-772, .elementor-773) .ps-variant-card__stack[data-bottles="2"]{ width:57px !important; }
:is(.elementor-8676, .elementor-106, .elementor-772, .elementor-773) .ps-variant-card__stack[data-bottles="3"]{ width:78px !important; }

.woo-variation-swatches .variable-item .ps-variant-card--multi[data-bottles="2"],
.elementor-location-single .ps-sp-buycard form.variations_form.ps-visual-variation-form .ps-variant-card--multi[data-bottles="2"]{
  grid-template-columns:minmax(0,1fr) 57px !important;
}
.woo-variation-swatches .variable-item .ps-variant-card--multi[data-bottles="3"],
.elementor-location-single .ps-sp-buycard form.variations_form.ps-visual-variation-form .ps-variant-card--multi[data-bottles="3"]{
  grid-template-columns:minmax(0,1fr) 78px !important;
}

@media (max-width:767px){
  :is(.elementor-8676, .elementor-106, .elementor-772, .elementor-773) .ps-variant-card__bottle:nth-child(2){ left:18px !important; }
  :is(.elementor-8676, .elementor-106, .elementor-772, .elementor-773) .ps-variant-card__bottle:nth-child(3){ left:36px !important; }
  :is(.elementor-8676, .elementor-106, .elementor-772, .elementor-773) .ps-variant-card__stack[data-bottles="2"]{ width:50px !important; }
  :is(.elementor-8676, .elementor-106, .elementor-772, .elementor-773) .ps-variant-card__stack[data-bottles="3"]{ width:68px !important; }

  .woo-variation-swatches .variable-item .ps-variant-card--multi[data-bottles="2"],
  .elementor-location-single .ps-sp-buycard form.variations_form.ps-visual-variation-form .ps-variant-card--multi[data-bottles="2"]{
    grid-template-columns:minmax(0,1fr) 50px !important;
  }
  .woo-variation-swatches .variable-item .ps-variant-card--multi[data-bottles="3"],
  .elementor-location-single .ps-sp-buycard form.variations_form.ps-visual-variation-form .ps-variant-card--multi[data-bottles="3"]{
    grid-template-columns:minmax(0,1fr) 68px !important;
  }
}

/* ===== BANDEAU FOMO — preview #8676 (2026-07-22) ===== */
:is(.elementor-8676, .elementor-106, .elementor-772, .elementor-773) .pp-alert{
  background:#F7F4EC;
  border-bottom:1px dashed rgba(26,24,22,.22);
  padding:14px 24px 16px;
  margin:0;
  font-family:var(--e-global-typography-text-font-family,"Roboto",system-ui,sans-serif);
}
/* Proper product hero section layout (Desktop 2-column, Mobile 1-column full width) */
@media (min-width: 1024px) {
  body.single-product .ps-sp-hero,
  body.single-product #pdpx-hero-sec {
    display: block !important;
    max-width: 1280px !important;
    margin: 0 auto !important;
  }
  body.single-product .ps-sp-hero,
  body.single-product .ps-sp-hero > .e-con-inner,
  body.single-product #pdpx-hero-sec > .e-con-inner,
  body.single-product #pdpx-hero-sec #pdpx-row {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: wrap !important;
    justify-content: space-between !important;
    align-items: flex-start !important;
    width: 100% !important;
    gap: 40px !important;
  }
  /* La largeur 52% s'applique uniquement a la COLONNE galerie externe.
     Le widget WooCommerce imbrique reste a 100% pour eviter un calcul 52% x 52%. */
  body.single-product .ps-sp-hero > :is(.ps-sp-gallery, .elementor-widget-woocommerce-product-images),
  body.single-product .ps-sp-hero > .e-con-inner > :is(.ps-sp-gallery, .elementor-widget-woocommerce-product-images),
  body.single-product #pdpx-hero-sec #pdpx-row > :is(#pdpx-gal, .ps-sp-gallery, .elementor-widget-woocommerce-product-images) {
    flex: 0 0 52% !important;
    width: 52% !important;
    max-width: 52% !important;
    min-width: 0 !important;
  }
  body.single-product .ps-sp-hero .ps-sp-gallery .elementor-widget-woocommerce-product-images,
  body.single-product #pdpx-hero-sec #pdpx-gal .elementor-widget-woocommerce-product-images,
  body.single-product #pdpx-hero-sec .ps-sp-gallery .elementor-widget-woocommerce-product-images {
    flex: 1 1 auto !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
  }
  body.single-product .ps-sp-hero .elementor-widget-woocommerce-product-images ~ .ps-sp-gallery,
  body.single-product #pdpx-hero-sec .elementor-widget-woocommerce-product-images ~ :is(#pdpx-gal, .ps-sp-gallery, .elementor-widget-woocommerce-product-images) {
    display: none !important;
  }
  body.single-product .ps-sp-summary,
  body.single-product #pdpx-hero-sec .ps-sp-summary,
  body.single-product #pdpx-hero-sec #pdpx-sum {
    flex: 0 0 43% !important;
    width: 43% !important;
    max-width: 43% !important;
    min-width: 0 !important;
  }
}

@media (max-width: 1023px) {
  body.single-product .ps-sp-hero,
  body.single-product #pdpx-hero-sec,
  body.single-product .ps-pdpx {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 12px 0 !important;
  }
  body.single-product .ps-sp-hero > .e-con-inner,
  body.single-product #pdpx-hero-sec > .e-con-inner,
  body.single-product #pdpx-hero-sec #pdpx-row {
    display: flex !important;
    flex-direction: column !important;
    width: 100% !important;
    max-width: 100% !important;
    gap: 20px !important;
    padding: 0 12px !important;
    box-sizing: border-box !important;
  }
  body.single-product .ps-sp-hero .elementor-widget-woocommerce-product-images,
  body.single-product .ps-sp-hero .ps-sp-gallery,
  body.single-product #pdpx-hero-sec .elementor-widget-woocommerce-product-images,
  body.single-product #pdpx-hero-sec :is(#pdpx-gal, .ps-sp-gallery, .elementor-widget-woocommerce-product-images),
  body.single-product .ps-sp-summary,
  body.single-product #pdpx-hero-sec .ps-sp-summary,
  body.single-product #pdpx-hero-sec #pdpx-sum {
    flex: 1 1 100% !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
  }
  body.single-product .ps-sp-summary > *,
  body.single-product #pdpx-sum > * {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
  }
}

/* Trust rating star sizing & alignment fix */
body.single-product .pdpx-badges-row,
body.single-product .ps-tr {
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
  font-size: 12.5px !important;
  margin-top: 2px !important;
  margin-bottom: 8px !important;
}

body.single-product .product_title,
body.single-product .pdpx-title,
body.single-product h1.entry-title {
  margin-top: 6px !important;
  margin-bottom: 12px !important;
}

@media (max-width: 1023px) {
  body.single-product .pdpx-badges-row,
  body.single-product .ps-tr {
    margin-bottom: 6px !important;
  }
  body.single-product .product_title,
  body.single-product .pdpx-title,
  body.single-product h1.entry-title {
    margin-top: 4px !important;
  }
}

body.single-product .ps-tr-stars {
  display: inline-flex !important;
  flex-direction: row !important;
  gap: 3px !important;
  align-items: center !important;
}
body.single-product .ps-tr-star {
  display: inline-flex !important;
  width: 15px !important;
  height: 15px !important;
  flex: 0 0 15px !important;
}
body.single-product .ps-tr-star svg {
  width: 15px !important;
  height: 15px !important;
  fill: #E8B33A !important;
  stroke: none !important;
}
body.single-product .ps-tr-star:not(.is-on) svg {
  fill: #D8D2C5 !important;
}

/* 1. Buybox Benefits Card Container (Screenshot 1) */
body.single-product .pdpx-benefits {
  display: grid !important;
  grid-template-columns: repeat(2, 1fr) !important;
  gap: 14px 20px !important;
  background: #F8F6F2 !important;
  border: 1px solid #E4DFD5 !important;
  border-radius: 16px !important;
  padding: 20px 24px !important;
  margin: 18px 0 20px !important;
  width: 100% !important;
  box-sizing: border-box !important;
}

@media (max-width: 600px) {
  body.single-product .pdpx-benefits {
    grid-template-columns: 1fr !important;
    gap: 12px !important;
    padding: 16px 18px !important;
  }
}

body.single-product .pdpx-benefits .pdpx-b {
  display: flex !important;
  align-items: flex-start !important;
  gap: 10px !important;
  margin: 0 !important;
  padding: 0 !important;
  background: transparent !important;
  border: none !important;
  border-radius: 0 !important;
  font-size: 13px !important;
  line-height: 1.4 !important;
  font-weight: 500 !important;
  color: #1A1816 !important;
  white-space: normal !important;
}

body.single-product .pdpx-benefits .pdpx-b i {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  flex: 0 0 16px !important;
  margin-top: 2px !important;
}

body.single-product .pdpx-benefits .pdpx-b svg {
  width: 16px !important;
  height: 16px !important;
  max-width: 16px !important;
  max-height: 16px !important;
  stroke: #1A1816 !important;
  fill: none !important;
  stroke-width: 1.8 !important;
}

/* 2. Section below buybox: Circular Golden Icons Row (Screenshot 2) */
body.single-product section.pp-bf,
body.single-product .pp-bf {
  display: block !important;
  padding: 48px 24px !important;
  background: #F8F6F2 !important;
  border-top: 1px solid rgba(26,24,22,.08) !important;
  border-bottom: 1px solid rgba(26,24,22,.08) !important;
  width: 100% !important;
  box-sizing: border-box !important;
}

body.single-product .pp-bf .pp-eyebrow {
  display: none !important;
}

body.single-product .pp-bf .pp-bf-grid {
  display: flex !important;
  flex-direction: row !important;
  justify-content: center !important;
  align-items: flex-start !important;
  gap: 36px !important;
  max-width: 1000px !important;
  margin: 0 auto !important;
  width: 100% !important;
}

@media (max-width: 767px) {
  body.single-product .pp-bf .pp-bf-grid {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 20px 12px !important;
  }
}

body.single-product .pp-bf .pp-bf-cell {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  text-align: center !important;
  gap: 10px !important;
  flex: 1 1 0 !important;
}

body.single-product .pp-bf .pp-bf-ico {
  width: 56px !important;
  height: 56px !important;
  min-width: 56px !important;
  min-height: 56px !important;
  max-width: 56px !important;
  max-height: 56px !important;
  flex: 0 0 56px !important;
  aspect-ratio: 1 / 1 !important;
  border-radius: 50% !important;
  background: radial-gradient(circle, rgba(201,168,76,0.24) 0%, rgba(201,168,76,0.06) 100%) !important;
  border: 1.5px solid rgba(201,168,76,0.4) !important;
  box-shadow: 0 4px 12px rgba(201,168,76,0.08) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  margin: 0 auto !important;
  box-sizing: border-box !important;
  transition: transform 0.2s ease, border-color 0.2s ease !important;
}

body.single-product .pp-bf .pp-bf-cell:hover .pp-bf-ico {
  transform: translateY(-2px) !important;
  border-color: rgba(201,168,76,0.65) !important;
}

body.single-product .pp-bf .pp-bf-ico svg {
  width: 22px !important;
  height: 22px !important;
  max-width: 22px !important;
  max-height: 22px !important;
  stroke: #8F7225 !important;
  fill: none !important;
  stroke-width: 1.8 !important;
}

body.single-product .pp-bf .pp-bf-label {
  font-size: 13.5px !important;
  font-weight: 700 !important;
  color: #1A1816 !important;
  text-align: center !important;
  letter-spacing: -0.01em !important;
}

body.single-product .pdpx-mbg-seal {
  flex: 0 0 46px !important;
  width: 46px !important;
  height: 46px !important;
}

/* Global Variation Card Layout Fix */
body.single-product li.variable-item {
  padding: 15px 14px 13px !important;
  overflow: visible !important;
  min-width: 0 !important;
  width: 100% !important;
  box-sizing: border-box !important;
}
body.single-product .ps-variant-card {
  display: flex !important;
  align-items: center !important;
  gap: 14px !important;
  grid-template-columns: none !important;
  width: 100% !important;
  box-sizing: border-box !important;
}
body.single-product .ps-variant-card__body {
  order: 1 !important;
  flex: 1 1 auto !important;
  min-width: 0 !important;
  padding-right: 0 !important;
}
body.single-product .ps-variant-card__title-wrap {
  min-width: 0 !important;
  flex: 1 1 auto !important;
}
body.single-product .ps-variant-card__header {
  align-items: flex-start !important;
  gap: 10px !important;
  flex-wrap: nowrap !important;
}
body.single-product .ps-variant-card__title {
  overflow-wrap: normal !important;
  word-break: normal !important;
  hyphens: none !important;
  white-space: nowrap !important;
}
body.single-product .ps-variant-card__subtitle {
  white-space: nowrap !important;
}

/* Spacing Fix: Generous bottom margin/padding for reviews section before footer */
body.single-product .ps-real-reviews,
body.single-product #reviews,
body.single-product .pp-rv,
body.single-product .related.products {
  margin-bottom: 72px !important;
  padding-bottom: 72px !important;
}

:is(.elementor-8676, .elementor-106, .elementor-772, .elementor-773) .pp-alert p{ margin:0 0 6px; }
:is(.elementor-8676, .elementor-106, .elementor-772, .elementor-773) .pp-alert p:last-child{ margin-bottom:0; }
:is(.elementor-8676, .elementor-106, .elementor-772, .elementor-773) .pp-alert-top{
  display:flex;
  align-items:baseline;
  gap:8px;
  font-size:13px;
  line-height:1.3;
}
:is(.elementor-8676, .elementor-106, .elementor-772, .elementor-773) .pp-alert-tag{
  font-weight:700;
  color:#1A1816;
  letter-spacing:.01em;
}
:is(.elementor-8676, .elementor-106, .elementor-772, .elementor-773) .pp-alert-tag::after{ content:":"; }
:is(.elementor-8676, .elementor-106, .elementor-772, .elementor-773) .pp-alert-date{
  font-weight:600;
  color:#B4832B;
}
:is(.elementor-8676, .elementor-106, .elementor-772, .elementor-773) .pp-alert-body{
  font-size:13px;
  line-height:1.5;
  color:rgba(26,24,22,.74);
  max-width:none;
}
:is(.elementor-8676, .elementor-106, .elementor-772, .elementor-773) .pp-alert-foot{
  font-size:13px;
  line-height:1.5;
  color:rgba(26,24,22,.74);
}
:is(.elementor-8676, .elementor-106, .elementor-772, .elementor-773) .pp-alert-foot strong{ color:#1A1816; font-weight:700; }

@media (max-width:600px){
  :is(.elementor-8676, .elementor-106, .elementor-772, .elementor-773) .pp-alert{ padding:12px 16px 14px; }
  :is(.elementor-8676, .elementor-106, .elementor-772, .elementor-773) .pp-alert-top,
  :is(.elementor-8676, .elementor-106, .elementor-772, .elementor-773) .pp-alert-body,
  :is(.elementor-8676, .elementor-106, .elementor-772, .elementor-773) .pp-alert-foot{ font-size:12.5px; }
}

/* ===== SELECTEUR DE BUNDLES SUR UNE COLONNE — preview #8676 (2026-07-22) =====
   En desktop le wrapper etait en 2 colonnes de 174px dans une buy box de 446px :
   avec l'eventail de flacons il ne restait ~66px au titre, qui se cassait sur 4-5
   lignes. La reference (capture client) empile les bundles en pleine largeur.
   Scope :is(.elementor-8676, .elementor-106, .elementor-772, .elementor-773) => fiches live inchangees (elles gardent leur grille). */
:is(.elementor-8676, .elementor-106, .elementor-772, .elementor-773) .variable-items-wrapper{
  grid-template-columns:minmax(0,1fr) !important;
  gap:10px !important;
}
:is(.elementor-8676, .elementor-106, .elementor-772, .elementor-773) .variable-item{
  width:100% !important;
  max-width:none !important;
}
/* Avec la pleine largeur, le titre respire : on peut revenir au header en ligne. */
@media (min-width:601px){
  :is(.elementor-8676, .elementor-106, .elementor-772, .elementor-773) .ps-variant-card__header{ display:flex !important; }
  :is(.elementor-8676, .elementor-106, .elementor-772, .elementor-773) .ps-variant-card__badge{ margin-top:0 !important; }
}

/* ===== SELECTEUR DE BUNDLES SUR UNE COLONNE — correctif de specificite =====
   Tentative precedente : ":is(.elementor-8676, .elementor-106, .elementor-772, .elementor-773) .variable-items-wrapper" (0,2,0) — matchait
   bien mais perdait contre
   ".elementor-location-single .ps-sp-buycard form.variations_form.ps-visual-variation-form
    .variable-items-wrapper" (0,5,1) qui impose repeat(2, minmax(0,1fr)) !important.
   On reprend ce selecteur prefixe de body.postid-8672 => 0,6,1, et ce prefixe est
   aussi le scope : seul le produit preview est touche, les fiches live gardent
   leur grille 2 colonnes. */
body.postid-8672 .elementor-location-single .ps-sp-buycard form.variations_form.ps-visual-variation-form .variable-items-wrapper,
body.postid-8672 .woo-variation-swatches .variable-items-wrapper{
  grid-template-columns:minmax(0,1fr) !important;
  gap:10px !important;
}
body.postid-8672 .woo-variation-swatches .variable-item,
body.postid-8672 .elementor-location-single .ps-sp-buycard form.variations_form.ps-visual-variation-form .variable-item{
  width:100% !important;
  max-width:none !important;
}

/* ===== WIDGETS EDITABLES — preview #8676 (2026-07-22) =====
   Le titre, la description et les bullets sont passes de widgets WooCommerce/HTML
   a des widgets natifs Elementor (heading / text-editor / icon-list) pour etre
   editables dans le builder. Changer de type change la classe wrapper, donc les
   styles d'origine (.product_title, .woocommerce-product-details__short-description,
   .pp-bf*) ne s'appliquent plus : on les reporte ici a l'identique.
   Scope :is(.elementor-8676, .elementor-106, .elementor-772, .elementor-773) => fiche live inchangee. */

/* --- Titre : reprise de .ps-sp-summary .product_title --- */
:is(.elementor-8676, .elementor-106, .elementor-772, .elementor-773) .ps-ed-title .elementor-heading-title{
  font-size:clamp(28px, 3.4vw, 44px) !important;
  font-weight:600 !important;
  letter-spacing:-.02em !important;
  color:var(--ink) !important;
  line-height:1.05 !important;
  margin:4px 0 12px !important;
  font-style:normal !important;
}

/* --- Description : reprise de .woocommerce-product-details__short-description --- */
:is(.elementor-8676, .elementor-106, .elementor-772, .elementor-773) .ps-ed-desc{ margin-bottom:22px !important; }
:is(.elementor-8676, .elementor-106, .elementor-772, .elementor-773) .ps-ed-desc,
:is(.elementor-8676, .elementor-106, .elementor-772, .elementor-773) .ps-ed-desc p{
  color:var(--ink-soft) !important;
  font-size:16px !important;
  line-height:1.6 !important;
}
:is(.elementor-8676, .elementor-106, .elementor-772, .elementor-773) .ps-ed-desc p:last-child{ margin-bottom:0 !important; }

/* --- Bullets : reprise du rendu .pp-bf (grille 2 colonnes, icones vertes) --- */
:is(.elementor-8676, .elementor-106, .elementor-772, .elementor-773) .ps-ed-bullets .elementor-icon-list-items{
  display:grid !important;
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  gap:14px 22px !important;
  padding:0 !important;
  margin:0 !important;
  list-style:none !important;
}
:is(.elementor-8676, .elementor-106, .elementor-772, .elementor-773) .ps-ed-bullets .elementor-icon-list-item{
  display:flex !important;
  align-items:flex-start !important;
  gap:10px !important;
  min-width:0 !important;
  margin:0 !important;
}
:is(.elementor-8676, .elementor-106, .elementor-772, .elementor-773) .ps-ed-bullets .elementor-icon-list-icon{
  flex:0 0 20px !important;
  width:20px !important;
  margin-top:1px !important;
  color:#09B29C !important;
}
:is(.elementor-8676, .elementor-106, .elementor-772, .elementor-773) .ps-ed-bullets .elementor-icon-list-icon svg,
:is(.elementor-8676, .elementor-106, .elementor-772, .elementor-773) .ps-ed-bullets .elementor-icon-list-icon i{
  width:16px !important;
  height:16px !important;
  font-size:15px !important;
  color:#09B29C !important;
  fill:#09B29C !important;
}
:is(.elementor-8676, .elementor-106, .elementor-772, .elementor-773) .ps-ed-bullets .elementor-icon-list-text{
  font-size:13.5px !important;
  line-height:1.35 !important;
  font-weight:500 !important;
  color:var(--ink) !important;
  min-width:0 !important;
  padding:0 !important;
}
@media (max-width:600px){
  :is(.elementor-8676, .elementor-106, .elementor-772, .elementor-773) .ps-ed-bullets .elementor-icon-list-items{
    grid-template-columns:minmax(0,1fr) !important;
  }
}

/* ===== CADRAGE DES BULLETS EDITABLES (2026-07-22) =====
   Le widget icon-list heritait de la largeur du conteneur (1243px, pleine page)
   alors que l'ancien bloc avait .pp-bf{padding:48px 24px} + .pp-bf-grid{max-width:880px;
   margin:0 auto}. On reporte ce cadrage, plus le cadre clair de la maquette. */
:is(.elementor-8676, .elementor-106, .elementor-772, .elementor-773) .ps-ed-bullets{
  padding:48px 24px !important;
}
:is(.elementor-8676, .elementor-106, .elementor-772, .elementor-773) .ps-ed-bullets .elementor-icon-list-items{
  max-width:880px !important;
  margin:0 auto !important;
  background:rgba(26,24,22,.035) !important;
  border:1px solid rgba(26,24,22,.07) !important;
  border-radius:14px !important;
  padding:22px 26px !important;
  gap:16px 26px !important;
}
@media (max-width:600px){
  :is(.elementor-8676, .elementor-106, .elementor-772, .elementor-773) .ps-ed-bullets{ padding:32px 16px !important; }
  :is(.elementor-8676, .elementor-106, .elementor-772, .elementor-773) .ps-ed-bullets .elementor-icon-list-items{ padding:18px 18px !important; }
}

/* ===== BULLETS DANS LA BUY BOX (2026-07-22) =====
   Les bullets remplacent la bande de stats et vivent maintenant dans la colonne
   buy box (~446px), plus dans une section pleine largeur : on annule le cadrage
   880px / 2 colonnes / padding 48px pose plus haut, au profit d'un rendu compact
   sur une colonne. Scope :is(.elementor-8676, .elementor-106, .elementor-772, .elementor-773) => fiche live inchangee. */
:is(.elementor-8676, .elementor-106, .elementor-772, .elementor-773) .ps-ed-bullets{
  padding:0 0 18px !important;
}
:is(.elementor-8676, .elementor-106, .elementor-772, .elementor-773) .ps-ed-bullets .elementor-icon-list-items{
  max-width:none !important;
  grid-template-columns:minmax(0,1fr) !important;
  gap:9px !important;
  margin:0 !important;
  padding:15px 17px !important;
  border-radius:12px !important;
}
:is(.elementor-8676, .elementor-106, .elementor-772, .elementor-773) .ps-ed-bullets .elementor-icon-list-item{
  gap:9px !important;
}
:is(.elementor-8676, .elementor-106, .elementor-772, .elementor-773) .ps-ed-bullets .elementor-icon-list-icon{
  flex:0 0 17px !important;
  width:17px !important;
  margin-top:1px !important;
}
:is(.elementor-8676, .elementor-106, .elementor-772, .elementor-773) .ps-ed-bullets .elementor-icon-list-icon svg,
:is(.elementor-8676, .elementor-106, .elementor-772, .elementor-773) .ps-ed-bullets .elementor-icon-list-icon i{
  width:14px !important;
  height:14px !important;
  font-size:13.5px !important;
}
:is(.elementor-8676, .elementor-106, .elementor-772, .elementor-773) .ps-ed-bullets .elementor-icon-list-text{
  font-size:13px !important;
  line-height:1.4 !important;
}
@media (max-width:600px){
  :is(.elementor-8676, .elementor-106, .elementor-772, .elementor-773) .ps-ed-bullets{ padding:0 0 14px !important; }
  :is(.elementor-8676, .elementor-106, .elementor-772, .elementor-773) .ps-ed-bullets .elementor-icon-list-items{ padding:14px 15px !important; }
}

/* ===== PRODUCT HERO COMPACTION (staging, 2026-07-29) ===== */
body.single-product :is(#pdpx-hero-sec, .ps-sp-hero, .ps-pdpx) .pdpx-eyebrow{
  display:none !important;
}
body.single-product :is(#pdpx-hero-sec, .ps-sp-hero, .ps-pdpx) #pdpx-badges-row{
  margin-bottom:16px !important;
}
body.single-product :is(#pdpx-hero-sec, .ps-sp-hero, .ps-pdpx) .pdpx-title .elementor-heading-title{
  font-size:clamp(28px,2.7vw,36px) !important;
  line-height:1.08 !important;
  letter-spacing:-.025em !important;
  margin:0 0 12px !important;
}
body.single-product :is(#pdpx-hero-sec, .ps-sp-hero, .ps-pdpx) .woocommerce-product-gallery__wrapper >
  .woocommerce-product-gallery__image:first-child{
  overflow:hidden !important;
  border-radius:18px;
}
body.single-product :is(#pdpx-hero-sec, .ps-sp-hero, .ps-pdpx) .woocommerce-product-gallery__wrapper >
  .woocommerce-product-gallery__image:first-child img.wp-post-image{
  /* Les nouveaux packshots carres remplissent deja le cadre. Le zoom 1.16
     coupait le bouchon et les cotes de la bouteille sur mobile. */
  width:100% !important;
  height:auto !important;
  max-height:none !important;
  aspect-ratio:1 / 1 !important;
  object-fit:contain !important;
  transform:none !important;
  transform-origin:center center !important;
}
/* Elementor limitait encore la fenetre FlexSlider a 34vh (~287px sur Pixel 7)
   alors que la slide carree fait 358px : le bas du flacon etait donc coupe. */
body.single-product :is(#pdpx-hero-sec, .ps-sp-hero, .ps-pdpx) :is(#pdpx-gal, .ps-sp-gallery, .elementor-widget-woocommerce-product-images) .woocommerce-product-gallery .flex-viewport,
body.single-product :is(#pdpx-hero-sec, .ps-sp-hero, .ps-pdpx) :is(#pdpx-gal, .ps-sp-gallery, .elementor-widget-woocommerce-product-images) .woocommerce-product-gallery__wrapper {
  width: 100% !important;
  height: auto !important;
  max-height: none !important;
  aspect-ratio: 1 / 1 !important;
  overflow: hidden !important;
  position: relative !important;
  display: block !important;
}
/* Toutes les slides utilisent le carre complet. Les visuels carres remplissent
   le cadre ; les documents portrait restent entiers grace a object-fit:contain. */
body.single-product :is(#pdpx-hero-sec, .ps-sp-hero, .ps-pdpx) :is(#pdpx-gal, .ps-sp-gallery, .elementor-widget-woocommerce-product-images) .woocommerce-product-gallery__image img {
  width: 100% !important;
  height: auto !important;
  max-height: 100% !important;
  aspect-ratio: 1 / 1 !important;
  object-fit: contain !important;
  display: block !important;
}
/* Navigation galerie : cible tactile confortable, chevron fin et retrait
   constant des bords. La position verticale est fournie par JS selon le
   viewport reel du slider, pas selon la hauteur totale de la galerie. */
body.single-product :is(#pdpx-hero-sec, .ps-sp-hero, .ps-pdpx) :is(#pdpx-gal, .ps-sp-gallery, .elementor-widget-woocommerce-product-images) .ps-gallery-arrow{
  top:var(--ps-gallery-arrow-y,50%) !important;
  width:50px !important;
  height:50px !important;
  padding:0 !important;
  color:var(--ps-choice,#223A5E) !important;
  background:#C9A84C !important;
  border:1px solid rgba(245,241,232,.78) !important;
  border-radius:999px !important;
  box-shadow:0 6px 18px rgba(26,24,22,.16) !important;
  z-index:6 !important;
  transition:background-color .18s ease,box-shadow .18s ease,transform .12s ease !important;
}
body.single-product :is(#pdpx-hero-sec, .ps-sp-hero, .ps-pdpx) :is(#pdpx-gal, .ps-sp-gallery, .elementor-widget-woocommerce-product-images) .ps-gallery-prev{ left:16px !important; }
body.single-product :is(#pdpx-hero-sec, .ps-sp-hero, .ps-pdpx) :is(#pdpx-gal, .ps-sp-gallery, .elementor-widget-woocommerce-product-images) .ps-gallery-next{ right:16px !important; }
body.single-product :is(#pdpx-hero-sec, .ps-sp-hero, .ps-pdpx) :is(#pdpx-gal, .ps-sp-gallery, .elementor-widget-woocommerce-product-images) .ps-gallery-arrow svg{
  width:22px !important;
  height:22px !important;
  stroke:currentColor !important;
  stroke-width:2.25 !important;
}
body.single-product :is(#pdpx-hero-sec, .ps-sp-hero, .ps-pdpx) :is(#pdpx-gal, .ps-sp-gallery, .elementor-widget-woocommerce-product-images) .ps-gallery-arrow:hover{
  background:#B89232 !important;
  box-shadow:0 7px 20px rgba(26,24,22,.2) !important;
  transform:translateY(-50%) scale(1.03) !important;
}
body.single-product :is(#pdpx-hero-sec, .ps-sp-hero, .ps-pdpx) :is(#pdpx-gal, .ps-sp-gallery, .elementor-widget-woocommerce-product-images) .ps-gallery-arrow:active{
  transform:translateY(-50%) scale(.96) !important;
  box-shadow:0 3px 10px rgba(26,24,22,.18) !important;
}
body.single-product :is(#pdpx-hero-sec, .ps-sp-hero, .ps-pdpx) :is(#pdpx-gal, .ps-sp-gallery, .elementor-widget-woocommerce-product-images) .ps-gallery-arrow:focus-visible{
  outline:3px solid var(--ps-choice,#223A5E) !important;
  outline-offset:3px !important;
}
body.single-product :is(#pdpx-hero-sec, .ps-sp-hero, .ps-pdpx) :is(#pdpx-gal, .ps-sp-gallery, .elementor-widget-woocommerce-product-images) .ps-gallery-arrow[hidden]{
  display:none !important;
}
@media (max-width:600px){
  body.single-product :is(#pdpx-hero-sec, .ps-sp-hero, .ps-pdpx) :is(#pdpx-gal, .ps-sp-gallery, .elementor-widget-woocommerce-product-images) .ps-gallery-arrow{
    width:46px !important;
    height:46px !important;
  }
  body.single-product :is(#pdpx-hero-sec, .ps-sp-hero, .ps-pdpx) :is(#pdpx-gal, .ps-sp-gallery, .elementor-widget-woocommerce-product-images) .ps-gallery-prev{ left:12px !important; }
  body.single-product :is(#pdpx-hero-sec, .ps-sp-hero, .ps-pdpx) :is(#pdpx-gal, .ps-sp-gallery, .elementor-widget-woocommerce-product-images) .ps-gallery-next{ right:12px !important; }
  body.single-product :is(#pdpx-hero-sec, .ps-sp-hero, .ps-pdpx) :is(#pdpx-gal, .ps-sp-gallery, .elementor-widget-woocommerce-product-images) .ps-gallery-arrow svg{
    width:20px !important;
    height:20px !important;
  }
}
/* Le libelle de lot sous la galerie repete une information deja presente plus bas. */
body.single-product :is(#pdpx-hero-sec, .ps-sp-hero, .ps-pdpx) .elementor-element-552d598,
body.single-product :is(#pdpx-hero-sec, .ps-sp-hero, .ps-pdpx) .pdpx-galcap{
  display:none !important;
  margin:0 !important;
  padding:0 !important;
}
body.single-product :is(#pdpx-hero-sec, .ps-sp-hero, .ps-pdpx) .ps-variant-card{
  grid-template-columns:minmax(0,1fr) 96px !important;
  align-items:center !important;
}
body.single-product :is(#pdpx-hero-sec, .ps-sp-hero, .ps-pdpx) .ps-variant-card__media{
  width:96px !important;
  height:96px !important;
  flex:0 0 96px !important;
}
body.single-product :is(#pdpx-hero-sec, .ps-sp-hero, .ps-pdpx) .ps-variant-card__media img{
  width:100% !important;
  height:100% !important;
  padding:3px !important;
  object-fit:contain !important;
  mix-blend-mode:normal !important;
}

@media (max-width:600px){
  body.single-product :is(#pdpx-hero-sec, .ps-sp-hero, .ps-pdpx) #pdpx-badges-row{
    margin-bottom:14px !important;
  }
  body.single-product :is(#pdpx-hero-sec, .ps-sp-hero, .ps-pdpx) .pdpx-title .elementor-heading-title{
    font-size:clamp(25px,7.1vw,29px) !important;
    line-height:1.08 !important;
  }
  body.single-product :is(#pdpx-hero-sec, .ps-sp-hero, .ps-pdpx) .ps-variant-card{
    grid-template-columns:minmax(0,1fr) 88px !important;
  }
  body.single-product :is(#pdpx-hero-sec, .ps-sp-hero, .ps-pdpx) .ps-variant-card__media{
    width:88px !important;
    height:88px !important;
    flex-basis:88px !important;
  }

  /* Une seule ligne compacte : variantes scrollables + CTA. */
  body.single-product .ps-sticky-atc{
    flex-wrap:nowrap !important;
    align-items:center !important;
    gap:7px !important;
    row-gap:0 !important;
    padding:7px 9px calc(7px + env(safe-area-inset-bottom)) !important;
  }
  body.single-product .ps-sticky-atc__info{
    display:none !important;
  }
  body.single-product .ps-sticky-atc .ps-variant-pills{
    flex:1 1 auto !important;
    min-width:0 !important;
    max-width:100% !important;
    gap:4px !important;
    overflow-x:auto !important;
    overscroll-behavior-x:contain;
    scrollbar-width:none;
    -webkit-overflow-scrolling:touch;
  }
  body.single-product .ps-sticky-atc .ps-variant-pills::-webkit-scrollbar{
    display:none;
  }
  body.single-product .ps-sticky-atc .ps-variant-pill{
    flex:0 0 auto !important;
    padding:8px 10px !important;
    font-size:10.5px !important;
  }
  body.single-product .ps-sticky-atc__btn{
    flex:0 0 auto !important;
    padding:10px 13px !important;
    font-size:10px !important;
    letter-spacing:.08em !important;
  }
}

/* ===== PRODUCT GALLERY / HERO STABILITY (2026-08-01) =====
   - galerie autonome sans mutation des variations ;
   - 52% galerie / 43% buy box sur desktop ;
   - une seule colonne pleine largeur sur tablette/mobile. */
body.single-product .ps-gallery-control-host{
  position:relative !important;
  min-width:0 !important;
}
body.single-product .ps-gallery-control-host .ps-gallery-arrow{
  position:absolute !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  transform:translateY(-50%) !important;
  margin:0 !important;
  line-height:1 !important;
  cursor:pointer !important;
}
body.single-product .woocommerce-product-gallery.ps-gallery-autonomous{
  width:100% !important;
  max-width:100% !important;
  min-width:0 !important;
  margin:0 !important;
  float:none !important;
  overflow:hidden !important;
  box-sizing:border-box !important;
  border:1px solid rgba(26,24,22,.12) !important;
  border-radius:20px !important;
  background:transparent !important;
  isolation:isolate;
}
body.single-product .woocommerce-product-gallery.ps-gallery-autonomous .flex-viewport{
  width:100% !important;
  height:auto !important;
  min-height:0 !important;
  overflow:hidden !important;
}
body.single-product .woocommerce-product-gallery.ps-gallery-autonomous .woocommerce-product-gallery__wrapper{
  width:100% !important;
  height:auto !important;
  min-height:0 !important;
  margin:0 !important;
  transform:none !important;
  transition:none !important;
  display:block !important;
  position:relative !important;
}
body.single-product .woocommerce-product-gallery.ps-gallery-autonomous .woocommerce-product-gallery__image{
  display:none !important;
  width:100% !important;
  max-width:100% !important;
  margin:0 !important;
  float:none !important;
  opacity:0 !important;
  visibility:hidden !important;
  position:absolute !important;
  inset:0 auto auto 0 !important;
  z-index:1 !important;
  box-sizing:border-box !important;
}
body.single-product .woocommerce-product-gallery.ps-gallery-autonomous .woocommerce-product-gallery__image.ps-slide-active{
  display:block !important;
  opacity:1 !important;
  visibility:visible !important;
  position:relative !important;
  inset:auto !important;
  z-index:2 !important;
}
body.single-product .woocommerce-product-gallery.ps-gallery-autonomous .woocommerce-product-gallery__image img{
  width:100% !important;
  height:auto !important;
  max-width:100% !important;
  aspect-ratio:1 / 1 !important;
  object-fit:contain !important;
  display:block !important;
  background:transparent !important;
}

@media (min-width:1024px){
  body.single-product .ps-sp-hero > .e-con-inner,
  body.single-product #pdpx-hero-sec > .e-con-inner,
  body.single-product #pdpx-hero-sec #pdpx-row{
    flex-wrap:nowrap !important;
    column-gap:5% !important;
    row-gap:0 !important;
  }
  /* Ne dimensionner que la colonne externe : certains templates (Gut 157)
     contiennent le widget images a l'interieur de #pdpx-gal. */
  body.single-product .ps-sp-hero > .e-con-inner > :is(.ps-sp-gallery,.elementor-widget-woocommerce-product-images),
  body.single-product .ps-sp-hero > .e-con-inner > .e-con:not(.ps-sp-gallery) > .elementor-widget-woocommerce-product-images,
  body.single-product #pdpx-hero-sec #pdpx-row > :is(#pdpx-gal,.ps-sp-gallery,.elementor-widget-woocommerce-product-images){
    flex:0 0 52% !important;
    width:52% !important;
    max-width:52% !important;
    min-width:0 !important;
    box-sizing:border-box !important;
  }
  /* Les templates historiques n'utilisent pas tous le meme wrapper :
     rendre sticky la colonne visible, jamais le widget imbrique dans celle-ci. */
  body.single-product .ps-sp-hero :is(.ps-sp-gallery,.ps157-gallery),
  body.single-product .ps-sp-hero > .e-con-inner > .elementor-widget-woocommerce-product-images,
  body.single-product .ps-sp-hero > .e-con-inner > .e-con:not(.ps-sp-gallery):not(.ps157-gallery) > .elementor-widget-woocommerce-product-images,
  body.single-product #pdpx-hero-sec #pdpx-row > .elementor-widget-woocommerce-product-images{
    position:sticky !important;
    top:96px !important;
    align-self:flex-start !important;
  }
  body.single-product .ps-sp-hero .ps-sp-gallery .elementor-widget-woocommerce-product-images,
  body.single-product #pdpx-hero-sec #pdpx-gal .elementor-widget-woocommerce-product-images,
  body.single-product #pdpx-hero-sec .ps-sp-gallery .elementor-widget-woocommerce-product-images{
    flex:1 1 auto !important;
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    box-sizing:border-box !important;
  }
  body.single-product .ps-sp-summary,
  body.single-product #pdpx-hero-sec :is(.ps-sp-summary,#pdpx-sum){
    flex:0 0 43% !important;
    width:43% !important;
    max-width:43% !important;
    min-width:0 !important;
    box-sizing:border-box !important;
  }
}

@media (max-width:1023px){
  body.single-product .ps-sp-gallery,
  body.single-product #pdpx-gal,
  body.single-product .elementor-widget-woocommerce-product-images{
    position:relative !important;
    top:auto !important;
  }
  body.single-product .ps-sp-hero > .e-con-inner,
  body.single-product #pdpx-hero-sec > .e-con-inner,
  body.single-product #pdpx-hero-sec #pdpx-row{
    flex-direction:column !important;
    flex-wrap:nowrap !important;
    gap:20px !important;
  }
  body.single-product .ps-sp-hero .elementor-widget-woocommerce-product-images,
  body.single-product #pdpx-hero-sec :is(#pdpx-gal,.ps-sp-gallery,.elementor-widget-woocommerce-product-images),
  body.single-product .ps-sp-summary,
  body.single-product #pdpx-hero-sec :is(.ps-sp-summary,#pdpx-sum){
    flex:1 1 100% !important;
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    box-sizing:border-box !important;
  }
}



/* ===========================================================================
   FIX CADRAGE 2026-08-28 — bouteilles de la section "Three formulas".
   ---------------------------------------------------------------------------
   SYMPTOME : la bouteille Core 157 n'est pas cadree comme celle de Gut 157,
   et le bouchon de la bouteille Stack 157 est coupe en haut sur mobile.

   CAUSE : .pp-rng-bot est une boite de hauteur fixe (100% x 282px, ligne 1463)
   et l'image y est en object-fit:cover (ligne 727). "cover" remplit la boite
   et ROGNE ce qui depasse, au centre par defaut. Le cadrage depend donc du
   rapport largeur/hauteur de chaque photo source, qui n'est pas le meme d'un
   produit a l'autre. Trois photos, trois cadrages, une seule regle de rognage.

   CORRECTIF : object-fit:contain — la bouteille entiere est toujours visible
   et centree, quel que soit le format de la photo. C'est exactement le choix
   deja fait ligne 733 pour .pp-pw-bot ("bouteille entiere, pas de rognage").

   Le fond clair evite que les bandes laissees par "contain" se voient. Il doit
   correspondre au fond des photos : ajuste #F1EFEA a la pipette si un lisere
   apparait autour des bouteilles.
   =========================================================================== */
.elementor-location-single .pp-rng-bot {
  background: #F1EFEA !important;
  overflow: hidden !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 0 !important;
  box-sizing: border-box !important;
}

.elementor-location-single .pp-rng-bot img {
  width: 100% !important;
  height: 100% !important;
  object-fit: contain !important;
  object-position: center center !important;
  border-radius: 4px !important;
}



/* ════════════════════════════════════════════════════════════════════
   MASQUAGE 29/08/2026 — bloc "60-day money-back guarantee"
   Demande de la direction : retirer ce bloc de TOUTES les fiches produit.
   Le markup reste dans le modele Elementor : reactivation = suppression
   de ce bloc, aucun contenu n'est perdu.
   ════════════════════════════════════════════════════════════════════ */
body.single-product .pdpx-guarantee,
body.single-product .pdpx-mbg,
body.single-product :is(#pdpx-hero-sec, .ps-sp-hero, .ps-pdpx) .pdpx-guarantee,
body.single-product :is(#pdpx-hero-sec, .ps-sp-hero, .ps-pdpx) .pdpx-mbg {
  display: none !important;
}

/* ===== GUT TEMPLATE PARITY (2026-08-19) =====
   Preserved from GitHub main while reconciling the newer production layout
   fixes. Elementor can filter embedded SVG/style data during duplication. */
body.single-product .elementor-773 #pdpx-hero-sec .pdpx-specs{
  display:flex !important;
  flex-wrap:wrap !important;
  align-items:center !important;
  gap:8px 18px !important;
  margin:0 0 16px !important;
}
body.single-product .elementor-773 #pdpx-hero-sec .pdpx-specs span{
  display:inline-flex !important;
  align-items:center !important;
  gap:6px !important;
  font-size:12.5px !important;
  font-weight:600 !important;
  color:var(--ink,#1A1816) !important;
}
body.single-product .elementor-773 #pdpx-hero-sec .pdpx-specs span:not(:has(svg))::before{
  content:"\2713";
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:15px;
  height:15px;
  flex:0 0 15px;
  color:#fff;
  background:var(--ps-choice,#223A5E);
  border-radius:50%;
  font-size:10px;
  font-weight:800;
  line-height:1;
}
body.single-product .elementor-773 #pdpx-hero-sec .pdpx-benefits .pdpx-b i:empty::before{
  content:"\2713";
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:16px;
  height:16px;
  color:var(--ps-choice,#223A5E);
  font-size:14px;
  font-weight:800;
  line-height:1;
}
body.single-product .elementor-773 #pdpx-hero-sec .pdpx-pay{
  display:flex !important;
  flex-wrap:wrap !important;
  margin:12px 0 0 !important;
}
body.single-product .elementor-773 #pdpx-hero-sec .pdpx-faq{
  margin:18px 0 0 !important;
}

/* ===== PRODUCT MODALS SVG ICONS — Target internal elements to override fill="none" ===== */
/* Icon rings — Ingredients & How to Use */
.pp-icon-ring svg * { fill:var(--gold-deep) !important; stroke:var(--gold-deep) !important; color:var(--gold-deep) !important; }

/* Benefits cell icons */
.pp-ben-cell .pp-icon-ring svg * { fill:var(--gold-deep) !important; stroke:var(--gold-deep) !important; color:var(--gold-deep) !important; }

/* COA (Certificate of Analysis) cell icons */
.pp-test-cell .t-ico svg * { fill:var(--gold-deep) !important; stroke:var(--gold-deep) !important; color:var(--gold-deep) !important; }

/* How to Use grid cell icons */
.pp-tg-cell svg * { fill:var(--gold-deep) !important; stroke:var(--gold-deep) !important; color:var(--gold-deep) !important; }

/* Trust badges */
.ps-sp-trust svg * { fill:var(--gold) !important; stroke:var(--gold) !important; color:var(--gold) !important; }




/* ============================================================
   PANSTELLAR — FICHE PRODUIT : DEUX COLONNES SUR TABLETTE
   Page concernee : /products/stack-157-3000/
   >>> A COLLER A LA TOUTE FIN DE panstellar-product.css <<<
   ------------------------------------------------------------
   POURQUOI CETTE PAGE EMPILE ALORS QUE LES AUTRES NON
   Ta mise en deux colonnes n'existe que dans deux blocs
   @media (min-width:1024px) (lignes 2549 et 3364). En face,
   TROIS blocs @media (max-width:1023px) forcent l'empilement :

     ligne  274 : .elementor-location-single .ps-sp-hero
                  -> flex-direction: column
     ligne 2600 : #pdpx-hero-sec, .ps-sp-hero, .ps-pdpx
                  -> display:block !important
                  + .e-con-inner -> flex-direction:column !important
                  + les deux colonnes -> flex:1 1 100% !important
     ligne 3412 : .e-con-inner / #pdpx-row
                  -> flex-direction:column !important

   Les autres fiches produit utilisent .pp-hero et .lqp-hero,
   des grilles CSS avec leur propre rupture a 900px : elles ne
   sont pas concernees par ces trois blocs. D'ou "une seule
   page". Et aucun reglage Elementor ne peut battre un
   !important : le correctif doit etre en CSS.

   COMMENT CE BLOC GAGNE
   Les selecteurs ci-dessous sont COPIES de tes propres regles
   desktop (lignes 2549-2597 et 3364-3409). Puisqu'elles
   fonctionnent a 1024px sur cette page, elles correspondent
   forcement a ta structure HTML : aucun risque qu'un selecteur
   tombe a cote. Seuls le @media et les pourcentages changent.
   Le bloc doit etre EN FIN DE FICHIER : a specificite egale,
   c'est la derniere regle lue qui gagne, meme entre deux
   !important.

   POURQUOI 46 / 50 ET NON 52 / 43
   Sur tablette c'est la buy box qui limite, pas la galerie.
   A 768px, 43% ne laissent que 314px : les cartes de lot
   tombent a 100px alors que la pastille "SAVE $118.80" en
   mesure 76 plus ses marges. A 50%, elles font 116px.

   POURQUOI ON NE REMET PAS position:sticky
   Les lignes 3413-3418 le retirent sous 1024px, et c'est juste :
   en desktop la galerie est collee parce que la buy box est
   bien plus haute qu'elle ; sur tablette les deux colonnes font
   presque la meme hauteur, le sticky ne provoquerait qu'un saut
   au defilement.
   ============================================================ */
@media (min-width:768px) and (max-width:1023px){

  /* ---- 1. annule le display:block de la ligne 2604 ---- */
  body.single-product .ps-sp-hero,
  body.single-product #pdpx-hero-sec,
  body.single-product .ps-pdpx{
    display:block !important;
    width:100% !important;
    max-width:100% !important;
    margin:0 auto !important;
  }

  /* ---- 2. le conteneur redevient une rangee ---- */
  body.single-product .ps-sp-hero,
  body.single-product .ps-sp-hero > .e-con-inner,
  body.single-product #pdpx-hero-sec > .e-con-inner,
  body.single-product #pdpx-hero-sec #pdpx-row,
  body.single-product .ps-pdpx > .e-con-inner,
  body.single-product .ps-pdpx #pdpx-row{
    display:flex !important;
    flex-direction:row !important;
    flex-wrap:nowrap !important;
    justify-content:space-between !important;
    align-items:flex-start !important;
    width:100% !important;
    max-width:100% !important;
    column-gap:4% !important;
    row-gap:0 !important;
  }

  /* ---- 3. colonne GALERIE : 46% ----
     memes selecteurs que tes lignes 2570-2577 et 3374-3382,
     plus la variante .e-con-inner > #pdpx-gal, absente de tes
     regles desktop mais possible sur cette nouvelle page. */
  body.single-product .ps-sp-hero > :is(.ps-sp-gallery,.elementor-widget-woocommerce-product-images),
  body.single-product .ps-sp-hero > .e-con-inner > :is(.ps-sp-gallery,.elementor-widget-woocommerce-product-images),
  body.single-product .ps-sp-hero > .e-con-inner > .e-con:not(.ps-sp-gallery) > .elementor-widget-woocommerce-product-images,
  body.single-product #pdpx-hero-sec #pdpx-row > :is(#pdpx-gal,.ps-sp-gallery,.elementor-widget-woocommerce-product-images),
  body.single-product #pdpx-hero-sec > .e-con-inner > :is(#pdpx-gal,.ps-sp-gallery,.elementor-widget-woocommerce-product-images),
  body.single-product .ps-pdpx #pdpx-row > :is(#pdpx-gal,.ps-sp-gallery,.elementor-widget-woocommerce-product-images),
  body.single-product .ps-pdpx > .e-con-inner > :is(#pdpx-gal,.ps-sp-gallery,.elementor-widget-woocommerce-product-images){
    flex:0 0 46% !important;
    width:46% !important;
    max-width:46% !important;
    min-width:0 !important;
    box-sizing:border-box !important;
  }

  /* ---- 4. le widget images IMBRIQUE reste a 100% ----
     sinon on calculerait 46% de 46%. Selecteurs identiques
     a tes lignes 2578-2585. */
  body.single-product .ps-sp-hero .ps-sp-gallery .elementor-widget-woocommerce-product-images,
  body.single-product #pdpx-hero-sec #pdpx-gal .elementor-widget-woocommerce-product-images,
  body.single-product #pdpx-hero-sec .ps-sp-gallery .elementor-widget-woocommerce-product-images,
  body.single-product .ps-pdpx #pdpx-gal .elementor-widget-woocommerce-product-images{
    flex:1 1 auto !important;
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    box-sizing:border-box !important;
  }

  /* ---- 5. colonne BUY BOX : 50% ----
     forme DESCENDANTE, comme tes lignes 2590-2597 : c'est
     celle qui fonctionne en desktop, donc celle qui matche. */
  body.single-product .ps-sp-summary,
  body.single-product #pdpx-hero-sec .ps-sp-summary,
  body.single-product #pdpx-hero-sec #pdpx-sum,
  body.single-product .ps-pdpx .ps-sp-summary,
  body.single-product .ps-pdpx #pdpx-sum{
    flex:0 0 50% !important;
    width:50% !important;
    max-width:50% !important;
    min-width:0 !important;
    box-sizing:border-box !important;
  }

  /* ---- 6. la galerie en double reste masquee ---- */
  body.single-product .ps-sp-hero .elementor-widget-woocommerce-product-images ~ .ps-sp-gallery,
  body.single-product #pdpx-hero-sec .elementor-widget-woocommerce-product-images ~ :is(#pdpx-gal,.ps-sp-gallery,.elementor-widget-woocommerce-product-images){
    display:none !important;
  }

  /* ---- 7. les cartes de lot doivent tenir dans ~365px ---- */
  body.single-product .ps-bundle-container{ margin-top:14px !important; }
  body.single-product .ps-bundle-wrapper{ gap:8px !important; }
  body.single-product .ps-bundle-card{ min-height:142px !important; padding:16px 6px !important; }
  body.single-product .ps-bundle-title{ font-size:11.5px !important; }
  body.single-product .ps-bundle-off{ font-size:11.5px !important; }
  body.single-product .ps-bundle-price{ font-size:19px !important; }
  body.single-product .ps-bundle-per{ font-size:10px !important; }
  body.single-product .ps-bundle-save{ font-size:9.5px !important; padding:5px 7px !important; }
  body.single-product .ps-bundle-badge{ font-size:9px !important; padding:4px 9px !important; }
  body.single-product .ps-bundle-add-cart{ height:46px !important; font-size:13px !important; }

  /* ---- 8. bandeau de confiance ----
     "Secure Checkout" a 13,5px ne tient pas sur une ligne dans
     365px : on reduit ET on autorise le retour a la ligne,
     plutot que de laisser deborder. */
  body.single-product .pstb{ padding:12px 6px !important; }
  body.single-product .pstb-i{ gap:7px !important; padding:0 6px !important; }
  body.single-product .pstb-ico,
  body.single-product .pstb-ico svg{
    flex-basis:26px !important; width:26px !important; height:26px !important;
  }
  body.single-product .pstb-t{
    font-size:10.5px !important;
    white-space:normal !important;
    line-height:1.3 !important;
  }
}
