/* ==========================================================================
   Fiche produit (templates/single-product.html) : galerie à gauche, colonne
   d'achat collante à droite ; offres, favoris, « souvent associé », produit à venir,
   détails, avis, vus récemment, barre d'achat collante (mobile).
   ========================================================================== */
.fiche-haut{padding-block:26px 22px}
.fiche{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(40px,6vw,96px);align-items:start}

/* ---------- Galerie : le produit détouré respire dans son cadre ----------
   PIÈGE (vécu) : sans largeur posée, la colonne des vignettes prend ~45 % de la galerie
   dès qu'un produit a plusieurs photos. Colonne fixe en ordinateur, rangée sous l'image en mobile. */
.fiche-galerie .wc-block-product-gallery-large-image{flex:1 1 auto;min-width:0;border-radius:var(--rayon-grand);overflow:hidden;
  background:radial-gradient(70% 60% at 50% 45%,#fff 0%,#fff 45%,color-mix(in srgb,var(--surface-rose) 70%,#fff) 100%)!important;
  box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--trait) 60%,transparent)}
.fiche-galerie .wc-block-product-gallery-large-image img,.wp-block-woocommerce-product-gallery-large-image img{width:100%;height:100%;padding:8%!important;object-fit:contain!important;
  filter:drop-shadow(0 24px 22px color-mix(in srgb,var(--nuit) 16%,transparent))}
.fiche-galerie .wc-block-product-gallery-thumbnails__thumbnail:has(img.wc-block-woocommerce-product-gallery-thumbnails__thumbnail__image--is-active),
.fiche-galerie .wc-block-product-gallery-thumbnails__thumbnail:has(.is-active){box-shadow:0 0 0 2px var(--rose)}
.fiche-galerie .wc-block-product-gallery-thumbnails{flex:0 0 76px;width:76px!important;max-width:76px;margin-right:16px;align-self:flex-start}
.fiche-galerie .wc-block-product-gallery-thumbnails__scrollable{display:flex;flex-direction:column;gap:10px}
.fiche-galerie .wc-block-product-gallery-thumbnails__thumbnail{width:76px;overflow:hidden;background:var(--surface);border-radius:calc(var(--rayon) * .6)}
.wp-block-woocommerce-product-gallery-thumbnails img,.fiche-galerie .wc-block-product-gallery-thumbnails img{width:100%;height:100%;padding:8%;object-fit:contain!important;background:#fff;border-radius:calc(var(--rayon) * .6)}
.fiche-galerie .wc-block-components-product-sale-badge{top:16px;right:16px;margin:0}

/* ---------- Colonne d'achat ---------- */
.fiche-achat{position:static;display:flex;flex-direction:column;gap:14px}
body.admin-bar .fiche-achat{top:calc(var(--entete-h) + 64px)}
.fiche-surtitre{font-size:13px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--sourdine)}
.fiche-surtitre a{text-decoration:none}
.fiche-titre-ligne{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}
.fiche-titre{margin-top:14px;font-size:clamp(32px,3.3vw,49px);font-weight:400;line-height:1}
.fiche-note:not(:empty){margin-top:12px}
.fiche-prix{margin-top:18px;font:600 34px/1 var(--police-titres)}
.fiche-prix del{color:var(--sourdine);font-size:.8em;margin-right:10px}
.fiche-prix ins{text-decoration:none;color:var(--promo)}
.fiche-promo{display:inline-flex;align-items:center;gap:8px;align-self:flex-start;margin-top:-2px;padding:6px 14px;border-radius:999px;
  background:color-mix(in srgb,var(--surface-rose) 70%,#fff);color:var(--promo);font-size:14px;font-weight:700;text-decoration:none;transition:background-color .3s}
.fiche-promo::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--degrade-promo)}
@media (hover:hover){.fiche-promo:hover{background:var(--surface-rose);color:var(--promo)}}
.fiche-resume{margin-top:8px;color:var(--sourdine)}
.fiche-resume p{margin:0}
.fiche-reassurance{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:18px;padding:16px;border-radius:var(--rayon-grand);background:var(--surface);
  border:1px solid color-mix(in srgb,var(--trait) 70%,transparent)}
.fiche-reassurance .promesse{flex-direction:column;align-items:center;gap:8px;padding:6px 4px;text-align:center;font-size:13px;font-weight:600;line-height:1.3}
.fiche-reassurance .promesse::before{width:22px;height:22px;color:var(--rose-vif);background:var(--rose-vif)}

/* formulaire d'achat : variations (pastilles), quantité, bouton */
.fiche-ajout{margin-top:30px;padding-top:26px;border-top:1px solid var(--trait)}
/* PIÈGE (18-10) : WooCommerce enveloppe le formulaire d'achat dans sa zone d'avis (.wc-block-components-notices),
   posée directement dans la colonne de la fiche (flex, éléments alignés au début). Sans le sélecteur de quantité
   (offres Duo, Famille, Pack), cette enveloppe se rétrécissait à la largeur du bouton : bouton et trait plus courts.
   Elle prend désormais toute la largeur, quelle que soit l'offre. */
.fiche-achat > :has(> .fiche-ajout), .fiche > :has(> .fiche-ajout){align-self:stretch;width:100%}
.wc-block-product-filter-chips__fieldset{border:0!important;padding:0!important;margin:0!important;min-width:0}
/* styles en ligne de WooCommerce → !important */
.fiche-ajout .wp-block-woocommerce-add-to-cart-with-options-variation-selector-attribute>.wp-block-group{gap:12px!important;margin:0 0 24px!important}
.fiche-ajout .wp-block-woocommerce-add-to-cart-with-options-variation-selector-attribute-name{font-size:13px;font-weight:600;letter-spacing:.12em;text-transform:uppercase}
.fiche-ajout .wc-block-product-filter-chips__items{gap:8px}
.fiche-ajout .wc-block-product-filter-chips__item{display:inline-flex;align-items:center;justify-content:center;min-width:52px;height:44px;min-height:44px;padding:0 18px;
  border:1px solid var(--trait)!important;border-radius:999px;background:var(--surface)!important;color:var(--texte);font-size:15px;font-weight:600;
  transition:border-color .2s,background-color .2s,color .2s}
