{"product_id":"renove-bois-pro","title":"Renove Bois Pro™","description":"\u003cbody\u003e\n\n\n  \u003cmeta charset=\"utf-8\"\u003e\n  \u003cmeta name=\"viewport\" content=\"width=device-width, initial-scale=1, maximum-scale=1, user-scalable=0, viewport-fit=cover\"\u003e\n  \u003ctitle\u003eATTENTION : Offre Secrète\u003c\/title\u003e\n\n  \u003c!-- Preload immagini per zero flickering --\u003e\n  \u003clink rel=\"preload\" as=\"image\" href=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0899\/7480\/0771\/files\/landing_rimuovi_graffi_legno_FR_5.webp?v=1790533081\"\u003e\n  \u003clink rel=\"preload\" as=\"image\" href=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0899\/7480\/0771\/files\/landing_rimuovi_graffi_legno_FR_3.webp?v=1790533081\"\u003e\n  \u003clink rel=\"preload\" as=\"image\" href=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0899\/7480\/0771\/files\/landing_rimuovi_graffi_legno_FR_4.webp?v=1790533081\"\u003e\n  \u003clink rel=\"preload\" as=\"image\" href=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0899\/7480\/0771\/files\/landing_rimuovi_graffi_legno_FR_2.webp?v=1790533080\"\u003e\n  \u003clink rel=\"preload\" as=\"image\" href=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0899\/7480\/0771\/files\/landing_rimuovi_graffi_legno_FR_1.webp?v=1790533080\"\u003e\n  \u003clink rel=\"preload\" as=\"image\" href=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0899\/7480\/0771\/files\/landing_rinnova_legno_hill_8.webp?v=1790514309\"\u003e\n  \u003clink rel=\"preload\" as=\"image\" href=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0899\/7480\/0771\/files\/landing_rinnova_legno_hill_6.webp?v=1790514308\"\u003e\n  \u003clink rel=\"preload\" as=\"image\" href=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0899\/7480\/0771\/files\/landing_rinnova_legno_hill_7.webp?v=1790514309\"\u003e\n  \u003clink rel=\"preload\" as=\"image\" href=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0899\/7480\/0771\/files\/landing_rinnova_legno_hill_5.webp?v=1790514310\"\u003e\n\n  \u003cstyle\u003e\n    \/* =========================================\n       RESET E BLOCCO SCROLL (solo per step 1-5)\n       ========================================= *\/\n    * { margin: 0; padding: 0; box-sizing: border-box; -webkit-tap-highlight-color: transparent; }\n    html, body { height: 100%; width: 100%; overflow: hidden; touch-action: manipulation; background-color: #000; font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif; }\n\n    \/* =========================================\n       CONTAINER APP\n       ========================================= *\/\n    .app {\n      position: fixed; inset: 0; max-width: 480px; margin: 0 auto;\n      background: #fff; overflow: hidden; box-shadow: 0 0 40px rgba(2,6,23,.12);\n      display: flex; flex-direction: column;\n    }\n\n    \/* =========================================\n       HEADER AGGRESSIVO\n       ========================================= *\/\n    .header {\n      background: #111827; padding: 12px 16px 8px 16px; flex-shrink: 0; z-index: 40;\n    }\n    .reserve {\n      display: flex; align-items: center; justify-content: center; gap: 8px;\n      background: #111827; color: #fbbf24; font-size: .78rem; font-weight: 800;\n      padding: 4px 0; letter-spacing: .5px; text-transform: uppercase;\n    }\n    .reserve svg { width: 14px; height: 14px; }\n    .reserve .t {\n      background: rgba(255,255,255,.1); border-radius: 6px; padding: 2px 7px;\n      font-variant-numeric: tabular-nums; font-weight: 900;\n    }\n    .progress-bar-bg { background: #374151; height: 10px; border-radius: 10px; overflow: hidden; margin: 6px 0; border: 1px solid #4b5563; }\n    .progress-bar-fill { background: #fbbf24; box-shadow: 0 0 10px #fbbf24; height: 100%; width: 16%; border-radius: 10px; transition: width .5s cubic-bezier(.22,1,.36,1); }\n    .step-text { font-size: .75rem; font-weight: 900; color: #fbbf24; text-transform: uppercase; letter-spacing: 1px; text-align: center; animation: blink 2s infinite; }\n    @keyframes blink { 50% { opacity: .5; } }\n\n    \/* =========================================\n       CONTENUTO SCORREVOLE (solo step 6)\n       ========================================= *\/\n    .content-area { flex: 1; position: relative; overflow: hidden; background: #fff; }\n    .screen {\n      position: absolute; top: 0; left: 0; right: 0; bottom: 0; padding: 0 16px;\n      display: none; flex-direction: column; align-items: center; justify-content: flex-start;\n      background: #fff; overflow-y: auto; -webkit-overflow-scrolling: touch;\n    }\n    .screen.active { display: flex; }\n    .stack {\n      width: 100%; max-width: 430px; display: flex; flex-direction: column;\n      align-items: center; text-align: center; gap: 14px; padding-top: 20px; padding-bottom: 30px;\n    }\n    #screen-6 .stack { padding-bottom: 180px; }\n\n    \/* Animazione entrata *\/\n    @keyframes smashIn { 0% { opacity: 0; transform: scale(.8); } 100% { opacity: 1; transform: scale(1); } }\n    .screen.active .stack \u003e * { animation: smashIn .4s cubic-bezier(.175,.885,.32,1.275) forwards; opacity: 0; }\n    .screen.active .stack \u003e *:nth-child(1) { animation-delay: .04s; }\n    .screen.active .stack \u003e *:nth-child(2) { animation-delay: .12s; }\n    .screen.active .stack \u003e *:nth-child(3) { animation-delay: .20s; }\n    .screen.active .stack \u003e *:nth-child(4) { animation-delay: .28s; }\n    .screen.active .stack \u003e *:nth-child(5) { animation-delay: .36s; }\n    .screen.active .stack \u003e *:nth-child(6) { animation-delay: .44s; }\n    .screen.active .stack \u003e *:nth-child(7) { animation-delay: .52s; }\n    .screen.active .stack \u003e *:nth-child(8) { animation-delay: .60s; }\n    .screen.active .stack \u003e *:nth-child(9) { animation-delay: .68s; }\n    .screen.active .stack \u003e *:nth-child(10) { animation-delay: .76s; }\n    @media (prefers-reduced-motion: reduce) { .screen.active .stack \u003e * { animation: none; opacity: 1; } }\n\n    \/* =========================================\n       TIPOGRAFIA AGGRESSIVA\n       ========================================= *\/\n    .hype-badge {\n      display: inline-block; background: #ef4444; color: #fff; padding: 5px 14px;\n      border-radius: 4px; font-size: .8rem; font-weight: 900; text-transform: uppercase;\n      margin-bottom: 6px; transform: rotate(-2deg); box-shadow: 0 2px 0 #b91c1c;\n    }\n    .hype-badge.green { background: #16a34a; box-shadow: 0 2px 0 #14532d; }\n    .hype-badge.black { background: #000; color: #fbbf24; box-shadow: 0 2px 0 #333; }\n\n    h1, h2 { font-size: clamp(1.5rem, 6vw, 1.9rem); font-weight: 900; line-height: 1.1; margin-bottom: 8px; color: #000; text-transform: uppercase; letter-spacing: -.5px; }\n    h2 mark, h1 mark { background: #fde047; color: #000; padding: 0 4px; }\n\n    .lead { font-size: 1.05rem; color: #1f2937; font-weight: 600; line-height: 1.35; max-width: 33ch; margin-bottom: 6px; }\n    .lead b { color: #000; }\n\n    .media { width: 100%; max-width: 340px; margin-bottom: 8px; text-align: center; }\n    .media img { width: 100%; height: auto; max-height: none; object-fit: contain; border-radius: 8px; border: 3px solid #ef4444; box-shadow: 0 8px 20px rgba(239,68,68,.2); display: block; }\n    .screen:not(#screen-6) .media img { width: auto; max-width: 100%; max-height: 40vh; margin: 0 auto; object-fit: contain; }\n\n    .media img.final-img { border: 3px solid #16a34a; box-shadow: 0 8px 20px rgba(22,163,74,.3); object-fit: contain; background: #f7f8fa; padding: 10px; border-radius: 12px; }\n\n    \/* =========================================\n       BOTTONI 3D AGGRESSIVI (BLU + ANIMAZIONI)\n       ========================================= *\/\n    .cta {\n      position: relative; display: block; width: 100%; max-width: 430px; border: 0;\n      cursor: pointer; overflow: hidden; background: linear-gradient(180deg, #3b82f6 0%, #2563eb 45%, #1d4ed8 100%);\n      color: #fff !important; font-weight: 900; font-size: 1.25rem; text-transform: uppercase;\n      letter-spacing: .5px; padding: 18px 20px; border-radius: 8px;\n      box-shadow: 0 2px 0 #1e3a8a, 0 6px 0 #1e3a8a, 0 8px 20px rgba(37,99,235,.4), inset 0 1px 0 rgba(255,255,255,.3);\n      transition: transform .08s ease, box-shadow .08s ease; text-decoration: none;\n      display: flex; flex-direction: column; align-items: center; justify-content: center;\n    }\n    .cta:active { transform: translateY(6px); box-shadow: 0 1px 0 #1e3a8a, 0 2px 8px rgba(37,99,235,.3), inset 0 1px 0 rgba(255,255,255,.3); }\n    .cta.green { background: linear-gradient(180deg, #4ade80 0%, #16a34a 45%, #15803d 100%); box-shadow: 0 2px 0 #15803d, 0 6px 0 #14532d, 0 8px 20px rgba(22,163,74,.4), inset 0 1px 0 rgba(255,255,255,.3); }\n    .cta.green:active { transform: translateY(6px); box-shadow: 0 1px 0 #15803d, 0 2px 8px rgba(22,163,74,.3), inset 0 1px 0 rgba(255,255,255,.3); }\n    .cta small { display: block; font-weight: 600; font-size: .8rem; opacity: .95; margin-top: 3px; text-transform: none; letter-spacing: 0; }\n    .cta::after { content: \"\"; position: absolute; top: 0; left: -60%; width: 40%; height: 100%; background: linear-gradient(100deg, transparent, rgba(255,255,255,.45), transparent); transform: skewX(-18deg); animation: shine 3.2s ease-in-out infinite; }\n    @keyframes shine { 0%,60% { left:-60%; } 100% { left:130%; } }\n    @keyframes pulse { 0%,100% { transform: scale(1); } 50% { transform: scale(1.015); } }\n    .cta.pulse { animation: pulse 1.8s ease-in-out infinite; }\n    @keyframes buzz { 0%,100% { transform: translateX(0) scale(1.02); } 15% { transform: translateX(-4px) scale(1.02); } 30% { transform: translateX(4px) scale(1.02); } 45% { transform: translateX(-3px) scale(1.02); } 60% { transform: translateX(3px) scale(1.02); } 75% { transform: translateX(-2px) scale(1.02); } }\n    .cta.buzz { animation: buzz .5s ease-in-out infinite; }\n\n    .micro { font-size: .76rem; color: #6b7280; font-weight: 600; margin-top: 2px; }\n    .micro b { color: #16a34a; }\n\n    \/* =========================================\n       RECENSIONI\n       ========================================= *\/\n    .rating { display: inline-flex; align-items: center; gap: 8px; font-weight: 800; }\n    .rating .stars { color: #fbbf24; letter-spacing: 1px; }\n    .rating .n { color: #6b7280; font-size: .85rem; font-weight: 600; }\n\n    .rev { border: 1px solid #e5e7eb; border-radius: 14px; padding: 13px 15px; text-align: left; width: 100%; box-shadow: 0 8px 22px rgba(2,6,23,.07); }\n    .rev .h { display: flex; justify-content: space-between; align-items: center; margin-bottom: 5px; }\n    .rev .name { font-weight: 800; font-size: .95rem; }\n    .rev .vf { font-size: .62rem; font-weight: 800; color: #047857; background: #ecfdf5; border-radius: 5px; padding: 2px 6px; text-transform: uppercase; }\n    .rev .stars { color: #fbbf24; font-size: .9rem; }\n    .rev p { font-size: .88rem; color: #6b7280; }\n    .rev p b { color: #111827; }\n    .rev .when { display: inline-flex; align-items: center; gap: 5px; font-size: .68rem; font-weight: 800; color: #047857; background: #ecfdf5; border-radius: 6px; padding: 2px 7px; margin: 4px 0 2px; }\n    .rev .when svg { width: 10px; height: 10px; }\n    .rev img { width: 100%; height: auto; max-height: none; object-fit: contain; border-radius: 10px; border: 1px solid #e5e7eb; display: block; margin-bottom: 9px; }\n    .rev-wall { width: 100%; display: flex; flex-direction: column; gap: 12px; align-items: stretch; }\n    .rev-wall .hype-badge { align-self: center; }\n\n    \/* =========================================\n       STEP 6 – OFFERTA COMPLETA\n       ========================================= *\/\n    .hero-offer { width: 100%; height: auto; max-height: none; object-fit: contain; background: #f7f8fa; border: 3px solid #16a34a; border-radius: 16px; padding: 10px; box-shadow: 0 8px 20px rgba(22,163,74,.2); display: block; }\n    .hero-duo { width: 100%; background: #f7f8fa; border: 3px solid #16a34a; border-radius: 16px; padding: 12px; box-shadow: 0 8px 20px rgba(22,163,74,.2); }\n    .hero-duo img { width: 100%; height: auto; max-height: none; object-fit: contain; display: block; margin-bottom: 8px; border-radius: 8px; }\n    .hero-duo img:last-child { margin-bottom: 0; }\n\n    \/* Scarsità *\/\n    .stock-top { width: 100%; background: #fff; border: 2px solid #fecaca; border-radius: 14px; padding: 14px 16px; display: flex; align-items: center; justify-content: space-between; gap: 12px; box-shadow: 0 4px 14px rgba(185,28,28,.08); transition: background .3s ease, border-color .3s ease; }\n    .stock-top .label { display: flex; flex-direction: column; gap: 2px; font-size: .88rem; font-weight: 800; color: #b91c1c; transition: color .3s ease, transform .3s ease; }\n    .stock-top .label svg { width: 20px; height: 20px; color: #b91c1c; flex: 0 0 auto; align-self: flex-start; }\n    .stock-top .label .main { font-size: .95rem; line-height: 1.15; }\n    .stock-top .label .sub { font-size: .68rem; font-weight: 700; color: #9a3412; text-transform: uppercase; letter-spacing: .5px; opacity: .8; }\n    .stock-top .label.urgent { color: #b91c1c; animation: pulseUrgent 1.2s ease-in-out infinite; }\n    .stock-top .label.urgent .main { font-size: 1.05rem; font-weight: 900; }\n    @keyframes pulseUrgent { 0%,100% { transform: scale(1); color: #b91c1c; } 50% { transform: scale(1.05); color: #7f1d1d; } }\n    .stock-top .num { display: flex; flex-direction: column; align-items: center; justify-content: center; min-width: 56px; height: 56px; padding: 0 12px; background: #fee2e2; color: #b91c1c; border: 1px solid #fca5a5; border-radius: 12px; transition: background .3s ease, transform .25s ease; }\n    .stock-top .num .count { font-size: 1.75rem; font-weight: 900; font-variant-numeric: tabular-nums; letter-spacing: -.5px; line-height: 1; }\n    .stock-top .num .unit { font-size: .62rem; font-weight: 700; text-transform: uppercase; letter-spacing: .5px; color: #9a3412; margin-top: 2px; }\n    @keyframes stockFlash { 0% { background: #fee2e2; transform: scale(1); } 30% { background: #fca5a5; transform: scale(1.1); } 60% { background: #fecaca; transform: scale(1.05); } 100% { background: #fff; transform: scale(1); } }\n    .stock-top.flash { animation: stockFlash .7s ease-out; border-color: #f87171; }\n\n    .price-card { width: 100%; background: #fff; border: 1px solid #e5e7eb; border-radius: 20px; box-shadow: 0 12px 34px rgba(2,6,23,.1); padding: 20px 18px; text-align: center; }\n    .tag-today { display: inline-block; background: #fee2e2; color: #b91c1c; font-weight: 800; font-size: .7rem; letter-spacing: .7px; text-transform: uppercase; padding: 4px 11px; border-radius: 999px; }\n    .price-card .prod { font-size: 1.16rem; font-weight: 800; color: #111827; margin-top: 12px; line-height: 1.22; }\n    .price-row { display: flex; align-items: baseline; justify-content: center; gap: 12px; margin-top: 10px; }\n    .price-row .now { font-size: 3.5rem; font-weight: 900; color: #111827; line-height: 1; letter-spacing: -1.5px; font-variant-numeric: tabular-nums; }\n    .price-row .old { font-size: 1.2rem; color: #ef4444; text-decoration: line-through; font-weight: 900; }\n    .price-sub { color: #047857; font-weight: 900; font-size: 1rem; margin-top: 8px; text-transform: uppercase; letter-spacing: .5px; }\n    .active-badge { display: inline-flex; align-items: center; gap: 8px; margin-top: 14px; background: #ecfdf5; color: #047857; border: 1px solid #a7f3d0; border-radius: 999px; padding: 7px 14px; font-weight: 800; font-size: .72rem; letter-spacing: .5px; text-transform: uppercase; }\n    .active-badge .dot { width: 9px; height: 9px; border-radius: 50%; background: #22c55e; animation: ping 1.7s ease-out infinite; }\n    @keyframes ping { 0% { box-shadow: 0 0 0 0 rgba(34,197,94,.55); } 70% { box-shadow: 0 0 0 8px rgba(34,197,94,0); } 100% { box-shadow: 0 0 0 0 rgba(34,197,94,0); } }\n\n    \/* Delivery Box *\/\n    .delivery-box { width: 100%; background: linear-gradient(180deg, #f0f9ff 0%, #f8fafc 100%); border: 1px solid #bae6fd; border-radius: 18px; padding: 18px 16px; display: flex; align-items: flex-start; gap: 14px; box-shadow: 0 6px 18px rgba(2,132,199,.08), inset 0 0 0 1px rgba(255,255,255,.7); }\n    .delivery-box .truck { flex: 0 0 auto; width: 44px; height: 44px; border-radius: 12px; background: linear-gradient(135deg, #0ea5e9, #0284c7); display: flex; align-items: center; justify-content: center; box-shadow: 0 4px 10px rgba(14,165,233,.35); }\n    .delivery-box .truck svg { width: 24px; height: 24px; color: #fff; }\n    .delivery-box .info { flex: 1; display: flex; flex-direction: column; gap: 6px; text-align: left; }\n    .delivery-box .line1 { font-size: .94rem; font-weight: 900; color: #0c4a6e; line-height: 1.25; letter-spacing: -.2px; display: flex; align-items: center; gap: 6px; }\n    .delivery-box .line1 .check { display: inline-flex; align-items: center; justify-content: center; width: 16px; height: 16px; border-radius: 50%; background: #10b981; color: #fff; flex: 0 0 auto; }\n    .delivery-box .line1 .check svg { width: 10px; height: 10px; }\n    .delivery-box .line2 { font-size: .98rem; font-weight: 800; color: #111827; line-height: 1.35; }\n    .delivery-box .line2 .date { color: #047857; font-weight: 900; }\n    .delivery-box .line3 { font-size: .78rem; font-weight: 600; color: #475569; line-height: 1.35; padding-top: 4px; border-top: 1px dashed #cbd5e1; margin-top: 2px; }\n\n    .scrollcue { display: flex; flex-direction: column; align-items: center; gap: 1px; color: #6b7280; font-size: .66rem; font-weight: 800; letter-spacing: 2px; text-transform: uppercase; animation: bob 1.5s ease-in-out infinite; margin: -4px 0; }\n    .scrollcue .arr { font-size: 1rem; letter-spacing: 0; color: #6b7280; }\n    .scrollcue .arr svg { width: 16px; height: 16px; }\n    @keyframes bob { 0%,100% { transform: translateY(0); } 50% { transform: translateY(6px); } }\n\n    .olist { list-style: none; width: 100%; text-align: left; background: #fff; border: 1px solid #e5e7eb; border-radius: 16px; padding: 6px 16px; box-shadow: 0 8px 22px rgba(2,6,23,.07); }\n    .olist li { display: flex; gap: 10px; align-items: flex-start; padding: 10px 0; border-bottom: 1px solid #f1f5f9; font-size: .88rem; font-weight: 500; color: #374151; }\n    .olist li:last-child { border-bottom: 0; }\n    .olist .ck { color: #16a34a; font-weight: 900; flex: 0 0 auto; font-size: 1rem; line-height: 1.2; }\n    .olist b { color: #111827; font-weight: 800; }\n    .val { color: #b91c1c; font-weight: 800; }\n\n    .cod-card { width: 100%; background: #f0fdf4; border: 1px solid #bbf7d0; border-radius: 16px; padding: 15px 16px; text-align: left; }\n    .cod-card .big { display: flex; align-items: center; gap: 10px; font-weight: 800; font-size: 1.02rem; color: #047857; }\n    .cod-card .big svg { width: 22px; height: 22px; flex: 0 0 auto; }\n    .cod-card ul { list-style: none; margin-top: 9px; display: flex; flex-direction: column; gap: 6px; }\n    .cod-card li { font-size: .84rem; color: #166534; font-weight: 500; display: flex; gap: 8px; align-items: flex-start; }\n    .cod-card li b { color: #047857; font-weight: 800; }\n    .cod-card li .ck { color: #16a34a; font-weight: 900; flex: 0 0 auto; }\n\n    .trust-icons { display: flex; flex-wrap: wrap; justify-content: center; gap: 14px; padding: 2px 0 4px; }\n    .trust-icons .ti { display: flex; flex-direction: column; align-items: center; gap: 4px; font-size: .66rem; font-weight: 700; color: #6b7280; width: 66px; }\n    .trust-icons svg { width: 22px; height: 22px; color: #16a34a; }\n\n    \/* =========================================\n       STICKY BAR + HELP POINTER\n       ========================================= *\/\n    #buyBar { position: absolute; left: 0; right: 0; bottom: 0; z-index: 46; display: none; background: rgba(255,255,255,.98); backdrop-filter: saturate(180%) blur(12px); -webkit-backdrop-filter: saturate(180%) blur(12px); border-top: 1px solid #e5e7eb; box-shadow: 0 -10px 30px rgba(2,6,23,.10); padding: 12px 14px calc(12px + env(safe-area-inset-bottom)); }\n    #buyBar.show { display: block; }\n    #buyBar .cta { margin: 0; }\n    .arrival-info { display: flex; align-items: center; justify-content: center; gap: 8px; font-size: .92rem; font-weight: 800; color: #111827; margin-bottom: 10px; padding: 8px 12px; background: #f0fdf4; border: 1px solid #bbf7d0; border-radius: 10px; }\n    .arrival-info svg { width: 18px; height: 18px; color: #16a34a; flex: 0 0 auto; }\n    .arrival-info b { color: #047857; font-weight: 900; }\n    .help-pointer { position: absolute; bottom: calc(100% + 10px); left: 50%; transform: translateX(-50%); display: none; background: #fff; border: 2px solid #2563eb; color: #1d4ed8; padding: 10px 16px; border-radius: 10px; font-size: .88rem; font-weight: 800; white-space: nowrap; box-shadow: 0 8px 22px rgba(37,99,235,.25); z-index: 47; align-items: center; gap: 8px; }\n    .help-pointer.show { display: flex; animation: bouncePointer 1.4s ease-in-out infinite; }\n    .help-pointer svg { width: 18px; height: 18px; flex: 0 0 auto; animation: pointDown 1s ease-in-out infinite; }\n    .help-pointer::after { content: ''; position: absolute; bottom: -9px; left: 50%; transform: translateX(-50%); width: 0; height: 0; border-left: 9px solid transparent; border-right: 9px solid transparent; border-top: 9px solid #2563eb; }\n    @keyframes bouncePointer { 0%,100% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-6px); } }\n    @keyframes pointDown { 0%,100% { transform: translateY(0); } 50% { transform: translateY(3px); } }\n\n    \/* =========================================\n       INTERSTITIAL 2.0\n       ========================================= *\/\n    #inter { position: absolute; inset: 0; z-index: 60; background: #0f172a; display: none; flex-direction: column; align-items: center; justify-content: center; gap: 24px; padding: 28px; color: #e2e8f0; }\n    #inter.show { display: flex; }\n    #inter .terminal { width: 100%; max-width: 380px; background: #1e293b; border: 1px solid #334155; border-radius: 14px; padding: 22px 20px; box-shadow: 0 20px 50px rgba(0,0,0,.5), inset 0 1px 0 rgba(255,255,255,.05); }\n    #inter .term-head { display: flex; align-items: center; gap: 6px; margin-bottom: 14px; padding-bottom: 10px; border-bottom: 1px solid #334155; }\n    #inter .term-head .d { width: 10px; height: 10px; border-radius: 50%; }\n    #inter .term-head .d.r { background: #ef4444; }\n    #inter .term-head .d.y { background: #eab308; }\n    #inter .term-head .d.g { background: #22c55e; }\n    #inter .term-head span { font-size: .68rem; color: #64748b; font-weight: 700; letter-spacing: 1px; text-transform: uppercase; margin-left: auto; }\n    #inter .txt { font-size: 1rem; font-weight: 800; color: #f1f5f9; text-align: left; font-family: 'SF Mono', Consolas, Menlo, monospace; min-height: 1.5em; line-height: 1.4; transition: color .3s ease; }\n    #inter .txt.ok { color: #4ade80; }\n    #inter .txt .cursor { display: inline-block; width: 9px; height: 1.1em; background: #94a3b8; vertical-align: text-bottom; margin-left: 2px; animation: blink 1s steps(1) infinite; }\n    @keyframes blink { 50% { opacity: 0; } }\n    #inter .bar { width: 100%; height: 10px; background: #0f172a; border-radius: 999px; overflow: hidden; margin-top: 16px; border: 1px solid #334155; }\n    #inter .bar \u003e i { display: block; height: 100%; width: 0%; background: linear-gradient(90deg, #3b82f6, #22c55e); border-radius: 999px; transition: width .8s cubic-bezier(.22,1,.36,1), background .5s ease; position: relative; }\n    #inter .bar \u003e i::after { content: \"\"; position: absolute; inset: 0; background: linear-gradient(90deg, transparent, rgba(255,255,255,.35), transparent); animation: shine 1.8s linear infinite; }\n    #inter .bar \u003e i.done { background: linear-gradient(90deg, #22c55e, #16a34a); }\n    #inter .phase { display: flex; justify-content: space-between; align-items: center; margin-top: 12px; font-size: .7rem; font-weight: 700; color: #64748b; letter-spacing: .5px; font-family: 'SF Mono', Consolas, Menlo, monospace; }\n    #inter .phase b { color: #94a3b8; font-variant-numeric: tabular-nums; }\n\n    \/* =========================================\n       RESPONSIVE PER ALTEZZE BASSE\n       ========================================= *\/\n    @media (max-height: 720px) {\n      .screen { padding: 0 12px; }\n      .stack { gap: 10px; padding-top: 12px; }\n      .media img { max-height: none; }\n      h1, h2 { font-size: 1.4rem; }\n      .lead { font-size: .95rem; }\n      .cta { font-size: 1.05rem; padding: 14px 18px; }\n      .price-row .now { font-size: 3rem; }\n      .delivery-box { padding: 14px 14px; }\n      .stock-top .label .main { font-size: .88rem; }\n      .stock-top .num { min-width: 48px; height: 48px; }\n      .stock-top .num .count { font-size: 1.4rem; }\n      #screen-6 .stack { padding-bottom: 160px; }\n      .hero-duo img { max-height: none; }\n      .hero-offer { max-height: none; }\n    }\n  \u003c\/style\u003e\n\n\n  \u003cdiv class=\"app\"\u003e\n    \u003c!-- HEADER AGGRESSIVO --\u003e\n    \u003cdiv class=\"header\"\u003e\n      \u003cdiv class=\"reserve\"\u003e\n        \u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.4\"\u003e\u003crect x=\"4\" y=\"10\" width=\"16\" height=\"10\" rx=\"2\"\u003e\u003c\/rect\u003e\u003cpath d=\"M8 10V7a4 4 0 0 1 8 0v3\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\n        \u003cspan\u003e-50% bloqué pour vous\u003c\/span\u003e\n        \u003cspan class=\"t\" id=\"clock\"\u003e10:00\u003c\/span\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"progress-bar-bg\"\u003e\n        \u003cdiv class=\"progress-bar-fill\" id=\"pfill\"\u003e\u003c\/div\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"step-text\" id=\"plbl\"\u003eATTENTION : ÉTAPE 1 SUR 6\u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003c!-- CONTENUTO (SCREENS) --\u003e\n    \u003cdiv class=\"content-area\" id=\"contentArea\"\u003e\n      \u003c!-- STEP 1: HOOK --\u003e\n      \u003csection class=\"screen active\" id=\"screen-1\"\u003e\n        \u003cdiv class=\"stack\"\u003e\n          \u003cspan class=\"hype-badge\"\u003eLE SECRET DÉVOILÉ\u003c\/span\u003e\n          \u003ch1\u003eLes bricoleurs \u003cmark\u003eadorent\u003c\/mark\u003e ce produit\u003c\/h1\u003e\n          \u003cdiv class=\"media\"\u003e\n            \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0899\/7480\/0771\/files\/landing_rimuovi_graffi_legno_FR_5.webp?v=1790533081\" alt=\"Renove Bois Pro\"\u003e\n          \u003c\/div\u003e\n          \u003cp class=\"lead\"\u003eLe parquet redevient neuf en 5 minutes. Sans polisseuses, sans odeurs fortes. Formule professionnelle haute résistance.\u003c\/p\u003e\n          \u003cbutton class=\"cta pulse\" onclick=\"go(2)\"\u003eVOIR LA RÉNOVATION \u003csmall\u003eCliquez pour continuer\u003c\/small\u003e\u003c\/button\u003e\n          \u003cspan class=\"micro\"\u003ePaiement sécurisé par carte\u003c\/span\u003e\n        \u003c\/div\u003e\n      \u003c\/section\u003e\n\n      \u003c!-- STEP 2: RÉNOVE EN 5 MINUTES --\u003e\n      \u003csection class=\"screen\" id=\"screen-2\"\u003e\n        \u003cdiv class=\"stack\"\u003e\n          \u003cspan class=\"hype-badge\"\u003eRÉNOVE EN 5 MINUTES\u003c\/span\u003e\n          \u003ch2\u003eSans rien remplacer.\u003cbr\u003e\u003cmark\u003eRésultat immédiat.\u003c\/mark\u003e\n\u003c\/h2\u003e\n          \u003cdiv class=\"media\"\u003e\n            \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0899\/7480\/0771\/files\/landing_rimuovi_graffi_legno_FR_3.webp?v=1790533081\" alt=\"Rénovation rapide\"\u003e\n          \u003c\/div\u003e\n          \u003cp class=\"lead\"\u003eRenove Bois Pro est le traitement professionnel conçu pour redonner vie à vos sols en quelques minutes. Idéal pour parquet, meubles, armoires et toutes surfaces en bois.\u003c\/p\u003e\n          \u003cbutton class=\"cta\" onclick=\"go(3)\"\u003ePLUS DE DÉTAILS \u003csmall\u003eFormule haute résistance\u003c\/small\u003e\u003c\/button\u003e\n        \u003c\/div\u003e\n      \u003c\/section\u003e\n\n      \u003c!-- STEP 3: FORMULE HAUTE RÉSISTANCE --\u003e\n      \u003csection class=\"screen\" id=\"screen-3\"\u003e\n        \u003cdiv class=\"stack\"\u003e\n          \u003cspan class=\"hype-badge\"\u003eHAUTE RÉSISTANCE\u003c\/span\u003e\n          \u003ch2\u003eBrillant dès la première application.\u003cbr\u003e\u003cmark\u003eProtège et rénove.\u003c\/mark\u003e\n\u003c\/h2\u003e\n          \u003cdiv class=\"media\"\u003e\n            \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0899\/7480\/0771\/files\/landing_rimuovi_graffi_legno_FR_4.webp?v=1790533081\" alt=\"Formule haute résistance\"\u003e\n          \u003c\/div\u003e\n          \u003cp class=\"lead\"\u003eSa formule haute résistance lustre, protège et rénove chaque surface, réduisant rayures, opacité et signes d'usure. Crée une barrière protectrice durable.\u003c\/p\u003e\n          \u003cbutton class=\"cta\" onclick=\"go(4)\"\u003ePOUR TOUTES LES SURFACES \u003csmall\u003eParquet, stratifié, PVC, meubles\u003c\/small\u003e\u003c\/button\u003e\n        \u003c\/div\u003e\n      \u003c\/section\u003e\n\n      \u003c!-- STEP 4: UN PRODUIT POUR TOUT --\u003e\n      \u003csection class=\"screen\" id=\"screen-4\"\u003e\n        \u003cdiv class=\"stack\"\u003e\n          \u003cspan class=\"hype-badge black\"\u003eUN PRODUIT POUR TOUT\u003c\/span\u003e\n          \u003ch2\u003eParquet, stratifié, PVC et meubles.\u003cbr\u003e\u003cmark\u003eUn seul geste.\u003c\/mark\u003e\n\u003c\/h2\u003e\n          \u003cdiv class=\"media\"\u003e\n            \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0899\/7480\/0771\/files\/landing_rimuovi_graffi_legno_FR_2.webp?v=1790533080\" alt=\"Polyvalent\"\u003e\n          \u003c\/div\u003e\n          \u003cp class=\"lead\"\u003eIdéal pour le parquet, le stratifié, le PVC vinyle, le grès effet bois, les tables, escaliers, plinthes et meubles. Nettoie en profondeur et ravive la couleur naturelle.\u003c\/p\u003e\n          \u003cbutton class=\"cta green\" onclick=\"go(5)\"\u003eVOIR LES AVIS \u003csmall\u003eAvis vérifiés\u003c\/small\u003e\u003c\/button\u003e\n        \u003c\/div\u003e\n      \u003c\/section\u003e\n\n      \u003c!-- STEP 5: RECENSIONI BREVI --\u003e\n      \u003csection class=\"screen\" id=\"screen-5\"\u003e\n        \u003cdiv class=\"stack\"\u003e\n          \u003cspan class=\"hype-badge green\"\u003eAVIS VÉRIFIÉS\u003c\/span\u003e\n          \u003cdiv class=\"rating\"\u003e\n\u003cspan class=\"stars\"\u003e★★★★★\u003c\/span\u003e\u003cspan class=\"n\"\u003e4,9 \/ 5\u003c\/span\u003e\n\u003c\/div\u003e\n          \u003cdiv class=\"rev\"\u003e\n            \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0899\/7480\/0771\/files\/landing_rinnova_legno_hill_8.webp?v=1790514309\" alt=\"Avis Camille\"\u003e\n            \u003cdiv class=\"h\"\u003e\n\u003cspan class=\"name\"\u003eCamille Q.\u003c\/span\u003e\u003cspan class=\"vf\"\u003e✓ Achat vérifié\u003c\/span\u003e\n\u003c\/div\u003e\n            \u003cdiv class=\"when\"\u003eAcheté il y a 3 jours\u003c\/div\u003e\n            \u003cdiv class=\"stars\"\u003e★★★★★\u003c\/div\u003e\n            \u003cp\u003e« J'avais un parquet mat, plein de marques. Il est maintenant \u003cb\u003ecomme neuf : brillant, uniforme et splendide.\u003c\/b\u003e »\u003c\/p\u003e\n          \u003c\/div\u003e\n          \u003cdiv class=\"rev\"\u003e\n            \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0899\/7480\/0771\/files\/landing_rinnova_legno_hill_6.webp?v=1790514308\" alt=\"Avis Thomas\"\u003e\n            \u003cdiv class=\"h\"\u003e\n\u003cspan class=\"name\"\u003eThomas B.\u003c\/span\u003e\u003cspan class=\"vf\"\u003e✓ Achat vérifié\u003c\/span\u003e\n\u003c\/div\u003e\n            \u003cdiv class=\"when\"\u003eAcheté il y a 5 jours\u003c\/div\u003e\n            \u003cdiv class=\"stars\"\u003e★★★★★\u003c\/div\u003e\n            \u003cp\u003e« Je ne pensais pas obtenir un tel résultat. Ma table était abîmée, mate et marquée… \u003cb\u003emaintenant elle semble neuve.\u003c\/b\u003e »\u003c\/p\u003e\n          \u003c\/div\u003e\n          \u003cbutton class=\"cta pulse\" onclick=\"go(6)\"\u003eVÉRIFIER LA DISPONIBILITÉ \u003csmall\u003eDébloquez l'offre 2x1\u003c\/small\u003e\u003c\/button\u003e\n        \u003c\/div\u003e\n      \u003c\/section\u003e\n\n      \u003c!-- STEP 6: OFFERTA COMPLETA --\u003e\n      \u003csection class=\"screen\" id=\"screen-6\"\u003e\n        \u003cdiv class=\"stack\"\u003e\n          \u003c!-- HERO-DUO --\u003e\n          \u003cdiv class=\"hero-duo\"\u003e\n            \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0899\/7480\/0771\/files\/landing_rimuovi_graffi_legno_FR_5.webp?v=1790533081\" alt=\"Renove Bois Pro\"\u003e\n            \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0899\/7480\/0771\/files\/landing_rimuovi_graffi_legno_FR_1.webp?v=1790533080\" alt=\"Application facile\"\u003e\n          \u003c\/div\u003e\n\n          \u003c!-- SCARSITÀ --\u003e\n          \u003cdiv class=\"stock-top\" id=\"stockTop\"\u003e\n            \u003cdiv class=\"label\" id=\"stockLabel\"\u003e\n              \u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003cpath d=\"M8.5 14.5A2.5 2.5 0 0 0 11 12c0-1.38-.5-2-1-3-1.072-2.143-.224-4.054 2-6 .5 2.5 2 4.9 4 6.5 2 1.6 3 3.5 3 5.5a7 7 0 1 1-14 0c0-1.153.433-2.294 1-3a2.5 2.5 0 0 0 2.5 2.5z\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\n              \u003cspan class=\"main\" id=\"stockMain\"\u003eStock limité\u003c\/span\u003e\n              \u003cspan class=\"sub\"\u003ePièces disponibles\u003c\/span\u003e\n            \u003c\/div\u003e\n            \u003cdiv class=\"num\"\u003e\n              \u003cspan class=\"count\" id=\"stockN\"\u003e25\u003c\/span\u003e\n              \u003cspan class=\"unit\"\u003epcs\u003c\/span\u003e\n            \u003c\/div\u003e\n          \u003c\/div\u003e\n\n          \u003c!-- PRICE CARD --\u003e\n          \u003cdiv class=\"price-card\"\u003e\n            \u003cspan class=\"tag-today\"\u003eAujourd'hui seulement · -50%\u003c\/span\u003e\n            \u003cdiv class=\"prod\"\u003eRenove Bois Pro™ — Restaurateur professionnel 1L · Offre 2x1\u003c\/div\u003e\n            \u003cdiv class=\"price-row\"\u003e\n\u003cspan class=\"now\"\u003e19,99 €\u003c\/span\u003e\u003cspan class=\"old\"\u003e39,98 €\u003c\/span\u003e\n\u003c\/div\u003e\n            \u003cdiv class=\"price-sub\"\u003ePAIEMENT SÉCURISÉ PAR CARTE\u003c\/div\u003e\n            \u003cdiv class=\"active-badge\"\u003e\n\u003cspan class=\"dot\"\u003e\u003c\/span\u003e Offre 2x1 active aujourd'hui\u003c\/div\u003e\n          \u003c\/div\u003e\n\n          \u003c!-- DELIVERY BOX --\u003e\n          \u003cdiv class=\"delivery-box\"\u003e\n            \u003cdiv class=\"truck\"\u003e\n              \u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003crect x=\"1\" y=\"6\" width=\"13\" height=\"12\" rx=\"1.5\"\u003e\u003c\/rect\u003e\u003cpath d=\"M14 9h4l3 3v6h-7\"\u003e\u003c\/path\u003e\u003ccircle cx=\"6\" cy=\"19\" r=\"2\"\u003e\u003c\/circle\u003e\u003ccircle cx=\"17\" cy=\"19\" r=\"2\"\u003e\u003c\/circle\u003e\u003c\/svg\u003e\n            \u003c\/div\u003e\n            \u003cdiv class=\"info\"\u003e\n              \u003cdiv class=\"line1\"\u003e\n\u003cspan class=\"check\"\u003e\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"3\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003cpath d=\"M5 12l5 5L20 7\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/span\u003e Livraison rapide en 48h\u003c\/div\u003e\n              \u003cdiv class=\"line2\"\u003eArrivée prévue : \u003cspan class=\"date\" id=\"deliv\"\u003esous 2 jours\u003c\/span\u003e\n\u003c\/div\u003e\n              \u003cdiv class=\"line3\"\u003ePaiement 100% sécurisé par carte.\u003c\/div\u003e\n            \u003c\/div\u003e\n          \u003c\/div\u003e\n\n          \u003cdiv class=\"scrollcue\"\u003e\n\u003cspan\u003eFaites défiler pour les détails\u003c\/span\u003e\u003cspan class=\"arr\"\u003e\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.6\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003cpath d=\"M6 9l6 6 6-6\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n\n          \u003c!-- OLIST --\u003e\n          \u003cul class=\"olist\"\u003e\n            \u003cli\u003e\n\u003cspan class=\"ck\"\u003e✓\u003c\/span\u003e \u003cspan\u003e1x Renove Bois Pro™ de 1 litre\u003c\/span\u003e\n\u003c\/li\u003e\n            \u003cli\u003e\n\u003cspan class=\"ck\"\u003e✓\u003c\/span\u003e \u003cspan\u003e1x Renove Bois Pro™ de 1 litre — \u003cspan class=\"val\"\u003e1 OFFERT\u003c\/span\u003e\u003c\/span\u003e\n\u003c\/li\u003e\n            \u003cli\u003e\n\u003cspan class=\"ck\"\u003e✓\u003c\/span\u003e \u003cspan\u003eManuel d'utilisation en français — \u003cspan class=\"val\"\u003eOFFERT\u003c\/span\u003e\u003c\/span\u003e\n\u003c\/li\u003e\n            \u003cli\u003e\n\u003cspan class=\"ck\"\u003e✓\u003c\/span\u003e \u003cspan\u003e14 jours satisfait ou remboursé\u003c\/span\u003e\n\u003c\/li\u003e\n            \u003cli\u003e\n\u003cspan class=\"ck\"\u003e✓\u003c\/span\u003e \u003cspan\u003ePaiement sécurisé\u003c\/span\u003e\n\u003c\/li\u003e\n            \u003cli\u003e\n\u003cspan class=\"ck\"\u003e✓\u003c\/span\u003e \u003cspan\u003eGarantie 2 ans\u003c\/span\u003e\n\u003c\/li\u003e\n          \u003c\/ul\u003e\n\n          \u003c!-- CARD PAYMENT REASSURANCE --\u003e\n          \u003cdiv class=\"cod-card\"\u003e\n            \u003cdiv class=\"big\"\u003e\n\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.2\"\u003e\u003cpath d=\"M9 12l2 2 4-4\"\u003e\u003c\/path\u003e\u003ccircle cx=\"12\" cy=\"12\" r=\"9\"\u003e\u003c\/circle\u003e\u003c\/svg\u003e Paiement 100% sécurisé par carte\u003c\/div\u003e\n            \u003cul\u003e\n              \u003cli\u003e\n\u003cspan class=\"ck\"\u003e✓\u003c\/span\u003e\u003cspan\u003e\u003cb\u003eTransactions protégées.\u003c\/b\u003e Cryptage avancé de vos données bancaires.\u003c\/span\u003e\n\u003c\/li\u003e\n              \u003cli\u003e\n\u003cspan class=\"ck\"\u003e✓\u003c\/span\u003e\u003cspan\u003ePas satisfait ? \u003cb\u003eRetour gratuit sous 14 jours\u003c\/b\u003e, remboursement complet.\u003c\/span\u003e\n\u003c\/li\u003e\n              \u003cli\u003e\n\u003cspan class=\"ck\"\u003e✓\u003c\/span\u003e\u003cspan\u003eGarantie 2 ans · support en français.\u003c\/span\u003e\n\u003c\/li\u003e\n            \u003c\/ul\u003e\n          \u003c\/div\u003e\n\n          \u003c!-- RECENSIONI ESTESE --\u003e\n          \u003cdiv class=\"rev-wall\"\u003e\n            \u003cspan class=\"hype-badge green\"\u003eAvis réels · ✓ vérifiés\u003c\/span\u003e\n\n            \u003cdiv class=\"rev\"\u003e\n              \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0899\/7480\/0771\/files\/landing_rinnova_legno_hill_8.webp?v=1790514309\" alt=\"Avis Camille\"\u003e\n              \u003cdiv class=\"h\"\u003e\n\u003cspan class=\"name\"\u003eCamille Q.\u003c\/span\u003e\u003cspan class=\"vf\"\u003e✓ Vérifié\u003c\/span\u003e\n\u003c\/div\u003e\n              \u003cdiv class=\"when\"\u003e\n\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.4\"\u003e\u003ccircle cx=\"9\" cy=\"21\" r=\"1\"\u003e\u003c\/circle\u003e\u003ccircle cx=\"20\" cy=\"21\" r=\"1\"\u003e\u003c\/circle\u003e\u003cpath d=\"M1 1h4l2.7 13.4a2 2 0 0 0 2 1.6h9.7a2 2 0 0 0 2-1.6L23 6H6\"\u003e\u003c\/path\u003e\u003c\/svg\u003eAcheté il y a 3 jours\u003c\/div\u003e\n              \u003cdiv class=\"stars\"\u003e★★★★★\u003c\/div\u003e\n              \u003cp\u003eJ'avais un parquet mat, plein de marques et de rayures. Il est maintenant comme neuf : \u003cb\u003ebrillant, uniforme et splendide\u003c\/b\u003e. Je recommande vivement !\u003c\/p\u003e\n            \u003c\/div\u003e\n\n            \u003cdiv class=\"rev\"\u003e\n              \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0899\/7480\/0771\/files\/landing_rinnova_legno_hill_6.webp?v=1790514308\" alt=\"Avis Thomas\"\u003e\n              \u003cdiv class=\"h\"\u003e\n\u003cspan class=\"name\"\u003eThomas B.\u003c\/span\u003e\u003cspan class=\"vf\"\u003e✓ Vérifié\u003c\/span\u003e\n\u003c\/div\u003e\n              \u003cdiv class=\"when\"\u003e\n\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.4\"\u003e\u003ccircle cx=\"9\" cy=\"21\" r=\"1\"\u003e\u003c\/circle\u003e\u003ccircle cx=\"20\" cy=\"21\" r=\"1\"\u003e\u003c\/circle\u003e\u003cpath d=\"M1 1h4l2.7 13.4a2 2 0 0 0 2 1.6h9.7a2 2 0 0 0 2-1.6L23 6H6\"\u003e\u003c\/path\u003e\u003c\/svg\u003eAcheté il y a 5 jours\u003c\/div\u003e\n              \u003cdiv class=\"stars\"\u003e★★★★★\u003c\/div\u003e\n              \u003cp\u003eJe ne pensais pas obtenir un tel résultat. Ma table était abîmée, mate et marquée… \u003cb\u003emaintenant elle semble neuve\u003c\/b\u003e. Facile à utiliser et vraiment efficace.\u003c\/p\u003e\n            \u003c\/div\u003e\n\n            \u003cdiv class=\"rev\"\u003e\n              \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0899\/7480\/0771\/files\/landing_rinnova_legno_hill_7.webp?v=1790514309\" alt=\"Avis Chloé\"\u003e\n              \u003cdiv class=\"h\"\u003e\n\u003cspan class=\"name\"\u003eChloé T.\u003c\/span\u003e\u003cspan class=\"vf\"\u003e✓ Vérifié\u003c\/span\u003e\n\u003c\/div\u003e\n              \u003cdiv class=\"when\"\u003e\n\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.4\"\u003e\u003ccircle cx=\"9\" cy=\"21\" r=\"1\"\u003e\u003c\/circle\u003e\u003ccircle cx=\"20\" cy=\"21\" r=\"1\"\u003e\u003c\/circle\u003e\u003cpath d=\"M1 1h4l2.7 13.4a2 2 0 0 0 2 1.6h9.7a2 2 0 0 0 2-1.6L23 6H6\"\u003e\u003c\/path\u003e\u003c\/svg\u003eAcheté il y a 1 semaine\u003c\/div\u003e\n              \u003cdiv class=\"stars\"\u003e★★★★★\u003c\/div\u003e\n              \u003cp\u003eJ'étais sur le point de jeter ces chaises car elles étaient mates et abîmées. Après avoir appliqué Renove Bois Pro : \u003cb\u003ecouleur ravivée et surface brillante et uniforme dès la première application\u003c\/b\u003e. Elles semblent tout juste achetées.\u003c\/p\u003e\n            \u003c\/div\u003e\n\n            \u003cdiv class=\"rev\"\u003e\n              \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0899\/7480\/0771\/files\/landing_rinnova_legno_hill_5.webp?v=1790514310\" alt=\"Avis Julien\"\u003e\n              \u003cdiv class=\"h\"\u003e\n\u003cspan class=\"name\"\u003eJulien R.\u003c\/span\u003e\u003cspan class=\"vf\"\u003e✓ Vérifié\u003c\/span\u003e\n\u003c\/div\u003e\n              \u003cdiv class=\"when\"\u003e\n\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.4\"\u003e\u003ccircle cx=\"9\" cy=\"21\" r=\"1\"\u003e\u003c\/circle\u003e\u003ccircle cx=\"20\" cy=\"21\" r=\"1\"\u003e\u003c\/circle\u003e\u003cpath d=\"M1 1h4l2.7 13.4a2 2 0 0 0 2 1.6h9.7a2 2 0 0 0 2-1.6L23 6H6\"\u003e\u003c\/path\u003e\u003c\/svg\u003eAcheté il y a 2 semaines\u003c\/div\u003e\n              \u003cdiv class=\"stars\"\u003e★★★★★\u003c\/div\u003e\n              \u003cp\u003eUtilisé sur un sol en bois de 60 m². \u003cb\u003eJ'ai terminé en moins de deux heures\u003c\/b\u003e sans rien démonter et sans poussière. Le résultat est celui que je cherchais depuis des années.\u003c\/p\u003e\n            \u003c\/div\u003e\n          \u003c\/div\u003e\n\n          \u003c!-- TRUST ICONS --\u003e\n          \u003cdiv class=\"trust-icons\"\u003e\n            \u003cdiv class=\"ti\"\u003e\n\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"\u003e\u003cpath d=\"M12 2l7 4v6c0 5-3.5 8-7 10-3.5-2-7-5-7-10V6z\"\u003e\u003c\/path\u003e\u003c\/svg\u003eGarantie 2 ans\u003c\/div\u003e\n            \u003cdiv class=\"ti\"\u003e\n\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"\u003e\u003crect x=\"1\" y=\"6\" width=\"13\" height=\"12\" rx=\"1\"\u003e\u003c\/rect\u003e\u003cpath d=\"M14 9h4l3 3v6h-7\"\u003e\u003c\/path\u003e\u003ccircle cx=\"6\" cy=\"19\" r=\"2\"\u003e\u003c\/circle\u003e\u003ccircle cx=\"17\" cy=\"19\" r=\"2\"\u003e\u003c\/circle\u003e\u003c\/svg\u003eLivraison 48h\u003c\/div\u003e\n            \u003cdiv class=\"ti\"\u003e\n\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"\u003e\u003cpath d=\"M3 12a9 9 0 1 0 3-6.7L3 8\"\u003e\u003c\/path\u003e\u003cpath d=\"M3 3v5h5\"\u003e\u003c\/path\u003e\u003c\/svg\u003eRetour 14j\u003c\/div\u003e\n            \u003cdiv class=\"ti\"\u003e\n\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"\u003e\u003crect x=\"4\" y=\"10\" width=\"16\" height=\"10\" rx=\"2\"\u003e\u003c\/rect\u003e\u003cpath d=\"M8 10V7a4 4 0 0 1 8 0v3\"\u003e\u003c\/path\u003e\u003c\/svg\u003ePaiement carte\u003c\/div\u003e\n          \u003c\/div\u003e\n\n          \u003c!-- CTA FINALE INLINE (opzionale) --\u003e\n          \u003ca href=\"https:\/\/secure.borner.click\/?offer=4857\u0026amp;uid=01900299-1acb-7afc-a86a-c76356e70006\u0026amp;subid4=Renove%20Bois%20Pro\u0026amp;utm_medium=https:\/\/cdn.shopify.com\/s\/files\/1\/0899\/7480\/0771\/files\/landing_rimuovi_graffi_legno_FR_5.webp\" class=\"cta green pulse\" target=\"_blank\" style=\"margin-top:10px;\"\u003eCOMMANDER MAINTENANT — 2x1\u003csmall\u003ePaiement sécurisé\u003c\/small\u003e\u003c\/a\u003e\n        \u003c\/div\u003e\n      \u003c\/section\u003e\n    \u003c\/div\u003e\n\n    \u003c!-- INTERSTITIAL --\u003e\n    \u003cdiv id=\"inter\"\u003e\n      \u003cdiv class=\"terminal\"\u003e\n        \u003cdiv class=\"term-head\"\u003e\n          \u003cspan class=\"d r\"\u003e\u003c\/span\u003e\u003cspan class=\"d y\"\u003e\u003c\/span\u003e\u003cspan class=\"d g\"\u003e\u003c\/span\u003e\n          \u003cspan\u003esystème de commande\u003c\/span\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"txt\" id=\"interTxt\"\u003eContrôle du stock...\u003cspan class=\"cursor\"\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n        \u003cdiv class=\"bar\"\u003e\u003ci id=\"interBar\"\u003e\u003c\/i\u003e\u003c\/div\u003e\n        \u003cdiv class=\"phase\"\u003e\n\u003cspan id=\"phaseLabel\"\u003ePhase 1 sur 3\u003c\/span\u003e\u003cb id=\"phasePerc\"\u003e0%\u003c\/b\u003e\n\u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003c!-- STICKY BAR FINALE --\u003e\n    \u003cdiv id=\"buyBar\"\u003e\n      \u003cdiv class=\"arrival-info\"\u003e\n        \u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.4\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003ccircle cx=\"12\" cy=\"12\" r=\"9\"\u003e\u003c\/circle\u003e\u003cpath d=\"M12 7v5l3 2\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\n        \u003cspan\u003eArrivée estimée : \u003cb id=\"arrivalDate\"\u003esous 2 jours\u003c\/b\u003e\u003c\/span\u003e\n      \u003c\/div\u003e\n      \u003c!-- CTA FINALE CON IL LINK FORNITO --\u003e\n      \u003ca href=\"https:\/\/secure.borner.click\/?offer=4857\u0026amp;uid=01900299-1acb-7afc-a86a-c76356e70006\u0026amp;subid4=Renove%20Bois%20Pro\u0026amp;utm_medium=https:\/\/cdn.shopify.com\/s\/files\/1\/0899\/7480\/0771\/files\/landing_rimuovi_graffi_legno_FR_5.webp\" id=\"finalCta\" class=\"cta green pulse cta-order\" target=\"_blank\"\u003e\n        ACHETER MAINTENANT\u003csmall\u003ePaiement sécurisé\u003c\/small\u003e\n      \u003c\/a\u003e\n      \u003cdiv class=\"help-pointer\" id=\"helpPointer\"\u003e\n        \u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.4\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003cpath d=\"M12 5v14M5 12l7 7 7-7\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\n        \u003cspan\u003eCliquez ici pour finaliser la commande\u003c\/span\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cscript\u003e\n    \/* ===================== CONFIG ===================== *\/\n    const TOTAL = 6;\n    const RESERVE_MIN = 10;\n    const STOCK_START = 25;\n    const STOCK_PHASES = [\n      { value: 25, delay: 0 },\n      { value: 20, delay: 2000 },\n      { value: 14, delay: 2200 },\n      { value: 9, delay: 2000 },\n      { value: 4, delay: 2300 }\n    ];\n    const SHIP_DAYS = 2;\n    const IDLE_MS = 4500;\n\n    \/* ===================== STATE ===================== *\/\n    let interDone = false;\n    let offerReached = false;\n    let helpT = null;\n    let stockTs = [];\n    let pointerDismissed = false;\n    let listenersAttached = false;\n\n    \/* ===================== DOM REFS ===================== *\/\n    const pfill = document.getElementById('pfill');\n    const plbl = document.getElementById('plbl');\n    const contentArea = document.getElementById('contentArea');\n    const buyBar = document.getElementById('buyBar');\n    const inter = document.getElementById('inter');\n    const finalCta = document.getElementById('finalCta');\n    const helpPointer = document.getElementById('helpPointer');\n\n    \/* ===================== STEP ENGINE ===================== *\/\n    function go(to) {\n      if (to === 6 \u0026\u0026 !interDone) {\n        runInterstitial(function() {\n          reveal(6);\n          pushStep(6);\n        });\n        return;\n      }\n      reveal(to);\n      pushStep(to);\n    }\n\n    function reveal(to) {\n      const current = document.querySelector('.screen.active');\n      if (current) current.classList.remove('active');\n      const el = document.getElementById('screen-' + to);\n      el.classList.add('active');\n      el.scrollTop = 0;\n\n      pfill.style.width = Math.round((to \/ TOTAL) * 100) + '%';\n      plbl.textContent = 'ATTENTION : ÉTAPE ' + to + ' SUR ' + TOTAL;\n\n      if (to === TOTAL) {\n        plbl.textContent = 'REMISE ACTIVÉE !';\n        plbl.style.color = '#16a34a';\n        buyBar.classList.add('show');\n        onOfferEnter();\n      } else {\n        plbl.style.color = '#fbbf24';\n        buyBar.classList.remove('show');\n        resetAll();\n      }\n\n      contentArea.scrollTop = 0;\n      if (window.fbq) { fbq('trackCustom', 'PrelanderStep', { step: to }); }\n    }\n\n    function pushStep(to) {\n      try { history.pushState({ step: to }, '', '#step-' + to); } catch(e) {}\n    }\n\n    \/\/ Zero Exit Lock\n    window.addEventListener('popstate', function(e) {\n      var to = (e.state \u0026\u0026 e.state.step) ? e.state.step : 1;\n      reveal(to);\n    });\n    try { history.replaceState({ step: 1 }, '', '#step-1'); } catch(e) {}\n\n    \/* ===================== INTERSTITIAL ===================== *\/\n    function runInterstitial(cb) {\n      const txt = document.getElementById('interTxt');\n      const bar = document.getElementById('interBar');\n      const phase = document.getElementById('phaseLabel');\n      const perc = document.getElementById('phasePerc');\n\n      txt.classList.remove('ok');\n      bar.style.width = '0%';\n      bar.classList.remove('done');\n      txt.innerHTML = 'Contrôle du stock...\u003cspan class=\"cursor\"\u003e\u003c\/span\u003e';\n      phase.textContent = 'Phase 1 sur 3';\n      perc.textContent = '0%';\n\n      inter.classList.add('show');\n\n      setTimeout(function() {\n        bar.style.width = '30%';\n        perc.textContent = '30%';\n      }, 80);\n\n      setTimeout(function() {\n        txt.innerHTML = 'Réservation d\\'une unité...\u003cspan class=\"cursor\"\u003e\u003c\/span\u003e';\n        bar.style.width = '70%';\n        phase.textContent = 'Phase 2 sur 3';\n        perc.textContent = '70%';\n      }, 1000);\n\n      setTimeout(function() {\n        txt.innerHTML = 'Remise -50% confirmée ✓';\n        txt.classList.add('ok');\n        bar.style.width = '100%';\n        bar.classList.add('done');\n        phase.textContent = 'Terminé';\n        perc.textContent = '100%';\n      }, 2000);\n\n      setTimeout(function() {\n        inter.classList.remove('show');\n        interDone = true;\n        cb();\n      }, 3000);\n    }\n\n    \/* ===================== SCARSITÀ DINAMICA ===================== *\/\n    function runStockSequence() {\n      const n = document.getElementById('stockN');\n      const top = document.getElementById('stockTop');\n      const main = document.getElementById('stockMain');\n      const label = document.getElementById('stockLabel');\n      if (!n || !top || !main || !label) return;\n\n      n.textContent = STOCK_PHASES[0].value;\n      main.textContent = 'Stock limité';\n      label.classList.remove('urgent');\n\n      let cumulative = 0;\n      for (let i = 1; i \u003c STOCK_PHASES.length; i++) {\n        cumulative += STOCK_PHASES[i].delay;\n        const val = STOCK_PHASES[i].value;\n        const isFinal = (i === STOCK_PHASES.length - 1);\n        const t = setTimeout(function() {\n          top.classList.remove('flash');\n          void top.offsetWidth;\n          top.classList.add('flash');\n          n.style.transform = 'scale(1.15)';\n          setTimeout(function() {\n            n.textContent = val;\n            n.style.transform = 'scale(1)';\n            if (isFinal) {\n              setTimeout(function() {\n                main.textContent = 'Commandez MAINTENANT !';\n                label.classList.add('urgent');\n              }, 400);\n            }\n          }, 150);\n        }, cumulative);\n        stockTs.push(t);\n      }\n    }\n\n    function resetStockSequence() {\n      stockTs.forEach(t =\u003e clearTimeout(t));\n      stockTs = [];\n      const n = document.getElementById('stockN');\n      const top = document.getElementById('stockTop');\n      const main = document.getElementById('stockMain');\n      const label = document.getElementById('stockLabel');\n      if (n) n.textContent = STOCK_START;\n      if (top) top.classList.remove('flash');\n      if (main) main.textContent = 'Stock limité';\n      if (label) label.classList.remove('urgent');\n    }\n\n    \/* ===================== HELP POINTER RESILIENTE ===================== *\/\n    function attachRadarListeners() {\n      if (listenersAttached) return;\n      listenersAttached = true;\n      document.getElementById('screen-6').addEventListener('scroll', resetRadar, { passive: true });\n      document.addEventListener('click', resetRadar, { passive: true });\n      document.addEventListener('touchstart', resetRadar, { passive: true });\n    }\n\n    function detachRadarListeners() {\n      listenersAttached = false;\n      document.getElementById('screen-6').removeEventListener('scroll', resetRadar);\n      document.removeEventListener('click', resetRadar);\n      document.removeEventListener('touchstart', resetRadar);\n    }\n\n    function showPointer() {\n      if (pointerDismissed) return;\n      if (offerReached \u0026\u0026 helpPointer) helpPointer.classList.add('show');\n    }\n\n    function hidePointer() {\n      if (helpPointer) helpPointer.classList.remove('show');\n    }\n\n    function armRadar() {\n      clearTimeout(helpT);\n      hidePointer();\n      helpT = setTimeout(showPointer, IDLE_MS);\n    }\n\n    function resetRadar() {\n      hidePointer();\n      if (offerReached \u0026\u0026 !pointerDismissed) {\n        clearTimeout(helpT);\n        helpT = setTimeout(showPointer, IDLE_MS);\n      }\n    }\n\n    function dismissRadar() {\n      pointerDismissed = true;\n      clearTimeout(helpT);\n      hidePointer();\n      detachRadarListeners();\n    }\n\n    function onOfferEnter() {\n      offerReached = true;\n      pointerDismissed = false;\n      runStockSequence();\n      attachRadarListeners();\n      armRadar();\n    }\n\n    function resetAll() {\n      resetStockSequence();\n      clearTimeout(helpT);\n      hidePointer();\n      detachRadarListeners();\n      offerReached = false;\n      pointerDismissed = false;\n    }\n\n    \/* ===================== FINAL CTA ===================== *\/\n    finalCta.addEventListener('click', function(e) {\n      dismissRadar();\n      if (window.fbq) { fbq('track', 'InitiateCheckout'); }\n    });\n\n    \/* ===================== COUNTDOWN RISERVA ===================== *\/\n    (function() {\n      let s = RESERVE_MIN * 60;\n      const c = document.getElementById('clock');\n      function tick() {\n        const m = Math.floor(s \/ 60);\n        const ss = s % 60;\n        c.textContent = (m \u003c 10 ? '0' : '') + m + ':' + (ss \u003c 10 ? '0' : '') + ss;\n        if (s \u003e 0) s--;\n      }\n      tick();\n      setInterval(tick, 1000);\n    })();\n\n    \/* ===================== DATA CONSEGNA LOCALIZZATA ===================== *\/\n    (function() {\n      const d = new Date();\n      d.setDate(d.getDate() + SHIP_DAYS);\n      const giorni = ['dimanche', 'lundi', 'mardi', 'mercredi', 'jeudi', 'vendredi', 'samedi'];\n      const mesi = ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre'];\n      let g = giorni[d.getDay()];\n      g = g.charAt(0).toUpperCase() + g.slice(1);\n      const formatted = g + ' ' + d.getDate() + ' ' + mesi[d.getMonth()];\n      const delivEl = document.getElementById('deliv');\n      const arrivalEl = document.getElementById('arrivalDate');\n      if (delivEl) delivEl.textContent = formatted;\n      if (arrivalEl) arrivalEl.textContent = formatted;\n    })();\n  \u003c\/script\u003e\n\n\u003c\/body\u003e","brand":"FoirePrime","offers":[{"title":"Default Title","offer_id":58617973211467,"sku":null,"price":0.0,"currency_code":"USD","in_stock":false}],"url":"https:\/\/foireprime.com\/products\/renove-bois-pro","provider":"FoirePrime","version":"1.0","type":"link"}