{"product_id":"new-mens-running-double-layer-shorts-quick-drying-fitness-2-in-1-shorts-mens-sports-workout-training-bodybuilding-shorts-male","title":"Run Dual™","description":"\u003cstyle\u003e\n.prf-trust-bar{display:flex;justify-content:center;gap:10px;margin:0 0 24px 0;flex-wrap:wrap;font-family:'Inter',-apple-system,BlinkMacSystemFont,sans-serif;}\n.prf-trust-item{display:flex;align-items:center;gap:10px;background:#fff;border:1.5px solid #E8E0CC;border-radius:12px;padding:10px 14px;flex:1;min-width:140px;max-width:200px;transition:border-color 0.2s,box-shadow 0.2s;}\n.prf-trust-item:hover{border-color:#C9A84C;box-shadow:0 2px 12px rgba(201,168,76,0.12);}\n.prf-trust-icon{width:38px;height:38px;border-radius:10px;background:#FBF5E6;display:flex;align-items:center;justify-content:center;flex-shrink:0;}\n.prf-trust-icon svg{width:20px;height:20px;stroke:#C9A84C;}\n.prf-trust-title{font-size:12px;font-weight:800;color:#0B0B0B;line-height:1.3;text-transform:uppercase;letter-spacing:0.3px;}\n.prf-trust-sub{font-size:11px;color:#777;margin-top:2px;line-height:1.3;}\n.prf-trust-check{width:16px;height:16px;border-radius:50%;background:#22c55e;display:flex;align-items:center;justify-content:center;margin-left:auto;flex-shrink:0;}\n.prf-trust-check svg{width:10px;height:10px;stroke:#fff;stroke-width:2.5;}\n@media(max-width:600px){\n  .prf-trust-bar{gap:6px;margin:0 0 10px 0;}\n  .prf-trust-item{min-width:calc(50% - 4px);max-width:calc(50% - 4px);padding:8px 10px;gap:7px;border-radius:10px;}\n  .prf-trust-icon{width:30px;height:30px;border-radius:8px;}\n  .prf-trust-icon svg{width:16px;height:16px;}\n  .prf-trust-title{font-size:10px;letter-spacing:0;}\n  .prf-trust-sub{font-size:10px;}\n  .prf-trust-check{width:14px;height:14px;}\n  .prf-trust-check svg{width:8px;height:8px;}\n}\n\u003c\/style\u003e\n\u003cdiv class=\"prf-trust-bar\"\u003e\n\u003cdiv class=\"prf-trust-item\"\u003e\n\u003cdiv class=\"prf-trust-icon\"\u003e\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003cpath d=\"M5 12h14M12 5l7 7-7 7\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/div\u003e\n\u003cdiv class=\"prf-trust-text\"\u003e\n\u003cdiv class=\"prf-trust-title\"\u003eLivraison suivie\u003c\/div\u003e\n\u003cdiv class=\"prf-trust-sub\"\u003eNuméro de suivi inclus\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"prf-trust-check\"\u003e\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003cpolyline points=\"20 6 9 17 4 12\"\u003e\u003c\/polyline\u003e\u003c\/svg\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"prf-trust-item\"\u003e\n\u003cdiv class=\"prf-trust-icon\"\u003e\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003cpolyline points=\"1 4 1 10 7 10\"\u003e\u003c\/polyline\u003e\u003cpath d=\"M3.51 15a9 9 0 1 0 .49-3.54\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/div\u003e\n\u003cdiv class=\"prf-trust-text\"\u003e\n\u003cdiv class=\"prf-trust-title\"\u003eRetours 14 jours\u003c\/div\u003e\n\u003cdiv class=\"prf-trust-sub\"\u003eRemboursement garanti\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"prf-trust-check\"\u003e\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003cpolyline points=\"20 6 9 17 4 12\"\u003e\u003c\/polyline\u003e\u003c\/svg\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"prf-trust-item\"\u003e\n\u003cdiv class=\"prf-trust-icon\"\u003e\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003crect x=\"3\" y=\"11\" width=\"18\" height=\"11\" rx=\"2\" ry=\"2\"\u003e\u003c\/rect\u003e\u003cpath d=\"M7 11V7a5 5 0 0 1 10 0v4\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/div\u003e\n\u003cdiv class=\"prf-trust-text\"\u003e\n\u003cdiv class=\"prf-trust-title\"\u003ePaiement sécurisé\u003c\/div\u003e\n\u003cdiv class=\"prf-trust-sub\"\u003eSSL \u0026amp; Shopify Payments\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"prf-trust-check\"\u003e\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003cpolyline points=\"20 6 9 17 4 12\"\u003e\u003c\/polyline\u003e\u003c\/svg\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"prf-trust-item\"\u003e\n\u003cdiv class=\"prf-trust-icon\"\u003e\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003cpolygon points=\"12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2\"\u003e\u003c\/polygon\u003e\u003c\/svg\u003e\u003c\/div\u003e\n\u003cdiv class=\"prf-trust-text\"\u003e\n\u003cdiv class=\"prf-trust-title\"\u003e5\/5 avis clients\u003c\/div\u003e\n\u003cdiv class=\"prf-trust-sub\"\u003e100% d'avis positifs\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"prf-trust-check\"\u003e\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003cpolyline points=\"20 6 9 17 4 12\"\u003e\u003c\/polyline\u003e\u003c\/svg\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- TIROIR GUIDE DES TAILLES --\u003e\n\u003cstyle\u003e\n.prf-gt-trigger-rd{display:inline-flex;align-items:center;gap:6px;background:none;border:1px solid rgba(201,168,76,0.4);color:#C9A84C;font-size:12px;font-weight:700;cursor:pointer;padding:6px 14px;border-radius:20px;font-family:'Inter',-apple-system,sans-serif;letter-spacing:0.3px;transition:all 0.2s;margin:10px 0 0 0;}\n.prf-gt-trigger-rd:hover{background:#C9A84C;color:#000;}\n.prf-gt-trigger-rd svg{width:13px;height:13px;stroke:currentColor;}\n.prf-gt-overlay-rd{display:none;position:fixed;inset:0;background:rgba(0,0,0,0.6);z-index:9998;backdrop-filter:blur(2px);}\n.prf-gt-overlay-rd.open{display:block;}\n.prf-gt-drawer-rd{position:fixed;bottom:0;left:0;right:0;background:#0d0d0d;border-top:2px solid #C9A84C;border-radius:22px 22px 0 0;z-index:9999;padding:0 0 40px 0;transform:translateY(100%);transition:transform 0.4s cubic-bezier(0.4,0,0.2,1);max-height:88vh;overflow-y:auto;font-family:'Inter',-apple-system,sans-serif;}\n.prf-gt-drawer-rd.open{transform:translateY(0);}\n.prf-gt-handle-rd{width:44px;height:4px;background:#2a2a2a;border-radius:2px;margin:14px auto 0 auto;}\n.prf-gt-header-rd{display:flex;align-items:center;justify-content:space-between;padding:18px 22px 14px 22px;border-bottom:1px solid rgba(201,168,76,0.15);}\n.prf-gt-header-rd-title{font-size:15px;font-weight:900;color:#fff;text-transform:uppercase;letter-spacing:1.5px;}\n.prf-gt-close-rd{width:32px;height:32px;background:rgba(255,255,255,0.06);border:none;border-radius:50%;color:#aaa;font-size:17px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all 0.2s;}\n.prf-gt-close-rd:hover{background:#C9A84C;color:#000;}\n.prf-gt-alert-rd{margin:14px 22px;background:rgba(201,168,76,0.08);border-left:3px solid #C9A84C;border-radius:0 8px 8px 0;padding:10px 14px;font-size:13px;color:#C9A84C;line-height:1.5;}\n.prf-gt-alert-rd strong{font-weight:800;}\n.prf-gt-content-rd{display:block;padding:0 22px;}\n.prf-gt-table-wrap-rd{overflow-x:auto;border-radius:10px;border:1px solid rgba(201,168,76,0.15);margin-bottom:20px;}\n.prf-gt-table-rd{width:100%;border-collapse:collapse;font-size:13px;min-width:380px;}\n.prf-gt-table-rd thead tr{background:rgba(201,168,76,0.1);}\n.prf-gt-table-rd th{color:#C9A84C;font-weight:800;padding:10px 8px;text-align:center;font-size:11px;text-transform:uppercase;letter-spacing:1px;border-bottom:1px solid rgba(201,168,76,0.2);}\n.prf-gt-table-rd td{padding:10px 8px;text-align:center;color:#ccc;border-bottom:1px solid rgba(255,255,255,0.04);font-size:13px;}\n.prf-gt-table-rd tbody tr:last-child td{border-bottom:none;}\n.prf-gt-table-rd tbody tr:hover td{background:rgba(201,168,76,0.05);}\n.prf-gt-size-rd{color:#C9A84C;font-weight:900;font-size:14px;}\n\u003c\/style\u003e\n\n\u003cdiv style=\"text-align:left;padding:8px 0 4px 0;\"\u003e\n\u003cbutton type=\"button\" id=\"prfGtBtnRd\" class=\"prf-gt-trigger-rd\"\u003e\n\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003cpath d=\"M3 9h18M3 15h18M9 3v18\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\n📏 Guide des tailles\n\u003c\/button\u003e\n\u003c\/div\u003e\n\u003cdiv id=\"prfGtOverlayRd\" class=\"prf-gt-overlay-rd\"\u003e\u003c\/div\u003e\n\u003cdiv id=\"prfGtDrawerRd\" class=\"prf-gt-drawer-rd\"\u003e\n\u003cdiv class=\"prf-gt-handle-rd\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"prf-gt-header-rd\"\u003e\n\u003cdiv class=\"prf-gt-header-rd-title\"\u003e📏 Guide des tailles\u003c\/div\u003e\n\u003cbutton id=\"prfGtCloseRd\" class=\"prf-gt-close-rd\"\u003e✕\u003c\/button\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"prf-gt-alert-rd\"\u003e💡 \u003cstrong\u003eConseil de nos clients\u003c\/strong\u003e — ce short taille juste. Référez-vous au poids recommandé pour choisir votre taille.\u003c\/div\u003e\n\u003cdiv class=\"prf-gt-content-rd\"\u003e\n\u003cdiv class=\"prf-gt-table-wrap-rd\"\u003e\n\u003ctable class=\"prf-gt-table-rd\"\u003e\n\u003cthead\u003e\u003ctr\u003e\n\u003cth\u003eTaille\u003c\/th\u003e\n\u003cth\u003eTour de taille\u003c\/th\u003e\n\u003cth\u003eTour de hanches\u003c\/th\u003e\n\u003cth\u003eLongueur\u003c\/th\u003e\n\u003cth\u003eTaille conseillée\u003c\/th\u003e\n\u003cth\u003ePoids conseillé\u003c\/th\u003e\n\u003c\/tr\u003e\u003c\/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd class=\"prf-gt-size-rd\"\u003eS\u003c\/td\u003e\n\u003ctd\u003e68 cm\u003c\/td\u003e\n\u003ctd\u003e106 cm\u003c\/td\u003e\n\u003ctd\u003e31 cm\u003c\/td\u003e\n\u003ctd\u003e160–170 cm\u003c\/td\u003e\n\u003ctd\u003e50–60 kg\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd class=\"prf-gt-size-rd\"\u003eM\u003c\/td\u003e\n\u003ctd\u003e72 cm\u003c\/td\u003e\n\u003ctd\u003e110 cm\u003c\/td\u003e\n\u003ctd\u003e32 cm\u003c\/td\u003e\n\u003ctd\u003e171–175 cm\u003c\/td\u003e\n\u003ctd\u003e61–70 kg\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd class=\"prf-gt-size-rd\"\u003eL\u003c\/td\u003e\n\u003ctd\u003e76 cm\u003c\/td\u003e\n\u003ctd\u003e114 cm\u003c\/td\u003e\n\u003ctd\u003e33 cm\u003c\/td\u003e\n\u003ctd\u003e176–180 cm\u003c\/td\u003e\n\u003ctd\u003e71–80 kg\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd class=\"prf-gt-size-rd\"\u003eXL\u003c\/td\u003e\n\u003ctd\u003e80 cm\u003c\/td\u003e\n\u003ctd\u003e118 cm\u003c\/td\u003e\n\u003ctd\u003e34 cm\u003c\/td\u003e\n\u003ctd\u003e181–185 cm\u003c\/td\u003e\n\u003ctd\u003e81–90 kg\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd class=\"prf-gt-size-rd\"\u003eXXL\u003c\/td\u003e\n\u003ctd\u003e84 cm\u003c\/td\u003e\n\u003ctd\u003e122 cm\u003c\/td\u003e\n\u003ctd\u003e35 cm\u003c\/td\u003e\n\u003ctd\u003e186–195 cm\u003c\/td\u003e\n\u003ctd\u003e91–100 kg\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\n\u003c\/table\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003cp\u003e \u003c\/p\u003e\n\u003cstyle\u003e\n@import url('https:\/\/fonts.googleapis.com\/css2?family=Inter:wght@400;500;600;700;900\u0026display=swap');\n.wraprd{max-width:820px;margin:0 auto;padding:10px 20px 60px;font-family:'Inter',-apple-system,BlinkMacSystemFont,sans-serif;color:#4A4A4A;}\n.hero-badge-rd{display:inline-block;background:#C9A84C;color:#0B0B0B;font-size:11px;font-weight:700;letter-spacing:2px;text-transform:uppercase;padding:6px 16px;border-radius:30px;margin-bottom:18px;}\n.hero-title-rd{font-size:clamp(28px,5vw,46px);font-weight:900;line-height:1.1;color:#0B0B0B;margin-bottom:14px;}\n.hero-title-rd span{color:#C9A84C;}\n.hero-subtitle-rd{font-size:17px;color:#4A4A4A;line-height:1.65;max-width:580px;margin-bottom:32px;}\n.colors-section-rd{margin-bottom:28px;}\n.colors-label-rd{font-size:13px;font-weight:700;color:#0B0B0B;margin-bottom:12px;}\n.colors-wrap-rd{display:flex;gap:10px;flex-wrap:wrap;}\n.color-dot-rd{display:flex;align-items:center;gap:8px;background:#F5F5F5;border:1.5px solid #E6E6E6;border-radius:8px;padding:7px 14px;font-size:13px;font-weight:600;color:#0B0B0B;}\n.color-circle-rd{width:16px;height:16px;border-radius:50%;flex-shrink:0;border:1px solid rgba(0,0,0,0.1);}\n.c-black-rd{background:#0B0B0B;}\n.c-navy-rd{background:#1E3A5F;}\n.c-lightgray-rd{background:#C8C8C8;}\n.c-darkgray-rd{background:#4A4A4A;}\n.c-beige-rd{background:#D4B896;}\n.price-block-rd{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:28px;}\n.price-main-rd{font-size:50px;font-weight:900;color:#0B0B0B;}\n.cta-btn-rd{display:block;width:100%;max-width:480px;background:#C9A84C;color:#0B0B0B;font-size:17px;font-weight:800;text-align:center;padding:18px 24px;border-radius:12px;border:none;cursor:pointer;margin-bottom:12px;text-decoration:none;transition:background 0.2s,transform 0.2s;}\n.cta-btn-rd:hover{background:#A8893E;transform:translateY(-2px);}\n.cta-sub-rd{font-size:13px;color:#4A4A4A;margin-bottom:48px;}\n.cta-sub-rd span{color:#C9A84C;font-weight:600;}\n.divider-rd{border:none;border-top:1px solid #E6E6E6;margin:38px 0;}\n.section-label-rd{font-size:11px;font-weight:700;letter-spacing:2.5px;text-transform:uppercase;color:#C9A84C;margin-bottom:20px;}\n.features-grid-rd{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:40px;}\n@media(max-width:480px){.features-grid-rd{grid-template-columns:1fr;}}\n.feature-item-rd{background:#F5F5F5;border:1px solid #E6E6E6;border-radius:12px;padding:16px 18px;display:flex;align-items:center;gap:12px;transition:border-color 0.2s;}\n.feature-item-rd:hover{border-color:#C9A84C;}\n.feature-icon-rd{font-size:22px;flex-shrink:0;}\n.feature-name-rd{font-size:14px;font-weight:700;color:#0B0B0B;margin-bottom:2px;}\n.feature-desc-rd{font-size:12px;color:#4A4A4A;}\n.benefits-rd{display:flex;flex-direction:column;gap:14px;margin-bottom:40px;}\n.benefit-rd{display:flex;align-items:flex-start;gap:14px;background:#F5F5F5;border-left:3px solid #C9A84C;border-radius:0 12px 12px 0;padding:16px 18px;}\n.benefit-icon-rd{font-size:20px;flex-shrink:0;margin-top:1px;}\n.benefit-title-rd{font-size:15px;font-weight:700;color:#0B0B0B;margin-bottom:3px;}\n.benefit-desc-rd{font-size:13px;color:#4A4A4A;line-height:1.5;}\n.sports-tags-rd{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px;margin-bottom:40px;}\n.sport-tag-rd{background:#F5F5F5;border:1px solid #E6E6E6;color:#0B0B0B;font-size:14px;font-weight:600;padding:8px 16px;border-radius:8px;}\n.urgency-bar-rd{background:#F5F5F5;border:1px solid #E6E6E6;border-radius:12px;padding:20px 22px;display:flex;flex-direction:column;gap:10px;margin-bottom:32px;}\n.urgency-row-rd{display:flex;align-items:center;gap:10px;font-size:14px;color:#4A4A4A;}\n.dot-rd{width:8px;height:8px;border-radius:50%;flex-shrink:0;}\n.dot-blue-rd{background:#C9A84C;}.dot-green-rd{background:#22c55e;}.dot-red-rd{background:#ef4444;}\n.prf-reviews-rd{width:100%;max-width:820px;margin:0 auto 40px auto;box-sizing:border-box;}\n.prf-reviews-rd__header{text-align:center;margin-bottom:24px;}\n.prf-reviews-rd__label{display:inline-block;background:#C9A84C;color:#000;font-size:11px;font-weight:800;letter-spacing:2px;text-transform:uppercase;padding:6px 16px;border-radius:30px;margin-bottom:12px;}\n.prf-reviews-rd__title{font-size:20px;font-weight:900;color:#0B0B0B;margin-bottom:6px;text-transform:uppercase;letter-spacing:1px;}\n.prf-reviews-rd__subtitle{font-size:14px;color:#666;}\n.prf-reviews-rd__global{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:10px;flex-wrap:wrap;}\n.prf-reviews-rd__global-stars{color:#C9A84C;font-size:20px;letter-spacing:2px;}\n.prf-reviews-rd__global-score{font-size:17px;font-weight:800;color:#0B0B0B;}\n.prf-reviews-rd__global-count{font-size:13px;color:#888;}\n.prf-carousel-outer-rd{overflow:hidden;width:100%;}\n.prf-carousel__track-rd{display:flex;gap:16px;transition:transform 0.45s cubic-bezier(0.4,0,0.2,1);will-change:transform;}\n.prf-card-rd{background:#0d0d0d;border:1px solid rgba(201,168,76,0.25);border-radius:14px;padding:22px 18px;box-sizing:border-box;flex-shrink:0;}\n.prf-card-rd:hover{border-color:#C9A84C;box-shadow:0 4px 24px rgba(201,168,76,0.12);}\n.prf-card-rd__stars{color:#C9A84C;font-size:17px;letter-spacing:2px;margin-bottom:10px;}\n.prf-card-rd__title{font-size:15px;font-weight:800;color:#fff;margin-bottom:8px;line-height:1.3;}\n.prf-card-rd__text{font-size:13px;color:#bbb;line-height:1.7;margin-bottom:14px;word-break:break-word;}\n.prf-card-rd__photos{display:flex;gap:8px;margin-bottom:16px;}\n.prf-card-rd__photo{width:70px;height:70px;object-fit:cover;border-radius:8px;border:1px solid rgba(201,168,76,0.2);cursor:pointer;transition:border-color 0.2s;}\n.prf-card-rd__photo:hover{border-color:#C9A84C;}\n.prf-card-rd__author{display:flex;align-items:center;gap:10px;}\n.prf-card-rd__avatar{width:40px;height:40px;border-radius:50%;background:#C9A84C;display:flex;align-items:center;justify-content:center;font-size:15px;font-weight:800;color:#000;flex-shrink:0;}\n.prf-card-rd__name{font-size:13px;font-weight:700;color:#fff;}\n.prf-card-rd__product-tag{font-size:11px;color:#C9A84C;margin-top:2px;}\n.prf-verified-rd{color:#C9A84C;font-size:11px;font-weight:600;margin-top:2px;}\n.prf-carousel__controls-rd{display:flex;align-items:center;justify-content:center;gap:14px;margin-top:22px;}\n.prf-btn-rd{width:42px;height:42px;border-radius:50%;border:1.5px solid rgba(201,168,76,0.4);background:#0d0d0d;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:17px;color:#C9A84C;transition:all 0.2s;}\n.prf-btn-rd:hover{background:#C9A84C;color:#000;border-color:#C9A84C;}\n.prf-dots-rd{display:flex;gap:8px;align-items:center;}\n.prf-dot-rd{width:8px;height:8px;border-radius:50%;background:#333;cursor:pointer;transition:all 0.2s;border:none;padding:0;}\n.prf-dot-rd.active{background:#C9A84C;width:22px;border-radius:4px;}\n.prf-progress-rd{height:2px;background:rgba(201,168,76,0.2);border-radius:2px;margin-top:16px;overflow:hidden;}\n.prf-progress-rd__bar{height:100%;background:#C9A84C;width:0%;border-radius:2px;transition:width linear;}\n.prf-lightbox-rd{display:none;position:fixed;inset:0;background:rgba(0,0,0,0.9);z-index:99999;align-items:center;justify-content:center;}\n.prf-lightbox-rd.open{display:flex;}\n.prf-lightbox-rd img{max-width:90vw;max-height:85vh;border-radius:12px;object-fit:contain;}\n.prf-lightbox-rd__close{position:absolute;top:20px;right:20px;background:none;border:none;color:#fff;font-size:32px;cursor:pointer;line-height:1;}\n\u003c\/style\u003e\n\n\u003cdiv class=\"wraprd\"\u003e\n\u003cdiv class=\"hero-badge-rd\"\u003e🏃 Short Running — 2-en-1 Technique\u003c\/div\u003e\n\u003ch1 class=\"hero-title-rd\"\u003eRun Dual™\u003cbr\u003e\u003cspan\u003eDouble couche. Performance totale.\u003c\/span\u003e\n\u003c\/h1\u003e\n\u003cp class=\"hero-subtitle-rd\"\u003eLe short technique pensé pour le running et la salle. Construction 2-en-1 double couche, séchage ultra-rapide, 3 poches — tout ce qu'il faut pour un entraînement sans contrainte.\u003c\/p\u003e\n\u003cdiv class=\"colors-section-rd\"\u003e\n\u003cdiv class=\"colors-label-rd\"\u003eColoris disponibles :\u003c\/div\u003e\n\u003cdiv class=\"colors-wrap-rd\"\u003e\n\u003cdiv class=\"color-dot-rd\"\u003e\n\u003cspan class=\"color-circle-rd c-black-rd\"\u003e\u003c\/span\u003e Noir\u003c\/div\u003e\n\u003cdiv class=\"color-dot-rd\"\u003e\n\u003cspan class=\"color-circle-rd c-navy-rd\"\u003e\u003c\/span\u003e Bleu Marine\u003c\/div\u003e\n\u003cdiv class=\"color-dot-rd\"\u003e\n\u003cspan class=\"color-circle-rd c-lightgray-rd\"\u003e\u003c\/span\u003e Gris Clair\u003c\/div\u003e\n\u003cdiv class=\"color-dot-rd\"\u003e\n\u003cspan class=\"color-circle-rd c-darkgray-rd\"\u003e\u003c\/span\u003e Gris Foncé\u003c\/div\u003e\n\u003cdiv class=\"color-dot-rd\"\u003e\n\u003cspan class=\"color-circle-rd c-beige-rd\"\u003e\u003c\/span\u003e Beige\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"price-block-rd\"\u003e\u003cspan class=\"price-main-rd\"\u003e24,90€\u003c\/span\u003e\u003c\/div\u003e\n\u003ca class=\"cta-btn-rd\" href=\"#\"\u003e🛒 Commander mon Run Dual™\u003c\/a\u003e\n\u003cp class=\"cta-sub-rd\"\u003e\u003cspan\u003e✓ Livraison rapide suivie\u003c\/span\u003e · \u003cspan\u003e✓ Paiement 100% sécurisé\u003c\/span\u003e · Stock limité\u003c\/p\u003e\n\u003chr class=\"divider-rd\"\u003e\n\u003cp class=\"section-label-rd\"\u003e⚙️ Caractéristiques\u003c\/p\u003e\n\u003cdiv class=\"features-grid-rd\"\u003e\n\u003cdiv class=\"feature-item-rd\"\u003e\n\u003cspan class=\"feature-icon-rd\"\u003e🔢\u003c\/span\u003e\u003cdiv\u003e\n\u003cdiv class=\"feature-name-rd\"\u003eDesign 2-en-1\u003c\/div\u003e\n\u003cdiv class=\"feature-desc-rd\"\u003eCouche intérieure + short extérieur intégrés\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"feature-item-rd\"\u003e\n\u003cspan class=\"feature-icon-rd\"\u003e💨\u003c\/span\u003e\u003cdiv\u003e\n\u003cdiv class=\"feature-name-rd\"\u003eSéchage ultra-rapide\u003c\/div\u003e\n\u003cdiv class=\"feature-desc-rd\"\u003ePolyester technique haute performance\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"feature-item-rd\"\u003e\n\u003cspan class=\"feature-icon-rd\"\u003e🏃\u003c\/span\u003e\u003cdiv\u003e\n\u003cdiv class=\"feature-name-rd\"\u003eCoupe running\u003c\/div\u003e\n\u003cdiv class=\"feature-desc-rd\"\u003eLiberté de mouvement totale\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"feature-item-rd\"\u003e\n\u003cspan class=\"feature-icon-rd\"\u003e🎽\u003c\/span\u003e\u003cdiv\u003e\n\u003cdiv class=\"feature-name-rd\"\u003eDouble couche\u003c\/div\u003e\n\u003cdiv class=\"feature-desc-rd\"\u003eMaintien et confort pendant l'effort\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"feature-item-rd\"\u003e\n\u003cspan class=\"feature-icon-rd\"\u003e📱\u003c\/span\u003e\u003cdiv\u003e\n\u003cdiv class=\"feature-name-rd\"\u003ePoche latérale zippée\u003c\/div\u003e\n\u003cdiv class=\"feature-desc-rd\"\u003eGrande poche pour téléphone, fermeture éclair sécurisée\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"feature-item-rd\"\u003e\n\u003cspan class=\"feature-icon-rd\"\u003e🔑\u003c\/span\u003e\u003cdiv\u003e\n\u003cdiv class=\"feature-name-rd\"\u003ePoche arrière zippée\u003c\/div\u003e\n\u003cdiv class=\"feature-desc-rd\"\u003ePour clés ou gel énergétique pendant le run\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"feature-item-rd\"\u003e\n\u003cspan class=\"feature-icon-rd\"\u003e🩲\u003c\/span\u003e\u003cdiv\u003e\n\u003cdiv class=\"feature-name-rd\"\u003ePoche intérieure\u003c\/div\u003e\n\u003cdiv class=\"feature-desc-rd\"\u003ePoche discrète intégrée sur la couche interne\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"feature-item-rd\"\u003e\n\u003cspan class=\"feature-icon-rd\"\u003e🎨\u003c\/span\u003e\u003cdiv\u003e\n\u003cdiv class=\"feature-name-rd\"\u003e5 coloris disponibles\u003c\/div\u003e\n\u003cdiv class=\"feature-desc-rd\"\u003eNoir • Bleu Marine • Gris Clair • Gris Foncé • Beige\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003chr class=\"divider-rd\"\u003e\n\u003cp class=\"section-label-rd\"\u003e💪 Pourquoi le Run Dual™\u003c\/p\u003e\n\u003cdiv class=\"benefits-rd\"\u003e\n\u003cdiv class=\"benefit-rd\"\u003e\n\u003cspan class=\"benefit-icon-rd\"\u003e🔢\u003c\/span\u003e\u003cdiv\u003e\n\u003cdiv class=\"benefit-title-rd\"\u003e2-en-1 : le confort du slip, la liberté du short\u003c\/div\u003e\n\u003cdiv class=\"benefit-desc-rd\"\u003eLa couche intérieure assure le maintien sans friction, la couche extérieure donne le style. Un seul short, zéro compromis.\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"benefit-rd\"\u003e\n\u003cspan class=\"benefit-icon-rd\"\u003e💧\u003c\/span\u003e\u003cdiv\u003e\n\u003cdiv class=\"benefit-title-rd\"\u003eSéchage en quelques minutes\u003c\/div\u003e\n\u003cdiv class=\"benefit-desc-rd\"\u003eLe Polyester technique évacue la transpiration rapidement — tu restes au sec et confortable même en plein effort intense.\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"benefit-rd\"\u003e\n\u003cspan class=\"benefit-icon-rd\"\u003e📱\u003c\/span\u003e\u003cdiv\u003e\n\u003cdiv class=\"benefit-title-rd\"\u003e3 poches pour tout emporter\u003c\/div\u003e\n\u003cdiv class=\"benefit-desc-rd\"\u003ePoche latérale zippée pour le téléphone, poche arrière zippée pour les clés, et poche intérieure discrète sur la couche interne — rien ne bouge pendant l'effort.\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"benefit-rd\"\u003e\n\u003cspan class=\"benefit-icon-rd\"\u003e💰\u003c\/span\u003e\u003cdiv\u003e\n\u003cdiv class=\"benefit-title-rd\"\u003eQualité premium, prix accessible\u003c\/div\u003e\n\u003cdiv class=\"benefit-desc-rd\"\u003eLe rapport qualité-prix que tu ne trouves pas chez les grandes marques. Le calcul est simple.\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003chr class=\"divider-rd\"\u003e\n\u003cp class=\"section-label-rd\"\u003e🎯 Idéal pour\u003c\/p\u003e\n\u003cdiv class=\"sports-tags-rd\"\u003e\n\u003cspan class=\"sport-tag-rd\"\u003e🏃 Running\u003c\/span\u003e\n\u003cspan class=\"sport-tag-rd\"\u003e🏋️ Musculation\u003c\/span\u003e\n\u003cspan class=\"sport-tag-rd\"\u003e⚽ Fitness\u003c\/span\u003e\n\u003cspan class=\"sport-tag-rd\"\u003e🚴 Vélo\u003c\/span\u003e\n\u003cspan class=\"sport-tag-rd\"\u003e🥊 Boxe\u003c\/span\u003e\n\u003cspan class=\"sport-tag-rd\"\u003e🎾 Padel\u003c\/span\u003e\n\u003c\/div\u003e\n\u003chr class=\"divider-rd\"\u003e\n\u003csection class=\"prf-reviews-rd\"\u003e\n\u003cdiv class=\"prf-reviews-rd__header\"\u003e\n\u003cdiv class=\"prf-reviews-rd__label\"\u003e⭐ Avis clients\u003c\/div\u003e\n\u003ch2 class=\"prf-reviews-rd__title\"\u003eCe qu'ils disent du Run Dual™\u003c\/h2\u003e\n\u003cp class=\"prf-reviews-rd__subtitle\"\u003eDes sportifs qui l'ont testé pour toi\u003c\/p\u003e\n\u003cdiv class=\"prf-reviews-rd__global\"\u003e\n\u003cspan class=\"prf-reviews-rd__global-stars\"\u003e★★★★★\u003c\/span\u003e\n\u003cspan class=\"prf-reviews-rd__global-score\"\u003e5.0\u003c\/span\u003e\n\u003cspan class=\"prf-reviews-rd__global-count\"\u003e· 5 avis vérifiés\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"prf-carousel-outer-rd\" id=\"prfOuterRd\"\u003e\n\u003cdiv class=\"prf-carousel__track-rd\" id=\"prfTrackRd\"\u003e\n\u003cdiv class=\"prf-card-rd\"\u003e\n\u003cdiv class=\"prf-card-rd__stars\"\u003e★★★★★\u003c\/div\u003e\n\u003cdiv class=\"prf-card-rd__title\"\u003eMeilleur short pour son prix\u003c\/div\u003e\n\u003cp class=\"prf-card-rd__text\"\u003eTrès satisfait de l'achat. Qualité excellente, a largement dépassé mes attentes. Le service de la commande à la livraison était impeccable. Je recommande vivement et je rachèterai sans hésiter.\u003c\/p\u003e\n\u003cdiv class=\"prf-card-rd__author\"\u003e\n\u003cdiv class=\"prf-card-rd__avatar\"\u003eL\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cdiv class=\"prf-card-rd__name\"\u003eLucas R.\u003c\/div\u003e\n\u003cdiv class=\"prf-card-rd__product-tag\"\u003eRun Dual™ — Noir L\u003c\/div\u003e\n\u003cdiv class=\"prf-verified-rd\"\u003e✓ Achat vérifié\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"prf-card-rd\"\u003e\n\u003cdiv class=\"prf-card-rd__stars\"\u003e★★★★★\u003c\/div\u003e\n\u003cdiv class=\"prf-card-rd__title\"\u003eLe meilleur pour son prix\u003c\/div\u003e\n\u003cp class=\"prf-card-rd__text\"\u003eAgréable à porter, le meilleur pour son prix. Livraison rapide et bien emballé. Taille parfaitement à la taille choisie et bonne matière. 100% recommandé.\u003c\/p\u003e\n\u003cdiv class=\"prf-card-rd__photos\"\u003e\n\u003cimg alt=\"Avis Run Dual 1\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0940\/2626\/8938\/files\/A2c0271b2c5c34cb98370d17778207a6eB_jpg_960x960q75_jpg.avif?v=1775489312\" class=\"prf-card-rd__photo\" width=\"70\" height=\"70\"\u003e\n\u003cimg alt=\"Avis Run Dual 2\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0940\/2626\/8938\/files\/A0b859bc9959d42f283fc4f889d56fa630_jpg_960x960q75_jpg.avif?v=1775489312\" class=\"prf-card-rd__photo\" width=\"70\" height=\"70\"\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"prf-card-rd__author\"\u003e\n\u003cdiv class=\"prf-card-rd__avatar\"\u003eT\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cdiv class=\"prf-card-rd__name\"\u003eThomas K.\u003c\/div\u003e\n\u003cdiv class=\"prf-card-rd__product-tag\"\u003eRun Dual™ — Bleu Marine XL\u003c\/div\u003e\n\u003cdiv class=\"prf-verified-rd\"\u003e✓ Achat vérifié\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"prf-card-rd\"\u003e\n\u003cdiv class=\"prf-card-rd__stars\"\u003e★★★★★\u003c\/div\u003e\n\u003cdiv class=\"prf-card-rd__title\"\u003eParfait pour le running — poche super pratique\u003c\/div\u003e\n\u003cp class=\"prf-card-rd__text\"\u003eCoupe parfaite (1m85, 75kg — taille L). Très confortable, léger, et la poche pour les clés est vraiment pratique en course. Vraiment parfait pour le running !\u003c\/p\u003e\n\u003cdiv class=\"prf-card-rd__photos\"\u003e\n\u003cimg alt=\"Avis Run Dual 3\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0940\/2626\/8938\/files\/Sdf0fb58b3fda4ff0a9871dca206725cb8_jpg_960x960q75_jpg.avif?v=1775489312\" class=\"prf-card-rd__photo\" width=\"70\" height=\"70\"\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"prf-card-rd__author\"\u003e\n\u003cdiv class=\"prf-card-rd__avatar\"\u003eM\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cdiv class=\"prf-card-rd__name\"\u003eMathieu S.\u003c\/div\u003e\n\u003cdiv class=\"prf-card-rd__product-tag\"\u003eRun Dual™ — Gris Foncé L\u003c\/div\u003e\n\u003cdiv class=\"prf-verified-rd\"\u003e✓ Achat vérifié\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"prf-card-rd\"\u003e\n\u003cdiv class=\"prf-card-rd__stars\"\u003e★★★★★\u003c\/div\u003e\n\u003cdiv class=\"prf-card-rd__title\"\u003eLivraison rapide, confort excellent\u003c\/div\u003e\n\u003cp class=\"prf-card-rd__text\"\u003eParfait, conforme à la description. Livraison rapide et bien emballé. Confort excellent à l'usage — je suis très satisfait de cet achat.\u003c\/p\u003e\n\u003cdiv class=\"prf-card-rd__photos\"\u003e\n\u003cimg alt=\"Avis Run Dual 4\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0940\/2626\/8938\/files\/A76704be1916448259a17d1edc0d9c4ed9_jpg_960x960q75_jpg.avif?v=1775489312\" class=\"prf-card-rd__photo\" width=\"70\" height=\"70\"\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"prf-card-rd__author\"\u003e\n\u003cdiv class=\"prf-card-rd__avatar\"\u003eA\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cdiv class=\"prf-card-rd__name\"\u003eAntoine B.\u003c\/div\u003e\n\u003cdiv class=\"prf-card-rd__product-tag\"\u003eRun Dual™ — Noir XL\u003c\/div\u003e\n\u003cdiv class=\"prf-verified-rd\"\u003e✓ Achat vérifié\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"prf-card-rd\"\u003e\n\u003cdiv class=\"prf-card-rd__stars\"\u003e★★★★★\u003c\/div\u003e\n\u003cdiv class=\"prf-card-rd__title\"\u003eQualité top, taille bien\u003c\/div\u003e\n\u003cp class=\"prf-card-rd__text\"\u003eShort de très bonne qualité, matière agréable et séchage rapide après l'effort. La double couche apporte un vrai confort supplémentaire. Je recommande.\u003c\/p\u003e\n\u003cdiv class=\"prf-card-rd__photos\"\u003e\n\u003cimg alt=\"Avis Run Dual 5\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0940\/2626\/8938\/files\/Afb0690a1c8604eeca052e8bd51affdf63_jpg_960x960q75_jpg.avif?v=1775489312\" class=\"prf-card-rd__photo\" width=\"70\" height=\"70\"\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"prf-card-rd__author\"\u003e\n\u003cdiv class=\"prf-card-rd__avatar\"\u003eK\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cdiv class=\"prf-card-rd__name\"\u003eKevin D.\u003c\/div\u003e\n\u003cdiv class=\"prf-card-rd__product-tag\"\u003eRun Dual™ — Beige M\u003c\/div\u003e\n\u003cdiv class=\"prf-verified-rd\"\u003e✓ Achat vérifié\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"prf-progress-rd\"\u003e\u003cdiv class=\"prf-progress-rd__bar\" id=\"prfBarRd\"\u003e\u003c\/div\u003e\u003c\/div\u003e\n\u003cdiv class=\"prf-carousel__controls-rd\"\u003e\n\u003cbutton class=\"prf-btn-rd\" id=\"prfPrevRd\" aria-label=\"Précédent\"\u003e←\u003c\/button\u003e\n\u003cdiv class=\"prf-dots-rd\" id=\"prfDotsRd\"\u003e\u003c\/div\u003e\n\u003cbutton class=\"prf-btn-rd\" id=\"prfNextRd\" aria-label=\"Suivant\"\u003e→\u003c\/button\u003e\n\u003c\/div\u003e\n\u003c\/section\u003e\n\u003cdiv class=\"prf-lightbox-rd\" id=\"prfLightboxRd\"\u003e\n\u003cbutton class=\"prf-lightbox-rd__close\" id=\"prfLbCloseRd\"\u003e✕\u003c\/button\u003e\n\u003cimg id=\"prfLightboxImgRd\" width=\"800\" height=\"800\" src=\"\" alt=\"Photo avis client\"\u003e\n\u003c\/div\u003e\n\u003chr class=\"divider-rd\"\u003e\n\u003cdiv class=\"urgency-bar-rd\"\u003e\n\u003cdiv class=\"urgency-row-rd\"\u003e\n\u003cspan class=\"dot-rd dot-red-rd\"\u003e\u003c\/span\u003e⚠️ Stock limité — quelques pièces restantes\u003c\/div\u003e\n\u003cdiv class=\"urgency-row-rd\"\u003e\n\u003cspan class=\"dot-rd dot-blue-rd\"\u003e\u003c\/span\u003e📦 Livraison rapide suivie dès expédition\u003c\/div\u003e\n\u003cdiv class=\"urgency-row-rd\"\u003e\n\u003cspan class=\"dot-rd dot-green-rd\"\u003e\u003c\/span\u003e🔒 Paiement 100% sécurisé\u003c\/div\u003e\n\u003c\/div\u003e\n\u003ca class=\"cta-btn-rd\" href=\"#\"\u003e🛒 Je prends mon Run Dual™ →\u003c\/a\u003e\n\u003c\/div\u003e\n\n\u003cscript\u003e\n(function() {\n  \/\/ --- GUIDE DES TAILLES ---\n  var gtBtn = document.getElementById('prfGtBtnRd');\n  var gtDrawer = document.getElementById('prfGtDrawerRd');\n  var gtOverlay = document.getElementById('prfGtOverlayRd');\n  var gtClose = document.getElementById('prfGtCloseRd');\n  if (gtBtn) {\n    function openGt() { gtDrawer.classList.add('open'); gtOverlay.classList.add('open'); document.body.style.overflow = 'hidden'; }\n    function closeGt() { gtDrawer.classList.remove('open'); gtOverlay.classList.remove('open'); document.body.style.overflow = ''; }\n    gtBtn.addEventListener('click', openGt);\n    gtClose.addEventListener('click', closeGt);\n    gtOverlay.addEventListener('click', closeGt);\n    var startYgt = 0;\n    gtDrawer.addEventListener('touchstart', function(e) { startYgt = e.touches[0].clientY; }, { passive: true });\n    gtDrawer.addEventListener('touchend', function(e) { if (e.changedTouches[0].clientY - startYgt \u003e 60) closeGt(); });\n  }\n\n  \/\/ --- CAROUSEL AVIS ---\n  var outer = document.getElementById('prfOuterRd');\n  var track = document.getElementById('prfTrackRd');\n  var prevBtn = document.getElementById('prfPrevRd');\n  var nextBtn = document.getElementById('prfNextRd');\n  var dotsWrap = document.getElementById('prfDotsRd');\n  var bar = document.getElementById('prfBarRd');\n  var lb = document.getElementById('prfLightboxRd');\n  var lbImg = document.getElementById('prfLightboxImgRd');\n  var lbClose = document.getElementById('prfLbCloseRd');\n  if (!outer) return;\n  var cards = Array.from(track.querySelectorAll('.prf-card-rd'));\n  var total = cards.length;\n  var DELAY = 3500;\n  var current = 0, autoInterval = null, barTimeout = null, perView = 1;\n\n  function setup() {\n    var outerW = outer.offsetWidth;\n    perView = outerW \u003e= 640 ? 2 : 1;\n    var cardW = perView === 1 ? outerW : (outerW - 16) \/ 2;\n    cards.forEach(function(c) { c.style.width = cardW + 'px'; });\n  }\n  function maxIdx() { return total - perView; }\n  function buildDots() {\n    dotsWrap.innerHTML = '';\n    for (var i = 0; i \u003c= maxIdx(); i++) {\n      var dot = document.createElement('button');\n      dot.className = 'prf-dot-rd' + (i === 0 ? ' active' : '');\n      dot.setAttribute('aria-label', 'Avis ' + (i + 1));\n      (function(idx) { dot.addEventListener('click', function() { goTo(idx); resetAuto(); }); })(i);\n      dotsWrap.appendChild(dot);\n    }\n  }\n  function getStep() { return cards[0].offsetWidth + 16; }\n  function goTo(index) {\n    current = Math.max(0, Math.min(index, maxIdx()));\n    track.style.transform = 'translateX(-' + (current * getStep()) + 'px)';\n    dotsWrap.querySelectorAll('.prf-dot-rd').forEach(function(d, i) { d.classList.toggle('active', i === current); });\n    if (bar) {\n      bar.style.transition = 'none'; bar.style.width = '0%';\n      clearTimeout(barTimeout);\n      barTimeout = setTimeout(function() { bar.style.transition = 'width ' + DELAY + 'ms linear'; bar.style.width = '100%'; }, 30);\n    }\n  }\n  prevBtn.addEventListener('click', function() { goTo(current - 1); resetAuto(); });\n  nextBtn.addEventListener('click', function() { goTo(current + 1); resetAuto(); });\n  function autoPlay() { autoInterval = setInterval(function() { goTo(current \u003e= maxIdx() ? 0 : current + 1); }, DELAY); }\n  function resetAuto() { clearInterval(autoInterval); autoPlay(); }\n  var startX = 0;\n  track.addEventListener('touchstart', function(e) { startX = e.touches[0].clientX; }, { passive: true });\n  track.addEventListener('touchend', function(e) {\n    var diff = startX - e.changedTouches[0].clientX;\n    if (Math.abs(diff) \u003e 40) { diff \u003e 0 ? goTo(current + 1) : goTo(current - 1); resetAuto(); }\n  });\n  setup(); buildDots(); goTo(0); autoPlay();\n  window.addEventListener('resize', function() { setup(); buildDots(); goTo(0); });\n\n  if (lb) {\n    track.addEventListener('click', function(e) {\n      var photo = e.target.closest('.prf-card-rd__photo');\n      if (photo) { lbImg.src = photo.src; lb.classList.add('open'); document.body.style.overflow = 'hidden'; }\n    });\n    lbClose.addEventListener('click', function() { lb.classList.remove('open'); document.body.style.overflow = ''; });\n    lb.addEventListener('click', function(e) { if (e.target === lb) { lb.classList.remove('open'); document.body.style.overflow = ''; } });\n  }\n})();\n\u003c\/script\u003e","brand":"PerfoRun","offers":[{"title":"Gris Clair \/ S","offer_id":52828071231754,"sku":"14:1052#light grey;5:100014064#S(50-60kg)","price":24.9,"currency_code":"EUR","in_stock":true},{"title":"Gris Clair \/ M","offer_id":52828071198986,"sku":"14:1052#light grey;5:361386#M(61-70kg)","price":24.9,"currency_code":"EUR","in_stock":true},{"title":"Gris Clair \/ L","offer_id":52828071166218,"sku":"14:1052#light grey;5:361385#L(71-80kg)","price":24.9,"currency_code":"EUR","in_stock":true},{"title":"Gris Clair \/ XL","offer_id":52828071133450,"sku":"14:1052#light grey;5:100014065#XL(81-90kg)","price":24.9,"currency_code":"EUR","in_stock":true},{"title":"Gris Clair \/ XXL","offer_id":52828071362826,"sku":"14:1052#light grey;5:4182#XXL(91-100kg)","price":24.9,"currency_code":"EUR","in_stock":true},{"title":"Beige \/ S","offer_id":52828071624970,"sku":"14:200001438#beige;5:100014064#S(50-60kg)","price":24.9,"currency_code":"EUR","in_stock":true},{"title":"Beige \/ M","offer_id":52828071592202,"sku":"14:200001438#beige;5:361386#M(61-70kg)","price":24.9,"currency_code":"EUR","in_stock":true},{"title":"Beige \/ L","offer_id":52828071821578,"sku":"14:200001438#beige;5:361385#L(71-80kg)","price":24.9,"currency_code":"EUR","in_stock":true},{"title":"Beige \/ XL","offer_id":52828071788810,"sku":"14:200001438#beige;5:100014065#XL(81-90kg)","price":24.9,"currency_code":"EUR","in_stock":true},{"title":"Beige \/ XXL","offer_id":52828071756042,"sku":"14:200001438#beige;5:4182#XXL(91-100kg)","price":24.9,"currency_code":"EUR","in_stock":true},{"title":"Bleu Marine \/ S","offer_id":52828072968458,"sku":"14:365458#navy blue;5:100014064#S(50-60kg)","price":24.9,"currency_code":"EUR","in_stock":true},{"title":"Bleu Marine \/ M","offer_id":52828072935690,"sku":"14:365458#navy blue;5:361386#M(61-70kg)","price":24.9,"currency_code":"EUR","in_stock":true},{"title":"Bleu Marine \/ L","offer_id":52828072902922,"sku":"14:365458#navy blue;5:361385#L(71-80kg)","price":24.9,"currency_code":"EUR","in_stock":true},{"title":"Bleu Marine \/ XL","offer_id":52828072083722,"sku":"14:365458#navy blue;5:100014065#XL(81-90kg)","price":24.9,"currency_code":"EUR","in_stock":true},{"title":"Bleu Marine \/ XXL","offer_id":52828072050954,"sku":"14:365458#navy blue;5:4182#XXL(91-100kg)","price":24.9,"currency_code":"EUR","in_stock":true},{"title":"Noir \/ S","offer_id":52828072509706,"sku":"14:193#all black;5:100014064#S(50-60kg)","price":24.9,"currency_code":"EUR","in_stock":true},{"title":"Noir \/ M","offer_id":52828072739082,"sku":"14:193#all black;5:361386#M(61-70kg)","price":24.9,"currency_code":"EUR","in_stock":true},{"title":"Noir \/ L","offer_id":52828072706314,"sku":"14:193#all black;5:361385#L(71-80kg)","price":24.9,"currency_code":"EUR","in_stock":true},{"title":"Noir \/ XL","offer_id":52828072673546,"sku":"14:193#all black;5:100014065#XL(81-90kg)","price":24.9,"currency_code":"EUR","in_stock":true},{"title":"Noir \/ XXL","offer_id":52828072640778,"sku":"14:193#all black;5:4182#XXL(91-100kg)","price":24.9,"currency_code":"EUR","in_stock":true},{"title":"Gris Foncé \/ S","offer_id":52828073066762,"sku":"14:771#dark grey;5:100014064#S(50-60kg)","price":24.9,"currency_code":"EUR","in_stock":true},{"title":"Gris Foncé \/ M","offer_id":52828073033994,"sku":"14:771#dark grey;5:361386#M(61-70kg)","price":24.9,"currency_code":"EUR","in_stock":true},{"title":"Gris Foncé \/ L","offer_id":52828072608010,"sku":"14:771#dark grey;5:361385#L(71-80kg)","price":24.9,"currency_code":"EUR","in_stock":true},{"title":"Gris Foncé \/ XL","offer_id":52828072575242,"sku":"14:771#dark grey;5:100014065#XL(81-90kg)","price":24.9,"currency_code":"EUR","in_stock":true},{"title":"Gris Foncé \/ XXL","offer_id":52828072542474,"sku":"14:771#dark grey;5:4182#XXL(91-100kg)","price":24.9,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0940\/2626\/8938\/files\/Design_sanhhgjhs_titre.jpg?v=1775503050","url":"https:\/\/perforun.store\/products\/new-mens-running-double-layer-shorts-quick-drying-fitness-2-in-1-shorts-mens-sports-workout-training-bodybuilding-shorts-male","provider":"PerfoRun","version":"1.0","type":"link"}