.fiche-ajout .wc-block-product-filter-chips__item[aria-checked=true]{border-color:var(--accent)!important;background:var(--accent)!important;color:var(--sur-accent)!important}
.fiche-ajout .wp-block-woocommerce-add-to-cart-with-options-variation-description{margin:0 0 18px!important;font-size:15px;color:var(--sourdine)}
/* PIÈGE : pour une variation en rupture, l'indicateur garde la classe --in-stock du parent */
.fiche-ajout .wc-block-components-product-stock-indicator{margin:0 0 16px!important;font-size:14px}
.fiche-ajout .wc-block-components-product-stock-indicator:empty{display:none}
/* quantité + bouton sur une ligne ; WooCommerce règle le bouton à 3 classes : on qualifie */
.fiche-ajout .wp-block-group:has(>.wp-block-woocommerce-product-button){display:flex;flex-wrap:nowrap;align-items:stretch;gap:10px}
.wp-block-add-to-cart-with-options-quantity-selector,.wc-block-add-to-cart-with-options-quantity-selector{border:0!important;box-shadow:none!important;background:none!important}
.fiche-ajout .wc-block-components-quantity-selector{width:124px;height:56px;margin:0;border:0!important}
.offre-multiple .fiche-ajout :is(.wc-block-components-quantity-selector,.wp-block-add-to-cart-with-options-quantity-selector){display:none!important}   /* une offre a sa quantité */
.fiche-ajout .wp-block-woocommerce-product-button{flex:1;min-width:0;margin:0;align-items:stretch}
/* même bouton sur le site (.single_add_to_cart_button) et dans l'éditeur de site (.wc-block-components-product-button__button) */
.fiche-ajout .wp-block-woocommerce-product-button .wp-block-button{width:100%}
.fiche-ajout :is(.single_add_to_cart_button,.wc-block-components-product-button__button).wp-block-button__link{display:flex;align-items:center;width:100%;height:52px;justify-content:center}
.fiche-ajout .single_add_to_cart_button{flex:1;min-height:56px;padding:0 32px;border-radius:999px;font-size:16px}
.fiche-ajout .single_add_to_cart_button.est-en-cours{opacity:.6;pointer-events:none}
.single_add_to_cart_button{justify-content:center!important;text-align:center!important}
.fiche-ajout .added_to_cart{display:none}
/* le prix de l'offre choisie, sur le bouton (produit.js) */
.bouton-prix{font-weight:800;opacity:.92}
.bouton-prix::before{content:"·";margin:0 8px;opacity:.6}

/* ---------- Offres : cartes visuelles (inc/fiche-produit.php) ---------- */
.offres{display:grid;gap:14px;margin:8px 0 6px;scroll-margin-top:calc(var(--entete-h) + 24px)}
.offres__titre{margin:0 0 2px;font-size:13px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--sourdine)}
/* Choisir une offre ne déplace rien : même bordure (2 px) dans tous les états, aucune carte ni image
   qui se soulève ou grossit. Seuls changent le contour, l'ombre, le fond et la coche. */
