
/* =========================================================
   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:#8d8d85;
  --line:#e8e5de;--line-soft:#f1efe9;
  --bg:#ffffff;--bg-alt:#f5f3ef;--bg-warm:#efece5;--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:88vh}
.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,86vh)}
.ws-device.tablet .ws-device__frame{width:820px;height:min(1000px,86vh);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{max-height:calc(100vh - 100px);overflow-y:auto;overflow-x:hidden}
@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}}
/* 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:0;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 80vh 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:80vh;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,#8a887f);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,#8a887f);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,#8a887f);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,#8a887f)}
.wsfp-sel__chev{flex:0 0 auto;transition:transform .18s;color:var(--muted,#8a887f)}
.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,#8a887f);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--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-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-freeship-bar{margin-top:8px}
.ws-freeship-bar__txt{font-size:11.5px;color:var(--ink-soft);font-weight:600;display:block;margin-bottom:5px}
.ws-freeship-bar__track{display:block;height:6px;border-radius:100px;background:var(--line);overflow:hidden}
.ws-freeship-bar__track i{display:block;height:100%;background:var(--accent);border-radius:100px;transition:width .4s}
.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(84vh,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:88vh;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:88vh;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}
.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:#8a887f}
.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:88vh;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).
 * ========================================================== */
.wsfp-root{opacity:0}
.wsfp-root.wsfp-ready{opacity:1}
/* Repli SANS JS : si le script ne se charge pas, on revele apres 3s. L'animation ne
   s'applique QU'A l'etat non-revele -> une fois .wsfp-ready pose, plus aucune animation
   ni transition en conflit (opacity pilotee proprement, reveal instantane). */
.wsfp-root:not(.wsfp-ready){animation:wsfpRevealFail 0s linear 3s forwards}
@keyframes wsfpRevealFail{to{opacity:1}}
