
/* =========================================================
   FICHE PRODUIT — TEMPLATE COMPLET
   Page e-commerce + panneau d'achat modulaire
   Chaque bloc du panneau = un module activable (data-module),
   piloté par le tiroir de réglages (= réglages de l'extension).
   Plain CSS · Flexbox · classes .ws-  · prêt Elementor
   ========================================================= */

:root{
  --ink:#141413;--ink-soft:#4a4a46;--muted:#6e6e67;
  --line:#e8e5de;--line-soft:#f1efe9;
  --bg:#ffffff;--bg-alt:#f5f3ef;--bg-warm:#ffffff;--field:#faf9f6;
  /* ACCENT NEUTRE PAR DÉFAUT — pour recolorer toute la fiche,
     il suffit de changer ces 3 variables (ex. bleu, or, terracotta…) */
  --accent:#1c1b19;--accent-soft:#f4f3ef;--accent-ink:#1c1b19;
  /* couleurs sémantiques discrètes, volontairement rares */
  --promo:#1c1b19;--promo-soft:#f4f3ef;--sale:#bf4a3c;--stock:#3f9a5c;
  --amber:#8a6d3b;--amber-soft:#f4efe4;
  --star:#1c1b19;
  /* TYPOGRAPHIE GLOBALE — pilotee par le tiroir (police + couleur + taille par role) */
  --font-title:'Archivo',sans-serif;
  --font-text:'Manrope',system-ui,sans-serif;
  --h1-color:#141413;--h1-size:38px;
  --h2-color:#141413;--h2-size:34px;
  --h3-color:#141413;--h3-size:18px;
  --text-color:#141413;--text-size:16px;
  --bold-color:#141413;
  --radius:16px;--radius-sm:11px;--radius-xs:8px;
  --shadow:0 1px 2px rgba(20,20,18,.05),0 12px 40px -12px rgba(20,20,18,.14);
  --maxw:1280px;--buy-w:406px;--ease:cubic-bezier(.22,.61,.36,1);
}
/* ============================================================
   BASES SCOPEES A LA FICHE UNIQUEMENT.
   Marqueur [class*="wsfp-pay-"] = notre racine (.wsfp-root sur le
   front, body.wsfp-pay-* dans l'editeur). Ces resets/typo ne DOIVENT
   jamais toucher les elements du theme (header, barre d'annonce, pied)
   presents sur la meme page produit. NE PAS remettre de selecteurs nus
   (*, body, a, img, h1-4, p strong...) : ils fuient sur tout le site.
   ============================================================ */
html{scroll-behavior:smooth}
[class*="wsfp-pay-"]{box-sizing:border-box;margin:0;padding:0;font-family:var(--font-text,'Manrope',system-ui,sans-serif);font-size:var(--text-size,16px);color:var(--text-color,var(--ink));background:var(--bg);line-height:1.55;-webkit-font-smoothing:antialiased;transition:padding-left .3s var(--ease)}
[class*="wsfp-pay-"] *{box-sizing:border-box;margin:0;padding:0}
[class*="wsfp-pay-"] img{display:block;max-width:100%;height:auto;background:var(--bg-warm)}
[class*="wsfp-pay-"] a{color:inherit;text-decoration:none}
[class*="wsfp-pay-"] button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit}
[class*="wsfp-pay-"] select{font-family:inherit}
[class*="wsfp-pay-"] :is(h1,h2,h3,h4){font-family:var(--font-title,'Archivo',sans-serif);line-height:1.1;letter-spacing:-.02em}
[class*="wsfp-pay-"] h1{color:var(--h1-color)}[class*="wsfp-pay-"] h2{color:var(--h2-color)}[class*="wsfp-pay-"] h3{font-size:var(--h3-size,18px);color:var(--h3-color)}
[class*="wsfp-pay-"] :is(p,li) :is(b,strong){color:var(--bold-color)}
@media(max-width:767px){.wsfp-hide-mobile{display:none!important}}
@media(min-width:768px){.wsfp-hide-desktop{display:none!important}}
.wsfp-hov-lift,.wsfp-hov-zoom,.wsfp-hov-shadow{transition:transform .22s var(--ease),box-shadow .22s var(--ease)}
.wsfp-hov-lift:hover{transform:translateY(-4px)}
.wsfp-hov-zoom:hover{transform:scale(1.02)}
.wsfp-hov-shadow:hover{box-shadow:0 16px 36px -12px rgba(20,20,18,.34)}
.ws-wrap{max-width:var(--maxw);margin-inline:auto;padding-inline:24px}
.ws-eyebrow{font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}