.offre{position:relative;display:grid;grid-template-columns:76px minmax(0,1fr) auto 26px;align-items:center;gap:16px;
  padding:16px 16px 16px 14px;border-radius:22px;cursor:pointer;-webkit-tap-highlight-color:transparent;
  background:linear-gradient(#fff,#fff) padding-box,linear-gradient(var(--trait),var(--trait)) border-box;border:2px solid transparent;
  box-shadow:0 1px 0 color-mix(in srgb,var(--texte) 4%,transparent);
  transition:box-shadow .45s var(--courbe),background .45s var(--courbe)}
@media (hover:hover){.offre:hover{box-shadow:0 16px 36px -18px color-mix(in srgb,var(--nuit) 35%,transparent)}}
.offre:has(input:focus-visible){outline:2px solid var(--nuit);outline-offset:3px}
.offre input{position:absolute;opacity:0;pointer-events:none}
.offre--vedette{margin-top:12px;padding-top:26px;background:linear-gradient(135deg,#fff 0%,color-mix(in srgb,var(--surface-rose) 70%,#fff) 100%) padding-box,linear-gradient(120deg,color-mix(in srgb,var(--rose-vif) 55%,transparent),color-mix(in srgb,var(--lilas) 55%,transparent)) border-box}
.offre.est-choisie{
  background:linear-gradient(135deg,#fff 0%,color-mix(in srgb,var(--surface-rose) 55%,#fff) 100%) padding-box,linear-gradient(120deg,var(--rose-vif),var(--lilas) 55%,var(--nuit)) border-box;
  box-shadow:0 22px 46px -20px color-mix(in srgb,var(--rose-vif) 60%,transparent),0 8px 18px -12px color-mix(in srgb,var(--nuit) 40%,transparent)}
/* ruban de l'offre la plus avantageuse, avec un reflet qui passe */
.offre__ruban{position:absolute;top:-12px;left:18px;display:inline-flex;align-items:center;gap:6px;padding:5px 12px 5px 10px;border-radius:999px;overflow:hidden;
  background:var(--degrade-promo);color:#fff;font-size:13px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;box-shadow:0 8px 20px -8px var(--rose-vif)}
.offre__ruban::before{content:"✦";font-size:13px;letter-spacing:0}
.offre__ruban::after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,transparent 30%,rgba(255,255,255,.55) 50%,transparent 70%);transform:translateX(-120%);animation:ruban-reflet 3.6s ease-in-out infinite}
@keyframes ruban-reflet{55%,100%{transform:translateX(120%)}}
/* visuel : les produits de l'offre */
.offre__visuel{position:relative;width:76px;height:76px;border-radius:18px;display:flex;align-items:center;justify-content:center;overflow:hidden;
  background:radial-gradient(circle at 50% 40%,#fff 0%,var(--surface-rose) 75%)}
.offre__img{width:62px;height:62px;object-fit:contain!important}
.offre__visuel--2 .offre__img,.offre__visuel--3 .offre__img{width:46px;height:46px;margin-inline:-9px}
.offre__visuel--2 .offre__img:first-child{transform:translate(2px,-7px) rotate(-8deg)}
.offre__visuel--2 .offre__img:last-child{transform:translate(-2px,7px) rotate(8deg)}
.offre__visuel--3 .offre__img{width:38px;height:38px}
.offre__visuel--duo .offre__img{width:34px;height:34px}
.offre__plus-signe{display:grid;place-items:center;width:16px;height:16px;margin-inline:-2px;border-radius:50%;background:var(--nuit);color:#fff;font-size:13px;font-weight:700;z-index:1}
/* texte */
.offre__corps{display:flex;flex-direction:column;align-items:flex-start;gap:4px;min-width:0;text-align:left}
.offre__haut{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.offre__nom{font:400 24px/1.05 var(--police-titres);color:var(--texte)}
.offre__badge{padding:4px 10px;border-radius:999px;background:var(--nuit);color:#fff;font-size:13px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}
.offre__detail{font-size:14px;line-height:1.35;color:var(--sourdine)}
.offre__atouts{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}
.offre__atout{display:inline-flex;align-items:center;gap:5px;padding:3px 9px 3px 7px;border-radius:12px;background:color-mix(in srgb,var(--surface-rose) 80%,#fff);font-size:13px;font-weight:600;color:var(--texte)}
.offre__atout::before{content:"";width:12px;height:12px;background:currentColor;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center/contain no-repeat;
          mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center/contain no-repeat}
.offre__atout--livraison{background:var(--nuit);color:#fff}
.offre__atout--livraison::before{content:"🚚";background:none;-webkit-mask:none;mask:none;width:auto;height:auto;font-size:13px}
/* prix */
.offre__prix{display:flex;flex-direction:column;align-items:flex-end;text-align:right;gap:3px;white-space:nowrap}
.offre__remise{padding:4px 9px;border-radius:999px;background:var(--promo);color:#fff;font-size:13px;font-weight:800;letter-spacing:.02em}
.offre__prix ins{text-decoration:none;font:600 28px/1 var(--police-titres);color:var(--texte)}
.offre__prix del{font-size:14px;color:var(--sourdine)}
.offre__eco{font-size:13px;font-weight:700;color:var(--promo)}
.offre__unite{font-size:13px;color:var(--sourdine)}
/* case de sélection */
.offre__case{width:26px;height:26px;border-radius:50%;border:1.5px solid var(--trait);background:#fff;display:grid;place-items:center;transition:background .35s,border-color .35s}
.offre__case::after{content:"";width:13px;height:13px;background:#fff;transform:scale(0);transition:transform .4s var(--courbe);
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='3.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center/contain no-repeat;
          mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='3.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center/contain no-repeat}
.offre.est-choisie .offre__case{background:var(--nuit);border-color:var(--nuit)}
.offre.est-choisie .offre__case::after{transform:scale(1)}
/* coloris du produit compagnon (pack) : toujours affiché (rien ne s'ouvre ni ne pousse la page) ;
   le choisir choisit l'offre (produit.js) */
.offre__choix{margin:-4px 6px 0;transition:opacity .35s;padding:12px 16px;border-radius:0 0 18px 18px;background:color-mix(in srgb,var(--surface-rose) 70%,#fff);font-size:14px;color:var(--texte)}
.offre:not(.est-choisie)+.offre__choix{opacity:.7}
.offre__choix select{margin-left:8px;min-height:40px;border-radius:999px;padding:6px 14px;background:#fff;border:1px solid var(--trait)}

/* ---------- Souvent associé ---------- */
.associe{margin-top:22px}
.associe__titre{margin:0 0 10px;font-size:13px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--sourdine)}
.associe__carte{display:grid;grid-template-columns:72px minmax(0,1fr) auto;align-items:center;gap:16px;padding:14px 16px 14px 14px;border-radius:22px;background:#fff;
  border:1px dashed color-mix(in srgb,var(--lilas) 70%,transparent)}
.associe__image{display:grid;place-items:center;width:72px;height:72px;border-radius:16px;background:radial-gradient(circle at 50% 40%,#fff,var(--surface-rose) 80%)}
.associe__image img{width:58px;height:58px;object-fit:contain}
.associe__corps{display:flex;flex-direction:column;align-items:flex-start;gap:3px;min-width:0;text-align:left}
.associe__nom{font:400 20px/1.1 var(--police-titres);color:var(--texte);text-decoration:none}
.associe__texte{font-size:13.5px;color:var(--sourdine)}
.associe__prix{font-weight:700;font-size:15px}
.associe__choix{margin-top:4px;min-height:34px;padding:4px 12px;border-radius:999px;border:1px solid var(--trait);background:#fff;font:inherit;font-size:13.5px}
.associe__ajout{position:relative;display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 18px;border-radius:999px;border:0;cursor:pointer;
  background:var(--nuit);color:#fff;font:700 14px/1 var(--police-texte);transition:transform .3s var(--courbe),background .3s}
.associe__ajout::before{content:"+";font-size:18px;font-weight:400}
@media (hover:hover){.associe__ajout:hover{transform:scale(1.05)}}
.associe__ajout.est-en-cours{opacity:.6;pointer-events:none}
.associe__ajout.est-ajoute{background:var(--promo)}
.associe__ajout.est-ajoute::before{content:"✓";font-size:16px}

/* ---------- Favori : le cœur (fiche produit et Mon compte → Favoris) ---------- */
.coeur{width:44px;height:44px;flex:none;border-radius:50%;border:1px solid var(--trait);background:#fff;cursor:pointer;display:grid;place-items:center;padding:0;
  transition:transform .35s var(--courbe),background .3s,border-color .3s;box-shadow:0 6px 16px -10px color-mix(in srgb,var(--nuit) 40%,transparent)}
.coeur::before{content:"";width:20px;height:20px;background:var(--texte);
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linejoin='round'%3E%3Cpath d='M12 20s-7.5-4.4-7.5-10.1A4.4 4.4 0 0 1 12 7.4a4.4 4.4 0 0 1 7.5 2.5C19.5 15.6 12 20 12 20z'/%3E%3C/svg%3E") center/contain no-repeat;
          mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linejoin='round'%3E%3Cpath d='M12 20s-7.5-4.4-7.5-10.1A4.4 4.4 0 0 1 12 7.4a4.4 4.4 0 0 1 7.5 2.5C19.5 15.6 12 20 12 20z'/%3E%3C/svg%3E") center/contain no-repeat}
@media (hover:hover){.coeur:hover{transform:scale(1.08)}}
.coeur.est-actif{background:color-mix(in srgb,var(--surface-rose) 80%,#fff);border-color:var(--rose)}
.coeur.est-actif::before{background:var(--rose-vif);
  -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 20s-7.5-4.4-7.5-10.1A4.4 4.4 0 0 1 12 7.4a4.4 4.4 0 0 1 7.5 2.5C19.5 15.6 12 20 12 20z'/%3E%3C/svg%3E");
          mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 20s-7.5-4.4-7.5-10.1A4.4 4.4 0 0 1 12 7.4a4.4 4.4 0 0 1 7.5 2.5C19.5 15.6 12 20 12 20z'/%3E%3C/svg%3E")}
.coeur.bat{animation:coeur-bat .6s var(--courbe)}

/* ---------- Produit à venir : liste d'attente ---------- */
.bientot{display:flex;flex-direction:column;align-items:flex-start;gap:12px;margin:10px 0;padding:24px;border-radius:22px;
  background:linear-gradient(135deg,#fff,color-mix(in srgb,var(--surface-rose) 70%,#fff));border:1px solid color-mix(in srgb,var(--rose) 50%,transparent)}
.bientot__pastille{display:inline-flex;align-items:center;gap:8px;padding:6px 14px;border-radius:999px;background:var(--nuit);color:#fff;font-size:13px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.bientot__pastille::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--rose);animation:bientot-pouls 1.8s ease-in-out infinite}
@keyframes bientot-pouls{50%{box-shadow:0 0 0 6px color-mix(in srgb,var(--rose) 0%,transparent);opacity:.6}}
.bientot__texte{margin:0;color:var(--sourdine);max-width:44ch}
.bientot__form{display:flex;flex-wrap:wrap;gap:10px;width:100%}
.bientot__form input[type=email]{flex:1 1 220px;min-height:52px;padding:0 20px;border-radius:999px;border:1px solid var(--trait);background:#fff;font:inherit}
.bientot__pot{position:absolute!important;left:-9999px!important;width:1px;height:1px;opacity:0}   /* piège à robots */
.bientot__bouton{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:0 28px;border:0;border-radius:999px;cursor:pointer;
  background:var(--accent);color:var(--sur-accent);font-weight:700;text-decoration:none}
.bientot__retour{flex-basis:100%;margin:0;min-height:1em;font-size:14px;font-weight:600;color:var(--texte)}
.bientot__form.est-envoye input,.bientot__form.est-envoye button{display:none}
.bientot__form.est-envoye .bientot__retour::before{content:"✓ ";color:var(--promo)}
.bientot__mention{margin:0;font-size:13px;color:var(--sourdine)}

/* ---------- Tout savoir : description, caractéristiques, volets ---------- */
.fiche-details{display:grid;grid-template-columns:minmax(0,1fr);gap:24px;align-items:start;margin-top:32px}
.fiche-details-titre{grid-column:1/-1;font-size:clamp(29px,3.2vw,46px);line-height:1.15}
.fiche-details-texte{grid-column:1}
.fiche-description{font-size:16px;line-height:1.75;color:color-mix(in srgb,var(--texte) 82%,transparent)}
.fiche-description h2{font:400 26px/1.15 var(--police-titres);margin:24px 0 8px}
.fiche-description p{color:var(--sourdine)}
.fiche-description p+p{margin-top:16px}
/* PIÈGE : le bloc Caractéristiques est un figure.wp-block-table : qualifier par « table » */
.fiche-caracteristiques{margin:36px 0 0}
.fiche-caracteristiques table{width:100%;border-collapse:collapse;font-size:15px}
.fiche-caracteristiques table th,.fiche-caracteristiques table td{padding:14px 0;border:0;border-top:1px solid var(--trait);text-align:left;vertical-align:top;font-weight:400}
.fiche-caracteristiques table tr:last-child>*{border-bottom:1px solid var(--trait)}
.fiche-caracteristiques table th{width:40%;font-size:13px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;padding-top:16px}
.fiche-caracteristiques td p{margin:0}
.fiche-caracteristiques a{text-decoration:none}
.fiche-volets{grid-column:1;align-self:start;border-top:1px solid var(--trait)}
.fiche-volets .wp-block-details{border-bottom:1px solid var(--trait);margin:0}
.fiche-volets summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:22px 0;font:400 24px/1.2 var(--police-titres)}
.fiche-volets summary::-webkit-details-marker{display:none}
.fiche-volets summary::after{content:"+";flex:none;display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:var(--surface);font:300 20px/1 var(--police-texte);transition:transform .4s var(--courbe)}
.fiche-volets details[open] summary::after{transform:rotate(45deg);background:var(--rose)}
.fiche-volets details p{padding:0 0 22px;color:var(--sourdine)}

/* ---------- Questions sur ce produit (inc/aide.php) et avis ---------- */
.fiche-faq{margin:90px 0 0}
.fiche-faq__titre{font:400 clamp(30px,3.4vw,44px)/1.1 var(--police-titres);margin:0 0 22px}
.fiche-faq .aide{max-width:none}
.fiche-avis-section{margin-top:120px}
.fiche-avis .wp-block-woocommerce-product-reviews-title,.fiche-avis>h2{font:400 clamp(29px,3.2vw,46px)/1 var(--police-titres);margin-bottom:32px}
.avis-compte{color:var(--sourdine);font-size:.6em;vertical-align:middle}
.fiche-avis .wp-block-comment-template,.fiche-avis ol{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px}
.fiche-avis li{margin:0;padding:24px;border-radius:var(--rayon-grand);background:var(--surface)}
.fiche-avis .wp-block-columns{margin:0;gap:14px}
.fiche-avis .wp-block-avatar img{border-radius:50%}
.fiche-avis .wp-block-woocommerce-product-review-content{margin-top:10px;font:400 20px/1.3 var(--police-titres)}
.fiche-avis .wp-block-woocommerce-product-review-date{color:var(--sourdine);font-size:14px}
.fiche-avis .star-rating span::before,.fiche-avis .wc-block-components-product-rating__stars span::before{color:var(--rose-vif)}
.fiche-avis #review_form_wrapper,.fiche-avis .wp-block-woocommerce-product-review-form{margin-top:40px;padding:32px;border-radius:var(--rayon-grand);background:var(--surface-rose)}
.fiche-avis .comment-reply-title{font:400 32px/1.1 var(--police-titres)}
.fiche-avis .comment-form-rating .stars a{color:var(--rose-vif)}
.fiche-avis textarea,.fiche-avis input[type=text],.fiche-avis input[type=email]{width:100%;background:var(--surface);border-radius:var(--rayon)}
.fiche-avis .form-submit input,.fiche-avis .submit{min-height:52px;padding:0 30px;border:0;border-radius:999px;background:var(--accent);color:var(--sur-accent);font-weight:600;cursor:pointer}

/* ---------- Vous aimerez aussi : le titre dans la première colonne, trois cartes à droite ---------- */
.fiche-associes{margin-top:130px}
.collection-associes{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;align-items:start}
.associes-tete{padding-right:12px}
.associes-tete .section-chapo{margin-top:16px;max-width:26ch;color:var(--sourdine)}
.associes-tete .lien-fleche{margin-top:26px}
.collection-associes .grille-produits.wc-block-product-template{grid-column:2/-1;grid-template-columns:repeat(3,minmax(0,1fr))}
/* PIÈGE : le conteneur de messages (vide) de product-collection occupe une cellule de la grille */
.collection-associes>.wc-block-components-notices{grid-column:1/-1}
.collection-associes>.wc-block-components-notices:not(:has(*)){display:none}

/* ---------- Vus récemment (produit.js) ---------- */
.recents{padding-block:clamp(48px,6vw,72px) 100px}   /* détaché de « Vous aimerez aussi » */
.recents__titre{font:400 clamp(28px,3vw,40px)/1.1 var(--police-titres);margin:0 0 10px}
.recents__liste{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin-top:12px}
.recents .recents__liste{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}   /* deux par ligne sur téléphone */
.recent{display:flex;flex-direction:column;gap:4px;padding:10px;border-radius:18px;background:var(--fond);color:var(--texte)!important;text-decoration:none!important;font-size:14px}
.recent strong{font-weight:600}
.recent__img{display:grid;place-items:center;aspect-ratio:1;border-radius:14px;background:radial-gradient(circle at 50% 40%,#fff,var(--surface-rose) 85%);margin-bottom:6px}
.recent__img img{width:76%;height:76%;object-fit:contain}

/* ---------- Barre d'achat collante (mobile et tablette, produit.js) ---------- */
.achat-collant{position:fixed;left:12px;right:12px;bottom:12px;z-index:60;display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:10px 10px 10px 18px;border-radius:22px;background:color-mix(in srgb,var(--surface) 88%,transparent);border:1px solid var(--surface);
  -webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);box-shadow:0 18px 40px color-mix(in srgb,var(--nuit-3) 22%,transparent);
  transform:translateY(160%);transition:transform .6s var(--courbe)}
.achat-collant.est-visible{transform:none}
.achat-collant__texte{display:flex;flex-direction:column;min-width:0;line-height:1.2}
.achat-collant__texte strong{font:400 18px/1.1 var(--police-titres);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.achat-collant__texte span{font-size:14px;color:var(--sourdine)}
.achat-collant__bouton{flex:none;min-height:48px;padding:0 20px;border-radius:999px;background:var(--accent);color:var(--sur-accent);font-weight:600;font-size:15px}

/* ---------- Adaptatif ---------- */
@media (max-width:1024px){
  .fiche{display:flex;flex-direction:column;gap:32px}
  .fiche-galerie{display:contents}
  .fiche .galerie{order:2;width:100%;min-width:0}
  .fiche-achat{order:3;width:100%}
  .fiche-details{order:4;width:100%}
  .fiche-achat{position:static}
  .fiche-details{margin-top:0}
  .fiche-volets,.fiche-details-texte{grid-column:1}
  .collection-associes{grid-template-columns:minmax(0,1fr)}
  .collection-associes .grille-produits.wc-block-product-template{grid-column:auto;grid-template-columns:repeat(3,minmax(0,1fr))}
  .associes-tete .section-chapo{max-width:none}
}
@media (max-width:860px){
  .fiche .galerie{flex-direction:column}
  .fiche-galerie .wc-block-product-gallery-large-image{width:100%;flex:none}
  .fiche-galerie .wc-block-product-gallery-thumbnails{flex:none;width:100%!important;max-width:none;margin:12px 0 0}
  .fiche-galerie .wc-block-product-gallery-thumbnails__scrollable{flex-direction:row;overflow-x:auto}
  .fiche-galerie .wc-block-product-gallery-thumbnails__thumbnail{flex:0 0 64px;width:64px}
  .collection-associes .grille-produits.wc-block-product-template{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 14px}
  .fiche-associes{margin-top:88px}
}
@media (max-width:781px){
  .fiche-haut{padding-block:14px 6px}
  .fiche{display:flex;flex-direction:column;gap:12px}
  .fiche-achat{display:contents}
  .fiche-achat>*{order:3}
  .fiche-surtitre{order:0}
  .fiche-achat>.fiche-titre-ligne,.fiche-achat>.fiche-titre{order:1}
  .fiche-note{order:1}
  .fiche .galerie{margin:4px 0 6px}
  .fiche-details{margin-top:20px}
  .fiche-titre{margin-top:0;font-size:clamp(36px,10.5vw,46px)}
  .fiche-note:not(:empty){margin-top:-4px}
  /* le cadre suit le format réglé dans le bloc (variables en ligne de WooCommerce) : on le force plus bas */
  .fiche-galerie .wc-block-product-gallery-large-image__wrapper{aspect-ratio:4/3!important}
  .fiche-galerie .wc-block-product-gallery-large-image img{padding:6%!important}
  .fiche-galerie .wc-block-product-gallery-thumbnails__thumbnail{flex:0 0 54px;width:54px}
  .fiche-prix{margin-top:4px}
}
@media (max-width:640px){
  .fiche-avis-section{margin-top:64px}
  .fiche-reassurance{padding:12px 8px;gap:4px}
}
@media (max-width:520px){
  .offre{grid-template-columns:72px minmax(0,1fr) 24px;gap:12px;padding:14px 12px}
  .offre--vedette{padding-top:24px}
  .offre__visuel{width:72px;height:72px;grid-row:1/span 2;align-self:start}
  .offre__img{width:52px;height:52px}
  .offre__visuel--duo .offre__img{width:30px;height:30px}
  .offre__visuel--2 .offre__img{width:40px;height:40px}
  .offre__case{grid-column:3;grid-row:1;align-self:start;width:24px;height:24px}
  .offre__corps{grid-column:2;grid-row:1}
  .offre__prix{grid-column:2/4;grid-row:2;flex-direction:row;flex-wrap:wrap;align-items:baseline;justify-content:flex-start;gap:4px 10px;text-align:left}
  .offre__prix ins{font-size:26px;order:-1}
  .offre__remise{order:0}
  .offre__nom{font-size:22px}
  .offre__atout{padding:4px 10px 4px 8px}
  .associe__carte{grid-template-columns:64px minmax(0,1fr);padding:14px}
  .associe__image{width:64px;height:64px}
  .associe__ajout{grid-column:1/-1;justify-content:center;width:100%}
  .fiche-ajout .single_add_to_cart_button,.fiche-ajout button[type=submit]{white-space:nowrap;font-size:16px!important;padding-inline:16px!important}
  .bouton-prix::before{margin:0 6px}
  /* téléphone : le bouton d'achat prend toute la largeur, sur sa propre ligne (la quantité, si elle existe, au-dessus) */
  .fiche-ajout .wp-block-group:has(>.wp-block-woocommerce-product-button){flex-wrap:wrap}
  .fiche-ajout .wp-block-woocommerce-product-button,.fiche-ajout .wp-block-woocommerce-product-button .wp-block-button{flex:1 1 100%;width:100%!important;max-width:none}
  .fiche-ajout .single_add_to_cart_button{width:100%!important;min-height:58px}
}
@media (prefers-reduced-motion:reduce){
  .offre__ruban::after{animation:none}
}

/* Agrandissement mesuré : l'image tient toujours dans la fenêtre. */
html.photo-ouverte{overflow:hidden}
dialog.photo-nyvali{position:fixed;inset:0;margin:auto;width:min(840px,calc(100vw - 32px));max-width:none;max-height:calc(100dvh - 32px);box-sizing:border-box;padding:58px 20px 20px;border:1px solid #ffffff26;border-radius:24px;background:var(--nuit);color:var(--sur-nuit);box-shadow:0 24px 90px #0008;overflow:auto}
dialog.photo-nyvali::backdrop{background:#090e25cc;backdrop-filter:blur(5px)}
.photo-nyvali__cadre{height:min(60svh,600px);display:flex;align-items:center;justify-content:center}
.photo-nyvali__cadre img{display:block;width:auto;height:auto;max-width:100%;max-height:100%;object-fit:contain;border-radius:12px}
.photo-nyvali button{display:grid;place-items:center;flex:none;width:44px;height:44px;padding:0;border:1px solid #ffffff45;border-radius:50%;background:transparent;color:inherit;font:400 24px/1 var(--police-texte);cursor:pointer}
.photo-nyvali button[hidden]{display:none}
.photo-nyvali button:focus-visible{outline:3px solid var(--rose);outline-offset:3px}
.photo-nyvali__fermer{position:absolute;top:8px;right:12px}
.photo-nyvali__navigation{display:flex;align-items:center;justify-content:center;gap:24px;margin-top:16px;font-size:14px}
.galerie .wc-block-product-gallery-large-image img{cursor:zoom-in}
@media(hover:hover){.photo-nyvali button:hover{background:#ffffff1a}}
@media(max-width:520px){dialog.photo-nyvali{padding-inline:12px;border-radius:18px}.photo-nyvali__cadre{height:55svh}}


/* Fiche 1.8.6 : galerie mesurée, offres et informations sur la même colonne. */
.fiche-produit{background:radial-gradient(ellipse 75% 650px at 18% 10%,color-mix(in srgb,var(--lilas) 13%,transparent),transparent),var(--fond)}
.fiche-haut{padding-block:12px}
.fiche-haut:not(:has(.woocommerce-message,.woocommerce-error,.woocommerce-info)){padding-block:0}
.fiche{grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);gap:clamp(28px,4vw,64px);padding-top:32px}
.fiche-galerie{--galerie-h:min(390px,calc(100svh - 170px));position:sticky;top:24px;min-width:0}
.admin-bar .fiche-galerie{top:56px}
.fiche-galerie .galerie{display:flex;flex-direction:column-reverse;gap:0;width:100%;padding:14px;border:1px solid color-mix(in srgb,var(--lilas) 24%,var(--trait));border-radius:28px;background:linear-gradient(145deg,color-mix(in srgb,var(--surface) 94%,var(--lilas)),var(--surface-rose));box-shadow:0 24px 65px -40px color-mix(in srgb,var(--nuit) 45%,transparent)}
.fiche-galerie .wc-block-product-gallery-large-image{flex:none;width:100%;border-radius:20px;background:radial-gradient(ellipse at 50% 45%,#fff,color-mix(in srgb,var(--surface-rose) 65%,#fff))!important}
.fiche-galerie .wc-block-product-gallery-large-image__wrapper{height:var(--galerie-h)!important;max-height:var(--galerie-h);aspect-ratio:auto!important}
.fiche-galerie .wc-block-product-gallery-large-image img{padding:12%!important;max-height:var(--galerie-h);object-fit:contain!important}
.fiche-galerie .wc-block-product-gallery-thumbnails{flex:none;width:100%!important;max-width:none;margin:12px 0 0}
.fiche-galerie .wc-block-product-gallery-thumbnails__scrollable{flex-direction:row;justify-content:center;gap:8px;overflow-x:auto}
.fiche-galerie .wc-block-product-gallery-thumbnails__thumbnail{flex:0 0 54px;width:54px;border-radius:12px}
.fiche-achat{gap:8px}
.fiche-surtitre{align-self:flex-start;padding:4px 10px;border-radius:999px;background:color-mix(in srgb,var(--lilas) 12%,var(--surface));letter-spacing:.12em}
.fiche-titre{margin-top:8px;font-size:clamp(30px,3vw,40px);line-height:1.13;font-weight:500}
.fiche-note:not(:empty){margin-top:4px}
.fiche-prix{margin-top:10px;font-size:28px}
.fiche-promo{margin-top:4px;padding:5px 11px;font-size:13px}
.fiche-bref{margin-top:8px;border-bottom:1px solid var(--trait)}
.fiche-bref>summary{font:500 15px/1.4 var(--police-texte)}
.fiche-resume{font-size:15px;line-height:1.6;margin:0;padding-bottom:16px}
.offres{gap:10px;margin:14px 0 8px}
.offre{grid-template-columns:56px minmax(0,1fr) auto 22px;gap:10px;padding:12px;border-radius:var(--rayon-carte);box-shadow:none}
.offre--vedette{margin-top:8px;padding-top:20px}
.offre.est-choisie{box-shadow:0 12px 28px -22px var(--rose-vif)}
.offre__visuel{width:56px;height:56px;border-radius:12px}
.offre__img{width:46px;height:46px}
.offre__visuel--2 .offre__img,.offre__visuel--3 .offre__img{width:32px;height:32px;margin-inline:-7px}
.offre__visuel--duo .offre__img{width:25px;height:25px}
.offre__nom{font-size:19px;line-height:1.15}
.offre__corps{gap:3px}
.offre__haut{gap:5px}
.offre__detail{font-size:13px}
.offre__prix ins{font-size:23px}
.offre__atouts{gap:4px;margin-top:2px}
.offre__atout{padding:3px 7px;font-size:13px}
.offre__badge{padding:3px 7px;font-size:13px;letter-spacing:0}
.offre__case{width:22px;height:22px}
.offre__choix{margin-top:8px}
.fiche-ajout{margin-top:12px;padding-top:16px}
.fiche-ajout .single_add_to_cart_button{min-height:50px;height:50px;font-size:15px;padding-inline:20px}
.fiche-ajout .wc-block-components-quantity-selector{height:50px;width:112px}
.fiche-reassurance{margin-top:12px;padding:10px 6px;border-radius:16px;background:color-mix(in srgb,var(--surface) 70%,var(--surface-rose))}
.fiche-reassurance .promesse{padding:3px;gap:5px}
.fiche-reassurance .promesse::before{width:19px;height:19px}
.associe{margin-top:16px}
.associe__carte{padding:12px;gap:10px}
.fiche-details{display:block;margin-top:14px}
.fiche-tout-savoir,.fiche-volets>details{margin:0;border-bottom:1px solid var(--trait)}
.fiche-volets{border-top:0}
.fiche-tout-savoir>summary,.fiche-volets summary,.fiche-bref>summary{display:flex;justify-content:space-between;align-items:center;gap:16px;min-height:54px;padding:13px 0;list-style:none;cursor:pointer}
.fiche-tout-savoir>summary,.fiche-volets summary{font:500 17px/1.4 var(--police-titres)}
.fiche-tout-savoir>summary::-webkit-details-marker,.fiche-bref>summary::-webkit-details-marker{display:none}
.fiche-tout-savoir>summary::after,.fiche-bref>summary::after,.fiche-volets summary::after{content:"+";flex:none;display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--surface);font:300 22px/1 var(--police-texte);transition:transform .2s}
.fiche-tout-savoir[open]>summary::after,.fiche-bref[open]>summary::after,.fiche-volets details[open] summary::after{transform:rotate(45deg);background:var(--rose)}
.fiche-details-texte{padding-bottom:20px}
.fiche-description{font-size:15px;line-height:1.65}
.fiche-description h2{font-size:22px}
.fiche-description h2:first-child{margin-top:8px}
.fiche-volets details p{font-size:15px;padding-bottom:18px}
.fiche-avis-section{margin-top:64px;padding-top:40px;border-top:1px solid var(--trait)}
.fiche-faq{margin-top:0}
.fiche-associes{margin-top:72px}
@media(max-width:1024px){
 .fiche{max-width:780px;gap:16px;padding-top:20px}
 .fiche-galerie{display:contents;position:static}
 .fiche .galerie{--galerie-h:min(350px,48svh);width:100%;max-width:600px;align-self:center}
 .fiche-achat{width:100%}
 .fiche-details{margin-top:14px}
}
@media(max-width:781px){
 .fiche{padding-top:16px;gap:12px}
 .fiche-achat{display:contents}
 .fiche .galerie{--galerie-h:min(265px,36svh);margin:4px 0;padding:10px;border-radius:22px}
 .fiche-titre{font-size:clamp(29px,8.5vw,36px)}
 .fiche-galerie .wc-block-product-gallery-large-image img{padding:10%!important}
 .fiche .fiche-prix{margin-top:6px}
 .fiche-bref{margin:0;width:100%}
 .fiche-reassurance{margin-top:12px}
 .fiche-details{margin-top:10px}
}
@media(max-width:520px){
 .offre{grid-template-columns:48px minmax(0,1fr) 22px;gap:8px;padding:11px}
 .offre--vedette{padding-top:20px}
 .offre__visuel{width:48px;height:48px}
 .offre__img{width:40px;height:40px}
 .offre__visuel--2 .offre__img,.offre__visuel--3 .offre__img{width:29px;height:29px}
 .offre__visuel--duo .offre__img{width:22px;height:22px}
 .offre__nom{font-size:18px}
 .offre__prix{gap:4px 8px}
 .offre__prix ins{font-size:22px}
 .fiche-ajout .single_add_to_cart_button{min-height:52px;font-size:15px!important}
 .associe__ajout{grid-column:auto;width:auto;padding-inline:12px}
 .associe__carte{grid-template-columns:48px minmax(0,1fr) auto}
 .associe__image{width:48px;height:48px}
}

/* Les blocs WooCommerce imposent la hauteur et le sens des vignettes : les borner explicitement. */
.fiche .galerie{flex-direction:column!important}
.fiche-galerie .wc-block-product-gallery-large-image{order:1}
.fiche-galerie .wc-block-product-gallery-thumbnails{order:2;height:64px!important;max-height:64px!important}
.fiche-galerie .wc-block-product-gallery-thumbnails__scrollable{flex-direction:row!important;height:64px!important;max-height:64px!important;align-items:center;overflow-y:hidden}

@media(max-width:781px){
 .fiche .fiche-prix,.fiche .fiche-promo{order:1}
 .fiche .galerie{--galerie-h:min(240px,32svh)}
}

/* Le contour blanc arrondi reprend celui des couvertures d’articles. */
.fiche-galerie{--galerie-h:min(560px,calc(100svh - 170px))}
.fiche .galerie{padding:0;border:0;border-radius:0;background:transparent;box-shadow:none}
.fiche-galerie .wc-block-product-gallery-large-image{position:relative;isolation:isolate;flex:none;width:100%;padding:10px;border:1px solid #ffffffbb;border-radius:32px;background:linear-gradient(145deg,#fff,#f2edf9)!important;box-shadow:0 24px 60px -38px #12174a50}
.fiche-galerie .wc-block-product-gallery-large-image__wrapper{position:relative;z-index:1;overflow:hidden;border-radius:24px;background:radial-gradient(ellipse at 50% 42%,#fff 5%,#fbf8fc 60%,#f3edf5 100%)}
.fiche-galerie .wc-block-product-gallery-large-image::before,.fiche-galerie .wc-block-product-gallery-large-image::after{content:none;pointer-events:none;animation:none}
.fiche-galerie .wc-block-product-gallery-large-image img{padding:6%!important;filter:drop-shadow(0 18px 18px #12174a20)}
.fiche-galerie .wc-block-product-gallery-thumbnails__thumbnail{background:#fff9;border:1px solid #ded8ed}
.fiche-galerie .wc-block-product-gallery-thumbnails__thumbnail img{background:transparent}
@media(min-width:1025px){.fiche{grid-template-columns:minmax(0,1.06fr) minmax(0,.94fr)}}
@media(max-width:1024px){.fiche .galerie{--galerie-h:min(470px,58svh)}}
@media(max-width:781px){
 .fiche .galerie{--galerie-h:min(330px,44svh)}
 .fiche-galerie .wc-block-product-gallery-large-image{padding:8px;border-radius:24px}
 .fiche-galerie .wc-block-product-gallery-large-image__wrapper{border-radius:18px}
}

.fiche-galerie .wc-block-product-gallery-large-image button{width:44px;min-height:44px;border:1px solid #ded8ed!important;border-radius:50%!important;background:#ffffffd9!important;color:var(--nuit)!important;box-shadow:0 4px 14px #12174a0e}
.fiche-galerie .wc-block-product-gallery-large-image button svg{fill:currentColor}
.fiche-galerie .wc-block-product-gallery-large-image button:focus-visible{outline:2px solid var(--rose);outline-offset:2px}
@media(hover:hover){.fiche-galerie .wc-block-product-gallery-large-image button:hover{background:#f4edf9!important}}

/* Le résumé reste lisible sans geste ; les volets détaillés gardent leur +. */
.fiche-bref{padding-block:12px 16px}
.fiche-bref-titre{font:500 16px/1.4 var(--police-titres);margin:0 0 8px}
.fiche-bref .fiche-resume{margin:0;padding-bottom:0}

/* Zoom doux dans le cadre, uniquement avec une souris. */
@media(hover:hover) and (pointer:fine){
 .fiche-galerie .wc-block-product-gallery-large-image img{transition:transform .3s var(--courbe);transform-origin:center}
 .fiche-galerie .wc-block-product-gallery-large-image img:hover{transform:scale(1.22)}
}
@media(prefers-reduced-motion:reduce){.fiche-galerie .wc-block-product-gallery-large-image img{transition:none}}

/* Finitions 1.8.13 : ivoire, encre et cadre nacré, sans modifier les photos. */
.fiche-produit{--sourdine:#555b71;background:radial-gradient(ellipse 65% 680px at 5% 0%,#e9e9f3 0%,transparent 80%),linear-gradient(160deg,#f6f5f1,#faf9f6 65%,#f0edf4)}
.fiche-bref{padding:18px 20px;border:1px solid #dedfe7;border-radius:20px;background:#ffffffb8}
.fiche-bref-titre{margin:0 0 12px!important;color:var(--nuit)}
.fiche-essentiels{display:grid;gap:10px;list-style:none;padding:0!important;margin:0!important}
.fiche-essentiels li{position:relative;padding-left:23px;line-height:1.5;color:#41485f}
.fiche-essentiels li::before{content:"";position:absolute;left:0;top:.53em;width:7px;height:7px;border-radius:50%;background:#8174b1;box-shadow:0 0 0 4px #eeeaf5}
.fiche-galerie .wc-block-product-gallery-large-image{background:#fff!important;box-shadow:0 22px 60px -38px #20294e60;border-color:#fff}
.fiche-galerie .wc-block-product-gallery-large-image__wrapper{background:radial-gradient(ellipse at 30% 20%,#fff 25%,transparent 65%),linear-gradient(125deg,#e8e9f1,#fcfcfa 48%,#ece8f0);background-size:140% 140%}
.fiche-galerie .wc-block-product-gallery-thumbnails__thumbnail{border-color:#d5d7e2}
.offres{gap:12px}
.offres__titre{color:var(--nuit)}
.offre,.offre--vedette{background:#fff;border:1px solid var(--bord-composant);box-shadow:0 5px 18px -16px #20294e50;transition:border-color .25s,background .25s,box-shadow .25s}
.offre.est-choisie{border-color:var(--nuit);background:linear-gradient(120deg,#fff,#f0eff8);box-shadow:inset 0 0 0 1px var(--nuit),0 12px 28px -24px #20294e80}
.offre__badge{padding:0;background:none;color:#655282;letter-spacing:0;text-transform:none}
.offre__ruban{background:var(--nuit);box-shadow:none;letter-spacing:.025em;text-transform:none}
.offre__ruban::after{animation-duration:7s}
.offre__atout,.offre__atout--livraison{background:transparent;color:#4f566c;padding:0;border-radius:0}
.offre__atout--livraison::before{content:"";width:5px;height:5px;border-radius:50%;background:#8174b1}
.offre__detail,.offre__unite,.offre__prix del{color:#555b71}
.offre__remise{background:#f0e4ed;color:#873569;border-radius:7px;font-weight:700}
.offre__eco{color:#873569}
.offre:has(+.offre__choix).est-choisie{border-radius:18px 18px 0 0}
.offre-groupe{display:grid;gap:0;min-width:0}
.offre-groupe>.offre{margin-bottom:0}
.offre__choix{margin:0!important;padding:12px 16px;border:2px solid var(--nuit);border-top:1px solid #d7d9e3;border-radius:0 0 18px 18px;background:#f0eff8;opacity:1}
.offre:not(.est-choisie)+.offre__choix{display:none}
.offre__choix label{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:5px 12px;align-items:center}
.offre__choix-titre{grid-column:1/-1;font-weight:700;color:var(--nuit)}
.offre__choix select{margin:0;min-height:44px;max-width:100%;border-radius:12px;border-color:#b9bccb;color:var(--nuit)}
.fiche-reassurance{background:var(--nuit);color:#fff;border-radius:20px;padding:16px 10px}
.fiche-reassurance .promesse{color:#fff}
.fiche-reassurance .promesse::before{background-color:#eeeaf8}
.fiche-details{padding:4px 20px;border:1px solid #dedfe7;border-radius:20px;background:#ffffffa6}
.fiche-details>details,.fiche-volets>details{border-color:#dedfe7}
.fiche-volets>details:last-child{border-bottom:0}
.fiche-details summary::after{background:#efedf6;color:var(--nuit)}
.associe__carte{border:1px solid #dedfe7;border-radius:20px;background:#fff;box-shadow:0 14px 35px -30px #20294e60}
@media(hover:hover){.offre:hover{border-color:#8c8fa6;box-shadow:0 12px 25px -23px #20294e70}.offre.est-choisie:hover{border-color:var(--nuit)}}
@media(prefers-reduced-motion:no-preference){
 .fiche-galerie .wc-block-product-gallery-large-image__wrapper{animation:nacre-galerie 14s ease-in-out infinite alternate}
 @keyframes nacre-galerie{from{background-position:0% 20%}to{background-position:100% 80%}}
}
@media(max-width:781px){.fiche-bref{padding:16px}.fiche-details{padding-inline:16px}.fiche-reassurance{padding:14px 8px}.fiche-essentiels{gap:8px}}
@media(max-width:360px){.offre__choix label{grid-template-columns:1fr}.offre__choix select{width:100%}}

/* Le résumé garde une place constante entre les offres et le bouton d’achat. */
.offres__resume{min-height:84px;display:flex;align-items:center;margin:0;padding:14px 16px;border-left:3px solid var(--nuit);border-radius:0 12px 12px 0;background:var(--surface-calme);color:var(--nuit);font-size:14px;line-height:1.55}
.offre__total{font-size:13px;font-weight:500;color:var(--texte-secondaire)}
@media(max-width:600px){.offres__resume{min-height:106px}.offre__total{order:-2}.offre__prix ins{order:-1}}

/* ---------- Coloris : pastilles sous « Le produit en bref » (inc/coloris.php, produit.js) ---------- */
/* le sélecteur natif de WooCommerce reste dans le formulaire, piloté par les pastilles */
.fiche-achat:has(.fiche-coloris) .fiche-ajout .wp-block-woocommerce-add-to-cart-with-options-variation-selector{display:none!important}
.fiche-coloris{min-inline-size:0;margin:18px 0 8px;padding:0;border:0}
.fiche-coloris__titre{display:flex;align-items:baseline;gap:6px;margin:0 0 10px;padding:0;font:600 13px/1.4 var(--police-texte);letter-spacing:.12em;text-transform:uppercase;color:var(--texte)}
.fiche-coloris__nom{font-size:14px;font-weight:500;letter-spacing:.01em;text-transform:none;color:var(--texte-secondaire)}
.fiche-coloris__liste{display:flex;flex-wrap:wrap;gap:8px;margin-inline:-5px}
.fiche-coloris__pastille{position:relative;display:grid;place-items:center;width:46px;height:46px;border-radius:50%;cursor:pointer;-webkit-tap-highlight-color:transparent}
.fiche-coloris__pastille input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:inherit}
.fiche-coloris__rond{width:34px;height:34px;border-radius:50%;background:var(--pastille,#D8D4E6);box-shadow:inset 0 0 0 1px rgba(18,23,74,.14),0 0 0 3px #fff,0 0 0 4px #CBC8E6;transition:box-shadow var(--duree-interface) var(--courbe),transform var(--duree-interface) var(--courbe)}
.fiche-coloris__pastille input:checked+.fiche-coloris__rond{box-shadow:inset 0 0 0 1px rgba(18,23,74,.14),0 0 0 3px #fff,0 0 0 5.5px var(--nuit)}
.fiche-coloris__pastille input:focus-visible+.fiche-coloris__rond{outline:2px solid var(--nuit);outline-offset:7px}
.fiche-coloris__pastille.est-epuise{cursor:not-allowed}
.fiche-coloris__pastille.est-epuise .fiche-coloris__rond{background:linear-gradient(to top left,transparent calc(50% - .75px),#7D8299 calc(50% - .75px),#7D8299 calc(50% + .75px),transparent calc(50% + .75px)),var(--pastille,#D8D4E6);opacity:.6}
@media (hover:hover){.fiche-coloris__pastille:not(.est-epuise):hover .fiche-coloris__rond{box-shadow:inset 0 0 0 1px rgba(18,23,74,.14),0 0 0 3px #fff,0 0 0 4px #8E92B4}
 .fiche-coloris__pastille:not(.est-epuise):hover input:checked+.fiche-coloris__rond{box-shadow:inset 0 0 0 1px rgba(18,23,74,.14),0 0 0 3px #fff,0 0 0 5.5px var(--nuit)}}
@media (prefers-reduced-motion:reduce){.fiche-coloris__rond{transition:none}}

/* ---------- 1.8.18 : moins de contours, des aplats ; le contour reste pour l'offre choisie ---------- */
.fiche-bref{border-color:transparent;background:#EFEDF6}
.fiche-essentiels li::before{box-shadow:0 0 0 4px #fff}
.offre,.offre--vedette{border-color:transparent;box-shadow:none}
@media(hover:hover){.offre:not(.est-choisie):hover{border-color:transparent;background:#F7F6FB;box-shadow:none}}
.fiche-details{border-color:transparent;background:#fff}
.associe__carte{border-color:transparent;background:#fff;box-shadow:none}

/* Même piège que le tiroir du panier : cachée sous l'écran, la barre d'achat devient invisible après sa sortie. */
.achat-collant:not(.est-visible){visibility:hidden;transition:transform .6s var(--courbe),visibility 0s linear .6s}
.achat-collant.est-visible{visibility:visible;transition:transform .6s var(--courbe),visibility 0s}

/* ---------- Barre d'achat collante à l'ordinateur (produit.js) : en haut, sous l'en-tête quand il est affiché ---------- */
@media (min-width:1025px){
  .achat-collant--bureau{top:12px;bottom:auto;left:50%;right:auto;width:min(980px,calc(100vw - 48px));translate:-50% 0;padding:8px 8px 8px 10px;gap:14px;border-radius:20px;transform:translateY(calc(-100% - 24px))}
  .achat-collant--bureau.est-visible{transform:none}
  .admin-bar .achat-collant--bureau{top:44px}
  body:has(header.wp-block-template-part.est-colle:not(.est-cache)) .achat-collant--bureau{top:calc(var(--entete-h) + var(--annonce-h,0px) + 12px)}
  .admin-bar:has(header.wp-block-template-part.est-colle:not(.est-cache)) .achat-collant--bureau{top:calc(var(--entete-h) + var(--annonce-h,0px) + 44px)}
  .achat-collant--bureau{transition:transform .6s var(--courbe),top .45s cubic-bezier(.4,0,.2,1),visibility 0s linear .6s}
  .achat-collant--bureau.est-visible{transition:transform .6s var(--courbe),top .45s cubic-bezier(.4,0,.2,1),visibility 0s}
  .achat-collant__img{flex:none;width:48px;height:48px;object-fit:contain;border-radius:12px;background:#f1eff6}
  .achat-collant--bureau .achat-collant__texte{flex:1}
  .achat-collant__choix{font-size:14px;color:var(--texte-secondaire);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .achat-collant--bureau .achat-collant__bouton{min-height:46px;padding:0 24px}
}
