/* ============================================
   GRAVANO — PAGE PRODUIT (atterrissage boutique-fil)
   Habillage Gravano de la fiche WooCommerce. Chargé sur is_product()
   uniquement (voir functions.php). Toutes les règles sont préfixées
   body.single-product pour gagner la spécificité sur Blocksy.
   ============================================ */

/* ---- Fond : « la soirée qui avance » — ivoire rosé en haut qui CHAUFFE
   progressivement vers le bas (nude → rose soutenu), pour AMENER le footer
   chaud grenat/nuit sans rupture (cf. CLAUDE.md, diffusion de la chaleur). ---- */
body.single-product,
body.single-product #main-container,
body.single-product #main{
  background:linear-gradient(180deg,
    var(--gv-ivoire) 0%,
    var(--gv-nude) 42%,
    var(--gv-nude-fonce) 74%,
    var(--gv-terracotta) 100%) !important;
}

/* ---- Footer Gravano MINIMAL et chaud sur les pages produit ----
   Rendu via wp_footer → pleine largeur, touche les bords (footer Blocksy masqué).
   On ne garde QUE le bas : copyright + LA question cadeau en DORÉ (style punchline).
   Zéro colonne : la fiche reste focalisée sur la vente, sans friction. */
body.single-product #footer,
body.single-product .ct-footer{ display:none !important; }
.gv-footer--solo{
  background:linear-gradient(180deg,var(--gv-grenat) 0%,#3a1230 46%,var(--gv-nuit) 100%);
}
.gv-footer--minimal{ padding:3.2rem 5vw 2.6rem; }
.gv-footer--minimal .gv-footer-bas{ border-top:none;padding-top:0; }
.gv-footer--minimal .gv-footer-punch{
  color:var(--gv-or) !important;
  font-size:clamp(1.5rem,3.4vw,2.25rem) !important;
  margin-top:.5rem !important;
}

/* ---- Dégager le header fixe (88px) + le médaillon qui déborde ---- */
body.single-product #main{ padding-top:120px; }

/* ---- Conteneur resserré ---- */
body.single-product .ct-container-full,
body.single-product article.type-product{ max-width:1180px;margin-inline:auto; }

/* ---- Lien « retour au fil » ---- */
body.single-product .gv-retour-fil{
  display:inline-flex;align-items:center;gap:.45em;
  font-family:'Figtree',sans-serif;font-size:.82rem;font-weight:600;
  letter-spacing:.12em;text-transform:uppercase;text-decoration:none;
  color:var(--gv-grenat);padding:.5em .95em;margin:0 0 1.1rem;
  border:1px solid var(--gv-nude-fonce);border-radius:999px;background:var(--gv-blanc);
  transition:color .15s ease,border-color .15s ease,transform .15s ease;
}
body.single-product .gv-retour-fil:hover{ color:var(--gv-or);border-color:var(--gv-or);transform:translateX(-2px); }
body.single-product .gv-retour-fleche{ font-size:1.1em;line-height:1; }

/* ---- Fil d'Ariane ---- */
body.single-product nav.ct-breadcrumbs{
  font-family:'Figtree',sans-serif;font-size:.8rem;letter-spacing:.04em;
  color:#9a7d86;margin-bottom:1.1rem;
}
body.single-product nav.ct-breadcrumbs a{ color:var(--gv-grenat);text-decoration:none; }

/* ---- Structure : .product = conteneur simple ; le wrapper interne
   (product-entry-wrapper) porte galerie + résumé côte à côte ; les onglets
   (woocommerce-tabs) sont un second bloc pleine largeur en dessous. ---- */
body.single-product div.product{ display:block;max-width:1180px;margin-inline:auto; }

/* ---- CADRE 1 : galerie | résumé dans un châssis blanc liseré or ---- */
body.single-product .product-entry-wrapper{
  display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:clamp(1.5rem,3vw,2.8rem);align-items:start;
  max-width:none !important;padding:clamp(1.3rem,2.5vw,2.4rem) !important;margin:0 !important;
  background:var(--gv-blanc);border:1px solid var(--gv-nude-fonce);
  border-top:3px solid var(--gv-or);border-radius:16px;
  box-shadow:0 2px 4px rgba(37,16,36,.05),0 24px 60px -20px rgba(117,35,79,.22);
}

/* ============ GALERIE ============ */
body.single-product .woocommerce-product-gallery{
  width:100% !important;margin:0 !important;position:relative;
}
body.single-product .woocommerce-product-gallery__wrapper{ margin:0; }
body.single-product .woocommerce-product-gallery__image{
  border-radius:12px;overflow:hidden;border:1px solid var(--gv-nude);
  background:var(--gv-ivoire);
}
body.single-product .woocommerce-product-gallery__image img{ border-radius:12px;display:block; }
/* Zoom corrigé : Blocksy (structure .flexy) met les images carrées dans un
   cadre plus haut en object-fit:cover → agrandissement/rognage. On repasse en
   contain (image entière, pas de zoom), sur un fond ivoire pour le letterbox. */
body.single-product .woocommerce-product-gallery .flexy-view img{
  object-fit:contain !important;background:var(--gv-ivoire);
}
/* Médaillon Gravano en coin de galerie : RETIRÉ (demande propriétaire — « pas
   top, ne mettons rien »). On ne pose plus rien sur l'image produit. */
body.single-product .woocommerce-product-gallery::before{ content:none !important;display:none !important; }
body.single-product .flex-control-thumbs{ margin-top:.7rem;gap:.5rem;display:flex;flex-wrap:wrap;padding:0; }
body.single-product .flex-control-thumbs li{ width:64px;margin:0; }
body.single-product .flex-control-thumbs img{
  border-radius:8px;border:1px solid var(--gv-nude);opacity:.75;transition:opacity .15s,border-color .15s;
}
body.single-product .flex-control-thumbs img:hover,
body.single-product .flex-control-thumbs img.flex-active{ opacity:1;border-color:var(--gv-or); }

/* ============ RÉSUMÉ ============ */
/* WooCommerce impose .summary{width:48%;float:right} → dans notre grille ça
   laissait ~la moitié de la colonne en blanc à droite. On force le remplissage. */
body.single-product .summary.entry-summary{
  margin:0 !important;padding:0 !important;width:auto !important;max-width:none !important;float:none !important;
}
body.single-product .product_title,
body.single-product .summary .product_title{
  font-family:'Cormorant Garamond',serif !important;font-weight:600 !important;
  font-size:clamp(1.9rem,3.4vw,2.7rem) !important;line-height:1.08 !important;
  color:var(--gv-encre) !important;letter-spacing:.01em;margin:0 0 .5rem !important;text-wrap:balance;
}
/* filet doré sous le titre */
body.single-product .product_title::after{
  content:"";display:block;width:56px;height:2px;background:var(--gv-or);margin-top:.7rem;border-radius:2px;
}

body.single-product .summary .price,
body.single-product p.price{
  font-family:'Cormorant Garamond',serif !important;
  color:var(--gv-grenat) !important;font-size:1.75rem !important;font-weight:600 !important;
  margin:.2rem 0 1rem !important;
}
body.single-product .summary .price del{ color:#b79aa2 !important;font-weight:400;opacity:.8;margin-right:.4em; }
body.single-product .summary .price ins{ text-decoration:none; }

body.single-product .woocommerce-product-details__short-description{
  font-family:'Figtree',sans-serif;font-size:1.02rem;line-height:1.6;color:#4a3a40;
  margin-bottom:1.3rem;
}
body.single-product .woocommerce-product-details__short-description p{ margin:0 0 .6rem; }

/* ---- Masquer le faux sélecteur « Color » (variante unique DSers) ---- */
body.gv-single-variation .variations,
body.gv-single-variation .single_variation_wrap .woocommerce-variation-price,
body.gv-single-variation .reset_variations{ display:none !important; }
/* on garde le prix déjà affiché en haut : pas de doublon */

/* ---- Quantité + bouton ----
   On NE surcharge PAS la structure interne de .quantity : Blocksy y place ses
   propres boutons +/− (.ct-increase / .ct-decrease) en absolu ; un display:flex
   les faisait sortir de leur case. On se contente d'aligner qty + bouton. ---- */
body.single-product form.cart{ margin:0 0 1.2rem !important;display:flex;flex-wrap:wrap;gap:.85rem;align-items:center; }
body.single-product .single_add_to_cart_button.button{
  flex:1;min-width:200px;border:none !important;cursor:pointer;
  font-family:'Figtree',sans-serif !important;font-weight:600 !important;
  letter-spacing:.06em;text-transform:uppercase;font-size:.92rem !important;
  color:var(--gv-nuit) !important;border-radius:12px !important;padding:.95em 1.4em !important;
  background:linear-gradient(160deg,#E9CE6B 0%,var(--gv-or) 48%,#A6801D 100%) !important;
  box-shadow:0 2px 3px rgba(37,16,36,.12),inset 0 1px 0 rgba(255,255,255,.4);
  transition:filter .15s ease,transform .1s ease;
}
body.single-product .single_add_to_cart_button.button:hover{ filter:brightness(1.06); }
body.single-product .single_add_to_cart_button.button:active{ transform:translateY(1px); }
body.single-product .single_add_to_cart_button.button:focus-visible{ outline:2px solid var(--gv-grenat);outline-offset:2px; }
body.single-product .single_add_to_cart_button.disabled{ opacity:.5; }

/* ============ RÉASSURANCE À GOGO ============ */
body.single-product .gv-reassure-produit{
  list-style:none;margin:1.3rem 0 0;padding:1rem 1.1rem;display:grid;gap:.8rem;
  background:var(--gv-ivoire);border:1px solid var(--gv-nude);border-radius:12px;
}
body.single-product .gv-reassure-produit li{ display:flex;gap:.7rem;align-items:center;margin:0; }
/* Pictogramme par ligne (icône en trait, teintée or) dans un médaillon crème
   façon petit sceau officiel — compréhension immédiate + réassurance. */
body.single-product .gv-rp-ico{
  flex:none;width:2rem;height:2rem;border-radius:50%;display:grid;place-items:center;margin-top:.05rem;
  color:var(--gv-or);
  background:radial-gradient(circle at 40% 35%, #fff8ea 0%, #f2e4bf 68%, #e7d29a 100%);
  border:1px solid rgba(201,162,39,.5);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.75),0 1px 2px rgba(37,16,36,.14);
}
body.single-product .gv-rp-ico svg{ width:1.15rem;height:1.15rem;display:block; }

body.single-product .gv-rp-txt{ flex:1;min-width:0;display:flex;flex-direction:column;line-height:1.32; }
body.single-product .gv-rp-txt b{ font-family:'Figtree',sans-serif;font-weight:600;color:var(--gv-encre);font-size:.94rem; }
body.single-product .gv-rp-txt span{ font-family:'Figtree',sans-serif;color:#7a626a;font-size:.82rem; }

/* Preuve à droite de chaque ligne : logos de paiement (ligne paiement) OU
   micro-info distincte (chip doré) sur les autres lignes. */
body.single-product .gv-rp-proof{ flex:none;margin-left:auto;display:flex;align-items:center; }
body.single-product .gv-rp-tag{
  font-family:'Figtree',sans-serif;font-size:.66rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;
  color:var(--gv-grenat);white-space:nowrap;
  padding:.2rem .55rem;border-radius:999px;background:var(--gv-blanc);border:1px solid var(--gv-nude-fonce);
}
.gv-paiements-logos{ display:flex;gap:.32rem;flex-wrap:wrap;justify-content:flex-end;max-width:180px; }
.gv-pay{ width:36px;height:22px;display:block;filter:drop-shadow(0 1px 1.5px rgba(37,16,36,.16)); }

/* ============ CROSS-SELL « On y ajoute souvent… » (panier-moyen) ============
   Comble le vide sous la catégorie par un produit complémentaire qui vend. */
body.single-product .gv-cross{ margin-top:1.4rem; }
body.single-product .gv-cross-titre{
  display:block;font-family:'Figtree',sans-serif;font-size:.72rem;letter-spacing:.14em;
  text-transform:uppercase;color:#8a6f78;margin:0 0 .6rem;
}
body.single-product .gv-cross-card{
  display:flex;gap:.9rem;align-items:center;text-decoration:none;
  background:var(--gv-blanc);border:1px solid var(--gv-nude-fonce);border-top:2px solid var(--gv-or);
  border-radius:14px;padding:.7rem .8rem;
  box-shadow:0 2px 4px rgba(37,16,36,.05),0 14px 34px -20px rgba(117,35,79,.28);
  transition:transform .15s ease,box-shadow .2s ease;
}
body.single-product .gv-cross-card:hover{ transform:translateY(-2px);box-shadow:0 10px 26px -12px rgba(117,35,79,.4); }
body.single-product .gv-cross-img img{ width:68px;height:68px;object-fit:cover;border-radius:10px;display:block;border:1px solid var(--gv-nude); }
body.single-product .gv-cross-info{ display:flex;flex-direction:column;gap:.15rem;min-width:0; }
body.single-product .gv-cross-info b{ font-family:'Cormorant Garamond',serif;font-size:1.2rem;font-weight:600;color:var(--gv-encre);line-height:1.1; }
body.single-product .gv-cross-prix{ font-family:'Cormorant Garamond',serif;color:var(--gv-grenat);font-weight:600;font-size:1.02rem; }
body.single-product .gv-cross-cta{ font-family:'Figtree',sans-serif;font-size:.78rem;font-weight:600;letter-spacing:.04em;color:var(--gv-or);margin-top:.15rem; }
/* LA question qui joue son rôle (angle cadeau), mise en valeur : petit cadre
   ivoire liseré, accent doré en tête, Cormorant italique grenat. Élégant et
   calme (boutique de détente), pas criard. */
body.single-product .gv-produit-offrir{
  font-family:'Cormorant Garamond',serif;font-style:italic;font-weight:500;
  font-size:1.3rem;line-height:1.35;color:var(--gv-grenat);text-align:center;
  margin:1.4rem 0 0;padding:1.2rem 1.3rem 1rem;position:relative;
  background:linear-gradient(160deg,var(--gv-blanc),var(--gv-ivoire));
  border:1px solid var(--gv-nude-fonce);border-radius:12px;
}
body.single-product .gv-produit-offrir::before{
  content:"";position:absolute;left:50%;top:-1px;transform:translateX(-50%);
  width:54px;height:2px;background:var(--gv-or);border-radius:0 0 2px 2px;
}

/* ---- Méta (UGS / catégorie) discrets ---- */
body.single-product .product_meta{
  margin-top:1.2rem;padding-top:1rem;border-top:1px dashed var(--gv-nude-fonce);
  font-family:'Figtree',sans-serif;font-size:.8rem;color:#9a7d86;
}
body.single-product .product_meta a{ color:var(--gv-grenat);text-decoration:none; }
body.single-product .product_meta .sku_wrapper{ display:none; } /* SKU DSers = technique, on cache */

/* ============ ONGLETS (description longue) ============ */
body.single-product .woocommerce-tabs{
  margin-top:2.2rem;background:var(--gv-blanc);border:1px solid var(--gv-nude-fonce);
  border-radius:16px;padding:clamp(1.2rem,2.5vw,2rem);
  box-shadow:0 2px 4px rgba(37,16,36,.04);
}
body.single-product .woocommerce-tabs ul.tabs{ margin:0 0 1.2rem;padding:0;border:none;display:flex;flex-wrap:wrap;gap:.4rem; }
body.single-product .woocommerce-tabs ul.tabs::before{ display:none; }
body.single-product .woocommerce-tabs ul.tabs li{
  background:transparent;border:none;margin:0;padding:0;
}
body.single-product .woocommerce-tabs ul.tabs li a{
  font-family:'Figtree',sans-serif;font-weight:600;font-size:.82rem;letter-spacing:.08em;text-transform:uppercase;
  color:#9a7d86 !important;padding:.5em .9em;border-radius:999px;text-decoration:none;
  border:1px solid transparent;
}
body.single-product .woocommerce-tabs ul.tabs li.active a{
  color:var(--gv-grenat) !important;background:var(--gv-ivoire);border-color:var(--gv-nude-fonce);
}
/* Tuer l'indicateur de soulignement natif Blocksy/Woo sous l'onglet actif */
body.single-product .woocommerce-tabs ul.tabs li a::before,
body.single-product .woocommerce-tabs ul.tabs li a::after,
body.single-product .woocommerce-tabs ul.tabs::after{ display:none !important;content:none !important; }
body.single-product .woocommerce-tabs ul.tabs li{ border-bottom:none !important; }
body.single-product .woocommerce-Tabs-panel h2{
  font-family:'Cormorant Garamond',serif;font-weight:600;color:var(--gv-encre);
  font-size:1.5rem;margin:0 0 .8rem;
}
body.single-product .woocommerce-Tabs-panel{
  font-family:'Figtree',sans-serif;font-size:1.02rem;line-height:1.7;color:#4a3a40;
}
body.single-product .woocommerce-Tabs-panel p{ margin:0 0 .9rem; }

/* ---- Resserrer le rythme vertical du résumé (zéro zone blanche) ---- */
body.single-product .summary .ct-product-divider{
  margin:.85rem 0 !important;background:var(--gv-nude) !important;height:1px !important;
}
body.single-product .summary .ct-product-add-to-cart{ margin-top:.2rem !important; }
/* Stock : mention d'urgence (le vrai chiffre est masqué côté PHP), avec un
   point qui pulse discrètement pour l'urgence — sans crier. */
body.single-product .summary .stock{
  font-family:'Figtree',sans-serif;font-size:.86rem;font-weight:600;color:var(--gv-grenat) !important;
  margin:0 0 .7rem;display:flex;align-items:center;gap:.5em;
}
body.single-product .summary .stock::before{
  content:"";flex:none;width:.5rem;height:.5rem;border-radius:50%;background:var(--gv-terracotta);
  box-shadow:0 0 0 3px rgba(217,122,150,.28);animation:gv-stock-pulse 1.9s ease-in-out infinite;
}
@keyframes gv-stock-pulse{ 50%{ box-shadow:0 0 0 7px rgba(217,122,150,0); } }
@media (prefers-reduced-motion:reduce){ body.single-product .summary .stock::before{ animation:none; } }

/* ---- Onglets : supprimer tout indicateur/soulignement natif résiduel ---- */
body.single-product .woocommerce-tabs ul.tabs li a{ box-shadow:none !important;border-bottom:0 !important;text-decoration:none !important; }
body.single-product .woocommerce-tabs ul.tabs li::after,
body.single-product .woocommerce-tabs ul.tabs li::before,
body.single-product .woocommerce-tabs ul.tabs li.active::after,
body.single-product .woocommerce-tabs ul.tabs li.active a::after{ content:none !important;display:none !important;background:none !important; }
body.single-product .woocommerce-tabs ul.tabs li.active a{ border:1px solid var(--gv-nude-fonce) !important; }

/* ---- Équilibrage : brider un peu la hauteur de la galerie pour qu'elle ne
   dépasse pas trop le résumé (moins de blanc à droite). ---- */
body.single-product .woocommerce-product-gallery__image img{ max-height:540px;object-fit:contain; }

/* ---- Le fil d'Ariane + « retour au fil » tombent naturellement sous le bas
   du médaillon (grâce au padding-top de #main), donc pas d'indentation : on
   les aligne sur le bord gauche de la carte produit. ---- */

/* ============ RESPONSIVE ============ */
@media (max-width:820px){
  body.single-product #main{ padding-top:96px; }
  /* Mobile : Blocksy (.is-width-constrained) fixait une largeur qui collait la
     carte à gauche. On donne au .product une gouttière latérale et on laisse
     les DEUX cartes (wrapper + onglets) la remplir → marges égales, centrées
     sur le dégradé, cohérentes entre elles. */
  body.single-product div.product{ padding-inline:16px; }
  body.single-product .product-entry-wrapper,
  body.single-product .woocommerce-tabs{
    grid-template-columns:1fr;gap:1.4rem;
    width:auto !important;max-width:none !important;margin:0 !important;
  }
  /* Aligner le bouton « retour au fil » sur la marge des cartes (sinon collé au bord). */
  body.single-product .gv-retour-fil{ margin-left:16px; }
}

/* ============ CORRECTIFS FICHE (demande propriétaire) ============ */
/* Mention CATÉGORIE retirée partout (le client sait où il est) : le meta
   « Catégorie : … » ET le fil d'Ariane « Accueil › Parfums › … ». */
body.single-product .product_meta{ display:none !important; }
body.single-product .woocommerce-breadcrumb,
body.single-product nav.woocommerce-breadcrumb,
body.single-product .ct-breadcrumbs,
body.single-product .ct-breadcrumbs-container{ display:none !important; }

/* Description du produit COURANT dans la colonne résumé : comble le blanc et
   présente le produit avant toute reco. Sa longueur équilibre la hauteur avec
   la galerie. Séparée par un filet, lecture confortable. */
body.single-product .gv-produit-desc{
  margin-top:1.6rem;padding-top:1.5rem;border-top:1px solid var(--gv-nude);
  font-family:'Figtree',sans-serif;color:var(--gv-encre);line-height:1.7;font-size:.98rem;
}
body.single-product .gv-produit-desc p{ margin:0 0 1rem; }
body.single-product .gv-produit-desc p:last-child{ margin-bottom:0; }
body.single-product .gv-produit-desc h2,
body.single-product .gv-produit-desc h3{
  font-family:'Cormorant Garamond',serif;font-weight:600;color:var(--gv-grenat);
  font-size:1.3rem;margin:1.4rem 0 .6rem;
}

/* Blocksy MASQUE les produits liés en mobile (display:none) → on force la
   section « Souvent achetés ensemble » à rester visible : c'est notre UNIQUE
   bloc de reco, il doit apparaître sur TOUS les formats. ET dans un CADRE
   (carte crème liseré or), comme l'ancienne carte de description. */
body.single-product .related.products{
  display:block !important;
  background:var(--gv-blanc);
  border:1px solid var(--gv-nude-fonce);border-top:3px solid var(--gv-or);
  border-radius:16px;
  padding:clamp(1.4rem,3vw,2.4rem);
  box-shadow:0 2px 4px rgba(37,16,36,.05),0 24px 60px -22px rgba(117,35,79,.22);
  margin:2.4rem auto 0;max-width:1170px;
}
body.single-product .related.products > h2{
  font-family:'Cormorant Garamond',serif;font-weight:600;color:var(--gv-encre);
  font-size:1.7rem;margin:0 0 1.4rem;
}
/* Blocksy affiche encore la catégorie (« Parfums ») sous chaque produit lié →
   même bruit que la mention catégorie retirée de la fiche. On la masque aussi. */
body.single-product .related.products [class*="ct-term-"],
body.single-product .related.products .ct-woocommerce-product-categories{ display:none !important; }

/* Onglets « Le détail / Avis » : VIDES (aucun attribut affichable, 0 avis) →
   une grande boîte blanche inutile (« le bazar »). Masqués pour le moment : la
   description vit désormais dans le résumé, et les avis reviendront quand il y
   en aura vraiment. */
body.single-product .woocommerce-tabs{ display:none !important; }

/* ————— PRODUITS LIÉS : boutons FINS près du prix (finesse) —————
   Les gros blocs « Ajouter au panier / Choix des options » alourdissaient les
   cartes. On rend le prix et le bouton inline (sur une ligne) et le bouton
   PETIT et discret. NE TOUCHE PAS au CTA principal `.single_add_to_cart_button`. */
body.single-product .related.products li.product{ }
body.single-product .related.products li.product .price{
  display:inline-block !important; vertical-align:middle;
  margin:0 .55rem .2rem 0 !important; font-size:1rem !important;
}
body.single-product .related.products li.product .ct-woo-card-actions{
  display:inline-block !important; vertical-align:middle; margin-top:.2rem !important;
}
body.single-product .related.products li.product .button,
body.single-product .related.products li.product .add_to_cart_button{
  display:inline-flex !important; width:auto !important; min-width:0 !important;
  padding:.4rem .85rem !important;
  font-size:.7rem !important; letter-spacing:.03em !important; line-height:1.2 !important;
  border-radius:9px !important;
  box-shadow:0 4px 11px -5px rgba(176,74,108,.55) !important;
  transform:none !important;
}
body.single-product .related.products li.product .button:hover,
body.single-product .related.products li.product .add_to_cart_button:hover{
  transform:translateY(-1px) !important;
}

/* « Voir le panier » (gris, après ajout au panier) : INUTILE en page produit —
   le panier du header reste toujours à l'écran, on y va quand on veut. Retiré
   (on garde le message de confirmation, on enlève juste le bouton). */
body.single-product .woocommerce-message a.wc-forward,
body.single-product .woocommerce-message a.button.wc-forward,
body.single-product a.added_to_cart{ display:none !important; }

/* Produits liés : bouton UNIFORME « Découvrir → », petit et fin. */
body.single-product .related.products li.product .gv-loop-decouvrir{
  display:inline-flex !important; width:auto !important; min-width:0 !important;
  padding:.4rem .95rem !important; font-size:.72rem !important; letter-spacing:.05em !important;
  border-radius:9px !important; transform:none !important;
  box-shadow:0 4px 11px -5px rgba(176,74,108,.5) !important;
}
body.single-product .related.products li.product .gv-loop-decouvrir:hover{ transform:translateY(-1px) !important; }

/* ————— DUO CADEAU (levier AOV) : sous l'ajout au panier ————— */
body.single-product .gv-duo{
  display:flex;align-items:center;gap:.9rem;margin:1.1rem 0 0;padding:.85rem 1rem;
  background:linear-gradient(160deg,#FFF9EC,#FBEFD8);border:1px solid #ecd6ad;border-radius:13px;
  box-shadow:0 2px 4px rgba(37,16,36,.04),0 16px 32px -26px rgba(166,128,29,.4);
}
body.single-product .gv-duo-plus{
  flex:0 0 auto;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;
  background:linear-gradient(160deg,#E9CE6B,var(--gv-or) 55%,#A6801D);color:#2a1e06;font-weight:800;font-size:1.1rem;line-height:1;
}
body.single-product .gv-duo-txt{ flex:1 1 auto;min-width:0; }
body.single-product .gv-duo-t{ display:block;font-family:'Cormorant Garamond',Georgia,serif;font-weight:600;font-size:1.15rem;color:var(--gv-grenat);line-height:1.15; }
body.single-product .gv-duo-d{ display:block;font-family:'Figtree',sans-serif;font-size:.86rem;color:#6a4e2a;line-height:1.4;margin-top:.1rem; }
body.single-product .gv-duo-d strong{ color:var(--gv-grenat); }
body.single-product .gv-duo-btn{
  flex:0 0 auto;font-family:'Figtree',sans-serif;font-weight:700;font-size:.8rem;letter-spacing:.02em;color:#2a1e06;text-decoration:none;
  background:linear-gradient(160deg,#E9CE6B,var(--gv-or) 48%,#A6801D);padding:.55rem 1rem;border-radius:10px;
  box-shadow:0 8px 18px -8px rgba(166,128,29,.5);transition:transform .16s ease;white-space:nowrap;
}
body.single-product .gv-duo-btn:hover{ transform:translateY(-2px); }
@media (max-width:520px){ body.single-product .gv-duo{ flex-wrap:wrap; } body.single-product .gv-duo-btn{ width:100%;text-align:center;margin-top:.3rem; } }