/* ---------- badges & primitives ---------- */
.ws-badge{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;padding:5px 9px;border-radius:7px;line-height:1;white-space:nowrap}
.ws-badge--flash{background:var(--promo);color:#fff}
.ws-badge--promo{background:var(--promo);color:#fff}
.ws-badge--new{background:var(--ink);color:#fff}
.ws-badge--eco{background:var(--accent-soft);color:var(--accent-ink)}
.ws-stars{display:inline-flex;gap:1px;color:var(--star);font-size:15px;letter-spacing:.5px}

/* =========================================================
   TIROIR DE RÉGLAGES (simule l'admin de l'extension)
   ========================================================= */
.cfg{--c-ac:#ff6161;--c-acink:#fff;--c-bg:#1b1b19;--c-acc:#232320;--c-surf:#2a2a27;--c-surf-h:#38382f;--c-line:#2c2c28;--c-brd:#3a3a36;--c-ink:#efece5;--c-ink2:#dcdad2;--c-mut:#9a988f;--c-mut2:#7d7b72;--c-title:#fff;
  position:fixed;top:0;left:0;bottom:0;width:285px;z-index:80;background:var(--c-bg);color:var(--c-ink2);overflow-y:auto;padding:20px 18px 0;box-shadow:4px 0 30px rgba(0,0,0,.18);transform:translateX(-100%);transition:transform .3s var(--ease)}
.cfg.is-light{--c-ac:#e5484d;--c-acink:#fff;--c-bg:#f5f4f0;--c-acc:#eeece6;--c-surf:#ffffff;--c-surf-h:#ece9e2;--c-line:#e6e3db;--c-brd:#dcd9d0;--c-ink:#232220;--c-ink2:#3b3934;--c-mut:#8a877e;--c-mut2:#a19e95;--c-title:#1a1917;box-shadow:2px 0 24px rgba(0,0,0,.10)}
body.cfg-open .cfg{transform:none}
.cfg__title{font-family:'Archivo';font-size:16px;font-weight:800;color:var(--c-title);margin-bottom:3px}
.cfg__sub{font-size:11.5px;color:var(--c-mut);line-height:1.4;margin-bottom:14px}
.cfg__theme{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:4px 0 18px}
.cfg__theme > label{font-size:12px;color:var(--c-mut)}
.cfg__presets{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 18px}
.cfg__viewhint{margin:-2px 0 12px;padding:7px 10px;border-radius:8px;font-size:11.5px;line-height:1.35;background:rgba(255,97,97,.12);color:var(--c-ac,#ff6161);border:1px solid rgba(255,97,97,.28)}
/* Variante « référence » (vue PC) : informatif, pas alerte -> ton neutre du theme */
.cfg__viewhint--base{background:var(--c-surf);color:var(--c-mut);border-color:var(--c-brd)}
.cfg__preset{flex:1 1 calc(50% - 3px);min-width:0;text-align:center;white-space:normal;line-height:1.2;font-size:11px;font-weight:700;padding:8px 6px;border-radius:100px;background:var(--c-surf);color:var(--c-ink);border:1px solid var(--c-brd);transition:.15s;cursor:pointer}
.cfg__preset:hover{background:var(--c-ac);border-color:var(--c-ac);color:var(--c-acink)}
.cfg__preset.is-on{background:var(--c-ac);border-color:var(--c-ac);color:var(--c-acink)}
.cfg__preset:disabled{opacity:.4;cursor:not-allowed}
.cfg__preset:disabled:hover{background:var(--c-surf);border-color:var(--c-brd);color:var(--c-ink)}
/* Panneau Typographie globale (accordeon en haut du volet Modules) */
.cfg__typo .cfg__acc-ic{color:var(--c-ac)}
.cfg__typo .cfg__acc-body{padding-top:4px}
.cfg__typo-sub{font-size:10.5px;color:var(--c-mut);margin:2px 2px 8px;line-height:1.35}
.cfg__act-row{display:flex;flex-direction:column;align-items:stretch;gap:6px;padding:9px 2px;border-top:1px solid var(--c-line)}
/* Ciblage d'activation : picker produits + menu categories */
.cfg__act-hint{font-size:11px;line-height:1.35;color:var(--c-mut);padding:0 2px 8px}
.cfg__act-hint.is-warn{color:var(--c-ac)}
.cfg__act-target{padding:2px 2px 10px}
.cfg__pick{position:relative}
.cfg__pick input[type=text],.cfg__pick select{width:100%;box-sizing:border-box;height:32px;border-radius:8px;background:var(--c-surf);color:var(--c-ink);border:1px solid var(--c-brd);font-size:12px;padding:0 10px;color-scheme:dark}
.cfg__pick input[type=text]:focus,.cfg__pick select:focus{border-color:var(--c-ac);outline:none}
.cfg__pick input::placeholder{color:var(--c-mut)}
.cfg__pick-results{display:none;position:absolute;left:0;right:0;top:36px;z-index:20;max-height:190px;overflow-y:auto;background:var(--c-bg);border:1px solid var(--c-brd);border-radius:8px;box-shadow:0 8px 22px rgba(0,0,0,.35)}
.cfg__pick-results.is-open{display:block}
.cfg__pick-res{display:block;width:100%;text-align:left;padding:8px 10px;background:none;border:0;border-bottom:1px solid var(--c-line);color:var(--c-ink);font-size:12px;cursor:pointer}
.cfg__pick-res:last-child{border-bottom:0}
.cfg__pick-res:hover{background:var(--c-surf);color:var(--c-ac)}
.cfg__pick-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.cfg__chip{display:inline-flex;align-items:center;gap:6px;padding:4px 6px 4px 10px;border-radius:100px;background:var(--c-surf);border:1px solid var(--c-brd);color:var(--c-ink);font-size:11.5px;line-height:1.2}
.cfg__chip button{background:none;border:0;color:var(--c-mut);cursor:pointer;font-size:12px;line-height:1;padding:0}
.cfg__chip button:hover{color:var(--c-ac)}
.cfg__act-row label{font-size:12px;color:var(--c-mut)}
/* Activation : boutons de largeur egale qui remplissent le panneau, texte complet (retour a la ligne, jamais coupe). */
.cfg__act-row .segctl{width:100%;gap:5px}
.cfg__act-row .segctl button{flex:1 1 0;min-width:0;height:auto;min-height:32px;padding:5px 6px;white-space:normal;line-height:1.15;text-align:center;display:flex;align-items:center;justify-content:center}
.cfg__typo-font{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 0}
.cfg__typo-font label{font-size:12px;color:var(--c-ink)}
.cfg__typo-font select{flex:0 0 132px;height:30px;border-radius:8px;background:var(--c-surf);color:var(--c-ink);border:1px solid var(--c-brd);font-size:11.5px;padding:0 6px;cursor:pointer}
.cfg__typo-role{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:7px 0}
.cfg__typo-role label{font-size:12px;color:var(--c-ink)}
.cfg__typo-ctl{display:inline-flex;align-items:center;gap:7px}
.cfg__typo-ctl input[type=color]{width:26px;height:26px;padding:0;border:1px solid var(--c-brd);border-radius:6px;background:none;cursor:pointer}
.cfg__typo-ctl input[type=color]::-webkit-color-swatch-wrapper{padding:2px}
.cfg__typo-ctl input[type=color]::-webkit-color-swatch{border:none;border-radius:4px}
.cfg__typo-ctl input[type=number]{width:50px;height:28px;border-radius:7px;background:var(--c-surf);color:var(--c-ink);border:1px solid var(--c-brd);font-size:12px;text-align:center;-moz-appearance:textfield}
.cfg__typo-ctl input[type=number]::-webkit-outer-spin-button,.cfg__typo-ctl input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.cfg__typo-u{font-size:10.5px;color:var(--c-mut)}
/* Apparence UNIVERSELLE d'un module (dans le detail drill-down) */
.cfg__uni{border:1px solid var(--c-line);border-radius:12px;padding:2px 12px;margin:0 0 12px;background:var(--c-acc)}
.cfg__uni-hd{font-family:'Archivo';font-size:10.5px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--c-mut);padding:9px 0 3px}
.cfg__uni-row{padding:8px 0;border-bottom:1px solid var(--c-line)}
.cfg__uni-row:last-child{border-bottom:none}
.cfg__uni-ctl{display:inline-flex;align-items:center;gap:6px}
.cfg__uni-row input[type=color]{width:26px;height:26px;padding:0;border:1px solid var(--c-brd);border-radius:6px;background:none;cursor:pointer}
.cfg__uni-row input[type=color]::-webkit-color-swatch-wrapper{padding:2px}
.cfg__uni-row input[type=color]::-webkit-color-swatch{border:none;border-radius:4px}
.cfg__uni-row input[type=number]{width:46px;height:26px;border-radius:7px;background:var(--c-surf);color:var(--c-ink);border:1px solid var(--c-brd);font-size:12px;text-align:center;-moz-appearance:textfield}
.cfg__uni-row input[type=number]::-webkit-outer-spin-button,.cfg__uni-row input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.cfg__uni-size{flex:0 0 108px;accent-color:var(--c-ac);cursor:pointer}
.cfg__uni-row label b{color:var(--c-ink);font-weight:700}
.cfg__uni-fill{border-left:2px solid var(--c-ac);margin:0 0 2px 4px;padding-left:8px}
.cfg__uni-sub label{font-size:11.5px;color:var(--c-mut)}
.cfg__uni-sub.cfg__range{display:block;padding:8px 0;border-bottom:1px solid var(--c-line)}
.cfg__uni-sub.cfg__range .lbl{display:flex;justify-content:space-between;font-size:11.5px;color:var(--c-mut);margin-bottom:5px}
.cfg__uni-sub.cfg__range .lbl b{color:var(--c-ink);font-weight:700}
.cfg__uni-sub.cfg__range input[type=range]{width:100%;accent-color:var(--c-ac)}
.cfg__reset-mod{display:block;width:100%;margin:14px 0 4px;padding:9px;border-radius:9px;background:var(--c-surf);color:var(--c-mut);border:1px solid var(--c-brd);font-size:11.5px;font-weight:700;cursor:pointer;transition:.15s}
.cfg__reset-mod:hover{background:var(--c-surf-h);color:var(--c-ink);border-color:var(--c-mut2)}
.cfg__checks{flex-wrap:wrap}
.cfg__chips{display:flex;flex-wrap:wrap;gap:5px;width:100%;margin-top:7px}
.cfg__chip{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:700;color:var(--c-ink);background:var(--c-surf);border:1px solid var(--c-brd);border-radius:100px;padding:5px 10px;cursor:pointer;transition:.15s}
.cfg__chip:has(input:checked){background:var(--c-ac);border-color:var(--c-ac);color:var(--c-acink)}
.cfg__chip input{width:12px;height:12px;margin:0;accent-color:var(--c-acink)}
/* Variantes : vraie couleur par pastille */
.cfg__varcol{flex-wrap:wrap}
.cfg__varcol-list{display:flex;flex-wrap:wrap;gap:8px;width:100%;margin-top:8px}
.cfg__varcol-item{display:flex;flex-direction:column;align-items:center;gap:3px;width:52px}
.cfg__varcol-item input[type=color]{width:30px;height:30px;padding:0;border:1px solid var(--c-brd);border-radius:8px;background:none;cursor:pointer}
.cfg__varcol-item small{font-size:8.5px;color:var(--c-mut);text-align:center;line-height:1.1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:52px}
.cfg__save{display:flex;gap:6px;position:sticky;bottom:0;background:var(--c-bg);padding:11px 0 16px;margin-top:12px;border-top:1px solid var(--c-line);z-index:6}
.cfg__save button{flex:1;font-size:11px;font-weight:800;padding:9px;border-radius:8px;transition:.15s;cursor:pointer}
#cfgSave{background:var(--c-ac);color:var(--c-acink)}
#cfgSave:hover{filter:brightness(1.08)}
#cfgReset{background:var(--c-surf);color:var(--c-ink);flex:0 0 auto;padding:9px 12px}
#cfgReset:hover{background:var(--c-surf-h);color:var(--c-title)}
.cfg__tabs{display:flex;gap:2px;border-bottom:1px solid var(--c-line);margin:2px 0 8px}
.cfg__tabs button{flex:1;font-size:12px;font-weight:700;padding:8px 4px;color:var(--c-mut);background:none;border:none;border-bottom:2px solid transparent;margin-bottom:-1px;cursor:pointer;transition:.15s}
.cfg__tabs button:hover{color:var(--c-ink)}
.cfg__tabs button.on{color:var(--c-title);border-color:var(--c-ac)}
.cfg__pane--layout .cfg__group h4{display:none}
.cfg__acc{border-bottom:1px solid var(--c-line);transition:background .15s}
.cfg__acc.is-open{background:var(--c-acc);border-radius:12px;border-bottom-color:transparent;margin:4px 0 8px}
.cfg__acc-head{display:flex;align-items:center;gap:11px;width:100%;padding:14px 2px;background:none;border:none;cursor:pointer;color:var(--c-title);font-family:'Archivo';font-size:13.5px;font-weight:800;text-align:left}
.cfg__acc.is-open .cfg__acc-head{padding:14px 12px 10px}
.cfg__acc-head:hover .cfg__acc-tt{color:var(--c-ac)}
.cfg__acc-ic{display:flex;color:var(--c-ac)}
.cfg__acc-tt{flex:1;transition:.15s}
.cfg__acc-caret{display:flex;color:var(--c-mut);transition:transform .2s}
.cfg__acc.is-open .cfg__acc-caret{transform:rotate(180deg)}
.cfg__acc-body{display:none;padding:0 12px 12px}
.cfg__acc.is-open .cfg__acc-body{display:block}
.cfg__acc-body .cfg__row:last-child{border-bottom:none}
.cfg__acc-body .cfg__sub-ctl,.cfg__acc-body .cfg__range{display:none}
/* Galerie image + Mise en page : accordéons « réglages directs » (pas de drill module) → on affiche leurs contrôles */
#cfgGalBody .cfg__sub-ctl,#cfgGalBody .cfg__range,#cfgLayoutBody .cfg__sub-ctl,#cfgLayoutBody .cfg__range{display:flex}
/* « Présentation détaillée » (Blocs/Onglets + style/ratio/hauteur) : toujours visible en tête de « Longue description » */
.cfg__acc-body .cfg__pres{display:flex}
.cfg__move{display:inline-flex;flex-direction:column;gap:1px;flex:none;margin-right:1px}
.cfg__move button{width:18px;height:12px;line-height:1;font-size:8px;color:var(--c-mut2);background:none;border:none;cursor:pointer;padding:0;border-radius:3px;display:flex;align-items:center;justify-content:center}
.cfg__move button:hover{color:var(--c-ac);background:var(--c-surf)}
.cfg__drill{flex:none;width:30px;height:30px;border:none;background:none;color:var(--c-mut2);font-size:24px;line-height:1;cursor:pointer;border-radius:8px;padding:0;display:flex;align-items:center;justify-content:center}
.cfg__drill:hover{color:var(--c-ink);background:var(--c-surf)}
.cfg__row:has(input[type=checkbox]:not(:checked)) label{color:var(--c-mut2)}
.cfg__row:has(input[type=checkbox]:not(:checked)) .cfg__drill{opacity:.25;pointer-events:none}
.cfg__row:has(input[type=checkbox]:checked) .cfg__drill{color:var(--c-ac)}
.cfg__pane--modules.is-drilled > #cfgList{display:none}
.cfg__back{display:inline-flex;align-items:center;gap:5px;height:34px;padding:0 14px 0 9px;border-radius:9px;background:var(--c-ac);color:var(--c-acink);border:none;font-size:12.5px;font-weight:800;line-height:1;cursor:pointer;margin:0 0 12px}
.cfg__back:hover{filter:brightness(1.08)}
.cfg__detail-hd{display:flex;align-items:center;gap:10px;padding:2px 0 12px;border-bottom:1px solid var(--c-line);margin-bottom:6px}
.cfg__detail-title{flex:1;font-family:'Archivo';font-size:16px;font-weight:800;color:var(--c-title)}
.cfg__detail-body{padding-top:4px}
.cfg__detail-empty{font-size:12.5px;color:var(--c-mut);padding:18px 2px;line-height:1.6}
.cfg__sub-ctl input[type=color]{width:44px;height:26px;padding:2px;border:1px solid var(--c-brd);border-radius:6px;background:var(--c-surf);cursor:pointer;flex:0 0 auto}
@keyframes wspulse{0%{transform:scale(1)}50%{transform:scale(1.06)}100%{transform:scale(1)}}
@keyframes wsshake{0%,100%{transform:translateX(0)}20%,60%{transform:translateX(-5px)}40%,80%{transform:translateX(5px)}}
.ws-cta.wsanim-pulse{animation:wspulse .5s ease}
.ws-cta.wsanim-shake{animation:wsshake .5s ease}
/* aperçu appareil (mobile / tablette) */
#deviceSel button{width:auto;padding:0 9px;font-size:10px}
.ws-device{position:fixed;top:0;left:280px;right:0;bottom:0;z-index:70;background:#26261f;display:none;place-items:center;padding:24px;overflow:auto}
.ws-device.is-on{display:grid}
.ws-device__frame{background:#fff;border:10px solid #1c1c1a;border-radius:34px;box-shadow:0 30px 90px rgba(0,0,0,.55);overflow:hidden;max-width:94vw;max-height:calc(var(--wsfp-vh,1vh)*88)}
.ws-device__frame iframe{display:block;width:100%;height:100%;border:0;background:#fff}
.ws-device.mobile .ws-device__frame{width:390px;height:min(780px,calc(var(--wsfp-vh,1vh)*86))}
.ws-device.tablet .ws-device__frame{width:820px;height:min(1000px,calc(var(--wsfp-vh,1vh)*86));border-radius:22px}
.ws-device__close{position:absolute;top:20px;right:22px;width:40px;height:40px;border-radius:50%;background:#fff;color:#1c1c1a;font-size:24px;line-height:1;display:grid;place-items:center;box-shadow:0 6px 20px rgba(0,0,0,.3);z-index:2;border:0;cursor:pointer}
.ws-device__close:hover{background:#1c1c1a;color:#fff}
.ws-device__tag{position:absolute;top:24px;left:24px;color:#fff;font-size:12px;font-weight:700;z-index:2}
body.embed .cfg,body.embed .cfg-toggle,body.embed .ws-device{display:none!important}
/* ÉDITION EN PLACE (prototype de notre propre éditeur) */
body.is-editing [contenteditable="true"]{outline:1px dashed var(--line);outline-offset:3px;border-radius:3px;cursor:text}
body.is-editing [contenteditable="true"]:hover{outline-color:var(--muted)}
body.is-editing [contenteditable="true"]:focus{outline:2px solid var(--accent);outline-offset:3px}
.ws-toolbar{position:fixed;z-index:200;display:none;background:#1c1c1a;border-radius:11px;box-shadow:0 10px 34px rgba(0,0,0,.4);padding:5px;align-items:center;gap:2px}
.ws-toolbar.is-on{display:flex}
.ws-toolbar button{min-width:30px;height:30px;padding:0 7px;border-radius:7px;color:#fff;font-size:14px;display:grid;place-items:center;line-height:1}
.ws-toolbar button:hover{background:rgba(255,255,255,.16)}
.ws-toolbar .sep{width:1px;height:18px;background:rgba(255,255,255,.22);margin:0 4px}
.ws-toolbar__colors{display:flex;gap:5px;padding:0 5px}
.ws-toolbar__colors span{width:18px;height:18px;border-radius:50%;cursor:pointer;border:1px solid rgba(255,255,255,.35)}
.ws-toolbar__colors span:hover{transform:scale(1.12)}
.cfg__group{margin-top:14px}
.cfg__group h4{font-size:10.5px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--c-mut2);margin-bottom:4px;font-family:'Manrope'}
.cfg__row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 2px;border-bottom:1px solid var(--c-line)}
.cfg__row label{font-size:12.5px;color:var(--c-ink2);cursor:pointer;flex:1;min-width:0;white-space:normal;line-height:1.25}
/* Reglage de GROUPE d'un accordeon (libelle au-dessus, boutons pleine largeur, jamais coupes). */
.cfg__grpctl{display:block;padding:10px 2px;border-bottom:1px solid var(--c-line)}
.cfg__grpctl > label{display:block;font-size:12.5px;color:var(--c-ink2);margin:0 0 7px;line-height:1.25}
.cfg__grpctl .segctl{width:100%;gap:5px;flex-wrap:wrap;justify-content:flex-start}
.cfg__grpctl .segctl button{flex:1 1 0;min-width:0;white-space:normal;line-height:1.15;height:auto;min-height:30px;padding:5px 6px;text-align:center}
.sw{position:relative;width:36px;height:21px;flex:0 0 36px}
.sw input{position:absolute;inset:0;opacity:0;margin:0;cursor:pointer;z-index:2}
.sw span{position:absolute;inset:0;background:var(--c-brd);border-radius:100px;transition:.2s}
.sw span::after{content:"";position:absolute;top:2px;left:2px;width:17px;height:17px;border-radius:50%;background:#fff;transition:.2s}
.sw input:checked + span{background:var(--c-ac)}
.sw input:checked + span::after{transform:translateX(15px)}
.cfg__sub-ctl label{color:var(--c-mut);font-size:12px}
.segctl{display:flex;gap:3px;flex:0 0 auto;flex-wrap:nowrap;justify-content:flex-end}
.segctl button{min-width:24px;width:auto;padding:0 7px;height:22px;border-radius:6px;background:var(--c-surf);color:var(--c-ink);font-size:11px;font-weight:700;transition:.15s;white-space:nowrap;cursor:pointer}
.cfg__row.cfg__sub-ctl{flex-wrap:nowrap}
.cfg__sub-ctl--stack{flex-direction:column;align-items:stretch;gap:8px;flex-wrap:wrap}
.cfg__sub-ctl--stack .segctl{justify-content:flex-start;flex-wrap:wrap}
.cfg__row.cfg__varcol,.cfg__row.cfg__checks{flex-wrap:wrap}
/* Libelles typo : titre complet visible (retour a la ligne au lieu de tronquer). */
.cfg__typo-role label,.cfg__typo-font label{flex:1;min-width:0;white-space:normal;line-height:1.25}
.segctl button.on{background:var(--c-ac);color:var(--c-acink)}
/* Selecteur d'appareil (facon Elementor) : boutons-icones plus grands, largeur egale */
.segctl--dev{gap:4px}
.segctl--dev button{flex:1;height:30px;padding:0;display:inline-flex;align-items:center;justify-content:center}
.segctl--dev button svg{display:block}
.cfg__route select{flex:0 0 auto;max-width:132px;font-size:11px;padding:4px 6px;border-radius:6px;background:var(--c-surf);color:var(--c-ink2);border:1px solid var(--c-brd)}
.cfg__sub-ctl input[type=text]{flex:0 0 auto;max-width:150px;font-size:11px;padding:5px 7px;border-radius:6px;background:var(--c-surf);color:var(--c-ink);border:1px solid var(--c-brd)}
.cfg__sub-ctl input[type=date]{flex:0 0 auto;font-size:11px;padding:4px 7px;border-radius:6px;background:var(--c-surf);color:var(--c-ink);border:1px solid var(--c-brd)}
.cfg__sub-ctl select.cfg__sel{flex:0 0 auto;max-width:150px;font-size:11px;padding:5px 7px;border-radius:6px;background:var(--c-surf);color:var(--c-ink);border:1px solid var(--c-brd);cursor:pointer}
.cfg__sub-ctl input[type=date]::-webkit-calendar-picker-indicator{filter:invert(.6);cursor:pointer}
.cfg__range{display:flex;flex-direction:column;gap:7px;padding:9px 0;border-bottom:1px solid var(--c-line)}
.cfg__range .lbl{display:flex;justify-content:space-between;align-items:center;font-size:12.5px;color:var(--c-ink2)}
.cfg__range .lbl b{color:var(--c-ac);font-weight:800;font-size:11.5px}
.cfg__range input[type=range]{width:100%;accent-color:var(--c-ac);background:transparent;cursor:pointer}
.cfg-toggle{position:fixed;top:14px;left:14px;z-index:90;background:var(--ink);color:#fff;font-size:12px;font-weight:700;padding:9px 13px;border-radius:100px;box-shadow:var(--shadow);display:inline-flex;align-items:center;gap:7px}
body.cfg-open .cfg-toggle{left:299px}

/* =========================================================
   SECTION: announcement-bar
   ========================================================= */
.ws-announce{background:var(--ink);color:#f4f2ec;font-size:12px;letter-spacing:.1em;font-weight:600;text-transform:uppercase;text-align:center;padding:9px 16px}
.ws-announce b{color:#fff}

/* =========================================================
   SECTION: header
   ========================================================= */
.ws-header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.86);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
.ws-header__inner{display:flex;align-items:center;justify-content:space-between;height:64px}
.ws-nav{display:flex;align-items:center;gap:28px}
.ws-nav a{font-size:14px;font-weight:600;color:var(--ink-soft);transition:color .2s}
.ws-nav a:hover{color:var(--ink)}
.ws-logo{font-family:'Archivo';font-weight:800;font-size:22px;letter-spacing:.06em}
.ws-header__actions{display:flex;align-items:center;gap:14px}
.ws-iconbtn{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;color:var(--ink);transition:background .2s}
.ws-iconbtn:hover{background:var(--bg-alt)}
.ws-iconbtn svg{width:19px;height:19px}
.ws-cartcount{position:relative}
.ws-cartcount span{position:absolute;top:-2px;right:-2px;background:var(--accent);color:#fff;font-size:10px;font-weight:700;width:16px;height:16px;border-radius:50%;display:grid;place-items:center}

/* =========================================================
   SECTION: product (galerie + panneau d'achat)
   ========================================================= */
.ws-product{padding-top:32px;padding-bottom:24px}
/* Galerie pleine largeur (Largeur=Pleine) : PC → empilé pleine largeur ; mobile → bord à bord */
.ws-product.wsfp-gal-full .ws-product__layout{flex-direction:column;gap:26px}
.ws-product.wsfp-gal-full .ws-buy{position:static;width:100%;max-width:560px;margin:0 auto}
.ws-product.wsfp-gal-full .ws-gallery-wrap{width:100%;flex:none}
@media(max-width:768px){
  /* image principale VRAIMENT bord à bord : width 100% + margin négative ne suffit pas, il faut élargir la boîte */
  .ws-product.wsfp-gal-full .ws-gallery-wrap{width:calc(100% + 36px);margin-inline:-18px}
  /* Pleine largeur : angles droits PAR DEFAUT, mais le curseur « Arrondi des images » prime s'il est defini. */
  .ws-product.wsfp-gal-full .ws-gal-stage,.ws-product.wsfp-gal-full .ws-shot,.ws-product.wsfp-gal-full .ws-shot img{border-radius:var(--wsfp-shot-radius,0)}
  /* bande de vignettes sous l'image : marge intérieure pour respirer, vignettes plus grandes (5 visibles, carrées), scroll au doigt sans flèches */
  .ws-product.wsfp-gal-full .ws-gal-thumbs,.ws-product.wsfp-gal-full .ws-gal-caption{padding-inline:18px}
  .ws-product.wsfp-gal-full .ws-gal-thumbs button{flex-basis:calc((100% - 40px) / 5)}
  .ws-product.wsfp-gal-full .ws-gal-thumbs img{aspect-ratio:1/1}
  .ws-product.wsfp-gal-full .ws-gal-tarrow{display:none!important}
}
.ws-product__layout{display:flex;gap:48px;align-items:flex-start}
/* Mode disposition « Colonne + achat sticky » (etape 6) */
.ws-layout-sticky .ws-sticky-main{flex:1 1 58%;min-width:0;display:flex;flex-direction:column}
.ws-layout-sticky .ws-sticky-main > section{width:100%}
.ws-layout-sticky .ws-buy{position:relative!important;top:auto!important;max-height:none;overflow:visible;will-change:transform;flex:0 0 var(--buy-w)!important;width:var(--buy-w);min-width:0!important;max-width:var(--buy-w)}
.ws-layout-sticky .ws-buy-desc{overflow:hidden}
.ws-layout-sticky .ws-buy-desc *{min-width:0}
/* La description longue A DROITE, sous l'achat : des blocs qui tiennent dans la colonne. */
.ws-layout-sticky .ws-buy-desc{display:flex;flex-direction:column;gap:18px;margin-top:28px;min-width:0}
.ws-layout-sticky .ws-buy-desc > *{width:100%!important;max-width:100%!important;margin-left:0!important;margin-right:0!important;padding-left:0!important;padding-right:0!important}
.ws-layout-sticky .ws-buy-desc .ws-wrap{max-width:100%!important;padding:0!important}
.ws-layout-sticky .ws-buy-desc .wsfp-bands{gap:22px!important}
.ws-layout-sticky .ws-buy-desc .wsfp-bd,.ws-layout-sticky .ws-buy-desc .wsfp-bd--alt{flex-direction:column!important;margin:0!important;max-width:none!important}
.ws-layout-sticky .ws-buy-desc .wsfp-bd__media{flex:none!important;width:100%!important;height:auto!important;min-height:0!important;aspect-ratio:4/3;margin:0!important}
.ws-layout-sticky .ws-buy-desc .wsfp-bd__panel{margin:0!important;padding:20px 22px!important;text-align:left;align-items:flex-start}
.ws-layout-sticky .ws-buy-desc .wsfp-st__feats{grid-template-columns:repeat(2,1fr)!important;gap:18px 0;padding:22px 12px}
.ws-layout-sticky .ws-buy-desc .wsfp-st__top,.ws-layout-sticky .ws-buy-desc .wsfp-st__card{grid-template-columns:1fr!important}
.ws-layout-sticky .ws-buy-desc .ws-reco__card{flex-basis:46%!important}
.ws-layout-sticky .ws-buy-desc .ws-reviews__list{grid-template-columns:1fr!important}
@media(max-width:1024px){.ws-layout-sticky .ws-product__layout{flex-direction:column}.ws-layout-sticky .ws-buy{max-height:none;overflow:visible;position:static}.ws-layout-sticky .ws-sticky-main{flex-basis:auto}}

/* LE TEXTE D'UN BLOC (« Apparence du bloc » : taille, police, couleur du texte, couleur au
   survol, couleur des liens ; milov 2026-10-23). UNE CLASSE PAR REGLAGE : poser une seule
   regle pour les cinq imposerait « inherit » aux quatre autres et aplatirait le bloc.
   Les valeurs sont des variables posees SUR le bloc par l'editeur, donc elles passent
   devant les memes reglages de l'etape Style, qui valent pour tout le modele.
   La taille ne touche pas aux titres : la hierarchie du bloc est gardee. */
.wsfp-u-ff,.wsfp-u-ff :is(p,li,td,th,span,label,small,a,h1,h2,h3,h4,h5,h6,button){font-family:var(--u-ff)!important}
/* `div` aussi (0.86.3) : la courte description est un <div> avec sa propre couleur grise ;
   « Couleur du texte » en noir restait gris (milov 2026-10-24). */
/* La couleur du TEXTE ne touche plus aux titres du bloc : ils ont la leur (wsfp-u-hcol). */
.wsfp-u-col,.wsfp-u-col :is(p,li,td,th,span,label,small,strong,b,em,div):not(:is(h1,h2,h3,h4,h5,h6) *){color:var(--u-col)!important}
.wsfp-u-fs,.wsfp-u-fs :is(p,li,td,th,span,label,small,div){font-size:var(--u-fs)!important}
.wsfp-u-lnk a{color:var(--u-lnk)!important}
.wsfp-u-hovc a:hover,.wsfp-u-hovc button:hover,.wsfp-u-hovc [role="button"]:hover{color:var(--u-hov)!important}

/* GARDER UNE COLONNE EN PLACE PENDANT LE DEFILEMENT (reglage galSticky, Non par defaut).
   Mise en page Classique, ordinateur : les photos restent a cote du texte au lieu de laisser
   un grand blanc. En mise en page Colonne, c'est wsfpColonneFixe qui s'en charge (une colonne
   plus haute que l'ecran ne peut pas etre « sticky » en CSS). */
@media (min-width:1025px){
  html.wsfp-galfix body:not(.ws-layout-sticky) .ws-product:not(.wsfp-gal-full) .ws-gallery-wrap{position:sticky;top:var(--wsfp-galfix-top,110px);align-self:flex-start}
}
/* PLEINE LARGEUR — partie produit (galerie à ras du bord) */
body.full-w .ws-header__inner{max-width:none}
body.full-w .ws-product__layout{max-width:none;padding-inline:24px;gap:36px}
body.full-w .ws-buy{padding-right:28px}
body.full-w .ws-shot{border-radius:var(--wsfp-shot-radius,0)}
/* PLEINE LARGEUR — partie longue description (réglage indépendant) */
body.desc-full .ws-tabs-sec .ws-wrap,body.desc-full .ws-steps .ws-wrap,body.desc-full .ws-faq .ws-wrap,body.desc-full .ws-values .ws-wrap,body.desc-full .ws-fbt .ws-wrap,body.desc-full .ws-qa .ws-wrap,body.desc-full .ws-related .ws-wrap,body.desc-full .ws-reviews .ws-wrap{max-width:none}
.ws-gallery-wrap{flex:1 1 58%;min-width:0;position:relative}
/* GALERIE · mode DÉCALÉ (masonry en colonnes CSS) */
.ws-gallery--masonry{column-count:2;column-gap:14px}
.ws-gallery--masonry .ws-shot{break-inside:avoid;margin-bottom:14px;display:block}
/* GALERIE · mode ALIGNÉ (grille régulière, tuiles uniformes) */
.ws-gallery--aligned{display:flex;flex-wrap:wrap;gap:14px}
.ws-gallery--aligned .ws-shot{flex:0 0 calc(50% - 7px);margin:0}
.ws-gallery--aligned .ws-shot img{aspect-ratio:4/5}
/* GALERIE · mode CARROUSEL (une image à la fois, flèches + indicateur fin) */
/* ---- Format « Grande + duos » : 1 grande piece en haut, puis des duos cote a cote.
   Tout en carre (1:1). Accepte image / video / GIF. Plafonne a 1 grande + 3 duos (7 media).
   En mobile, la galerie bascule automatiquement en carrousel (slide) comme les autres formats. */
.ws-gallery--duos{display:grid;grid-template-columns:1fr 1fr;gap:12px;align-items:start}
.ws-gallery--duos .ws-shot{margin:0;display:block;break-inside:auto}
.ws-gallery--duos .ws-shot:first-child{grid-column:1 / -1}
.ws-gallery--duos .ws-shot img,.ws-gallery--duos .ws-shot video{width:100%;height:100%;aspect-ratio:1/1!important;object-fit:cover;display:block;max-height:none}
.ws-gallery--duos .ws-shot:nth-child(n+8){display:none} /* 1 + (3 x 2) = 7 */
@media(max-width:768px){ .ws-gallery--duos{grid-template-columns:1fr} }

.ws-gallery--carousel{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;-ms-overflow-style:none}
.ws-gallery--carousel::-webkit-scrollbar{display:none}
.ws-gallery--carousel .ws-shot{flex:0 0 100%;scroll-snap-align:center;margin:0}
.ws-gallery--carousel .ws-shot img{aspect-ratio:1/1}
.ws-gal-arrow{display:none;position:absolute;bottom:18px;z-index:3;width:40px;height:40px;border-radius:50%;background:#fff;border:1px solid var(--line);box-shadow:var(--shadow);color:var(--ink);font-size:20px;line-height:1;align-items:center;justify-content:center;transition:.15s;cursor:pointer}
.ws-gal-arrow:hover{background:var(--ink);color:#fff}
.ws-gal-arrow--prev{right:68px}
.ws-gal-arrow--next{right:18px}
.ws-gal-bar{display:none;position:absolute;bottom:37px;left:20px;width:110px;height:2px;background:rgba(20,20,18,.16);border-radius:2px;z-index:3;overflow:hidden}
.ws-gal-bar span{display:block;height:100%;width:12.5%;background:var(--ink);border-radius:2px;transition:width .25s var(--ease)}
.ws-gallery-wrap.is-carousel .ws-gal-arrow{display:flex}
.ws-gallery-wrap.is-carousel .ws-gal-bar{display:block}
.ws-gal-stage{position:relative}
/* Curseur « Taille de l'image principale » (mode vignettes) : plafonne la taille de la
   GRANDE image et la centre. Repli 100% = pleine taille -> aucun effet tant que non regle.
   (On plafonne le stage plutot que la largeur de colonne : celle-ci a flex-grow:1 et
   remplit l'espace, donc changer sa flex-basis n'avait aucun effet visible.) */
.ws-gallery-wrap.is-thumbs .ws-gal-stage,
.ws-gallery-wrap.is-sidethumbs .ws-gal-stage{max-width:var(--wsfp-main-w,100%);margin-inline:auto}
/* ===== SURIMPRESSIONS galerie : badges en coin + bandeau promo en bas de l'image ===== */
.ws-gal-overlays{position:absolute;inset:0;pointer-events:none;z-index:5}
.ws-gal-badges{position:absolute;top:14px;left:14px;display:none;flex-direction:column;gap:7px;align-items:flex-start;max-width:72%}
.ws-gal-badges.pos-tr{left:auto;right:14px;align-items:flex-end}
.ws-gal-badge{pointer-events:auto;background:#fff;color:#141412;font-size:11.5px;font-weight:600;letter-spacing:.01em;padding:6px 11px;border-radius:999px;box-shadow:0 2px 10px rgba(0,0,0,.16);display:inline-flex;align-items:center;gap:5px;line-height:1.2}
.ws-gal-promo{position:absolute;left:0;right:0;bottom:0;display:none;pointer-events:auto;padding:28px 16px 14px;background:linear-gradient(to top,rgba(0,0,0,.62),rgba(0,0,0,0));color:#fff;font-size:13px;text-align:center;line-height:1.4}
.ws-gal-promo strong{font-weight:700}
/* n'apparaissent qu'en image unique (carrousel / vignettes) et si activées ; en mosaïque PC → masquées (l'overlay couvrirait la grille) */
.ws-product.wsfp-ov-badges .ws-gallery-wrap.is-carousel .ws-gal-badges,
.ws-product.wsfp-ov-badges .ws-gallery-wrap.is-thumbs .ws-gal-badges{display:flex}
.ws-product.wsfp-ov-promo .ws-gallery-wrap.is-carousel .ws-gal-promo,
.ws-product.wsfp-ov-promo .ws-gallery-wrap.is-thumbs .ws-gal-promo{display:block}
/* le bandeau promo prend le bas → on cache les points pour éviter le chevauchement */
.ws-product.wsfp-ov-promo .ws-gallery-wrap.is-thumbs .ws-gal-dots{display:none}
/* GALERIE · mode VIGNETTES (image principale + miniatures + points) */
.ws-gallery--thumbs{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;-ms-overflow-style:none}
.ws-gallery--thumbs::-webkit-scrollbar{display:none}
.ws-gallery--thumbs .ws-shot{flex:0 0 100%;scroll-snap-align:center;margin:0}
.ws-gallery--thumbs .ws-shot img{aspect-ratio:1/1}
.ws-gal-dots{display:none;position:absolute;bottom:14px;left:0;right:0;justify-content:center;gap:6px;z-index:3}
.ws-gal-dots button{width:7px;height:7px;border-radius:50%;background:rgba(255,255,255,.6);border:0;padding:0;cursor:pointer;transition:.15s;box-shadow:0 0 0 1px rgba(0,0,0,.14)}
.ws-gal-dots button.on{background:#fff;transform:scale(1.3)}
.ws-gal-thumbs-wrap{display:none;position:relative;margin-top:12px}
.ws-gal-thumbs{display:flex;gap:10px;overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none;padding-bottom:2px}
.ws-gal-thumbs::-webkit-scrollbar{display:none}
/* 7 vignettes visibles ; au-delà, ça défile avec les flèches */
.ws-gal-thumbs button{flex:0 0 calc((100% - 60px) / 7);border:2px solid transparent;border-radius:10px;overflow:hidden;padding:0;background:none;cursor:pointer;transition:.15s}
/* Curseur « Taille des vignettes » en mode vignettes horizontales : repli = /7 (defaut) tant que non regle. */
.ws-gallery-wrap.is-thumbs .ws-gal-thumbs button{flex-basis:var(--wsfp-thumb-col,calc((100% - 60px) / 7))}
.ws-gal-thumbs button:hover{border-color:var(--line)}
.ws-gal-thumbs button.on{border-color:var(--ink)}
.ws-gal-thumbs button.is-video{position:relative}
.ws-gal-thumbs button.is-video::after{content:"▶";position:absolute;inset:0;display:grid;place-items:center;color:#fff;font-size:13px;text-shadow:0 1px 4px rgba(0,0,0,.6);pointer-events:none}
.ws-gal-thumbs img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block}
.ws-gal-tarrow{display:none;position:absolute;top:calc(50% - 1px);transform:translateY(-50%);z-index:3;width:30px;height:30px;border-radius:50%;background:#fff;border:1px solid var(--line);box-shadow:var(--shadow);color:var(--ink);font-size:17px;line-height:1;align-items:center;justify-content:center;cursor:pointer;transition:.15s}
.ws-gal-tarrow:hover{background:var(--ink);color:#fff}
.ws-gal-tarrow--prev{left:2px}
.ws-gal-tarrow--next{right:2px}
.ws-gal-thumbs-wrap.has-overflow .ws-gal-tarrow{display:flex}
.ws-gal-caption{display:none;font-size:12px;font-style:italic;color:var(--muted);margin-top:12px;line-height:1.5}
.ws-gallery-wrap.is-thumbs .ws-gal-dots{display:flex}
.ws-gallery-wrap.is-thumbs .ws-gal-thumbs-wrap{display:block}
.ws-gallery-wrap.is-thumbs .ws-gal-caption{display:block}

/* GALERIE · mode LATÉRAL (vignettes en colonne à gauche + flèches sur l'image) */
.ws-gallery--sidethumbs{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;-ms-overflow-style:none}
.ws-gallery--sidethumbs::-webkit-scrollbar{display:none}
.ws-gallery--sidethumbs .ws-shot{flex:0 0 100%;scroll-snap-align:center;margin:0}
.ws-gallery--sidethumbs .ws-shot img{aspect-ratio:1/1}
.ws-gallery-wrap.is-sidethumbs{display:flex;gap:14px;align-items:stretch}
.ws-gallery-wrap.is-sidethumbs .ws-gal-thumbs-wrap{display:flex;flex-direction:column;gap:6px;order:0;flex:0 0 var(--wsfp-thumb-col,84px);margin-top:0;position:relative}
.ws-gallery-wrap.is-sidethumbs .ws-gal-thumbs{flex-direction:column;overflow-y:auto;overflow-x:hidden;height:auto;gap:10px;padding-bottom:0}
.ws-gallery-wrap.is-sidethumbs .ws-gal-thumbs button{flex:0 0 auto;width:100%}
.ws-gallery-wrap.is-sidethumbs .ws-gal-thumbs img{aspect-ratio:1/1}
/* 6 vignettes visibles ; au-dela, fleches haut/bas (la hauteur max est calculee en JS). */
.ws-gallery-wrap.is-sidethumbs .ws-gal-tarrow{display:none;position:static;transform:none;top:auto;left:auto;right:auto;width:100%;height:24px;border-radius:8px;font-size:0}
.ws-gallery-wrap.is-sidethumbs.has-vthumbs .ws-gal-tarrow{display:flex}
.ws-gallery-wrap.is-sidethumbs .ws-gal-tarrow--prev::after{content:"\25B2";font-size:12px}
.ws-gallery-wrap.is-sidethumbs .ws-gal-tarrow--next::after{content:"\25BC";font-size:12px}
.ws-gallery-wrap.is-sidethumbs .ws-gal-caption{display:none}
.ws-gallery-wrap.is-sidethumbs .ws-gal-stage{order:1;flex:1;min-width:0}
.ws-gallery-wrap.is-sidethumbs .ws-gal-arrow{display:flex;top:50%;bottom:auto;transform:translateY(-50%);width:46px;height:46px;background:rgba(110,110,110,.55);border:0;color:#fff;font-size:22px;box-shadow:none}
.ws-gallery-wrap.is-sidethumbs .ws-gal-arrow:hover{background:rgba(70,70,70,.78);color:#fff}
.ws-gallery-wrap.is-sidethumbs .ws-gal-arrow--prev{left:16px;right:auto}
.ws-gallery-wrap.is-sidethumbs .ws-gal-arrow--next{right:16px}
/* Format de l'image principale : pilote par --wsfp-shot-ratio (Carre 1/1 par defaut, Portrait, Large).
   Plafonne a calc(var(--wsfp-vh,1vh)*80) pour toujours tenir dans l'ecran. */
.ws-gallery--carousel .ws-shot img,.ws-gallery--carousel .ws-shot video,
.ws-gallery--thumbs .ws-shot img,.ws-gallery--thumbs .ws-shot video,
.ws-gallery--sidethumbs .ws-shot img,.ws-gallery--sidethumbs .ws-shot video{aspect-ratio:var(--wsfp-shot-ratio,1/1)!important;height:auto;max-height:calc(var(--wsfp-vh,1vh)*80);object-fit:cover}
/* Vrai panier WooCommerce injecte (variations + quantite + bouton), style pour coller a la fiche. */
/* !important : le theme (Astra, woocommerce-grid.min.css) met une bordure sur
   form.cart .variations. On l'annule ici car on rend les variations en boutons. */
.wsfp-cart .variations{width:100%;border-collapse:collapse;margin:0 0 12px;border:none!important}
.wsfp-cart .variations td,.wsfp-cart .variations th,.wsfp-cart .variations tr,.wsfp-cart .variations tbody{border:none!important}
.wsfp-cart .variations tr{display:block;margin:0 0 10px}
.wsfp-cart .variations td,.wsfp-cart .variations th{display:block;padding:0;border:0;text-align:left}
.wsfp-cart .variations th.label label{font-weight:700;font-size:14px;margin:0 0 5px;display:block}
.wsfp-cart .variations select{width:100%;height:46px;border:1px solid var(--line,#e2ddd3);border-radius:12px;padding:0 36px 0 14px;font-size:15px;background-color:var(--field,#faf9f6);color:var(--ink,#1c1b19);cursor:pointer;color-scheme:light;appearance:none;-webkit-appearance:none;-moz-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none' stroke='%238a887f' stroke-width='1.8'%3E%3Cpath d='M1 1.5 6 6.5l5-5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center}
.wsfp-cart .reset_variations{display:inline-block;font-size:12px;color:var(--muted,#6e6e67);margin:4px 0 0;text-decoration:underline}
.wsfp-cart .woocommerce-variation-price{font-size:22px;font-weight:800;color:var(--ink,#1c1b19);margin:0 0 10px}
.wsfp-cart .woocommerce-variation-availability{font-size:13px;color:var(--muted,#6e6e67);margin:0 0 8px}
.wsfp-cart form.cart{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:0}
.wsfp-cart .woocommerce-variation-add-to-cart{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
/* Stepper quantite en PILULE (reprise du .ws-qty de la maquette) : marche avec l'input natif
   OU le stepper "buttons_added" (liens - / + injectes par le theme). */
.wsfp-cart .quantity{display:inline-flex;align-items:center;flex:0 0 auto}
.wsfp-cart .quantity.buttons_added{border:1px solid var(--line,#e2ddd3);border-radius:100px;padding:4px;background:#fff}
.wsfp-cart .quantity.buttons_added{padding:3px}
.wsfp-cart .quantity.buttons_added .minus,.wsfp-cart .quantity.buttons_added .plus{width:30px;height:30px;border:0;border-radius:50%;background:none;display:inline-flex;align-items:center;justify-content:center;font-size:18px;font-weight:600;line-height:1;color:var(--ink,#1c1b19);text-decoration:none;cursor:pointer;transition:.15s}
.wsfp-cart .quantity.buttons_added .minus:hover,.wsfp-cart .quantity.buttons_added .plus:hover{background:var(--field,#f5f3ef)}
.wsfp-cart .quantity.buttons_added input.qty{width:36px;height:auto;border:0;background:none;text-align:center;font-size:15px;font-weight:700;color:var(--ink,#1c1b19);padding:0;border-radius:0;-moz-appearance:textfield}
.wsfp-cart .quantity input{width:66px;height:54px;text-align:center;border:1px solid var(--line,#e2ddd3);border-radius:12px;font-size:16px;font-weight:700;color:var(--ink,#1c1b19);-moz-appearance:textfield}
.wsfp-cart .quantity input::-webkit-outer-spin-button,.wsfp-cart .quantity input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
/* Bouton = CTA maquette (.ws-cta) : pilule noire, icone panier, libelle blanc, separateur estompe, prix. */
/* Les 2 lignes de reassurance cote a cote (livraison offerte | delai). */
.wsfp-duo{display:flex;flex-wrap:nowrap;gap:12px;align-items:center;justify-content:flex-start}
.wsfp-duo > [data-module]{flex:0 1 auto;width:auto!important;min-width:0;padding:0!important;margin:0!important}
/* TOUT sur UNE ligne : taille reduite pour que les deux mentions tiennent cote a cote. */
.wsfp-duo > [data-module],.wsfp-duo > [data-module] > *{white-space:nowrap!important;display:flex;align-items:center;gap:5px;
  justify-content:flex-start!important;font-size:12px;line-height:1.35;padding:0;margin:0}
/* AUCUN overflow:hidden ici : les pastilles rondes debordent a GAUCHE de leur bloc
   (mesure : -10px et -15px) et se faisaient trancher. Le nowrap suffit pour tenir sur une ligne. */
.wsfp-duo > [data-module],.wsfp-duo > [data-module] > *{overflow:visible}
.wsfp-duo .ws-dot,.wsfp-duo .ws-stockstatus .d{flex:0 0 auto;width:8px;height:8px;border-radius:50%;display:inline-block}
.wsfp-duo [data-module="freeship"] .ws-dot{background:#7C2750}
.wsfp-duo b{font-weight:700}
@media(max-width:520px){ .wsfp-duo{flex-wrap:wrap;gap:4px 12px} }
/* Le bouton doit prendre TOUTE la largeur restante : CHAQUE conteneur intermediaire doit
   s'etendre (form.cart > .single_variation_wrap > .woocommerce-variation-add-to-cart > bouton).
   Sans .single_variation_wrap, la ligne s'arretait au contenu (bouton de 183px). */
.wsfp-cart form.cart,.wsfp-cart .single_variation_wrap,.wsfp-cart .woocommerce-variation-add-to-cart{width:100%;flex:1 1 100%}
/* Plus FIN (hauteur reduite) et PLEINE LARGEUR restante. */
.wsfp-cart .single_add_to_cart_button{flex:1 1 0;min-width:180px;min-height:44px;display:inline-flex;align-items:center;justify-content:center;gap:9px;border:0;border-radius:100px;background:var(--accent-ink,#1c1b19);color:#fff;font-size:14px;font-weight:800;white-space:nowrap;cursor:pointer;transition:.16s;padding:0 22px}
.wsfp-cart .single_add_to_cart_button:hover{background:#000;transform:translateY(-1px);box-shadow:0 12px 26px -8px rgba(20,20,18,.5);filter:none}
.wsfp-cart .single_add_to_cart_button svg{width:18px;height:18px;flex:0 0 auto}
.wsfp-cart .single_add_to_cart_button .wsfp-cta__sep{opacity:.4;font-weight:400}
.wsfp-cart .single_add_to_cart_button .wsfp-cta__price{font-weight:800}
.wsfp-cart .single_add_to_cart_button.disabled,.wsfp-cart .single_add_to_cart_button:disabled{opacity:.45;cursor:not-allowed;transform:none;box-shadow:none}
.wsfp-cart .stock,.wsfp-cart .woocommerce-info,.wsfp-cart .wc-no-matching-variations{font-size:13px;color:var(--muted,#6e6e67);margin:8px 0 0}

/* ============================================================
   NIVEAU 1 - SKIN UNIVERSEL DES OPTIONS PRODUIT
   Cible le SOCLE WooCommerce standard : tout controle a l'interieur
   du panier injecte (.wsfp-cart). Fonctionne avec N'IMPORTE QUEL plugin
   d'options (WooCommerce Product Add-Ons, YITH, TM Extra Product Options,
   PluginHive, etc.) car on stylise les elements HTML standard par leur
   CONTEXTE, jamais par les classes propres a chaque plugin.
   Les regles natives ci-dessus (.variations select, input.qty, bouton)
   restent prioritaires par specificite -> intactes.
   ============================================================ */
/* !important : indispensable pour PRIMER sur le CSS propre a chaque plugin d'add-ons
   (qui charge souvent apres nous et/ou avec plus de specificite). C'est le role assume
   d'une couche d'override universelle : imposer NOTRE design quel que soit le plugin. */
.wsfp-cart select,
.wsfp-cart input:where([type="text"],[type="email"],[type="tel"],[type="url"],[type="search"],[type="password"],[type="date"]),
.wsfp-cart input[type="number"]:not(.qty){
  width:100%!important;max-width:100%!important;box-sizing:border-box!important;height:46px!important;
  border:1px solid var(--line,#e2ddd3)!important;border-radius:12px!important;padding:0 14px!important;
  font-family:'Manrope',-apple-system,BlinkMacSystemFont,sans-serif!important;font-size:15px!important;line-height:1.2!important;
  background-color:var(--field,#faf9f6)!important;color:var(--ink,#1c1b19)!important;
  color-scheme:light;transition:border-color .15s,box-shadow .15s;-moz-appearance:none}
.wsfp-cart textarea{
  width:100%!important;max-width:100%!important;box-sizing:border-box!important;min-height:110px!important;
  border:1px solid var(--line,#e2ddd3)!important;border-radius:12px!important;padding:12px 14px!important;
  font-family:'Manrope',-apple-system,BlinkMacSystemFont,sans-serif!important;font-size:15px!important;line-height:1.55!important;
  background-color:var(--field,#faf9f6)!important;color:var(--ink,#1c1b19)!important;resize:vertical;
  transition:border-color .15s,box-shadow .15s}
/* Chevron maison + suppression de la fleche native pour TOUS les selects d'options */
.wsfp-cart select{cursor:pointer;appearance:none!important;-webkit-appearance:none!important;padding-right:36px!important;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none' stroke='%238a887f' stroke-width='1.8'%3E%3Cpath d='M1 1.5 6 6.5l5-5'/%3E%3C/svg%3E")!important;background-repeat:no-repeat!important;background-position:right 14px center!important}
.wsfp-cart select:focus,
.wsfp-cart input:focus,
.wsfp-cart textarea:focus{outline:none!important;border-color:var(--accent,#1c1b19)!important;
  box-shadow:0 0 0 3px color-mix(in srgb,var(--accent,#1c1b19) 22%,transparent)!important}
.wsfp-cart select:hover,
.wsfp-cart input:hover,
.wsfp-cart textarea:hover{border-color:var(--accent,#1c1b19)!important}
/* Libelles des options (les variations natives gardent leur style, plus specifique) */
.wsfp-cart label{font-family:'Manrope',-apple-system,BlinkMacSystemFont,sans-serif;font-size:13.5px;font-weight:600;color:var(--ink-soft,#4a4a46);line-height:1.4}
/* Cases a cocher / radios : reprennent l'accent du site */
.wsfp-cart input[type="radio"],.wsfp-cart input[type="checkbox"]{accent-color:var(--accent,#1c1b19);width:17px;height:17px;cursor:pointer}
/* Champ requis : petite etoile deja rendue par les plugins, on garde l'accent */
.wsfp-cart abbr.required,.wsfp-cart .required{color:var(--accent,#c0392b);text-decoration:none;border:0}

/* ============================================================
   NIVEAU 2 - MENU DEROULANT MAISON (remplace le <select> natif)
   Le vrai <select> reste dans le DOM (cache mais fonctionnel + soumis) :
   on le synchronise (valeur + evenement change) -> prix/validation
   WooCommerce et logique des plugins d'add-ons intacts. Resout aussi
   la liste native de l'OS (impossible a styliser autrement).
   ============================================================ */
.wsfp-sel{position:relative;width:100%;font-family:'Manrope',-apple-system,BlinkMacSystemFont,sans-serif}
.wsfp-sel__native{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:0!important;border:0!important;opacity:0!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;pointer-events:none!important}
.wsfp-sel__btn{width:100%;height:46px;box-sizing:border-box;display:flex;align-items:center;justify-content:space-between;gap:10px;border:1px solid var(--line,#e2ddd3);border-radius:12px;padding:0 14px;background:var(--field,#faf9f6);color:var(--ink,#1c1b19);font-size:15px;font-family:inherit;cursor:pointer;text-align:left;transition:border-color .15s,box-shadow .15s}
.wsfp-sel__btn:hover,.wsfp-sel.is-open .wsfp-sel__btn{border-color:var(--accent,#1c1b19)}
.wsfp-sel.is-open .wsfp-sel__btn{box-shadow:0 0 0 3px color-mix(in srgb,var(--accent,#1c1b19) 22%,transparent)}
.wsfp-sel__cur{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}
.wsfp-sel__cur.is-ph{color:var(--muted,#6e6e67)}
.wsfp-sel__chev{flex:0 0 auto;transition:transform .18s;color:var(--muted,#6e6e67)}
.wsfp-sel.is-open .wsfp-sel__chev{transform:rotate(180deg)}
.wsfp-sel__panel{position:absolute;z-index:60;top:calc(100% + 6px);left:0;right:0;background:#fff;border:1px solid var(--line,#e2ddd3);border-radius:12px;box-shadow:0 18px 44px -20px rgba(20,20,18,.5);padding:6px;max-height:280px;overflow:auto;display:none}
.wsfp-sel.is-open .wsfp-sel__panel{display:block}
.wsfp-sel__opt{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:8px;font-size:14.5px;line-height:1.3;color:var(--ink,#1c1b19);cursor:pointer;transition:background .12s}
.wsfp-sel__opt:hover{background:var(--bg-alt,#f5f3ef)}
.wsfp-sel__opt.is-sel{background:var(--accent,#1c1b19);color:#fff}
.wsfp-sel__opt.is-disabled{opacity:.4;cursor:not-allowed;text-decoration:line-through}
.wsfp-sel__sw{flex:0 0 auto;width:16px;height:16px;border-radius:50%;border:1px solid rgba(0,0,0,.15)}
/* ============================================================
   VARIANTES WooCommerce en boutons / pastilles (notre design).
   Genere depuis les vraies options du <select> de variation.
   Specificite .wsfp-cart .wsfp-var__opts .wsfp-var__opt pour primer
   sur le reset generique des <button> du skin.
   ============================================================ */
.wsfp-cart .wsfp-var{margin:0 0 14px}
.wsfp-cart .wsfp-var__opts{display:flex;flex-wrap:wrap;gap:8px}
.wsfp-cart .wsfp-var__opts .wsfp-var__opt{display:inline-flex;align-items:center;gap:7px;min-height:42px;padding:0 15px;box-sizing:border-box;border:1.5px solid var(--line,#e2ddd3);border-radius:11px;background:var(--field,#faf9f6);color:var(--ink,#1c1b19);font-family:'Manrope',-apple-system,sans-serif;font-size:14px;font-weight:600;line-height:1;cursor:pointer;transition:border-color .14s,background .14s,color .14s}
.wsfp-cart .wsfp-var__opts .wsfp-var__opt:hover{border-color:var(--accent,#1c1b19)}
.wsfp-cart .wsfp-var__opts .wsfp-var__opt.on{border-color:var(--accent,#1c1b19);background:var(--accent,#1c1b19);color:#fff}
.wsfp-cart .wsfp-var__opts .wsfp-var__opt.is-disabled{opacity:.4;cursor:not-allowed;text-decoration:line-through}
.wsfp-cart .wsfp-var__opts .wsfp-var__opt .wsfp-sel__sw{width:17px;height:17px}

/* Bloc d'options pilotant la variante : etat selectionne + mention (design existant conserve). */
.wsfp-lt__card[data-wsfpo-val],.wsfp-ls__card[data-wsfpo-val]{cursor:pointer}
.wsfp-lt__card[data-wsfpo-val].is-on{border-color:var(--ink,#141413);box-shadow:0 0 0 1px var(--ink,#141413)}
.wsfp-ls__card[data-wsfpo-val].is-on{border-color:var(--ink,#141413);box-shadow:inset 0 0 0 1px var(--ink,#141413);background:var(--bg-alt,#f5f3ef)}
.wsfp-ls__card[data-wsfpo-val].is-on .wsfp-ls__radio{border-color:var(--ink,#141413)}
.wsfp-ls__card[data-wsfpo-val].is-on .wsfp-ls__radio::after{content:"";position:absolute;inset:3px;border-radius:50%;background:var(--ink,#141413)}
.wsfp-lt__card[data-wsfpo-val] .wsfp-lt__price b{font-weight:800}

/* ============================================================
   STYLES D'AFFICHAGE DES OPTIONS (editeur simplifie)
   Habillent le <select> de variation natif : vignettes / offre par lot /
   cartes cochables. Contenus (image, ruban, mention) 100 % saisis en admin.
   ========================================================== */
.wsfpo-f{margin:0 0 16px}
.wsfpo-f__list{display:flex;flex-wrap:wrap;gap:10px}
.wsfpo-f__card,.wsfpo-f__row{position:relative;background:#fff;border:1px solid var(--line,#e2ddd3);border-radius:12px;cursor:pointer;
  font-family:'Manrope',-apple-system,sans-serif;color:var(--ink,#1c1b19);text-align:center;transition:border-color .15s,box-shadow .15s;padding:9px}
.wsfpo-f__card:hover,.wsfpo-f__row:hover{border-color:var(--muted,#b8b3a6)}
.wsfpo-f__card.on,.wsfpo-f__row.on{border-color:var(--ink,#1c1b19);box-shadow:0 0 0 1px var(--ink,#1c1b19)}
.wsfpo-f__card.is-disabled,.wsfpo-f__row.is-disabled{opacity:.4;cursor:not-allowed;text-decoration:line-through}
.wsfpo-f__im{display:block;border-radius:9px;overflow:hidden;background:var(--bg-alt,#f5f3ef)}
.wsfpo-f__im img{width:100%;height:100%;object-fit:cover;display:block}
.wsfpo-f__nm{display:block;font-size:14px;font-weight:700;line-height:1.25}
.wsfpo-f__sub{display:block;font-size:12px;color:var(--muted,#6e6e67);margin-top:2px}
.wsfpo-f__rib{position:absolute;top:-9px;left:50%;transform:translateX(-50%);font-size:9.5px;font-weight:800;letter-spacing:.04em;
  text-transform:uppercase;background:var(--ink,#1c1b19);color:#fff;padding:3px 10px;border-radius:100px;white-space:nowrap;z-index:2}
/* vignettes */
.wsfpo-f--tiles .wsfpo-f__list{display:grid;grid-template-columns:repeat(auto-fit,minmax(104px,1fr))}
.wsfpo-f--tiles .wsfpo-f__im{height:104px;margin-bottom:7px}
/* offre par lot : lignes pleine largeur */
.wsfpo-f--lot .wsfpo-f__list{display:block}
.wsfpo-f--lot .wsfpo-f__row{display:flex;align-items:center;gap:11px;width:100%;text-align:left;padding:11px 13px;margin:0 0 9px}
.wsfpo-f--lot .wsfpo-f__rd{flex:0 0 auto;width:18px;height:18px;border-radius:50%;border:2px solid var(--line,#ccc);position:relative}
.wsfpo-f--lot .wsfpo-f__row.on .wsfpo-f__rd{border-color:var(--ink,#1c1b19)}
.wsfpo-f--lot .wsfpo-f__row.on .wsfpo-f__rd::after{content:"";position:absolute;inset:3px;border-radius:50%;background:var(--ink,#1c1b19)}
.wsfpo-f--lot .wsfpo-f__im{flex:0 0 auto;width:44px;height:54px}
.wsfpo-f--lot .wsfpo-f__im--none{display:none}
.wsfpo-f--lot .wsfpo-f__bd{flex:1;min-width:0}
.wsfpo-f--lot .wsfpo-f__nm{font-size:15px}
.wsfpo-f--lot .wsfpo-f__rib{left:auto;right:14px;transform:none}
/* cartes cochables */
.wsfpo-f--check .wsfpo-f__list{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}
.wsfpo-f--check .wsfpo-f__im{height:74px;margin-bottom:7px}
.wsfpo-f--check .wsfpo-f__ck{position:absolute;top:9px;right:9px;width:19px;height:19px;border-radius:6px;border:1px solid var(--line,#d9d4c8);background:#fff;z-index:2}
.wsfpo-f--check .wsfpo-f__card.on .wsfpo-f__ck{background:var(--ink,#1c1b19);border-color:var(--ink,#1c1b19)}
.wsfpo-f--check .wsfpo-f__card.on .wsfpo-f__ck::after{content:"";position:absolute;left:6px;top:2px;width:5px;height:10px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg)}
@media(max-width:480px){
  .wsfpo-f--tiles .wsfpo-f__list{grid-template-columns:repeat(auto-fit,minmax(92px,1fr))}
  .wsfpo-f--tiles .wsfpo-f__im{height:88px}
}
/* --wsfp-shot-radius : pilote par le curseur « Arrondi des images » (repli sur --radius). */
.ws-shot{border-radius:var(--wsfp-shot-radius,var(--radius));overflow:hidden;background:var(--bg-warm);position:relative}
.ws-gal-stage,.ws-gal-thumbs .ws-gal-thumb{border-radius:var(--wsfp-shot-radius,var(--radius))}
.ws-shot img{width:100%;object-fit:cover;transition:transform .7s var(--ease)}
.ws-shot:hover img{transform:scale(1.03)}
.ws-shot--tall img{aspect-ratio:3/4}
.ws-shot--square img{aspect-ratio:1/1}
.ws-shot--wide img{aspect-ratio:4/3}
/* vidéo & gif dans la galerie (gif = simple img animée, aucune règle spéciale) */
.ws-shot video{width:100%;display:block;object-fit:cover;background:#000}
.ws-shot iframe.wsfp-yt{width:100%;display:block;border:0;background:#000;aspect-ratio:4/3;height:auto}
.ws-shot--square iframe.wsfp-yt,.ws-gallery--duos .ws-shot iframe.wsfp-yt,.ws-gallery--carousel .ws-shot iframe.wsfp-yt,.ws-gallery--thumbs .ws-shot iframe.wsfp-yt{aspect-ratio:1/1}
.ws-gallery--aligned .ws-shot iframe.wsfp-yt{aspect-ratio:4/5}
.ws-gallery--sidethumbs .ws-shot iframe.wsfp-yt{aspect-ratio:var(--wsfp-shot-ratio,1/1)}
.ws-shot--tall video{aspect-ratio:3/4}
.ws-shot--square video{aspect-ratio:1/1}
.ws-shot--wide video{aspect-ratio:4/3}
.ws-gallery--aligned .ws-shot video{aspect-ratio:4/5}
.ws-gallery--carousel .ws-shot video,.ws-gallery--thumbs .ws-shot video,.ws-gallery--sidethumbs .ws-shot video{aspect-ratio:1/1}
.ws-shot__tag{position:absolute;left:12px;bottom:12px;background:rgba(255,255,255,.92);backdrop-filter:blur(6px);font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;padding:6px 11px;border-radius:100px;color:var(--ink)}

/* --- panneau d'achat modulaire (sticky) --- */
.ws-buy{flex:0 0 var(--buy-w);position:sticky;top:84px;display:flex;flex-direction:column;gap:9px}
.ws-mod{display:flex;flex-direction:column;gap:11px}
.ws-mod.is-off{display:none}
/* Bloc sans contenu produit rempli : masqué sur le front (regle « vide = masque »). */
.wsfp-nocontent{display:none!important}
/* Livraison cote a cote : .ws-buy passe en grid, les 2 modules restent enfants directs (fleches de reordonnancement OK).
   Colonnes dimensionnees au CONTENU (pas 50/50) : chaque bloc prend juste la place qu'il lui faut -> tient sur une ligne. */
.ws-buy.wsfp-liv-row{display:grid;grid-template-columns:auto auto;justify-content:space-between;align-items:center;align-content:start;column-gap:16px}
.ws-buy.wsfp-liv-row > *{grid-column:1 / -1}
.ws-buy.wsfp-liv-row > [data-module="freeship"],
.ws-buy.wsfp-liv-row > [data-module="delivery"]{grid-column:auto;min-width:0;align-self:center}
/* CLE : en inline-flex, chaque morceau de phrase devenait un item flex coupe mot par mot.
   On repasse en texte normal -> la phrase reste d'un bloc, lisible et alignee. */
.ws-buy.wsfp-liv-row > [data-module="freeship"] .ws-freeship,
.ws-buy.wsfp-liv-row > [data-module="delivery"] .ws-stockstatus{display:block;font-size:12.5px;line-height:1.35;text-wrap:balance}
.ws-buy.wsfp-liv-row > [data-module="freeship"] .ws-freeship .ws-dot,
.ws-buy.wsfp-liv-row > [data-module="delivery"] .ws-stockstatus .d{display:inline-block;vertical-align:middle;margin-right:7px}
@media (max-width:768px){.ws-buy.wsfp-liv-row{grid-template-columns:1fr;row-gap:10px}}
/* Barres de separation entre groupes de modules : retirees (bruit visuel inutile). */
.ws-mod.has-sep{border-top:0;padding-top:0;margin-top:0}
[data-module].is-off{display:none}

/* ZONE 0 · code promo */
.ws-promocode{display:flex;align-items:center;gap:9px;background:var(--field);border:1px dashed #c9c4b8;border-radius:10px;padding:8px 11px}
.ws-promocode svg{width:16px;height:16px;color:var(--ink-soft);flex:0 0 auto}
.ws-promocode__txt{flex:1;font-size:12.5px;font-weight:600;color:var(--ink-soft)}
.ws-promocode__txt b{color:var(--ink);font-weight:800}
.ws-promocode__copy{font-size:10.5px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:var(--ink);background:#fff;border:1px solid var(--line);padding:5px 8px;border-radius:7px;transition:.2s;flex:0 0 auto}
.ws-promocode__copy:hover{background:var(--ink);color:#fff}
/* tailles réglables du code promo (réglage dans le panneau) */
.ws-promocode--sm{padding:6px 10px;gap:7px}
.ws-promocode--sm svg{width:14px;height:14px}
.ws-promocode--sm .ws-promocode__txt{font-size:11.5px}
.ws-promocode--sm .ws-promocode__copy{font-size:9.5px;padding:4px 7px}
.ws-promocode--lg{padding:11px 14px;gap:11px}
.ws-promocode--lg svg{width:19px;height:19px}
.ws-promocode--lg .ws-promocode__txt{font-size:14px}
.ws-promocode--lg .ws-promocode__copy{font-size:11.5px;padding:6px 10px}

/* ZONE 1 · identité */
.ws-buy .ws-rating{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--ink-soft)}
.ws-buy .ws-rating .ws-stars{font-size:12.5px}
.ws-buy .ws-rating b{color:var(--ink)}
.ws-buy .ws-rating a{color:var(--muted);text-decoration:underline;text-underline-offset:2px}
/* logos plateformes d'avis, empilés (comme les bulles d'avatars) */
.ws-trustlogos{display:flex;align-items:center}
.ws-tl{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;font-weight:800;font-size:14px;border:2px solid #fff;box-shadow:0 1px 3px rgba(0,0,0,.18);margin-left:-9px;transition:transform .15s var(--ease)}
.ws-tl:first-child{margin-left:0}
.ws-tl:hover{transform:translateY(-3px)}
.ws-tl svg{width:15px;height:15px}
.ws-tl--trustpilot{background:#00b67a;color:#fff}
.ws-tl--google{background:#fff;color:#4285f4;font-family:'Archivo'}
.ws-tl--verified{background:#f0592b;color:#fff}
.ws-tl--facebook{background:#1877f2;color:#fff;font-family:'Archivo'}
.ws-tl--instagram{background:radial-gradient(circle at 30% 110%,#fdc468,#e6683c 42%,#cc2366 72%,#8a3ab9);color:#fff}
.ws-trustlogos__label{margin-left:12px;font-size:12px;color:var(--ink-soft)}
.ws-trustlogos__label b{color:var(--ink);font-weight:800}
.ws-badgerow{display:flex;align-items:center;gap:6px;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}
.ws-badgerow::-webkit-scrollbar{display:none}
.ws-badgerow .ws-badge{flex:0 0 auto;font-size:10px;padding:5px 8px;letter-spacing:.02em}
.ws-title{font-size:29px;font-weight:800;line-height:1.13}
.ws-tags{display:flex;flex-wrap:wrap;gap:7px}
.ws-tag{font-size:12px;font-weight:600;color:var(--ink-soft);background:var(--field);border:1px solid var(--line);padding:6px 11px;border-radius:100px}
/* en-tête produit : fil d'Ariane + nom/prix sur une ligne + sous-titre */
.ws-crumb{font-size:12px;color:var(--muted);display:flex;flex-wrap:wrap;gap:5px;align-items:center;padding-bottom:12px;border-bottom:1px solid var(--line)}
.ws-crumb a{color:var(--muted);transition:color .2s}
.ws-crumb a:hover{color:var(--ink);text-decoration:underline}
.ws-crumb .sep{color:#c9c4b8}
.ws-crumb .cur{color:var(--ink-soft);font-weight:600}
.ws-headline{display:flex;align-items:baseline;justify-content:space-between;gap:14px}
.ws-headline__name{font-size:var(--h1-size,38px);color:var(--h1-color);font-weight:800;line-height:.98;letter-spacing:-.02em}
.ws-headline__price{display:flex;align-items:baseline;gap:8px;flex:0 0 auto;white-space:nowrap;margin-left:auto}
.ws-headline__now{font-family:'Archivo';font-size:24px;font-weight:800;color:var(--ink)}
.ws-headline__was{font-size:15px;color:var(--sale);text-decoration:line-through}
.ws-headline__sub{font-size:12px;letter-spacing:.07em;text-transform:uppercase;color:var(--muted);font-weight:600;line-height:1.45}

/* ZONE 2 · prix */
.ws-headline__off{font-size:11px;font-weight:800;color:#fff;background:var(--sale);padding:2px 7px;border-radius:6px;align-self:center;white-space:nowrap}
.ws-shortdesc{font-size:13.5px;color:var(--ink-soft);line-height:1.55}
.ws-shortdesc p{margin:0 0 .6em}.ws-shortdesc p:last-child{margin-bottom:0}
.ws-shortdesc ul,.ws-shortdesc ol{margin:.3em 0 .6em 1.2em;padding:0}.ws-shortdesc li{margin:0 0 .2em}
.ws-shortdesc a{color:inherit;text-decoration:underline;text-underline-offset:2px}
.ws-benefits{list-style:none;display:flex;flex-direction:column;gap:6px}
.ws-benefits li{display:flex;gap:9px;align-items:flex-start;font-size:12.5px;color:var(--ink-soft);line-height:1.4}
.ws-benefits__mk{flex:0 0 18px;width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center;color:var(--ink);font-weight:800;font-size:13px;margin-top:1px;line-height:1}
.ws-benefits__mk svg{width:16px;height:16px}
.ws-benefits--star .ws-benefits__mk{color:var(--star)}
.ws-benefits--number .ws-benefits__mk{background:var(--ink);color:#fff;border-radius:50%;font-size:11px}
/* Provenance / origine (etape 5) */
.ws-origin{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:600;color:var(--ink)}
.ws-origin__flag{font-size:18px;line-height:1;flex:0 0 auto}
.ws-origin--badge{background:var(--field);border:1px solid var(--line);padding:6px 12px;border-radius:100px}
.ws-origin--carte{background:var(--bg-alt);border:1px solid var(--line);padding:12px 15px;border-radius:var(--radius-sm);gap:12px}
.ws-origin--carte .ws-origin__flag{font-size:26px}
/* ===== Reglages metier Tete (etape 3) ===== */
.ws-crumb__home{width:13px;height:13px;vertical-align:-2px;margin-right:3px}
.ws-headline__brand{font-size:12px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--muted);margin-bottom:3px}
.ws-headline__from{font-size:12px;color:var(--muted);font-weight:600;margin-right:4px;align-self:center}
.ws-stars--half{position:relative;display:inline-block;letter-spacing:.5px}
.ws-stars--half .ws-stars__base{color:var(--line)}
.ws-stars--half .ws-stars__fill{position:absolute;left:0;top:0;overflow:hidden;white-space:nowrap;color:var(--star)}
.ws-promocode--solid{background:var(--promo);border:1px solid var(--promo);color:#fff}
.ws-promocode--solid svg{color:#fff}
.ws-promocode--solid .ws-promocode__copy{background:#fff;color:var(--promo)}
.ws-promocode--ticket{border:none;background:var(--field);-webkit-mask:radial-gradient(circle 5px at 0 50%,transparent 5px,#000 5.5px) left/51% 100% no-repeat,radial-gradient(circle 5px at 100% 50%,transparent 5px,#000 5.5px) right/51% 100% no-repeat;mask:radial-gradient(circle 5px at 0 50%,transparent 5px,#000 5.5px) left/51% 100% no-repeat,radial-gradient(circle 5px at 100% 50%,transparent 5px,#000 5.5px) right/51% 100% no-repeat}
.ws-badgerow--contour .ws-badge{background:transparent!important;border:1.5px solid var(--line);color:var(--ink)!important}
.ws-badgerow--pill .ws-badge{border-radius:100px}
@keyframes wsBadgeIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.ws-badgerow--anim .ws-badge{animation:wsBadgeIn .45s var(--ease) both}
.ws-badgerow--anim .ws-badge:nth-child(2){animation-delay:.09s}
.ws-badgerow--anim .ws-badge:nth-child(3){animation-delay:.18s}
.ws-badgerow--anim .ws-badge:nth-child(4){animation-delay:.27s}
.ws-shortdesc__more{margin-top:5px;font-size:12px;font-weight:700;color:var(--accent-ink);text-decoration:underline;text-underline-offset:2px;background:none;border:none;cursor:pointer;padding:0}
.ws-trustlogos--sm .ws-tl{width:24px;height:24px;font-size:12px}
.ws-trustlogos--sm .ws-tl svg{width:12px;height:12px}
.ws-trustlogos--lg .ws-tl{width:37px;height:37px;font-size:17px}
.ws-trustlogos--lg .ws-tl svg{width:18px;height:18px}
.ws-stockstatus{display:inline-flex;align-items:center;gap:9px;font-size:13px;font-weight:700;color:var(--ink)}
.ws-stockstatus .d{width:8px;height:8px;border-radius:50%;background:var(--stock);box-shadow:0 0 0 3px rgba(63,154,92,.16)}
.ws-tax{font-size:12px;color:var(--muted)}
.ws-installment{font-size:12.5px;color:var(--ink-soft)}
.ws-installment b{color:var(--ink)}

/* ZONE 3 · urgence */
.ws-count{background:var(--field);border:1px solid var(--line);border-radius:var(--radius-sm);padding:12px 14px;display:flex;flex-direction:column;gap:10px}
.ws-count__label{font-size:12.5px;font-weight:700;color:var(--ink);display:flex;align-items:center;gap:6px}
.ws-count__label svg{width:15px;height:15px}
.ws-count__timer{display:flex;gap:8px}
.ws-count__u{display:flex;flex-direction:column;align-items:center;gap:4px;flex:0 0 auto}
.ws-count__u b{font-family:'Archivo';font-variant-numeric:tabular-nums;background:var(--ink);color:#fff;font-size:16px;font-weight:700;padding:6px 0;border-radius:6px;min-width:38px;text-align:center;line-height:1}
.ws-count__u small{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:var(--muted)}
.ws-stock{display:flex;flex-direction:column;gap:6px}
.ws-stock__row{display:flex;justify-content:space-between;font-size:12px;font-weight:600}
.ws-stock__row .lo{color:var(--ink)}
.ws-stock__track{height:6px;border-radius:100px;background:var(--line);overflow:hidden}
.ws-stock__fill{height:100%;background:var(--ink);border-radius:100px}
.ws-live{display:flex;align-items:center;gap:7px;font-size:12px;color:var(--ink-soft)}
.ws-dot{width:8px;height:8px;border-radius:50%;background:var(--ink);position:relative}
.ws-dot::after{content:"";position:absolute;inset:0;border-radius:50%;background:var(--ink);animation:pulse 1.6s infinite}
@keyframes pulse{0%{transform:scale(1);opacity:.6}100%{transform:scale(3);opacity:0}}

/* ZONE 4 · variantes */
.ws-opt__head{display:flex;align-items:center;justify-content:space-between}
.ws-opt__label{font-size:13.5px;font-weight:700}
.ws-opt__label span{color:var(--muted);font-weight:500}
.ws-guide{font-size:12.5px;font-weight:700;color:var(--accent-ink);display:inline-flex;align-items:center;gap:5px}
.ws-guide svg{width:14px;height:14px}
.ws-guide:hover{text-decoration:underline}
.ws-swatches{display:flex;gap:10px;flex-wrap:wrap}
.ws-swatch{width:36px;height:36px;border-radius:50%;position:relative;border:1px solid rgba(0,0,0,.1);cursor:pointer;transition:transform .18s}
.ws-swatch:hover{transform:scale(1.08)}
.ws-swatch.is-active::after{content:"";position:absolute;inset:-4px;border-radius:50%;border:2px solid var(--ink)}
.ws-thumbs{display:flex;gap:10px;overflow-x:auto;padding-bottom:4px}
.ws-thumb{flex:0 0 76px;border:2px solid var(--line);border-radius:var(--radius-xs);padding:4px;cursor:pointer;transition:border-color .2s;text-align:center}
.ws-thumb.is-active{border-color:var(--ink)}
.ws-thumb img{width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:5px;background:var(--field)}
.ws-thumb small{display:block;font-size:10px;color:var(--muted);margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ws-sizes{display:flex;flex-wrap:wrap;gap:8px}
.ws-size{min-width:56px;padding:10px 12px;border:1px solid var(--line);border-radius:var(--radius-xs);background:#fff;font-size:13px;font-weight:700;color:var(--ink);transition:.15s}
.ws-size:hover{border-color:var(--ink)}
.ws-size.is-active{background:var(--ink);color:#fff;border-color:var(--ink)}
.ws-size:disabled{color:var(--muted);text-decoration:line-through;background:var(--field);cursor:not-allowed;opacity:.7}
/* tailles des variantes (couleurs + formats) S/M/L */
.ws-vars-sm .ws-swatch{width:30px;height:30px}
.ws-vars-sm .ws-swatches{gap:8px}
.ws-vars-sm .ws-size{min-width:0;padding:7px 11px;font-size:12px}
.ws-vars-sm .ws-sizes{gap:6px}
.ws-vars-lg .ws-swatch{width:42px;height:42px}
.ws-vars-lg .ws-size{padding:12px 17px;font-size:14px}
.ws-sizeguide{display:flex;align-items:center;gap:11px;background:var(--field);border:1px solid var(--line);border-radius:var(--radius-sm);padding:12px 14px}
.ws-sizeguide svg{width:20px;height:20px;color:var(--ink);flex:0 0 auto}
.ws-sizeguide p{flex:1;font-size:12.5px;color:var(--ink-soft)}
.ws-sizeguide b{display:block;color:var(--ink);font-size:13px}
.ws-sizeguide a{font-size:12px;font-weight:800;color:var(--accent-ink);white-space:nowrap}
/* attribut en liste déroulante (alternative aux pastilles/boutons) */
.ws-attr-select{display:none;width:100%;font-size:14px;font-weight:600;padding:11px 13px;border:1px solid var(--line);border-radius:var(--radius-sm);background:#fff;color:var(--ink);cursor:pointer}
.ws-attr-select:focus{border-color:var(--ink);outline:none}
[data-module].is-list .ws-attr-select{display:block}
[data-module].is-list .ws-swatches,[data-module].is-list .ws-sizes{display:none}
/* ===== Variantes (etape 3) ===== */
.ws-swatches--square .ws-swatch{border-radius:7px}
.ws-swatches--square .ws-swatch.is-active::after{border-radius:9px}
.ws-swatches--check .ws-swatch.is-active::after{inset:0;border:none;content:"\2713";display:grid;place-items:center;color:#fff;font-size:17px;font-weight:800;text-shadow:0 1px 3px rgba(0,0,0,.55)}
.ws-sizes--vertical{flex-direction:column}
.ws-sizes--vertical .ws-size{width:100%;text-align:center}
.ws-size--notify{color:var(--ink)!important;text-decoration:none!important;background:var(--field)!important;opacity:1!important;cursor:pointer;border-style:dashed}
@keyframes wsHintShake{0%,100%{transform:translateX(0)}20%{transform:translateX(-5px)}40%{transform:translateX(5px)}60%{transform:translateX(-4px)}80%{transform:translateX(4px)}}
.ws-shake-hint{animation:wsHintShake .5s var(--ease)}
/* Formats : grille de cartes (prix + prix a l'unite) */
.ws-sizes--cards{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.ws-sizes--cards .ws-size{display:flex;flex-direction:column;align-items:flex-start;gap:3px;width:auto;min-width:0;height:auto;padding:13px 15px;text-align:left}
.ws-sizes--cards .ws-size__nm{font-size:15px;font-weight:800;line-height:1.2}
.ws-sizes--cards .ws-size__pr{font-size:14px;font-weight:800;color:var(--promo)}
.ws-sizes--cards .ws-size__unit{font-size:11px;color:var(--muted);font-weight:600}
.ws-sizes--cards .ws-size.is-active{background:var(--accent-soft);color:var(--ink);border-color:var(--accent)}
.ws-sizes--cards .ws-size.is-active .ws-size__pr{color:var(--accent-ink)}
.ws-sizes--cards .ws-size:disabled{text-decoration:none}
.ws-sizes--cards .ws-size:disabled .ws-size__nm{text-decoration:line-through}
/* ===== Offres (etape 3) ===== */
.ws-tiers--list .ws-tier{padding:9px 12px}
.ws-tiers--list .ws-tier__img{display:none}
.ws-tiers--list .ws-tier__gift{display:none}
.ws-tiers--emph .ws-tier.is-active{box-shadow:0 0 0 2px var(--accent);transform:scale(1.02)}
.ws-stories--rect .ws-story__ring{border-radius:16px}
.ws-cross-wrap.is-land .ws-up__img{width:72px;flex-basis:72px;height:52px}
.ws-cross-wrap.is-port .ws-up__img{width:44px;flex-basis:44px;height:60px}
.ws-up__add{margin-left:auto;flex:0 0 auto;font-size:11px;font-weight:800;padding:6px 11px;border-radius:100px;background:var(--accent);color:var(--accent-ink);border:1px solid var(--accent);cursor:pointer;white-space:nowrap}
.ws-up--hasadd .ws-up__check{display:none}
/* ===== Achat (etape 3) ===== */
.ws-buyrow--stack{flex-direction:column;align-items:stretch}
.ws-cta__reassure{display:flex;align-items:center;justify-content:center;gap:5px;font-size:11.5px;color:var(--muted);font-weight:600;margin-top:7px}
.ws-qty.ws-qty--menu{border:none;padding:0;background:none}
.ws-qty--menu > button,.ws-qty--menu > input{display:none}
.ws-qty__select{display:none;height:38px;border-radius:100px;border:1px solid var(--line);background:#fff;font-size:14px;font-weight:700;padding:0 14px;color:var(--ink);cursor:pointer}
.ws-qty--menu .ws-qty__select{display:block}
.ws-buy-stock{font-size:11.5px;color:var(--muted);font-weight:600;margin-top:6px}
.ws-express-box{display:flex;flex-direction:column;gap:8px}
.ws-xbtn{width:100%;min-height:48px;border-radius:100px;font-weight:800;font-size:14px;display:flex;align-items:center;justify-content:center;gap:6px;cursor:pointer;border:1px solid transparent;transition:.15s}
.ws-xbtn--apple{background:#000;color:#fff}
.ws-xbtn--paypal{background:#ffc439;color:#003087}
.ws-xbtn--gpay{background:#fff;color:#3c4043;border:1px solid #dadce0}
.ws-xbtn:hover{filter:brightness(.94)}
.ws-express-sep{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;margin:2px 0}
.ws-express-sep::before,.ws-express-sep::after{content:"";flex:1;height:1px;background:var(--line)}
.ws-pay--sm .ws-pay__chip{height:22px;min-width:34px;font-size:8px}
.ws-pay--lg .ws-pay__chip{height:32px;min-width:48px;font-size:11px}
.ws-inlogo{display:inline-block;font-size:10px;font-weight:800;padding:2px 6px;border-radius:4px}
.ws-inlogo--klarna{background:#ffb3c7;color:#0a0a0a}
.ws-inlogo--alma{background:#fa5768;color:#fff}
.ws-inlogo--paypal{background:#003087;color:#fff}
/* ===== Reassurance (etape 3) ===== */
.ws-stockstatus--orange .d{background:var(--amber);box-shadow:0 0 0 3px rgba(138,109,59,.16)}
@keyframes wsDotBlink{0%,100%{opacity:1}50%{opacity:.3}}
.ws-blink{animation:wsDotBlink 1.1s infinite}
.ws-trust--color svg,.ws-guarantees--color svg,.ws-reassure3--color .ic svg{color:var(--accent)}
.ws-press--color .ws-press__logos span{color:var(--ink)}
/* ===== Extra (etape 3) ===== */
.ws-audio--btn .ws-audio__bar{display:none}
.ws-acc--pm .ws-acc__chev{display:none}
.ws-acc--pm summary::after{content:"+";font-size:21px;font-weight:400;color:var(--muted);line-height:1;flex:0 0 auto}
.ws-acc--pm details[open] summary::after{content:"−"}
/* ===== Longue description : sections (etape 3) ===== */
.ws-marquee--nopause:hover .ws-marquee__track{animation-play-state:running}
.ws-steps__grid--vert{flex-direction:column}
.ws-steps__grid--vert .ws-step{flex-basis:auto;width:100%}
.ws-fbt__save{font-size:12px;font-weight:800;color:var(--accent);margin-bottom:6px}
/* Section Qualite & transparence */
.ws-quality{padding:72px 0}
.ws-quality__title{font-size:32px;font-weight:800;text-align:center;margin-bottom:36px;line-height:1.15}
.ws-quality__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}
.ws-quality__card{text-align:center;padding:6px}
.ws-quality__ic{width:58px;height:58px;border-radius:50%;display:grid;place-items:center;margin:0 auto 15px}
.ws-quality__ic svg{width:26px;height:26px}
.ws-quality__ic--1{background:#e7f3ea;color:#3f9a5c}
.ws-quality__ic--2{background:#eceffb;color:#5a6ee0}
.ws-quality__ic--3{background:#faf1e5;color:#c9852b}
.ws-quality__ic--4{background:#f9ebf1;color:#c14b7a}
.ws-quality__card h3{font-size:16px;font-weight:800;margin-bottom:6px}
.ws-quality__card p{font-size:13px;color:var(--ink-soft);line-height:1.55}
@media(max-width:768px){.ws-quality{padding:52px 0}.ws-quality__title{font-size:24px}.ws-quality__grid{grid-template-columns:1fr 1fr;gap:26px 16px}}
/* Sections libres ajoutables */
.ws-free{padding:52px 0}
.ws-free__inner{position:relative}
.ws-free--text h2{font-size:30px;font-weight:800;margin-bottom:14px}
.ws-free--text p{font-size:15px;color:var(--ink-soft);line-height:1.7;max-width:70ch}
.ws-free__img,.ws-free__vid{width:100%;border-radius:16px;display:block;max-height:520px;object-fit:cover;background:var(--bg-warm)}
.ws-free__url{margin-top:10px;font-size:12px;font-weight:700;padding:7px 13px;border-radius:100px;background:var(--field);border:1px solid var(--line);cursor:pointer;color:var(--ink)}
.ws-free__url:hover{border-color:var(--ink)}
.ws-free p[contenteditable]{margin-top:10px;font-size:13px;color:var(--muted)}
.ws-free__rm{position:absolute;top:-6px;right:0;width:28px;height:28px;border-radius:50%;background:var(--sale);color:#fff;border:none;font-size:18px;line-height:1;cursor:pointer;z-index:5}
.ws-free [contenteditable]:focus{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px}
/* panneau : sections libres */
.cfg__free{padding:12px 2px 4px;border-top:1px solid var(--c-line);margin-top:10px}
.cfg__free > label{font-size:12px;color:var(--c-ink2);display:block;margin-bottom:8px;font-weight:700}
.cfg__free-btns{display:flex;gap:6px}
.cfg__free-btns button{flex:1;font-size:11px;font-weight:700;padding:9px 4px;border-radius:8px;background:var(--c-surf);color:var(--c-ink);border:1px solid var(--c-brd);cursor:pointer;transition:.15s}
.cfg__free-btns button:hover{background:var(--c-ac);border-color:var(--c-ac);color:var(--c-acink)}

/* ZONE 5 · offres par lot */
.ws-tiers-head{display:flex;align-items:center;gap:12px;text-align:center}
.ws-tiers-head::before,.ws-tiers-head::after{content:"";flex:1;height:1px;background:var(--line)}
.ws-tiers-head span{font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--promo)}
.ws-tiers{display:flex;flex-direction:column;gap:10px}
.ws-tier{position:relative;display:flex;align-items:center;gap:13px;border:1.5px solid var(--line);border-radius:var(--radius-sm);padding:14px 15px;cursor:pointer;background:#fff;transition:.18s}
.ws-tier:hover{border-color:#c9c6bd}
.ws-tier.is-active{border-color:var(--accent);background:var(--accent-soft)}
.ws-tier__radio{width:20px;height:20px;border-radius:50%;border:2px solid var(--line);flex:0 0 20px;display:grid;place-items:center;transition:.18s}
.ws-tier.is-active .ws-tier__radio{border-color:var(--accent);background:var(--accent)}
.ws-tier__radio::after{content:"";width:8px;height:8px;border-radius:50%;background:#fff;transform:scale(0);transition:.18s}
.ws-tier.is-active .ws-tier__radio::after{transform:scale(1)}
.ws-tier__img{width:44px;height:44px;border-radius:8px;object-fit:cover;flex:0 0 44px;background:var(--bg-warm)}
.ws-tiers--noimg .ws-tier__img{display:none}
.ws-tier__body{flex:1;min-width:0}
.ws-tier__top{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.ws-tier__qty{font-size:15px;font-weight:800}
.ws-tier__save{font-size:10.5px;font-weight:800;text-transform:uppercase;background:var(--accent);color:#fff;padding:3px 7px;border-radius:6px}
.ws-tier__gift{font-size:12px;color:var(--ink-soft);margin-top:3px;display:flex;align-items:center;gap:5px}
.ws-tier__gift svg{width:13px;height:13px;color:var(--accent)}
.ws-tier__price{text-align:right;flex:0 0 auto}
.ws-tier__now{font-family:'Archivo';font-size:16px;font-weight:800;color:var(--promo)}
.ws-tier__unit{font-size:10px;color:var(--muted);display:block;font-family:'Manrope';font-weight:600}
.ws-tier__was{font-size:12px;color:var(--muted);text-decoration:line-through;display:block}
.ws-tier__ribbon{position:absolute;top:-9px;right:14px;font-size:10px;font-weight:800;text-transform:uppercase;color:#fff;padding:3px 9px;border-radius:100px}
.ws-tier__ribbon--pop{background:var(--ink)}
.ws-tier__ribbon--best{background:var(--accent)}

/* ZONE 6 · cross-sell */
.ws-cross-head{font-size:13.5px;font-weight:700}
.ws-cross{display:flex;flex-direction:column;gap:10px}
.ws-up{display:flex;align-items:center;gap:12px;border:1px solid var(--line);border-radius:var(--radius-sm);padding:11px 12px;transition:.18s;cursor:pointer}
.ws-up.is-active{border-color:var(--accent);background:var(--accent-soft)}
.ws-up__img{width:52px;height:52px;border-radius:8px;object-fit:cover;background:var(--field);flex:0 0 52px}
.ws-up__body{flex:1;min-width:0}
.ws-up__name{font-size:13px;font-weight:700;line-height:1.25}
.ws-up__price{font-size:12.5px;color:var(--ink-soft)}
.ws-up__price s{color:var(--muted)}
.ws-up__price b{color:var(--accent-ink)}
.ws-up__select{margin-top:6px;width:100%;font-size:12px;padding:6px 8px;border:1px solid var(--line);border-radius:7px;background:#fff;color:var(--ink)}
.ws-up__check{width:22px;height:22px;border-radius:6px;border:2px solid var(--line);flex:0 0 22px;display:grid;place-items:center;transition:.18s}
.ws-up.is-active .ws-up__check{background:var(--accent);border-color:var(--accent)}
.ws-up__check svg{width:13px;height:13px;color:#fff;opacity:0;transition:.15s}
.ws-up.is-active .ws-up__check svg{opacity:1}
/* tailles des produits complémentaires (S/M/L) */
.ws-cross--sm .ws-up{padding:9px 10px;gap:10px}
.ws-cross--sm .ws-up__img{width:42px;height:42px;flex-basis:42px}
.ws-cross--sm .ws-up__name{font-size:12px}
.ws-cross--sm .ws-up__price{font-size:11.5px}
.ws-cross--lg .ws-up{padding:13px 14px;gap:14px}
.ws-cross--lg .ws-up__img{width:66px;height:66px;flex-basis:66px}
.ws-cross--lg .ws-up__name{font-size:14.5px}
.ws-cross--lg .ws-up__price{font-size:13.5px}
/* affichage carrousel (défilement horizontal) */
/* carrousel portrait, sans barre de scroll */
.ws-cross-wrap{position:relative}
.ws-cross--carousel{flex-direction:row;overflow-x:auto;gap:10px;scroll-snap-type:x mandatory;scrollbar-width:none;-ms-overflow-style:none}
.ws-cross--carousel::-webkit-scrollbar{display:none}
.ws-cross--carousel .ws-up{flex:0 0 46%;scroll-snap-align:start;flex-direction:column;align-items:stretch;gap:8px;position:relative;padding:10px}
.ws-cross--carousel .ws-up__img{width:100%;height:auto;aspect-ratio:1/1;flex-basis:auto}
.ws-cross--carousel .ws-up__body{flex:none}
.ws-cross--carousel .ws-up__check{position:absolute;top:15px;right:15px;background:#fff}
/* flèches de navigation (visibles en mode carrousel) */
.ws-cross-arrow{display:none;position:absolute;top:50%;transform:translateY(-50%);z-index:3;width:32px;height:32px;border-radius:50%;background:#fff;border:1px solid var(--line);box-shadow:var(--shadow);color:var(--ink);font-size:20px;line-height:1;align-items:center;justify-content:center;transition:.15s}
.ws-cross-arrow:hover{background:var(--ink);color:#fff}
.ws-cross-arrow--prev{left:2px}
.ws-cross-arrow--next{right:2px}
.ws-cross-wrap.is-carousel .ws-cross-arrow{display:flex}
/* grille : cartes portrait côte à côte (3 par ligne) */
.ws-cross--grid{flex-direction:row;flex-wrap:wrap;gap:8px}
.ws-cross--grid .ws-up{flex:0 0 calc(33.333% - 6px);flex-direction:column;align-items:stretch;gap:6px;position:relative;padding:8px}
.ws-cross--grid .ws-up__img{width:100%;height:auto;aspect-ratio:1/1;flex-basis:auto}
.ws-cross--grid .ws-up__check{position:absolute;top:12px;right:12px;background:#fff}
.ws-cross--grid .ws-up__name{font-size:12px}
.ws-cross--grid .ws-up__price{font-size:11px}

/* STORIES · ronds façon réseaux sociaux */
.ws-stories{display:flex;gap:14px;overflow-x:auto;scrollbar-width:none;padding:2px 0}
.ws-stories::-webkit-scrollbar{display:none}
.ws-story{flex:0 0 auto;display:flex;flex-direction:column;align-items:center;gap:6px;cursor:pointer;width:66px}
.ws-story__ring{width:62px;height:62px;border-radius:50%;padding:2.5px;background:linear-gradient(45deg,#f09433,#e6683c,#dc2743,#cc2366,#bc1888);transition:transform .15s var(--ease)}
.ws-story__ring img{width:100%;height:100%;border-radius:50%;object-fit:cover;border:2.5px solid #fff;background:var(--bg-warm)}
.ws-story:hover .ws-story__ring{transform:scale(1.05)}
.ws-story__label{font-size:11px;color:var(--ink-soft);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:66px;text-align:center}

/* LECTEUR DE STORY */
.ws-storyview{position:fixed;inset:0;z-index:120;background:rgba(8,8,8,.94);display:grid;place-items:center;padding:16px;visibility:hidden;opacity:0;transition:opacity .25s var(--ease)}
.ws-storyview.is-open{visibility:visible;opacity:1}
.ws-storyview__card{position:relative;width:min(400px,94vw);height:min(calc(var(--wsfp-vh,1vh)*84),720px);background:#000;border-radius:16px;overflow:hidden;box-shadow:0 24px 70px rgba(0,0,0,.6)}
.ws-storyview__media{position:absolute;inset:0;z-index:0}
.ws-storyview__media img,.ws-storyview__media video{width:100%;height:100%;object-fit:cover}
.ws-storyview__grad{position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(to top,rgba(0,0,0,.6),transparent 28%,transparent 72%,rgba(0,0,0,.4))}
.ws-storyview__bars{position:absolute;top:10px;left:10px;right:10px;display:flex;gap:4px;z-index:3}
.ws-storyview__bar{flex:1;height:3px;border-radius:3px;background:rgba(255,255,255,.35);overflow:hidden}
.ws-storyview__bar i{display:block;height:100%;width:0;background:#fff;border-radius:3px}
.ws-storyview__head{position:absolute;top:22px;left:14px;right:14px;display:flex;align-items:center;gap:10px;z-index:3;color:#fff}
.ws-storyview__head img{width:34px;height:34px;border-radius:50%;object-fit:cover;border:1.5px solid rgba(255,255,255,.7)}
.ws-storyview__head b{font-size:13px;font-weight:700;flex:1}
.ws-storyview__close{width:32px;height:32px;border-radius:50%;background:rgba(0,0,0,.35);color:#fff;font-size:20px;line-height:1;display:grid;place-items:center}
.ws-storyview__cap{position:absolute;bottom:72px;left:16px;right:16px;color:#fff;font-size:15px;font-weight:600;text-shadow:0 1px 6px rgba(0,0,0,.7);z-index:3;pointer-events:none}
.ws-storyview__nav{position:absolute;inset:0;display:flex;z-index:2}
.ws-storyview__nav button{background:none;cursor:pointer}
#svPrev{flex:0 0 32%}
#svNext{flex:1}
.ws-storyview__cta{position:absolute;bottom:16px;left:16px;right:16px;z-index:3;background:#fff;color:var(--ink);font-weight:800;font-size:14px;border-radius:100px;padding:13px;text-align:center;text-decoration:none}

/* ZONE 7 · achat */
.ws-buyrow{display:flex;gap:10px;align-items:stretch}
.ws-qty{display:flex;align-items:center;border:1px solid var(--line);border-radius:100px;padding:3px;flex:0 0 auto;background:#fff}
.ws-qty button{width:30px;height:30px;border-radius:50%;font-size:16px;font-weight:600;color:var(--ink);display:grid;place-items:center;transition:.15s}
.ws-qty button:hover{background:var(--field)}
.ws-qty input{width:24px;text-align:center;border:0;font-size:14px;font-weight:700;background:none;color:var(--ink)}
.ws-cta{flex:1;min-width:0;display:flex;align-items:center;justify-content:center;gap:8px;background:var(--ink);color:#fff;font-weight:800;font-size:14px;border-radius:100px;padding:0 16px;min-height:52px;white-space:nowrap;transition:.16s}
.ws-cta:hover{background:#000;transform:translateY(-1px);box-shadow:0 12px 26px -8px rgba(20,20,18,.5)}
.ws-cta__sep{opacity:.4;font-weight:400}
.ws-cta--slim{min-height:44px;font-size:13.5px}
.ws-cta--slim .ws-cta__sep,.ws-cta--slim .ws-cta__price{display:none}
/* RUPTURE DE STOCK · alerte retour en stock */
[data-module="restock"]{display:none}
body.oos [data-module="restock"]{display:block}
body.oos [data-module="buy"],body.oos [data-module="express"]{display:none}
.ws-restock{border:1px solid var(--line);border-radius:var(--radius-sm);padding:16px 16px 14px;background:var(--field)}
.ws-restock__head{display:flex;align-items:center;gap:9px;font-size:14px;font-weight:700;color:var(--ink)}
.ws-restock__badge{font-size:10.5px;font-weight:800;text-transform:uppercase;letter-spacing:.03em;background:var(--sale);color:#fff;padding:4px 8px;border-radius:6px}
.ws-restock__txt{font-size:13px;color:var(--ink-soft);margin:8px 0 12px}
.ws-restock form{display:flex;gap:8px}
.ws-restock input{flex:1;min-width:0;font-size:14px;padding:12px;border:1px solid var(--line);border-radius:100px;background:#fff;color:var(--ink)}
.ws-restock input:focus{outline:none;border-color:var(--ink)}
.ws-restock button{flex:0 0 auto;background:var(--ink);color:#fff;font-weight:800;font-size:13.5px;border-radius:100px;padding:0 20px;white-space:nowrap}
.ws-restock button:hover{background:#000}
.ws-restock__note{font-size:11.5px;color:var(--muted);margin-top:9px}
.ws-restock__ok{display:flex;align-items:flex-start;gap:9px;font-size:13.5px;color:var(--ink-soft);line-height:1.5}
.ws-restock__ok svg{width:20px;height:20px;color:var(--stock);flex:0 0 auto;margin-top:1px}
.ws-restock__ok b{color:var(--ink)}
.ws-cta svg{width:17px;height:17px;flex:0 0 auto}
.ws-express{width:100%;min-height:50px;border-radius:100px;font-weight:700;font-size:14.5px;display:flex;align-items:center;justify-content:center;gap:8px;background:#fff;color:var(--ink);border:1px solid var(--ink);transition:.16s}
.ws-express:hover{background:var(--ink);color:#fff}
.ws-express svg{width:18px;height:18px}
.ws-pay{display:flex;flex-direction:column;align-items:center;gap:8px}
.ws-pay__label{font-size:11px;color:var(--muted)}
.ws-pay__row{display:flex;gap:6px;flex-wrap:wrap;justify-content:center}
.ws-pay__chip{height:26px;min-width:40px;padding:0 7px;border-radius:5px;background:#fff;border:1px solid var(--line);display:grid;place-items:center;font-size:9px;font-weight:800;color:var(--ink-soft)}
.ws-pay__chip.pp{font-style:italic}
/* styles moyens de paiement : N&B (defaut) / couleur perso (accent) / vraie couleur */
.wsfp-pay-color .ws-pay__chip{color:var(--accent);border-color:var(--accent-soft)}
.wsfp-pay-real .ws-pay__chip{background:#fff}
.wsfp-pay-real .ws-pay__chip.visa{color:#1a1f71;border-color:#1a1f71}
.wsfp-pay-real .ws-pay__chip.mc{color:#eb001b;border-color:#eb001b}
.wsfp-pay-real .ws-pay__chip.amex{color:#2e77bc;border-color:#2e77bc}
.wsfp-pay-real .ws-pay__chip.pp{color:#003087;border-color:#003087}
.wsfp-pay-real .ws-pay__chip.apple{color:#000;border-color:#000}
.wsfp-pay-real .ws-pay__chip.gpay{color:#4285f4;border-color:#4285f4}

/* ZONE EXTENSIONS · les plugins tiers (Klarna, PayPal, avis…) s'empilent ici. Masquée auto si vide. */
.ws-slot{border:1px dashed #cbc7bd;border-radius:var(--radius-sm);padding:11px 12px 12px;display:flex;flex-direction:column;gap:9px}
.ws-slot__cap{font-size:9.5px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:800;display:flex;align-items:center;gap:6px}
.ws-slot__cap svg{width:12px;height:12px}
.ws-slot__item{display:flex;align-items:center;gap:9px;font-size:12.5px;color:var(--ink-soft)}
.ws-slot__item b{color:var(--ink)}
.ws-slot__logo{flex:0 0 auto;font-size:10px;font-weight:800;padding:3px 7px;border-radius:5px;background:var(--field);border:1px solid var(--line);color:var(--ink-soft)}
.ws-slot__items{display:flex;flex-direction:column;gap:9px}

/* ZONE 8 · réassurance */
.ws-freeship{display:inline-flex;align-items:center;gap:7px;font-size:13.5px;font-weight:800;color:var(--accent-ink)}
.ws-freeship .ws-dot{background:var(--accent)}
.ws-freeship .ws-dot::after{background:var(--accent)}
.ws-reassure3{display:flex;text-align:center}
.ws-reassure3 button{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;gap:5px;padding:2px 6px;cursor:pointer;color:inherit;transition:.15s}
.ws-reassure3 button+button{border-left:1px solid var(--line)}
.ws-reassure3 .ic{color:var(--ink)}
.ws-reassure3 .ic svg{width:17px;height:17px}
.ws-reassure3 button>span:last-child{font-size:10px;font-weight:600;line-height:1.25;color:var(--ink-soft)}
.ws-reassure3 button:hover>span:last-child{color:var(--ink);text-decoration:underline;text-underline-offset:2px}

/* POPUP INFO · centrée et compacte (n'envahit pas la fenêtre) */
.ws-info-overlay{position:fixed;inset:0;z-index:110;display:grid;place-items:center;padding:20px;visibility:hidden}
.ws-info-overlay.is-open{visibility:visible}
.ws-info-overlay .ws-info-bk{position:absolute;inset:0;background:rgba(20,20,18,.5);opacity:0;transition:opacity .25s var(--ease)}
.ws-info-overlay.is-open .ws-info-bk{opacity:1}
.ws-info-card{position:relative;background:#fff;border-radius:16px;max-width:400px;width:100%;padding:26px 24px 24px;box-shadow:0 24px 60px -12px rgba(0,0,0,.42);transform:translateY(10px) scale(.97);opacity:0;transition:.26s var(--ease)}
.ws-info-overlay.is-open .ws-info-card{transform:none;opacity:1}
.ws-info-card__ic{width:46px;height:46px;border-radius:13px;background:var(--field);display:grid;place-items:center;color:var(--ink);margin-bottom:14px}
.ws-info-card__ic svg{width:23px;height:23px}
.ws-info-card h3{font-size:18px;font-weight:800;margin-bottom:8px}
.ws-info-card p{font-size:14px;color:var(--ink-soft);line-height:1.6}
.ws-info-card__close{position:absolute;top:12px;right:12px;width:32px;height:32px;border-radius:50%;border:1px solid var(--line);font-size:18px;line-height:1;color:var(--ink);display:grid;place-items:center;background:#fff;transition:.15s}
.ws-info-card__close:hover{background:var(--ink);color:#fff}

/* FORMULAIRE D'AVIS (dépôt front + modération) */
.ws-rev-overlay{position:fixed;inset:0;z-index:115;display:grid;place-items:center;padding:20px;visibility:hidden}
.ws-rev-overlay.is-open{visibility:visible}
.ws-rev-bk{position:absolute;inset:0;background:rgba(20,20,18,.5);opacity:0;transition:opacity .25s var(--ease)}
.ws-rev-overlay.is-open .ws-rev-bk{opacity:1}
.ws-rev-card{position:relative;background:#fff;border-radius:16px;max-width:470px;width:100%;max-height:calc(var(--wsfp-vh,1vh)*88);overflow-y:auto;padding:28px 26px 26px;box-shadow:0 24px 60px -12px rgba(0,0,0,.42);transform:translateY(10px) scale(.97);opacity:0;transition:.26s var(--ease)}
.ws-rev-overlay.is-open .ws-rev-card{transform:none;opacity:1}
.ws-rev-card h3{font-size:20px;font-weight:800;margin-bottom:4px}
.ws-rev-card .sub{font-size:13px;color:var(--ink-soft);margin-bottom:18px}
.ws-rev-field{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}
.ws-rev-field label{font-size:12.5px;font-weight:700}
.ws-rev-field input,.ws-rev-field textarea{font-family:inherit;font-size:14px;padding:10px 12px;border:1px solid var(--line);border-radius:9px;background:#fff;color:var(--ink);width:100%}
.ws-rev-field textarea{min-height:96px;resize:vertical}
.ws-rev-field input:focus,.ws-rev-field textarea:focus{outline:none;border-color:var(--ink)}
.ws-rev-stars{display:flex;gap:4px;font-size:26px;color:var(--line);cursor:pointer;line-height:1}
.ws-rev-stars span{transition:.12s}
.ws-rev-stars span.on{color:var(--star)}
.ws-rev-note{display:flex;gap:9px;align-items:flex-start;background:var(--field);border:1px solid var(--line);border-radius:10px;padding:10px 12px;font-size:12px;color:var(--ink-soft);line-height:1.45;margin-bottom:16px}
.ws-rev-note svg{width:15px;height:15px;flex:0 0 auto;color:var(--ink);margin-top:1px}
.ws-rev-submit{width:100%;background:var(--ink);color:#fff;font-weight:800;font-size:14.5px;border-radius:100px;padding:14px;transition:.15s}
.ws-rev-submit:hover{background:#000}
.ws-rev-ok{text-align:center;padding:24px 0 8px}
.ws-rev-ok .ic{width:54px;height:54px;border-radius:50%;background:#e8f5ed;display:grid;place-items:center;margin:0 auto 14px;color:var(--stock)}
.ws-rev-ok .ic svg{width:26px;height:26px}
.ws-rev-ok p{font-size:13.5px;color:var(--ink-soft);line-height:1.55;margin-top:6px}
.ws-delivery{display:flex;align-items:center;gap:11px;background:var(--accent-soft);border-radius:var(--radius-sm);padding:12px 14px}
.ws-delivery svg{width:20px;height:20px;color:var(--accent-ink);flex:0 0 auto}
.ws-delivery p{font-size:13px;color:var(--accent-ink)}
.ws-delivery b{font-weight:800}
.ws-trust{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap}
.ws-trust div{display:flex;align-items:center;gap:7px;font-size:12px;font-weight:600;color:var(--ink-soft)}
.ws-trust svg{width:16px;height:16px;color:var(--accent)}
/* E-E-A-T · mentions presse */
.ws-press{display:flex;flex-direction:column;gap:9px;text-align:center}
.ws-press__label{font-size:10.5px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);font-weight:700}
.ws-press__logos{display:flex;align-items:center;justify-content:center;gap:18px;flex-wrap:wrap}
.ws-press__logos span{font-family:'Archivo';font-size:14px;font-weight:800;color:var(--ink-soft);letter-spacing:.02em;opacity:.72}
/* E-E-A-T · badges de garantie (grille extensible) */
/* CHIFFRES CLÉS · grande icône + gros chiffre + légende */
.ws-stats{display:flex;flex-wrap:wrap;gap:10px;text-align:center}
.ws-stat{flex:1 1 calc(25% - 8px);min-width:76px;display:flex;flex-direction:column;align-items:center;gap:7px}
.ws-stat__ic{width:38px;height:38px;color:var(--accent)}
.ws-stat__ic svg{width:100%;height:100%}
.ws-stat__num{font-family:'Archivo';font-size:19px;font-weight:800;color:var(--accent);line-height:1;letter-spacing:-.01em}
.ws-stat__lbl{font-size:9.5px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:var(--muted);line-height:1.25}

.ws-guarantees{display:flex;flex-wrap:wrap;gap:8px}
.ws-guarantee{display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:10px;padding:9px 11px;font-size:12.5px;font-weight:600;color:var(--ink-soft);background:var(--field)}
.ws-guarantee svg{width:16px;height:16px;color:var(--ink);flex:0 0 auto}

/* ZONE 9 · audio */
.ws-audio{display:flex;align-items:center;gap:13px;border:1px solid var(--line);border-radius:100px;padding:9px 16px 9px 9px;background:var(--field)}
.ws-audio__btn{width:44px;height:44px;border-radius:50%;background:var(--ink);color:#fff;display:grid;place-items:center;flex:0 0 44px;transition:.15s}
.ws-audio__btn:hover{background:#000}
.ws-audio__btn svg{width:16px;height:16px;margin-left:2px}
.ws-audio__body{flex:1;min-width:0}
.ws-audio__title{font-size:13px;font-weight:700}
.ws-audio__bar{display:flex;align-items:center;gap:8px;margin-top:5px}
.ws-audio__track{flex:1;height:5px;border-radius:100px;background:var(--line);overflow:hidden}
.ws-audio__fill{height:100%;width:16%;background:var(--ink);border-radius:100px}
.ws-audio__time{font-size:11px;color:var(--muted);font-variant-numeric:tabular-nums}

/* ZONE 10 · accordéons */
.ws-acc details{border-top:1px solid var(--line)}
.ws-acc details:last-child{border-bottom:1px solid var(--line)}
.ws-acc summary{display:flex;align-items:center;gap:10px;justify-content:space-between;padding:15px 2px;font-size:14.5px;font-weight:700;cursor:pointer;list-style:none}
.ws-acc summary::-webkit-details-marker{display:none}
.ws-acc summary>span:first-child{display:flex;align-items:center;gap:10px}
.ws-acc__ico-lead{width:18px;height:18px;color:var(--accent-ink);flex:0 0 18px}
.ws-acc__chev{width:20px;height:20px;flex:0 0 20px;transition:transform .3s;color:var(--muted)}
.ws-acc details[open] .ws-acc__chev{transform:rotate(180deg)}
.ws-acc__body{padding:0 2px 18px;font-size:13.5px;color:var(--ink-soft);line-height:1.6}
.ws-acc__body ul{margin:6px 0 0 16px}
.ws-acc__gift-tag{font-size:10.5px;font-weight:800;text-transform:uppercase;color:var(--accent);background:var(--accent-soft);padding:2px 7px;border-radius:5px;margin-left:2px}

/* GUIDE DES TAILLES · overlay (popup centrée OU panneau glissant droite) */
.ws-guide-overlay{position:fixed;inset:0;z-index:100;visibility:hidden}
.ws-guide-overlay.is-open{visibility:visible}
.ws-guide-backdrop{position:absolute;inset:0;background:rgba(20,20,18,.55);opacity:0;transition:opacity .3s var(--ease)}
.ws-guide-overlay.is-open .ws-guide-backdrop{opacity:1}
.ws-guide-panel{position:absolute;background:#fff;display:flex;flex-direction:column;box-shadow:0 24px 70px -12px rgba(0,0,0,.45);overflow:hidden}
.ws-guide-overlay.mode-popup .ws-guide-panel{top:50%;left:50%;transform:translate(-50%,-46%);opacity:0;width:min(660px,92vw);max-height:calc(var(--wsfp-vh,1vh)*88);border-radius:18px;transition:transform .32s var(--ease),opacity .32s var(--ease)}
.ws-guide-overlay.mode-popup.is-open .ws-guide-panel{transform:translate(-50%,-50%);opacity:1}
.ws-guide-overlay.mode-drawer .ws-guide-panel{top:0;right:0;bottom:0;width:min(470px,94vw);transform:translateX(100%);transition:transform .34s var(--ease)}
.ws-guide-overlay.mode-drawer.is-open .ws-guide-panel{transform:none}
.ws-guide-close{position:absolute;top:14px;right:14px;z-index:3;width:36px;height:36px;border-radius:50%;background:#fff;border:1px solid var(--line);font-size:20px;line-height:1;color:var(--ink);display:grid;place-items:center;box-shadow:var(--shadow);transition:.15s}
.ws-guide-close:hover{background:var(--ink);color:#fff}
.ws-guide-scroll{overflow-y:auto;padding:30px 30px 34px}
.ws-guide-title{font-size:26px;font-weight:800}
.ws-guide-lead{color:var(--ink-soft);font-size:14px;margin:7px 0 20px;line-height:1.5}
.ws-guide-media{border-radius:14px;overflow:hidden;margin-bottom:20px;background:var(--bg-warm)}
.ws-guide-media img{width:100%;display:block}
.ws-guide-video{position:relative;border-radius:14px;overflow:hidden;margin-bottom:20px;aspect-ratio:16/9;background:#0d0d0c}
.ws-guide-video video{width:100%;height:100%;object-fit:cover;display:block}
.ws-guide-video__tag{position:absolute;top:12px;left:12px;background:rgba(0,0,0,.6);color:#fff;font-size:11px;font-weight:700;padding:5px 10px;border-radius:100px;display:flex;align-items:center;gap:6px;pointer-events:none}
.ws-guide-rich h3{font-size:16px;font-weight:700;margin:22px 0 8px}
.ws-guide-rich h3:first-child{margin-top:0}
.ws-guide-rich p{font-size:14px;color:var(--ink-soft);line-height:1.65}
.ws-guide-rich ul{margin:8px 0 0 18px;font-size:14px;color:var(--ink-soft);line-height:1.6}
.ws-guide-table{width:100%;border-collapse:collapse;margin-top:12px;font-size:13px}
.ws-guide-table th,.ws-guide-table td{border:1px solid var(--line);padding:9px 11px;text-align:left}
.ws-guide-table th{background:var(--field);font-weight:700;color:var(--ink)}
.ws-guide-table td{color:var(--ink-soft)}
.ws-guide-table tr td:first-child{font-weight:700;color:var(--ink)}

/* BARRE FLOTTANTE D'ACHAT · apparaît quand on dépasse le bouton au scroll */
.ws-stickybar{position:fixed;left:0;right:0;bottom:0;z-index:70;background:rgba(255,255,255,.94);backdrop-filter:blur(10px);border-top:1px solid var(--line);box-shadow:0 -6px 26px -10px rgba(20,20,18,.2);transform:translateY(110%);transition:transform .32s var(--ease)}
.ws-stickybar.is-show{transform:none}
.ws-stickybar__inner{display:flex;align-items:center;gap:14px;padding:11px 24px}
.ws-stickybar__img{width:46px;height:46px;border-radius:9px;object-fit:cover;flex:0 0 46px;background:var(--bg-warm)}
.ws-stickybar__info{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}
.ws-stickybar__name{font-size:14px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ws-stickybar__price{font-size:13px;color:var(--ink);font-weight:700}
.ws-stickybar__price s{color:var(--muted);font-weight:500;margin-left:6px}
.ws-stickybar__btn{flex:0 0 auto;display:flex;align-items:center;gap:8px;background:var(--ink);color:#fff;font-weight:800;font-size:14px;border-radius:100px;padding:12px 22px;white-space:nowrap;transition:.15s}
.ws-stickybar__btn:hover{background:#000}
/* Barre collee : fond opaque (la page ne se voit plus a travers), bouton protege des styles du theme. */
.ws-stickybar{background:#fff}
.ws-stickybar .ws-stickybar__btn{background:var(--stk-bg,var(--ink,#141413))!important;color:var(--stk-tx,#fff)!important;border:0!important;box-shadow:none!important;transition:background .2s,color .2s}
.ws-stickybar .ws-stickybar__btn:hover,.ws-stickybar .ws-stickybar__btn:focus-visible{background:var(--stk-bgh,#000)!important;color:var(--stk-txh,#fff)!important}
.ws-stickybar .ws-stickybar__tags{display:flex!important;flex-wrap:nowrap!important;gap:4px;margin:4px 0 1px!important;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;mask-image:linear-gradient(90deg,#000 85%,transparent)}
.ws-stickybar .ws-stickybar__tags .wsfp-tags__p{font-size:10.5px!important;padding:2px 8px!important;white-space:nowrap}
/* Le bouton « haut de page » des themes courants remonte au-dessus de la barre quand elle s'affiche. */
html.wsfp-stk-on :is(.ct-back-to-top,.back-to-top,#back-to-top,.scroll-top,#scroll-top,.scrollup,#scrollUp,.ast-scroll-top){bottom:calc(var(--wsfp-stk-h,72px) + 14px)!important;transition:bottom .3s}
.ws-stickybar__btn svg{width:17px;height:17px}
@media (max-width:768px){
  .ws-stickybar__inner{padding:9px 16px;gap:10px}
  .ws-stickybar__btn{padding:11px 16px}
}

/* =========================================================
   SECTION: advantages
   ========================================================= */
.ws-section-head{text-align:center;max-width:560px;margin:0 auto 44px}
.ws-section-head h2{font-size:var(--h2-size,34px);color:var(--h2-color);font-weight:700;margin-bottom:12px}
.ws-section-head p{color:var(--ink-soft);font-size:16px}

/* =========================================================
   SECTION: tabs (longue description — contenu riche par onglet)
   ========================================================= */
.ws-tabs-sec{padding:80px 0}
.ws-tabs{display:flex;gap:2px}
.ws-tabs button{flex:1;padding:16px 12px;font-size:15px;font-weight:600;color:var(--muted);background:var(--bg-alt);border:1px solid var(--line);border-bottom:0;border-radius:12px 12px 0 0;transition:.15s}
.ws-tabs button:hover{color:var(--ink)}
.ws-tabs button.on{background:#fff;color:var(--ink);font-weight:700;box-shadow:inset 0 3px 0 var(--accent)}
.ws-tab-panel{display:none;border:1px solid var(--line);border-radius:0 0 14px 14px;padding:34px;gap:40px;background:#fff}
.ws-tab-panel.on{display:flex}
.ws-tab-panel__txt{flex:1;min-width:0}
.ws-tab-panel__media{flex:0 0 44%;border-radius:14px;overflow:hidden;background:var(--bg-warm);align-self:flex-start}
.ws-tab-panel__media img,.ws-tab-panel__media video{width:100%;display:block;aspect-ratio:4/3;object-fit:cover;background:#000}
.ws-tab-panel h3{font-size:19px;font-weight:700;margin-bottom:10px}
.ws-tab-panel .hint{font-size:13.5px;font-style:italic;color:var(--accent-ink);margin-bottom:14px}
.ws-tab-panel p{font-size:14.5px;color:var(--ink-soft);line-height:1.7;margin-bottom:14px}
.ws-tab-panel ol{margin:0 0 16px 20px;font-size:14.5px;color:var(--ink-soft);line-height:1.7}
.ws-tab-panel ol li{margin-bottom:6px;padding-left:4px}
.ws-tab-panel blockquote{border-left:3px solid var(--line);padding-left:14px;font-style:italic;font-size:14px;color:var(--ink);line-height:1.6;margin:0 0 16px}
.ws-tab-panel .videolink{display:inline-flex;align-items:center;gap:7px;font-size:14px;font-weight:600;color:var(--ink);text-decoration:underline;text-underline-offset:3px}
.ws-tab-panel .videolink svg{width:16px;height:16px}
@media (max-width:768px){
  .ws-tab-panel{flex-direction:column;padding:22px;gap:22px}
  .ws-tab-panel__media{flex:none;width:100%}
  .ws-tabs button{font-size:13px;padding:13px 8px}
}

/* =========================================================
   SECTION: split-story (image + texte, alternés, pleine largeur)
   ========================================================= */
.ws-split{display:flex;align-items:stretch}
.ws-split--alt{flex-direction:row-reverse}
.ws-split__media{flex:0 0 calc(var(--split-ratio,50) * 1%);min-width:0;margin:0}
.ws-split__media img,.ws-split__media video{width:100%;height:100%;object-fit:cover;display:block;min-height:var(--split-h,440px);background:#000}
.ws-split__panel{flex:1 1 auto;background:var(--ink);color:#efece5;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:70px 56px}
@media (max-width:900px){.ws-split,.ws-split--alt{flex-direction:column}.ws-split__media,.ws-split__panel{flex:none !important;width:100%}}
.ws-split__panel h2{font-family:'Archivo';font-size:34px;font-weight:600;line-height:1.15;color:#fff;letter-spacing:-.01em}
.ws-split__panel h2 em{display:block;font-style:italic;font-weight:400}
.ws-split__panel p{font-size:13.5px;line-height:1.75;color:#c5c1b7;max-width:48ch;margin:20px 0 30px}
.ws-split__cta{display:inline-block;border:1px solid #fff;color:#fff;font-size:13px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;padding:15px 26px;transition:.18s var(--ease)}
.ws-split__cta:hover{background:#fff;color:var(--ink)}
@media (max-width:900px){
  .ws-split,.ws-split--alt{flex-direction:column}
  .ws-split__media img,.ws-split__media video{min-height:300px}
  .ws-split__panel{padding:48px 24px}
  .ws-split__panel h2{font-size:27px}
}

/* variante CHEVAUCHÉE : carte blanche qui déborde sur l'image */
.ws-splits--overlap{background:var(--bg-alt);padding:56px 0}
/* Bloc contenu dans une largeur maitrisee + image PLAFONNEE (sinon elle prend tout l'ecran). */
.ws-splits--overlap .ws-split{align-items:center;padding:22px 24px;max-width:1180px;margin:0 auto}
.ws-splits--overlap .ws-split__media{flex:0 0 52%}
.ws-splits--overlap .ws-split__media img,.ws-splits--overlap .ws-split__media video{min-height:0;height:auto;aspect-ratio:4/3;max-height:400px;object-fit:cover;width:100%}
.ws-splits--overlap .ws-split__panel{flex:1 1 auto;background:#fff;color:var(--ink);text-align:left;align-items:flex-start;justify-content:center;padding:34px 38px;position:relative;z-index:2;box-shadow:0 14px 44px -22px rgba(20,20,18,.35);margin-left:-6%}
.ws-splits--overlap .ws-split--alt .ws-split__panel{margin-left:0;margin-right:-6%}
.ws-splits--overlap .ws-split__panel h2{font-size:30px;font-weight:500;color:var(--ink);letter-spacing:-.01em}
.ws-splits--overlap .ws-split__panel h2 em{font-style:normal;font-weight:500}
.ws-splits--overlap .ws-split__panel p{color:var(--ink-soft);max-width:none;margin:18px 0 0;font-size:14.5px;line-height:1.75}
.ws-splits--overlap .ws-split__cta{margin-top:26px;border-color:var(--ink);color:var(--ink)}
.ws-splits--overlap .ws-split__cta:hover{background:var(--ink);color:#fff}
@media (max-width:900px){
  .ws-splits--overlap .ws-split{flex-direction:column;padding:16px}
  .ws-splits--overlap .ws-split__media,.ws-splits--overlap .ws-split__panel{flex:none;width:100%}
  .ws-splits--overlap .ws-split__panel{margin:-36px 0 0 !important;padding:30px 24px}
  .ws-splits--overlap .ws-split__panel h2{font-size:24px}
}

/* variante ÉPURÉE : fond blanc, grande image arrondie, sans panneau ni bouton */
/* ---- Variante « Bandes » : bandeaux beiges arrondis, image a fleur de bord,
   texte et image qui ALTERNENT d'une bande a l'autre. ---- */
.ws-splits--bands{background:transparent;padding:0;display:flex;flex-direction:column;gap:14px}
.ws-splits--bands .ws-split{max-width:1180px;width:100%;margin:0 auto;padding:0;gap:0;align-items:stretch;
  background:var(--bg-alt,#f7f5f2);border-radius:14px;overflow:hidden;flex-direction:row-reverse}
.ws-splits--bands .ws-split--alt{flex-direction:row}
/* L'ancien bloc image/texte impose marges, bordures et coins arrondis a ses images :
   on les NEUTRALISE ici, sinon les photos sont decalees et encadrees dans les bandes. */
.ws-splits--bands .ws-split__media,
.ws-splits--bands .ws-split__media img,
.ws-splits--bands .ws-split__media video{padding:0!important;margin:0!important;border:0!important;
  border-radius:0!important;box-shadow:none!important;outline:0!important;background:none!important}
/* L'image ne doit PAS imposer sa hauteur a la bande (sinon bande de 470px au lieu de 180).
   Media en position relative + image en absolu : la hauteur vient du texte, l'image remplit. */
.ws-splits--bands .ws-split__media{position:relative;flex:0 0 50%;margin:0;border-radius:0;align-self:stretch;min-height:196px;overflow:hidden}
.ws-splits--bands .ws-split__media img,.ws-splits--bands .ws-split__media video{position:absolute;inset:0;width:100%;height:100%;
  min-height:0;max-height:none;aspect-ratio:auto;object-fit:cover;display:block;border-radius:0}
.ws-splits--bands .ws-split__panel{flex:1 1 auto;background:transparent;box-shadow:none;margin:0;padding:30px 36px;
  color:var(--ink);text-align:left;align-items:flex-start;justify-content:center}
/* Titre SERIF, texte compact gris : rendu identique a la reference. */
.ws-splits--bands .ws-split__panel h2{font-family:Georgia,'Times New Roman',serif;font-size:23px;font-weight:400;
  color:var(--ink);letter-spacing:0;line-height:1.25}
.ws-splits--bands .ws-split__panel h2 em{display:block;font-style:normal;font-weight:400}
.ws-splits--bands .ws-split__panel p{font-size:12.5px;line-height:1.75;color:#6f6f69;max-width:44ch;margin:12px 0 0}
/* Liste a puces cochees (coche bordeaux) */
.ws-splits--bands .ws-split__list{list-style:none;margin:13px 0 0;padding:0;display:flex;flex-direction:column;gap:8px}
.ws-splits--bands .ws-split__list li{display:flex;align-items:flex-start;gap:10px;font-size:13px;line-height:1.5;color:#4a4a46}
.ws-splits--bands .ws-split__ck{flex:0 0 auto;color:#a94e64;margin-top:2px}
/* Petite note avec icone */
.ws-splits--bands .ws-split__note{display:flex;align-items:center;gap:8px;margin:15px 0 0;font-size:12px;color:#6e6e67}
.ws-splits--bands .ws-split__note svg{flex:0 0 auto;color:#a94e64}
.ws-splits--bands .ws-split__cta{margin-top:22px;border-color:var(--ink);color:var(--ink);padding:12px 22px}
.ws-splits--bands .ws-split__cta:hover{background:var(--ink);color:#fff}
@media(max-width:900px){
  .ws-splits--bands .ws-split,.ws-splits--bands .ws-split--alt{flex-direction:column}
  .ws-splits--bands .ws-split__media{flex:none;width:100%}
  .ws-splits--bands .ws-split__media img,.ws-splits--bands .ws-split__media video{height:240px}
  .ws-splits--bands .ws-split__panel{padding:26px 22px}
  .ws-splits--bands .ws-split__panel h2{font-size:22px}
}

.ws-splits--clean{background:#fff;padding:32px 0}
.ws-splits--clean .ws-split{align-items:center;gap:64px;max-width:var(--maxw);margin:0 auto;padding:48px 24px}
.ws-splits--clean .ws-split__media{flex:0 0 calc(var(--split-ratio,46) * 1%)}
.ws-splits--clean .ws-split__media img,.ws-splits--clean .ws-split__media video{min-height:0;height:auto;aspect-ratio:1/1;border-radius:22px}
.ws-splits--clean .ws-split__panel{flex:1;background:none;color:var(--ink);text-align:left;align-items:flex-start;justify-content:center;padding:0;box-shadow:none;margin:0 !important}
.ws-splits--clean .ws-split__panel h2{font-family:'Archivo';font-size:30px;font-weight:700;color:var(--ink);letter-spacing:-.01em}
.ws-splits--clean .ws-split__panel h2 em{display:inline;font-style:normal;font-weight:700}
.ws-splits--clean .ws-split__panel h2 em::before{content:" "}
.ws-splits--clean .ws-split__panel h2::after{content:".";color:var(--accent)}
.ws-splits--clean .ws-split__panel p{color:var(--ink-soft);max-width:54ch;margin:18px 0 0;font-size:15px;line-height:1.85}
.ws-splits--clean .ws-split__cta{display:none}
@media (max-width:900px){
  .ws-splits--clean .ws-split{flex-direction:column;gap:26px;padding:32px 20px}
  .ws-splits--clean .ws-split__media{width:100%}
  .ws-splits--clean .ws-split__panel h2{font-size:25px}
}

/* variante CENTRÉE : carte arrondie sur fond sombre, texte centré sur panneau beige */
.ws-splits--soft{background:var(--ink);padding:20px}
.ws-splits--soft .ws-split{align-items:stretch;gap:0;min-height:var(--split-h,440px);max-width:var(--maxw);margin:0 auto;border-radius:22px;overflow:hidden}
.ws-splits--soft .ws-split + .ws-split{margin-top:20px}
.ws-splits--soft .ws-split__media{flex:0 0 calc(var(--split-ratio,50) * 1%)}
.ws-splits--soft .ws-split__media img,.ws-splits--soft .ws-split__media video{min-height:0;height:100%;aspect-ratio:auto;border-radius:0}
.ws-splits--soft .ws-split__panel{flex:1 1 auto;background:var(--bg-warm);color:var(--ink);text-align:center;align-items:center;justify-content:center;padding:56px 54px;box-shadow:none;margin:0 !important}
.ws-splits--soft .ws-split__panel h2{font-family:'Archivo';font-size:32px;font-weight:500;color:#6f6d66;letter-spacing:-.01em}
.ws-splits--soft .ws-split__panel h2 em{display:block;font-style:normal;font-weight:500}
.ws-splits--soft .ws-split__panel p{text-align:center;color:var(--ink-soft);max-width:46ch;margin:20px 0 0;font-size:15px;line-height:1.85}
.ws-splits--soft .ws-split__cta{display:none}
@media (max-width:900px){
  .ws-splits--soft{padding:14px}
  .ws-splits--soft .ws-split{flex-direction:column;min-height:0}
  .ws-splits--soft .ws-split--alt{flex-direction:column}
  .ws-splits--soft .ws-split__media img,.ws-splits--soft .ws-split__media video{height:auto;aspect-ratio:4/3}
  .ws-splits--soft .ws-split__panel{padding:36px 24px}
  .ws-splits--soft .ws-split__panel h2{font-size:26px}
}

/* =========================================================
   SECTION: steps (étapes : titre + cartes image + légende + détail dépliable)
   ========================================================= */
.ws-steps{padding:80px 0}
.ws-steps h2{font-size:32px;font-weight:800;margin-bottom:36px;line-height:1.15}
.ws-steps__grid{display:flex;gap:22px;flex-wrap:wrap}
.ws-step{flex:1 1 250px;min-width:0}
.ws-step__card{position:relative;border-radius:16px;overflow:hidden;aspect-ratio:4/5;background:var(--bg-warm)}
.ws-step__card img,.ws-step__card video{width:100%;height:100%;object-fit:cover;display:block}
.ws-step__card::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.5),transparent 42%);pointer-events:none}
.ws-step__cap{position:absolute;left:18px;right:52px;bottom:16px;z-index:2;color:#fff;font-size:16px;font-weight:700;line-height:1.3;text-shadow:0 1px 8px rgba(0,0,0,.4)}
.ws-step__more{position:absolute;right:16px;bottom:16px;z-index:3;width:30px;height:30px;border-radius:50%;background:var(--accent);color:#fff;border:0;display:grid;place-items:center;cursor:pointer;transition:.2s var(--ease)}
.ws-step__more svg{width:16px;height:16px;transition:transform .25s var(--ease)}
.ws-step.is-open .ws-step__more svg{transform:rotate(45deg)}
.ws-step__detail{max-height:0;overflow:hidden;transition:max-height .3s var(--ease);font-size:14px;color:var(--ink-soft);line-height:1.6}
.ws-step.is-open .ws-step__detail{max-height:220px}
.ws-step__detail p{padding:14px 4px 0}
@media (max-width:768px){ .ws-steps{padding:56px 0} .ws-steps h2{font-size:24px} .ws-step{flex-basis:100%} }

/* =========================================================
   SECTION: banner (grande bannière pleine largeur, image OU vidéo)
   ========================================================= */
.ws-banner{position:relative;overflow:hidden;background:var(--bg-warm)}
.ws-banner__media,.ws-banner__media img,.ws-banner__media video{display:block;width:100%}
.ws-banner__media img,.ws-banner__media video{height:100%;object-fit:cover}
.ws-banner{aspect-ratio:21/9}
.ws-banner .ws-banner__media,.ws-banner .ws-banner__media img,.ws-banner .ws-banner__media video{height:100%}
/* contenu optionnel superposé (titre + bouton) */
.ws-banner__overlay{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;gap:18px;padding:0 8%;z-index:2;pointer-events:none}
.ws-banner__overlay.is-center{align-items:center;text-align:center}
.ws-banner__overlay.is-right{align-items:flex-end;text-align:right}
.ws-banner--tint::after{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,rgba(0,0,0,.45),transparent 60%)}
.ws-banner__overlay h2{font-family:'Archivo';font-size:clamp(26px,3.4vw,44px);font-weight:800;color:#fff;line-height:1.1;text-shadow:0 2px 18px rgba(0,0,0,.35);max-width:16ch}
.ws-banner__overlay a{pointer-events:auto;display:inline-block;background:#fff;color:var(--ink);font-size:13px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;padding:15px 28px;border-radius:100px;transition:.18s var(--ease)}
.ws-banner__overlay a:hover{background:var(--ink);color:#fff}
.ws-banner__play{position:absolute;inset:0;margin:auto;width:74px;height:74px;border-radius:50%;background:rgba(255,255,255,.9);display:grid;place-items:center;z-index:3;cursor:pointer;transition:.18s var(--ease)}
.ws-banner__play svg{width:26px;height:26px;margin-left:4px;color:var(--ink)}
.ws-banner__play:hover{transform:scale(1.06)}
.ws-banner.is-playing .ws-banner__play,.ws-banner.is-playing .ws-banner--tint::after{display:none}
.ws-banner.is-image .ws-banner__media video{display:none}
.ws-banner.is-video .ws-banner__media img{display:none}
@media (max-width:768px){ .ws-banner{aspect-ratio:4/3} .ws-banner__overlay{padding:0 24px} }

/* =========================================================
   SECTION: marquee (bandeau défilant en boucle)
   ========================================================= */
.ws-marquee{background:var(--ink);color:#fff;overflow:hidden;padding:14px 0}
.ws-marquee__track{display:flex;width:max-content;animation:ws-marq 30s linear infinite}
.ws-marquee:hover .ws-marquee__track{animation-play-state:paused}
.ws-marquee__group{display:flex;flex-shrink:0}
.ws-marquee__item{display:inline-flex;align-items:center;gap:10px;padding:0 30px;font-size:14px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;white-space:nowrap}
.ws-marquee__item svg{width:16px;height:16px;flex:0 0 auto}
@keyframes ws-marq{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media (prefers-reduced-motion:reduce){.ws-marquee__track{animation:none}.ws-marquee{overflow-x:auto;scrollbar-width:none}.ws-marquee::-webkit-scrollbar{display:none}}

/* =========================================================
   SECTION: values (bande d'arguments, icône + titre + texte)
   ========================================================= */
.ws-showcase{padding:64px 0}
.ws-showcase__grid{display:grid;grid-template-columns:1fr minmax(200px,360px) 1fr;align-items:center;gap:40px;margin-top:36px}
.ws-showcase__media{display:flex;justify-content:center}
.ws-showcase__media img{max-width:100%;height:auto;display:block;border-radius:var(--radius-sm)}
.ws-showcase__col{display:flex;flex-direction:column;gap:34px}
.ws-showcase__col--left{text-align:right}
.ws-showcase__feat{display:flex;gap:14px;align-items:flex-start}
.ws-showcase__col--left .ws-showcase__feat{flex-direction:row-reverse}
.ws-showcase__ic{flex:none;width:26px;height:26px;color:var(--ink)}
.ws-showcase__ic svg{width:100%;height:100%;display:block}
.ws-showcase__txt h3{font-weight:700;margin-bottom:4px}
.ws-showcase__txt p{font-size:13.5px;color:var(--ink-soft);line-height:1.5}
@media(max-width:900px){.ws-showcase__grid{grid-template-columns:1fr;gap:26px}.ws-showcase__col--left{text-align:left}.ws-showcase__col--left .ws-showcase__feat{flex-direction:row}.ws-showcase__media{order:-1}}
.ws-values{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:56px 0}
.ws-values__grid{display:flex;flex-wrap:wrap}
.ws-value{flex:1 1 0;min-width:200px;text-align:center;padding:12px 30px;border-left:1px solid var(--line)}
.ws-value:first-child{border-left:0}
.ws-value__ic{width:var(--val-ic-size,32px);height:var(--val-ic-size,32px);margin:0 auto 16px;color:var(--ink)}
.ws-value__ic svg{width:100%;height:100%}
.ws-value h3{font-size:15px;font-weight:800;letter-spacing:.03em;text-transform:uppercase;color:var(--ink);margin-bottom:12px}
.ws-value p{font-size:14px;color:var(--ink-soft);line-height:1.6;max-width:30ch;margin:0 auto}
@media (max-width:900px){
  .ws-value{flex-basis:50%;border-left:0;padding:24px 20px}
  .ws-value:nth-child(odd){border-right:1px solid var(--line)}
  .ws-value:nth-child(n+3){border-top:1px solid var(--line)}
}
@media (max-width:560px){
  .ws-value{flex-basis:100%;border-right:0 !important}
  .ws-value:nth-child(n+2){border-top:1px solid var(--line)}
}

/* =========================================================
   SECTION: faq
   ========================================================= */
/* Panneau colore a la largeur EXACTE du contenu de .ws-wrap (= largeur des bandes) :
   plafond --maxw MOINS le padding-inline 2x24px, centre. Sans le max-width, le bloc
   s'etalait sur toute la largeur de l'ecran au-dela de 1280px (bug largeurs inegales). */
.ws-faq{width:calc(100% - 48px);max-width:calc(var(--maxw) - 48px);margin:10px auto;background:#fff;box-shadow:var(--shadow);border-radius:8px;padding:40px 24px;box-sizing:border-box}
.ws-faq .ws-wrap{padding-inline:0}
.ws-faq h2{text-align:center;font-size:28px;font-weight:700;margin-bottom:44px}
.ws-faq__list{max-width:920px;margin:0 auto;counter-reset:faq}
.ws-faq__list details{border-bottom:1px solid var(--line)}
.ws-faq__list summary{display:flex;align-items:center;gap:20px;padding:22px 4px;cursor:pointer;list-style:none;font-size:16px;color:var(--ink)}
.ws-faq__list summary::-webkit-details-marker{display:none}
.ws-faq__list summary::before{counter-increment:faq;content:counter(faq) ".";font-weight:600;flex:0 0 auto}
.ws-faq__q{flex:1;line-height:1.4}
.ws-faq__ico{position:relative;width:16px;height:16px;flex:0 0 16px}
.ws-faq__ico::before,.ws-faq__ico::after{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);background:var(--ink)}
.ws-faq__ico::before{width:14px;height:1.5px}
.ws-faq__ico::after{width:1.5px;height:14px;transition:transform .25s var(--ease)}
.ws-faq__list details[open] .ws-faq__ico::after{transform:translate(-50%,-50%) scaleY(0)}
.ws-faq__body{padding:0 4px 24px 40px;font-size:14.5px;color:var(--ink-soft);line-height:1.7}
@media (max-width:768px){
  .ws-faq{width:calc(100% - 36px);margin:10px auto;padding:28px 16px}
  .ws-faq__list summary{font-size:14.5px;gap:12px;padding:18px 2px}
  .ws-faq__body{padding-left:24px}
}

/* =========================================================
   SECTION: related-products
   ========================================================= */
.ws-related{padding:80px 0}
.ws-related h2{text-align:center;font-size:30px;font-weight:700;margin-bottom:40px}
.ws-cards{display:flex;gap:22px;flex-wrap:wrap}
.ws-card{flex:1 1 220px;min-width:0}
.ws-card__media{position:relative;border-radius:var(--radius);overflow:hidden;background:var(--bg-warm);margin-bottom:14px}
.ws-card__media img{aspect-ratio:1/1;object-fit:cover;width:100%;transition:transform .6s var(--ease)}
.ws-card:hover .ws-card__media img{transform:scale(1.04)}
.ws-card__media .ws-badge{position:absolute;top:12px;left:12px}
.ws-card__quick{position:absolute;left:12px;right:12px;bottom:12px;background:#fff;color:var(--ink);font-weight:700;font-size:13px;padding:11px;border-radius:100px;text-align:center;opacity:0;transform:translateY(8px);transition:.25s var(--ease)}
.ws-card:hover .ws-card__quick{opacity:1;transform:translateY(0)}
.ws-card h3{font-size:15px;font-weight:600;margin-bottom:4px}
.ws-card__meta{display:flex;align-items:center;gap:10px}
.ws-card__price{font-size:15px;font-weight:700;font-family:'Archivo'}
.ws-card__price s{color:var(--muted);font-weight:500;font-size:13px;margin-left:6px}
.ws-card__reviews{font-size:12px;color:var(--muted);margin-top:6px}

/* PRODUITS RECOMMANDÉS · deux styles : TUILES (pleine largeur) ou CARTES */
/* Panneau colore a la largeur EXACTE du contenu de .ws-wrap (= largeur des bandes) :
   plafond --maxw MOINS le padding-inline 2x24px, centre. Sans le max-width, le bloc
   s'etalait sur toute la largeur de l'ecran au-dela de 1280px (bug largeurs inegales). */
.ws-reco{width:calc(100% - 48px);max-width:calc(var(--maxw) - 48px);margin:10px auto;background:#fff;box-shadow:var(--shadow);border-radius:8px;padding-block:40px;box-sizing:border-box}
.ws-reco .ws-wrap{padding-inline:0}
.ws-reco__title{text-align:center;font-size:30px;font-weight:700;margin-bottom:28px;font-family:'Archivo';letter-spacing:-.02em}
.ws-reco__viewport{position:relative}
/* safe center : les cartes restent CENTREES quand elles ne remplissent pas le rail,
   sans jamais rogner le debut quand il y a defilement. */
.ws-reco__track{display:flex;justify-content:safe center;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;-ms-overflow-style:none}
.ws-reco__track::-webkit-scrollbar{display:none}
/* PIEGE THEME : Astra/WooLentor ecrase background/border/padding des <button> -> la fleche
   n'etait qu'un chevron gris sur fond clair (fond et bordure annules, seule l'ombre restait).
   Tout est donc force en !important : pastille sombre pleine = contraste net sur le panneau beige. */
.ws-reco__arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:4;
  width:52px!important;height:52px!important;min-width:0!important;padding:0!important;
  border-radius:50%!important;background:var(--ink,#141413)!important;border:0!important;
  box-shadow:0 4px 16px rgba(20,20,18,.30)!important;color:#fff!important;
  font-size:26px!important;font-weight:600!important;line-height:1!important;
  display:grid;place-items:center;cursor:pointer;transition:.18s var(--ease)}
.ws-reco__arrow:hover{background:var(--ink,#141413)!important;color:#fff!important;
  box-shadow:0 6px 22px rgba(20,20,18,.42)!important;transform:translateY(-50%) scale(1.07)}
.ws-reco__arrow--prev{left:24px}
.ws-reco__arrow--next{right:24px}
/* !important : une animation d'apparition (opacity) primerait sinon sur cette regle,
   laissant une fleche visible alors qu'il n'y a rien a faire defiler. */
/* transition:none obligatoire : une transition en cours prime sur !important dans la
   cascade CSS -> la fleche restait visible alors qu'il n'y a rien a faire defiler. */
.ws-reco__arrow[disabled]{opacity:0!important;visibility:hidden!important;pointer-events:none!important;transition:none!important}
.ws-reco__card{position:relative;flex:0 0 25%;scroll-snap-align:start;background:transparent;border-left:1px solid var(--line);padding:22px 22px 0;display:flex;flex-direction:column;min-width:0;cursor:pointer;transition:background .25s var(--ease)}
.ws-reco__card:first-child{border-left:0}
.ws-reco__card:hover{background:var(--bg-alt)}
.ws-reco__badge{position:absolute;top:20px;right:20px;z-index:2;font-size:10px;font-weight:700;letter-spacing:.04em;background:var(--ink);color:#fff;padding:5px 10px;border-radius:100px;white-space:nowrap}
.ws-reco__badge--soft{background:#d9d7d1;color:var(--ink)}
.ws-reco__info{order:0;display:flex;align-items:baseline;justify-content:space-between;gap:10px;padding-right:78px}
.ws-reco__card h3{font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--ink);line-height:1.3}
.ws-reco__rating{display:none;font-size:12px;color:var(--ink-soft);white-space:nowrap}
.ws-reco__rating b{color:var(--star)}
.ws-reco__price{order:1;display:inline-flex;align-items:baseline;gap:7px;font-family:'Archivo';font-size:19px;font-weight:500;color:var(--ink);margin-top:7px}
.ws-reco__price b{font-weight:inherit}
.ws-reco__price s{font-size:13px;color:var(--muted);font-weight:400}
.ws-reco__swatches{order:2;display:flex;gap:7px;margin-top:12px}
.ws-reco__swatches span{width:13px;height:13px;border-radius:50%;border:1px solid rgba(0,0,0,.14)}
.ws-reco__variants{display:none;gap:6px;margin-top:10px}
.ws-reco__variants button{width:34px;height:34px;flex:0 0 34px;border:1px solid transparent;border-radius:3px;overflow:hidden;padding:0;background:var(--bg-alt);cursor:pointer}
.ws-reco__variants button.on{border-color:var(--ink)}
.ws-reco__variants img{width:100%;height:100%;object-fit:cover;display:block}
.ws-reco__more{display:grid;place-items:center;font-size:15px;color:var(--ink);background:#fff;border:1px solid var(--line)}
.ws-reco__media{order:3;flex:1;display:grid;place-items:center;padding:24px 0 30px;overflow:hidden}
.ws-reco__media img{width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:6px;transition:transform .5s var(--ease);image-rendering:auto}
/* Tuiles : image un peu plus petite dans la carte (demande client), centree par place-items. */
.ws-reco:not(.ws-reco--cards) .ws-reco__media img{width:85%}
.ws-reco__card:hover .ws-reco__media img{transform:scale(1.05)}
.ws-reco__bar{width:200px;height:2px;background:var(--line);margin:34px auto 0;border-radius:2px;overflow:hidden}
.ws-reco__bar span{display:block;height:100%;width:66%;background:var(--ink);border-radius:2px}

/* variante CARTES : image en haut, vignettes de variantes, note, prix soldé */
.ws-reco--cards .ws-reco__title{text-align:left;padding:0 24px;font-size:24px;margin-bottom:28px}
.ws-reco--cards .ws-reco__track{gap:24px;padding:0 24px}
.ws-reco--cards .ws-reco__card{flex:0 0 22%;background:none;border-left:0;padding:0}
.ws-reco--cards .ws-reco__card:hover{background:none}
.ws-reco--cards .ws-reco__media{order:0;flex:none;padding:0;background:var(--bg-alt);border-radius:4px}
.ws-reco--cards .ws-reco__variants{order:1;display:flex}
.ws-reco--cards .ws-reco__info{order:2;padding-right:0;margin-top:12px}
.ws-reco--cards .ws-reco__card h3{font-size:13.5px;font-weight:600;letter-spacing:0;text-transform:none}
.ws-reco--cards .ws-reco__rating{display:inline}
.ws-reco--cards .ws-reco__price{order:3;font-family:'Manrope';font-size:14px;font-weight:500;color:var(--ink-soft);margin-top:5px}
.ws-reco--cards .ws-reco__price.has-sale b{order:1;color:var(--sale);font-weight:600}
.ws-reco--cards .ws-reco__price.has-sale s{order:0}
.ws-reco--cards .ws-reco__swatches{display:none}
.ws-reco--cards .ws-reco__badge{top:12px;left:12px;right:auto}
.ws-reco--cards .ws-reco__badge--sale{background:#fff;color:var(--sale);border:1px solid var(--sale);border-radius:4px;padding:5px 8px;font-weight:600;letter-spacing:0;text-transform:none}
.ws-reco--cards .ws-reco__bar{width:auto;margin:28px 24px 0}

@media (max-width:1024px){ .ws-reco__card{flex-basis:40%} .ws-reco--cards .ws-reco__card{flex-basis:38%} }
@media (max-width:768px){ .ws-reco__card{flex-basis:72%} .ws-reco--cards .ws-reco__card{flex-basis:62%} .ws-reco{width:calc(100% - 36px);margin:10px auto;padding-block:28px} }

/* =========================================================
   SECTION: reviews
   ========================================================= */
.ws-reviews{background:var(--bg-alt);padding:80px 0}
.ws-reviews h2{text-align:center;font-size:30px;font-weight:700;margin-bottom:40px}
.ws-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-weight:700;font-size:14px;border-radius:100px;padding:13px 22px;transition:.16s var(--ease)}
.ws-btn--ghost{border:1px solid var(--line);color:var(--ink);background:#fff}
.ws-btn--ghost:hover{border-color:var(--ink)}
.ws-reviews__summary{display:flex;gap:48px;align-items:center;justify-content:center;flex-wrap:wrap;background:#fff;border-radius:var(--radius);padding:36px 40px;margin-bottom:28px;box-shadow:var(--shadow)}
.ws-score{text-align:center;flex:0 0 auto}
.ws-score__num{font-family:'Archivo';font-size:56px;font-weight:800;line-height:1}
.ws-score .ws-stars{font-size:18px;margin:8px 0 4px}
.ws-score small{color:var(--muted);font-size:13px}
.ws-bars{flex:1 1 280px;max-width:420px;display:flex;flex-direction:column;gap:7px}
.ws-bar{display:flex;align-items:center;gap:10px;font-size:12px;color:var(--muted)}
.ws-bar__track{flex:1;height:8px;border-radius:100px;background:var(--line);overflow:hidden}
.ws-bar__fill{height:100%;background:var(--accent);border-radius:100px}
.ws-review{background:#fff;border-radius:var(--radius);padding:24px 26px;margin-bottom:16px;box-shadow:var(--shadow)}
.ws-review__top{display:flex;align-items:center;gap:12px;margin-bottom:12px}
.ws-avatar{width:42px;height:42px;border-radius:50%;background:var(--accent-soft);color:var(--accent-ink);display:grid;place-items:center;font-weight:700;font-size:15px;flex:0 0 42px}
.ws-review__who{flex:1;min-width:0}
.ws-review__who b{font-size:14px;display:block}
.ws-review__who span{font-size:12px;color:var(--accent-ink);display:inline-flex;align-items:center;gap:4px}
.ws-review__date{font-size:12px;color:var(--muted)}
.ws-review h4{font-size:15px;font-weight:700;margin:4px 0 6px;font-family:'Manrope'}
.ws-review p{font-size:14px;color:var(--ink-soft);line-height:1.6}
.ws-review__footer{display:flex;align-items:center;gap:16px;margin-top:14px;font-size:12px;color:var(--muted)}
.ws-review__footer button{font-size:12px;color:var(--muted);display:inline-flex;align-items:center;gap:5px}
.ws-review__footer button:hover{color:var(--ink)}
/* photos clients dans les avis */
.ws-review__photos{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.ws-review__photos img{width:72px;height:72px;object-fit:cover;border-radius:9px;cursor:pointer;transition:transform .15s var(--ease)}
.ws-review__photos img:hover{transform:scale(1.04)}
/* résumé galerie photos en tête de la section avis */
.ws-review-gallery{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;margin-bottom:22px;padding-bottom:2px}
.ws-review-gallery::-webkit-scrollbar{display:none}
.ws-review-gallery img{width:84px;height:84px;flex:0 0 84px;object-fit:cover;border-radius:10px;cursor:pointer;transition:transform .15s var(--ease)}
.ws-review-gallery img:hover{transform:scale(1.04)}
.ws-review-gallery .more{flex:0 0 84px;height:84px;border-radius:10px;background:var(--ink);color:#fff;display:grid;place-items:center;font-weight:700;font-size:14px;cursor:pointer}
/* aperçu des photos dans le formulaire */
.ws-rev-preview{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.ws-rev-preview .thumb{position:relative;width:60px;height:60px}
.ws-rev-preview img{width:60px;height:60px;object-fit:cover;border-radius:8px}
.ws-rev-preview .rm{position:absolute;top:-6px;right:-6px;width:20px;height:20px;border-radius:50%;background:var(--ink);color:#fff;font-size:13px;line-height:1;display:grid;place-items:center;cursor:pointer;border:2px solid #fff}
/* lightbox photo */
.ws-lightbox{position:fixed;inset:0;z-index:125;background:rgba(8,8,8,.9);display:none;place-items:center;padding:24px}
.ws-lightbox.is-open{display:grid}
.ws-lightbox img{max-width:92vw;max-height:calc(var(--wsfp-vh,1vh)*88);border-radius:10px;box-shadow:0 20px 60px rgba(0,0,0,.5)}
.ws-lightbox__close{position:absolute;top:20px;right:22px;width:42px;height:42px;border-radius:50%;background:#fff;color:#111;font-size:24px;border:0;cursor:pointer;display:grid;place-items:center}
.ws-pagination{display:flex;justify-content:center;gap:6px;margin-top:32px}
.ws-pagination a{min-width:38px;height:38px;padding:0 6px;border-radius:9px;display:grid;place-items:center;font-size:14px;font-weight:600;color:var(--ink-soft);transition:.2s}
.ws-pagination a:hover{background:#fff}
.ws-pagination a.is-active{background:var(--ink);color:#fff}

/* FRÉQUEMMENT ACHETÉS ENSEMBLE */
.ws-fbt{padding:70px 0;border-top:1px solid var(--line)}
.ws-fbt h2{font-size:26px;font-weight:700;margin-bottom:28px}
.ws-fbt__inner{display:flex;gap:44px;align-items:center;flex-wrap:wrap}
.ws-fbt__visual{display:flex;align-items:center;gap:14px;flex:0 0 auto}
.ws-fbt__visual img{width:104px;height:104px;object-fit:cover;border-radius:12px;background:var(--bg-warm)}
.ws-fbt__plus{font-size:22px;color:var(--muted);font-weight:300}
.ws-fbt__list{flex:1 1 300px;min-width:0;display:flex;flex-direction:column;gap:11px}
.ws-fbt__item{display:flex;align-items:center;gap:12px;font-size:14px;cursor:pointer}
.ws-fbt__item input{width:18px;height:18px;accent-color:var(--ink);flex:0 0 auto}
.ws-fbt__item img{width:42px;height:42px;object-fit:cover;border-radius:7px;flex:0 0 auto;background:var(--bg-warm)}
.ws-fbt__item .nm{flex:1;min-width:0}
.ws-fbt__item .nm b{display:block;font-weight:600}
.ws-fbt__item.is-main .nm b::after{content:" · cet article";font-weight:400;color:var(--muted);font-size:12px}
.ws-fbt__item .pr{font-weight:700;font-family:'Archivo';white-space:nowrap}
.ws-fbt__foot{flex:0 0 auto;display:flex;flex-direction:column;gap:12px;align-items:flex-start}
.ws-fbt__total{font-size:15px;color:var(--ink-soft)}
.ws-fbt__total b{font-family:'Archivo';font-size:24px;color:var(--ink);margin-left:6px}
.ws-fbt__add{background:var(--ink);color:#fff;font-weight:800;font-size:14.5px;border-radius:100px;padding:14px 26px}
.ws-fbt__add:hover{background:#000}
@media (max-width:768px){.ws-fbt{padding:50px 0}.ws-fbt__visual{display:none}}

/* QUESTIONS & RÉPONSES */
.ws-qa{padding:70px 0}
.ws-qa__head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:26px;flex-wrap:wrap}
.ws-qa__head h2{font-size:26px;font-weight:700}
.ws-qa__list{display:flex;flex-direction:column;max-width:900px}
.ws-qa__item{border-bottom:1px solid var(--line);padding:20px 0}
.ws-qa__q,.ws-qa__a{display:flex;gap:12px;font-size:14.5px;line-height:1.55}
.ws-qa__a{margin-top:12px;color:var(--ink-soft)}
.ws-qa__tag{flex:0 0 26px;width:26px;height:26px;border-radius:7px;display:grid;place-items:center;font-weight:800;font-size:13px;background:var(--field);color:var(--ink)}
.ws-qa__tag--a{background:var(--accent-soft);color:var(--accent-ink)}
.ws-qa__q>div b{color:var(--ink)}
.ws-qa__by{display:block;margin-top:6px;font-size:12px;color:var(--muted)}
.ws-qa__by b{color:var(--ink)}

/* =========================================================
   SECTION: footer
   ========================================================= */
.ws-footer{background:var(--ink);color:#c9c7bf;padding:56px 0 28px}
.ws-footer__grid{display:flex;flex-wrap:wrap;gap:40px;justify-content:space-between;margin-bottom:40px}
.ws-footer__brand{flex:1 1 240px}
.ws-footer__brand .ws-logo{color:#fff;margin-bottom:12px}
.ws-footer__brand p{font-size:14px;max-width:280px}
.ws-footer__col{flex:0 1 160px}
.ws-footer__col h4{color:#fff;font-size:13px;letter-spacing:.06em;text-transform:uppercase;margin-bottom:14px;font-family:'Manrope'}
.ws-footer__col a{display:block;font-size:14px;padding:5px 0;transition:color .2s}
.ws-footer__col a:hover{color:#fff}
.ws-footer__bottom{border-top:1px solid rgba(255,255,255,.12);padding-top:20px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;font-size:12px}

/* =========================================================
   RESPONSIVE — breakpoints Elementor 1024 / 768
   ========================================================= */
@media (max-width:1024px){
  body.cfg-open{padding-left:0}          /* le tiroir passe en overlay */
  .ws-product__layout{flex-direction:column}
  .ws-buy{position:static;flex-basis:auto;width:100%;max-width:520px;margin:0 auto}
  .ws-gallery-wrap{width:100%}
  .ws-nav{gap:18px}
}
@media (max-width:768px){
  .ws-wrap{padding-inline:18px}
  .ws-nav{display:none}
  .ws-title{font-size:24px}
  .ws-headline__name{font-size:var(--h1-size,30px)}
  .ws-section-head h2,.ws-related h2,.ws-reviews h2{font-size:26px}
  .ws-gallery--masonry{column-gap:10px}
  .ws-card{flex-basis:calc(50% - 11px)}
  .ws-reviews__summary{flex-direction:column;gap:24px;text-align:center}
}
@media (max-width:480px){
  .ws-card{flex-basis:100%}
}

/* ============================================================
 * ANTI-FOUC (flash du template de demo)
 * La fiche rendue par le shortcode (.wsfp-root) est masquee des le
 * premier rendu, puis revelee par le JS (classe .wsfp-ready) une fois
 * le vrai contenu produit en place et les modules demo masques.
 * Repli : si le JS echoue, l'animation revele quand meme apres 2.5s.
 * Ne s'applique QU'aux pages front (l'editeur/apercu n'a pas de .wsfp-root).
 * ========================================================== */
/* 1.12.64 : PLUS D'ECRAN BLANC. Depuis la 1.10.14 le serveur ecrit deja les vraies
   donnees (photos, titre, prix, panier) : masquer toute la fiche jusqu'au script ne
   servait plus qu'a retarder l'affichage. MESURE (page rendue sans script, comparee a la
   page finale) : en haut de fiche, SEUL l'estimation de livraison differe (date de la
   maquette tant que le script ne l'a pas calculee). Tout le reste de ce que le script
   masque ou retouche vit dans les <section data-module> de la longue description, sous
   la ligne de flottaison. On ne cache donc QUE ces deux-la, en visibility (la place est
   gardee : rien ne saute quand ils apparaissent). */
.wsfp-root:not(.wsfp-ready) section[data-module],
.wsfp-root:not(.wsfp-ready) [data-module="delivery"]{visibility:hidden}
/* Repli SANS JS : si le script ne se charge pas, on revele apres 3s. */
.wsfp-root:not(.wsfp-ready) section[data-module],
.wsfp-root:not(.wsfp-ready) [data-module="delivery"]{animation:wsfpRevealFail 0s linear 3s forwards}
@keyframes wsfpRevealFail{to{visibility:visible}}

/* WS skillshop : presentations des avis (reglage « Presentation » de la section Avis clients). */
.ws-reviews--grille .ws-reviews__list{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}
.ws-reviews--grille .ws-review{margin:0}
.ws-reviews--defile .ws-reviews__list{display:flex;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:thin;padding:0 0 10px}
.ws-reviews--defile .ws-review{flex:0 0 min(340px,85%);margin:0;scroll-snap-align:start}

/* ============================================================
   ACCESSIBILITE (revue du 2026-10-13, docs/REVUE-INTERFACE-2026-10-13.md)
   ============================================================ */
/* Focus clavier visible sur tous nos controles (le reset plus haut retire bordure et fond
   des <button>, et certains themes ecrasent le contour du navigateur). :focus-visible =
   seulement au clavier : rien ne change a la souris. */
[class*="wsfp-pay-"] :is(button,a[href],summary,[role="button"],[role="radio"],[tabindex]:not([tabindex="-1"]),select,input[type="checkbox"],input[type="radio"]):focus-visible{outline:2px solid var(--accent,#1c1b19)!important;outline-offset:2px}
.wsfp-sel__btn:focus-visible{outline:2px solid var(--accent,#1c1b19);outline-offset:2px}
/* Liste des options : la ligne en surbrillance au clavier. */
.wsfp-sel__opt.is-act{background:var(--bg-alt,#f5f3ef)}
.wsfp-sel__opt.is-sel.is-act{background:var(--accent,#1c1b19);box-shadow:inset 0 0 0 2px #fff}
/* Variante indisponible : un vrai bouton desactive, meme apparence qu'avant. */
.wsfp-cart .wsfp-var__opts .wsfp-var__opt:disabled{opacity:.4;cursor:not-allowed;text-decoration:line-through}
/* « Apercu rapide » : visible aussi quand la carte recoit le focus clavier. */
.ws-card:focus-within .ws-card__quick{opacity:1;transform:translateY(0)}
/* Etoiles du formulaire d'avis : celle qui a le focus est visible. */
.ws-rev-stars [role="radio"]:focus-visible{border-radius:4px}
/* Les animations en boucle s'arretent d'elles-memes (moins de 5 s, regle WCAG 2.2.2). */
.ws-dot::after{animation-iteration-count:3}
.ws-blink{animation-iteration-count:4}
/* Et rien ne bouge quand le systeme demande moins d'animations. */
@media (prefers-reduced-motion:reduce){
  .ws-dot::after,.ws-blink,.ws-badgerow--anim .ws-badge,.ws-cta.wsanim-pulse,.ws-cta.wsanim-shake{animation:none!important}
  .ws-shot img,.ws-card__media img,.ws-swatch,.ws-card__quick{transition:none!important}
  .ws-card:hover .ws-card__media img,.ws-swatch:hover{transform:none!important}
}

/* « Pleine largeur » du bouton d'achat, sur le vrai bouton WooCommerce (tests 2026-10-17) */
.wsfp-cart--plein form.cart{flex-wrap:wrap}
.wsfp-cart--plein .single_add_to_cart_button{flex:1 1 100%;width:100%}

/* ===== CORRECTIFS DES TESTS DU 2026-10-17 ===== */
/* Les barres du résumé des avis : elles ne se remplissaient jamais (élément en ligne). */
.ws-bar__fill{display:block}
/* « Couleur principale (boutons, prix, étoiles) » : le thème gagnait sur le bouton d'achat. */
html body .wsfp-root .wsfp-cart button.single_add_to_cart_button,
html body .wsfp-root .wsfp-cart .single_add_to_cart_button.button{background:var(--accent,#1c1b19)!important;color:#fff!important;border:0!important}
html body .wsfp-root .wsfp-cart .single_add_to_cart_button:hover{filter:brightness(1.12)}
.wsfp-root .ws-headline__now,
.wsfp-root .ws-headline ins .amount{color:var(--accent)}
.wsfp-root .ws-stars,
.wsfp-root .star-rating span::before{color:var(--accent)}
/* « Couleur des icônes (coches, pictos) » : la variable n'était utilisée nulle part. */
.wsfp-root .wsfp-npf__ck,
.wsfp-root .wsfp-npf__flag,
.wsfp-root .wsfp-c__ic,
.wsfp-root .ws-acc__ico-lead,
.wsfp-root .ws-delivery svg{color:var(--wsfp-deco,currentColor)!important}
.wsfp-root .ws-dot{background:var(--wsfp-deco,currentColor)!important}
/* « Coins arrondis » : les encadrés de la colonne d'achat suivent la charte. */
.wsfp-root .wsfp-msg__trigger,
.wsfp-root .wsfp-c-avis__i,
.wsfp-root .wsfp-npf-top,
.wsfp-root .ws-acc{border-radius:var(--radius-sm,var(--radius))}
/* « Taille du texte » : toute la colonne d'achat grandit (titre, prix, courte description,
   fil d'Ariane, stock), pas seulement quelques modules. */
.wsfp-root .ws-buy{zoom:var(--wsfp-scale,1)}

/* Le champ quantité : le thème lui donnait 39 px de marge de chaque côté, le « 1 » disparaissait. */
html body .wsfp-root .wsfp-cart .quantity input.qty{padding:0 4px!important;text-align:center!important;min-width:44px}

/* L'animation au clic, sur le vrai bouton d'achat (tests 2026-10-17 : il ne bougeait jamais). */
.wsfp-cart .single_add_to_cart_button.wsanim-pulse{animation:wspulse .5s ease}
.wsfp-cart .single_add_to_cart_button.wsanim-shake{animation:wsshake .45s ease}
.wsfp-cart .ws-cta__reassure{display:flex;align-items:center;justify-content:center;gap:6px;margin:8px 0 0;font-size:12.5px;color:var(--muted,#6b6b66)}

/* « Coins arrondis » : le bouton d'achat les suit aussi (le thème gardait 3 px). */
html body .wsfp-root .wsfp-cart .single_add_to_cart_button{border-radius:var(--radius-sm,11px)!important}

/* Colonne d'achat étroite : la livraison passe à la ligne au lieu de déborder (2026-10-18). */
.wsfp-root .ws-buy .ws-freeship{white-space:normal;flex-wrap:wrap}
.wsfp-root .ws-buy.wsfp-liv-row [data-module="freeship"],.wsfp-root .ws-buy [data-module="delivery"]{min-width:0}
/* GALERIE : le format choisi est toujours respecte (tests 2026-10-18 : un Portrait plafonne a
   80 % de l'ecran devenait paysage), et les vignettes restent collees a la photo (en pleine
   largeur, la photo etait centree loin d'elles). On plafonne la LARGEUR de la photo, pas sa
   hauteur : la hauteur suit le format. */
.ws-gallery--carousel .ws-shot img,.ws-gallery--carousel .ws-shot video,
.ws-gallery--thumbs .ws-shot img,.ws-gallery--thumbs .ws-shot video,
.ws-gallery--sidethumbs .ws-shot img,.ws-gallery--sidethumbs .ws-shot video{max-height:none!important}
.ws-gallery-wrap.is-sidethumbs .ws-gal-stage,
.ws-gallery-wrap:not(.is-sidethumbs) .ws-gal-stage{max-width:calc(calc(var(--wsfp-vh,1vh)*80) * var(--wsfp-shot-ratio,1/1))}
.ws-gallery-wrap.is-sidethumbs .ws-gal-stage{margin-left:0!important;margin-right:auto}
.ws-gallery-wrap:not(.is-sidethumbs) .ws-gal-stage,
.ws-gallery-wrap:not(.is-sidethumbs) .ws-gal-thumbs-wrap{margin-left:auto;margin-right:auto;max-width:calc(calc(var(--wsfp-vh,1vh)*80) * var(--wsfp-shot-ratio,1/1))}
/* Quantité : −, le chiffre, + bien séparés (le − touchait le 1). */
html body .wsfp-root .wsfp-cart .quantity{display:inline-flex;align-items:center;gap:6px}
/* Avis : pas de cadre « photos » vide quand aucun avis n'a de photo. */
.ws-review-gallery:empty,.ws-review-gallery:not(:has(img)){display:none!important}
/* Carte « Venez nous rencontrer » : téléphone et e-mail sont des liens. */
.wsfp-st__row a{color:inherit;text-decoration:underline;text-underline-offset:2px}
/* Choix en rupture : la carte le montre avant le clic. */
.wsfp-lt__card.is-rupture,.wsfp-ls__card.is-rupture{opacity:.45}
.wsfp-lt__card.is-rupture .wsfp-lt__label::after,.wsfp-ls__card.is-rupture .wsfp-ls__label::after{content:" · épuisé";font-weight:500}

/* Hauteur des images du bloc image + texte (« Hauteur de l'image », 0 = Auto), ordinateur seulement. */
@media (min-width:901px){ .wsfp-bh-on .ws-split__media,.wsfp-bh-on .ws-split__media img{min-height:var(--bands-h)!important} }

/* AVIS CLIENTS SUR FOND BLANC, comme la FAQ et les autres blocs (milov 2026-10-20 : « pourquoi
   un fond #F5F3EF ? ») : une carte blanche a ombre douce ; dedans, des cadres a trait fin. */
.ws-reviews{width:calc(100% - 48px);max-width:calc(var(--maxw) - 48px);margin:10px auto;background:#fff;box-shadow:var(--shadow);border-radius:8px;padding:40px 24px;box-sizing:border-box}
.ws-reviews .ws-wrap{padding-inline:0}
.ws-reviews .ws-reviews__summary,.ws-reviews .ws-review{box-shadow:none;border:1px solid var(--line,#ece8e4)}
@media(max-width:768px){ .ws-reviews{width:calc(100% - 36px);padding:28px 16px} }

/* LES ONGLETS DE LA DESCRIPTION LONGUE (milov 2026-10-20), facon WooCommerce : une rangee de
   titres, l'onglet choisi souligne, et dessous les elements de cet onglet. */
.wsfp-ong{width:calc(100% - 48px);max-width:calc(var(--maxw) - 48px);margin:10px auto;background:#fff;box-shadow:var(--shadow);border-radius:8px;padding:0 0 10px;box-sizing:border-box}
.wsfp-ong .ws-wrap{padding-inline:0}
.wsfp-ong__nav{display:flex;justify-content:center;flex-wrap:wrap;gap:4px 28px;padding:0 20px;border-bottom:1px solid var(--line,#ece8e4)}
.wsfp-ong__b{appearance:none;border:0;background:none;padding:20px 2px 16px;margin-bottom:-1px;border-bottom:2px solid transparent;font-family:var(--font-title,inherit);font-size:calc(14px * var(--wsfp-scale,1));font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--text-color,#6f6f69);cursor:pointer}
.wsfp-ong__b.is-on{color:var(--ink,#141413);border-bottom-color:var(--accent,#141413)}
.wsfp-ong__b[hidden]{display:none}
.wsfp-ong__p{padding:10px 0 0}
.wsfp-ong__p > *{box-shadow:none!important}
.wsfp-ong__vide{margin:0;padding:48px 20px;text-align:center;color:#9a968f;font-size:14px}
.ws-layout-sticky .ws-buy-desc .wsfp-ong__nav{justify-content:flex-start;gap:4px 18px;padding:0 4px}

/* LA POINTURE EN GRILLE DE CASES (milov 2026-10-21) : des cases carrees grises, la choisie au trait
   fonce, les indisponibles plus pales ; dessous, le stock restant quand il est bas. */
.wsfp-var--grille .wsfp-var__opts{display:grid!important;grid-template-columns:repeat(auto-fill,minmax(56px,1fr));gap:6px}
.wsfp-var--grille .wsfp-var__opt{min-width:0!important;height:56px;margin:0!important;padding:0!important;justify-content:center;border-radius:0!important;border:1px solid #ececec!important;background:#f7f7f7!important;color:var(--ink,#141413)!important;font-size:calc(15px * var(--wsfp-scale,1));font-weight:500;box-shadow:none!important}
.wsfp-var--grille .wsfp-var__opt:hover{border-color:#bdbdbd!important}
.wsfp-var--grille .wsfp-var__opt.on{border-color:var(--ink,#141413)!important;background:#ececec!important}
.wsfp-var--grille .wsfp-var__opt.is-disabled{background:#fbfbfb!important;color:#c4c4c4!important}
.wsfp-var__stock{display:table;margin:10px 0 0;padding:5px 10px;border-radius:2px;background:var(--accent,#141413);color:#fff;font-size:calc(13px * var(--wsfp-scale,1));font-weight:700}
.wsfp-var__stock[hidden]{display:none}
.wsfp-var--grille .wsfp-var__opt.is-epuise{background:#fbfbfb!important;color:#bdbdbd!important;text-decoration:line-through}
/* Le stock est dit sous la grille : la ligne de WooCommerce en double est retiree. */
.wsfp-cart:has(.wsfp-var--grille) .woocommerce-variation-availability{display:none!important}
/* LARGEUR DE LA DESCRIPTION « Pleine largeur » (milov 2026-10-21 : « ne fonctionne pas ») : la regle ne
   visait que les anciennes sections. Elle vaut pour tout le bas de la fiche (bandes, atouts, onglets, avis...). */
/* LES AVIS SUR MOBILE (milov 2026-10-21 : « c'est moche, regarde toute la place perdue ») : en colonne,
   « flex:1 1 280px » donnait 280 px de HAUTEUR aux barres, toutes ecrasees. Note a gauche, barres a
   droite, bouton dessous, sur toute la largeur. */
@media (max-width:760px){
  .ws-reviews .ws-reviews__summary{display:grid;grid-template-columns:auto minmax(0,1fr);gap:14px 20px;align-items:center;text-align:left;padding:20px}
  .ws-reviews .ws-reviews__summary .ws-score{text-align:center}
  .ws-reviews .ws-reviews__summary .ws-bars{flex:none;width:100%;max-width:none}
  .ws-reviews .ws-reviews__summary > :last-child:not(.ws-bars):not(.ws-score){grid-column:1/-1}
  .ws-reviews .ws-reviews__summary > :last-child .ws-btn{width:100%}
}
/* Quantite « − 1 + » du theme (Blocksy, type-2) : le champ remplit toute la boite, sinon le « + »
   tombait dehors (vu le 2026-10-21). */
.wsfp-root form.cart .quantity[data-type="type-2"] input.qty{width:100%!important;max-width:none!important;flex:1 1 auto;text-align:center;padding:0 36px!important}
/* OPTIONS SERREES (milov 2026-10-21 : « reduis les espaces entre les options, on ne garde pas un
   espace vide pour rien ») : 14 px entre deux options, 6 px sous le libelle, rien de reserve en dessous. */
.ws-buy table.variations{margin:0 0 10px!important}
.ws-buy table.variations tr{margin:0 0 14px!important}
.ws-buy table.variations tr:last-child{margin-bottom:0!important}
.ws-buy table.variations th.label{padding:0!important;margin:0 0 6px!important}
.ws-buy table.variations td.value{padding:0!important;margin:0!important}
.ws-buy table.variations .wsfp-var{margin-bottom:0!important}
.ws-buy table.variations .reset_variations{margin-top:6px!important;font-size:12px}
.ws-buy table.variations .reset_variations[style*="hidden"]{display:none!important}
.ws-buy .single_variation_wrap .woocommerce-variation:empty{display:none!important}

/* Vignette choisie : cadre reglable (couleur, epaisseur). Vignettes a cote : la colonne a la hauteur
   exacte de l'image (taille calculee par capSideThumbs), fleches de 24 px + 6 px d'ecart. */
.ws-gal-thumbs button.on{border-color:var(--wsfp-thumb-on-c,var(--ink))!important;border-width:var(--wsfp-thumb-on-w,2px)!important}
.ws-gallery-wrap.is-sidethumbs .ws-gal-thumbs-wrap{gap:6px!important;align-self:flex-start}
.ws-gallery-wrap.is-sidethumbs .ws-gal-thumbs{gap:10px!important;scrollbar-width:none}
.ws-gallery-wrap.is-sidethumbs .ws-gal-thumbs::-webkit-scrollbar{display:none}
.ws-gallery-wrap.is-sidethumbs .ws-gal-thumbs button{box-sizing:border-box!important;width:var(--wsfp-thumb-col,84px)!important;height:var(--wsfp-thumb-col,84px)!important;min-height:0!important;flex:0 0 auto!important}
.ws-gallery-wrap.is-sidethumbs .ws-gal-thumbs img{width:100%!important;height:100%!important;aspect-ratio:auto!important;object-fit:cover}
.ws-gallery-wrap.is-sidethumbs{align-items:flex-start!important}
.ws-gallery-wrap.is-sidethumbs .ws-gal-stage{align-self:flex-start}

/* Espace au-dessus de la description : l'espace sous le produit = le reglage, rien d'autre. */
html.wsfp-dgap .ws-product{padding-bottom:var(--wsfp-desc-gap)!important;margin-bottom:0!important}
/* Un petit espace entre la pastille « Fabrique en France » et la courte description (milov 2026-10-21). */
/* LA PASTILLE DANS SON CADRE, SANS FAUX ESPACE (milov 2026-10-25) : le cadre epouse la pastille
   (pas toute la largeur), la pastille y est centree, et l'espace avec le bloc suivant est la
   marge du cadre, pas une marge cachee sous la pastille. */
.wsfp-root .wsfp-npf-top{display:flex!important;align-items:center;width:fit-content;max-width:100%}
.wsfp-npf-top .wsfp-npf__fr{margin:0!important}

/* Mise en page : largeur de la page (photos + texte) et espace entre les photos et le texte. */
html.wsfp-pmax .ws-product .ws-product__layout{max-width:var(--wsfp-page-max)!important;margin-inline:auto!important}
html.wsfp-bgap .ws-product .ws-product__layout{column-gap:var(--wsfp-buy-gap)!important}
/* La colonne de texte tient SA largeur (un contenu large la faisait gonfler : 554 px pour 426 reglés). */
@media (min-width:1025px){
  .ws-product__layout > .ws-buy{min-width:0!important;max-width:var(--buy-w)}
  .ws-product__layout > .ws-buy table.variations{width:100%}
}
/* Livraison offerte + delai cote a cote : passent l'un sous l'autre quand la colonne est etroite
   (ils se chevauchaient et depassaient a 426 px, 2026-10-21). */
.wsfp-duo{flex-wrap:wrap!important;row-gap:6px!important}
.wsfp-duo > .ws-mod{flex:0 0 auto!important;max-width:100%}
/* Largeur de page reglee : la page fait exactement cette largeur, sans marge interieure en plus. */
@media (min-width:1025px){ html.wsfp-pmax .ws-product .ws-product__layout{padding-inline:0!important} }

/* La galerie resserree sur sa photo : le groupe photos + texte reste centre dans la page. */
@media (min-width:1025px){ .ws-product__layout:has(> .ws-gallery-wrap.is-sidethumbs){justify-content:center} }

/* LA DESCRIPTION LONGUE EN CARTES (milov 2026-10-21 : « l'encadre des avis, applique-le a toute la
   longue description »). Par defaut : chaque bloc dans une carte blanche, ombre douce, coins arrondis.
   « A plat » (body.wsfp-dlook-plat) : tout sur fond blanc, sans cadre ni ombre. Le bandeau defilant
   et la banniere restent sur toute la largeur. */
body:not(.wsfp-dlook-plat) .wsfp-root > .ws-wrap > [data-newblock]{background:#fff;box-shadow:var(--shadow);border-radius:8px;padding:40px 24px!important;margin:10px 0!important;box-sizing:border-box}
body:not(.wsfp-dlook-plat) .wsfp-root > section:not(.ws-product):not(.ws-footer):not([data-module=secMarquee]):not([data-module=secBanner]){background:#fff;box-shadow:var(--shadow);border-radius:8px;width:calc(100% - 48px);margin:10px auto;padding-block:40px;box-sizing:border-box}
body:not(.wsfp-dlook-plat) .wsfp-root > .ws-wrap{padding-inline:24px}
body.wsfp-dlook-plat .wsfp-root > section:not(.ws-product):not(.ws-footer),body.wsfp-dlook-plat .wsfp-root > .ws-wrap > [data-newblock]{box-shadow:none!important;border-radius:0!important;margin:0 auto!important}
/* Le fond blanc d'« A plat » ne recouvre pas le fond choisi pour un bloc (pose en style sur le bloc). */
body.wsfp-dlook-plat .wsfp-root > section:not(.ws-product):not(.ws-footer):not([style*="background"]),body.wsfp-dlook-plat .wsfp-root > .ws-wrap > [data-newblock]:not([style*="background"]){background:#fff!important}
body.wsfp-dlook-plat .ws-reviews .ws-reviews__summary,body.wsfp-dlook-plat .ws-reviews .ws-review,body.wsfp-dlook-plat .ws-reco .ws-card{border:0!important;box-shadow:none!important;background:#fff!important}
body.wsfp-dlook-plat .wsfp-root{background:#fff}
@media(max-width:768px){
  body:not(.wsfp-dlook-plat) .wsfp-root > section:not(.ws-product):not(.ws-footer):not([data-module=secMarquee]):not([data-module=secBanner]){width:calc(100% - 24px);padding-block:28px}
  body:not(.wsfp-dlook-plat) .wsfp-root > .ws-wrap{padding-inline:12px}
  body:not(.wsfp-dlook-plat) .wsfp-root > .ws-wrap > [data-newblock]{padding:28px 16px!important}
}

/* LA LARGEUR DE LA DESCRIPTION LONGUE, une seule regle pour tous ses blocs (milov 2026-10-21 : « les
   avis ne sont pas de la meme largeur que la description »). --wsfp-desc-max : 1140 px (Centree), 900 px
   (Etroite), ou la valeur du curseur. Les blocs dans .ws-wrap ont 24 px de marge interieure ; les
   sections en carte font la meme largeur (max - 48 px). Pleine largeur : toute la page, mais jamais
   colle aux bords (24 px de chaque cote). */
.wsfp-root > .ws-wrap{max-width:var(--wsfp-desc-max,1140px)!important;padding-inline:24px!important;margin-inline:auto!important;box-sizing:border-box}
.wsfp-root > section:not(.ws-product):not(.ws-footer):not([data-module=secMarquee]):not([data-module=secBanner]){width:calc(100% - 48px)!important;max-width:calc(var(--wsfp-desc-max,1140px) - 48px)!important;margin-left:auto!important;margin-right:auto!important}
.wsfp-root > section:not(.ws-product):not(.ws-footer) .ws-wrap{max-width:none!important}
body.desc-narrow{--wsfp-desc-max:900px}
body.desc-full .wsfp-root > .ws-wrap{max-width:none!important}
body.desc-full .wsfp-root > section:not(.ws-product):not(.ws-footer):not([data-module=secMarquee]):not([data-module=secBanner]){max-width:none!important}
body.desc-full .wsfp-root > .ws-wrap > [data-newblock]{margin-inline:0!important}
@media(max-width:768px){
  .wsfp-root > .ws-wrap{padding-inline:12px!important}
  .wsfp-root > section:not(.ws-product):not(.ws-footer):not([data-module=secMarquee]):not([data-module=secBanner]){width:calc(100% - 24px)!important}
}
/* 120 px entre la fin de la fiche et le pied de page (milov 2026-10-21). */
.wsfp-root{padding-bottom:120px}
@media(max-width:768px){ .wsfp-root{padding-bottom:64px} }

/* Les textes mis en forme des blocs (WSFP_Riche) : paragraphes, listes, liens. */
:is(.wsfp-bd__tx,.wsfp-st__tx,.wsfp-st__ftx,.wsfp-st__cx,.wsfp-i4__tx,.wsfp-na__body,.wsfp-c-texte__t,.wsfp-c-duo__t,.wsfp-ong__p,.wsfp-c-tabs) p{margin:0 0 .75em}
:is(.wsfp-bd__tx,.wsfp-st__tx,.wsfp-st__ftx,.wsfp-st__cx,.wsfp-i4__tx,.wsfp-na__body,.wsfp-c-texte__t,.wsfp-c-duo__t) p:last-child{margin-bottom:0}
:is(.wsfp-bd__tx,.wsfp-st__tx,.wsfp-st__ftx,.wsfp-st__cx,.wsfp-i4__tx,.wsfp-na__body,.wsfp-c-texte__t,.wsfp-c-duo__t) :is(ul,ol){margin:0 0 .75em;padding-left:1.35em}
:is(.wsfp-bd__tx,.wsfp-st__tx,.wsfp-st__ftx,.wsfp-st__cx,.wsfp-i4__tx,.wsfp-na__body,.wsfp-c-texte__t,.wsfp-c-duo__t) ul{list-style:disc}
:is(.wsfp-bd__tx,.wsfp-st__tx,.wsfp-st__ftx,.wsfp-st__cx,.wsfp-i4__tx,.wsfp-na__body,.wsfp-c-texte__t,.wsfp-c-duo__t) ol{list-style:decimal}
:is(.wsfp-bd__tx,.wsfp-st__tx,.wsfp-st__ftx,.wsfp-st__cx,.wsfp-i4__tx,.wsfp-na__body,.wsfp-c-texte__t,.wsfp-c-duo__t) li{margin:0 0 .3em}
:is(.wsfp-bd__tx,.wsfp-st__tx,.wsfp-st__ftx,.wsfp-st__cx,.wsfp-i4__tx,.wsfp-na__body,.wsfp-c-texte__t,.wsfp-c-duo__t) a{color:inherit;text-decoration:underline;text-underline-offset:2px}
:is(.wsfp-bd__tx,.wsfp-st__tx,.wsfp-st__ftx,.wsfp-st__cx,.wsfp-i4__tx,.wsfp-na__body,.wsfp-c-texte__t,.wsfp-c-duo__t) strong{font-weight:700;color:var(--ink,#141413)}

/* ===== BOUTON D'ACHAT ET QUANTITE (milov 2026-10-24) =====
   Sur PC, le bouton reste TOUJOURS a cote de la quantite : sa base est 0 et il n'a pas de
   largeur minimale, il prend la place qui reste (le texte passe a la ligne si la colonne est
   tres etroite). « Pleine largeur » etend en plus chaque conteneur intermediaire (le theme
   en ajoute un sans classe) : la ligne occupe tout le cadre de la fiche, jamais plus. */
@media (min-width:601px){
  html body .wsfp-root .wsfp-cart .single_add_to_cart_button,
  html body .wsfp-root .wsfp-cart--plein .single_add_to_cart_button{flex:1 1 0!important;width:auto!important;min-width:0!important;max-width:100%;white-space:normal;line-height:1.25;text-align:center}
  .wsfp-cart .woocommerce-variation-add-to-cart{flex-wrap:nowrap}
}
.wsfp-cart--plein form.cart > div:not(.quantity){flex:1 1 100%;width:100%;min-width:0;max-width:100%}
.wsfp-cart--plein .single_variation_wrap,.wsfp-cart--plein .woocommerce-variation-add-to-cart{width:100%;max-width:100%}
/* Sur mobile : la quantite prend toute la largeur, comme le bouton dessous. */
@media (max-width:600px){
  .wsfp-cart .woocommerce-variation-add-to-cart,.wsfp-cart form.cart:not(.variations_form){flex-wrap:wrap}
  html body .wsfp-root .wsfp-cart .quantity{flex:1 1 100%!important;width:100%!important;max-width:none!important;justify-content:space-between;box-sizing:border-box}
  html body .wsfp-root .wsfp-cart .quantity input.qty{flex:1 1 auto;width:auto!important;max-width:none!important;min-width:0}
  html body .wsfp-root .wsfp-cart .single_add_to_cart_button{flex:1 1 100%!important;width:100%!important;min-width:0!important}
}

/* ===== COULEUR ET SURVOL DU BOUTON D'ACHAT (milov 2026-10-24) =====
   wsfp-bc-on : une couleur ou un degrade choisis (variables posees par set_buyCol).
   wsfp-bh-* : l'animation au survol ; « Se souleve » est celle d'avant, sans classe. */
html body .wsfp-root.wsfp-bc-on .wsfp-cart button.single_add_to_cart_button,
html body .wsfp-root.wsfp-bc-on .wsfp-cart .single_add_to_cart_button.button{background:var(--wsfp-buy-bg)!important;color:var(--wsfp-buy-fg,#fff)!important}
html body .wsfp-root .wsfp-cart .single_add_to_cart_button{transition:transform .18s ease,box-shadow .18s ease,filter .18s ease}
html body .wsfp-root.wsfp-bh-none .wsfp-cart .single_add_to_cart_button:hover{transform:none;box-shadow:none;filter:none}
html body .wsfp-root.wsfp-bh-zoom .wsfp-cart .single_add_to_cart_button:hover{transform:scale(1.04);box-shadow:none;filter:none}
html body .wsfp-root.wsfp-bh-fonce .wsfp-cart .single_add_to_cart_button:hover{transform:none;box-shadow:none;filter:brightness(.82)}
html body .wsfp-root.wsfp-bh-halo .wsfp-cart .single_add_to_cart_button:hover{transform:none;filter:none;box-shadow:0 0 0 4px rgba(0,0,0,.06),0 0 24px 3px color-mix(in srgb,var(--accent,#1c1b19) 45%,transparent)}
html body .wsfp-root.wsfp-bh-reflet .wsfp-cart .single_add_to_cart_button{position:relative;overflow:hidden}
html body .wsfp-root.wsfp-bh-reflet .wsfp-cart .single_add_to_cart_button::after{content:"";position:absolute;top:0;left:-70%;width:45%;height:100%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.5),transparent);transform:skewX(-20deg);transition:left .65s ease;pointer-events:none}
html body .wsfp-root.wsfp-bh-reflet .wsfp-cart .single_add_to_cart_button:hover::after{left:125%}
html body .wsfp-root.wsfp-bh-reflet .wsfp-cart .single_add_to_cart_button:hover{transform:none;filter:none}
@media (prefers-reduced-motion:reduce){
  html body .wsfp-root .wsfp-cart .single_add_to_cart_button:hover{transform:none!important}
  html body .wsfp-root.wsfp-bh-reflet .wsfp-cart .single_add_to_cart_button::after{display:none}
}

/* LE TITRE DU BLOC, REGLE A PART DU TEXTE (milov 2026-10-24) : taille, police, couleur. */
.wsfp-u-hfs :is(h1,h2,h3,h4,.wsfp-c__h){font-size:var(--u-hfs)!important}
.wsfp-u-hff :is(h1,h2,h3,h4,.wsfp-c__h),.wsfp-u-hff :is(h1,h2,h3,h4,.wsfp-c__h) *{font-family:var(--u-hff)!important}
.wsfp-u-hcol :is(h1,h2,h3,h4,.wsfp-c__h),.wsfp-u-hcol :is(h1,h2,h3,h4,.wsfp-c__h) *{color:var(--u-hcol)!important}

/* LE BADGE DES ELEMENTS D'UN BLOC (milov 2026-10-25) : couleur du texte et fond. */
.wsfp-u-bdgc :is([class*="__badge"],[class*="ribbon"],[class*="-badge"]){color:var(--u-bdgc)!important}
.wsfp-u-bdgbg :is([class*="__badge"],[class*="ribbon"],[class*="-badge"]){background:var(--u-bdgbg)!important;border-color:var(--u-bdgbg)!important}

/* WS skillshop 0.86.62 : le cadre des photos (reglage galCadre). */
html.wsfp-galcadre .ws-gallery-wrap{border:1px solid var(--line,#e6e2dc);border-radius:var(--wsfp-shot-radius,var(--radius,12px));box-shadow:0 10px 30px -12px rgba(20,20,18,.18);background:#fff;padding:16px;box-sizing:border-box}
/* Marge autour de la galerie sur mobile (reglage galMobMarge) : la galerie ne touche plus les bords de l'ecran. */
@media (max-width:767px){html.wsfp-galmm .ws-product .ws-gallery-wrap{width:calc(100vw - 2 * var(--wsfp-gal-mm,0px))!important;max-width:none!important;margin-left:calc(50% - 50vw + var(--wsfp-gal-mm,0px))!important;margin-right:0!important}}
/* La valeur choisie d'un attribut (ex. « : 35 » d'une extension de pastilles) reste a cote de son libelle. */
.wsfp-cart table.variations th.label{display:flex;flex-wrap:wrap;align-items:baseline;gap:.3em}
.wsfp-cart table.variations th.label label{display:inline;margin:0}
.wsfp-cart table.variations th.label{margin-bottom:2px!important;padding-bottom:0!important}
.wsfp-cart table.variations tr{row-gap:4px!important}
/* Fil d'Ariane remonte au-dessus de la photo (mobile, tablette) : meme largeur que la colonne d'achat. */
.ws-product__layout > .wsfp-ariane-haut{width:100%;max-width:520px;margin:0 auto}
/* Le nom du produit a la fin du fil d'Ariane, masque sur mobile et tablette (Apparence du bloc, s2) : il est deja en titre juste dessous. */
@media (max-width:1024px){.ws-crumb[data-u-s2="masquer"] .cur,.ws-crumb[data-u-s2="masquer"] .sep:has(+ .cur){display:none}}
.ws-stickybar .ws-stickybar__tags::-webkit-scrollbar{display:none}
