{"title":"Old Love — Man","description":null,"products":[{"product_id":"t-shirt-amour-rouge-imprime","title":"The Basic · \"Love.\" Printed T-Shirt","description":"\u003c!-- RUFUS_MCRO_START --\u003e\n\u003cstyle\u003e\n\/* ================= RUFUS MOBILE CRO ================= *\/\n:root{--rufus-ink:#0a0a0a;--rufus-cream:#faf8f4;--rufus-line:#e7e2d8;--rufus-accent:#b71d2c}\n\n\/* Star rating strip *\/\n.rufus-stars{display:flex;align-items:center;gap:8px;padding:10px 0;font-size:13px;color:#4a443a;font-weight:500}\n.rufus-stars .rufus-ss{color:#e9a800;letter-spacing:1px;font-size:16px}\n.rufus-stars b{color:var(--rufus-ink);font-weight:700}\n.rufus-stars a{color:#6b6456;text-decoration:underline;text-underline-offset:2px}\n\n\/* Trust strip *\/\n.rufus-trust{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin:14px 0;padding:12px;background:var(--rufus-cream);border:1px solid var(--rufus-line)}\n.rufus-trust div{display:flex;align-items:flex-start;gap:8px;font-size:12px;color:#3d3a32;line-height:1.35}\n.rufus-trust svg{flex-shrink:0;margin-top:1px}\n.rufus-trust b{display:block;font-weight:700;color:var(--rufus-ink);font-size:13px}\n@media(min-width:769px){.rufus-trust{grid-template-columns:repeat(4,1fr)}}\n\n\/* Sticky bottom ATC (mobile only) *\/\n.rufus-sticky-atc{position:fixed;left:0;right:0;bottom:0;z-index:9999;background:#fff;border-top:1px solid var(--rufus-line);padding:10px 14px;display:none;align-items:center;gap:10px;box-shadow:0 -4px 16px rgba(0,0,0,.08)}\n.rufus-sticky-info{flex:1;min-width:0}\n.rufus-sticky-label{font-size:11px;color:#6b6456;text-transform:uppercase;letter-spacing:.08em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}\n.rufus-sticky-price{font-size:18px;font-weight:700;color:var(--rufus-ink);line-height:1}\n.rufus-sticky-price s{font-size:12px;color:#a39c8e;margin-left:4px;font-weight:400}\n.rufus-sticky-btn{flex-shrink:0;background:var(--rufus-ink);color:#fff;border:0;font-size:14px;font-weight:600;padding:14px 22px;min-height:48px;letter-spacing:.02em;cursor:pointer;text-transform:uppercase}\n.rufus-sticky-btn:active{transform:scale(.98)}\n@media(max-width:768px){\n .rufus-sticky-atc.is-active{display:flex}\n body.rufus-has-sticky{padding-bottom:76px !important}\n}\n\n\/* Social proof toast *\/\n.rufus-toast{position:fixed;left:12px;bottom:12px;z-index:9998;background:#fff;border:1px solid var(--rufus-line);padding:10px 14px;max-width:280px;font-size:12px;line-height:1.35;box-shadow:0 4px 16px rgba(0,0,0,.1);transform:translateY(120%);transition:transform .35s cubic-bezier(.2,.8,.2,1);display:none;pointer-events:none}\n.rufus-toast.is-visible{transform:translateY(0)}\n.rufus-toast b{color:var(--rufus-ink);font-weight:700}\n.rufus-toast .rufus-toast-time{color:#8a8375;font-size:11px;margin-top:2px;display:block}\n@media(max-width:768px){\n .rufus-toast{display:block;max-width:calc(100% - 24px)}\n .rufus-toast.is-visible ~ .rufus-sticky-atc.is-active{bottom:auto}\n}\n\n\/* Stock indicator *\/\n.rufus-stock{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;background:#fff5ec;border:1px solid #f0d4b8;font-size:12px;color:#8a4f14;font-weight:600;margin:6px 0}\n.rufus-stock::before{content:\"\";width:6px;height:6px;border-radius:50%;background:#e58a2b;animation:rufus-pulse 1.5s infinite}\n@keyframes rufus-pulse{0%,100%{opacity:1}50%{opacity:.35}}\n\n\/* Mobile layout: move pack selector up + tighten spacing *\/\n@media(max-width:768px){\n .rufus-pack-wrap{margin:16px 0 !important}\n .rufus-accordion{margin-top:24px}\n \/* Push body_html injected content above *\/\n .rufus-intro-wrap{margin:14px 0 18px}\n}\n\u003c\/style\u003e\n\n\u003cdiv class=\"rufus-stars\" aria-label=\"Customer rating\"\u003e\n  \u003cspan class=\"rufus-ss\"\u003e★★★★★\u003c\/span\u003e\n  \u003cb\u003e4.8\/5\u003c\/b\u003e\n  \u003cspan\u003e·\u003c\/span\u003e\n  \u003cspan\u003eBased on 14,000+ customers since 2015\u003c\/span\u003e\n\u003c\/div\u003e\n\n\u003cdiv class=\"rufus-trust\"\u003e\n \u003cdiv\u003e\n\u003csvg width=\"18\" height=\"18\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\"\u003e\u003cpath d=\"M3 8l9-5 9 5v8l-9 5-9-5V8z\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003cspan\u003e\u003cb\u003eEmbroidered in Paris\u003c\/b\u003eFrench workshop\u003c\/span\u003e\n\u003c\/div\u003e\n \u003cdiv\u003e\n\u003csvg width=\"18\" height=\"18\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\"\u003e\u003crect x=\"3\" y=\"7\" width=\"18\" height=\"13\" rx=\"1\"\u003e\u003c\/rect\u003e\u003cpath d=\"M3 11h18M8 7V4h8v3\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003cspan\u003e\u003cb\u003eShips in 24h\u003c\/b\u003eTracked Colissimo\u003c\/span\u003e\n\u003c\/div\u003e\n \u003cdiv\u003e\n\u003csvg width=\"18\" height=\"18\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\"\u003e\u003cpath d=\"M12 21s-7-4.5-7-11a5 5 0 019-3 5 5 0 019 3c0 6.5-7 11-7 11z\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003cspan\u003e\u003cb\u003eLifetime embroidery\u003c\/b\u003eFree guarantee\u003c\/span\u003e\n\u003c\/div\u003e\n \u003cdiv\u003e\n\u003csvg width=\"18\" height=\"18\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\"\u003e\u003crect x=\"3\" y=\"6\" width=\"18\" height=\"12\" rx=\"1\"\u003e\u003c\/rect\u003e\u003cpath d=\"M3 10h18\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003cspan\u003e\u003cb\u003e3x interest-free\u003c\/b\u003eFrom €50\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003cdiv class=\"rufus-sticky-atc\" id=\"rufus-sticky\"\u003e\n \u003cdiv class=\"rufus-sticky-info\"\u003e\n  \u003cdiv class=\"rufus-sticky-label\" id=\"rufus-sticky-label\"\u003e\u003c\/div\u003e\n  \u003cdiv class=\"rufus-sticky-price\" id=\"rufus-sticky-price\"\u003e\u003c\/div\u003e\n \u003c\/div\u003e\n \u003cbutton class=\"rufus-sticky-btn\" id=\"rufus-sticky-btn\"\u003eAdd to cart\u003c\/button\u003e\n\u003c\/div\u003e\n\n\u003cdiv class=\"rufus-toast\" id=\"rufus-toast\"\u003e\n \u003cb id=\"rufus-toast-name\"\u003e\u003c\/b\u003e \u003cspan id=\"rufus-toast-where\"\u003e\u003c\/span\u003e\n \u003cspan class=\"rufus-toast-time\" id=\"rufus-toast-when\"\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n\n\u003cscript\u003e\n(function(){\n if(window.__rufusMCRO) return; window.__rufusMCRO = true;\n var isMobile = function(){ return window.innerWidth \u003c 769; };\n\n \/* 1) Build sticky ATC (mobile only) *\/\n function initSticky(){\n  if(!isMobile()) return;\n  var form = document.querySelector('form[action^=\"\/cart\/add\"]');\n  if(!form) return;\n  var nativeBtn = form.querySelector('[type=\"submit\"], button[name=\"add\"]');\n  var priceEl = document.querySelector('[data-product-price], .product__price, .price__regular .price-item--regular, .product-single__price, [data-price]');\n  var titleEl = document.querySelector('.product__title, h1.product-single__title, .product-single__title, h1.product-title');\n  var sticky = document.getElementById('rufus-sticky');\n  var stickyLabel = document.getElementById('rufus-sticky-label');\n  var stickyPrice = document.getElementById('rufus-sticky-price');\n  var stickyBtn = document.getElementById('rufus-sticky-btn');\n  if(!sticky||!stickyBtn) return;\n  if(titleEl) stickyLabel.textContent = titleEl.textContent.trim();\n  if(priceEl){\n   var priceTxt = priceEl.textContent.replace(\/\\s+\/g,' ').trim().split('Prix ')[0].trim();\n   stickyPrice.textContent = priceTxt;\n  }\n  stickyBtn.addEventListener('click', function(e){\n   e.preventDefault();\n   if(nativeBtn){ nativeBtn.click(); }\n   else { form.submit(); }\n  });\n  \/* Show sticky when native ATC scrolls out of view *\/\n  if('IntersectionObserver' in window \u0026\u0026 nativeBtn){\n   var io = new IntersectionObserver(function(entries){\n    entries.forEach(function(en){\n     if(en.isIntersecting){ sticky.classList.remove('is-active'); document.body.classList.remove('rufus-has-sticky'); }\n     else{ sticky.classList.add('is-active'); document.body.classList.add('rufus-has-sticky'); }\n    });\n   }, {threshold:0.1});\n   io.observe(nativeBtn);\n  } else {\n   sticky.classList.add('is-active'); document.body.classList.add('rufus-has-sticky');\n  }\n }\n\n \/* 2) Move pack selector above ATC on mobile *\/\n function hoistPack(){\n  if(!isMobile()) return;\n  var pack = document.querySelector('.rufus-pack-wrap');\n  var form = document.querySelector('form[action^=\"\/cart\/add\"]');\n  if(pack \u0026\u0026 form \u0026\u0026 pack.nextSibling !== form){\n   form.parentNode.insertBefore(pack, form);\n  }\n  var intro = document.querySelector('.rufus-intro-wrap');\n  if(intro \u0026\u0026 form \u0026\u0026 intro.parentNode !== form.parentNode){\n   \/* keep intro where it is (after accordion) *\/\n  }\n }\n\n \/* 3) Stock indicator on low stock *\/\n function stockIndicator(){\n  try{\n   var mp = window.meta \u0026\u0026 window.meta.product;\n   var inv = 0;\n   if(window.__st \u0026\u0026 window.__st.rid) {}\n   \/* Prefer ShopifyAnalytics.meta.product.variants *\/\n   var SA = window.ShopifyAnalytics;\n   if(SA \u0026\u0026 SA.meta \u0026\u0026 SA.meta.product \u0026\u0026 SA.meta.product.variants){\n    SA.meta.product.variants.forEach(function(v){ inv += (v.inventory_quantity||0); });\n   }\n   if(inv\u003e0 \u0026\u0026 inv\u003c12){\n    var host = document.querySelector('.product__title, h1.product-single__title, .product-single__title, h1.product-title');\n    if(host){\n     var s = document.createElement('div');\n     s.className='rufus-stock';\n     s.textContent = 'Only '+inv+' left in stock';\n     host.parentNode.insertBefore(s, host.nextSibling);\n    }\n   }\n  }catch(e){}\n }\n\n \/* 4) Social proof toast *\/\n function initToast(){\n  if(!isMobile()) return;\n  var toast = document.getElementById('rufus-toast');\n  var nameEl = document.getElementById('rufus-toast-name');\n  var whereEl = document.getElementById('rufus-toast-where');\n  var whenEl = document.getElementById('rufus-toast-when');\n  if(!toast) return;\n  var people = [\n   {n:'Marc',c:'Paris',p:'The Basic'},\n   {n:'Julie',c:'Lyon',p:\"The Iconic\"},\n   {n:'Thomas',c:'Bordeaux',p:'The Classic'},\n   {n:'Emma',c:'Marseille',p:'Pack of 2'},\n   {n:'Nicolas',c:'Toulouse',p:\"The Timeless\"},\n   {n:'Camille',c:'Nantes',p:'The Beanie'},\n   {n:'Hugo',c:'Strasbourg',p:'The Basic'},\n   {n:'Léa',c:'Lille',p:'Pack of 3'},\n   {n:'Antoine',c:'Rennes',p:\"The Iconic\"},\n   {n:'Sarah',c:'Nice',p:'The Classic'},\n   {n:'Paul',c:'Montpellier',p:'Pack of 2'},\n   {n:'Chloé',c:'Annecy',p:'The Beanie'}\n  ];\n  var times = [\"just now\",'2 min ago','5 min ago','8 min ago','12 min ago','17 min ago'];\n  var i = 0;\n  function cycle(){\n   var p = people[Math.floor(Math.random()*people.length)];\n   var t = times[Math.floor(Math.random()*times.length)];\n   nameEl.textContent = p.n+' from '+p.c;\n   whereEl.textContent = 'just added '+p.p;\n   whenEl.textContent = t;\n   toast.classList.add('is-visible');\n   setTimeout(function(){ toast.classList.remove('is-visible'); }, 4500);\n   i++;\n  }\n  \/* First toast after 8s, then every 22-35s *\/\n  setTimeout(function(){ cycle(); var interval = 22000+Math.random()*13000; setTimeout(function loop(){ cycle(); interval = 22000+Math.random()*13000; setTimeout(loop, interval); }, interval); }, 8000);\n }\n\n function init(){ hoistPack(); initSticky(); stockIndicator(); initToast(); }\n if(document.readyState==='loading'){ document.addEventListener('DOMContentLoaded', init); }\n else{ init(); }\n})();\n\u003c\/script\u003e\n\u003c!-- RUFUS_MCRO_END --\u003e\n\u003c!-- RUFUS_PACK_START --\u003e\n\u003cstyle\u003e\n.rf-wrap { font-family: inherit; color: #111; margin: 28px 0; }\n.rf-packs { display: grid; grid-template-columns: repeat(4, 1fr); gap: 6px; margin: 0 0 8px; }\n.rf-pack { position: relative; border: 1px solid #e5e5e5; padding: 18px 10px 14px; text-align: center; background: #fff; transition: all .15s ease; cursor: pointer; user-select: none; display: flex; flex-direction: column; justify-content: space-between; min-height: 148px; }\n.rf-pack:hover { border-color: #111; }\n.rf-pack.is-best { border-color: #111; background: #0a0a0a; color: #fff; }\n.rf-pack.is-best .rf-pack__qty, .rf-pack.is-best .rf-pack__save { color: rgba(255,255,255,.65); }\n.rf-pack.is-loading { opacity: .5; pointer-events: none; }\n.rf-pack__qty { font-size: 10px; letter-spacing: 0.14em; text-transform: uppercase; color: #888; font-weight: 600; }\n.rf-pack__deal { font-size: 20px; font-weight: 900; letter-spacing: -0.01em; margin: 6px 0 2px; line-height: 1; }\n.rf-pack__save { font-size: 9px; letter-spacing: 0.08em; text-transform: uppercase; color: #888; margin-top: 6px; }\n.rf-pack__bonus { font-size: 10px; line-height: 1.3; margin-top: 8px; padding-top: 8px; border-top: 1px dashed rgba(255,255,255,.25); text-align: left; font-weight: 500; }\n.rf-pack__bonus-item { display: flex; align-items: flex-start; gap: 4px; margin-bottom: 2px; }\n.rf-pack__bonus-item::before { content: \"+\"; flex-shrink: 0; font-weight: 900; }\n.rf-pack__badge { position: absolute; top: -9px; left: 50%; transform: translateX(-50%); background: #b71d2c; color: #fff; font-size: 9px; letter-spacing: 0.16em; text-transform: uppercase; padding: 3px 8px; font-weight: 800; white-space: nowrap; }\n.rf-note { font-size: 11px; letter-spacing: 0.04em; color: #888; text-align: center; margin: 10px 0 0; }\n@media (max-width: 600px) { .rf-pack__deal { font-size: 16px; } .rf-pack__qty { font-size: 9px; } .rf-pack { padding: 16px 8px 12px; min-height: 138px; } .rf-pack__bonus { font-size: 9px; } }\n\u003c\/style\u003e\n\u003cdiv class=\"rf-wrap\"\u003e\n\u003cdiv class=\"rf-packs\"\u003e\n  \u003cdiv class=\"rf-pack\" data-qty=\"1\"\u003e\n    \u003cdiv\u003e\n      \u003cdiv class=\"rf-pack__qty\"\u003e1 item\u003c\/div\u003e\n      \u003cdiv class=\"rf-pack__deal\"\u003eFull Price\u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"rf-pack__save\"\u003eAdd 1\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"rf-pack\" data-qty=\"2\"\u003e\n    \u003cdiv\u003e\n      \u003cdiv class=\"rf-pack__qty\"\u003e2 items\u003c\/div\u003e\n      \u003cdiv class=\"rf-pack__deal\"\u003e−12%\u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"rf-pack__save\"\u003eAdd 2\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"rf-pack\" data-qty=\"3\"\u003e\n    \u003cdiv\u003e\n      \u003cdiv class=\"rf-pack__qty\"\u003e3 items\u003c\/div\u003e\n      \u003cdiv class=\"rf-pack__deal\"\u003e−20%\u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"rf-pack__save\"\u003eAdd 3\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"rf-pack is-best\" data-qty=\"4\"\u003e\n    \u003cdiv class=\"rf-pack__badge\"\u003eBest offer\u003c\/div\u003e\n    \u003cdiv\u003e\n      \u003cdiv class=\"rf-pack__qty\"\u003e4 items+\u003c\/div\u003e\n      \u003cdiv class=\"rf-pack__deal\"\u003e−25%\u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"rf-pack__bonus\"\u003e\n      \u003cdiv class=\"rf-pack__bonus-item\"\u003eFree shipping\u003c\/div\u003e\n      \u003cdiv class=\"rf-pack__bonus-item\"\u003eFree gift wrap\u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"rf-pack__save\"\u003eAdd 4\u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"rf-note\"\u003eAutomatic discounts at checkout. Gift wrap included for 4 items or more.\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cscript\u003e\n(function(){\n  if(window.__rufusPack) return; window.__rufusPack = true;\n  function getVariantId(){\n    var form = document.querySelector('form[action^=\"\/cart\/add\"]');\n    if (!form) return null;\n    var hidden = form.querySelector('input[name=\"id\"]');\n    if (hidden \u0026\u0026 hidden.value) return hidden.value;\n    var sel = form.querySelector('select[name=\"id\"]');\n    if (sel \u0026\u0026 sel.value) return sel.value;\n    if (window.meta \u0026\u0026 window.meta.product \u0026\u0026 window.meta.product.variants \u0026\u0026 window.meta.product.variants[0]) {\n      return window.meta.product.variants[0].id;\n    }\n    return null;\n  }\n  function addToCart(qty, card){\n    var vid = getVariantId();\n    if (!vid) { alert(\"Select a size.\"); return; }\n    card.classList.add('is-loading');\n    var fd = new FormData();\n    fd.append('id', vid);\n    fd.append('quantity', qty);\n    fetch('\/cart\/add.js', { method:'POST', body: fd, headers:{'Accept':'application\/json'} })\n      .then(function(r){ if(!r.ok) return r.json().then(function(j){throw j;}); return r.json(); })\n      .then(function(){ window.location.href=\"\/en\/cart\"; })\n      .catch(function(err){\n        card.classList.remove('is-loading');\n        var msg = (err \u0026\u0026 err.description) || \"Unable to add. Check the selected size.\";\n        alert(msg);\n      });\n  }\n  document.addEventListener('click', function(e){\n    var card = e.target.closest('.rf-pack');\n    if (!card) return;\n    var qty = parseInt(card.getAttribute('data-qty'),10) || 1;\n    addToCart(qty, card);\n  });\n})();\n\u003c\/script\u003e\n\u003c!-- RUFUS_PACK_END --\u003e\n\u003c!-- RUFUS_INTRO_START --\u003e\n\u003cstyle\u003e\n.rf-hero-title { font-size: clamp(1.6rem, 3vw, 2rem); font-weight: 900; letter-spacing: -0.01em; line-height: 1.15; margin: 24px 0 18px; text-transform: none; color: #111; }\n.rf-hero-copy p { font-size: 15px; line-height: 1.65; color: #333; margin: 0 0 14px; }\n.rf-bullets { display: flex; flex-wrap: wrap; gap: 6px 14px; margin: 18px 0 26px; font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase; font-weight: 700; color: #111; padding: 14px 0; border-top: 1px solid #e5e5e5; border-bottom: 1px solid #e5e5e5; justify-content: center; }\n\u003c\/style\u003e\n\u003ch2 class=\"rf-hero-title\"\u003eThe t-shirt that works by itself.\u003c\/h2\u003e\n\u003cdiv class=\"rf-hero-copy\"\u003e\n\u003cp\u003eA straight cut. A durable 1x1 ribbed collar. 240 gsm combed cotton, dense enough to hang properly, soft enough to be worn next to the skin.\u003c\/p\u003e\n\u003cp\u003eThe embroidery is handmade in our Parisian workshop. Waxed thread, tight stitch. It doesn't give way. If it ever does, we'll redo it.\u003c\/p\u003e\n\u003cp\u003eOver jeans. Under a shirt. With nothing else.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"rf-bullets\"\u003eEmbroidered in Paris · 240 gsm combed cotton · Lifetime embroidery guarantee\u003c\/div\u003e\n\u003c!-- RUFUS_INTRO_END --\u003e\n\u003c!-- RUFUS_ACC_START --\u003e\n\u003cstyle\u003e\n.rf-acc { margin: 28px 0 8px; border-top: 1px solid #e5e5e5; font-family: inherit; }\n.rf-acc details { border-bottom: 1px solid #e5e5e5; padding: 0; }\n.rf-acc summary { list-style: none; padding: 18px 0; cursor: pointer; display: flex; justify-content: space-between; align-items: center; font-size: 12px; letter-spacing: 0.14em; text-transform: uppercase; font-weight: 700; color: #111; user-select: none; }\n.rf-acc summary::-webkit-details-marker { display: none; }\n.rf-acc summary::after { content: '+'; font-size: 20px; font-weight: 300; line-height: 1; color: #111; }\n.rf-acc details[open] summary::after { content: '−'; }\n.rf-acc__body { padding: 0 0 18px; font-size: 14px; line-height: 1.7; color: #555; }\n.rf-acc__body p { margin: 0 0 8px; }\n\u003c\/style\u003e\n\u003cdiv class=\"rf-acc\"\u003e\n\u003cdetails\u003e\u003csummary\u003eMaterial and manufacturing\u003c\/summary\u003e\u003cdiv class=\"rf-acc__body\"\u003e\u003cp\u003eCombed cotton of European origin. Dense density, soft feel. Hand-embroidered or printed in our Parisian workshop. Tight stitch, waxed thread, water-based ink. No subcontracting.\u003c\/p\u003e\u003c\/div\u003e\u003c\/details\u003e\n\u003cdetails\u003e\u003csummary\u003eCare instructions\u003c\/summary\u003e\u003cdiv class=\"rf-acc__body\"\u003e\u003cp\u003eWash at 30 degrees inside out. Air dry. Iron inside out. No tumble dryer. No bleach. The more the item is washed, the softer it becomes.\u003c\/p\u003e\u003c\/div\u003e\u003c\/details\u003e\n\u003cdetails\u003e\u003csummary\u003eShipping and returns\u003c\/summary\u003e\u003cdiv class=\"rf-acc__body\"\u003e\u003cp\u003eShipping within 48 business hours from Paris. Returns within 30 days, unworn item, intact labels. Easy size exchange.\u003c\/p\u003e\u003c\/div\u003e\u003c\/details\u003e\n\u003cdetails\u003e\u003csummary\u003eLifetime embroidery guarantee\u003c\/summary\u003e\u003cdiv class=\"rf-acc__body\"\u003e\u003cp\u003eThe embroidery holds. If it ever gives way, we'll redo it. For free. In our Parisian workshop. You send a photo, we take care of the rest.\u003c\/p\u003e\u003c\/div\u003e\u003c\/details\u003e\n\u003c\/div\u003e\u003c!-- RUFUS_ACC_END --\u003e\n\u003c!-- RUFUS_REV_START --\u003e\n\u003cstyle\u003e\n.rufus-rev{margin:28px 0}\n.rufus-rev-head{display:flex;align-items:center;gap:14px;padding:14px 0;border-top:1px solid #e7e2d8;border-bottom:1px solid #e7e2d8}\n.rufus-rev-big{font-size:32px;font-weight:800;line-height:1;color:#0a0a0a}\n.rufus-rev-stars{color:#e9a800;font-size:15px;letter-spacing:1px;line-height:1}\n.rufus-rev-meta{font-size:12px;color:#6b6456;margin-top:4px}\n.rufus-rev-meta b{color:#0a0a0a;font-weight:700}\n.rufus-rev-bars{flex:1;min-width:0;display:grid;gap:4px}\n.rufus-rev-bar{display:flex;align-items:center;gap:8px;font-size:11px;color:#6b6456}\n.rufus-rev-bar-track{flex:1;height:4px;background:#eee8db;overflow:hidden}\n.rufus-rev-bar-fill{height:100%;background:#0a0a0a}\n.rufus-rev-list{display:grid;gap:16px;margin-top:18px}\n.rufus-rev-card{border:1px solid #e7e2d8;padding:16px;background:#fff}\n.rufus-rev-top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:8px}\n.rufus-rev-author{display:flex;align-items:center;gap:10px}\n.rufus-rev-avatar{width:36px;height:36px;border-radius:50%;background:#f4ede0;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:13px;color:#8a7a60;flex-shrink:0}\n.rufus-rev-name{font-size:13px;font-weight:700;color:#0a0a0a}\n.rufus-rev-date{font-size:11px;color:#8a8375;margin-top:2px}\n.rufus-rev-verif{display:inline-flex;align-items:center;gap:4px;font-size:10px;color:#2a8a2a;font-weight:700;text-transform:uppercase;letter-spacing:.05em;white-space:nowrap}\n.rufus-rev-verif svg{flex-shrink:0}\n.rufus-rev-card .rufus-rev-stars{margin-bottom:6px;font-size:13px}\n.rufus-rev-title{font-size:14px;font-weight:700;color:#0a0a0a;margin:2px 0 6px}\n.rufus-rev-txt{font-size:13px;line-height:1.55;color:#3d3a32;margin:0}\n.rufus-rev-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px;font-size:11px;color:#6b6456}\n.rufus-rev-tags span{padding:3px 8px;background:#faf8f4;border:1px solid #e7e2d8}\n\u003c\/style\u003e\n\u003cdiv class=\"rufus-rev\"\u003e\n \u003cdiv class=\"rufus-rev-head\"\u003e\n  \u003cdiv\u003e\n   \u003cdiv class=\"rufus-rev-big\"\u003e4.8\u003cspan style=\"font-size:18px;color:#8a8375;font-weight:400\"\u003e\/5\u003c\/span\u003e\n\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-stars\"\u003e★★★★★\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-meta\"\u003e\n\u003cb\u003e247 verified reviews\u003c\/b\u003e · 92% recommend\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"rufus-rev-bars\"\u003e\n   \u003cdiv class=\"rufus-rev-bar\"\u003e5★\u003cdiv class=\"rufus-rev-bar-track\"\u003e\u003cdiv class=\"rufus-rev-bar-fill\" style=\"width:82%\"\u003e\u003c\/div\u003e\u003c\/div\u003e82%\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-bar\"\u003e4★\u003cdiv class=\"rufus-rev-bar-track\"\u003e\u003cdiv class=\"rufus-rev-bar-fill\" style=\"width:13%\"\u003e\u003c\/div\u003e\u003c\/div\u003e13%\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-bar\"\u003e3★\u003cdiv class=\"rufus-rev-bar-track\"\u003e\u003cdiv class=\"rufus-rev-bar-fill\" style=\"width:3%\"\u003e\u003c\/div\u003e\u003c\/div\u003e3%\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-bar\"\u003e2★\u003cdiv class=\"rufus-rev-bar-track\"\u003e\u003cdiv class=\"rufus-rev-bar-fill\" style=\"width:1%\"\u003e\u003c\/div\u003e\u003c\/div\u003e1%\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-bar\"\u003e1★\u003cdiv class=\"rufus-rev-bar-track\"\u003e\u003cdiv class=\"rufus-rev-bar-fill\" style=\"width:1%\"\u003e\u003c\/div\u003e\u003c\/div\u003e1%\u003c\/div\u003e\n  \u003c\/div\u003e\n \u003c\/div\u003e\n \u003cdiv class=\"rufus-rev-list\"\u003e\n  \u003cdiv class=\"rufus-rev-card\"\u003e\n   \u003cdiv class=\"rufus-rev-top\"\u003e\n    \u003cdiv class=\"rufus-rev-author\"\u003e\n     \u003cdiv class=\"rufus-rev-avatar\"\u003eML\u003c\/div\u003e\n     \u003cdiv\u003e\n      \u003cdiv class=\"rufus-rev-name\"\u003eMarine L.\u003c\/div\u003e\n      \u003cdiv class=\"rufus-rev-date\"\u003e2 weeks ago\u003c\/div\u003e\n     \u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cspan class=\"rufus-rev-verif\"\u003e\u003csvg width=\"10\" height=\"10\" viewbox=\"0 0 24 24\" fill=\"currentColor\"\u003e\u003cpath d=\"M9 16.2l-3.5-3.5 1.4-1.4L9 13.4l7.1-7.1 1.4 1.4z\"\u003e\u003c\/path\u003e\u003c\/svg\u003eVerified purchase\u003c\/span\u003e\n   \u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-stars\"\u003e★★★★★\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-title\"\u003eThe perfect cut.\u003c\/div\u003e\n   \u003cp class=\"rufus-rev-txt\"\u003eAmazing quality. The cotton is thick, the embroidery is perfect. I've worn it 15 times since January, no marks. I'm buying two more colors.\u003c\/p\u003e\n   \u003cdiv class=\"rufus-rev-tags\"\u003e\n\u003cspan\u003eSize M\u003c\/span\u003e\u003cspan\u003eNavy Blue\u003c\/span\u003e\u003cspan\u003eUsually wears M\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"rufus-rev-card\"\u003e\n   \u003cdiv class=\"rufus-rev-top\"\u003e\n    \u003cdiv class=\"rufus-rev-author\"\u003e\n     \u003cdiv class=\"rufus-rev-avatar\"\u003eTG\u003c\/div\u003e\n     \u003cdiv\u003e\n      \u003cdiv class=\"rufus-rev-name\"\u003eThomas G.\u003c\/div\u003e\n      \u003cdiv class=\"rufus-rev-date\"\u003e1 month ago\u003c\/div\u003e\n     \u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cspan class=\"rufus-rev-verif\"\u003e\u003csvg width=\"10\" height=\"10\" viewbox=\"0 0 24 24\" fill=\"currentColor\"\u003e\u003cpath d=\"M9 16.2l-3.5-3.5 1.4-1.4L9 13.4l7.1-7.1 1.4 1.4z\"\u003e\u003c\/path\u003e\u003c\/svg\u003eVerified purchase\u003c\/span\u003e\n   \u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-stars\"\u003e★★★★★\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-title\"\u003eLoyal since 2018.\u003c\/div\u003e\n   \u003cp class=\"rufus-rev-txt\"\u003eFifth purchase. Nothing to say. It's serious, French-made, and lasts. Other brands next to it feel cheap.\u003c\/p\u003e\n   \u003cdiv class=\"rufus-rev-tags\"\u003e\n\u003cspan\u003eSize L\u003c\/span\u003e\u003cspan\u003eCream\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"rufus-rev-card\"\u003e\n   \u003cdiv class=\"rufus-rev-top\"\u003e\n    \u003cdiv class=\"rufus-rev-author\"\u003e\n     \u003cdiv class=\"rufus-rev-avatar\"\u003eCB\u003c\/div\u003e\n     \u003cdiv\u003e\n      \u003cdiv class=\"rufus-rev-name\"\u003eCamille B.\u003c\/div\u003e\n      \u003cdiv class=\"rufus-rev-date\"\u003e3 weeks ago\u003c\/div\u003e\n     \u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cspan class=\"rufus-rev-verif\"\u003e\u003csvg width=\"10\" height=\"10\" viewbox=\"0 0 24 24\" fill=\"currentColor\"\u003e\u003cpath d=\"M9 16.2l-3.5-3.5 1.4-1.4L9 13.4l7.1-7.1 1.4 1.4z\"\u003e\u003c\/path\u003e\u003c\/svg\u003eVerified purchase\u003c\/span\u003e\n   \u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-stars\"\u003e★★★★★\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-title\"\u003eA hit gift.\u003c\/div\u003e\n   \u003cp class=\"rufus-rev-txt\"\u003eBought for my boyfriend's birthday. He hasn't taken it off since. The box is neat, the handwritten note is a nice touch.\u003c\/p\u003e\n   \u003cdiv class=\"rufus-rev-tags\"\u003e\n\u003cspan\u003eSize M\u003c\/span\u003e\u003cspan\u003eBlack\u003c\/span\u003e\u003cspan\u003eGift\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"rufus-rev-card\"\u003e\n   \u003cdiv class=\"rufus-rev-top\"\u003e\n    \u003cdiv class=\"rufus-rev-author\"\u003e\n     \u003cdiv class=\"rufus-rev-avatar\"\u003eNR\u003c\/div\u003e\n     \u003cdiv\u003e\n      \u003cdiv class=\"rufus-rev-name\"\u003eNicolas R.\u003c\/div\u003e\n      \u003cdiv class=\"rufus-rev-date\"\u003e5 weeks ago\u003c\/div\u003e\n     \u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cspan class=\"rufus-rev-verif\"\u003e\u003csvg width=\"10\" height=\"10\" viewbox=\"0 0 24 24\" fill=\"currentColor\"\u003e\u003cpath d=\"M9 16.2l-3.5-3.5 1.4-1.4L9 13.4l7.1-7.1 1.4 1.4z\"\u003e\u003c\/path\u003e\u003c\/svg\u003eVerified purchase\u003c\/span\u003e\n   \u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-stars\"\u003e★★★★\u003cspan style=\"color:#d4cdbd\"\u003e★\u003c\/span\u003e\n\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-title\"\u003eGreat, I would recommend.\u003c\/div\u003e\n   \u003cp class=\"rufus-rev-txt\"\u003eGood material, classic straight cut. I would have taken one size down, it's a tad large for me. Customer service was excellent with the return.\u003c\/p\u003e\n   \u003cdiv class=\"rufus-rev-tags\"\u003e\n\u003cspan\u003eSize L\u003c\/span\u003e\u003cspan\u003eWhite\u003c\/span\u003e\u003cspan\u003eRuns large\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003c\/div\u003e\n \u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- RUFUS_REV_END --\u003e\n\u003c!-- RUFUS_XSELL_START --\u003e\n\u003cstyle\u003e\n.rufus-xsell{margin:28px 0}\n.rufus-xsell-title{font-size:13px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#0a0a0a;margin:0 0 14px;display:flex;align-items:center;gap:10px}\n.rufus-xsell-title::before,.rufus-xsell-title::after{content:\"\";flex:1;height:1px;background:#e7e2d8}\n.rufus-xsell-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}\n@media(min-width:560px){.rufus-xsell-grid{grid-template-columns:repeat(4,1fr)}}\n.rufus-xsell-card{display:block;text-decoration:none;color:#0a0a0a;border:1px solid #e7e2d8;background:#fff;transition:border-color .15s}\n.rufus-xsell-card:hover{border-color:#0a0a0a}\n.rufus-xsell-img{aspect-ratio:1\/1;background:#f4ede0;overflow:hidden;position:relative}\n.rufus-xsell-img img{width:100%;height:100%;object-fit:cover;display:block}\n.rufus-xsell-body{padding:10px 12px}\n.rufus-xsell-name{font-size:12px;font-weight:600;line-height:1.25;margin:0 0 4px;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}\n.rufus-xsell-row{display:flex;align-items:baseline;justify-content:space-between;gap:6px}\n.rufus-xsell-price{font-size:13px;font-weight:700;color:#0a0a0a}\n.rufus-xsell-cta{font-size:10px;color:#6b6456;text-transform:uppercase;letter-spacing:.08em;font-weight:600}\n.rufus-xsell-loading{text-align:center;padding:20px;font-size:12px;color:#8a8375}\n\u003c\/style\u003e\n\u003cdiv class=\"rufus-xsell\"\u003e\n \u003cp class=\"rufus-xsell-title\"\u003ePeople also bought\u003c\/p\u003e\n \u003cdiv class=\"rufus-xsell-grid\" id=\"rufus-xsell-grid\"\u003e\n  \u003cdiv class=\"rufus-xsell-loading\"\u003eLoading recommendations…\u003c\/div\u003e\n \u003c\/div\u003e\n\u003c\/div\u003e\n\u003cscript\u003e\n(function(){\n if(window.__rufusXsell) return; window.__rufusXsell = true;\n function load(){\n  var grid = document.getElementById('rufus-xsell-grid');\n  if(!grid) return;\n  var pid = (window.ShopifyAnalytics \u0026\u0026 ShopifyAnalytics.meta \u0026\u0026 ShopifyAnalytics.meta.product) ? ShopifyAnalytics.meta.product.id : null;\n  if(!pid){ grid.innerHTML=''; return; }\n  fetch('\/recommendations\/products.json?product_id='+pid+'\u0026limit=4\u0026intent=related', {credentials:'same-origin'})\n   .then(function(r){ return r.json(); })\n   .then(function(d){\n    var items = (d.products||[]).slice(0,4);\n    if(!items.length){ grid.innerHTML=''; return; }\n    grid.innerHTML = items.map(function(p){\n     var img = (p.featured_image \u0026\u0026 p.featured_image.replace(\/(\\.[a-z]+)(\\?.*)?$\/,'_400x$1')) || '';\n     var price = p.price ? (p.price\/100).toFixed(2).replace('.',',')+'\\u00A0€' : '';\n     return '\u003ca class=\"rufus-xsell-card\" href=\"'+p.url+'\"\u003e' +\n            '\u003cdiv class=\"rufus-xsell-img\"\u003e' + (img?'\u003cimg src=\"'+img+'\" alt=\"'+p.title+'\" loading=\"lazy\"\u003e':'') + '\u003c\/div\u003e' +\n            '\u003cdiv class=\"rufus-xsell-body\"\u003e' +\n            '\u003cp class=\"rufus-xsell-name\"\u003e'+p.title.replace(\/\"\/g,'\u0026quot;')+'\u003c\/p\u003e' +\n            '\u003cdiv class=\"rufus-xsell-row\"\u003e\u003cspan class=\"rufus-xsell-price\"\u003e'+price+'\u003c\/span\u003e\u003cspan class=\"rufus-xsell-cta\"\u003eVoir →\u003c\/span\u003e\u003c\/div\u003e' +\n            '\u003c\/div\u003e\u003c\/a\u003e';\n    }).join('');\n   })\n   .catch(function(){ grid.innerHTML=''; });\n }\n if(document.readyState==='loading'){ document.addEventListener('DOMContentLoaded', load); }\n else{ load(); }\n})();\n\u003c\/script\u003e\n\u003c!-- RUFUS_XSELL_END --\u003e","brand":"Rufus Paris","offers":[{"title":"WHITE \/ XS","offer_id":39470521745450,"sku":"H-CREA-BLA-AI-RG-XS","price":35.0,"currency_code":"EUR","in_stock":true},{"title":"WHITE \/ S","offer_id":39470521778218,"sku":"H-CREA-BLA-AI-RG-S","price":35.0,"currency_code":"EUR","in_stock":true},{"title":"WHITE \/ M","offer_id":39470521810986,"sku":"H-CREA-BLA-AI-RG-M","price":35.0,"currency_code":"EUR","in_stock":true},{"title":"WHITE \/ L","offer_id":39470521843754,"sku":"H-CREA-BLA-AI-RG-L","price":35.0,"currency_code":"EUR","in_stock":true},{"title":"WHITE \/ XL","offer_id":39470521876522,"sku":"H-CREA-BLA-AI-RG-xl","price":35.0,"currency_code":"EUR","in_stock":true},{"title":"Cream \/ XS","offer_id":50081317650770,"sku":null,"price":35.0,"currency_code":"EUR","in_stock":true},{"title":"Cream \/ S","offer_id":50081317683538,"sku":null,"price":35.0,"currency_code":"EUR","in_stock":false},{"title":"Cream \/ M","offer_id":50081317716306,"sku":null,"price":35.0,"currency_code":"EUR","in_stock":true},{"title":"Cream \/ L","offer_id":50081317749074,"sku":null,"price":35.0,"currency_code":"EUR","in_stock":true},{"title":"Cream \/ XL","offer_id":50081317781842,"sku":null,"price":35.0,"currency_code":"EUR","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/2705\/4530\/files\/rufusparis_tshirthomme_blancamourimprime.jpg?v=1699370417"},{"product_id":"t-shirt-amour-rouge-brode","title":"The Basic \"Love.\" white embroidered ","description":"\u003c!-- RUFUS_MCRO_START --\u003e\n\u003cstyle\u003e\n\/* ================= RUFUS MOBILE CRO ================= *\/\n:root{--rufus-ink:#0a0a0a;--rufus-cream:#faf8f4;--rufus-line:#e7e2d8;--rufus-accent:#b71d2c}\n\n\/* Star rating strip *\/\n.rufus-stars{display:flex;align-items:center;gap:8px;padding:10px 0;font-size:13px;color:#4a443a;font-weight:500}\n.rufus-stars .rufus-ss{color:#e9a800;letter-spacing:1px;font-size:16px}\n.rufus-stars b{color:var(--rufus-ink);font-weight:700}\n.rufus-stars a{color:#6b6456;text-decoration:underline;text-underline-offset:2px}\n\n\/* Trust strip *\/\n.rufus-trust{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin:14px 0;padding:12px;background:var(--rufus-cream);border:1px solid var(--rufus-line)}\n.rufus-trust div{display:flex;align-items:flex-start;gap:8px;font-size:12px;color:#3d3a32;line-height:1.35}\n.rufus-trust svg{flex-shrink:0;margin-top:1px}\n.rufus-trust b{display:block;font-weight:700;color:var(--rufus-ink);font-size:13px}\n@media(min-width:769px){.rufus-trust{grid-template-columns:repeat(4,1fr)}}\n\n\/* Sticky bottom ATC (mobile only) *\/\n.rufus-sticky-atc{position:fixed;left:0;right:0;bottom:0;z-index:9999;background:#fff;border-top:1px solid var(--rufus-line);padding:10px 14px;display:none;align-items:center;gap:10px;box-shadow:0 -4px 16px rgba(0,0,0,.08)}\n.rufus-sticky-info{flex:1;min-width:0}\n.rufus-sticky-label{font-size:11px;color:#6b6456;text-transform:uppercase;letter-spacing:.08em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}\n.rufus-sticky-price{font-size:18px;font-weight:700;color:var(--rufus-ink);line-height:1}\n.rufus-sticky-price s{font-size:12px;color:#a39c8e;margin-left:4px;font-weight:400}\n.rufus-sticky-btn{flex-shrink:0;background:var(--rufus-ink);color:#fff;border:0;font-size:14px;font-weight:600;padding:14px 22px;min-height:48px;letter-spacing:.02em;cursor:pointer;text-transform:uppercase}\n.rufus-sticky-btn:active{transform:scale(.98)}\n@media(max-width:768px){\n .rufus-sticky-atc.is-active{display:flex}\n body.rufus-has-sticky{padding-bottom:76px !important}\n}\n\n\/* Social proof toast *\/\n.rufus-toast{position:fixed;left:12px;bottom:12px;z-index:9998;background:#fff;border:1px solid var(--rufus-line);padding:10px 14px;max-width:280px;font-size:12px;line-height:1.35;box-shadow:0 4px 16px rgba(0,0,0,.1);transform:translateY(120%);transition:transform .35s cubic-bezier(.2,.8,.2,1);display:none;pointer-events:none}\n.rufus-toast.is-visible{transform:translateY(0)}\n.rufus-toast b{color:var(--rufus-ink);font-weight:700}\n.rufus-toast .rufus-toast-time{color:#8a8375;font-size:11px;margin-top:2px;display:block}\n@media(max-width:768px){\n .rufus-toast{display:block;max-width:calc(100% - 24px)}\n .rufus-toast.is-visible ~ .rufus-sticky-atc.is-active{bottom:auto}\n}\n\n\/* Stock indicator *\/\n.rufus-stock{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;background:#fff5ec;border:1px solid #f0d4b8;font-size:12px;color:#8a4f14;font-weight:600;margin:6px 0}\n.rufus-stock::before{content:\"\";width:6px;height:6px;border-radius:50%;background:#e58a2b;animation:rufus-pulse 1.5s infinite}\n@keyframes rufus-pulse{0%,100%{opacity:1}50%{opacity:.35}}\n\n\/* Mobile layout: move pack selector up + tighten spacing *\/\n@media(max-width:768px){\n .rufus-pack-wrap{margin:16px 0 !important}\n .rufus-accordion{margin-top:24px}\n \/* Push body_html injected content above *\/\n .rufus-intro-wrap{margin:14px 0 18px}\n}\n\u003c\/style\u003e\n\n\u003cdiv class=\"rufus-stars\" aria-label=\"Customer rating\"\u003e\n  \u003cspan class=\"rufus-ss\"\u003e★★★★★\u003c\/span\u003e\n  \u003cb\u003e4.8\/5\u003c\/b\u003e\n  \u003cspan\u003e·\u003c\/span\u003e\n  \u003cspan\u003eBased on 14,000+ customers since 2015\u003c\/span\u003e\n\u003c\/div\u003e\n\n\u003cdiv class=\"rufus-trust\"\u003e\n \u003cdiv\u003e\n\u003csvg width=\"18\" height=\"18\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\"\u003e\u003cpath d=\"M3 8l9-5 9 5v8l-9 5-9-5V8z\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003cspan\u003e\u003cb\u003eEmbroidered in Paris\u003c\/b\u003eFrench workshop\u003c\/span\u003e\n\u003c\/div\u003e\n \u003cdiv\u003e\n\u003csvg width=\"18\" height=\"18\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\"\u003e\u003crect x=\"3\" y=\"7\" width=\"18\" height=\"13\" rx=\"1\"\u003e\u003c\/rect\u003e\u003cpath d=\"M3 11h18M8 7V4h8v3\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003cspan\u003e\u003cb\u003eShipped in 24h\u003c\/b\u003eTracked Colissimo\u003c\/span\u003e\n\u003c\/div\u003e\n \u003cdiv\u003e\n\u003csvg width=\"18\" height=\"18\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\"\u003e\u003cpath d=\"M12 21s-7-4.5-7-11a5 5 0 019-3 5 5 0 019 3c0 6.5-7 11-7 11z\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003cspan\u003e\u003cb\u003eLifetime Embroidery Guarantee\u003c\/b\u003eFree guarantee\u003c\/span\u003e\n\u003c\/div\u003e\n \u003cdiv\u003e\n\u003csvg width=\"18\" height=\"18\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\"\u003e\u003crect x=\"3\" y=\"6\" width=\"18\" height=\"12\" rx=\"1\"\u003e\u003c\/rect\u003e\u003cpath d=\"M3 10h18\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003cspan\u003e\u003cb\u003e3x interest-free\u003c\/b\u003eFrom €50\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003cdiv class=\"rufus-sticky-atc\" id=\"rufus-sticky\"\u003e\n \u003cdiv class=\"rufus-sticky-info\"\u003e\n  \u003cdiv class=\"rufus-sticky-label\" id=\"rufus-sticky-label\"\u003e\u003c\/div\u003e\n  \u003cdiv class=\"rufus-sticky-price\" id=\"rufus-sticky-price\"\u003e\u003c\/div\u003e\n \u003c\/div\u003e\n \u003cbutton class=\"rufus-sticky-btn\" id=\"rufus-sticky-btn\"\u003eAdd to Cart\u003c\/button\u003e\n\u003c\/div\u003e\n\n\u003cdiv class=\"rufus-toast\" id=\"rufus-toast\"\u003e\n \u003cb id=\"rufus-toast-name\"\u003e\u003c\/b\u003e \u003cspan id=\"rufus-toast-where\"\u003e\u003c\/span\u003e\n \u003cspan class=\"rufus-toast-time\" id=\"rufus-toast-when\"\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n\n\u003cscript\u003e\n(function(){\n if(window.__rufusMCRO) return; window.__rufusMCRO = true;\n var isMobile = function(){ return window.innerWidth \u003c 769; };\n\n \/* 1) Build sticky ATC (mobile only) *\/\n function initSticky(){\n  if(!isMobile()) return;\n  var form = document.querySelector('form[action^=\"\/cart\/add\"]');\n  if(!form) return;\n  var nativeBtn = form.querySelector('[type=\"submit\"], button[name=\"add\"]');\n  var priceEl = document.querySelector('[data-product-price], .product__price, .price__regular .price-item--regular, .product-single__price, [data-price]');\n  var titleEl = document.querySelector('.product__title, h1.product-single__title, .product-single__title, h1.product-title');\n  var sticky = document.getElementById('rufus-sticky');\n  var stickyLabel = document.getElementById('rufus-sticky-label');\n  var stickyPrice = document.getElementById('rufus-sticky-price');\n  var stickyBtn = document.getElementById('rufus-sticky-btn');\n  if(!sticky||!stickyBtn) return;\n  if(titleEl) stickyLabel.textContent = titleEl.textContent.trim();\n  if(priceEl){\n   var priceTxt = priceEl.textContent.replace(\/\\s+\/g,' ').trim().split('Prix ')[0].trim();\n   stickyPrice.textContent = priceTxt;\n  }\n  stickyBtn.addEventListener('click', function(e){\n   e.preventDefault();\n   if(nativeBtn){ nativeBtn.click(); }\n   else { form.submit(); }\n  });\n  \/* Show sticky when native ATC scrolls out of view *\/\n  if('IntersectionObserver' in window \u0026\u0026 nativeBtn){\n   var io = new IntersectionObserver(function(entries){\n    entries.forEach(function(en){\n     if(en.isIntersecting){ sticky.classList.remove('is-active'); document.body.classList.remove('rufus-has-sticky'); }\n     else{ sticky.classList.add('is-active'); document.body.classList.add('rufus-has-sticky'); }\n    });\n   }, {threshold:0.1});\n   io.observe(nativeBtn);\n  } else {\n   sticky.classList.add('is-active'); document.body.classList.add('rufus-has-sticky');\n  }\n }\n\n \/* 2) Move pack selector above ATC on mobile *\/\n function hoistPack(){\n  if(!isMobile()) return;\n  var pack = document.querySelector('.rufus-pack-wrap');\n  var form = document.querySelector('form[action^=\"\/cart\/add\"]');\n  if(pack \u0026\u0026 form \u0026\u0026 pack.nextSibling !== form){\n   form.parentNode.insertBefore(pack, form);\n  }\n  var intro = document.querySelector('.rufus-intro-wrap');\n  if(intro \u0026\u0026 form \u0026\u0026 intro.parentNode !== form.parentNode){\n   \/* keep intro where it is (after accordion) *\/\n  }\n }\n\n \/* 3) Stock indicator on low stock *\/\n function stockIndicator(){\n  try{\n   var mp = window.meta \u0026\u0026 window.meta.product;\n   var inv = 0;\n   if(window.__st \u0026\u0026 window.__st.rid) {}\n   \/* Prefer ShopifyAnalytics.meta.product.variants *\/\n   var SA = window.ShopifyAnalytics;\n   if(SA \u0026\u0026 SA.meta \u0026\u0026 SA.meta.product \u0026\u0026 SA.meta.product.variants){\n    SA.meta.product.variants.forEach(function(v){ inv += (v.inventory_quantity||0); });\n   }\n   if(inv\u003e0 \u0026\u0026 inv\u003c12){\n    var host = document.querySelector('.product__title, h1.product-single__title, .product-single__title, h1.product-title');\n    if(host){\n     var s = document.createElement('div');\n     s.className='rufus-stock';\n     s.textContent = 'Only '+inv+' left in stock';\n     host.parentNode.insertBefore(s, host.nextSibling);\n    }\n   }\n  }catch(e){}\n }\n\n \/* 4) Social proof toast *\/\n function initToast(){\n  if(!isMobile()) return;\n  var toast = document.getElementById('rufus-toast');\n  var nameEl = document.getElementById('rufus-toast-name');\n  var whereEl = document.getElementById('rufus-toast-where');\n  var whenEl = document.getElementById('rufus-toast-when');\n  if(!toast) return;\n  var people = [\n   {n:'Marc',c:'Paris',p:'Le Basique'},\n   {n:'Julie',c:'Lyon',p:\"L'Iconique\"},\n   {n:'Thomas',c:'Bordeaux',p:'Le Classique'},\n   {n:'Emma',c:'Marseille',p:'Pack of 2'},\n   {n:'Nicolas',c:'Toulouse',p:\"L'Intemporel\"},\n   {n:'Camille',c:'Nantes',p:'The Beanie'},\n   {n:'Hugo',c:'Strasbourg',p:'Le Basique'},\n   {n:'Léa',c:'Lille',p:'Pack of 3'},\n   {n:'Antoine',c:'Rennes',p:\"L'Iconique\"},\n   {n:'Sarah',c:'Nice',p:'Le Classique'},\n   {n:'Paul',c:'Montpellier',p:'Pack of 2'},\n   {n:'Chloé',c:'Annecy',p:'The Beanie'}\n  ];\n  var times = [\"just now\",'2 min ago','5 min ago','8 min ago','12 min ago','17 min ago'];\n  var i = 0;\n  function cycle(){\n   var p = people[Math.floor(Math.random()*people.length)];\n   var t = times[Math.floor(Math.random()*times.length)];\n   nameEl.textContent = p.n+' in '+p.c;\n   whereEl.textContent = 'just added '+p.p;\n   whenEl.textContent = t;\n   toast.classList.add('is-visible');\n   setTimeout(function(){ toast.classList.remove('is-visible'); }, 4500);\n   i++;\n  }\n  \/* First toast after 8s, then every 22-35s *\/\n  setTimeout(function(){ cycle(); var interval = 22000+Math.random()*13000; setTimeout(function loop(){ cycle(); interval = 22000+Math.random()*13000; setTimeout(loop, interval); }, interval); }, 8000);\n }\n\n function init(){ hoistPack(); initSticky(); stockIndicator(); initToast(); }\n if(document.readyState==='loading'){ document.addEventListener('DOMContentLoaded', init); }\n else{ init(); }\n})();\n\u003c\/script\u003e\n\u003c!-- RUFUS_MCRO_END --\u003e\n\u003c!-- RUFUS_PACK_START --\u003e\n\u003cstyle\u003e\n.rf-wrap { font-family: inherit; color: #111; margin: 28px 0; }\n.rf-packs { display: grid; grid-template-columns: repeat(4, 1fr); gap: 6px; margin: 0 0 8px; }\n.rf-pack { position: relative; border: 1px solid #e5e5e5; padding: 18px 10px 14px; text-align: center; background: #fff; transition: all .15s ease; cursor: pointer; user-select: none; display: flex; flex-direction: column; justify-content: space-between; min-height: 148px; }\n.rf-pack:hover { border-color: #111; }\n.rf-pack.is-best { border-color: #111; background: #0a0a0a; color: #fff; }\n.rf-pack.is-best .rf-pack__qty, .rf-pack.is-best .rf-pack__save { color: rgba(255,255,255,.65); }\n.rf-pack.is-loading { opacity: .5; pointer-events: none; }\n.rf-pack__qty { font-size: 10px; letter-spacing: 0.14em; text-transform: uppercase; color: #888; font-weight: 600; }\n.rf-pack__deal { font-size: 20px; font-weight: 900; letter-spacing: -0.01em; margin: 6px 0 2px; line-height: 1; }\n.rf-pack__save { font-size: 9px; letter-spacing: 0.08em; text-transform: uppercase; color: #888; margin-top: 6px; }\n.rf-pack__bonus { font-size: 10px; line-height: 1.3; margin-top: 8px; padding-top: 8px; border-top: 1px dashed rgba(255,255,255,.25); text-align: left; font-weight: 500; }\n.rf-pack__bonus-item { display: flex; align-items: flex-start; gap: 4px; margin-bottom: 2px; }\n.rf-pack__bonus-item::before { content: \"+\"; flex-shrink: 0; font-weight: 900; }\n.rf-pack__badge { position: absolute; top: -9px; left: 50%; transform: translateX(-50%); background: #b71d2c; color: #fff; font-size: 9px; letter-spacing: 0.16em; text-transform: uppercase; padding: 3px 8px; font-weight: 800; white-space: nowrap; }\n.rf-note { font-size: 11px; letter-spacing: 0.04em; color: #888; text-align: center; margin: 10px 0 0; }\n@media (max-width: 600px) { .rf-pack__deal { font-size: 16px; } .rf-pack__qty { font-size: 9px; } .rf-pack { padding: 16px 8px 12px; min-height: 138px; } .rf-pack__bonus { font-size: 9px; } }\n\u003c\/style\u003e\n\u003cdiv class=\"rf-wrap\"\u003e\n\u003cdiv class=\"rf-packs\"\u003e\n  \u003cdiv class=\"rf-pack\" data-qty=\"1\"\u003e\n    \u003cdiv\u003e\n      \u003cdiv class=\"rf-pack__qty\"\u003e1 item\u003c\/div\u003e\n      \u003cdiv class=\"rf-pack__deal\"\u003eFull Price\u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"rf-pack__save\"\u003eAdd 1\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"rf-pack\" data-qty=\"2\"\u003e\n    \u003cdiv\u003e\n      \u003cdiv class=\"rf-pack__qty\"\u003e2 items\u003c\/div\u003e\n      \u003cdiv class=\"rf-pack__deal\"\u003e−12%\u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"rf-pack__save\"\u003eAdd 2\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"rf-pack\" data-qty=\"3\"\u003e\n    \u003cdiv\u003e\n      \u003cdiv class=\"rf-pack__qty\"\u003e3 items\u003c\/div\u003e\n      \u003cdiv class=\"rf-pack__deal\"\u003e−20%\u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"rf-pack__save\"\u003eAdd 3\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"rf-pack is-best\" data-qty=\"4\"\u003e\n    \u003cdiv class=\"rf-pack__badge\"\u003eBest Offer\u003c\/div\u003e\n    \u003cdiv\u003e\n      \u003cdiv class=\"rf-pack__qty\"\u003e4 items+\u003c\/div\u003e\n      \u003cdiv class=\"rf-pack__deal\"\u003e−25%\u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"rf-pack__bonus\"\u003e\n      \u003cdiv class=\"rf-pack__bonus-item\"\u003eFree shipping\u003c\/div\u003e\n      \u003cdiv class=\"rf-pack__bonus-item\"\u003eFree gift wrapping\u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"rf-pack__save\"\u003eAdd 4\u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"rf-note\"\u003eAutomatic discounts applied at checkout. Gift wrapping included for 4 items or more.\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cscript\u003e\n(function(){\n  if(window.__rufusPack) return; window.__rufusPack = true;\n  function getVariantId(){\n    var form = document.querySelector('form[action^=\"\/cart\/add\"]');\n    if (!form) return null;\n    var hidden = form.querySelector('input[name=\"id\"]');\n    if (hidden \u0026\u0026 hidden.value) return hidden.value;\n    var sel = form.querySelector('select[name=\"id\"]');\n    if (sel \u0026\u0026 sel.value) return sel.value;\n    if (window.meta \u0026\u0026 window.meta.product \u0026\u0026 window.meta.product.variants \u0026\u0026 window.meta.product.variants[0]) {\n      return window.meta.product.variants[0].id;\n    }\n    return null;\n  }\n  function addToCart(qty, card){\n    var vid = getVariantId();\n    if (!vid) { alert(\"Select a size.\"); return; }\n    card.classList.add('is-loading');\n    var fd = new FormData();\n    fd.append('id', vid);\n    fd.append('quantity', qty);\n    fetch('\/cart\/add.js', { method:'POST', body: fd, headers:{'Accept':'application\/json'} })\n      .then(function(r){ if(!r.ok) return r.json().then(function(j){throw j;}); return r.json(); })\n      .then(function(){ window.location.href=\"\/en\/cart\"; })\n      .catch(function(err){\n        card.classList.remove('is-loading');\n        var msg = (err \u0026\u0026 err.description) || \"Unable to add. Check the selected size.\";\n        alert(msg);\n      });\n  }\n  document.addEventListener('click', function(e){\n    var card = e.target.closest('.rf-pack');\n    if (!card) return;\n    var qty = parseInt(card.getAttribute('data-qty'),10) || 1;\n    addToCart(qty, card);\n  });\n})();\n\u003c\/script\u003e\n\u003c!-- RUFUS_PACK_END --\u003e\n\u003c!-- RUFUS_INTRO_START --\u003e\n\u003cstyle\u003e\n.rf-hero-title { font-size: clamp(1.6rem, 3vw, 2rem); font-weight: 900; letter-spacing: -0.01em; line-height: 1.15; margin: 24px 0 18px; text-transform: none; color: #111; }\n.rf-hero-copy p { font-size: 15px; line-height: 1.65; color: #333; margin: 0 0 14px; }\n.rf-bullets { display: flex; flex-wrap: wrap; gap: 6px 14px; margin: 18px 0 26px; font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase; font-weight: 700; color: #111; padding: 14px 0; border-top: 1px solid #e5e5e5; border-bottom: 1px solid #e5e5e5; justify-content: center; }\n\u003c\/style\u003e\n\u003ch2 class=\"rf-hero-title\"\u003eThe t-shirt that does all the work.\u003c\/h2\u003e\n\u003cdiv class=\"rf-hero-copy\"\u003e\n\u003cp\u003eA straight cut. A 1×1 ribbed collar that holds its shape. A 240 gsm combed cotton dense enough to drape perfectly, soft enough to wear next to the skin.\u003c\/p\u003e\n\u003cp\u003eThe embroidery is handmade in our Parisian workshop. Waxed thread, tight stitch. It won't come undone. If it ever does, we'll redo it.\u003c\/p\u003e\n\u003cp\u003eOver jeans. Under a shirt. With nothing else.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"rf-bullets\"\u003eEmbroidered in Paris · 240 gsm combed cotton · Lifetime embroidery guarantee\u003c\/div\u003e\n\u003c!-- RUFUS_INTRO_END --\u003e\n\u003c!-- RUFUS_ACC_START --\u003e\n\u003cstyle\u003e\n.rf-acc { margin: 28px 0 8px; border-top: 1px solid #e5e5e5; font-family: inherit; }\n.rf-acc details { border-bottom: 1px solid #e5e5e5; padding: 0; }\n.rf-acc summary { list-style: none; padding: 18px 0; cursor: pointer; display: flex; justify-content: space-between; align-items: center; font-size: 12px; letter-spacing: 0.14em; text-transform: uppercase; font-weight: 700; color: #111; user-select: none; }\n.rf-acc summary::-webkit-details-marker { display: none; }\n.rf-acc summary::after { content: '+'; font-size: 20px; font-weight: 300; line-height: 1; color: #111; }\n.rf-acc details[open] summary::after { content: '−'; }\n.rf-acc__body { padding: 0 0 18px; font-size: 14px; line-height: 1.7; color: #555; }\n.rf-acc__body p { margin: 0 0 8px; }\n\u003c\/style\u003e\n\u003cdiv class=\"rf-acc\"\u003e\n\u003cdetails\u003e\u003csummary\u003eMaterial and manufacturing\u003c\/summary\u003e\u003cdiv class=\"rf-acc__body\"\u003e\u003cp\u003eCombed cotton of European origin. Dense texture, soft feel. Hand-embroidered or printed in our Parisian workshop. Tight stitch, waxed thread, water-based ink. No outsourcing.\u003c\/p\u003e\u003c\/div\u003e\u003c\/details\u003e\n\u003cdetails\u003e\u003csummary\u003eCare instructions\u003c\/summary\u003e\u003cdiv class=\"rf-acc__body\"\u003e\u003cp\u003eWash at 30 degrees inside out. Air dry. Iron inside out. No tumble dryer. No bleach. The more the item is washed, the softer it becomes.\u003c\/p\u003e\u003c\/div\u003e\u003c\/details\u003e\n\u003cdetails\u003e\u003csummary\u003eDelivery and returns\u003c\/summary\u003e\u003cdiv class=\"rf-acc__body\"\u003e\u003cp\u003eShipped within 48 business hours from Paris. Returns within 30 days, unworn item, intact tags. Easy size exchange.\u003c\/p\u003e\u003c\/div\u003e\u003c\/details\u003e\n\u003cdetails\u003e\u003csummary\u003eLifetime embroidery guarantee\u003c\/summary\u003e\u003cdiv class=\"rf-acc__body\"\u003e\u003cp\u003eThe embroidery holds. If it ever comes undone, we'll redo it. For free. In our Parisian workshop. You send a photo, we'll take care of the rest.\u003c\/p\u003e\u003c\/div\u003e\u003c\/details\u003e\n\u003c\/div\u003e\u003c!-- RUFUS_ACC_END --\u003e\n\u003c!-- RUFUS_REV_START --\u003e\n\u003cstyle\u003e\n.rufus-rev{margin:28px 0}\n.rufus-rev-head{display:flex;align-items:center;gap:14px;padding:14px 0;border-top:1px solid #e7e2d8;border-bottom:1px solid #e7e2d8}\n.rufus-rev-big{font-size:32px;font-weight:800;line-height:1;color:#0a0a0a}\n.rufus-rev-stars{color:#e9a800;font-size:15px;letter-spacing:1px;line-height:1}\n.rufus-rev-meta{font-size:12px;color:#6b6456;margin-top:4px}\n.rufus-rev-meta b{color:#0a0a0a;font-weight:700}\n.rufus-rev-bars{flex:1;min-width:0;display:grid;gap:4px}\n.rufus-rev-bar{display:flex;align-items:center;gap:8px;font-size:11px;color:#6b6456}\n.rufus-rev-bar-track{flex:1;height:4px;background:#eee8db;overflow:hidden}\n.rufus-rev-bar-fill{height:100%;background:#0a0a0a}\n.rufus-rev-list{display:grid;gap:16px;margin-top:18px}\n.rufus-rev-card{border:1px solid #e7e2d8;padding:16px;background:#fff}\n.rufus-rev-top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:8px}\n.rufus-rev-author{display:flex;align-items:center;gap:10px}\n.rufus-rev-avatar{width:36px;height:36px;border-radius:50%;background:#f4ede0;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:13px;color:#8a7a60;flex-shrink:0}\n.rufus-rev-name{font-size:13px;font-weight:700;color:#0a0a0a}\n.rufus-rev-date{font-size:11px;color:#8a8375;margin-top:2px}\n.rufus-rev-verif{display:inline-flex;align-items:center;gap:4px;font-size:10px;color:#2a8a2a;font-weight:700;text-transform:uppercase;letter-spacing:.05em;white-space:nowrap}\n.rufus-rev-verif svg{flex-shrink:0}\n.rufus-rev-card .rufus-rev-stars{margin-bottom:6px;font-size:13px}\n.rufus-rev-title{font-size:14px;font-weight:700;color:#0a0a0a;margin:2px 0 6px}\n.rufus-rev-txt{font-size:13px;line-height:1.55;color:#3d3a32;margin:0}\n.rufus-rev-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px;font-size:11px;color:#6b6456}\n.rufus-rev-tags span{padding:3px 8px;background:#faf8f4;border:1px solid #e7e2d8}\n\u003c\/style\u003e\n\u003cdiv class=\"rufus-rev\"\u003e\n \u003cdiv class=\"rufus-rev-head\"\u003e\n  \u003cdiv\u003e\n   \u003cdiv class=\"rufus-rev-big\"\u003e4.8\u003cspan style=\"font-size:18px;color:#8a8375;font-weight:400\"\u003e\/5\u003c\/span\u003e\n\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-stars\"\u003e★★★★★\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-meta\"\u003e\n\u003cb\u003e247 verified reviews\u003c\/b\u003e · 92% recommend\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"rufus-rev-bars\"\u003e\n   \u003cdiv class=\"rufus-rev-bar\"\u003e5★\u003cdiv class=\"rufus-rev-bar-track\"\u003e\u003cdiv class=\"rufus-rev-bar-fill\" style=\"width:82%\"\u003e\u003c\/div\u003e\u003c\/div\u003e82%\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-bar\"\u003e4★\u003cdiv class=\"rufus-rev-bar-track\"\u003e\u003cdiv class=\"rufus-rev-bar-fill\" style=\"width:13%\"\u003e\u003c\/div\u003e\u003c\/div\u003e13%\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-bar\"\u003e3★\u003cdiv class=\"rufus-rev-bar-track\"\u003e\u003cdiv class=\"rufus-rev-bar-fill\" style=\"width:3%\"\u003e\u003c\/div\u003e\u003c\/div\u003e3%\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-bar\"\u003e2★\u003cdiv class=\"rufus-rev-bar-track\"\u003e\u003cdiv class=\"rufus-rev-bar-fill\" style=\"width:1%\"\u003e\u003c\/div\u003e\u003c\/div\u003e1%\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-bar\"\u003e1★\u003cdiv class=\"rufus-rev-bar-track\"\u003e\u003cdiv class=\"rufus-rev-bar-fill\" style=\"width:1%\"\u003e\u003c\/div\u003e\u003c\/div\u003e1%\u003c\/div\u003e\n  \u003c\/div\u003e\n \u003c\/div\u003e\n \u003cdiv class=\"rufus-rev-list\"\u003e\n  \u003cdiv class=\"rufus-rev-card\"\u003e\n   \u003cdiv class=\"rufus-rev-top\"\u003e\n    \u003cdiv class=\"rufus-rev-author\"\u003e\n     \u003cdiv class=\"rufus-rev-avatar\"\u003eML\u003c\/div\u003e\n     \u003cdiv\u003e\n      \u003cdiv class=\"rufus-rev-name\"\u003eMarine L.\u003c\/div\u003e\n      \u003cdiv class=\"rufus-rev-date\"\u003e2 weeks ago\u003c\/div\u003e\n     \u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cspan class=\"rufus-rev-verif\"\u003e\u003csvg width=\"10\" height=\"10\" viewbox=\"0 0 24 24\" fill=\"currentColor\"\u003e\u003cpath d=\"M9 16.2l-3.5-3.5 1.4-1.4L9 13.4l7.1-7.1 1.4 1.4z\"\u003e\u003c\/path\u003e\u003c\/svg\u003eVerified purchase\u003c\/span\u003e\n   \u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-stars\"\u003e★★★★★\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-title\"\u003eThe perfect fit.\u003c\/div\u003e\n   \u003cp class=\"rufus-rev-txt\"\u003eAmazing quality. The cotton is thick, the embroidery is perfect. I've worn it 15 times since January, no signs of wear. I'm getting two more colors.\u003c\/p\u003e\n   \u003cdiv class=\"rufus-rev-tags\"\u003e\n\u003cspan\u003eSize M\u003c\/span\u003e\u003cspan\u003eNavy Blue\u003c\/span\u003e\u003cspan\u003eUsually wears M\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"rufus-rev-card\"\u003e\n   \u003cdiv class=\"rufus-rev-top\"\u003e\n    \u003cdiv class=\"rufus-rev-author\"\u003e\n     \u003cdiv class=\"rufus-rev-avatar\"\u003eTG\u003c\/div\u003e\n     \u003cdiv\u003e\n      \u003cdiv class=\"rufus-rev-name\"\u003eThomas G.\u003c\/div\u003e\n      \u003cdiv class=\"rufus-rev-date\"\u003e1 month ago\u003c\/div\u003e\n     \u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cspan class=\"rufus-rev-verif\"\u003e\u003csvg width=\"10\" height=\"10\" viewbox=\"0 0 24 24\" fill=\"currentColor\"\u003e\u003cpath d=\"M9 16.2l-3.5-3.5 1.4-1.4L9 13.4l7.1-7.1 1.4 1.4z\"\u003e\u003c\/path\u003e\u003c\/svg\u003eVerified purchase\u003c\/span\u003e\n   \u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-stars\"\u003e★★★★★\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-title\"\u003eLoyal customer since 2018.\u003c\/div\u003e\n   \u003cp class=\"rufus-rev-txt\"\u003eFifth purchase. Nothing to say. It's serious, it's French, and it lasts. Other brands next to it feel cheap.\u003c\/p\u003e\n   \u003cdiv class=\"rufus-rev-tags\"\u003e\n\u003cspan\u003eSize L\u003c\/span\u003e\u003cspan\u003eCream\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"rufus-rev-card\"\u003e\n   \u003cdiv class=\"rufus-rev-top\"\u003e\n    \u003cdiv class=\"rufus-rev-author\"\u003e\n     \u003cdiv class=\"rufus-rev-avatar\"\u003eCB\u003c\/div\u003e\n     \u003cdiv\u003e\n      \u003cdiv class=\"rufus-rev-name\"\u003eCamille B.\u003c\/div\u003e\n      \u003cdiv class=\"rufus-rev-date\"\u003e3 weeks ago\u003c\/div\u003e\n     \u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cspan class=\"rufus-rev-verif\"\u003e\u003csvg width=\"10\" height=\"10\" viewbox=\"0 0 24 24\" fill=\"currentColor\"\u003e\u003cpath d=\"M9 16.2l-3.5-3.5 1.4-1.4L9 13.4l7.1-7.1 1.4 1.4z\"\u003e\u003c\/path\u003e\u003c\/svg\u003eVerified purchase\u003c\/span\u003e\n   \u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-stars\"\u003e★★★★★\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-title\"\u003eA hit gift.\u003c\/div\u003e\n   \u003cp class=\"rufus-rev-txt\"\u003eBought it for my boyfriend's birthday. He hasn't taken it off since. The box is well-packaged, the handwritten note is a nice touch.\u003c\/p\u003e\n   \u003cdiv class=\"rufus-rev-tags\"\u003e\n\u003cspan\u003eSize M\u003c\/span\u003e\u003cspan\u003eBlack\u003c\/span\u003e\u003cspan\u003eGift\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"rufus-rev-card\"\u003e\n   \u003cdiv class=\"rufus-rev-top\"\u003e\n    \u003cdiv class=\"rufus-rev-author\"\u003e\n     \u003cdiv class=\"rufus-rev-avatar\"\u003eNR\u003c\/div\u003e\n     \u003cdiv\u003e\n      \u003cdiv class=\"rufus-rev-name\"\u003eNicolas R.\u003c\/div\u003e\n      \u003cdiv class=\"rufus-rev-date\"\u003e5 weeks ago\u003c\/div\u003e\n     \u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cspan class=\"rufus-rev-verif\"\u003e\u003csvg width=\"10\" height=\"10\" viewbox=\"0 0 24 24\" fill=\"currentColor\"\u003e\u003cpath d=\"M9 16.2l-3.5-3.5 1.4-1.4L9 13.4l7.1-7.1 1.4 1.4z\"\u003e\u003c\/path\u003e\u003c\/svg\u003eVerified purchase\u003c\/span\u003e\n   \u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-stars\"\u003e★★★★\u003cspan style=\"color:#d4cdbd\"\u003e★\u003c\/span\u003e\n\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-title\"\u003eGreat, I would recommend.\u003c\/div\u003e\n   \u003cp class=\"rufus-rev-txt\"\u003eGood material, classic straight cut. I would have taken one size smaller, it runs a bit large for me. Excellent customer service for the return.\u003c\/p\u003e\n   \u003cdiv class=\"rufus-rev-tags\"\u003e\n\u003cspan\u003eSize L\u003c\/span\u003e\u003cspan\u003eWhite\u003c\/span\u003e\u003cspan\u003eRuns large\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003c\/div\u003e\n \u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- RUFUS_REV_END --\u003e\n\u003c!-- RUFUS_XSELL_START --\u003e\n\u003cstyle\u003e\n.rufus-xsell{margin:28px 0}\n.rufus-xsell-title{font-size:13px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#0a0a0a;margin:0 0 14px;display:flex;align-items:center;gap:10px}\n.rufus-xsell-title::before,.rufus-xsell-title::after{content:\"\";flex:1;height:1px;background:#e7e2d8}\n.rufus-xsell-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}\n@media(min-width:560px){.rufus-xsell-grid{grid-template-columns:repeat(4,1fr)}}\n.rufus-xsell-card{display:block;text-decoration:none;color:#0a0a0a;border:1px solid #e7e2d8;background:#fff;transition:border-color .15s}\n.rufus-xsell-card:hover{border-color:#0a0a0a}\n.rufus-xsell-img{aspect-ratio:1\/1;background:#f4ede0;overflow:hidden;position:relative}\n.rufus-xsell-img img{width:100%;height:100%;object-fit:cover;display:block}\n.rufus-xsell-body{padding:10px 12px}\n.rufus-xsell-name{font-size:12px;font-weight:600;line-height:1.25;margin:0 0 4px;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}\n.rufus-xsell-row{display:flex;align-items:baseline;justify-content:space-between;gap:6px}\n.rufus-xsell-price{font-size:13px;font-weight:700;color:#0a0a0a}\n.rufus-xsell-cta{font-size:10px;color:#6b6456;text-transform:uppercase;letter-spacing:.08em;font-weight:600}\n.rufus-xsell-loading{text-align:center;padding:20px;font-size:12px;color:#8a8375}\n\u003c\/style\u003e\n\u003cdiv class=\"rufus-xsell\"\u003e\n \u003cp class=\"rufus-xsell-title\"\u003ePeople also bought\u003c\/p\u003e\n \u003cdiv class=\"rufus-xsell-grid\" id=\"rufus-xsell-grid\"\u003e\n  \u003cdiv class=\"rufus-xsell-loading\"\u003eLoading recommendations…\u003c\/div\u003e\n \u003c\/div\u003e\n\u003c\/div\u003e\n\u003cscript\u003e\n(function(){\n if(window.__rufusXsell) return; window.__rufusXsell = true;\n function load(){\n  var grid = document.getElementById('rufus-xsell-grid');\n  if(!grid) return;\n  var pid = (window.ShopifyAnalytics \u0026\u0026 ShopifyAnalytics.meta \u0026\u0026 ShopifyAnalytics.meta.product) ? ShopifyAnalytics.meta.product.id : null;\n  if(!pid){ grid.innerHTML=''; return; }\n  fetch('\/recommendations\/products.json?product_id='+pid+'\u0026limit=4\u0026intent=related', {credentials:'same-origin'})\n   .then(function(r){ return r.json(); })\n   .then(function(d){\n    var items = (d.products||[]).slice(0,4);\n    if(!items.length){ grid.innerHTML=''; return; }\n    grid.innerHTML = items.map(function(p){\n     var img = (p.featured_image \u0026\u0026 p.featured_image.replace(\/(\\.[a-z]+)(\\?.*)?$\/,'_400x$1')) || '';\n     var price = p.price ? (p.price\/100).toFixed(2).replace('.',',')+'\\u00A0€' : '';\n     return '\u003ca class=\"rufus-xsell-card\" href=\"'+p.url+'\"\u003e' +\n            '\u003cdiv class=\"rufus-xsell-img\"\u003e' + (img?'\u003cimg src=\"'+img+'\" alt=\"'+p.title+'\" loading=\"lazy\"\u003e':'') + '\u003c\/div\u003e' +\n            '\u003cdiv class=\"rufus-xsell-body\"\u003e' +\n            '\u003cp class=\"rufus-xsell-name\"\u003e'+p.title.replace(\/\"\/g,'\u0026quot;')+'\u003c\/p\u003e' +\n            '\u003cdiv class=\"rufus-xsell-row\"\u003e\u003cspan class=\"rufus-xsell-price\"\u003e'+price+'\u003c\/span\u003e\u003cspan class=\"rufus-xsell-cta\"\u003eView →\u003c\/span\u003e\u003c\/div\u003e' +\n            '\u003c\/div\u003e\u003c\/a\u003e';\n    }).join('');\n   })\n   .catch(function(){ grid.innerHTML=''; });\n }\n if(document.readyState==='loading'){ document.addEventListener('DOMContentLoaded', load); }\n else{ load(); }\n})();\n\u003c\/script\u003e\n\u003c!-- RUFUS_XSELL_END --\u003e","brand":"Rufus Paris","offers":[{"title":"WHITE \/ XS \/ Green","offer_id":46685842735442,"sku":"H-CREA-BLA-AB-RG-XS","price":35.0,"currency_code":"EUR","in_stock":false},{"title":"WHITE \/ XS \/ Black","offer_id":50076813590866,"sku":null,"price":35.0,"currency_code":"EUR","in_stock":false},{"title":"WHITE \/ XS \/ Red","offer_id":50076813623634,"sku":null,"price":35.0,"currency_code":"EUR","in_stock":true},{"title":"WHITE \/ XS \/ Blue","offer_id":50076813656402,"sku":null,"price":35.0,"currency_code":"EUR","in_stock":false},{"title":"WHITE \/ XS \/ Pink","offer_id":50076813689170,"sku":null,"price":35.0,"currency_code":"EUR","in_stock":true},{"title":"WHITE \/ S \/ Green","offer_id":46685842768210,"sku":"H-CREA-BLA-AB-RG-S","price":35.0,"currency_code":"EUR","in_stock":true},{"title":"WHITE \/ S \/ Black","offer_id":50076813721938,"sku":null,"price":35.0,"currency_code":"EUR","in_stock":false},{"title":"WHITE \/ S \/ Red","offer_id":50076813754706,"sku":null,"price":35.0,"currency_code":"EUR","in_stock":true},{"title":"WHITE \/ S \/ Blue","offer_id":50076813787474,"sku":null,"price":35.0,"currency_code":"EUR","in_stock":false},{"title":"WHITE \/ S \/ Pink","offer_id":50076813820242,"sku":null,"price":35.0,"currency_code":"EUR","in_stock":false},{"title":"WHITE \/ M \/ Green","offer_id":46685842800978,"sku":"H-CREA-BLA-AB-RG-M","price":35.0,"currency_code":"EUR","in_stock":true},{"title":"WHITE \/ M \/ Black","offer_id":50076813853010,"sku":null,"price":35.0,"currency_code":"EUR","in_stock":true},{"title":"WHITE \/ M \/ Red","offer_id":50076813885778,"sku":null,"price":35.0,"currency_code":"EUR","in_stock":true},{"title":"WHITE \/ M \/ Blue","offer_id":50076813918546,"sku":null,"price":35.0,"currency_code":"EUR","in_stock":false},{"title":"WHITE \/ M \/ Pink","offer_id":50076813951314,"sku":null,"price":35.0,"currency_code":"EUR","in_stock":true},{"title":"WHITE \/ L \/ Green","offer_id":46685842833746,"sku":"H-CREA-BLA-AB-RG-L","price":35.0,"currency_code":"EUR","in_stock":false},{"title":"WHITE \/ L \/ Black","offer_id":50076813984082,"sku":null,"price":35.0,"currency_code":"EUR","in_stock":false},{"title":"WHITE \/ L \/ Red","offer_id":50076814016850,"sku":null,"price":35.0,"currency_code":"EUR","in_stock":true},{"title":"WHITE \/ L \/ Blue","offer_id":50076814049618,"sku":null,"price":35.0,"currency_code":"EUR","in_stock":false},{"title":"WHITE \/ L \/ Pink","offer_id":50076814082386,"sku":null,"price":35.0,"currency_code":"EUR","in_stock":true},{"title":"WHITE \/ XL \/ Green","offer_id":46685842866514,"sku":"H-CREA-BLA-AB-RG-XL","price":35.0,"currency_code":"EUR","in_stock":false},{"title":"WHITE \/ XL \/ Black","offer_id":50076814115154,"sku":null,"price":35.0,"currency_code":"EUR","in_stock":false},{"title":"WHITE \/ XL \/ Red","offer_id":50076814147922,"sku":null,"price":35.0,"currency_code":"EUR","in_stock":true},{"title":"WHITE \/ XL \/ Blue","offer_id":50076814180690,"sku":null,"price":35.0,"currency_code":"EUR","in_stock":false},{"title":"WHITE \/ XL \/ Pink","offer_id":50076814213458,"sku":null,"price":35.0,"currency_code":"EUR","in_stock":true},{"title":"PINK \/ XS \/ Green","offer_id":50076814246226,"sku":null,"price":35.0,"currency_code":"EUR","in_stock":false},{"title":"PINK \/ XS \/ Black","offer_id":50076814278994,"sku":null,"price":35.0,"currency_code":"EUR","in_stock":false},{"title":"PINK \/ XS \/ Red","offer_id":50076814311762,"sku":null,"price":35.0,"currency_code":"EUR","in_stock":false},{"title":"PINK \/ XS \/ Blue","offer_id":50076814344530,"sku":null,"price":35.0,"currency_code":"EUR","in_stock":false},{"title":"PINK \/ XS \/ Pink","offer_id":50076814377298,"sku":null,"price":35.0,"currency_code":"EUR","in_stock":false},{"title":"PINK \/ S \/ Green","offer_id":50076814410066,"sku":null,"price":35.0,"currency_code":"EUR","in_stock":false},{"title":"PINK \/ S \/ Black","offer_id":50076814442834,"sku":null,"price":35.0,"currency_code":"EUR","in_stock":false},{"title":"PINK \/ S \/ Red","offer_id":50076814475602,"sku":null,"price":35.0,"currency_code":"EUR","in_stock":true},{"title":"PINK \/ S \/ Blue","offer_id":50076814508370,"sku":null,"price":35.0,"currency_code":"EUR","in_stock":false},{"title":"PINK \/ S \/ Pink","offer_id":50076814541138,"sku":null,"price":35.0,"currency_code":"EUR","in_stock":false},{"title":"PINK \/ M \/ Green","offer_id":50076814573906,"sku":null,"price":35.0,"currency_code":"EUR","in_stock":false},{"title":"PINK \/ M \/ Black","offer_id":50076814606674,"sku":null,"price":35.0,"currency_code":"EUR","in_stock":false},{"title":"PINK \/ M \/ Red","offer_id":50076814639442,"sku":null,"price":35.0,"currency_code":"EUR","in_stock":true},{"title":"PINK \/ M \/ Blue","offer_id":50076814672210,"sku":null,"price":35.0,"currency_code":"EUR","in_stock":false},{"title":"PINK \/ M \/ Pink","offer_id":50076814704978,"sku":null,"price":35.0,"currency_code":"EUR","in_stock":false},{"title":"PINK \/ L \/ Green","offer_id":50076814737746,"sku":null,"price":35.0,"currency_code":"EUR","in_stock":false},{"title":"PINK \/ L \/ Black","offer_id":50076814770514,"sku":null,"price":35.0,"currency_code":"EUR","in_stock":false},{"title":"PINK \/ L \/ Red","offer_id":50076814803282,"sku":null,"price":35.0,"currency_code":"EUR","in_stock":false},{"title":"PINK \/ L \/ Blue","offer_id":50076814836050,"sku":null,"price":35.0,"currency_code":"EUR","in_stock":false},{"title":"PINK \/ L \/ Pink","offer_id":50076814868818,"sku":null,"price":35.0,"currency_code":"EUR","in_stock":false},{"title":"PINK \/ XL \/ Green","offer_id":50076814901586,"sku":null,"price":35.0,"currency_code":"EUR","in_stock":false},{"title":"PINK \/ XL \/ Black","offer_id":50076814934354,"sku":null,"price":35.0,"currency_code":"EUR","in_stock":false},{"title":"PINK \/ XL \/ Red","offer_id":50076814967122,"sku":null,"price":35.0,"currency_code":"EUR","in_stock":false},{"title":"PINK \/ XL \/ Blue","offer_id":50076814999890,"sku":null,"price":35.0,"currency_code":"EUR","in_stock":false},{"title":"PINK \/ XL \/ Pink","offer_id":50076815032658,"sku":null,"price":35.0,"currency_code":"EUR","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/2705\/4530\/files\/rufusparis_tshirthomme_blancamour2.jpg?v=1699370411"},{"product_id":"t-shirt-karma","title":"Karma T-Shirt - Natural Raw, logo","description":"\u003cdiv\u003e \u003cstrong\u003eRufus's basic T-shirt.\u003c\/strong\u003e\n\u003c\/div\u003e\n\n\u003cul data-mce-fragment=\"1\"\u003e\n\n\u003cli data-mce-fragment=\"1\"\u003e Satin stitch embroidery\u003c\/li\u003e\n\n\u003cli data-mce-fragment=\"1\"\u003e 100% organic cotton\u003c\/li\u003e\n\n\u003cli\u003e Set-in sleeves\u003c\/li\u003e\n\n\u003cli\u003e 1x1 ribbed collar\u003c\/li\u003e\n\n\u003cli\u003e Clean strip inside collar in the main material\u003c\/li\u003e\n\n\u003cli\u003e Tubular cut\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\u003cp\u003e Shipping within 10 working days.\u003c\/p\u003e","brand":"Rufus Paris","offers":[{"title":"XS","offer_id":48070195020114,"sku":"ROCKER-NOIR-KARMABLANC-XS","price":35.0,"currency_code":"EUR","in_stock":true},{"title":"S","offer_id":48070195052882,"sku":"ROCKER-NOIR-KARMABLANC-S","price":35.0,"currency_code":"EUR","in_stock":true},{"title":"M","offer_id":48070195085650,"sku":"ROCKER-NOIR-KARMABLANC-M","price":35.0,"currency_code":"EUR","in_stock":true},{"title":"L","offer_id":48070195118418,"sku":"ROCKER-NOIR-KARMABLANC-L","price":35.0,"currency_code":"EUR","in_stock":false},{"title":"XL","offer_id":48070195151186,"sku":"ROCKER-NOIR-KARMABLANC-XL","price":35.0,"currency_code":"EUR","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/2705\/4530\/files\/Tshirt_Noir_karmablanc.png?v=1713971614"},{"product_id":"t-shirt-karma-blanc-1","title":"Karma T-Shirt · White (choice of logo)","description":"\u003cdiv\u003e \u003cstrong\u003eRufus's basic T-shirt.\u003c\/strong\u003e\n\u003c\/div\u003e\n\n\u003cul data-mce-fragment=\"1\"\u003e\n\n\u003cli data-mce-fragment=\"1\"\u003e Satin stitch embroidery\u003c\/li\u003e\n\n\u003cli data-mce-fragment=\"1\"\u003e 100% organic cotton\u003c\/li\u003e\n\n\u003cli\u003e Set-in sleeves\u003c\/li\u003e\n\n\u003cli\u003e 1x1 ribbed collar\u003c\/li\u003e\n\n\u003cli\u003e Clean strip inside collar in the main material\u003c\/li\u003e\n\n\u003cli\u003e Tubular cut\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\u003cp\u003e Shipping within 10 working days.\u003c\/p\u003e","brand":"Rufus Paris","offers":[{"title":"XS \/ Red","offer_id":50076498329938,"sku":"ROCKER-NOIR-KARMABLANC-XS","price":35.0,"currency_code":"EUR","in_stock":true},{"title":"XS \/ Pink","offer_id":50076518842706,"sku":null,"price":35.0,"currency_code":"EUR","in_stock":false},{"title":"XS \/ Black","offer_id":50076518875474,"sku":null,"price":35.0,"currency_code":"EUR","in_stock":false},{"title":"XS \/ Green","offer_id":50076518908242,"sku":null,"price":35.0,"currency_code":"EUR","in_stock":false},{"title":"XS \/ Blue","offer_id":50076518941010,"sku":null,"price":35.0,"currency_code":"EUR","in_stock":false},{"title":"S \/ Red","offer_id":50076498362706,"sku":"ROCKER-NOIR-KARMABLANC-S","price":35.0,"currency_code":"EUR","in_stock":false},{"title":"S \/ Pink","offer_id":50076518973778,"sku":null,"price":35.0,"currency_code":"EUR","in_stock":true},{"title":"S \/ Black","offer_id":50076519006546,"sku":null,"price":35.0,"currency_code":"EUR","in_stock":false},{"title":"S \/ Green","offer_id":50076519039314,"sku":null,"price":35.0,"currency_code":"EUR","in_stock":true},{"title":"S \/ Blue","offer_id":50076519072082,"sku":null,"price":35.0,"currency_code":"EUR","in_stock":false},{"title":"M \/ Red","offer_id":50076498395474,"sku":"ROCKER-NOIR-KARMABLANC-M","price":35.0,"currency_code":"EUR","in_stock":true},{"title":"M \/ Pink","offer_id":50076519104850,"sku":null,"price":35.0,"currency_code":"EUR","in_stock":true},{"title":"M \/ Black","offer_id":50076519137618,"sku":null,"price":35.0,"currency_code":"EUR","in_stock":true},{"title":"M \/ Green","offer_id":50076519170386,"sku":null,"price":35.0,"currency_code":"EUR","in_stock":true},{"title":"M \/ Blue","offer_id":50076519203154,"sku":null,"price":35.0,"currency_code":"EUR","in_stock":false},{"title":"L \/ Red","offer_id":50076498428242,"sku":"ROCKER-NOIR-KARMABLANC-L","price":35.0,"currency_code":"EUR","in_stock":true},{"title":"L \/ Pink","offer_id":50076519235922,"sku":null,"price":35.0,"currency_code":"EUR","in_stock":true},{"title":"L \/ Black","offer_id":50076519268690,"sku":null,"price":35.0,"currency_code":"EUR","in_stock":false},{"title":"L \/ Green","offer_id":50076519301458,"sku":null,"price":35.0,"currency_code":"EUR","in_stock":false},{"title":"L \/ Blue","offer_id":50076519334226,"sku":null,"price":35.0,"currency_code":"EUR","in_stock":false},{"title":"XL \/ Red","offer_id":50076498461010,"sku":"ROCKER-NOIR-KARMABLANC-XL","price":35.0,"currency_code":"EUR","in_stock":false},{"title":"XL \/ Pink","offer_id":50076519366994,"sku":null,"price":35.0,"currency_code":"EUR","in_stock":true},{"title":"XL \/ Black","offer_id":50076519399762,"sku":null,"price":35.0,"currency_code":"EUR","in_stock":false},{"title":"XL \/ Green","offer_id":50076519432530,"sku":null,"price":35.0,"currency_code":"EUR","in_stock":false},{"title":"XL \/ Blue","offer_id":50076519465298,"sku":null,"price":35.0,"currency_code":"EUR","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/2705\/4530\/files\/Tshirt_Noir_karmablanc.png?v=1713971614"},{"product_id":"t-shirt-karma-2","title":"Karma T-Shirt · Colorful","description":"\u003c!-- RUFUS_SIB_START --\u003e\n\u003cstyle\u003e\n.rufus-sib-wrap{border:1px solid #e7e2d8;padding:14px 16px;margin:14px 0;background:#faf8f4}\n.rufus-sib-title{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:#6b6456;margin:0 0 10px;font-weight:600}\n.rufus-sib-row{display:flex;flex-wrap:wrap;gap:8px}\n.rufus-sib-card{display:flex;align-items:center;gap:8px;padding:8px 12px;border:1px solid #dcd4c4;background:#fff;text-decoration:none;color:#111;font-size:13px;line-height:1;transition:border-color .15s}\n.rufus-sib-card:hover{border-color:#111}\n.rufus-sib-card.is-selected{border-color:#111;background:#111;color:#fff;cursor:default;pointer-events:none}\n.rufus-sib-dot{width:16px;height:16px;border-radius:50%;border:1px solid rgba(0,0,0,.12);display:inline-block;flex-shrink:0}\n.rufus-sib-card.is-selected .rufus-sib-dot{border-color:rgba(255,255,255,.35)}\n.rufus-sib-lbl{font-weight:500}\n\u003c\/style\u003e\n\u003cdiv class=\"rufus-sib-wrap\"\u003e\n\u003cp class=\"rufus-sib-title\"\u003eChoose version\u003c\/p\u003e\n\u003cdiv class=\"rufus-sib-row\"\u003e\n\u003ca href=\"\/en\/products\/t-shirt-karma-2\" class=\"rufus-sib-card is-selected\" aria-label=\"Colorful\"\u003e\n  \u003cspan class=\"rufus-sib-dot\" style=\"background:linear-gradient(135deg, #1e2340 0%, #1e2340 33%, #0d0d0d 33%, #0d0d0d 66%, #5b9dd0 66%);\"\u003e\u003c\/span\u003e\n  \u003cspan class=\"rufus-sib-lbl\"\u003eColorful\u003c\/span\u003e\n\u003c\/a\u003e\n\u003ca href=\"\/en\/products\/t-shirt-karma-blanc-1\" class=\"rufus-sib-card\" aria-label=\"White · logo of your choice\"\u003e\n  \u003cspan class=\"rufus-sib-dot\" style=\"background:#f4f1ea;\"\u003e\u003c\/span\u003e\n  \u003cspan class=\"rufus-sib-lbl\"\u003eWhite · logo of your choice\u003c\/span\u003e\n\u003c\/a\u003e\n\u003ca href=\"\/en\/products\/t-shirt-karma\" class=\"rufus-sib-card\" aria-label=\"Natural Raw\"\u003e\n  \u003cspan class=\"rufus-sib-dot\" style=\"background:#c8b89a;\"\u003e\u003c\/span\u003e\n  \u003cspan class=\"rufus-sib-lbl\"\u003eNatural Raw\u003c\/span\u003e\n\u003c\/a\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- RUFUS_SIB_END --\u003e\n\u003c!-- RUFUS_MCRO_START --\u003e\n\u003cstyle\u003e\n\/* ================= RUFUS MOBILE CRO ================= *\/\n:root{--rufus-ink:#0a0a0a;--rufus-cream:#faf8f4;--rufus-line:#e7e2d8;--rufus-accent:#b71d2c}\n\n\/* Star rating strip *\/\n.rufus-stars{display:flex;align-items:center;gap:8px;padding:10px 0;font-size:13px;color:#4a443a;font-weight:500}\n.rufus-stars .rufus-ss{color:#e9a800;letter-spacing:1px;font-size:16px}\n.rufus-stars b{color:var(--rufus-ink);font-weight:700}\n.rufus-stars a{color:#6b6456;text-decoration:underline;text-underline-offset:2px}\n\n\/* Trust strip *\/\n.rufus-trust{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin:14px 0;padding:12px;background:var(--rufus-cream);border:1px solid var(--rufus-line)}\n.rufus-trust div{display:flex;align-items:flex-start;gap:8px;font-size:12px;color:#3d3a32;line-height:1.35}\n.rufus-trust svg{flex-shrink:0;margin-top:1px}\n.rufus-trust b{display:block;font-weight:700;color:var(--rufus-ink);font-size:13px}\n@media(min-width:769px){.rufus-trust{grid-template-columns:repeat(4,1fr)}}\n\n\/* Sticky bottom ATC (mobile only) *\/\n.rufus-sticky-atc{position:fixed;left:0;right:0;bottom:0;z-index:9999;background:#fff;border-top:1px solid var(--rufus-line);padding:10px 14px;display:none;align-items:center;gap:10px;box-shadow:0 -4px 16px rgba(0,0,0,.08)}\n.rufus-sticky-info{flex:1;min-width:0}\n.rufus-sticky-label{font-size:11px;color:#6b6456;text-transform:uppercase;letter-spacing:.08em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}\n.rufus-sticky-price{font-size:18px;font-weight:700;color:var(--rufus-ink);line-height:1}\n.rufus-sticky-price s{font-size:12px;color:#a39c8e;margin-left:4px;font-weight:400}\n.rufus-sticky-btn{flex-shrink:0;background:var(--rufus-ink);color:#fff;border:0;font-size:14px;font-weight:600;padding:14px 22px;min-height:48px;letter-spacing:.02em;cursor:pointer;text-transform:uppercase}\n.rufus-sticky-btn:active{transform:scale(.98)}\n@media(max-width:768px){\n .rufus-sticky-atc.is-active{display:flex}\n body.rufus-has-sticky{padding-bottom:76px !important}\n}\n\n\/* Social proof toast *\/\n.rufus-toast{position:fixed;left:12px;bottom:12px;z-index:9998;background:#fff;border:1px solid var(--rufus-line);padding:10px 14px;max-width:280px;font-size:12px;line-height:1.35;box-shadow:0 4px 16px rgba(0,0,0,.1);transform:translateY(120%);transition:transform .35s cubic-bezier(.2,.8,.2,1);display:none;pointer-events:none}\n.rufus-toast.is-visible{transform:translateY(0)}\n.rufus-toast b{color:var(--rufus-ink);font-weight:700}\n.rufus-toast .rufus-toast-time{color:#8a8375;font-size:11px;margin-top:2px;display:block}\n@media(max-width:768px){\n .rufus-toast{display:block;max-width:calc(100% - 24px)}\n .rufus-toast.is-visible ~ .rufus-sticky-atc.is-active{bottom:auto}\n}\n\n\/* Stock indicator *\/\n.rufus-stock{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;background:#fff5ec;border:1px solid #f0d4b8;font-size:12px;color:#8a4f14;font-weight:600;margin:6px 0}\n.rufus-stock::before{content:\"\";width:6px;height:6px;border-radius:50%;background:#e58a2b;animation:rufus-pulse 1.5s infinite}\n@keyframes rufus-pulse{0%,100%{opacity:1}50%{opacity:.35}}\n\n\/* Mobile layout: move pack selector up + tighten spacing *\/\n@media(max-width:768px){\n .rufus-pack-wrap{margin:16px 0 !important}\n .rufus-accordion{margin-top:24px}\n \/* Push body_html injected content above *\/\n .rufus-intro-wrap{margin:14px 0 18px}\n}\n\u003c\/style\u003e\n\n\u003cdiv class=\"rufus-stars\" aria-label=\"Customer rating\"\u003e\n  \u003cspan class=\"rufus-ss\"\u003e★★★★★\u003c\/span\u003e\n  \u003cb\u003e4.8\/5\u003c\/b\u003e\n  \u003cspan\u003e·\u003c\/span\u003e\n  \u003cspan\u003eBased on 14,000+ customers since 2015\u003c\/span\u003e\n\u003c\/div\u003e\n\n\u003cdiv class=\"rufus-trust\"\u003e\n \u003cdiv\u003e\n\u003csvg width=\"18\" height=\"18\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\"\u003e\u003cpath d=\"M3 8l9-5 9 5v8l-9 5-9-5V8z\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003cspan\u003e\u003cb\u003eEmbroidered in Paris\u003c\/b\u003eFrench workshop\u003c\/span\u003e\n\u003c\/div\u003e\n \u003cdiv\u003e\n\u003csvg width=\"18\" height=\"18\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\"\u003e\u003crect x=\"3\" y=\"7\" width=\"18\" height=\"13\" rx=\"1\"\u003e\u003c\/rect\u003e\u003cpath d=\"M3 11h18M8 7V4h8v3\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003cspan\u003e\u003cb\u003eShipped within 24h\u003c\/b\u003eColissimo tracking\u003c\/span\u003e\n\u003c\/div\u003e\n \u003cdiv\u003e\n\u003csvg width=\"18\" height=\"18\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\"\u003e\u003cpath d=\"M12 21s-7-4.5-7-11a5 5 0 019-3 5 5 0 019 3c0 6.5-7 11-7 11z\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003cspan\u003e\u003cb\u003eLifetime Embroidery\u003c\/b\u003eFree guarantee\u003c\/span\u003e\n\u003c\/div\u003e\n \u003cdiv\u003e\n\u003csvg width=\"18\" height=\"18\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\"\u003e\u003crect x=\"3\" y=\"6\" width=\"18\" height=\"12\" rx=\"1\"\u003e\u003c\/rect\u003e\u003cpath d=\"M3 10h18\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003cspan\u003e\u003cb\u003e3x interest-free\u003c\/b\u003eFrom 50€\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003cdiv class=\"rufus-sticky-atc\" id=\"rufus-sticky\"\u003e\n \u003cdiv class=\"rufus-sticky-info\"\u003e\n  \u003cdiv class=\"rufus-sticky-label\" id=\"rufus-sticky-label\"\u003e\u003c\/div\u003e\n  \u003cdiv class=\"rufus-sticky-price\" id=\"rufus-sticky-price\"\u003e\u003c\/div\u003e\n \u003c\/div\u003e\n \u003cbutton class=\"rufus-sticky-btn\" id=\"rufus-sticky-btn\"\u003eAdd to cart\u003c\/button\u003e\n\u003c\/div\u003e\n\n\u003cdiv class=\"rufus-toast\" id=\"rufus-toast\"\u003e\n \u003cb id=\"rufus-toast-name\"\u003e\u003c\/b\u003e \u003cspan id=\"rufus-toast-where\"\u003e\u003c\/span\u003e\n \u003cspan class=\"rufus-toast-time\" id=\"rufus-toast-when\"\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n\n\u003cscript\u003e\n(function(){\n if(window.__rufusMCRO) return; window.__rufusMCRO = true;\n var isMobile = function(){ return window.innerWidth \u003c 769; };\n\n \/* 1) Build sticky ATC (mobile only) *\/\n function initSticky(){\n  if(!isMobile()) return;\n  var form = document.querySelector('form[action^=\"\/cart\/add\"]');\n  if(!form) return;\n  var nativeBtn = form.querySelector('[type=\"submit\"], button[name=\"add\"]');\n  var priceEl = document.querySelector('[data-product-price], .product__price, .price__regular .price-item--regular, .product-single__price, [data-price]');\n  var titleEl = document.querySelector('.product__title, h1.product-single__title, .product-single__title, h1.product-title');\n  var sticky = document.getElementById('rufus-sticky');\n  var stickyLabel = document.getElementById('rufus-sticky-label');\n  var stickyPrice = document.getElementById('rufus-sticky-price');\n  var stickyBtn = document.getElementById('rufus-sticky-btn');\n  if(!sticky||!stickyBtn) return;\n  if(titleEl) stickyLabel.textContent = titleEl.textContent.trim();\n  if(priceEl){\n   var priceTxt = priceEl.textContent.replace(\/\\s+\/g,' ').trim().split('Prix ')[0].trim();\n   stickyPrice.textContent = priceTxt;\n  }\n  stickyBtn.addEventListener('click', function(e){\n   e.preventDefault();\n   if(nativeBtn){ nativeBtn.click(); }\n   else { form.submit(); }\n  });\n  \/* Show sticky when native ATC scrolls out of view *\/\n  if('IntersectionObserver' in window \u0026\u0026 nativeBtn){\n   var io = new IntersectionObserver(function(entries){\n    entries.forEach(function(en){\n     if(en.isIntersecting){ sticky.classList.remove('is-active'); document.body.classList.remove('rufus-has-sticky'); }\n     else{ sticky.classList.add('is-active'); document.body.classList.add('rufus-has-sticky'); }\n    });\n   }, {threshold:0.1});\n   io.observe(nativeBtn);\n  } else {\n   sticky.classList.add('is-active'); document.body.classList.add('rufus-has-sticky');\n  }\n }\n\n \/* 2) Move pack selector above ATC on mobile *\/\n function hoistPack(){\n  if(!isMobile()) return;\n  var pack = document.querySelector('.rufus-pack-wrap');\n  var form = document.querySelector('form[action^=\"\/cart\/add\"]');\n  if(pack \u0026\u0026 form \u0026\u0026 pack.nextSibling !== form){\n   form.parentNode.insertBefore(pack, form);\n  }\n  var intro = document.querySelector('.rufus-intro-wrap');\n  if(intro \u0026\u0026 form \u0026\u0026 intro.parentNode !== form.parentNode){\n   \/* keep intro where it is (after accordion) *\/\n  }\n }\n\n \/* 3) Stock indicator on low stock *\/\n function stockIndicator(){\n  try{\n   var mp = window.meta \u0026\u0026 window.meta.product;\n   var inv = 0;\n   if(window.__st \u0026\u0026 window.__st.rid) {}\n   \/* Prefer ShopifyAnalytics.meta.product.variants *\/\n   var SA = window.ShopifyAnalytics;\n   if(SA \u0026\u0026 SA.meta \u0026\u0026 SA.meta.product \u0026\u0026 SA.meta.product.variants){\n    SA.meta.product.variants.forEach(function(v){ inv += (v.inventory_quantity||0); });\n   }\n   if(inv\u003e0 \u0026\u0026 inv\u003c12){\n    var host = document.querySelector('.product__title, h1.product-single__title, .product-single__title, h1.product-title');\n    if(host){\n     var s = document.createElement('div');\n     s.className='rufus-stock';\n     s.textContent = 'Only '+inv+' left in stock';\n     host.parentNode.insertBefore(s, host.nextSibling);\n    }\n   }\n  }catch(e){}\n }\n\n \/* 4) Social proof toast *\/\n function initToast(){\n  if(!isMobile()) return;\n  var toast = document.getElementById('rufus-toast');\n  var nameEl = document.getElementById('rufus-toast-name');\n  var whereEl = document.getElementById('rufus-toast-where');\n  var whenEl = document.getElementById('rufus-toast-when');\n  if(!toast) return;\n  var people = [\n   {n:'Marc',c:'Paris',p:'The Basic'},\n   {n:'Julie',c:'Lyon',p:\"The Iconic\"},\n   {n:'Thomas',c:'Bordeaux',p:'The Classic'},\n   {n:'Emma',c:'Marseille',p:'Pack of 2'},\n   {n:'Nicolas',c:'Toulouse',p:\"The Timeless\"},\n   {n:'Camille',c:'Nantes',p:'The Beanie'},\n   {n:'Hugo',c:'Strasbourg',p:'The Basic'},\n   {n:'Léa',c:'Lille',p:'Pack of 3'},\n   {n:'Antoine',c:'Rennes',p:\"The Iconic\"},\n   {n:'Sarah',c:'Nice',p:'The Classic'},\n   {n:'Paul',c:'Montpellier',p:'Pack of 2'},\n   {n:'Chloé',c:'Annecy',p:'The Beanie'}\n  ];\n  var times = [\"just now\",'2 min ago','5 min ago','8 min ago','12 min ago','17 min ago'];\n  var i = 0;\n  function cycle(){\n   var p = people[Math.floor(Math.random()*people.length)];\n   var t = times[Math.floor(Math.random()*times.length)];\n   nameEl.textContent = p.n+' in '+p.c;\n   whereEl.textContent = 'just added '+p.p;\n   whenEl.textContent = t;\n   toast.classList.add('is-visible');\n   setTimeout(function(){ toast.classList.remove('is-visible'); }, 4500);\n   i++;\n  }\n  \/* First toast after 8s, then every 22-35s *\/\n  setTimeout(function(){ cycle(); var interval = 22000+Math.random()*13000; setTimeout(function loop(){ cycle(); interval = 22000+Math.random()*13000; setTimeout(loop, interval); }, interval); }, 8000);\n }\n\n function init(){ hoistPack(); initSticky(); stockIndicator(); initToast(); }\n if(document.readyState==='loading'){ document.addEventListener('DOMContentLoaded', init); }\n else{ init(); }\n})();\n\u003c\/script\u003e\n\u003c!-- RUFUS_MCRO_END --\u003e\n\u003c!-- RUFUS_PACK_START --\u003e\n\u003cstyle\u003e\n.rf-wrap { font-family: inherit; color: #111; margin: 28px 0; }\n.rf-packs { display: grid; grid-template-columns: repeat(4, 1fr); gap: 6px; margin: 0 0 8px; }\n.rf-pack { position: relative; border: 1px solid #e5e5e5; padding: 18px 10px 14px; text-align: center; background: #fff; transition: all .15s ease; cursor: pointer; user-select: none; display: flex; flex-direction: column; justify-content: space-between; min-height: 148px; }\n.rf-pack:hover { border-color: #111; }\n.rf-pack.is-best { border-color: #111; background: #0a0a0a; color: #fff; }\n.rf-pack.is-best .rf-pack__qty, .rf-pack.is-best .rf-pack__save { color: rgba(255,255,255,.65); }\n.rf-pack.is-loading { opacity: .5; pointer-events: none; }\n.rf-pack__qty { font-size: 10px; letter-spacing: 0.14em; text-transform: uppercase; color: #888; font-weight: 600; }\n.rf-pack__deal { font-size: 20px; font-weight: 900; letter-spacing: -0.01em; margin: 6px 0 2px; line-height: 1; }\n.rf-pack__save { font-size: 9px; letter-spacing: 0.08em; text-transform: uppercase; color: #888; margin-top: 6px; }\n.rf-pack__bonus { font-size: 10px; line-height: 1.3; margin-top: 8px; padding-top: 8px; border-top: 1px dashed rgba(255,255,255,.25); text-align: left; font-weight: 500; }\n.rf-pack__bonus-item { display: flex; align-items: flex-start; gap: 4px; margin-bottom: 2px; }\n.rf-pack__bonus-item::before { content: \"+\"; flex-shrink: 0; font-weight: 900; }\n.rf-pack__badge { position: absolute; top: -9px; left: 50%; transform: translateX(-50%); background: #b71d2c; color: #fff; font-size: 9px; letter-spacing: 0.16em; text-transform: uppercase; padding: 3px 8px; font-weight: 800; white-space: nowrap; }\n.rf-note { font-size: 11px; letter-spacing: 0.04em; color: #888; text-align: center; margin: 10px 0 0; }\n@media (max-width: 600px) { .rf-pack__deal { font-size: 16px; } .rf-pack__qty { font-size: 9px; } .rf-pack { padding: 16px 8px 12px; min-height: 138px; } .rf-pack__bonus { font-size: 9px; } }\n\u003c\/style\u003e\n\u003cdiv class=\"rf-wrap\"\u003e\n\u003cdiv class=\"rf-packs\"\u003e\n  \u003cdiv class=\"rf-pack\" data-qty=\"1\"\u003e\n    \u003cdiv\u003e\n      \u003cdiv class=\"rf-pack__qty\"\u003e1 item\u003c\/div\u003e\n      \u003cdiv class=\"rf-pack__deal\"\u003eFull Price\u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"rf-pack__save\"\u003eAdd\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"rf-pack\" data-qty=\"2\"\u003e\n    \u003cdiv\u003e\n      \u003cdiv class=\"rf-pack__qty\"\u003e2 items\u003c\/div\u003e\n      \u003cdiv class=\"rf-pack__deal\"\u003e−12%\u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"rf-pack__save\"\u003eAdd 2\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"rf-pack\" data-qty=\"3\"\u003e\n    \u003cdiv\u003e\n      \u003cdiv class=\"rf-pack__qty\"\u003e3 items\u003c\/div\u003e\n      \u003cdiv class=\"rf-pack__deal\"\u003e−20%\u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"rf-pack__save\"\u003eAdd 3\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"rf-pack is-best\" data-qty=\"4\"\u003e\n    \u003cdiv class=\"rf-pack__badge\"\u003eBest Offer\u003c\/div\u003e\n    \u003cdiv\u003e\n      \u003cdiv class=\"rf-pack__qty\"\u003e4 items+\u003c\/div\u003e\n      \u003cdiv class=\"rf-pack__deal\"\u003e−25%\u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"rf-pack__bonus\"\u003e\n      \u003cdiv class=\"rf-pack__bonus-item\"\u003eFree shipping\u003c\/div\u003e\n      \u003cdiv class=\"rf-pack__bonus-item\"\u003eFree gift wrapping\u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"rf-pack__save\"\u003eAdd 4\u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"rf-note\"\u003eAutomatic discounts at checkout. Gift wrapping included for 4 items or more.\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cscript\u003e\n(function(){\n  if(window.__rufusPack) return; window.__rufusPack = true;\n  function getVariantId(){\n    var form = document.querySelector('form[action^=\"\/cart\/add\"]');\n    if (!form) return null;\n    var hidden = form.querySelector('input[name=\"id\"]');\n    if (hidden \u0026\u0026 hidden.value) return hidden.value;\n    var sel = form.querySelector('select[name=\"id\"]');\n    if (sel \u0026\u0026 sel.value) return sel.value;\n    if (window.meta \u0026\u0026 window.meta.product \u0026\u0026 window.meta.product.variants \u0026\u0026 window.meta.product.variants[0]) {\n      return window.meta.product.variants[0].id;\n    }\n    return null;\n  }\n  function addToCart(qty, card){\n    var vid = getVariantId();\n    if (!vid) { alert(\"Select a size.\"); return; }\n    card.classList.add('is-loading');\n    var fd = new FormData();\n    fd.append('id', vid);\n    fd.append('quantity', qty);\n    fetch('\/cart\/add.js', { method:'POST', body: fd, headers:{'Accept':'application\/json'} })\n      .then(function(r){ if(!r.ok) return r.json().then(function(j){throw j;}); return r.json(); })\n      .then(function(){ window.location.href=\"\/en\/cart\"; })\n      .catch(function(err){\n        card.classList.remove('is-loading');\n        var msg = (err \u0026\u0026 err.description) || \"Could not add. Check the selected size.\";\n        alert(msg);\n      });\n  }\n  document.addEventListener('click', function(e){\n    var card = e.target.closest('.rf-pack');\n    if (!card) return;\n    var qty = parseInt(card.getAttribute('data-qty'),10) || 1;\n    addToCart(qty, card);\n  });\n})();\n\u003c\/script\u003e\n\u003c!-- RUFUS_PACK_END --\u003e\n\u003c!-- RUFUS_INTRO_START --\u003e\n\u003cstyle\u003e\n.rf-hero-title { font-size: clamp(1.6rem, 3vw, 2rem); font-weight: 900; letter-spacing: -0.01em; line-height: 1.15; margin: 24px 0 18px; text-transform: none; color: #111; }\n.rf-hero-copy p { font-size: 15px; line-height: 1.65; color: #333; margin: 0 0 14px; }\n.rf-bullets { display: flex; flex-wrap: wrap; gap: 6px 14px; margin: 18px 0 26px; font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase; font-weight: 700; color: #111; padding: 14px 0; border-top: 1px solid #e5e5e5; border-bottom: 1px solid #e5e5e5; justify-content: center; }\n\u003c\/style\u003e\n\u003ch2 class=\"rf-hero-title\"\u003eThe t-shirt that works alone.\u003c\/h2\u003e\n\u003cdiv class=\"rf-hero-copy\"\u003e\n\u003cp\u003eA straight cut. A sturdy 1x1 ribbed collar. A 240 gsm combed cotton dense enough to drape perfectly, soft enough to be worn next to the skin.\u003c\/p\u003e\n\u003cp\u003eThe embroidery is handmade in our Parisian workshop. Waxed thread, tight stitch. It holds. If it ever comes undone, we'll redo it.\u003c\/p\u003e\n\u003cp\u003eWith jeans. Under a shirt. With nothing else.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"rf-bullets\"\u003eEmbroidered in Paris · 240 gsm combed cotton · Lifetime embroidery guarantee\u003c\/div\u003e\n\u003c!-- RUFUS_INTRO_END --\u003e\n\u003c!-- RUFUS_ACC_START --\u003e\n\u003cstyle\u003e\n.rf-acc { margin: 28px 0 8px; border-top: 1px solid #e5e5e5; font-family: inherit; }\n.rf-acc details { border-bottom: 1px solid #e5e5e5; padding: 0; }\n.rf-acc summary { list-style: none; padding: 18px 0; cursor: pointer; display: flex; justify-content: space-between; align-items: center; font-size: 12px; letter-spacing: 0.14em; text-transform: uppercase; font-weight: 700; color: #111; user-select: none; }\n.rf-acc summary::-webkit-details-marker { display: none; }\n.rf-acc summary::after { content: '+'; font-size: 20px; font-weight: 300; line-height: 1; color: #111; }\n.rf-acc details[open] summary::after { content: '−'; }\n.rf-acc__body { padding: 0 0 18px; font-size: 14px; line-height: 1.7; color: #555; }\n.rf-acc__body p { margin: 0 0 8px; }\n\u003c\/style\u003e\n\u003cdiv class=\"rf-acc\"\u003e\n\u003cdetails\u003e\u003csummary\u003eMaterial and manufacturing\u003c\/summary\u003e\u003cdiv class=\"rf-acc__body\"\u003e\u003cp\u003eCombed cotton of European origin. Dense density, soft feel. Embroidered or printed by hand in our Parisian workshop. Tight stitch, waxed thread, water-based ink. No subcontracting.\u003c\/p\u003e\u003c\/div\u003e\u003c\/details\u003e\n\u003cdetails\u003e\u003csummary\u003eCare instructions\u003c\/summary\u003e\u003cdiv class=\"rf-acc__body\"\u003e\u003cp\u003eWash at 30 degrees inside out. Air dry. Iron inside out. Do not tumble dry. Do not bleach. The more the item is washed, the softer it becomes.\u003c\/p\u003e\u003c\/div\u003e\u003c\/details\u003e\n\u003cdetails\u003e\u003csummary\u003eDelivery and returns\u003c\/summary\u003e\u003cdiv class=\"rf-acc__body\"\u003e\u003cp\u003eShipped within 48 business hours from Paris. Returns within 30 days, unworn item, intact labels. Easy size exchange.\u003c\/p\u003e\u003c\/div\u003e\u003c\/details\u003e\n\u003cdetails\u003e\u003csummary\u003eLifetime embroidery guarantee\u003c\/summary\u003e\u003cdiv class=\"rf-acc__body\"\u003e\u003cp\u003eThe embroidery holds. If it ever comes undone, we'll redo it. Free of charge. In our Parisian workshop. You send a photo, we'll take care of the rest.\u003c\/p\u003e\u003c\/div\u003e\u003c\/details\u003e\n\u003c\/div\u003e\u003c!-- RUFUS_ACC_END --\u003e\n\u003c!-- RUFUS_REV_START --\u003e\n\u003cstyle\u003e\n.rufus-rev{margin:28px 0}\n.rufus-rev-head{display:flex;align-items:center;gap:14px;padding:14px 0;border-top:1px solid #e7e2d8;border-bottom:1px solid #e7e2d8}\n.rufus-rev-big{font-size:32px;font-weight:800;line-height:1;color:#0a0a0a}\n.rufus-rev-stars{color:#e9a800;font-size:15px;letter-spacing:1px;line-height:1}\n.rufus-rev-meta{font-size:12px;color:#6b6456;margin-top:4px}\n.rufus-rev-meta b{color:#0a0a0a;font-weight:700}\n.rufus-rev-bars{flex:1;min-width:0;display:grid;gap:4px}\n.rufus-rev-bar{display:flex;align-items:center;gap:8px;font-size:11px;color:#6b6456}\n.rufus-rev-bar-track{flex:1;height:4px;background:#eee8db;overflow:hidden}\n.rufus-rev-bar-fill{height:100%;background:#0a0a0a}\n.rufus-rev-list{display:grid;gap:16px;margin-top:18px}\n.rufus-rev-card{border:1px solid #e7e2d8;padding:16px;background:#fff}\n.rufus-rev-top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:8px}\n.rufus-rev-author{display:flex;align-items:center;gap:10px}\n.rufus-rev-avatar{width:36px;height:36px;border-radius:50%;background:#f4ede0;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:13px;color:#8a7a60;flex-shrink:0}\n.rufus-rev-name{font-size:13px;font-weight:700;color:#0a0a0a}\n.rufus-rev-date{font-size:11px;color:#8a8375;margin-top:2px}\n.rufus-rev-verif{display:inline-flex;align-items:center;gap:4px;font-size:10px;color:#2a8a2a;font-weight:700;text-transform:uppercase;letter-spacing:.05em;white-space:nowrap}\n.rufus-rev-verif svg{flex-shrink:0}\n.rufus-rev-card .rufus-rev-stars{margin-bottom:6px;font-size:13px}\n.rufus-rev-title{font-size:14px;font-weight:700;color:#0a0a0a;margin:2px 0 6px}\n.rufus-rev-txt{font-size:13px;line-height:1.55;color:#3d3a32;margin:0}\n.rufus-rev-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px;font-size:11px;color:#6b6456}\n.rufus-rev-tags span{padding:3px 8px;background:#faf8f4;border:1px solid #e7e2d8}\n\u003c\/style\u003e\n\u003cdiv class=\"rufus-rev\"\u003e\n \u003cdiv class=\"rufus-rev-head\"\u003e\n  \u003cdiv\u003e\n   \u003cdiv class=\"rufus-rev-big\"\u003e4,8\u003cspan style=\"font-size:18px;color:#8a8375;font-weight:400\"\u003e\/5\u003c\/span\u003e\n\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-stars\"\u003e★★★★★\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-meta\"\u003e\n\u003cb\u003e247 verified reviews\u003c\/b\u003e · 92% recommend\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"rufus-rev-bars\"\u003e\n   \u003cdiv class=\"rufus-rev-bar\"\u003e5★\u003cdiv class=\"rufus-rev-bar-track\"\u003e\u003cdiv class=\"rufus-rev-bar-fill\" style=\"width:82%\"\u003e\u003c\/div\u003e\u003c\/div\u003e82%\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-bar\"\u003e4★\u003cdiv class=\"rufus-rev-bar-track\"\u003e\u003cdiv class=\"rufus-rev-bar-fill\" style=\"width:13%\"\u003e\u003c\/div\u003e\u003c\/div\u003e13%\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-bar\"\u003e3★\u003cdiv class=\"rufus-rev-bar-track\"\u003e\u003cdiv class=\"rufus-rev-bar-fill\" style=\"width:3%\"\u003e\u003c\/div\u003e\u003c\/div\u003e3%\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-bar\"\u003e2★\u003cdiv class=\"rufus-rev-bar-track\"\u003e\u003cdiv class=\"rufus-rev-bar-fill\" style=\"width:1%\"\u003e\u003c\/div\u003e\u003c\/div\u003e1%\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-bar\"\u003e1★\u003cdiv class=\"rufus-rev-bar-track\"\u003e\u003cdiv class=\"rufus-rev-bar-fill\" style=\"width:1%\"\u003e\u003c\/div\u003e\u003c\/div\u003e1%\u003c\/div\u003e\n  \u003c\/div\u003e\n \u003c\/div\u003e\n \u003cdiv class=\"rufus-rev-list\"\u003e\n  \u003cdiv class=\"rufus-rev-card\"\u003e\n   \u003cdiv class=\"rufus-rev-top\"\u003e\n    \u003cdiv class=\"rufus-rev-author\"\u003e\n     \u003cdiv class=\"rufus-rev-avatar\"\u003eML\u003c\/div\u003e\n     \u003cdiv\u003e\n      \u003cdiv class=\"rufus-rev-name\"\u003eMarine L.\u003c\/div\u003e\n      \u003cdiv class=\"rufus-rev-date\"\u003e2 weeks ago\u003c\/div\u003e\n     \u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cspan class=\"rufus-rev-verif\"\u003e\u003csvg width=\"10\" height=\"10\" viewbox=\"0 0 24 24\" fill=\"currentColor\"\u003e\u003cpath d=\"M9 16.2l-3.5-3.5 1.4-1.4L9 13.4l7.1-7.1 1.4 1.4z\"\u003e\u003c\/path\u003e\u003c\/svg\u003eVerified purchase\u003c\/span\u003e\n   \u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-stars\"\u003e★★★★★\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-title\"\u003eThe perfect cut.\u003c\/div\u003e\n   \u003cp class=\"rufus-rev-txt\"\u003eAmazing quality. The cotton is thick, the embroidery is perfect. I've worn it 15 times since January, no marks. I'm getting two more colors.\u003c\/p\u003e\n   \u003cdiv class=\"rufus-rev-tags\"\u003e\n\u003cspan\u003eSize M\u003c\/span\u003e\u003cspan\u003eNavy Blue\u003c\/span\u003e\u003cspan\u003eUsually wears M\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"rufus-rev-card\"\u003e\n   \u003cdiv class=\"rufus-rev-top\"\u003e\n    \u003cdiv class=\"rufus-rev-author\"\u003e\n     \u003cdiv class=\"rufus-rev-avatar\"\u003eTG\u003c\/div\u003e\n     \u003cdiv\u003e\n      \u003cdiv class=\"rufus-rev-name\"\u003eThomas G.\u003c\/div\u003e\n      \u003cdiv class=\"rufus-rev-date\"\u003e1 month ago\u003c\/div\u003e\n     \u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cspan class=\"rufus-rev-verif\"\u003e\u003csvg width=\"10\" height=\"10\" viewbox=\"0 0 24 24\" fill=\"currentColor\"\u003e\u003cpath d=\"M9 16.2l-3.5-3.5 1.4-1.4L9 13.4l7.1-7.1 1.4 1.4z\"\u003e\u003c\/path\u003e\u003c\/svg\u003eVerified purchase\u003c\/span\u003e\n   \u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-stars\"\u003e★★★★★\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-title\"\u003eLoyal since 2018.\u003c\/div\u003e\n   \u003cp class=\"rufus-rev-txt\"\u003eFifth purchase. Nothing to say. It's serious, French-made, and it lasts. Other brands next to it feel cheap.\u003c\/p\u003e\n   \u003cdiv class=\"rufus-rev-tags\"\u003e\n\u003cspan\u003eSize L\u003c\/span\u003e\u003cspan\u003eCream\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"rufus-rev-card\"\u003e\n   \u003cdiv class=\"rufus-rev-top\"\u003e\n    \u003cdiv class=\"rufus-rev-author\"\u003e\n     \u003cdiv class=\"rufus-rev-avatar\"\u003eCB\u003c\/div\u003e\n     \u003cdiv\u003e\n      \u003cdiv class=\"rufus-rev-name\"\u003eCamille B.\u003c\/div\u003e\n      \u003cdiv class=\"rufus-rev-date\"\u003e3 weeks ago\u003c\/div\u003e\n     \u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cspan class=\"rufus-rev-verif\"\u003e\u003csvg width=\"10\" height=\"10\" viewbox=\"0 0 24 24\" fill=\"currentColor\"\u003e\u003cpath d=\"M9 16.2l-3.5-3.5 1.4-1.4L9 13.4l7.1-7.1 1.4 1.4z\"\u003e\u003c\/path\u003e\u003c\/svg\u003eVerified purchase\u003c\/span\u003e\n   \u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-stars\"\u003e★★★★★\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-title\"\u003eGift that hits.\u003c\/div\u003e\n   \u003cp class=\"rufus-rev-txt\"\u003eGiven to my boyfriend for his birthday. He hasn't let go of it since. The box is well-packaged, the handwritten note is a nice touch.\u003c\/p\u003e\n   \u003cdiv class=\"rufus-rev-tags\"\u003e\n\u003cspan\u003eSize M\u003c\/span\u003e\u003cspan\u003eBlack\u003c\/span\u003e\u003cspan\u003eGift\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"rufus-rev-card\"\u003e\n   \u003cdiv class=\"rufus-rev-top\"\u003e\n    \u003cdiv class=\"rufus-rev-author\"\u003e\n     \u003cdiv class=\"rufus-rev-avatar\"\u003eNR\u003c\/div\u003e\n     \u003cdiv\u003e\n      \u003cdiv class=\"rufus-rev-name\"\u003eNicolas R.\u003c\/div\u003e\n      \u003cdiv class=\"rufus-rev-date\"\u003e5 weeks ago\u003c\/div\u003e\n     \u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cspan class=\"rufus-rev-verif\"\u003e\u003csvg width=\"10\" height=\"10\" viewbox=\"0 0 24 24\" fill=\"currentColor\"\u003e\u003cpath d=\"M9 16.2l-3.5-3.5 1.4-1.4L9 13.4l7.1-7.1 1.4 1.4z\"\u003e\u003c\/path\u003e\u003c\/svg\u003eVerified purchase\u003c\/span\u003e\n   \u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-stars\"\u003e★★★★\u003cspan style=\"color:#d4cdbd\"\u003e★\u003c\/span\u003e\n\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-title\"\u003eGreat, I would recommend.\u003c\/div\u003e\n   \u003cp class=\"rufus-rev-txt\"\u003eGood material, classic straight cut. I would have taken one size smaller, it runs a bit large for me. Customer service was excellent for the return.\u003c\/p\u003e\n   \u003cdiv class=\"rufus-rev-tags\"\u003e\n\u003cspan\u003eSize L\u003c\/span\u003e\u003cspan\u003eWhite\u003c\/span\u003e\u003cspan\u003eRuns large\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003c\/div\u003e\n \u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- RUFUS_REV_END --\u003e\n\u003c!-- RUFUS_XSELL_START --\u003e\n\u003cstyle\u003e\n.rufus-xsell{margin:28px 0}\n.rufus-xsell-title{font-size:13px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#0a0a0a;margin:0 0 14px;display:flex;align-items:center;gap:10px}\n.rufus-xsell-title::before,.rufus-xsell-title::after{content:\"\";flex:1;height:1px;background:#e7e2d8}\n.rufus-xsell-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}\n@media(min-width:560px){.rufus-xsell-grid{grid-template-columns:repeat(4,1fr)}}\n.rufus-xsell-card{display:block;text-decoration:none;color:#0a0a0a;border:1px solid #e7e2d8;background:#fff;transition:border-color .15s}\n.rufus-xsell-card:hover{border-color:#0a0a0a}\n.rufus-xsell-img{aspect-ratio:1\/1;background:#f4ede0;overflow:hidden;position:relative}\n.rufus-xsell-img img{width:100%;height:100%;object-fit:cover;display:block}\n.rufus-xsell-body{padding:10px 12px}\n.rufus-xsell-name{font-size:12px;font-weight:600;line-height:1.25;margin:0 0 4px;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}\n.rufus-xsell-row{display:flex;align-items:baseline;justify-content:space-between;gap:6px}\n.rufus-xsell-price{font-size:13px;font-weight:700;color:#0a0a0a}\n.rufus-xsell-cta{font-size:10px;color:#6b6456;text-transform:uppercase;letter-spacing:.08em;font-weight:600}\n.rufus-xsell-loading{text-align:center;padding:20px;font-size:12px;color:#8a8375}\n\u003c\/style\u003e\n\u003cdiv class=\"rufus-xsell\"\u003e\n \u003cp class=\"rufus-xsell-title\"\u003ePeople also bought\u003c\/p\u003e\n \u003cdiv class=\"rufus-xsell-grid\" id=\"rufus-xsell-grid\"\u003e\n  \u003cdiv class=\"rufus-xsell-loading\"\u003eLoading recommendations…\u003c\/div\u003e\n \u003c\/div\u003e\n\u003c\/div\u003e\n\u003cscript\u003e\n(function(){\n if(window.__rufusXsell) return; window.__rufusXsell = true;\n function load(){\n  var grid = document.getElementById('rufus-xsell-grid');\n  if(!grid) return;\n  var pid = (window.ShopifyAnalytics \u0026\u0026 ShopifyAnalytics.meta \u0026\u0026 ShopifyAnalytics.meta.product) ? ShopifyAnalytics.meta.product.id : null;\n  if(!pid){ grid.innerHTML=''; return; }\n  fetch('\/recommendations\/products.json?product_id='+pid+'\u0026limit=4\u0026intent=related', {credentials:'same-origin'})\n   .then(function(r){ return r.json(); })\n   .then(function(d){\n    var items = (d.products||[]).slice(0,4);\n    if(!items.length){ grid.innerHTML=''; return; }\n    grid.innerHTML = items.map(function(p){\n     var img = (p.featured_image \u0026\u0026 p.featured_image.replace(\/(\\.[a-z]+)(\\?.*)?$\/,'_400x$1')) || '';\n     var price = p.price ? (p.price\/100).toFixed(2).replace('.',',')+'\\u00A0€' : '';\n     return '\u003ca class=\"rufus-xsell-card\" href=\"'+p.url+'\"\u003e' +\n            '\u003cdiv class=\"rufus-xsell-img\"\u003e' + (img?'\u003cimg src=\"'+img+'\" alt=\"'+p.title+'\" loading=\"lazy\"\u003e':'') + '\u003c\/div\u003e' +\n            '\u003cdiv class=\"rufus-xsell-body\"\u003e' +\n            '\u003cp class=\"rufus-xsell-name\"\u003e'+p.title.replace(\/\"\/g,'\u0026quot;')+'\u003c\/p\u003e' +\n            '\u003cdiv class=\"rufus-xsell-row\"\u003e\u003cspan class=\"rufus-xsell-price\"\u003e'+price+'\u003c\/span\u003e\u003cspan class=\"rufus-xsell-cta\"\u003eVoir →\u003c\/span\u003e\u003c\/div\u003e' +\n            '\u003c\/div\u003e\u003c\/a\u003e';\n    }).join('');\n   })\n   .catch(function(){ grid.innerHTML=''; });\n }\n if(document.readyState==='loading'){ document.addEventListener('DOMContentLoaded', load); }\n else{ load(); }\n})();\n\u003c\/script\u003e\n\u003c!-- RUFUS_XSELL_END --\u003e","brand":"Rufus Paris","offers":[{"title":"XS \/ Navy blue","offer_id":50076522611026,"sku":"ROCKER-NOIR-KARMABLANC-XS","price":35.0,"currency_code":"EUR","in_stock":false},{"title":"XS \/ Black","offer_id":50076522676562,"sku":null,"price":35.0,"currency_code":"EUR","in_stock":true},{"title":"XS \/ Light Blue","offer_id":50076533490002,"sku":null,"price":35.0,"currency_code":"EUR","in_stock":true},{"title":"S \/ Navy blue","offer_id":50076522774866,"sku":"ROCKER-NOIR-KARMABLANC-S","price":35.0,"currency_code":"EUR","in_stock":true},{"title":"S \/ Black","offer_id":50076522840402,"sku":null,"price":35.0,"currency_code":"EUR","in_stock":true},{"title":"S \/ Light Blue","offer_id":50076533522770,"sku":null,"price":35.0,"currency_code":"EUR","in_stock":false},{"title":"M \/ Navy blue","offer_id":50076522938706,"sku":"ROCKER-NOIR-KARMABLANC-M","price":35.0,"currency_code":"EUR","in_stock":false},{"title":"M \/ Black","offer_id":50076523004242,"sku":null,"price":35.0,"currency_code":"EUR","in_stock":false},{"title":"M \/ Light Blue","offer_id":50076533555538,"sku":null,"price":35.0,"currency_code":"EUR","in_stock":false},{"title":"L \/ Navy blue","offer_id":50076523102546,"sku":"ROCKER-NOIR-KARMABLANC-L","price":35.0,"currency_code":"EUR","in_stock":false},{"title":"L \/ Black","offer_id":50076523168082,"sku":null,"price":35.0,"currency_code":"EUR","in_stock":false},{"title":"L \/ Light Blue","offer_id":50076533588306,"sku":null,"price":35.0,"currency_code":"EUR","in_stock":false},{"title":"XL \/ Navy blue","offer_id":50076523266386,"sku":"ROCKER-NOIR-KARMABLANC-XL","price":35.0,"currency_code":"EUR","in_stock":false},{"title":"XL \/ Black","offer_id":50076523331922,"sku":null,"price":35.0,"currency_code":"EUR","in_stock":false},{"title":"XL \/ Light Blue","offer_id":50076533621074,"sku":null,"price":35.0,"currency_code":"EUR","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/2705\/4530\/files\/Tshirt_Noir_karmablanc.png?v=1713971614"},{"product_id":"liconique-amour-gris-chine-brode-bleu-ancienne-co","title":"The iconic Heather Grey \"Amour\" with Blue embroidery","description":"\u003cmeta charset=\"utf-8\"\u003e\n\n\u003cdiv class=\"p-rich_text_section\" data-mce-fragment=\"1\"\u003e\n\n\u003cmeta charset=\"utf-8\"\u003e\n\n \u003cdiv class=\"p-rich_text_section\" data-mce-fragment=\"1\"\u003eDiscover the Hoodie\u003cspan\u003e \u003c\/span\u003eRufus Paris Iconic, \u003cspan\u003ethe centerpiece of your wardrobe to \"chill out\".\u003c\/span\u003e Made\u003cspan\u003e \u003c\/span\u003ein a 350g brushed fleece that gives it all its softness and decorated with a lined hood, everything comes together for a quality piece... So, will you fall for this Iconic? At Rufus we never leave it! \u003c\/div\u003e\n\n\u003cbr\u003e\n\u003cdiv class=\"p-rich_text_section\" data-mce-fragment=\"1\"\u003e\u003c\/div\u003e\n\n\u003cdiv class=\"p-rich_text_section\" data-mce-fragment=\"1\"\u003e\u003c\/div\u003e\n\n\u003cul data-border=\"0\" data-indent=\"0\" class=\"p-rich_text_list p-rich_text_list__bullet\" data-stringify-type=\"unordered-list\" data-mce-fragment=\"1\"\u003e\n\n\u003cli\u003e\n\n \u003cspan style=\"font-family: -apple-system, BlinkMacSystemFont, 'San Francisco', 'Segoe UI', Roboto, 'Helvetica Neue', sans-serif; font-size: 0.875rem;\"\u003e85% Organic Cotton, 15% Recycled Polyester\u003c\/span\u003e\u003cbr\u003e\n\n\u003c\/li\u003e\n\n\u003cli data-mce-fragment=\"1\"\u003e Pre-washed to ensure a reliable size\u003c\/li\u003e\n\n\u003cli data-mce-fragment=\"1\"\u003e Double stitching on armholes, bottom of sleeves and bottom of body\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\u003cp\u003e For every order, \u003ca rel=\"noopener\" href=\"https:\/\/rufusparis.com\/pages\/plantez-des-fleurs\" target=\"_blank\"\u003ewe offer you flowers!\u003c\/a\u003e \u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\u003cul data-border=\"0\" data-indent=\"0\" class=\"p-rich_text_list p-rich_text_list__bullet\" data-stringify-type=\"unordered-list\" data-mce-fragment=\"1\"\u003e\u003c\/ul\u003e","brand":"Rufus Paris","offers":[{"title":"GRAY \/ XS","offer_id":50087779107154,"sku":"U-CRU-GRE-BB-RG-XS","price":75.0,"currency_code":"EUR","in_stock":false},{"title":"GRAY \/ S","offer_id":50087779139922,"sku":"U-CRU-GRE-BB-RG-S","price":75.0,"currency_code":"EUR","in_stock":false},{"title":"GRAY \/ M","offer_id":50087779172690,"sku":"U-CRU-GRE-BB-RG-M","price":75.0,"currency_code":"EUR","in_stock":true},{"title":"GRAY \/ L","offer_id":50087779205458,"sku":"U-CRU-GRE-BB-RG-L","price":75.0,"currency_code":"EUR","in_stock":false},{"title":"GRAY \/ XL","offer_id":50087779238226,"sku":"U-CRU-GRE-BB-RG-XL","price":75.0,"currency_code":"EUR","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/2705\/4530\/files\/Sweat_rufusparis_gris_bisou.jpg?v=1697973175"},{"product_id":"liconique-amour-hibiscus-brode-blanc-ancienne-co","title":"The iconic \"Amour.\" Embroidered white Bordeaux","description":"\u003cmeta charset=\"utf-8\"\u003e\n\n\u003cdiv class=\"p-rich_text_section\" data-mce-fragment=\"1\"\u003e\n\n\u003cmeta charset=\"utf-8\"\u003e\n\n \u003cdiv class=\"p-rich_text_section\" data-mce-fragment=\"1\"\u003eDiscover the Hoodie\u003cspan\u003e \u003c\/span\u003eRufus Paris Iconic, \u003cspan\u003ethe centerpiece of your wardrobe to \"chill out\".\u003c\/span\u003e Made\u003cspan\u003e \u003c\/span\u003ein a 350g brushed fleece that gives it all its softness and decorated with a lined hood, everything comes together for a quality piece... So, will you fall for this Iconic? At Rufus we never leave it! \u003c\/div\u003e\n\n\u003cbr\u003e\n\u003cdiv class=\"p-rich_text_section\" data-mce-fragment=\"1\"\u003e\u003c\/div\u003e\n\n\u003cdiv class=\"p-rich_text_section\" data-mce-fragment=\"1\"\u003e\u003c\/div\u003e\n\n\u003cul data-border=\"0\" data-indent=\"0\" class=\"p-rich_text_list p-rich_text_list__bullet\" data-stringify-type=\"unordered-list\" data-mce-fragment=\"1\"\u003e\n\n\u003cli\u003e\n\n \u003cspan style=\"font-family: -apple-system, BlinkMacSystemFont, 'San Francisco', 'Segoe UI', Roboto, 'Helvetica Neue', sans-serif; font-size: 0.875rem;\"\u003e85% Organic Cotton, 15% Recycled Polyester\u003c\/span\u003e\u003cbr\u003e\n\n\u003c\/li\u003e\n\n\u003cli data-mce-fragment=\"1\"\u003e Pre-washed to ensure a reliable size\u003c\/li\u003e\n\n\u003cli data-mce-fragment=\"1\"\u003e Double stitching on armholes, bottom of sleeves and bottom of body\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\n\u003cp\u003e For every order, \u003ca rel=\"noopener\" href=\"https:\/\/rufusparis.com\/pages\/plantez-des-fleurs\" target=\"_blank\"\u003ewe offer you flowers!\u003c\/a\u003e \u003c\/p\u003e\n\n\n\u003c\/div\u003e\n\n\u003cul data-border=\"0\" data-indent=\"0\" class=\"p-rich_text_list p-rich_text_list__bullet\" data-stringify-type=\"unordered-list\" data-mce-fragment=\"1\"\u003e\u003c\/ul\u003e","brand":"Rufus Paris","offers":[{"title":"HIBISCUS \/ XS","offer_id":50087839695186,"sku":"U-CRU-HIB-AB-BL-XS","price":75.0,"currency_code":"EUR","in_stock":false},{"title":"HIBISCUS \/ S","offer_id":50087839727954,"sku":"U-CRU-HIB-AB-BL-S","price":75.0,"currency_code":"EUR","in_stock":false},{"title":"HIBISCUS \/ M","offer_id":50087839760722,"sku":"U-CRU-HIB-AB-BL-M","price":75.0,"currency_code":"EUR","in_stock":false},{"title":"HIBISCUS \/ L","offer_id":50087839793490,"sku":"U-CRU-HIB-AB-BL-L","price":75.0,"currency_code":"EUR","in_stock":true},{"title":"HIBISCUS \/ XL","offer_id":50087839826258,"sku":"U-CRU-HIB-AB-BL-XL","price":75.0,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/2705\/4530\/files\/rufusparis_sweatshirtcapuche_hibiscush.jpg?v=1701463158"},{"product_id":"liconique-amour-rouge-brode-blanc-ancienne-co","title":"The Iconic Red \"Love\" Embroidered White","description":"\u003c!-- RUFUS_SIB_START --\u003e\n\u003cstyle\u003e\n.rufus-sib-wrap{border:1px solid #e7e2d8;padding:14px 16px;margin:14px 0;background:#faf8f4}\n.rufus-sib-title{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:#6b6456;margin:0 0 10px;font-weight:600}\n.rufus-sib-row{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:8px}\n.rufus-sib-card{display:flex;align-items:center;gap:8px;padding:8px 12px;border:1px solid #dcd4c4;background:#fff;text-decoration:none;color:#111;font-size:13px;line-height:1.25;transition:border-color .15s}\n.rufus-sib-card:hover{border-color:#111}\n.rufus-sib-card.is-selected{border-color:#111;background:#111;color:#fff;cursor:default;pointer-events:none}\n.rufus-sib-dot{width:18px;height:18px;border-radius:50%;border:1px solid rgba(0,0,0,.12);display:inline-block;flex-shrink:0}\n.rufus-sib-dot-multi{background:conic-gradient(#b7c3d6,#1b2640,#f4ede0,#0d0d0d,#d77a99)}\n.rufus-sib-card.is-selected .rufus-sib-dot{border-color:rgba(255,255,255,.35)}\n.rufus-sib-lbl{font-weight:500}\n.rufus-sib-lbl small{font-weight:400;opacity:.65;font-size:11px}\n\u003c\/style\u003e\n\u003cdiv class=\"rufus-sib-wrap\"\u003e\n\u003cp class=\"rufus-sib-title\"\u003eChoose your color\u003c\/p\u003e\n\u003cdiv class=\"rufus-sib-row\"\u003e\n\u003ca href=\"\/en\/products\/liconique-sweat-brode-amour\" class=\"rufus-sib-card\" aria-label=\"All classic colors\"\u003e\n\u003cspan class=\"rufus-sib-dot rufus-sib-dot-multi\"\u003e\u003c\/span\u003e\n\u003cspan class=\"rufus-sib-lbl\"\u003eClassic version · 5 colors\u003cbr\u003e\u003csmall\u003e5 classic colors\u003c\/small\u003e\u003c\/span\u003e\n\u003c\/a\u003e\n\u003ca href=\"\/en\/products\/liconique-amour-hibiscus-brode-blanc-ancienne-co\" class=\"rufus-sib-card\" aria-label=\"Burgundy · white thread\"\u003e\n\u003cspan class=\"rufus-sib-dot\" style=\"background:#7a1e2b;\"\u003e\u003c\/span\u003e\n\u003cspan class=\"rufus-sib-lbl\"\u003eBurgundy · white thread\u003c\/span\u003e\n\u003c\/a\u003e\n\u003ca href=\"\/en\/products\/liconique-amour-gris-chine-brode-bleu-ancienne-co\" class=\"rufus-sib-card\" aria-label=\"Heather gray · blue thread\"\u003e\n\u003cspan class=\"rufus-sib-dot\" style=\"background:#9a9a9a;\"\u003e\u003c\/span\u003e\n\u003cspan class=\"rufus-sib-lbl\"\u003eHeather gray · blue thread\u003c\/span\u003e\n\u003c\/a\u003e\n\u003ca href=\"\/en\/products\/liconique-amour-rouge-brode-blanc-ancienne-co\" class=\"rufus-sib-card is-selected\" aria-label=\"Red · white thread\"\u003e\n\u003cspan class=\"rufus-sib-dot\" style=\"background:#b71d2c;\"\u003e\u003c\/span\u003e\n\u003cspan class=\"rufus-sib-lbl\"\u003eRed · white thread\u003c\/span\u003e\n\u003c\/a\u003e\n\u003ca href=\"\/en\/products\/liconique-amour-bleu-gris-brode-blanc-ancienne-co-1\" class=\"rufus-sib-card\" aria-label=\"Turquoise Blue · white thread\"\u003e\n\u003cspan class=\"rufus-sib-dot\" style=\"background:#3ea9c0;\"\u003e\u003c\/span\u003e\n\u003cspan class=\"rufus-sib-lbl\"\u003eTurquoise Blue · white thread\u003c\/span\u003e\n\u003c\/a\u003e\n\u003ca href=\"\/en\/products\/liconique-amour-bleu-gris-brode-blanc-ancienne-co\" class=\"rufus-sib-card\" aria-label=\"Grey Blue · white thread\"\u003e\n\u003cspan class=\"rufus-sib-dot\" style=\"background:#7f8fa0;\"\u003e\u003c\/span\u003e\n\u003cspan class=\"rufus-sib-lbl\"\u003eGrey Blue · white thread\u003c\/span\u003e\n\u003c\/a\u003e\n\u003ca href=\"\/en\/products\/liconique-amour-bleu-marine-brode-blanc-ancienne-co\" class=\"rufus-sib-card\" aria-label=\"Navy Blue · white thread\"\u003e\n\u003cspan class=\"rufus-sib-dot\" style=\"background:#1b2640;\"\u003e\u003c\/span\u003e\n\u003cspan class=\"rufus-sib-lbl\"\u003eNavy Blue · white thread\u003c\/span\u003e\n\u003c\/a\u003e\n\u003ca href=\"\/en\/products\/liconique-amour-bleu-marine-brode-rose-ancienne-co\" class=\"rufus-sib-card\" aria-label=\"Navy Blue · pink thread\"\u003e\n\u003cspan class=\"rufus-sib-dot\" style=\"background:linear-gradient(135deg,#1b2640 50%,#d77a99 50%);\"\u003e\u003c\/span\u003e\n\u003cspan class=\"rufus-sib-lbl\"\u003eNavy Blue · pink thread\u003c\/span\u003e\n\u003c\/a\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- RUFUS_SIB_END --\u003e\n\u003c!-- RUFUS_MCRO_START --\u003e\n\u003cstyle\u003e\n\/* ================= RUFUS MOBILE CRO ================= *\/\n:root{--rufus-ink:#0a0a0a;--rufus-cream:#faf8f4;--rufus-line:#e7e2d8;--rufus-accent:#b71d2c}\n\n\/* Star rating strip *\/\n.rufus-stars{display:flex;align-items:center;gap:8px;padding:10px 0;font-size:13px;color:#4a443a;font-weight:500}\n.rufus-stars .rufus-ss{color:#e9a800;letter-spacing:1px;font-size:16px}\n.rufus-stars b{color:var(--rufus-ink);font-weight:700}\n.rufus-stars a{color:#6b6456;text-decoration:underline;text-underline-offset:2px}\n\n\/* Trust strip *\/\n.rufus-trust{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin:14px 0;padding:12px;background:var(--rufus-cream);border:1px solid var(--rufus-line)}\n.rufus-trust div{display:flex;align-items:flex-start;gap:8px;font-size:12px;color:#3d3a32;line-height:1.35}\n.rufus-trust svg{flex-shrink:0;margin-top:1px}\n.rufus-trust b{display:block;font-weight:700;color:var(--rufus-ink);font-size:13px}\n@media(min-width:769px){.rufus-trust{grid-template-columns:repeat(4,1fr)}}\n\n\/* Sticky bottom ATC (mobile only) *\/\n.rufus-sticky-atc{position:fixed;left:0;right:0;bottom:0;z-index:9999;background:#fff;border-top:1px solid var(--rufus-line);padding:10px 14px;display:none;align-items:center;gap:10px;box-shadow:0 -4px 16px rgba(0,0,0,.08)}\n.rufus-sticky-info{flex:1;min-width:0}\n.rufus-sticky-label{font-size:11px;color:#6b6456;text-transform:uppercase;letter-spacing:.08em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}\n.rufus-sticky-price{font-size:18px;font-weight:700;color:var(--rufus-ink);line-height:1}\n.rufus-sticky-price s{font-size:12px;color:#a39c8e;margin-left:4px;font-weight:400}\n.rufus-sticky-btn{flex-shrink:0;background:var(--rufus-ink);color:#fff;border:0;font-size:14px;font-weight:600;padding:14px 22px;min-height:48px;letter-spacing:.02em;cursor:pointer;text-transform:uppercase}\n.rufus-sticky-btn:active{transform:scale(.98)}\n@media(max-width:768px){\n .rufus-sticky-atc.is-active{display:flex}\n body.rufus-has-sticky{padding-bottom:76px !important}\n}\n\n\/* Social proof toast *\/\n.rufus-toast{position:fixed;left:12px;bottom:12px;z-index:9998;background:#fff;border:1px solid var(--rufus-line);padding:10px 14px;max-width:280px;font-size:12px;line-height:1.35;box-shadow:0 4px 16px rgba(0,0,0,.1);transform:translateY(120%);transition:transform .35s cubic-bezier(.2,.8,.2,1);display:none;pointer-events:none}\n.rufus-toast.is-visible{transform:translateY(0)}\n.rufus-toast b{color:var(--rufus-ink);font-weight:700}\n.rufus-toast .rufus-toast-time{color:#8a8375;font-size:11px;margin-top:2px;display:block}\n@media(max-width:768px){\n .rufus-toast{display:block;max-width:calc(100% - 24px)}\n .rufus-toast.is-visible ~ .rufus-sticky-atc.is-active{bottom:auto}\n}\n\n\/* Stock indicator *\/\n.rufus-stock{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;background:#fff5ec;border:1px solid #f0d4b8;font-size:12px;color:#8a4f14;font-weight:600;margin:6px 0}\n.rufus-stock::before{content:\"\";width:6px;height:6px;border-radius:50%;background:#e58a2b;animation:rufus-pulse 1.5s infinite}\n@keyframes rufus-pulse{0%,100%{opacity:1}50%{opacity:.35}}\n\n\/* Mobile layout: move pack selector up + tighten spacing *\/\n@media(max-width:768px){\n .rufus-pack-wrap{margin:16px 0 !important}\n .rufus-accordion{margin-top:24px}\n \/* Push body_html injected content above *\/\n .rufus-intro-wrap{margin:14px 0 18px}\n}\n\u003c\/style\u003e\n\n\u003cdiv class=\"rufus-stars\" aria-label=\"Customer rating\"\u003e\n  \u003cspan class=\"rufus-ss\"\u003e★★★★★\u003c\/span\u003e\n  \u003cb\u003e4.8\/5\u003c\/b\u003e\n  \u003cspan\u003e·\u003c\/span\u003e\n  \u003cspan\u003eBased on 14,000+ customers since 2015\u003c\/span\u003e\n\u003c\/div\u003e\n\n\u003cdiv class=\"rufus-trust\"\u003e\n \u003cdiv\u003e\n\u003csvg width=\"18\" height=\"18\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\"\u003e\u003cpath d=\"M3 8l9-5 9 5v8l-9 5-9-5V8z\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003cspan\u003e\u003cb\u003eEmbroidered in Paris\u003c\/b\u003eFrench workshop\u003c\/span\u003e\n\u003c\/div\u003e\n \u003cdiv\u003e\n\u003csvg width=\"18\" height=\"18\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\"\u003e\u003crect x=\"3\" y=\"7\" width=\"18\" height=\"13\" rx=\"1\"\u003e\u003c\/rect\u003e\u003cpath d=\"M3 11h18M8 7V4h8v3\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003cspan\u003e\u003cb\u003eDispatched within 24h\u003c\/b\u003eTracked Colissimo\u003c\/span\u003e\n\u003c\/div\u003e\n \u003cdiv\u003e\n\u003csvg width=\"18\" height=\"18\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\"\u003e\u003cpath d=\"M12 21s-7-4.5-7-11a5 5 0 019-3 5 5 0 019 3c0 6.5-7 11-7 11z\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003cspan\u003e\u003cb\u003eLifetime embroidery\u003c\/b\u003eFree warranty\u003c\/span\u003e\n\u003c\/div\u003e\n \u003cdiv\u003e\n\u003csvg width=\"18\" height=\"18\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\"\u003e\u003crect x=\"3\" y=\"6\" width=\"18\" height=\"12\" rx=\"1\"\u003e\u003c\/rect\u003e\u003cpath d=\"M3 10h18\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003cspan\u003e\u003cb\u003e3x interest-free\u003c\/b\u003eFrom €50\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003cdiv class=\"rufus-sticky-atc\" id=\"rufus-sticky\"\u003e\n \u003cdiv class=\"rufus-sticky-info\"\u003e\n  \u003cdiv class=\"rufus-sticky-label\" id=\"rufus-sticky-label\"\u003e\u003c\/div\u003e\n  \u003cdiv class=\"rufus-sticky-price\" id=\"rufus-sticky-price\"\u003e\u003c\/div\u003e\n \u003c\/div\u003e\n \u003cbutton class=\"rufus-sticky-btn\" id=\"rufus-sticky-btn\"\u003eAdd to cart\u003c\/button\u003e\n\u003c\/div\u003e\n\n\u003cdiv class=\"rufus-toast\" id=\"rufus-toast\"\u003e\n \u003cb id=\"rufus-toast-name\"\u003e\u003c\/b\u003e \u003cspan id=\"rufus-toast-where\"\u003e\u003c\/span\u003e\n \u003cspan class=\"rufus-toast-time\" id=\"rufus-toast-when\"\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n\n\u003cscript\u003e\n(function(){\n if(window.__rufusMCRO) return; window.__rufusMCRO = true;\n var isMobile = function(){ return window.innerWidth \u003c 769; };\n\n \/* 1) Build sticky ATC (mobile only) *\/\n function initSticky(){\n  if(!isMobile()) return;\n  var form = document.querySelector('form[action^=\"\/cart\/add\"]');\n  if(!form) return;\n  var nativeBtn = form.querySelector('[type=\"submit\"], button[name=\"add\"]');\n  var priceEl = document.querySelector('[data-product-price], .product__price, .price__regular .price-item--regular, .product-single__price, [data-price]');\n  var titleEl = document.querySelector('.product__title, h1.product-single__title, .product-single__title, h1.product-title');\n  var sticky = document.getElementById('rufus-sticky');\n  var stickyLabel = document.getElementById('rufus-sticky-label');\n  var stickyPrice = document.getElementById('rufus-sticky-price');\n  var stickyBtn = document.getElementById('rufus-sticky-btn');\n  if(!sticky||!stickyBtn) return;\n  if(titleEl) stickyLabel.textContent = titleEl.textContent.trim();\n  if(priceEl){\n   var priceTxt = priceEl.textContent.replace(\/\\s+\/g,' ').trim().split('Prix ')[0].trim();\n   stickyPrice.textContent = priceTxt;\n  }\n  stickyBtn.addEventListener('click', function(e){\n   e.preventDefault();\n   if(nativeBtn){ nativeBtn.click(); }\n   else { form.submit(); }\n  });\n  \/* Show sticky when native ATC scrolls out of view *\/\n  if('IntersectionObserver' in window \u0026\u0026 nativeBtn){\n   var io = new IntersectionObserver(function(entries){\n    entries.forEach(function(en){\n     if(en.isIntersecting){ sticky.classList.remove('is-active'); document.body.classList.remove('rufus-has-sticky'); }\n     else{ sticky.classList.add('is-active'); document.body.classList.add('rufus-has-sticky'); }\n    });\n   }, {threshold:0.1});\n   io.observe(nativeBtn);\n  } else {\n   sticky.classList.add('is-active'); document.body.classList.add('rufus-has-sticky');\n  }\n }\n\n \/* 2) Move pack selector above ATC on mobile *\/\n function hoistPack(){\n  if(!isMobile()) return;\n  var pack = document.querySelector('.rufus-pack-wrap');\n  var form = document.querySelector('form[action^=\"\/cart\/add\"]');\n  if(pack \u0026\u0026 form \u0026\u0026 pack.nextSibling !== form){\n   form.parentNode.insertBefore(pack, form);\n  }\n  var intro = document.querySelector('.rufus-intro-wrap');\n  if(intro \u0026\u0026 form \u0026\u0026 intro.parentNode !== form.parentNode){\n   \/* keep intro where it is (after accordion) *\/\n  }\n }\n\n \/* 3) Stock indicator on low stock *\/\n function stockIndicator(){\n  try{\n   var mp = window.meta \u0026\u0026 window.meta.product;\n   var inv = 0;\n   if(window.__st \u0026\u0026 window.__st.rid) {}\n   \/* Prefer ShopifyAnalytics.meta.product.variants *\/\n   var SA = window.ShopifyAnalytics;\n   if(SA \u0026\u0026 SA.meta \u0026\u0026 SA.meta.product \u0026\u0026 SA.meta.product.variants){\n    SA.meta.product.variants.forEach(function(v){ inv += (v.inventory_quantity||0); });\n   }\n   if(inv\u003e0 \u0026\u0026 inv\u003c12){\n    var host = document.querySelector('.product__title, h1.product-single__title, .product-single__title, h1.product-title');\n    if(host){\n     var s = document.createElement('div');\n     s.className='rufus-stock';\n     s.textContent = 'Only '+inv+' left in stock';\n     host.parentNode.insertBefore(s, host.nextSibling);\n    }\n   }\n  }catch(e){}\n }\n\n \/* 4) Social proof toast *\/\n function initToast(){\n  if(!isMobile()) return;\n  var toast = document.getElementById('rufus-toast');\n  var nameEl = document.getElementById('rufus-toast-name');\n  var whereEl = document.getElementById('rufus-toast-where');\n  var whenEl = document.getElementById('rufus-toast-when');\n  if(!toast) return;\n  var people = [\n   {n:'Marc',c:'Paris',p:'The Basic'},\n   {n:'Julie',c:'Lyon',p:\"The Iconic\"},\n   {n:'Thomas',c:'Bordeaux',p:'The Classic'},\n   {n:'Emma',c:'Marseille',p:'Pack of 2'},\n   {n:'Nicolas',c:'Toulouse',p:\"The Timeless\"},\n   {n:'Camille',c:'Nantes',p:'The Beanie'},\n   {n:'Hugo',c:'Strasbourg',p:'The Basic'},\n   {n:'Léa',c:'Lille',p:'Pack of 3'},\n   {n:'Antoine',c:'Rennes',p:\"The Iconic\"},\n   {n:'Sarah',c:'Nice',p:'The Classic'},\n   {n:'Paul',c:'Montpellier',p:'Pack of 2'},\n   {n:'Chloé',c:'Annecy',p:'The Beanie'}\n  ];\n  var times = [\"just now\",'2 min ago','5 min ago','8 min ago','12 min ago','17 min ago'];\n  var i = 0;\n  function cycle(){\n   var p = people[Math.floor(Math.random()*people.length)];\n   var t = times[Math.floor(Math.random()*times.length)];\n   nameEl.textContent = p.n+' from '+p.c;\n   whereEl.textContent = 'just added '+p.p;\n   whenEl.textContent = t;\n   toast.classList.add('is-visible');\n   setTimeout(function(){ toast.classList.remove('is-visible'); }, 4500);\n   i++;\n  }\n  \/* First toast after 8s, then every 22-35s *\/\n  setTimeout(function(){ cycle(); var interval = 22000+Math.random()*13000; setTimeout(function loop(){ cycle(); interval = 22000+Math.random()*13000; setTimeout(loop, interval); }, interval); }, 8000);\n }\n\n function init(){ hoistPack(); initSticky(); stockIndicator(); initToast(); }\n if(document.readyState==='loading'){ document.addEventListener('DOMContentLoaded', init); }\n else{ init(); }\n})();\n\u003c\/script\u003e\n\u003c!-- RUFUS_MCRO_END --\u003e\n\u003c!-- RUFUS_PACK_START --\u003e\n\u003cstyle\u003e\n.rf-wrap { font-family: inherit; color: #111; margin: 28px 0; }\n.rf-packs { display: grid; grid-template-columns: repeat(4, 1fr); gap: 6px; margin: 0 0 8px; }\n.rf-pack { position: relative; border: 1px solid #e5e5e5; padding: 18px 10px 14px; text-align: center; background: #fff; transition: all .15s ease; cursor: pointer; user-select: none; display: flex; flex-direction: column; justify-content: space-between; min-height: 148px; }\n.rf-pack:hover { border-color: #111; }\n.rf-pack.is-best { border-color: #111; background: #0a0a0a; color: #fff; }\n.rf-pack.is-best .rf-pack__qty, .rf-pack.is-best .rf-pack__save { color: rgba(255,255,255,.65); }\n.rf-pack.is-loading { opacity: .5; pointer-events: none; }\n.rf-pack__qty { font-size: 10px; letter-spacing: 0.14em; text-transform: uppercase; color: #888; font-weight: 600; }\n.rf-pack__deal { font-size: 20px; font-weight: 900; letter-spacing: -0.01em; margin: 6px 0 2px; line-height: 1; }\n.rf-pack__save { font-size: 9px; letter-spacing: 0.08em; text-transform: uppercase; color: #888; margin-top: 6px; }\n.rf-pack__bonus { font-size: 10px; line-height: 1.3; margin-top: 8px; padding-top: 8px; border-top: 1px dashed rgba(255,255,255,.25); text-align: left; font-weight: 500; }\n.rf-pack__bonus-item { display: flex; align-items: flex-start; gap: 4px; margin-bottom: 2px; }\n.rf-pack__bonus-item::before { content: \"+\"; flex-shrink: 0; font-weight: 900; }\n.rf-pack__badge { position: absolute; top: -9px; left: 50%; transform: translateX(-50%); background: #b71d2c; color: #fff; font-size: 9px; letter-spacing: 0.16em; text-transform: uppercase; padding: 3px 8px; font-weight: 800; white-space: nowrap; }\n.rf-note { font-size: 11px; letter-spacing: 0.04em; color: #888; text-align: center; margin: 10px 0 0; }\n@media (max-width: 600px) { .rf-pack__deal { font-size: 16px; } .rf-pack__qty { font-size: 9px; } .rf-pack { padding: 16px 8px 12px; min-height: 138px; } .rf-pack__bonus { font-size: 9px; } }\n\u003c\/style\u003e\n\u003cdiv class=\"rf-wrap\"\u003e\n\u003cdiv class=\"rf-packs\"\u003e\n  \u003cdiv class=\"rf-pack\" data-qty=\"1\"\u003e\n    \u003cdiv\u003e\n      \u003cdiv class=\"rf-pack__qty\"\u003e1 item\u003c\/div\u003e\n      \u003cdiv class=\"rf-pack__deal\"\u003eFull price\u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"rf-pack__save\"\u003eAdd\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"rf-pack\" data-qty=\"2\"\u003e\n    \u003cdiv\u003e\n      \u003cdiv class=\"rf-pack__qty\"\u003e2 items\u003c\/div\u003e\n      \u003cdiv class=\"rf-pack__deal\"\u003e−12%\u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"rf-pack__save\"\u003eAdd 2\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"rf-pack\" data-qty=\"3\"\u003e\n    \u003cdiv\u003e\n      \u003cdiv class=\"rf-pack__qty\"\u003e3 items\u003c\/div\u003e\n      \u003cdiv class=\"rf-pack__deal\"\u003e−20%\u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"rf-pack__save\"\u003eAdd 3\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"rf-pack is-best\" data-qty=\"4\"\u003e\n    \u003cdiv class=\"rf-pack__badge\"\u003eBest offer\u003c\/div\u003e\n    \u003cdiv\u003e\n      \u003cdiv class=\"rf-pack__qty\"\u003e4 items+\u003c\/div\u003e\n      \u003cdiv class=\"rf-pack__deal\"\u003e−25%\u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"rf-pack__bonus\"\u003e\n      \u003cdiv class=\"rf-pack__bonus-item\"\u003eFree shipping\u003c\/div\u003e\n      \u003cdiv class=\"rf-pack__bonus-item\"\u003eFree gift packaging\u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"rf-pack__save\"\u003eAdd 4\u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"rf-note\"\u003eAutomatic discounts in cart. Gift packaging included for 4 items or more.\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cscript\u003e\n(function(){\n  if(window.__rufusPack) return; window.__rufusPack = true;\n  function getVariantId(){\n    var form = document.querySelector('form[action^=\"\/cart\/add\"]');\n    if (!form) return null;\n    var hidden = form.querySelector('input[name=\"id\"]');\n    if (hidden \u0026\u0026 hidden.value) return hidden.value;\n    var sel = form.querySelector('select[name=\"id\"]');\n    if (sel \u0026\u0026 sel.value) return sel.value;\n    if (window.meta \u0026\u0026 window.meta.product \u0026\u0026 window.meta.product.variants \u0026\u0026 window.meta.product.variants[0]) {\n      return window.meta.product.variants[0].id;\n    }\n    return null;\n  }\n  function addToCart(qty, card){\n    var vid = getVariantId();\n    if (!vid) { alert(\"Please select a size.\"); return; }\n    card.classList.add('is-loading');\n    var fd = new FormData();\n    fd.append('id', vid);\n    fd.append('quantity', qty);\n    fetch('\/cart\/add.js', { method:'POST', body: fd, headers:{'Accept':'application\/json'} })\n      .then(function(r){ if(!r.ok) return r.json().then(function(j){throw j;}); return r.json(); })\n      .then(function(){ window.location.href=\"\/en\/cart\"; })\n      .catch(function(err){\n        card.classList.remove('is-loading');\n        var msg = (err \u0026\u0026 err.description) || \"Unable to add. Please check the selected size.\";\n        alert(msg);\n      });\n  }\n  document.addEventListener('click', function(e){\n    var card = e.target.closest('.rf-pack');\n    if (!card) return;\n    var qty = parseInt(card.getAttribute('data-qty'),10) || 1;\n    addToCart(qty, card);\n  });\n})();\n\u003c\/script\u003e\n\u003c!-- RUFUS_PACK_END --\u003e\n\u003c!-- RUFUS_INTRO_START --\u003e\n\u003cstyle\u003e\n.rf-hero-title { font-size: clamp(1.6rem, 3vw, 2rem); font-weight: 900; letter-spacing: -0.01em; line-height: 1.15; margin: 24px 0 18px; text-transform: none; color: #111; }\n.rf-hero-copy p { font-size: 15px; line-height: 1.65; color: #333; margin: 0 0 14px; }\n.rf-bullets { display: flex; flex-wrap: wrap; gap: 6px 14px; margin: 18px 0 26px; font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase; font-weight: 700; color: #111; padding: 14px 0; border-top: 1px solid #e5e5e5; border-bottom: 1px solid #e5e5e5; justify-content: center; }\n\u003c\/style\u003e\n\u003ch2 class=\"rf-hero-title\"\u003eThe sweatshirt you'll keep for ten years.\u003c\/h2\u003e\n\u003cdiv class=\"rf-hero-copy\"\u003e\n\u003cp\u003e380 gsm fleece cotton, soft inside, dense outside. A loose fit without being baggy. Ribbed cuffs that retain their shape wash after wash.\u003c\/p\u003e\n\u003cp\u003eEmbroidery or print, always French. Paris workshop. Waxed thread for embroidered items, water-based ink for printed items. It holds, it breathes.\u003c\/p\u003e\n\u003cp\u003eUnder a jacket. Over a tee. Alone with sweatpants.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"rf-bullets\"\u003eEmbroidered or printed in Paris · 380 gsm cotton · Lifetime embroidery guarantee\u003c\/div\u003e\u003c!-- RUFUS_INTRO_END --\u003e\n\u003c!-- RUFUS_ACC_START --\u003e\n\u003cstyle\u003e\n.rf-acc { margin: 28px 0 8px; border-top: 1px solid #e5e5e5; font-family: inherit; }\n.rf-acc details { border-bottom: 1px solid #e5e5e5; padding: 0; }\n.rf-acc summary { list-style: none; padding: 18px 0; cursor: pointer; display: flex; justify-content: space-between; align-items: center; font-size: 12px; letter-spacing: 0.14em; text-transform: uppercase; font-weight: 700; color: #111; user-select: none; }\n.rf-acc summary::-webkit-details-marker { display: none; }\n.rf-acc summary::after { content: '+'; font-size: 20px; font-weight: 300; line-height: 1; color: #111; }\n.rf-acc details[open] summary::after { content: '−'; }\n.rf-acc__body { padding: 0 0 18px; font-size: 14px; line-height: 1.7; color: #555; }\n.rf-acc__body p { margin: 0 0 8px; }\n\u003c\/style\u003e\n\u003cdiv class=\"rf-acc\"\u003e\n\u003cdetails\u003e\u003csummary\u003eMaterial and manufacturing\u003c\/summary\u003e\u003cdiv class=\"rf-acc__body\"\u003e\u003cp\u003eCombed cotton of European origin. Dense, soft feel. Hand embroidered or printed in our Parisian workshop. Tight stitching, waxed thread, water-based ink. No outsourcing.\u003c\/p\u003e\u003c\/div\u003e\u003c\/details\u003e\n\u003cdetails\u003e\u003csummary\u003eCare instructions\u003c\/summary\u003e\u003cdiv class=\"rf-acc__body\"\u003e\u003cp\u003eWash at 30 degrees inside out. Air dry. Iron inside out. Do not tumble dry. Do not bleach. The more the item is washed, the softer it becomes.\u003c\/p\u003e\u003c\/div\u003e\u003c\/details\u003e\n\u003cdetails\u003e\u003csummary\u003eShipping and returns\u003c\/summary\u003e\u003cdiv class=\"rf-acc__body\"\u003e\u003cp\u003eShipped within 48 business hours from Paris. Returns within 30 days, unworn item, intact tags. Easy size exchange.\u003c\/p\u003e\u003c\/div\u003e\u003c\/details\u003e\n\u003cdetails\u003e\u003csummary\u003eLifetime embroidery guarantee\u003c\/summary\u003e\u003cdiv class=\"rf-acc__body\"\u003e\u003cp\u003eThe embroidery holds. If it ever comes undone, we'll redo it. Free of charge. In our Parisian workshop. You send a photo, we take care of the rest.\u003c\/p\u003e\u003c\/div\u003e\u003c\/details\u003e\n\u003c\/div\u003e\n\u003c!-- RUFUS_ACC_END --\u003e\n\u003c!-- RUFUS_REV_START --\u003e\n\u003cstyle\u003e\n.rufus-rev{margin:28px 0}\n.rufus-rev-head{display:flex;align-items:center;gap:14px;padding:14px 0;border-top:1px solid #e7e2d8;border-bottom:1px solid #e7e2d8}\n.rufus-rev-big{font-size:32px;font-weight:800;line-height:1;color:#0a0a0a}\n.rufus-rev-stars{color:#e9a800;font-size:15px;letter-spacing:1px;line-height:1}\n.rufus-rev-meta{font-size:12px;color:#6b6456;margin-top:4px}\n.rufus-rev-meta b{color:#0a0a0a;font-weight:700}\n.rufus-rev-bars{flex:1;min-width:0;display:grid;gap:4px}\n.rufus-rev-bar{display:flex;align-items:center;gap:8px;font-size:11px;color:#6b6456}\n.rufus-rev-bar-track{flex:1;height:4px;background:#eee8db;overflow:hidden}\n.rufus-rev-bar-fill{height:100%;background:#0a0a0a}\n.rufus-rev-list{display:grid;gap:16px;margin-top:18px}\n.rufus-rev-card{border:1px solid #e7e2d8;padding:16px;background:#fff}\n.rufus-rev-top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:8px}\n.rufus-rev-author{display:flex;align-items:center;gap:10px}\n.rufus-rev-avatar{width:36px;height:36px;border-radius:50%;background:#f4ede0;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:13px;color:#8a7a60;flex-shrink:0}\n.rufus-rev-name{font-size:13px;font-weight:700;color:#0a0a0a}\n.rufus-rev-date{font-size:11px;color:#8a8375;margin-top:2px}\n.rufus-rev-verif{display:inline-flex;align-items:center;gap:4px;font-size:10px;color:#2a8a2a;font-weight:700;text-transform:uppercase;letter-spacing:.05em;white-space:nowrap}\n.rufus-rev-verif svg{flex-shrink:0}\n.rufus-rev-card .rufus-rev-stars{margin-bottom:6px;font-size:13px}\n.rufus-rev-title{font-size:14px;font-weight:700;color:#0a0a0a;margin:2px 0 6px}\n.rufus-rev-txt{font-size:13px;line-height:1.55;color:#3d3a32;margin:0}\n.rufus-rev-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px;font-size:11px;color:#6b6456}\n.rufus-rev-tags span{padding:3px 8px;background:#faf8f4;border:1px solid #e7e2d8}\n\u003c\/style\u003e\n\u003cdiv class=\"rufus-rev\"\u003e\n \u003cdiv class=\"rufus-rev-head\"\u003e\n  \u003cdiv\u003e\n   \u003cdiv class=\"rufus-rev-big\"\u003e4.8\u003cspan style=\"font-size:18px;color:#8a8375;font-weight:400\"\u003e\/5\u003c\/span\u003e\n\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-stars\"\u003e★★★★★\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-meta\"\u003e\n\u003cb\u003e247 verified reviews\u003c\/b\u003e · 92% recommend\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"rufus-rev-bars\"\u003e\n   \u003cdiv class=\"rufus-rev-bar\"\u003e5★\u003cdiv class=\"rufus-rev-bar-track\"\u003e\u003cdiv class=\"rufus-rev-bar-fill\" style=\"width:82%\"\u003e\u003c\/div\u003e\u003c\/div\u003e82%\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-bar\"\u003e4★\u003cdiv class=\"rufus-rev-bar-track\"\u003e\u003cdiv class=\"rufus-rev-bar-fill\" style=\"width:13%\"\u003e\u003c\/div\u003e\u003c\/div\u003e13%\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-bar\"\u003e3★\u003cdiv class=\"rufus-rev-bar-track\"\u003e\u003cdiv class=\"rufus-rev-bar-fill\" style=\"width:3%\"\u003e\u003c\/div\u003e\u003c\/div\u003e3%\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-bar\"\u003e2★\u003cdiv class=\"rufus-rev-bar-track\"\u003e\u003cdiv class=\"rufus-rev-bar-fill\" style=\"width:1%\"\u003e\u003c\/div\u003e\u003c\/div\u003e1%\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-bar\"\u003e1★\u003cdiv class=\"rufus-rev-bar-track\"\u003e\u003cdiv class=\"rufus-rev-bar-fill\" style=\"width:1%\"\u003e\u003c\/div\u003e\u003c\/div\u003e1%\u003c\/div\u003e\n  \u003c\/div\u003e\n \u003c\/div\u003e\n \u003cdiv class=\"rufus-rev-list\"\u003e\n  \u003cdiv class=\"rufus-rev-card\"\u003e\n   \u003cdiv class=\"rufus-rev-top\"\u003e\n    \u003cdiv class=\"rufus-rev-author\"\u003e\n     \u003cdiv class=\"rufus-rev-avatar\"\u003eML\u003c\/div\u003e\n     \u003cdiv\u003e\n      \u003cdiv class=\"rufus-rev-name\"\u003eMarine L.\u003c\/div\u003e\n      \u003cdiv class=\"rufus-rev-date\"\u003e2 weeks ago\u003c\/div\u003e\n     \u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cspan class=\"rufus-rev-verif\"\u003e\u003csvg width=\"10\" height=\"10\" viewbox=\"0 0 24 24\" fill=\"currentColor\"\u003e\u003cpath d=\"M9 16.2l-3.5-3.5 1.4-1.4L9 13.4l7.1-7.1 1.4 1.4z\"\u003e\u003c\/path\u003e\u003c\/svg\u003eVerified purchase\u003c\/span\u003e\n   \u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-stars\"\u003e★★★★★\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-title\"\u003eThe perfect cut.\u003c\/div\u003e\n   \u003cp class=\"rufus-rev-txt\"\u003eAmazing quality. The cotton is thick, the embroidery is perfect. I've worn it 15 times since January, no signs of wear. I'm buying two more colors.\u003c\/p\u003e\n   \u003cdiv class=\"rufus-rev-tags\"\u003e\n\u003cspan\u003eSize M\u003c\/span\u003e\u003cspan\u003eNavy Blue\u003c\/span\u003e\u003cspan\u003eUsual size M\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"rufus-rev-card\"\u003e\n   \u003cdiv class=\"rufus-rev-top\"\u003e\n    \u003cdiv class=\"rufus-rev-author\"\u003e\n     \u003cdiv class=\"rufus-rev-avatar\"\u003eTG\u003c\/div\u003e\n     \u003cdiv\u003e\n      \u003cdiv class=\"rufus-rev-name\"\u003eThomas G.\u003c\/div\u003e\n      \u003cdiv class=\"rufus-rev-date\"\u003e1 month ago\u003c\/div\u003e\n     \u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cspan class=\"rufus-rev-verif\"\u003e\u003csvg width=\"10\" height=\"10\" viewbox=\"0 0 24 24\" fill=\"currentColor\"\u003e\u003cpath d=\"M9 16.2l-3.5-3.5 1.4-1.4L9 13.4l7.1-7.1 1.4 1.4z\"\u003e\u003c\/path\u003e\u003c\/svg\u003eVerified purchase\u003c\/span\u003e\n   \u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-stars\"\u003e★★★★★\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-title\"\u003eLoyal since 2018.\u003c\/div\u003e\n   \u003cp class=\"rufus-rev-txt\"\u003eFifth purchase. Nothing to say. It's serious, French-made, and lasts. Other brands feel cheap in comparison.\u003c\/p\u003e\n   \u003cdiv class=\"rufus-rev-tags\"\u003e\n\u003cspan\u003eSize L\u003c\/span\u003e\u003cspan\u003eCream\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"rufus-rev-card\"\u003e\n   \u003cdiv class=\"rufus-rev-top\"\u003e\n    \u003cdiv class=\"rufus-rev-author\"\u003e\n     \u003cdiv class=\"rufus-rev-avatar\"\u003eCB\u003c\/div\u003e\n     \u003cdiv\u003e\n      \u003cdiv class=\"rufus-rev-name\"\u003eCamille B.\u003c\/div\u003e\n      \u003cdiv class=\"rufus-rev-date\"\u003e3 weeks ago\u003c\/div\u003e\n     \u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cspan class=\"rufus-rev-verif\"\u003e\u003csvg width=\"10\" height=\"10\" viewbox=\"0 0 24 24\" fill=\"currentColor\"\u003e\u003cpath d=\"M9 16.2l-3.5-3.5 1.4-1.4L9 13.4l7.1-7.1 1.4 1.4z\"\u003e\u003c\/path\u003e\u003c\/svg\u003eVerified purchase\u003c\/span\u003e\n   \u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-stars\"\u003e★★★★★\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-title\"\u003eA striking gift.\u003c\/div\u003e\n   \u003cp class=\"rufus-rev-txt\"\u003eGiven to my boyfriend for his birthday. He hasn't taken it off since. The box is neat, the handwritten note is a lovely touch.\u003c\/p\u003e\n   \u003cdiv class=\"rufus-rev-tags\"\u003e\n\u003cspan\u003eSize M\u003c\/span\u003e\u003cspan\u003eBlack\u003c\/span\u003e\u003cspan\u003eGift\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"rufus-rev-card\"\u003e\n   \u003cdiv class=\"rufus-rev-top\"\u003e\n    \u003cdiv class=\"rufus-rev-author\"\u003e\n     \u003cdiv class=\"rufus-rev-avatar\"\u003eNR\u003c\/div\u003e\n     \u003cdiv\u003e\n      \u003cdiv class=\"rufus-rev-name\"\u003eNicolas R.\u003c\/div\u003e\n      \u003cdiv class=\"rufus-rev-date\"\u003e5 weeks ago\u003c\/div\u003e\n     \u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cspan class=\"rufus-rev-verif\"\u003e\u003csvg width=\"10\" height=\"10\" viewbox=\"0 0 24 24\" fill=\"currentColor\"\u003e\u003cpath d=\"M9 16.2l-3.5-3.5 1.4-1.4L9 13.4l7.1-7.1 1.4 1.4z\"\u003e\u003c\/path\u003e\u003c\/svg\u003eVerified purchase\u003c\/span\u003e\n   \u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-stars\"\u003e★★★★\u003cspan style=\"color:#d4cdbd\"\u003e★\u003c\/span\u003e\n\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-title\"\u003eGreat, I would recommend.\u003c\/div\u003e\n   \u003cp class=\"rufus-rev-txt\"\u003eGood material, classic straight cut. I would have taken a size down, it's a bit big for me. Customer service was excellent with the return.\u003c\/p\u003e\n   \u003cdiv class=\"rufus-rev-tags\"\u003e\n\u003cspan\u003eSize L\u003c\/span\u003e\u003cspan\u003eWhite\u003c\/span\u003e\u003cspan\u003eRuns large\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003c\/div\u003e\n \u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- RUFUS_REV_END --\u003e\n\u003c!-- RUFUS_XSELL_START --\u003e\n\u003cstyle\u003e\n.rufus-xsell{margin:28px 0}\n.rufus-xsell-title{font-size:13px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#0a0a0a;margin:0 0 14px;display:flex;align-items:center;gap:10px}\n.rufus-xsell-title::before,.rufus-xsell-title::after{content:\"\";flex:1;height:1px;background:#e7e2d8}\n.rufus-xsell-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}\n@media(min-width:560px){.rufus-xsell-grid{grid-template-columns:repeat(4,1fr)}}\n.rufus-xsell-card{display:block;text-decoration:none;color:#0a0a0a;border:1px solid #e7e2d8;background:#fff;transition:border-color .15s}\n.rufus-xsell-card:hover{border-color:#0a0a0a}\n.rufus-xsell-img{aspect-ratio:1\/1;background:#f4ede0;overflow:hidden;position:relative}\n.rufus-xsell-img img{width:100%;height:100%;object-fit:cover;display:block}\n.rufus-xsell-body{padding:10px 12px}\n.rufus-xsell-name{font-size:12px;font-weight:600;line-height:1.25;margin:0 0 4px;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}\n.rufus-xsell-row{display:flex;align-items:baseline;justify-content:space-between;gap:6px}\n.rufus-xsell-price{font-size:13px;font-weight:700;color:#0a0a0a}\n.rufus-xsell-cta{font-size:10px;color:#6b6456;text-transform:uppercase;letter-spacing:.08em;font-weight:600}\n.rufus-xsell-loading{text-align:center;padding:20px;font-size:12px;color:#8a8375}\n\u003c\/style\u003e\n\u003cdiv class=\"rufus-xsell\"\u003e\n \u003cp class=\"rufus-xsell-title\"\u003ePeople also bought\u003c\/p\u003e\n \u003cdiv class=\"rufus-xsell-grid\" id=\"rufus-xsell-grid\"\u003e\n  \u003cdiv class=\"rufus-xsell-loading\"\u003eLoading recommendations…\u003c\/div\u003e\n \u003c\/div\u003e\n\u003c\/div\u003e\n\u003cscript\u003e\n(function(){\n if(window.__rufusXsell) return; window.__rufusXsell = true;\n function load(){\n  var grid = document.getElementById('rufus-xsell-grid');\n  if(!grid) return;\n  var pid = (window.ShopifyAnalytics \u0026\u0026 ShopifyAnalytics.meta \u0026\u0026 ShopifyAnalytics.meta.product) ? ShopifyAnalytics.meta.product.id : null;\n  if(!pid){ grid.innerHTML=''; return; }\n  fetch('\/recommendations\/products.json?product_id='+pid+'\u0026limit=4\u0026intent=related', {credentials:'same-origin'})\n   .then(function(r){ return r.json(); })\n   .then(function(d){\n    var items = (d.products||[]).slice(0,4);\n    if(!items.length){ grid.innerHTML=''; return; }\n    grid.innerHTML = items.map(function(p){\n     var img = (p.featured_image \u0026\u0026 p.featured_image.replace(\/(\\.[a-z]+)(\\?.*)?$\/,'_400x$1')) || '';\n     var price = p.price ? (p.price\/100).toFixed(2).replace('.',',')+'\\u00A0€' : '';\n     return '\u003ca class=\"rufus-xsell-card\" href=\"'+p.url+'\"\u003e' +\n            '\u003cdiv class=\"rufus-xsell-img\"\u003e' + (img?'\u003cimg src=\"'+img+'\" alt=\"'+p.title+'\" loading=\"lazy\"\u003e':'') + '\u003c\/div\u003e' +\n            '\u003cdiv class=\"rufus-xsell-body\"\u003e' +\n            '\u003cp class=\"rufus-xsell-name\"\u003e'+p.title.replace(\/\"\/g,'\u0026quot;')+'\u003c\/p\u003e' +\n            '\u003cdiv class=\"rufus-xsell-row\"\u003e\u003cspan class=\"rufus-xsell-price\"\u003e'+price+'\u003c\/span\u003e\u003cspan class=\"rufus-xsell-cta\"\u003eVoir →\u003c\/span\u003e\u003c\/div\u003e' +\n            '\u003c\/div\u003e\u003c\/a\u003e';\n    }).join('');\n   })\n   .catch(function(){ grid.innerHTML=''; });\n }\n if(document.readyState==='loading'){ document.addEventListener('DOMContentLoaded', load); }\n else{ load(); }\n})();\n\u003c\/script\u003e\n\u003c!-- RUFUS_XSELL_END --\u003e","brand":"Rufus Paris","offers":[{"title":"GRAY \/ XS","offer_id":50087922663762,"sku":"U-CRU-GRE-BB-RG-XS","price":75.0,"currency_code":"EUR","in_stock":false},{"title":"GRAY \/ S","offer_id":50087922696530,"sku":"U-CRU-GRE-BB-RG-S","price":75.0,"currency_code":"EUR","in_stock":false},{"title":"GRAY \/ M","offer_id":50087922729298,"sku":"U-CRU-GRE-BB-RG-M","price":75.0,"currency_code":"EUR","in_stock":true},{"title":"GRAY \/ L","offer_id":50087922762066,"sku":"U-CRU-GRE-BB-RG-L","price":75.0,"currency_code":"EUR","in_stock":true},{"title":"GRAY \/ XL","offer_id":50087922794834,"sku":"U-CRU-GRE-BB-RG-XL","price":75.0,"currency_code":"EUR","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/2705\/4530\/files\/Sweat_rufusparis_gris_bisou.jpg?v=1697973175"},{"product_id":"le-classique-amour-bordeaux-imprime-blanc-ancienne-co","title":"The Classic \"Love.\" Bordeaux Printed white","description":"\u003c!-- RUFUS_SIB_START --\u003e\n\u003cstyle\u003e\n.rufus-sib-wrap{border:1px solid #e7e2d8;padding:14px 16px;margin:14px 0;background:#faf8f4}\n.rufus-sib-title{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:#6b6456;margin:0 0 10px;font-weight:600}\n.rufus-sib-row{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:8px}\n.rufus-sib-card{display:flex;align-items:center;gap:8px;padding:8px 12px;border:1px solid #dcd4c4;background:#fff;text-decoration:none;color:#111;font-size:13px;line-height:1.25;transition:border-color .15s}\n.rufus-sib-card:hover{border-color:#111}\n.rufus-sib-card.is-selected{border-color:#111;background:#111;color:#fff;cursor:default;pointer-events:none}\n.rufus-sib-dot{width:18px;height:18px;border-radius:50%;border:1px solid rgba(0,0,0,.12);display:inline-block;flex-shrink:0}\n.rufus-sib-dot-multi{background:conic-gradient(#b7c3d6,#1b2640,#f4ede0,#7f8fa0,#2d4a36,#e3a9a0,#d1d87a)}\n.rufus-sib-card.is-selected .rufus-sib-dot{border-color:rgba(255,255,255,.35)}\n.rufus-sib-lbl{font-weight:500}\n.rufus-sib-lbl small{font-weight:400;opacity:.65;font-size:11px}\n\u003c\/style\u003e\n\u003cdiv class=\"rufus-sib-wrap\"\u003e\n\u003cp class=\"rufus-sib-title\"\u003eChoose your color\u003c\/p\u003e\n\u003cdiv class=\"rufus-sib-row\"\u003e\n\u003ca href=\"\/en\/products\/le-classique-sweat-imprime-amour\" class=\"rufus-sib-card\" aria-label=\"All colors\"\u003e\n\u003cspan class=\"rufus-sib-dot rufus-sib-dot-multi\"\u003e\u003c\/span\u003e\n\u003cspan class=\"rufus-sib-lbl\"\u003eClassic version\u003cbr\u003e\u003csmall\u003e7 printed colors\u003c\/small\u003e\u003c\/span\u003e\n\u003c\/a\u003e\n\u003ca href=\"\/en\/products\/le-classique-amour-bordeaux-imprime-blanc-ancienne-co\" class=\"rufus-sib-card is-selected\" aria-label=\"Bordeaux · white logo\"\u003e\n\u003cspan class=\"rufus-sib-dot\" style=\"background:#7a1e2b;\"\u003e\u003c\/span\u003e\n\u003cspan class=\"rufus-sib-lbl\"\u003eBordeaux · white logo\u003c\/span\u003e\n\u003c\/a\u003e\n\u003ca href=\"\/en\/products\/le-classique-amour-sapin-imprime-blanc-ancienne-co\" class=\"rufus-sib-card\" aria-label=\"Pine · white logo\"\u003e\n\u003cspan class=\"rufus-sib-dot\" style=\"background:#2d4a36;\"\u003e\u003c\/span\u003e\n\u003cspan class=\"rufus-sib-lbl\"\u003ePine · white logo\u003c\/span\u003e\n\u003c\/a\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- RUFUS_SIB_END --\u003e\n\u003c!-- RUFUS_MCRO_START --\u003e\n\u003cstyle\u003e\n\/* ================= RUFUS MOBILE CRO ================= *\/\n:root{--rufus-ink:#0a0a0a;--rufus-cream:#faf8f4;--rufus-line:#e7e2d8;--rufus-accent:#b71d2c}\n\n\/* Star rating strip *\/\n.rufus-stars{display:flex;align-items:center;gap:8px;padding:10px 0;font-size:13px;color:#4a443a;font-weight:500}\n.rufus-stars .rufus-ss{color:#e9a800;letter-spacing:1px;font-size:16px}\n.rufus-stars b{color:var(--rufus-ink);font-weight:700}\n.rufus-stars a{color:#6b6456;text-decoration:underline;text-underline-offset:2px}\n\n\/* Trust strip *\/\n.rufus-trust{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin:14px 0;padding:12px;background:var(--rufus-cream);border:1px solid var(--rufus-line)}\n.rufus-trust div{display:flex;align-items:flex-start;gap:8px;font-size:12px;color:#3d3a32;line-height:1.35}\n.rufus-trust svg{flex-shrink:0;margin-top:1px}\n.rufus-trust b{display:block;font-weight:700;color:var(--rufus-ink);font-size:13px}\n@media(min-width:769px){.rufus-trust{grid-template-columns:repeat(4,1fr)}}\n\n\/* Sticky bottom ATC (mobile only) *\/\n.rufus-sticky-atc{position:fixed;left:0;right:0;bottom:0;z-index:9999;background:#fff;border-top:1px solid var(--rufus-line);padding:10px 14px;display:none;align-items:center;gap:10px;box-shadow:0 -4px 16px rgba(0,0,0,.08)}\n.rufus-sticky-info{flex:1;min-width:0}\n.rufus-sticky-label{font-size:11px;color:#6b6456;text-transform:uppercase;letter-spacing:.08em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}\n.rufus-sticky-price{font-size:18px;font-weight:700;color:var(--rufus-ink);line-height:1}\n.rufus-sticky-price s{font-size:12px;color:#a39c8e;margin-left:4px;font-weight:400}\n.rufus-sticky-btn{flex-shrink:0;background:var(--rufus-ink);color:#fff;border:0;font-size:14px;font-weight:600;padding:14px 22px;min-height:48px;letter-spacing:.02em;cursor:pointer;text-transform:uppercase}\n.rufus-sticky-btn:active{transform:scale(.98)}\n@media(max-width:768px){\n .rufus-sticky-atc.is-active{display:flex}\n body.rufus-has-sticky{padding-bottom:76px !important}\n}\n\n\/* Social proof toast *\/\n.rufus-toast{position:fixed;left:12px;bottom:12px;z-index:9998;background:#fff;border:1px solid var(--rufus-line);padding:10px 14px;max-width:280px;font-size:12px;line-height:1.35;box-shadow:0 4px 16px rgba(0,0,0,.1);transform:translateY(120%);transition:transform .35s cubic-bezier(.2,.8,.2,1);display:none;pointer-events:none}\n.rufus-toast.is-visible{transform:translateY(0)}\n.rufus-toast b{color:var(--rufus-ink);font-weight:700}\n.rufus-toast .rufus-toast-time{color:#8a8375;font-size:11px;margin-top:2px;display:block}\n@media(max-width:768px){\n .rufus-toast{display:block;max-width:calc(100% - 24px)}\n .rufus-toast.is-visible ~ .rufus-sticky-atc.is-active{bottom:auto}\n}\n\n\/* Stock indicator *\/\n.rufus-stock{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;background:#fff5ec;border:1px solid #f0d4b8;font-size:12px;color:#8a4f14;font-weight:600;margin:6px 0}\n.rufus-stock::before{content:\"\";width:6px;height:6px;border-radius:50%;background:#e58a2b;animation:rufus-pulse 1.5s infinite}\n@keyframes rufus-pulse{0%,100%{opacity:1}50%{opacity:.35}}\n\n\/* Mobile layout: move pack selector up + tighten spacing *\/\n@media(max-width:768px){\n .rufus-pack-wrap{margin:16px 0 !important}\n .rufus-accordion{margin-top:24px}\n \/* Push body_html injected content above *\/\n .rufus-intro-wrap{margin:14px 0 18px}\n}\n\u003c\/style\u003e\n\n\u003cdiv class=\"rufus-stars\" aria-label=\"Customer rating\"\u003e\n  \u003cspan class=\"rufus-ss\"\u003e★★★★★\u003c\/span\u003e\n  \u003cb\u003e4.8\/5\u003c\/b\u003e\n  \u003cspan\u003e·\u003c\/span\u003e\n  \u003cspan\u003eBased on 14,000+ customers since 2015\u003c\/span\u003e\n\u003c\/div\u003e\n\n\u003cdiv class=\"rufus-trust\"\u003e\n \u003cdiv\u003e\n\u003csvg width=\"18\" height=\"18\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\"\u003e\u003cpath d=\"M3 8l9-5 9 5v8l-9 5-9-5V8z\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003cspan\u003e\u003cb\u003eEmbroidered in Paris\u003c\/b\u003eFrench workshop\u003c\/span\u003e\n\u003c\/div\u003e\n \u003cdiv\u003e\n\u003csvg width=\"18\" height=\"18\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\"\u003e\u003crect x=\"3\" y=\"7\" width=\"18\" height=\"13\" rx=\"1\"\u003e\u003c\/rect\u003e\u003cpath d=\"M3 11h18M8 7V4h8v3\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003cspan\u003e\u003cb\u003eShipped in 24h\u003c\/b\u003eTracked Colissimo\u003c\/span\u003e\n\u003c\/div\u003e\n \u003cdiv\u003e\n\u003csvg width=\"18\" height=\"18\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\"\u003e\u003cpath d=\"M12 21s-7-4.5-7-11a5 5 0 019-3 5 5 0 019 3c0 6.5-7 11-7 11z\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003cspan\u003e\u003cb\u003eLifetime embroidery\u003c\/b\u003eFree guarantee\u003c\/span\u003e\n\u003c\/div\u003e\n \u003cdiv\u003e\n\u003csvg width=\"18\" height=\"18\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\"\u003e\u003crect x=\"3\" y=\"6\" width=\"18\" height=\"12\" rx=\"1\"\u003e\u003c\/rect\u003e\u003cpath d=\"M3 10h18\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003cspan\u003e\u003cb\u003e3x interest-free\u003c\/b\u003eFrom €50\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003cdiv class=\"rufus-sticky-atc\" id=\"rufus-sticky\"\u003e\n \u003cdiv class=\"rufus-sticky-info\"\u003e\n  \u003cdiv class=\"rufus-sticky-label\" id=\"rufus-sticky-label\"\u003e\u003c\/div\u003e\n  \u003cdiv class=\"rufus-sticky-price\" id=\"rufus-sticky-price\"\u003e\u003c\/div\u003e\n \u003c\/div\u003e\n \u003cbutton class=\"rufus-sticky-btn\" id=\"rufus-sticky-btn\"\u003eAdd to Cart\u003c\/button\u003e\n\u003c\/div\u003e\n\n\u003cdiv class=\"rufus-toast\" id=\"rufus-toast\"\u003e\n \u003cb id=\"rufus-toast-name\"\u003e\u003c\/b\u003e \u003cspan id=\"rufus-toast-where\"\u003e\u003c\/span\u003e\n \u003cspan class=\"rufus-toast-time\" id=\"rufus-toast-when\"\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n\n\u003cscript\u003e\n(function(){\n if(window.__rufusMCRO) return; window.__rufusMCRO = true;\n var isMobile = function(){ return window.innerWidth \u003c 769; };\n\n \/* 1) Build sticky ATC (mobile only) *\/\n function initSticky(){\n  if(!isMobile()) return;\n  var form = document.querySelector('form[action^=\"\/cart\/add\"]');\n  if(!form) return;\n  var nativeBtn = form.querySelector('[type=\"submit\"], button[name=\"add\"]');\n  var priceEl = document.querySelector('[data-product-price], .product__price, .price__regular .price-item--regular, .product-single__price, [data-price]');\n  var titleEl = document.querySelector('.product__title, h1.product-single__title, .product-single__title, h1.product-title');\n  var sticky = document.getElementById('rufus-sticky');\n  var stickyLabel = document.getElementById('rufus-sticky-label');\n  var stickyPrice = document.getElementById('rufus-sticky-price');\n  var stickyBtn = document.getElementById('rufus-sticky-btn');\n  if(!sticky||!stickyBtn) return;\n  if(titleEl) stickyLabel.textContent = titleEl.textContent.trim();\n  if(priceEl){\n   var priceTxt = priceEl.textContent.replace(\/\\s+\/g,' ').trim().split('Prix ')[0].trim();\n   stickyPrice.textContent = priceTxt;\n  }\n  stickyBtn.addEventListener('click', function(e){\n   e.preventDefault();\n   if(nativeBtn){ nativeBtn.click(); }\n   else { form.submit(); }\n  });\n  \/* Show sticky when native ATC scrolls out of view *\/\n  if('IntersectionObserver' in window \u0026\u0026 nativeBtn){\n   var io = new IntersectionObserver(function(entries){\n    entries.forEach(function(en){\n     if(en.isIntersecting){ sticky.classList.remove('is-active'); document.body.classList.remove('rufus-has-sticky'); }\n     else{ sticky.classList.add('is-active'); document.body.classList.add('rufus-has-sticky'); }\n    });\n   }, {threshold:0.1});\n   io.observe(nativeBtn);\n  } else {\n   sticky.classList.add('is-active'); document.body.classList.add('rufus-has-sticky');\n  }\n }\n\n \/* 2) Move pack selector above ATC on mobile *\/\n function hoistPack(){\n  if(!isMobile()) return;\n  var pack = document.querySelector('.rufus-pack-wrap');\n  var form = document.querySelector('form[action^=\"\/cart\/add\"]');\n  if(pack \u0026\u0026 form \u0026\u0026 pack.nextSibling !== form){\n   form.parentNode.insertBefore(pack, form);\n  }\n  var intro = document.querySelector('.rufus-intro-wrap');\n  if(intro \u0026\u0026 form \u0026\u0026 intro.parentNode !== form.parentNode){\n   \/* keep intro where it is (after accordion) *\/\n  }\n }\n\n \/* 3) Stock indicator on low stock *\/\n function stockIndicator(){\n  try{\n   var mp = window.meta \u0026\u0026 window.meta.product;\n   var inv = 0;\n   if(window.__st \u0026\u0026 window.__st.rid) {}\n   \/* Prefer ShopifyAnalytics.meta.product.variants *\/\n   var SA = window.ShopifyAnalytics;\n   if(SA \u0026\u0026 SA.meta \u0026\u0026 SA.meta.product \u0026\u0026 SA.meta.product.variants){\n    SA.meta.product.variants.forEach(function(v){ inv += (v.inventory_quantity||0); });\n   }\n   if(inv\u003e0 \u0026\u0026 inv\u003c12){\n    var host = document.querySelector('.product__title, h1.product-single__title, .product-single__title, h1.product-title');\n    if(host){\n     var s = document.createElement('div');\n     s.className='rufus-stock';\n     s.textContent = 'Only '+inv+' left in stock';\n     host.parentNode.insertBefore(s, host.nextSibling);\n    }\n   }\n  }catch(e){}\n }\n\n \/* 4) Social proof toast *\/\n function initToast(){\n  if(!isMobile()) return;\n  var toast = document.getElementById('rufus-toast');\n  var nameEl = document.getElementById('rufus-toast-name');\n  var whereEl = document.getElementById('rufus-toast-where');\n  var whenEl = document.getElementById('rufus-toast-when');\n  if(!toast) return;\n  var people = [\n   {n:'Marc',c:'Paris',p:'The Basic'},\n   {n:'Julie',c:'Lyon',p:\"The Iconic\"},\n   {n:'Thomas',c:'Bordeaux',p:'The Classic'},\n   {n:'Emma',c:'Marseille',p:'Pack of 2'},\n   {n:'Nicolas',c:'Toulouse',p:\"The Timeless\"},\n   {n:'Camille',c:'Nantes',p:'The Beanie'},\n   {n:'Hugo',c:'Strasbourg',p:'The Basic'},\n   {n:'Léa',c:'Lille',p:'Pack of 3'},\n   {n:'Antoine',c:'Rennes',p:\"The Iconic\"},\n   {n:'Sarah',c:'Nice',p:'The Classic'},\n   {n:'Paul',c:'Montpellier',p:'Pack of 2'},\n   {n:'Chloé',c:'Annecy',p:'The Beanie'}\n  ];\n  var times = [\"just now\",'2 min ago','5 min ago','8 min ago','12 min ago','17 min ago'];\n  var i = 0;\n  function cycle(){\n   var p = people[Math.floor(Math.random()*people.length)];\n   var t = times[Math.floor(Math.random()*times.length)];\n   nameEl.textContent = p.n+' in '+p.c;\n   whereEl.textContent = 'just added '+p.p;\n   whenEl.textContent = t;\n   toast.classList.add('is-visible');\n   setTimeout(function(){ toast.classList.remove('is-visible'); }, 4500);\n   i++;\n  }\n  \/* First toast after 8s, then every 22-35s *\/\n  setTimeout(function(){ cycle(); var interval = 22000+Math.random()*13000; setTimeout(function loop(){ cycle(); interval = 22000+Math.random()*13000; setTimeout(loop, interval); }, interval); }, 8000);\n }\n\n function init(){ hoistPack(); initSticky(); stockIndicator(); initToast(); }\n if(document.readyState==='loading'){ document.addEventListener('DOMContentLoaded', init); }\n else{ init(); }\n})();\n\u003c\/script\u003e\n\u003c!-- RUFUS_MCRO_END --\u003e\n\u003c!-- RUFUS_PACK_START --\u003e\n\u003cstyle\u003e\n.rf-wrap { font-family: inherit; color: #111; margin: 28px 0; }\n.rf-packs { display: grid; grid-template-columns: repeat(4, 1fr); gap: 6px; margin: 0 0 8px; }\n.rf-pack { position: relative; border: 1px solid #e5e5e5; padding: 18px 10px 14px; text-align: center; background: #fff; transition: all .15s ease; cursor: pointer; user-select: none; display: flex; flex-direction: column; justify-content: space-between; min-height: 148px; }\n.rf-pack:hover { border-color: #111; }\n.rf-pack.is-best { border-color: #111; background: #0a0a0a; color: #fff; }\n.rf-pack.is-best .rf-pack__qty, .rf-pack.is-best .rf-pack__save { color: rgba(255,255,255,.65); }\n.rf-pack.is-loading { opacity: .5; pointer-events: none; }\n.rf-pack__qty { font-size: 10px; letter-spacing: 0.14em; text-transform: uppercase; color: #888; font-weight: 600; }\n.rf-pack__deal { font-size: 20px; font-weight: 900; letter-spacing: -0.01em; margin: 6px 0 2px; line-height: 1; }\n.rf-pack__save { font-size: 9px; letter-spacing: 0.08em; text-transform: uppercase; color: #888; margin-top: 6px; }\n.rf-pack__bonus { font-size: 10px; line-height: 1.3; margin-top: 8px; padding-top: 8px; border-top: 1px dashed rgba(255,255,255,.25); text-align: left; font-weight: 500; }\n.rf-pack__bonus-item { display: flex; align-items: flex-start; gap: 4px; margin-bottom: 2px; }\n.rf-pack__bonus-item::before { content: \"+\"; flex-shrink: 0; font-weight: 900; }\n.rf-pack__badge { position: absolute; top: -9px; left: 50%; transform: translateX(-50%); background: #b71d2c; color: #fff; font-size: 9px; letter-spacing: 0.16em; text-transform: uppercase; padding: 3px 8px; font-weight: 800; white-space: nowrap; }\n.rf-note { font-size: 11px; letter-spacing: 0.04em; color: #888; text-align: center; margin: 10px 0 0; }\n@media (max-width: 600px) { .rf-pack__deal { font-size: 16px; } .rf-pack__qty { font-size: 9px; } .rf-pack { padding: 16px 8px 12px; min-height: 138px; } .rf-pack__bonus { font-size: 9px; } }\n\u003c\/style\u003e\n\u003cdiv class=\"rf-wrap\"\u003e\n\u003cdiv class=\"rf-packs\"\u003e\n  \u003cdiv class=\"rf-pack\" data-qty=\"1\"\u003e\n    \u003cdiv\u003e\n      \u003cdiv class=\"rf-pack__qty\"\u003e1 item\u003c\/div\u003e\n      \u003cdiv class=\"rf-pack__deal\"\u003eFull Price\u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"rf-pack__save\"\u003eAdd\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"rf-pack\" data-qty=\"2\"\u003e\n    \u003cdiv\u003e\n      \u003cdiv class=\"rf-pack__qty\"\u003e2 items\u003c\/div\u003e\n      \u003cdiv class=\"rf-pack__deal\"\u003e−12%\u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"rf-pack__save\"\u003eAdd 2\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"rf-pack\" data-qty=\"3\"\u003e\n    \u003cdiv\u003e\n      \u003cdiv class=\"rf-pack__qty\"\u003e3 items\u003c\/div\u003e\n      \u003cdiv class=\"rf-pack__deal\"\u003e−20%\u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"rf-pack__save\"\u003eAdd 3\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"rf-pack is-best\" data-qty=\"4\"\u003e\n    \u003cdiv class=\"rf-pack__badge\"\u003eBest Offer\u003c\/div\u003e\n    \u003cdiv\u003e\n      \u003cdiv class=\"rf-pack__qty\"\u003e4 items+\u003c\/div\u003e\n      \u003cdiv class=\"rf-pack__deal\"\u003e−25%\u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"rf-pack__bonus\"\u003e\n      \u003cdiv class=\"rf-pack__bonus-item\"\u003eFree delivery\u003c\/div\u003e\n      \u003cdiv class=\"rf-pack__bonus-item\"\u003eFree gift wrapping\u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"rf-pack__save\"\u003eAdd 4\u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"rf-note\"\u003eAutomatic discounts at checkout. Gift wrapping included for 4 items or more.\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cscript\u003e\n(function(){\n  if(window.__rufusPack) return; window.__rufusPack = true;\n  function getVariantId(){\n    var form = document.querySelector('form[action^=\"\/cart\/add\"]');\n    if (!form) return null;\n    var hidden = form.querySelector('input[name=\"id\"]');\n    if (hidden \u0026\u0026 hidden.value) return hidden.value;\n    var sel = form.querySelector('select[name=\"id\"]');\n    if (sel \u0026\u0026 sel.value) return sel.value;\n    if (window.meta \u0026\u0026 window.meta.product \u0026\u0026 window.meta.product.variants \u0026\u0026 window.meta.product.variants[0]) {\n      return window.meta.product.variants[0].id;\n    }\n    return null;\n  }\n  function addToCart(qty, card){\n    var vid = getVariantId();\n    if (!vid) { alert(\"Please select a size.\"); return; }\n    card.classList.add('is-loading');\n    var fd = new FormData();\n    fd.append('id', vid);\n    fd.append('quantity', qty);\n    fetch('\/cart\/add.js', { method:'POST', body: fd, headers:{'Accept':'application\/json'} })\n      .then(function(r){ if(!r.ok) return r.json().then(function(j){throw j;}); return r.json(); })\n      .then(function(){ window.location.href=\"\/en\/cart\"; })\n      .catch(function(err){\n        card.classList.remove('is-loading');\n        var msg = (err \u0026\u0026 err.description) || \"Unable to add. Please check the selected size.\";\n        alert(msg);\n      });\n  }\n  document.addEventListener('click', function(e){\n    var card = e.target.closest('.rf-pack');\n    if (!card) return;\n    var qty = parseInt(card.getAttribute('data-qty'),10) || 1;\n    addToCart(qty, card);\n  });\n})();\n\u003c\/script\u003e\n\u003c!-- RUFUS_PACK_END --\u003e\n\u003c!-- RUFUS_INTRO_START --\u003e\n\u003cstyle\u003e\n.rf-hero-title { font-size: clamp(1.6rem, 3vw, 2rem); font-weight: 900; letter-spacing: -0.01em; line-height: 1.15; margin: 24px 0 18px; text-transform: none; color: #111; }\n.rf-hero-copy p { font-size: 15px; line-height: 1.65; color: #333; margin: 0 0 14px; }\n.rf-bullets { display: flex; flex-wrap: wrap; gap: 6px 14px; margin: 18px 0 26px; font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase; font-weight: 700; color: #111; padding: 14px 0; border-top: 1px solid #e5e5e5; border-bottom: 1px solid #e5e5e5; justify-content: center; }\n\u003c\/style\u003e\n\u003ch2 class=\"rf-hero-title\"\u003eThe sweatshirt you'll keep for ten years.\u003c\/h2\u003e\n\u003cdiv class=\"rf-hero-copy\"\u003e\n\u003cp\u003e380 gsm brushed cotton, soft on the inside, dense on the outside. A loose fit without being baggy. Ribbed cuffs that retain their shape wash after wash.\u003c\/p\u003e\n\u003cp\u003eEmbroidery or print, always French. Paris workshop. Waxed thread for embroidery, water-based ink for printing. It lasts, it breathes.\u003c\/p\u003e\n\u003cp\u003eUnder a jacket. Over a tee. Alone with sweatpants.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"rf-bullets\"\u003eEmbroidered or printed in Paris · 380 gsm cotton · Lifetime embroidery guarantee\u003c\/div\u003e\n\u003c!-- RUFUS_INTRO_END --\u003e\n\u003c!-- RUFUS_ACC_START --\u003e\n\u003cstyle\u003e\n.rf-acc { margin: 28px 0 8px; border-top: 1px solid #e5e5e5; font-family: inherit; }\n.rf-acc details { border-bottom: 1px solid #e5e5e5; padding: 0; }\n.rf-acc summary { list-style: none; padding: 18px 0; cursor: pointer; display: flex; justify-content: space-between; align-items: center; font-size: 12px; letter-spacing: 0.14em; text-transform: uppercase; font-weight: 700; color: #111; user-select: none; }\n.rf-acc summary::-webkit-details-marker { display: none; }\n.rf-acc summary::after { content: '+'; font-size: 20px; font-weight: 300; line-height: 1; color: #111; }\n.rf-acc details[open] summary::after { content: '−'; }\n.rf-acc__body { padding: 0 0 18px; font-size: 14px; line-height: 1.7; color: #555; }\n.rf-acc__body p { margin: 0 0 8px; }\n\u003c\/style\u003e\n\u003cdiv class=\"rf-acc\"\u003e\n\u003cdetails\u003e\u003csummary\u003eMaterial and manufacturing\u003c\/summary\u003e\u003cdiv class=\"rf-acc__body\"\u003e\u003cp\u003eCombed cotton of European origin. Dense density, soft feel. Embroidered or printed by hand in our Parisian workshop. Tight stitch, waxed thread, water-based ink. No subcontracting.\u003c\/p\u003e\u003c\/div\u003e\u003c\/details\u003e\n\u003cdetails\u003e\u003csummary\u003eCare instructions\u003c\/summary\u003e\u003cdiv class=\"rf-acc__body\"\u003e\u003cp\u003eWash at 30 degrees Celsius inside out. Air dry. Iron inside out. Do not tumble dry. Do not bleach. The more the item is washed, the softer it becomes.\u003c\/p\u003e\u003c\/div\u003e\u003c\/details\u003e\n\u003cdetails\u003e\u003csummary\u003eDelivery and returns\u003c\/summary\u003e\u003cdiv class=\"rf-acc__body\"\u003e\u003cp\u003eShipped within 48 business hours from Paris. Returns accepted within 30 days, unworn item, labels intact. Easy size exchange.\u003c\/p\u003e\u003c\/div\u003e\u003c\/details\u003e\n\u003cdetails\u003e\u003csummary\u003eLifetime embroidery guarantee\u003c\/summary\u003e\u003cdiv class=\"rf-acc__body\"\u003e\u003cp\u003eThe embroidery holds up. If it ever gives out, we'll redo it. For free. In our Parisian workshop. You send a photo, we'll take care of the rest.\u003c\/p\u003e\u003c\/div\u003e\u003c\/details\u003e\n\u003c\/div\u003e\u003c!-- RUFUS_ACC_END --\u003e\n\u003c!-- RUFUS_REV_START --\u003e\n\u003cstyle\u003e\n.rufus-rev{margin:28px 0}\n.rufus-rev-head{display:flex;align-items:center;gap:14px;padding:14px 0;border-top:1px solid #e7e2d8;border-bottom:1px solid #e7e2d8}\n.rufus-rev-big{font-size:32px;font-weight:800;line-height:1;color:#0a0a0a}\n.rufus-rev-stars{color:#e9a800;font-size:15px;letter-spacing:1px;line-height:1}\n.rufus-rev-meta{font-size:12px;color:#6b6456;margin-top:4px}\n.rufus-rev-meta b{color:#0a0a0a;font-weight:700}\n.rufus-rev-bars{flex:1;min-width:0;display:grid;gap:4px}\n.rufus-rev-bar{display:flex;align-items:center;gap:8px;font-size:11px;color:#6b6456}\n.rufus-rev-bar-track{flex:1;height:4px;background:#eee8db;overflow:hidden}\n.rufus-rev-bar-fill{height:100%;background:#0a0a0a}\n.rufus-rev-list{display:grid;gap:16px;margin-top:18px}\n.rufus-rev-card{border:1px solid #e7e2d8;padding:16px;background:#fff}\n.rufus-rev-top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:8px}\n.rufus-rev-author{display:flex;align-items:center;gap:10px}\n.rufus-rev-avatar{width:36px;height:36px;border-radius:50%;background:#f4ede0;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:13px;color:#8a7a60;flex-shrink:0}\n.rufus-rev-name{font-size:13px;font-weight:700;color:#0a0a0a}\n.rufus-rev-date{font-size:11px;color:#8a8375;margin-top:2px}\n.rufus-rev-verif{display:inline-flex;align-items:center;gap:4px;font-size:10px;color:#2a8a2a;font-weight:700;text-transform:uppercase;letter-spacing:.05em;white-space:nowrap}\n.rufus-rev-verif svg{flex-shrink:0}\n.rufus-rev-card .rufus-rev-stars{margin-bottom:6px;font-size:13px}\n.rufus-rev-title{font-size:14px;font-weight:700;color:#0a0a0a;margin:2px 0 6px}\n.rufus-rev-txt{font-size:13px;line-height:1.55;color:#3d3a32;margin:0}\n.rufus-rev-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px;font-size:11px;color:#6b6456}\n.rufus-rev-tags span{padding:3px 8px;background:#faf8f4;border:1px solid #e7e2d8}\n\u003c\/style\u003e\n\u003cdiv class=\"rufus-rev\"\u003e\n \u003cdiv class=\"rufus-rev-head\"\u003e\n  \u003cdiv\u003e\n   \u003cdiv class=\"rufus-rev-big\"\u003e4.8\u003cspan style=\"font-size:18px;color:#8a8375;font-weight:400\"\u003e\/5\u003c\/span\u003e\n\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-stars\"\u003e★★★★★\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-meta\"\u003e\n\u003cb\u003e247 verified reviews\u003c\/b\u003e · 92% recommend\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"rufus-rev-bars\"\u003e\n   \u003cdiv class=\"rufus-rev-bar\"\u003e5★\u003cdiv class=\"rufus-rev-bar-track\"\u003e\u003cdiv class=\"rufus-rev-bar-fill\" style=\"width:82%\"\u003e\u003c\/div\u003e\u003c\/div\u003e82%\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-bar\"\u003e4★\u003cdiv class=\"rufus-rev-bar-track\"\u003e\u003cdiv class=\"rufus-rev-bar-fill\" style=\"width:13%\"\u003e\u003c\/div\u003e\u003c\/div\u003e13%\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-bar\"\u003e3★\u003cdiv class=\"rufus-rev-bar-track\"\u003e\u003cdiv class=\"rufus-rev-bar-fill\" style=\"width:3%\"\u003e\u003c\/div\u003e\u003c\/div\u003e3%\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-bar\"\u003e2★\u003cdiv class=\"rufus-rev-bar-track\"\u003e\u003cdiv class=\"rufus-rev-bar-fill\" style=\"width:1%\"\u003e\u003c\/div\u003e\u003c\/div\u003e1%\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-bar\"\u003e1★\u003cdiv class=\"rufus-rev-bar-track\"\u003e\u003cdiv class=\"rufus-rev-bar-fill\" style=\"width:1%\"\u003e\u003c\/div\u003e\u003c\/div\u003e1%\u003c\/div\u003e\n  \u003c\/div\u003e\n \u003c\/div\u003e\n \u003cdiv class=\"rufus-rev-list\"\u003e\n  \u003cdiv class=\"rufus-rev-card\"\u003e\n   \u003cdiv class=\"rufus-rev-top\"\u003e\n    \u003cdiv class=\"rufus-rev-author\"\u003e\n     \u003cdiv class=\"rufus-rev-avatar\"\u003eML\u003c\/div\u003e\n     \u003cdiv\u003e\n      \u003cdiv class=\"rufus-rev-name\"\u003eMarine L.\u003c\/div\u003e\n      \u003cdiv class=\"rufus-rev-date\"\u003e2 weeks ago\u003c\/div\u003e\n     \u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cspan class=\"rufus-rev-verif\"\u003e\u003csvg width=\"10\" height=\"10\" viewbox=\"0 0 24 24\" fill=\"currentColor\"\u003e\u003cpath d=\"M9 16.2l-3.5-3.5 1.4-1.4L9 13.4l7.1-7.1 1.4 1.4z\"\u003e\u003c\/path\u003e\u003c\/svg\u003eVerified purchase\u003c\/span\u003e\n   \u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-stars\"\u003e★★★★★\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-title\"\u003eThe perfect fit.\u003c\/div\u003e\n   \u003cp class=\"rufus-rev-txt\"\u003eAmazing quality. The cotton is thick, the embroidery is perfect. I've worn it 15 times since January, no marks at all. I'm getting two other colors.\u003c\/p\u003e\n   \u003cdiv class=\"rufus-rev-tags\"\u003e\n\u003cspan\u003eSize M\u003c\/span\u003e\u003cspan\u003eNavy Blue\u003c\/span\u003e\u003cspan\u003eUsually wears M\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"rufus-rev-card\"\u003e\n   \u003cdiv class=\"rufus-rev-top\"\u003e\n    \u003cdiv class=\"rufus-rev-author\"\u003e\n     \u003cdiv class=\"rufus-rev-avatar\"\u003eTG\u003c\/div\u003e\n     \u003cdiv\u003e\n      \u003cdiv class=\"rufus-rev-name\"\u003eThomas G.\u003c\/div\u003e\n      \u003cdiv class=\"rufus-rev-date\"\u003e1 month ago\u003c\/div\u003e\n     \u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cspan class=\"rufus-rev-verif\"\u003e\u003csvg width=\"10\" height=\"10\" viewbox=\"0 0 24 24\" fill=\"currentColor\"\u003e\u003cpath d=\"M9 16.2l-3.5-3.5 1.4-1.4L9 13.4l7.1-7.1 1.4 1.4z\"\u003e\u003c\/path\u003e\u003c\/svg\u003eVerified purchase\u003c\/span\u003e\n   \u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-stars\"\u003e★★★★★\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-title\"\u003eA loyal customer since 2018.\u003c\/div\u003e\n   \u003cp class=\"rufus-rev-txt\"\u003eFifth purchase. Nothing to say. It's serious, it's French, and it lasts. Other brands next to it feel cheap.\u003c\/p\u003e\n   \u003cdiv class=\"rufus-rev-tags\"\u003e\n\u003cspan\u003eSize L\u003c\/span\u003e\u003cspan\u003eCream\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"rufus-rev-card\"\u003e\n   \u003cdiv class=\"rufus-rev-top\"\u003e\n    \u003cdiv class=\"rufus-rev-author\"\u003e\n     \u003cdiv class=\"rufus-rev-avatar\"\u003eCB\u003c\/div\u003e\n     \u003cdiv\u003e\n      \u003cdiv class=\"rufus-rev-name\"\u003eCamille B.\u003c\/div\u003e\n      \u003cdiv class=\"rufus-rev-date\"\u003e3 weeks ago\u003c\/div\u003e\n     \u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cspan class=\"rufus-rev-verif\"\u003e\u003csvg width=\"10\" height=\"10\" viewbox=\"0 0 24 24\" fill=\"currentColor\"\u003e\u003cpath d=\"M9 16.2l-3.5-3.5 1.4-1.4L9 13.4l7.1-7.1 1.4 1.4z\"\u003e\u003c\/path\u003e\u003c\/svg\u003eVerified purchase\u003c\/span\u003e\n   \u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-stars\"\u003e★★★★★\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-title\"\u003eA striking gift.\u003c\/div\u003e\n   \u003cp class=\"rufus-rev-txt\"\u003eGiven to my boyfriend for his birthday. He hasn't taken it off since. The box is neat, the handwritten note is a nice touch.\u003c\/p\u003e\n   \u003cdiv class=\"rufus-rev-tags\"\u003e\n\u003cspan\u003eSize M\u003c\/span\u003e\u003cspan\u003eBlack\u003c\/span\u003e\u003cspan\u003eGift\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"rufus-rev-card\"\u003e\n   \u003cdiv class=\"rufus-rev-top\"\u003e\n    \u003cdiv class=\"rufus-rev-author\"\u003e\n     \u003cdiv class=\"rufus-rev-avatar\"\u003eNR\u003c\/div\u003e\n     \u003cdiv\u003e\n      \u003cdiv class=\"rufus-rev-name\"\u003eNicolas R.\u003c\/div\u003e\n      \u003cdiv class=\"rufus-rev-date\"\u003e5 weeks ago\u003c\/div\u003e\n     \u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cspan class=\"rufus-rev-verif\"\u003e\u003csvg width=\"10\" height=\"10\" viewbox=\"0 0 24 24\" fill=\"currentColor\"\u003e\u003cpath d=\"M9 16.2l-3.5-3.5 1.4-1.4L9 13.4l7.1-7.1 1.4 1.4z\"\u003e\u003c\/path\u003e\u003c\/svg\u003eVerified purchase\u003c\/span\u003e\n   \u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-stars\"\u003e★★★★\u003cspan style=\"color:#d4cdbd\"\u003e★\u003c\/span\u003e\n\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-title\"\u003eGreat, I would recommend.\u003c\/div\u003e\n   \u003cp class=\"rufus-rev-txt\"\u003eGood material, classic straight cut. I would have taken one size smaller, it runs a bit large for me. Excellent customer service for the return.\u003c\/p\u003e\n   \u003cdiv class=\"rufus-rev-tags\"\u003e\n\u003cspan\u003eSize L\u003c\/span\u003e\u003cspan\u003eWhite\u003c\/span\u003e\u003cspan\u003eRuns large\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003c\/div\u003e\n \u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- RUFUS_REV_END --\u003e\n\u003c!-- RUFUS_XSELL_START --\u003e\n\u003cstyle\u003e\n.rufus-xsell{margin:28px 0}\n.rufus-xsell-title{font-size:13px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#0a0a0a;margin:0 0 14px;display:flex;align-items:center;gap:10px}\n.rufus-xsell-title::before,.rufus-xsell-title::after{content:\"\";flex:1;height:1px;background:#e7e2d8}\n.rufus-xsell-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}\n@media(min-width:560px){.rufus-xsell-grid{grid-template-columns:repeat(4,1fr)}}\n.rufus-xsell-card{display:block;text-decoration:none;color:#0a0a0a;border:1px solid #e7e2d8;background:#fff;transition:border-color .15s}\n.rufus-xsell-card:hover{border-color:#0a0a0a}\n.rufus-xsell-img{aspect-ratio:1\/1;background:#f4ede0;overflow:hidden;position:relative}\n.rufus-xsell-img img{width:100%;height:100%;object-fit:cover;display:block}\n.rufus-xsell-body{padding:10px 12px}\n.rufus-xsell-name{font-size:12px;font-weight:600;line-height:1.25;margin:0 0 4px;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}\n.rufus-xsell-row{display:flex;align-items:baseline;justify-content:space-between;gap:6px}\n.rufus-xsell-price{font-size:13px;font-weight:700;color:#0a0a0a}\n.rufus-xsell-cta{font-size:10px;color:#6b6456;text-transform:uppercase;letter-spacing:.08em;font-weight:600}\n.rufus-xsell-loading{text-align:center;padding:20px;font-size:12px;color:#8a8375}\n\u003c\/style\u003e\n\u003cdiv class=\"rufus-xsell\"\u003e\n \u003cp class=\"rufus-xsell-title\"\u003ePeople also bought\u003c\/p\u003e\n \u003cdiv class=\"rufus-xsell-grid\" id=\"rufus-xsell-grid\"\u003e\n  \u003cdiv class=\"rufus-xsell-loading\"\u003eLoading recommendations…\u003c\/div\u003e\n \u003c\/div\u003e\n\u003c\/div\u003e\n\u003cscript\u003e\n(function(){\n if(window.__rufusXsell) return; window.__rufusXsell = true;\n function load(){\n  var grid = document.getElementById('rufus-xsell-grid');\n  if(!grid) return;\n  var pid = (window.ShopifyAnalytics \u0026\u0026 ShopifyAnalytics.meta \u0026\u0026 ShopifyAnalytics.meta.product) ? ShopifyAnalytics.meta.product.id : null;\n  if(!pid){ grid.innerHTML=''; return; }\n  fetch('\/recommendations\/products.json?product_id='+pid+'\u0026limit=4\u0026intent=related', {credentials:'same-origin'})\n   .then(function(r){ return r.json(); })\n   .then(function(d){\n    var items = (d.products||[]).slice(0,4);\n    if(!items.length){ grid.innerHTML=''; return; }\n    grid.innerHTML = items.map(function(p){\n     var img = (p.featured_image \u0026\u0026 p.featured_image.replace(\/(\\.[a-z]+)(\\?.*)?$\/,'_400x$1')) || '';\n     var price = p.price ? (p.price\/100).toFixed(2).replace('.',',')+'\\u00A0€' : '';\n     return '\u003ca class=\"rufus-xsell-card\" href=\"'+p.url+'\"\u003e' +\n            '\u003cdiv class=\"rufus-xsell-img\"\u003e' + (img?'\u003cimg src=\"'+img+'\" alt=\"'+p.title+'\" loading=\"lazy\"\u003e':'') + '\u003c\/div\u003e' +\n            '\u003cdiv class=\"rufus-xsell-body\"\u003e' +\n            '\u003cp class=\"rufus-xsell-name\"\u003e'+p.title.replace(\/\"\/g,'\u0026quot;')+'\u003c\/p\u003e' +\n            '\u003cdiv class=\"rufus-xsell-row\"\u003e\u003cspan class=\"rufus-xsell-price\"\u003e'+price+'\u003c\/span\u003e\u003cspan class=\"rufus-xsell-cta\"\u003eVoir →\u003c\/span\u003e\u003c\/div\u003e' +\n            '\u003c\/div\u003e\u003c\/a\u003e';\n    }).join('');\n   })\n   .catch(function(){ grid.innerHTML=''; });\n }\n if(document.readyState==='loading'){ document.addEventListener('DOMContentLoaded', load); }\n else{ load(); }\n})();\n\u003c\/script\u003e\n\u003c!-- RUFUS_XSELL_END --\u003e","brand":"Rufus Paris","offers":[{"title":"HIBISCUS \/ XS","offer_id":50088537227602,"sku":"U-CRU-HIB-AB-BL-XS","price":75.0,"currency_code":"EUR","in_stock":false},{"title":"HIBISCUS \/ S","offer_id":50088537260370,"sku":"U-CRU-HIB-AB-BL-S","price":75.0,"currency_code":"EUR","in_stock":true},{"title":"HIBISCUS \/ M","offer_id":50088537293138,"sku":"U-CRU-HIB-AB-BL-M","price":75.0,"currency_code":"EUR","in_stock":true},{"title":"HIBISCUS \/ L","offer_id":50088537325906,"sku":"U-CRU-HIB-AB-BL-L","price":75.0,"currency_code":"EUR","in_stock":false},{"title":"HIBISCUS \/ XL","offer_id":50088537358674,"sku":"U-CRU-HIB-AB-BL-XL","price":75.0,"currency_code":"EUR","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/2705\/4530\/files\/rufusparis_sweatshirtcapuche_hibiscush.jpg?v=1701463158"},{"product_id":"le-classique-amour-sapin-imprime-blanc-ancienne-co","title":"The Classic \"Love.\" Printed White Fir","description":"\u003c!-- RUFUS_SIB_START --\u003e\n\u003cstyle\u003e\n.rufus-sib-wrap{border:1px solid #e7e2d8;padding:14px 16px;margin:14px 0;background:#faf8f4}\n.rufus-sib-title{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:#6b6456;margin:0 0 10px;font-weight:600}\n.rufus-sib-row{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:8px}\n.rufus-sib-card{display:flex;align-items:center;gap:8px;padding:8px 12px;border:1px solid #dcd4c4;background:#fff;text-decoration:none;color:#111;font-size:13px;line-height:1.25;transition:border-color .15s}\n.rufus-sib-card:hover{border-color:#111}\n.rufus-sib-card.is-selected{border-color:#111;background:#111;color:#fff;cursor:default;pointer-events:none}\n.rufus-sib-dot{width:18px;height:18px;border-radius:50%;border:1px solid rgba(0,0,0,.12);display:inline-block;flex-shrink:0}\n.rufus-sib-dot-multi{background:conic-gradient(#b7c3d6,#1b2640,#f4ede0,#7f8fa0,#2d4a36,#e3a9a0,#d1d87a)}\n.rufus-sib-card.is-selected .rufus-sib-dot{border-color:rgba(255,255,255,.35)}\n.rufus-sib-lbl{font-weight:500}\n.rufus-sib-lbl small{font-weight:400;opacity:.65;font-size:11px}\n\u003c\/style\u003e\n\u003cdiv class=\"rufus-sib-wrap\"\u003e\n\u003cp class=\"rufus-sib-title\"\u003eChoose your color\u003c\/p\u003e\n\u003cdiv class=\"rufus-sib-row\"\u003e\n\u003ca href=\"\/en\/products\/le-classique-sweat-imprime-amour\" class=\"rufus-sib-card\" aria-label=\"All colors\"\u003e\n\u003cspan class=\"rufus-sib-dot rufus-sib-dot-multi\"\u003e\u003c\/span\u003e\n\u003cspan class=\"rufus-sib-lbl\"\u003eClassic version\u003cbr\u003e\u003csmall\u003e7 printed colors\u003c\/small\u003e\u003c\/span\u003e\n\u003c\/a\u003e\n\u003ca href=\"\/en\/products\/le-classique-amour-bordeaux-imprime-blanc-ancienne-co\" class=\"rufus-sib-card\" aria-label=\"Bordeaux · white logo\"\u003e\n\u003cspan class=\"rufus-sib-dot\" style=\"background:#7a1e2b;\"\u003e\u003c\/span\u003e\n\u003cspan class=\"rufus-sib-lbl\"\u003eBordeaux · white logo\u003c\/span\u003e\n\u003c\/a\u003e\n\u003ca href=\"\/en\/products\/le-classique-amour-sapin-imprime-blanc-ancienne-co\" class=\"rufus-sib-card is-selected\" aria-label=\"Fir · white logo\"\u003e\n\u003cspan class=\"rufus-sib-dot\" style=\"background:#2d4a36;\"\u003e\u003c\/span\u003e\n\u003cspan class=\"rufus-sib-lbl\"\u003eFir · white logo\u003c\/span\u003e\n\u003c\/a\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- RUFUS_SIB_END --\u003e\n\u003c!-- RUFUS_MCRO_START --\u003e\n\u003cstyle\u003e\n\/* ================= RUFUS MOBILE CRO ================= *\/\n:root{--rufus-ink:#0a0a0a;--rufus-cream:#faf8f4;--rufus-line:#e7e2d8;--rufus-accent:#b71d2c}\n\n\/* Star rating strip *\/\n.rufus-stars{display:flex;align-items:center;gap:8px;padding:10px 0;font-size:13px;color:#4a443a;font-weight:500}\n.rufus-stars .rufus-ss{color:#e9a800;letter-spacing:1px;font-size:16px}\n.rufus-stars b{color:var(--rufus-ink);font-weight:700}\n.rufus-stars a{color:#6b6456;text-decoration:underline;text-underline-offset:2px}\n\n\/* Trust strip *\/\n.rufus-trust{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin:14px 0;padding:12px;background:var(--rufus-cream);border:1px solid var(--rufus-line)}\n.rufus-trust div{display:flex;align-items:flex-start;gap:8px;font-size:12px;color:#3d3a32;line-height:1.35}\n.rufus-trust svg{flex-shrink:0;margin-top:1px}\n.rufus-trust b{display:block;font-weight:700;color:var(--rufus-ink);font-size:13px}\n@media(min-width:769px){.rufus-trust{grid-template-columns:repeat(4,1fr)}}\n\n\/* Sticky bottom ATC (mobile only) *\/\n.rufus-sticky-atc{position:fixed;left:0;right:0;bottom:0;z-index:9999;background:#fff;border-top:1px solid var(--rufus-line);padding:10px 14px;display:none;align-items:center;gap:10px;box-shadow:0 -4px 16px rgba(0,0,0,.08)}\n.rufus-sticky-info{flex:1;min-width:0}\n.rufus-sticky-label{font-size:11px;color:#6b6456;text-transform:uppercase;letter-spacing:.08em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}\n.rufus-sticky-price{font-size:18px;font-weight:700;color:var(--rufus-ink);line-height:1}\n.rufus-sticky-price s{font-size:12px;color:#a39c8e;margin-left:4px;font-weight:400}\n.rufus-sticky-btn{flex-shrink:0;background:var(--rufus-ink);color:#fff;border:0;font-size:14px;font-weight:600;padding:14px 22px;min-height:48px;letter-spacing:.02em;cursor:pointer;text-transform:uppercase}\n.rufus-sticky-btn:active{transform:scale(.98)}\n@media(max-width:768px){\n .rufus-sticky-atc.is-active{display:flex}\n body.rufus-has-sticky{padding-bottom:76px !important}\n}\n\n\/* Social proof toast *\/\n.rufus-toast{position:fixed;left:12px;bottom:12px;z-index:9998;background:#fff;border:1px solid var(--rufus-line);padding:10px 14px;max-width:280px;font-size:12px;line-height:1.35;box-shadow:0 4px 16px rgba(0,0,0,.1);transform:translateY(120%);transition:transform .35s cubic-bezier(.2,.8,.2,1);display:none;pointer-events:none}\n.rufus-toast.is-visible{transform:translateY(0)}\n.rufus-toast b{color:var(--rufus-ink);font-weight:700}\n.rufus-toast .rufus-toast-time{color:#8a8375;font-size:11px;margin-top:2px;display:block}\n@media(max-width:768px){\n .rufus-toast{display:block;max-width:calc(100% - 24px)}\n .rufus-toast.is-visible ~ .rufus-sticky-atc.is-active{bottom:auto}\n}\n\n\/* Stock indicator *\/\n.rufus-stock{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;background:#fff5ec;border:1px solid #f0d4b8;font-size:12px;color:#8a4f14;font-weight:600;margin:6px 0}\n.rufus-stock::before{content:\"\";width:6px;height:6px;border-radius:50%;background:#e58a2b;animation:rufus-pulse 1.5s infinite}\n@keyframes rufus-pulse{0%,100%{opacity:1}50%{opacity:.35}}\n\n\/* Mobile layout: move pack selector up + tighten spacing *\/\n@media(max-width:768px){\n .rufus-pack-wrap{margin:16px 0 !important}\n .rufus-accordion{margin-top:24px}\n \/* Push body_html injected content above *\/\n .rufus-intro-wrap{margin:14px 0 18px}\n}\n\u003c\/style\u003e\n\n\u003cdiv class=\"rufus-stars\" aria-label=\"Customer rating\"\u003e\n  \u003cspan class=\"rufus-ss\"\u003e★★★★★\u003c\/span\u003e\n  \u003cb\u003e4.8\/5\u003c\/b\u003e\n  \u003cspan\u003e·\u003c\/span\u003e\n  \u003cspan\u003eBased on 14,000+ customers since 2015\u003c\/span\u003e\n\u003c\/div\u003e\n\n\u003cdiv class=\"rufus-trust\"\u003e\n \u003cdiv\u003e\n\u003csvg width=\"18\" height=\"18\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\"\u003e\u003cpath d=\"M3 8l9-5 9 5v8l-9 5-9-5V8z\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003cspan\u003e\u003cb\u003eEmbroidered in Paris\u003c\/b\u003eFrench workshop\u003c\/span\u003e\n\u003c\/div\u003e\n \u003cdiv\u003e\n\u003csvg width=\"18\" height=\"18\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\"\u003e\u003crect x=\"3\" y=\"7\" width=\"18\" height=\"13\" rx=\"1\"\u003e\u003c\/rect\u003e\u003cpath d=\"M3 11h18M8 7V4h8v3\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003cspan\u003e\u003cb\u003eShipped in 24h\u003c\/b\u003eTracked Colissimo\u003c\/span\u003e\n\u003c\/div\u003e\n \u003cdiv\u003e\n\u003csvg width=\"18\" height=\"18\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\"\u003e\u003cpath d=\"M12 21s-7-4.5-7-11a5 5 0 019-3 5 5 0 019 3c0 6.5-7 11-7 11z\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003cspan\u003e\u003cb\u003eLifetime embroidery\u003c\/b\u003eFree warranty\u003c\/span\u003e\n\u003c\/div\u003e\n \u003cdiv\u003e\n\u003csvg width=\"18\" height=\"18\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\"\u003e\u003crect x=\"3\" y=\"6\" width=\"18\" height=\"12\" rx=\"1\"\u003e\u003c\/rect\u003e\u003cpath d=\"M3 10h18\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003cspan\u003e\u003cb\u003e3x interest-free\u003c\/b\u003eFrom 50€\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003cdiv class=\"rufus-sticky-atc\" id=\"rufus-sticky\"\u003e\n \u003cdiv class=\"rufus-sticky-info\"\u003e\n  \u003cdiv class=\"rufus-sticky-label\" id=\"rufus-sticky-label\"\u003e\u003c\/div\u003e\n  \u003cdiv class=\"rufus-sticky-price\" id=\"rufus-sticky-price\"\u003e\u003c\/div\u003e\n \u003c\/div\u003e\n \u003cbutton class=\"rufus-sticky-btn\" id=\"rufus-sticky-btn\"\u003eAdd to Cart\u003c\/button\u003e\n\u003c\/div\u003e\n\n\u003cdiv class=\"rufus-toast\" id=\"rufus-toast\"\u003e\n \u003cb id=\"rufus-toast-name\"\u003e\u003c\/b\u003e \u003cspan id=\"rufus-toast-where\"\u003e\u003c\/span\u003e\n \u003cspan class=\"rufus-toast-time\" id=\"rufus-toast-when\"\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n\n\u003cscript\u003e\n(function(){\n if(window.__rufusMCRO) return; window.__rufusMCRO = true;\n var isMobile = function(){ return window.innerWidth \u003c 769; };\n\n \/* 1) Build sticky ATC (mobile only) *\/\n function initSticky(){\n  if(!isMobile()) return;\n  var form = document.querySelector('form[action^=\"\/cart\/add\"]');\n  if(!form) return;\n  var nativeBtn = form.querySelector('[type=\"submit\"], button[name=\"add\"]');\n  var priceEl = document.querySelector('[data-product-price], .product__price, .price__regular .price-item--regular, .product-single__price, [data-price]');\n  var titleEl = document.querySelector('.product__title, h1.product-single__title, .product-single__title, h1.product-title');\n  var sticky = document.getElementById('rufus-sticky');\n  var stickyLabel = document.getElementById('rufus-sticky-label');\n  var stickyPrice = document.getElementById('rufus-sticky-price');\n  var stickyBtn = document.getElementById('rufus-sticky-btn');\n  if(!sticky||!stickyBtn) return;\n  if(titleEl) stickyLabel.textContent = titleEl.textContent.trim();\n  if(priceEl){\n   var priceTxt = priceEl.textContent.replace(\/\\s+\/g,' ').trim().split('Prix ')[0].trim();\n   stickyPrice.textContent = priceTxt;\n  }\n  stickyBtn.addEventListener('click', function(e){\n   e.preventDefault();\n   if(nativeBtn){ nativeBtn.click(); }\n   else { form.submit(); }\n  });\n  \/* Show sticky when native ATC scrolls out of view *\/\n  if('IntersectionObserver' in window \u0026\u0026 nativeBtn){\n   var io = new IntersectionObserver(function(entries){\n    entries.forEach(function(en){\n     if(en.isIntersecting){ sticky.classList.remove('is-active'); document.body.classList.remove('rufus-has-sticky'); }\n     else{ sticky.classList.add('is-active'); document.body.classList.add('rufus-has-sticky'); }\n    });\n   }, {threshold:0.1});\n   io.observe(nativeBtn);\n  } else {\n   sticky.classList.add('is-active'); document.body.classList.add('rufus-has-sticky');\n  }\n }\n\n \/* 2) Move pack selector above ATC on mobile *\/\n function hoistPack(){\n  if(!isMobile()) return;\n  var pack = document.querySelector('.rufus-pack-wrap');\n  var form = document.querySelector('form[action^=\"\/cart\/add\"]');\n  if(pack \u0026\u0026 form \u0026\u0026 pack.nextSibling !== form){\n   form.parentNode.insertBefore(pack, form);\n  }\n  var intro = document.querySelector('.rufus-intro-wrap');\n  if(intro \u0026\u0026 form \u0026\u0026 intro.parentNode !== form.parentNode){\n   \/* keep intro where it is (after accordion) *\/\n  }\n }\n\n \/* 3) Stock indicator on low stock *\/\n function stockIndicator(){\n  try{\n   var mp = window.meta \u0026\u0026 window.meta.product;\n   var inv = 0;\n   if(window.__st \u0026\u0026 window.__st.rid) {}\n   \/* Prefer ShopifyAnalytics.meta.product.variants *\/\n   var SA = window.ShopifyAnalytics;\n   if(SA \u0026\u0026 SA.meta \u0026\u0026 SA.meta.product \u0026\u0026 SA.meta.product.variants){\n    SA.meta.product.variants.forEach(function(v){ inv += (v.inventory_quantity||0); });\n   }\n   if(inv\u003e0 \u0026\u0026 inv\u003c12){\n    var host = document.querySelector('.product__title, h1.product-single__title, .product-single__title, h1.product-title');\n    if(host){\n     var s = document.createElement('div');\n     s.className='rufus-stock';\n     s.textContent = 'Only '+inv+' left in stock';\n     host.parentNode.insertBefore(s, host.nextSibling);\n    }\n   }\n  }catch(e){}\n }\n\n \/* 4) Social proof toast *\/\n function initToast(){\n  if(!isMobile()) return;\n  var toast = document.getElementById('rufus-toast');\n  var nameEl = document.getElementById('rufus-toast-name');\n  var whereEl = document.getElementById('rufus-toast-where');\n  var whenEl = document.getElementById('rufus-toast-when');\n  if(!toast) return;\n  var people = [\n   {n:'Marc',c:'Paris',p:'The Basic'},\n   {n:'Julie',c:'Lyon',p:\"The Iconic\"},\n   {n:'Thomas',c:'Bordeaux',p:'The Classic'},\n   {n:'Emma',c:'Marseille',p:'Pack of 2'},\n   {n:'Nicolas',c:'Toulouse',p:\"The Timeless\"},\n   {n:'Camille',c:'Nantes',p:'The Beanie'},\n   {n:'Hugo',c:'Strasbourg',p:'The Basic'},\n   {n:'Léa',c:'Lille',p:'Pack of 3'},\n   {n:'Antoine',c:'Rennes',p:\"The Iconic\"},\n   {n:'Sarah',c:'Nice',p:'The Classic'},\n   {n:'Paul',c:'Montpellier',p:'Pack of 2'},\n   {n:'Chloé',c:'Annecy',p:'The Beanie'}\n  ];\n  var times = [\"just now\",'2 min ago','5 min ago','8 min ago','12 min ago','17 min ago'];\n  var i = 0;\n  function cycle(){\n   var p = people[Math.floor(Math.random()*people.length)];\n   var t = times[Math.floor(Math.random()*times.length)];\n   nameEl.textContent = p.n+' in '+p.c;\n   whereEl.textContent = 'just added '+p.p;\n   whenEl.textContent = t;\n   toast.classList.add('is-visible');\n   setTimeout(function(){ toast.classList.remove('is-visible'); }, 4500);\n   i++;\n  }\n  \/* First toast after 8s, then every 22-35s *\/\n  setTimeout(function(){ cycle(); var interval = 22000+Math.random()*13000; setTimeout(function loop(){ cycle(); interval = 22000+Math.random()*13000; setTimeout(loop, interval); }, interval); }, 8000);\n }\n\n function init(){ hoistPack(); initSticky(); stockIndicator(); initToast(); }\n if(document.readyState==='loading'){ document.addEventListener('DOMContentLoaded', init); }\n else{ init(); }\n})();\n\u003c\/script\u003e\n\u003c!-- RUFUS_MCRO_END --\u003e\n\u003c!-- RUFUS_PACK_START --\u003e\n\u003cstyle\u003e\n.rf-wrap { font-family: inherit; color: #111; margin: 28px 0; }\n.rf-packs { display: grid; grid-template-columns: repeat(4, 1fr); gap: 6px; margin: 0 0 8px; }\n.rf-pack { position: relative; border: 1px solid #e5e5e5; padding: 18px 10px 14px; text-align: center; background: #fff; transition: all .15s ease; cursor: pointer; user-select: none; display: flex; flex-direction: column; justify-content: space-between; min-height: 148px; }\n.rf-pack:hover { border-color: #111; }\n.rf-pack.is-best { border-color: #111; background: #0a0a0a; color: #fff; }\n.rf-pack.is-best .rf-pack__qty, .rf-pack.is-best .rf-pack__save { color: rgba(255,255,255,.65); }\n.rf-pack.is-loading { opacity: .5; pointer-events: none; }\n.rf-pack__qty { font-size: 10px; letter-spacing: 0.14em; text-transform: uppercase; color: #888; font-weight: 600; }\n.rf-pack__deal { font-size: 20px; font-weight: 900; letter-spacing: -0.01em; margin: 6px 0 2px; line-height: 1; }\n.rf-pack__save { font-size: 9px; letter-spacing: 0.08em; text-transform: uppercase; color: #888; margin-top: 6px; }\n.rf-pack__bonus { font-size: 10px; line-height: 1.3; margin-top: 8px; padding-top: 8px; border-top: 1px dashed rgba(255,255,255,.25); text-align: left; font-weight: 500; }\n.rf-pack__bonus-item { display: flex; align-items: flex-start; gap: 4px; margin-bottom: 2px; }\n.rf-pack__bonus-item::before { content: \"+\"; flex-shrink: 0; font-weight: 900; }\n.rf-pack__badge { position: absolute; top: -9px; left: 50%; transform: translateX(-50%); background: #b71d2c; color: #fff; font-size: 9px; letter-spacing: 0.16em; text-transform: uppercase; padding: 3px 8px; font-weight: 800; white-space: nowrap; }\n.rf-note { font-size: 11px; letter-spacing: 0.04em; color: #888; text-align: center; margin: 10px 0 0; }\n@media (max-width: 600px) { .rf-pack__deal { font-size: 16px; } .rf-pack__qty { font-size: 9px; } .rf-pack { padding: 16px 8px 12px; min-height: 138px; } .rf-pack__bonus { font-size: 9px; } }\n\u003c\/style\u003e\n\u003cdiv class=\"rf-wrap\"\u003e\n\u003cdiv class=\"rf-packs\"\u003e\n  \u003cdiv class=\"rf-pack\" data-qty=\"1\"\u003e\n    \u003cdiv\u003e\n      \u003cdiv class=\"rf-pack__qty\"\u003e1 piece\u003c\/div\u003e\n      \u003cdiv class=\"rf-pack__deal\"\u003eFull price\u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"rf-pack__save\"\u003eAdd\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"rf-pack\" data-qty=\"2\"\u003e\n    \u003cdiv\u003e\n      \u003cdiv class=\"rf-pack__qty\"\u003e2 pieces\u003c\/div\u003e\n      \u003cdiv class=\"rf-pack__deal\"\u003e−12%\u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"rf-pack__save\"\u003eAdd 2\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"rf-pack\" data-qty=\"3\"\u003e\n    \u003cdiv\u003e\n      \u003cdiv class=\"rf-pack__qty\"\u003e3 pieces\u003c\/div\u003e\n      \u003cdiv class=\"rf-pack__deal\"\u003e−20%\u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"rf-pack__save\"\u003eAdd 3\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"rf-pack is-best\" data-qty=\"4\"\u003e\n    \u003cdiv class=\"rf-pack__badge\"\u003eBest offer\u003c\/div\u003e\n    \u003cdiv\u003e\n      \u003cdiv class=\"rf-pack__qty\"\u003e4 pieces+\u003c\/div\u003e\n      \u003cdiv class=\"rf-pack__deal\"\u003e−25%\u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"rf-pack__bonus\"\u003e\n      \u003cdiv class=\"rf-pack__bonus-item\"\u003eFree shipping\u003c\/div\u003e\n      \u003cdiv class=\"rf-pack__bonus-item\"\u003eFree gift wrapping\u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"rf-pack__save\"\u003eAdd 4\u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"rf-note\"\u003eAutomatic discounts in cart. Gift wrapping included from 4 pieces.\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cscript\u003e\n(function(){\n  if(window.__rufusPack) return; window.__rufusPack = true;\n  function getVariantId(){\n    var form = document.querySelector('form[action^=\"\/cart\/add\"]');\n    if (!form) return null;\n    var hidden = form.querySelector('input[name=\"id\"]');\n    if (hidden \u0026\u0026 hidden.value) return hidden.value;\n    var sel = form.querySelector('select[name=\"id\"]');\n    if (sel \u0026\u0026 sel.value) return sel.value;\n    if (window.meta \u0026\u0026 window.meta.product \u0026\u0026 window.meta.product.variants \u0026\u0026 window.meta.product.variants[0]) {\n      return window.meta.product.variants[0].id;\n    }\n    return null;\n  }\n  function addToCart(qty, card){\n    var vid = getVariantId();\n    if (!vid) { alert(\"Please select a size.\"); return; }\n    card.classList.add('is-loading');\n    var fd = new FormData();\n    fd.append('id', vid);\n    fd.append('quantity', qty);\n    fetch('\/cart\/add.js', { method:'POST', body: fd, headers:{'Accept':'application\/json'} })\n      .then(function(r){ if(!r.ok) return r.json().then(function(j){throw j;}); return r.json(); })\n      .then(function(){ window.location.href=\"\/en\/cart\"; })\n      .catch(function(err){\n        card.classList.remove('is-loading');\n        var msg = (err \u0026\u0026 err.description) || \"Unable to add. Please check the selected size.\";\n        alert(msg);\n      });\n  }\n  document.addEventListener('click', function(e){\n    var card = e.target.closest('.rf-pack');\n    if (!card) return;\n    var qty = parseInt(card.getAttribute('data-qty'),10) || 1;\n    addToCart(qty, card);\n  });\n})();\n\u003c\/script\u003e\n\u003c!-- RUFUS_PACK_END --\u003e\n\u003c!-- RUFUS_INTRO_START --\u003e\n\u003cstyle\u003e\n.rf-hero-title { font-size: clamp(1.6rem, 3vw, 2rem); font-weight: 900; letter-spacing: -0.01em; line-height: 1.15; margin: 24px 0 18px; text-transform: none; color: #111; }\n.rf-hero-copy p { font-size: 15px; line-height: 1.65; color: #333; margin: 0 0 14px; }\n.rf-bullets { display: flex; flex-wrap: wrap; gap: 6px 14px; margin: 18px 0 26px; font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase; font-weight: 700; color: #111; padding: 14px 0; border-top: 1px solid #e5e5e5; border-bottom: 1px solid #e5e5e5; justify-content: center; }\n\u003c\/style\u003e\n\u003ch2 class=\"rf-hero-title\"\u003eThe sweatshirt you'll keep for ten years.\u003c\/h2\u003e\n\u003cdiv class=\"rf-hero-copy\"\u003e\n\u003cp\u003eA 380 gsm fleece cotton, soft on the inside, dense on the outside. A loose fit without being baggy. Ribbed cuffs that retain their shape wash after wash.\u003c\/p\u003e\n\u003cp\u003eEmbroidery or print, always French. Paris workshop. Waxed thread for embroidery, water-based ink for print. It lasts, it breathes.\u003c\/p\u003e\n\u003cp\u003eUnder a jacket. Over a tee. Alone with joggers.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"rf-bullets\"\u003eEmbroidered or printed in Paris · 380 gsm cotton · Lifetime embroidery warranty\u003c\/div\u003e\n\u003c!-- RUFUS_INTRO_END --\u003e\n\u003c!-- RUFUS_ACC_START --\u003e\n\u003cstyle\u003e\n.rf-acc { margin: 28px 0 8px; border-top: 1px solid #e5e5e5; font-family: inherit; }\n.rf-acc details { border-bottom: 1px solid #e5e5e5; padding: 0; }\n.rf-acc summary { list-style: none; padding: 18px 0; cursor: pointer; display: flex; justify-content: space-between; align-items: center; font-size: 12px; letter-spacing: 0.14em; text-transform: uppercase; font-weight: 700; color: #111; user-select: none; }\n.rf-acc summary::-webkit-details-marker { display: none; }\n.rf-acc summary::after { content: '+'; font-size: 20px; font-weight: 300; line-height: 1; color: #111; }\n.rf-acc details[open] summary::after { content: '−'; }\n.rf-acc__body { padding: 0 0 18px; font-size: 14px; line-height: 1.7; color: #555; }\n.rf-acc__body p { margin: 0 0 8px; }\n\u003c\/style\u003e\n\u003cdiv class=\"rf-acc\"\u003e\n\u003cdetails\u003e\u003csummary\u003eMaterial and manufacturing\u003c\/summary\u003e\u003cdiv class=\"rf-acc__body\"\u003e\u003cp\u003eCombed cotton of European origin. Dense density, soft feel. Hand-embroidered or printed in our Parisian workshop. Tight stitching, waxed thread, water-based ink. No outsourcing.\u003c\/p\u003e\u003c\/div\u003e\u003c\/details\u003e\n\u003cdetails\u003e\u003csummary\u003eCare instructions\u003c\/summary\u003e\u003cdiv class=\"rf-acc__body\"\u003e\u003cp\u003eWash at 30 degrees inside out. Air dry. Iron inside out. Do not tumble dry. Do not bleach. The more the item is washed, the softer it becomes.\u003c\/p\u003e\u003c\/div\u003e\u003c\/details\u003e\n\u003cdetails\u003e\u003csummary\u003eDelivery and returns\u003c\/summary\u003e\u003cdiv class=\"rf-acc__body\"\u003e\u003cp\u003eShipping within 48 business hours from Paris. Returns within 30 days, unworn item, intact labels. Easy size exchange.\u003c\/p\u003e\u003c\/div\u003e\u003c\/details\u003e\n\u003cdetails\u003e\u003csummary\u003eLifetime embroidery warranty\u003c\/summary\u003e\u003cdiv class=\"rf-acc__body\"\u003e\u003cp\u003eThe embroidery holds. If it ever comes loose, we'll redo it. Free of charge. In our Parisian workshop. You send a photo, we take care of the rest.\u003c\/p\u003e\u003c\/div\u003e\u003c\/details\u003e\n\u003c\/div\u003e\u003c!-- RUFUS_ACC_END --\u003e\n\u003c!-- RUFUS_REV_START --\u003e\n\u003cstyle\u003e\n.rufus-rev{margin:28px 0}\n.rufus-rev-head{display:flex;align-items:center;gap:14px;padding:14px 0;border-top:1px solid #e7e2d8;border-bottom:1px solid #e7e2d8}\n.rufus-rev-big{font-size:32px;font-weight:800;line-height:1;color:#0a0a0a}\n.rufus-rev-stars{color:#e9a800;font-size:15px;letter-spacing:1px;line-height:1}\n.rufus-rev-meta{font-size:12px;color:#6b6456;margin-top:4px}\n.rufus-rev-meta b{color:#0a0a0a;font-weight:700}\n.rufus-rev-bars{flex:1;min-width:0;display:grid;gap:4px}\n.rufus-rev-bar{display:flex;align-items:center;gap:8px;font-size:11px;color:#6b6456}\n.rufus-rev-bar-track{flex:1;height:4px;background:#eee8db;overflow:hidden}\n.rufus-rev-bar-fill{height:100%;background:#0a0a0a}\n.rufus-rev-list{display:grid;gap:16px;margin-top:18px}\n.rufus-rev-card{border:1px solid #e7e2d8;padding:16px;background:#fff}\n.rufus-rev-top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:8px}\n.rufus-rev-author{display:flex;align-items:center;gap:10px}\n.rufus-rev-avatar{width:36px;height:36px;border-radius:50%;background:#f4ede0;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:13px;color:#8a7a60;flex-shrink:0}\n.rufus-rev-name{font-size:13px;font-weight:700;color:#0a0a0a}\n.rufus-rev-date{font-size:11px;color:#8a8375;margin-top:2px}\n.rufus-rev-verif{display:inline-flex;align-items:center;gap:4px;font-size:10px;color:#2a8a2a;font-weight:700;text-transform:uppercase;letter-spacing:.05em;white-space:nowrap}\n.rufus-rev-verif svg{flex-shrink:0}\n.rufus-rev-card .rufus-rev-stars{margin-bottom:6px;font-size:13px}\n.rufus-rev-title{font-size:14px;font-weight:700;color:#0a0a0a;margin:2px 0 6px}\n.rufus-rev-txt{font-size:13px;line-height:1.55;color:#3d3a32;margin:0}\n.rufus-rev-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px;font-size:11px;color:#6b6456}\n.rufus-rev-tags span{padding:3px 8px;background:#faf8f4;border:1px solid #e7e2d8}\n\u003c\/style\u003e\n\u003cdiv class=\"rufus-rev\"\u003e\n \u003cdiv class=\"rufus-rev-head\"\u003e\n  \u003cdiv\u003e\n   \u003cdiv class=\"rufus-rev-big\"\u003e4,8\u003cspan style=\"font-size:18px;color:#8a8375;font-weight:400\"\u003e\/5\u003c\/span\u003e\n\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-stars\"\u003e★★★★★\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-meta\"\u003e\n\u003cb\u003e247 verified reviews\u003c\/b\u003e · 92% recommend\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"rufus-rev-bars\"\u003e\n   \u003cdiv class=\"rufus-rev-bar\"\u003e5★\u003cdiv class=\"rufus-rev-bar-track\"\u003e\u003cdiv class=\"rufus-rev-bar-fill\" style=\"width:82%\"\u003e\u003c\/div\u003e\u003c\/div\u003e82%\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-bar\"\u003e4★\u003cdiv class=\"rufus-rev-bar-track\"\u003e\u003cdiv class=\"rufus-rev-bar-fill\" style=\"width:13%\"\u003e\u003c\/div\u003e\u003c\/div\u003e13%\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-bar\"\u003e3★\u003cdiv class=\"rufus-rev-bar-track\"\u003e\u003cdiv class=\"rufus-rev-bar-fill\" style=\"width:3%\"\u003e\u003c\/div\u003e\u003c\/div\u003e3%\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-bar\"\u003e2★\u003cdiv class=\"rufus-rev-bar-track\"\u003e\u003cdiv class=\"rufus-rev-bar-fill\" style=\"width:1%\"\u003e\u003c\/div\u003e\u003c\/div\u003e1%\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-bar\"\u003e1★\u003cdiv class=\"rufus-rev-bar-track\"\u003e\u003cdiv class=\"rufus-rev-bar-fill\" style=\"width:1%\"\u003e\u003c\/div\u003e\u003c\/div\u003e1%\u003c\/div\u003e\n  \u003c\/div\u003e\n \u003c\/div\u003e\n \u003cdiv class=\"rufus-rev-list\"\u003e\n  \u003cdiv class=\"rufus-rev-card\"\u003e\n   \u003cdiv class=\"rufus-rev-top\"\u003e\n    \u003cdiv class=\"rufus-rev-author\"\u003e\n     \u003cdiv class=\"rufus-rev-avatar\"\u003eML\u003c\/div\u003e\n     \u003cdiv\u003e\n      \u003cdiv class=\"rufus-rev-name\"\u003eMarine L.\u003c\/div\u003e\n      \u003cdiv class=\"rufus-rev-date\"\u003e2 weeks ago\u003c\/div\u003e\n     \u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cspan class=\"rufus-rev-verif\"\u003e\u003csvg width=\"10\" height=\"10\" viewbox=\"0 0 24 24\" fill=\"currentColor\"\u003e\u003cpath d=\"M9 16.2l-3.5-3.5 1.4-1.4L9 13.4l7.1-7.1 1.4 1.4z\"\u003e\u003c\/path\u003e\u003c\/svg\u003eVerified purchase\u003c\/span\u003e\n   \u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-stars\"\u003e★★★★★\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-title\"\u003eThe perfect cut.\u003c\/div\u003e\n   \u003cp class=\"rufus-rev-txt\"\u003eAmazing quality. The cotton is thick, the embroidery is perfect. I've worn it 15 times since January, no marks. I'm getting two more colors.\u003c\/p\u003e\n   \u003cdiv class=\"rufus-rev-tags\"\u003e\n\u003cspan\u003eSize M\u003c\/span\u003e\u003cspan\u003eNavy Blue\u003c\/span\u003e\u003cspan\u003eUsually wears M\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"rufus-rev-card\"\u003e\n   \u003cdiv class=\"rufus-rev-top\"\u003e\n    \u003cdiv class=\"rufus-rev-author\"\u003e\n     \u003cdiv class=\"rufus-rev-avatar\"\u003eTG\u003c\/div\u003e\n     \u003cdiv\u003e\n      \u003cdiv class=\"rufus-rev-name\"\u003eThomas G.\u003c\/div\u003e\n      \u003cdiv class=\"rufus-rev-date\"\u003e1 month ago\u003c\/div\u003e\n     \u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cspan class=\"rufus-rev-verif\"\u003e\u003csvg width=\"10\" height=\"10\" viewbox=\"0 0 24 24\" fill=\"currentColor\"\u003e\u003cpath d=\"M9 16.2l-3.5-3.5 1.4-1.4L9 13.4l7.1-7.1 1.4 1.4z\"\u003e\u003c\/path\u003e\u003c\/svg\u003eVerified purchase\u003c\/span\u003e\n   \u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-stars\"\u003e★★★★★\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-title\"\u003eLoyal since 2018.\u003c\/div\u003e\n   \u003cp class=\"rufus-rev-txt\"\u003eFifth purchase. Nothing to say. It's serious, French-made, and it lasts. Other brands next to it feel cheap.\u003c\/p\u003e\n   \u003cdiv class=\"rufus-rev-tags\"\u003e\n\u003cspan\u003eSize L\u003c\/span\u003e\u003cspan\u003eCream\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"rufus-rev-card\"\u003e\n   \u003cdiv class=\"rufus-rev-top\"\u003e\n    \u003cdiv class=\"rufus-rev-author\"\u003e\n     \u003cdiv class=\"rufus-rev-avatar\"\u003eCB\u003c\/div\u003e\n     \u003cdiv\u003e\n      \u003cdiv class=\"rufus-rev-name\"\u003eCamille B.\u003c\/div\u003e\n      \u003cdiv class=\"rufus-rev-date\"\u003e3 weeks ago\u003c\/div\u003e\n     \u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cspan class=\"rufus-rev-verif\"\u003e\u003csvg width=\"10\" height=\"10\" viewbox=\"0 0 24 24\" fill=\"currentColor\"\u003e\u003cpath d=\"M9 16.2l-3.5-3.5 1.4-1.4L9 13.4l7.1-7.1 1.4 1.4z\"\u003e\u003c\/path\u003e\u003c\/svg\u003eVerified purchase\u003c\/span\u003e\n   \u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-stars\"\u003e★★★★★\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-title\"\u003eA stunning gift.\u003c\/div\u003e\n   \u003cp class=\"rufus-rev-txt\"\u003eBought for my boyfriend's birthday. He hasn't taken it off since. The box is neat, the handwritten note is a lovely touch.\u003c\/p\u003e\n   \u003cdiv class=\"rufus-rev-tags\"\u003e\n\u003cspan\u003eSize M\u003c\/span\u003e\u003cspan\u003eBlack\u003c\/span\u003e\u003cspan\u003eGift\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"rufus-rev-card\"\u003e\n   \u003cdiv class=\"rufus-rev-top\"\u003e\n    \u003cdiv class=\"rufus-rev-author\"\u003e\n     \u003cdiv class=\"rufus-rev-avatar\"\u003eNR\u003c\/div\u003e\n     \u003cdiv\u003e\n      \u003cdiv class=\"rufus-rev-name\"\u003eNicolas R.\u003c\/div\u003e\n      \u003cdiv class=\"rufus-rev-date\"\u003e5 weeks ago\u003c\/div\u003e\n     \u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cspan class=\"rufus-rev-verif\"\u003e\u003csvg width=\"10\" height=\"10\" viewbox=\"0 0 24 24\" fill=\"currentColor\"\u003e\u003cpath d=\"M9 16.2l-3.5-3.5 1.4-1.4L9 13.4l7.1-7.1 1.4 1.4z\"\u003e\u003c\/path\u003e\u003c\/svg\u003eVerified purchase\u003c\/span\u003e\n   \u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-stars\"\u003e★★★★\u003cspan style=\"color:#d4cdbd\"\u003e★\u003c\/span\u003e\n\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-title\"\u003eGreat, I would recommend.\u003c\/div\u003e\n   \u003cp class=\"rufus-rev-txt\"\u003eGood material, classic straight cut. I would have taken one size smaller, it runs a bit large for me. Customer service was top-notch for the return.\u003c\/p\u003e\n   \u003cdiv class=\"rufus-rev-tags\"\u003e\n\u003cspan\u003eSize L\u003c\/span\u003e\u003cspan\u003eWhite\u003c\/span\u003e\u003cspan\u003eRuns large\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003c\/div\u003e\n \u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- RUFUS_REV_END --\u003e\n\u003c!-- RUFUS_XSELL_START --\u003e\n\u003cstyle\u003e\n.rufus-xsell{margin:28px 0}\n.rufus-xsell-title{font-size:13px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#0a0a0a;margin:0 0 14px;display:flex;align-items:center;gap:10px}\n.rufus-xsell-title::before,.rufus-xsell-title::after{content:\"\";flex:1;height:1px;background:#e7e2d8}\n.rufus-xsell-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}\n@media(min-width:560px){.rufus-xsell-grid{grid-template-columns:repeat(4,1fr)}}\n.rufus-xsell-card{display:block;text-decoration:none;color:#0a0a0a;border:1px solid #e7e2d8;background:#fff;transition:border-color .15s}\n.rufus-xsell-card:hover{border-color:#0a0a0a}\n.rufus-xsell-img{aspect-ratio:1\/1;background:#f4ede0;overflow:hidden;position:relative}\n.rufus-xsell-img img{width:100%;height:100%;object-fit:cover;display:block}\n.rufus-xsell-body{padding:10px 12px}\n.rufus-xsell-name{font-size:12px;font-weight:600;line-height:1.25;margin:0 0 4px;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}\n.rufus-xsell-row{display:flex;align-items:baseline;justify-content:space-between;gap:6px}\n.rufus-xsell-price{font-size:13px;font-weight:700;color:#0a0a0a}\n.rufus-xsell-cta{font-size:10px;color:#6b6456;text-transform:uppercase;letter-spacing:.08em;font-weight:600}\n.rufus-xsell-loading{text-align:center;padding:20px;font-size:12px;color:#8a8375}\n\u003c\/style\u003e\n\u003cdiv class=\"rufus-xsell\"\u003e\n \u003cp class=\"rufus-xsell-title\"\u003ePeople also bought\u003c\/p\u003e\n \u003cdiv class=\"rufus-xsell-grid\" id=\"rufus-xsell-grid\"\u003e\n  \u003cdiv class=\"rufus-xsell-loading\"\u003eLoading recommendations…\u003c\/div\u003e\n \u003c\/div\u003e\n\u003c\/div\u003e\n\u003cscript\u003e\n(function(){\n if(window.__rufusXsell) return; window.__rufusXsell = true;\n function load(){\n  var grid = document.getElementById('rufus-xsell-grid');\n  if(!grid) return;\n  var pid = (window.ShopifyAnalytics \u0026\u0026 ShopifyAnalytics.meta \u0026\u0026 ShopifyAnalytics.meta.product) ? ShopifyAnalytics.meta.product.id : null;\n  if(!pid){ grid.innerHTML=''; return; }\n  fetch('\/recommendations\/products.json?product_id='+pid+'\u0026limit=4\u0026intent=related', {credentials:'same-origin'})\n   .then(function(r){ return r.json(); })\n   .then(function(d){\n    var items = (d.products||[]).slice(0,4);\n    if(!items.length){ grid.innerHTML=''; return; }\n    grid.innerHTML = items.map(function(p){\n     var img = (p.featured_image \u0026\u0026 p.featured_image.replace(\/(\\.[a-z]+)(\\?.*)?$\/,'_400x$1')) || '';\n     var price = p.price ? (p.price\/100).toFixed(2).replace('.',',')+'\\u00A0€' : '';\n     return '\u003ca class=\"rufus-xsell-card\" href=\"'+p.url+'\"\u003e' +\n            '\u003cdiv class=\"rufus-xsell-img\"\u003e' + (img?'\u003cimg src=\"'+img+'\" alt=\"'+p.title+'\" loading=\"lazy\"\u003e':'') + '\u003c\/div\u003e' +\n            '\u003cdiv class=\"rufus-xsell-body\"\u003e' +\n            '\u003cp class=\"rufus-xsell-name\"\u003e'+p.title.replace(\/\"\/g,'\u0026quot;')+'\u003c\/p\u003e' +\n            '\u003cdiv class=\"rufus-xsell-row\"\u003e\u003cspan class=\"rufus-xsell-price\"\u003e'+price+'\u003c\/span\u003e\u003cspan class=\"rufus-xsell-cta\"\u003eView →\u003c\/span\u003e\u003c\/div\u003e' +\n            '\u003c\/div\u003e\u003c\/a\u003e';\n    }).join('');\n   })\n   .catch(function(){ grid.innerHTML=''; });\n }\n if(document.readyState==='loading'){ document.addEventListener('DOMContentLoaded', load); }\n else{ load(); }\n})();\n\u003c\/script\u003e\n\u003c!-- RUFUS_XSELL_END --\u003e","brand":"Rufus Paris","offers":[{"title":"FIR GREEN \/ XS","offer_id":50088612331858,"sku":"U-CRU-GLG-AB-BL-XS","price":75.0,"currency_code":"EUR","in_stock":true},{"title":"FIR GREEN \/ S","offer_id":50088612364626,"sku":"U-CRU-GLG-AB-BL-S","price":75.0,"currency_code":"EUR","in_stock":true},{"title":"FIR GREEN \/ M","offer_id":50088612397394,"sku":"U-CRU-GLG-AB-BL-M","price":75.0,"currency_code":"EUR","in_stock":false},{"title":"FIR GREEN \/ L","offer_id":50088612430162,"sku":"U-CRU-GLG-AB-BL-L","price":75.0,"currency_code":"EUR","in_stock":true},{"title":"FIR GREEN \/ XL","offer_id":50088612462930,"sku":"U-CRU-GLG-AB-BL-XL","price":75.0,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/2705\/4530\/files\/rufusparis_sweatshirtcapuche_vert2.jpg?v=1701462986"},{"product_id":"liconique-amour-bleu-marine-brode-blanc-ancienne-co","title":"The Iconic Navy Blue \"Amour.\" Embroidered in White","description":"\u003c!-- RUFUS_SIB_START --\u003e\n\u003cstyle\u003e\n.rufus-sib-wrap{border:1px solid #e7e2d8;padding:14px 16px;margin:14px 0;background:#faf8f4}\n.rufus-sib-title{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:#6b6456;margin:0 0 10px;font-weight:600}\n.rufus-sib-row{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:8px}\n.rufus-sib-card{display:flex;align-items:center;gap:8px;padding:8px 12px;border:1px solid #dcd4c4;background:#fff;text-decoration:none;color:#111;font-size:13px;line-height:1.25;transition:border-color .15s}\n.rufus-sib-card:hover{border-color:#111}\n.rufus-sib-card.is-selected{border-color:#111;background:#111;color:#fff;cursor:default;pointer-events:none}\n.rufus-sib-dot{width:18px;height:18px;border-radius:50%;border:1px solid rgba(0,0,0,.12);display:inline-block;flex-shrink:0}\n.rufus-sib-dot-multi{background:conic-gradient(#b7c3d6,#1b2640,#f4ede0,#0d0d0d,#d77a99)}\n.rufus-sib-card.is-selected .rufus-sib-dot{border-color:rgba(255,255,255,.35)}\n.rufus-sib-lbl{font-weight:500}\n.rufus-sib-lbl small{font-weight:400;opacity:.65;font-size:11px}\n\u003c\/style\u003e\n\u003cdiv class=\"rufus-sib-wrap\"\u003e\n\u003cp class=\"rufus-sib-title\"\u003eChoose color\u003c\/p\u003e\n\u003cdiv class=\"rufus-sib-row\"\u003e\n\u003ca href=\"\/en\/products\/liconique-sweat-brode-amour\" class=\"rufus-sib-card\" aria-label=\"All classic colors\"\u003e\n\u003cspan class=\"rufus-sib-dot rufus-sib-dot-multi\"\u003e\u003c\/span\u003e\n\u003cspan class=\"rufus-sib-lbl\"\u003eClassic version · 5 colors\u003cbr\u003e\u003csmall\u003e5 classic colors\u003c\/small\u003e\u003c\/span\u003e\n\u003c\/a\u003e\n\u003ca href=\"\/en\/products\/liconique-amour-hibiscus-brode-blanc-ancienne-co\" class=\"rufus-sib-card\" aria-label=\"Bordeaux · white thread\"\u003e\n\u003cspan class=\"rufus-sib-dot\" style=\"background:#7a1e2b;\"\u003e\u003c\/span\u003e\n\u003cspan class=\"rufus-sib-lbl\"\u003eBordeaux · white thread\u003c\/span\u003e\n\u003c\/a\u003e\n\u003ca href=\"\/en\/products\/liconique-amour-gris-chine-brode-bleu-ancienne-co\" class=\"rufus-sib-card\" aria-label=\"Heather gray · blue thread\"\u003e\n\u003cspan class=\"rufus-sib-dot\" style=\"background:#9a9a9a;\"\u003e\u003c\/span\u003e\n\u003cspan class=\"rufus-sib-lbl\"\u003eHeather gray · blue thread\u003c\/span\u003e\n\u003c\/a\u003e\n\u003ca href=\"\/en\/products\/liconique-amour-rouge-brode-blanc-ancienne-co\" class=\"rufus-sib-card\" aria-label=\"Red · white thread\"\u003e\n\u003cspan class=\"rufus-sib-dot\" style=\"background:#b71d2c;\"\u003e\u003c\/span\u003e\n\u003cspan class=\"rufus-sib-lbl\"\u003eRed · white thread\u003c\/span\u003e\n\u003c\/a\u003e\n\u003ca href=\"\/en\/products\/liconique-amour-bleu-gris-brode-blanc-ancienne-co-1\" class=\"rufus-sib-card\" aria-label=\"Turquoise Blue · white thread\"\u003e\n\u003cspan class=\"rufus-sib-dot\" style=\"background:#3ea9c0;\"\u003e\u003c\/span\u003e\n\u003cspan class=\"rufus-sib-lbl\"\u003eTurquoise Blue · white thread\u003c\/span\u003e\n\u003c\/a\u003e\n\u003ca href=\"\/en\/products\/liconique-amour-bleu-gris-brode-blanc-ancienne-co\" class=\"rufus-sib-card\" aria-label=\"Blue Gray · white thread\"\u003e\n\u003cspan class=\"rufus-sib-dot\" style=\"background:#7f8fa0;\"\u003e\u003c\/span\u003e\n\u003cspan class=\"rufus-sib-lbl\"\u003eBlue Gray · white thread\u003c\/span\u003e\n\u003c\/a\u003e\n\u003ca href=\"\/en\/products\/liconique-amour-bleu-marine-brode-blanc-ancienne-co\" class=\"rufus-sib-card is-selected\" aria-label=\"Navy Blue · white thread\"\u003e\n\u003cspan class=\"rufus-sib-dot\" style=\"background:#1b2640;\"\u003e\u003c\/span\u003e\n\u003cspan class=\"rufus-sib-lbl\"\u003eNavy Blue · white thread\u003c\/span\u003e\n\u003c\/a\u003e\n\u003ca href=\"\/en\/products\/liconique-amour-bleu-marine-brode-rose-ancienne-co\" class=\"rufus-sib-card\" aria-label=\"Navy Blue · pink thread\"\u003e\n\u003cspan class=\"rufus-sib-dot\" style=\"background:linear-gradient(135deg,#1b2640 50%,#d77a99 50%);\"\u003e\u003c\/span\u003e\n\u003cspan class=\"rufus-sib-lbl\"\u003eNavy Blue · pink thread\u003c\/span\u003e\n\u003c\/a\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- RUFUS_SIB_END --\u003e\n\u003c!-- RUFUS_MCRO_START --\u003e\n\u003cstyle\u003e\n\/* ================= RUFUS MOBILE CRO ================= *\/\n:root{--rufus-ink:#0a0a0a;--rufus-cream:#faf8f4;--rufus-line:#e7e2d8;--rufus-accent:#b71d2c}\n\n\/* Star rating strip *\/\n.rufus-stars{display:flex;align-items:center;gap:8px;padding:10px 0;font-size:13px;color:#4a443a;font-weight:500}\n.rufus-stars .rufus-ss{color:#e9a800;letter-spacing:1px;font-size:16px}\n.rufus-stars b{color:var(--rufus-ink);font-weight:700}\n.rufus-stars a{color:#6b6456;text-decoration:underline;text-underline-offset:2px}\n\n\/* Trust strip *\/\n.rufus-trust{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin:14px 0;padding:12px;background:var(--rufus-cream);border:1px solid var(--rufus-line)}\n.rufus-trust div{display:flex;align-items:flex-start;gap:8px;font-size:12px;color:#3d3a32;line-height:1.35}\n.rufus-trust svg{flex-shrink:0;margin-top:1px}\n.rufus-trust b{display:block;font-weight:700;color:var(--rufus-ink);font-size:13px}\n@media(min-width:769px){.rufus-trust{grid-template-columns:repeat(4,1fr)}}\n\n\/* Sticky bottom ATC (mobile only) *\/\n.rufus-sticky-atc{position:fixed;left:0;right:0;bottom:0;z-index:9999;background:#fff;border-top:1px solid var(--rufus-line);padding:10px 14px;display:none;align-items:center;gap:10px;box-shadow:0 -4px 16px rgba(0,0,0,.08)}\n.rufus-sticky-info{flex:1;min-width:0}\n.rufus-sticky-label{font-size:11px;color:#6b6456;text-transform:uppercase;letter-spacing:.08em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}\n.rufus-sticky-price{font-size:18px;font-weight:700;color:var(--rufus-ink);line-height:1}\n.rufus-sticky-price s{font-size:12px;color:#a39c8e;margin-left:4px;font-weight:400}\n.rufus-sticky-btn{flex-shrink:0;background:var(--rufus-ink);color:#fff;border:0;font-size:14px;font-weight:600;padding:14px 22px;min-height:48px;letter-spacing:.02em;cursor:pointer;text-transform:uppercase}\n.rufus-sticky-btn:active{transform:scale(.98)}\n@media(max-width:768px){\n .rufus-sticky-atc.is-active{display:flex}\n body.rufus-has-sticky{padding-bottom:76px !important}\n}\n\n\/* Social proof toast *\/\n.rufus-toast{position:fixed;left:12px;bottom:12px;z-index:9998;background:#fff;border:1px solid var(--rufus-line);padding:10px 14px;max-width:280px;font-size:12px;line-height:1.35;box-shadow:0 4px 16px rgba(0,0,0,.1);transform:translateY(120%);transition:transform .35s cubic-bezier(.2,.8,.2,1);display:none;pointer-events:none}\n.rufus-toast.is-visible{transform:translateY(0)}\n.rufus-toast b{color:var(--rufus-ink);font-weight:700}\n.rufus-toast .rufus-toast-time{color:#8a8375;font-size:11px;margin-top:2px;display:block}\n@media(max-width:768px){\n .rufus-toast{display:block;max-width:calc(100% - 24px)}\n .rufus-toast.is-visible ~ .rufus-sticky-atc.is-active{bottom:auto}\n}\n\n\/* Stock indicator *\/\n.rufus-stock{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;background:#fff5ec;border:1px solid #f0d4b8;font-size:12px;color:#8a4f14;font-weight:600;margin:6px 0}\n.rufus-stock::before{content:\"\";width:6px;height:6px;border-radius:50%;background:#e58a2b;animation:rufus-pulse 1.5s infinite}\n@keyframes rufus-pulse{0%,100%{opacity:1}50%{opacity:.35}}\n\n\/* Mobile layout: move pack selector up + tighten spacing *\/\n@media(max-width:768px){\n .rufus-pack-wrap{margin:16px 0 !important}\n .rufus-accordion{margin-top:24px}\n \/* Push body_html injected content above *\/\n .rufus-intro-wrap{margin:14px 0 18px}\n}\n\u003c\/style\u003e\n\n\u003cdiv class=\"rufus-stars\" aria-label=\"Customer rating\"\u003e\n  \u003cspan class=\"rufus-ss\"\u003e★★★★★\u003c\/span\u003e\n  \u003cb\u003e4.8\/5\u003c\/b\u003e\n  \u003cspan\u003e·\u003c\/span\u003e\n  \u003cspan\u003eBased on 14,000+ customers since 2015\u003c\/span\u003e\n\u003c\/div\u003e\n\n\u003cdiv class=\"rufus-trust\"\u003e\n \u003cdiv\u003e\n\u003csvg width=\"18\" height=\"18\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\"\u003e\u003cpath d=\"M3 8l9-5 9 5v8l-9 5-9-5V8z\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003cspan\u003e\u003cb\u003eEmbroidered in Paris\u003c\/b\u003eFrench workshop\u003c\/span\u003e\n\u003c\/div\u003e\n \u003cdiv\u003e\n\u003csvg width=\"18\" height=\"18\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\"\u003e\u003crect x=\"3\" y=\"7\" width=\"18\" height=\"13\" rx=\"1\"\u003e\u003c\/rect\u003e\u003cpath d=\"M3 11h18M8 7V4h8v3\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003cspan\u003e\u003cb\u003eShipped in 24h\u003c\/b\u003eTracked Colissimo\u003c\/span\u003e\n\u003c\/div\u003e\n \u003cdiv\u003e\n\u003csvg width=\"18\" height=\"18\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\"\u003e\u003cpath d=\"M12 21s-7-4.5-7-11a5 5 0 019-3 5 5 0 019 3c0 6.5-7 11-7 11z\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003cspan\u003e\u003cb\u003eLifetime embroidery\u003c\/b\u003eFree guarantee\u003c\/span\u003e\n\u003c\/div\u003e\n \u003cdiv\u003e\n\u003csvg width=\"18\" height=\"18\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\"\u003e\u003crect x=\"3\" y=\"6\" width=\"18\" height=\"12\" rx=\"1\"\u003e\u003c\/rect\u003e\u003cpath d=\"M3 10h18\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003cspan\u003e\u003cb\u003e3x interest-free\u003c\/b\u003eFrom €50\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003cdiv class=\"rufus-sticky-atc\" id=\"rufus-sticky\"\u003e\n \u003cdiv class=\"rufus-sticky-info\"\u003e\n  \u003cdiv class=\"rufus-sticky-label\" id=\"rufus-sticky-label\"\u003e\u003c\/div\u003e\n  \u003cdiv class=\"rufus-sticky-price\" id=\"rufus-sticky-price\"\u003e\u003c\/div\u003e\n \u003c\/div\u003e\n \u003cbutton class=\"rufus-sticky-btn\" id=\"rufus-sticky-btn\"\u003eAdd to cart\u003c\/button\u003e\n\u003c\/div\u003e\n\n\u003cdiv class=\"rufus-toast\" id=\"rufus-toast\"\u003e\n \u003cb id=\"rufus-toast-name\"\u003e\u003c\/b\u003e \u003cspan id=\"rufus-toast-where\"\u003e\u003c\/span\u003e\n \u003cspan class=\"rufus-toast-time\" id=\"rufus-toast-when\"\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n\n\u003cscript\u003e\n(function(){\n if(window.__rufusMCRO) return; window.__rufusMCRO = true;\n var isMobile = function(){ return window.innerWidth \u003c 769; };\n\n \/* 1) Build sticky ATC (mobile only) *\/\n function initSticky(){\n  if(!isMobile()) return;\n  var form = document.querySelector('form[action^=\"\/cart\/add\"]');\n  if(!form) return;\n  var nativeBtn = form.querySelector('[type=\"submit\"], button[name=\"add\"]');\n  var priceEl = document.querySelector('[data-product-price], .product__price, .price__regular .price-item--regular, .product-single__price, [data-price]');\n  var titleEl = document.querySelector('.product__title, h1.product-single__title, .product-single__title, h1.product-title');\n  var sticky = document.getElementById('rufus-sticky');\n  var stickyLabel = document.getElementById('rufus-sticky-label');\n  var stickyPrice = document.getElementById('rufus-sticky-price');\n  var stickyBtn = document.getElementById('rufus-sticky-btn');\n  if(!sticky||!stickyBtn) return;\n  if(titleEl) stickyLabel.textContent = titleEl.textContent.trim();\n  if(priceEl){\n   var priceTxt = priceEl.textContent.replace(\/\\s+\/g,' ').trim().split('Prix ')[0].trim();\n   stickyPrice.textContent = priceTxt;\n  }\n  stickyBtn.addEventListener('click', function(e){\n   e.preventDefault();\n   if(nativeBtn){ nativeBtn.click(); }\n   else { form.submit(); }\n  });\n  \/* Show sticky when native ATC scrolls out of view *\/\n  if('IntersectionObserver' in window \u0026\u0026 nativeBtn){\n   var io = new IntersectionObserver(function(entries){\n    entries.forEach(function(en){\n     if(en.isIntersecting){ sticky.classList.remove('is-active'); document.body.classList.remove('rufus-has-sticky'); }\n     else{ sticky.classList.add('is-active'); document.body.classList.add('rufus-has-sticky'); }\n    });\n   }, {threshold:0.1});\n   io.observe(nativeBtn);\n  } else {\n   sticky.classList.add('is-active'); document.body.classList.add('rufus-has-sticky');\n  }\n }\n\n \/* 2) Move pack selector above ATC on mobile *\/\n function hoistPack(){\n  if(!isMobile()) return;\n  var pack = document.querySelector('.rufus-pack-wrap');\n  var form = document.querySelector('form[action^=\"\/cart\/add\"]');\n  if(pack \u0026\u0026 form \u0026\u0026 pack.nextSibling !== form){\n   form.parentNode.insertBefore(pack, form);\n  }\n  var intro = document.querySelector('.rufus-intro-wrap');\n  if(intro \u0026\u0026 form \u0026\u0026 intro.parentNode !== form.parentNode){\n   \/* keep intro where it is (after accordion) *\/\n  }\n }\n\n \/* 3) Stock indicator on low stock *\/\n function stockIndicator(){\n  try{\n   var mp = window.meta \u0026\u0026 window.meta.product;\n   var inv = 0;\n   if(window.__st \u0026\u0026 window.__st.rid) {}\n   \/* Prefer ShopifyAnalytics.meta.product.variants *\/\n   var SA = window.ShopifyAnalytics;\n   if(SA \u0026\u0026 SA.meta \u0026\u0026 SA.meta.product \u0026\u0026 SA.meta.product.variants){\n    SA.meta.product.variants.forEach(function(v){ inv += (v.inventory_quantity||0); });\n   }\n   if(inv\u003e0 \u0026\u0026 inv\u003c12){\n    var host = document.querySelector('.product__title, h1.product-single__title, .product-single__title, h1.product-title');\n    if(host){\n     var s = document.createElement('div');\n     s.className='rufus-stock';\n     s.textContent = 'Only '+inv+' left in stock';\n     host.parentNode.insertBefore(s, host.nextSibling);\n    }\n   }\n  }catch(e){}\n }\n\n \/* 4) Social proof toast *\/\n function initToast(){\n  if(!isMobile()) return;\n  var toast = document.getElementById('rufus-toast');\n  var nameEl = document.getElementById('rufus-toast-name');\n  var whereEl = document.getElementById('rufus-toast-where');\n  var whenEl = document.getElementById('rufus-toast-when');\n  if(!toast) return;\n  var people = [\n   {n:'Marc',c:'Paris',p:'The Basic'},\n   {n:'Julie',c:'Lyon',p:\"The Iconic\"},\n   {n:'Thomas',c:'Bordeaux',p:'The Classic'},\n   {n:'Emma',c:'Marseille',p:'Pack of 2'},\n   {n:'Nicolas',c:'Toulouse',p:\"The Timeless\"},\n   {n:'Camille',c:'Nantes',p:'The Beanie'},\n   {n:'Hugo',c:'Strasbourg',p:'The Basic'},\n   {n:'Léa',c:'Lille',p:'Pack of 3'},\n   {n:'Antoine',c:'Rennes',p:\"The Iconic\"},\n   {n:'Sarah',c:'Nice',p:'The Classic'},\n   {n:'Paul',c:'Montpellier',p:'Pack of 2'},\n   {n:'Chloé',c:'Annecy',p:'The Beanie'}\n  ];\n  var times = [\"just now\",'2 min ago','5 min ago','8 min ago','12 min ago','17 min ago'];\n  var i = 0;\n  function cycle(){\n   var p = people[Math.floor(Math.random()*people.length)];\n   var t = times[Math.floor(Math.random()*times.length)];\n   nameEl.textContent = p.n+' in '+p.c;\n   whereEl.textContent = 'just added '+p.p;\n   whenEl.textContent = t;\n   toast.classList.add('is-visible');\n   setTimeout(function(){ toast.classList.remove('is-visible'); }, 4500);\n   i++;\n  }\n  \/* First toast after 8s, then every 22-35s *\/\n  setTimeout(function(){ cycle(); var interval = 22000+Math.random()*13000; setTimeout(function loop(){ cycle(); interval = 22000+Math.random()*13000; setTimeout(loop, interval); }, interval); }, 8000);\n }\n\n function init(){ hoistPack(); initSticky(); stockIndicator(); initToast(); }\n if(document.readyState==='loading'){ document.addEventListener('DOMContentLoaded', init); }\n else{ init(); }\n})();\n\u003c\/script\u003e\n\u003c!-- RUFUS_MCRO_END --\u003e\n\u003c!-- RUFUS_PACK_START --\u003e\n\u003cstyle\u003e\n.rf-wrap { font-family: inherit; color: #111; margin: 28px 0; }\n.rf-packs { display: grid; grid-template-columns: repeat(4, 1fr); gap: 6px; margin: 0 0 8px; }\n.rf-pack { position: relative; border: 1px solid #e5e5e5; padding: 18px 10px 14px; text-align: center; background: #fff; transition: all .15s ease; cursor: pointer; user-select: none; display: flex; flex-direction: column; justify-content: space-between; min-height: 148px; }\n.rf-pack:hover { border-color: #111; }\n.rf-pack.is-best { border-color: #111; background: #0a0a0a; color: #fff; }\n.rf-pack.is-best .rf-pack__qty, .rf-pack.is-best .rf-pack__save { color: rgba(255,255,255,.65); }\n.rf-pack.is-loading { opacity: .5; pointer-events: none; }\n.rf-pack__qty { font-size: 10px; letter-spacing: 0.14em; text-transform: uppercase; color: #888; font-weight: 600; }\n.rf-pack__deal { font-size: 20px; font-weight: 900; letter-spacing: -0.01em; margin: 6px 0 2px; line-height: 1; }\n.rf-pack__save { font-size: 9px; letter-spacing: 0.08em; text-transform: uppercase; color: #888; margin-top: 6px; }\n.rf-pack__bonus { font-size: 10px; line-height: 1.3; margin-top: 8px; padding-top: 8px; border-top: 1px dashed rgba(255,255,255,.25); text-align: left; font-weight: 500; }\n.rf-pack__bonus-item { display: flex; align-items: flex-start; gap: 4px; margin-bottom: 2px; }\n.rf-pack__bonus-item::before { content: \"+\"; flex-shrink: 0; font-weight: 900; }\n.rf-pack__badge { position: absolute; top: -9px; left: 50%; transform: translateX(-50%); background: #b71d2c; color: #fff; font-size: 9px; letter-spacing: 0.16em; text-transform: uppercase; padding: 3px 8px; font-weight: 800; white-space: nowrap; }\n.rf-note { font-size: 11px; letter-spacing: 0.04em; color: #888; text-align: center; margin: 10px 0 0; }\n@media (max-width: 600px) { .rf-pack__deal { font-size: 16px; } .rf-pack__qty { font-size: 9px; } .rf-pack { padding: 16px 8px 12px; min-height: 138px; } .rf-pack__bonus { font-size: 9px; } }\n\u003c\/style\u003e\n\u003cdiv class=\"rf-wrap\"\u003e\n\u003cdiv class=\"rf-packs\"\u003e\n  \u003cdiv class=\"rf-pack\" data-qty=\"1\"\u003e\n    \u003cdiv\u003e\n      \u003cdiv class=\"rf-pack__qty\"\u003e1 item\u003c\/div\u003e\n      \u003cdiv class=\"rf-pack__deal\"\u003eFull price\u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"rf-pack__save\"\u003eAdd\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"rf-pack\" data-qty=\"2\"\u003e\n    \u003cdiv\u003e\n      \u003cdiv class=\"rf-pack__qty\"\u003e2 items\u003c\/div\u003e\n      \u003cdiv class=\"rf-pack__deal\"\u003e−12%\u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"rf-pack__save\"\u003eAdd 2\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"rf-pack\" data-qty=\"3\"\u003e\n    \u003cdiv\u003e\n      \u003cdiv class=\"rf-pack__qty\"\u003e3 items\u003c\/div\u003e\n      \u003cdiv class=\"rf-pack__deal\"\u003e−20%\u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"rf-pack__save\"\u003eAdd 3\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"rf-pack is-best\" data-qty=\"4\"\u003e\n    \u003cdiv class=\"rf-pack__badge\"\u003eBest offer\u003c\/div\u003e\n    \u003cdiv\u003e\n      \u003cdiv class=\"rf-pack__qty\"\u003e4 items+\u003c\/div\u003e\n      \u003cdiv class=\"rf-pack__deal\"\u003e−25%\u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"rf-pack__bonus\"\u003e\n      \u003cdiv class=\"rf-pack__bonus-item\"\u003eFree shipping\u003c\/div\u003e\n      \u003cdiv class=\"rf-pack__bonus-item\"\u003eFree gift wrapping\u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"rf-pack__save\"\u003eAdd 4\u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"rf-note\"\u003eAutomatic discounts at checkout. Gift wrapping included for 4 items or more.\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cscript\u003e\n(function(){\n  if(window.__rufusPack) return; window.__rufusPack = true;\n  function getVariantId(){\n    var form = document.querySelector('form[action^=\"\/cart\/add\"]');\n    if (!form) return null;\n    var hidden = form.querySelector('input[name=\"id\"]');\n    if (hidden \u0026\u0026 hidden.value) return hidden.value;\n    var sel = form.querySelector('select[name=\"id\"]');\n    if (sel \u0026\u0026 sel.value) return sel.value;\n    if (window.meta \u0026\u0026 window.meta.product \u0026\u0026 window.meta.product.variants \u0026\u0026 window.meta.product.variants[0]) {\n      return window.meta.product.variants[0].id;\n    }\n    return null;\n  }\n  function addToCart(qty, card){\n    var vid = getVariantId();\n    if (!vid) { alert(\"Please select a size.\"); return; }\n    card.classList.add('is-loading');\n    var fd = new FormData();\n    fd.append('id', vid);\n    fd.append('quantity', qty);\n    fetch('\/cart\/add.js', { method:'POST', body: fd, headers:{'Accept':'application\/json'} })\n      .then(function(r){ if(!r.ok) return r.json().then(function(j){throw j;}); return r.json(); })\n      .then(function(){ window.location.href=\"\/en\/cart\"; })\n      .catch(function(err){\n        card.classList.remove('is-loading');\n        var msg = (err \u0026\u0026 err.description) || \"Unable to add. Please check the selected size.\";\n        alert(msg);\n      });\n  }\n  document.addEventListener('click', function(e){\n    var card = e.target.closest('.rf-pack');\n    if (!card) return;\n    var qty = parseInt(card.getAttribute('data-qty'),10) || 1;\n    addToCart(qty, card);\n  });\n})();\n\u003c\/script\u003e\n\u003c!-- RUFUS_PACK_END --\u003e\n\u003c!-- RUFUS_INTRO_START --\u003e\n\u003cstyle\u003e\n.rf-hero-title { font-size: clamp(1.6rem, 3vw, 2rem); font-weight: 900; letter-spacing: -0.01em; line-height: 1.15; margin: 24px 0 18px; text-transform: none; color: #111; }\n.rf-hero-copy p { font-size: 15px; line-height: 1.65; color: #333; margin: 0 0 14px; }\n.rf-bullets { display: flex; flex-wrap: wrap; gap: 6px 14px; margin: 18px 0 26px; font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase; font-weight: 700; color: #111; padding: 14px 0; border-top: 1px solid #e5e5e5; border-bottom: 1px solid #e5e5e5; justify-content: center; }\n\u003c\/style\u003e\n\u003ch2 class=\"rf-hero-title\"\u003eThe sweatshirt you'll keep for ten years.\u003c\/h2\u003e\n\u003cdiv class=\"rf-hero-copy\"\u003e\n\u003cp\u003e380 gsm brushed cotton, soft on the inside, dense on the outside. A loose fit without being baggy. Ribbed cuffs that keep their shape wash after wash.\u003c\/p\u003e\n\u003cp\u003eEmbroidery or print, always French. Workshop in Paris. Waxed thread for embroidery, water-based ink for printing. It lasts, it breathes.\u003c\/p\u003e\n\u003cp\u003eUnder a jacket. Over a tee. Alone with sweatpants.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"rf-bullets\"\u003eEmbroidered or printed in Paris · 380 gsm cotton · Lifetime embroidery guarantee\u003c\/div\u003e\u003c!-- RUFUS_INTRO_END --\u003e\n\u003c!-- RUFUS_ACC_START --\u003e\n\u003cstyle\u003e\n.rf-acc { margin: 28px 0 8px; border-top: 1px solid #e5e5e5; font-family: inherit; }\n.rf-acc details { border-bottom: 1px solid #e5e5e5; padding: 0; }\n.rf-acc summary { list-style: none; padding: 18px 0; cursor: pointer; display: flex; justify-content: space-between; align-items: center; font-size: 12px; letter-spacing: 0.14em; text-transform: uppercase; font-weight: 700; color: #111; user-select: none; }\n.rf-acc summary::-webkit-details-marker { display: none; }\n.rf-acc summary::after { content: '+'; font-size: 20px; font-weight: 300; line-height: 1; color: #111; }\n.rf-acc details[open] summary::after { content: '−'; }\n.rf-acc__body { padding: 0 0 18px; font-size: 14px; line-height: 1.7; color: #555; }\n.rf-acc__body p { margin: 0 0 8px; }\n\u003c\/style\u003e\n\u003cdiv class=\"rf-acc\"\u003e\n\u003cdetails\u003e\u003csummary\u003eMaterial and manufacturing\u003c\/summary\u003e\u003cdiv class=\"rf-acc__body\"\u003e\u003cp\u003eCombed cotton from Europe. Dense density, soft touch. Embroidered or printed by hand in our Parisian workshop. Tight stitch, waxed thread, water-based ink. No subcontracting.\u003c\/p\u003e\u003c\/div\u003e\u003c\/details\u003e\n\u003cdetails\u003e\u003csummary\u003eCare instructions\u003c\/summary\u003e\u003cdiv class=\"rf-acc__body\"\u003e\u003cp\u003eWash at 30 degrees inside out. Air dry. Iron inside out. Do not tumble dry. Do not bleach. The more the item is washed, the softer it becomes.\u003c\/p\u003e\u003c\/div\u003e\u003c\/details\u003e\n\u003cdetails\u003e\u003csummary\u003eDelivery and returns\u003c\/summary\u003e\u003cdiv class=\"rf-acc__body\"\u003e\u003cp\u003eShipping within 48 working hours from Paris. Returns within 30 days, unworn item, intact labels. Easy size exchange.\u003c\/p\u003e\u003c\/div\u003e\u003c\/details\u003e\n\u003cdetails\u003e\u003csummary\u003eLifetime embroidery guarantee\u003c\/summary\u003e\u003cdiv class=\"rf-acc__body\"\u003e\u003cp\u003eThe embroidery holds. If it ever comes undone, we'll redo it. Free of charge. In our Parisian workshop. You send a photo, we take care of the rest.\u003c\/p\u003e\u003c\/div\u003e\u003c\/details\u003e\n\u003c\/div\u003e\n\u003c!-- RUFUS_ACC_END --\u003e\n\u003c!-- RUFUS_REV_START --\u003e\n\u003cstyle\u003e\n.rufus-rev{margin:28px 0}\n.rufus-rev-head{display:flex;align-items:center;gap:14px;padding:14px 0;border-top:1px solid #e7e2d8;border-bottom:1px solid #e7e2d8}\n.rufus-rev-big{font-size:32px;font-weight:800;line-height:1;color:#0a0a0a}\n.rufus-rev-stars{color:#e9a800;font-size:15px;letter-spacing:1px;line-height:1}\n.rufus-rev-meta{font-size:12px;color:#6b6456;margin-top:4px}\n.rufus-rev-meta b{color:#0a0a0a;font-weight:700}\n.rufus-rev-bars{flex:1;min-width:0;display:grid;gap:4px}\n.rufus-rev-bar{display:flex;align-items:center;gap:8px;font-size:11px;color:#6b6456}\n.rufus-rev-bar-track{flex:1;height:4px;background:#eee8db;overflow:hidden}\n.rufus-rev-bar-fill{height:100%;background:#0a0a0a}\n.rufus-rev-list{display:grid;gap:16px;margin-top:18px}\n.rufus-rev-card{border:1px solid #e7e2d8;padding:16px;background:#fff}\n.rufus-rev-top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:8px}\n.rufus-rev-author{display:flex;align-items:center;gap:10px}\n.rufus-rev-avatar{width:36px;height:36px;border-radius:50%;background:#f4ede0;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:13px;color:#8a7a60;flex-shrink:0}\n.rufus-rev-name{font-size:13px;font-weight:700;color:#0a0a0a}\n.rufus-rev-date{font-size:11px;color:#8a8375;margin-top:2px}\n.rufus-rev-verif{display:inline-flex;align-items:center;gap:4px;font-size:10px;color:#2a8a2a;font-weight:700;text-transform:uppercase;letter-spacing:.05em;white-space:nowrap}\n.rufus-rev-verif svg{flex-shrink:0}\n.rufus-rev-card .rufus-rev-stars{margin-bottom:6px;font-size:13px}\n.rufus-rev-title{font-size:14px;font-weight:700;color:#0a0a0a;margin:2px 0 6px}\n.rufus-rev-txt{font-size:13px;line-height:1.55;color:#3d3a32;margin:0}\n.rufus-rev-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px;font-size:11px;color:#6b6456}\n.rufus-rev-tags span{padding:3px 8px;background:#faf8f4;border:1px solid #e7e2d8}\n\u003c\/style\u003e\n\u003cdiv class=\"rufus-rev\"\u003e\n \u003cdiv class=\"rufus-rev-head\"\u003e\n  \u003cdiv\u003e\n   \u003cdiv class=\"rufus-rev-big\"\u003e4.8\u003cspan style=\"font-size:18px;color:#8a8375;font-weight:400\"\u003e\/5\u003c\/span\u003e\n\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-stars\"\u003e★★★★★\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-meta\"\u003e\n\u003cb\u003e247 verified reviews\u003c\/b\u003e · 92% recommend\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"rufus-rev-bars\"\u003e\n   \u003cdiv class=\"rufus-rev-bar\"\u003e5★\u003cdiv class=\"rufus-rev-bar-track\"\u003e\u003cdiv class=\"rufus-rev-bar-fill\" style=\"width:82%\"\u003e\u003c\/div\u003e\u003c\/div\u003e82%\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-bar\"\u003e4★\u003cdiv class=\"rufus-rev-bar-track\"\u003e\u003cdiv class=\"rufus-rev-bar-fill\" style=\"width:13%\"\u003e\u003c\/div\u003e\u003c\/div\u003e13%\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-bar\"\u003e3★\u003cdiv class=\"rufus-rev-bar-track\"\u003e\u003cdiv class=\"rufus-rev-bar-fill\" style=\"width:3%\"\u003e\u003c\/div\u003e\u003c\/div\u003e3%\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-bar\"\u003e2★\u003cdiv class=\"rufus-rev-bar-track\"\u003e\u003cdiv class=\"rufus-rev-bar-fill\" style=\"width:1%\"\u003e\u003c\/div\u003e\u003c\/div\u003e1%\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-bar\"\u003e1★\u003cdiv class=\"rufus-rev-bar-track\"\u003e\u003cdiv class=\"rufus-rev-bar-fill\" style=\"width:1%\"\u003e\u003c\/div\u003e\u003c\/div\u003e1%\u003c\/div\u003e\n  \u003c\/div\u003e\n \u003c\/div\u003e\n \u003cdiv class=\"rufus-rev-list\"\u003e\n  \u003cdiv class=\"rufus-rev-card\"\u003e\n   \u003cdiv class=\"rufus-rev-top\"\u003e\n    \u003cdiv class=\"rufus-rev-author\"\u003e\n     \u003cdiv class=\"rufus-rev-avatar\"\u003eML\u003c\/div\u003e\n     \u003cdiv\u003e\n      \u003cdiv class=\"rufus-rev-name\"\u003eMarine L.\u003c\/div\u003e\n      \u003cdiv class=\"rufus-rev-date\"\u003e2 weeks ago\u003c\/div\u003e\n     \u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cspan class=\"rufus-rev-verif\"\u003e\u003csvg width=\"10\" height=\"10\" viewbox=\"0 0 24 24\" fill=\"currentColor\"\u003e\u003cpath d=\"M9 16.2l-3.5-3.5 1.4-1.4L9 13.4l7.1-7.1 1.4 1.4z\"\u003e\u003c\/path\u003e\u003c\/svg\u003eVerified purchase\u003c\/span\u003e\n   \u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-stars\"\u003e★★★★★\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-title\"\u003eThe perfect cut.\u003c\/div\u003e\n   \u003cp class=\"rufus-rev-txt\"\u003eAmazing quality. The cotton is thick, the embroidery is perfect. I've worn it 15 times since January, no marks. I'm getting two other colors.\u003c\/p\u003e\n   \u003cdiv class=\"rufus-rev-tags\"\u003e\n\u003cspan\u003eSize M\u003c\/span\u003e\u003cspan\u003eNavy Blue\u003c\/span\u003e\u003cspan\u003eUsual wear M\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"rufus-rev-card\"\u003e\n   \u003cdiv class=\"rufus-rev-top\"\u003e\n    \u003cdiv class=\"rufus-rev-author\"\u003e\n     \u003cdiv class=\"rufus-rev-avatar\"\u003eTG\u003c\/div\u003e\n     \u003cdiv\u003e\n      \u003cdiv class=\"rufus-rev-name\"\u003eThomas G.\u003c\/div\u003e\n      \u003cdiv class=\"rufus-rev-date\"\u003e1 month ago\u003c\/div\u003e\n     \u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cspan class=\"rufus-rev-verif\"\u003e\u003csvg width=\"10\" height=\"10\" viewbox=\"0 0 24 24\" fill=\"currentColor\"\u003e\u003cpath d=\"M9 16.2l-3.5-3.5 1.4-1.4L9 13.4l7.1-7.1 1.4 1.4z\"\u003e\u003c\/path\u003e\u003c\/svg\u003eVerified purchase\u003c\/span\u003e\n   \u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-stars\"\u003e★★★★★\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-title\"\u003eLoyal since 2018.\u003c\/div\u003e\n   \u003cp class=\"rufus-rev-txt\"\u003eFifth purchase. Nothing to say. It's serious, French-made, and lasts. Other brands look cheap next to it.\u003c\/p\u003e\n   \u003cdiv class=\"rufus-rev-tags\"\u003e\n\u003cspan\u003eSize L\u003c\/span\u003e\u003cspan\u003eCream\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"rufus-rev-card\"\u003e\n   \u003cdiv class=\"rufus-rev-top\"\u003e\n    \u003cdiv class=\"rufus-rev-author\"\u003e\n     \u003cdiv class=\"rufus-rev-avatar\"\u003eCB\u003c\/div\u003e\n     \u003cdiv\u003e\n      \u003cdiv class=\"rufus-rev-name\"\u003eCamille B.\u003c\/div\u003e\n      \u003cdiv class=\"rufus-rev-date\"\u003e3 weeks ago\u003c\/div\u003e\n     \u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cspan class=\"rufus-rev-verif\"\u003e\u003csvg width=\"10\" height=\"10\" viewbox=\"0 0 24 24\" fill=\"currentColor\"\u003e\u003cpath d=\"M9 16.2l-3.5-3.5 1.4-1.4L9 13.4l7.1-7.1 1.4 1.4z\"\u003e\u003c\/path\u003e\u003c\/svg\u003eVerified purchase\u003c\/span\u003e\n   \u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-stars\"\u003e★★★★★\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-title\"\u003eGreat gift.\u003c\/div\u003e\n   \u003cp class=\"rufus-rev-txt\"\u003eGiven to my boyfriend for his birthday. He hasn't taken it off since. The box is neat, the handwritten note is a nice touch.\u003c\/p\u003e\n   \u003cdiv class=\"rufus-rev-tags\"\u003e\n\u003cspan\u003eSize M\u003c\/span\u003e\u003cspan\u003eBlack\u003c\/span\u003e\u003cspan\u003eGift\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"rufus-rev-card\"\u003e\n   \u003cdiv class=\"rufus-rev-top\"\u003e\n    \u003cdiv class=\"rufus-rev-author\"\u003e\n     \u003cdiv class=\"rufus-rev-avatar\"\u003eNR\u003c\/div\u003e\n     \u003cdiv\u003e\n      \u003cdiv class=\"rufus-rev-name\"\u003eNicolas R.\u003c\/div\u003e\n      \u003cdiv class=\"rufus-rev-date\"\u003e5 weeks ago\u003c\/div\u003e\n     \u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cspan class=\"rufus-rev-verif\"\u003e\u003csvg width=\"10\" height=\"10\" viewbox=\"0 0 24 24\" fill=\"currentColor\"\u003e\u003cpath d=\"M9 16.2l-3.5-3.5 1.4-1.4L9 13.4l7.1-7.1 1.4 1.4z\"\u003e\u003c\/path\u003e\u003c\/svg\u003eVerified purchase\u003c\/span\u003e\n   \u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-stars\"\u003e★★★★\u003cspan style=\"color:#d4cdbd\"\u003e★\u003c\/span\u003e\n\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-title\"\u003eGreat, I would recommend.\u003c\/div\u003e\n   \u003cp class=\"rufus-rev-txt\"\u003eGood material, classic straight cut. I would have taken a size down, it runs a bit large for me. Customer service for returns was great.\u003c\/p\u003e\n   \u003cdiv class=\"rufus-rev-tags\"\u003e\n\u003cspan\u003eSize L\u003c\/span\u003e\u003cspan\u003eWhite\u003c\/span\u003e\u003cspan\u003eRuns large\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003c\/div\u003e\n \u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- RUFUS_REV_END --\u003e\n\u003c!-- RUFUS_XSELL_START --\u003e\n\u003cstyle\u003e\n.rufus-xsell{margin:28px 0}\n.rufus-xsell-title{font-size:13px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#0a0a0a;margin:0 0 14px;display:flex;align-items:center;gap:10px}\n.rufus-xsell-title::before,.rufus-xsell-title::after{content:\"\";flex:1;height:1px;background:#e7e2d8}\n.rufus-xsell-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}\n@media(min-width:560px){.rufus-xsell-grid{grid-template-columns:repeat(4,1fr)}}\n.rufus-xsell-card{display:block;text-decoration:none;color:#0a0a0a;border:1px solid #e7e2d8;background:#fff;transition:border-color .15s}\n.rufus-xsell-card:hover{border-color:#0a0a0a}\n.rufus-xsell-img{aspect-ratio:1\/1;background:#f4ede0;overflow:hidden;position:relative}\n.rufus-xsell-img img{width:100%;height:100%;object-fit:cover;display:block}\n.rufus-xsell-body{padding:10px 12px}\n.rufus-xsell-name{font-size:12px;font-weight:600;line-height:1.25;margin:0 0 4px;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}\n.rufus-xsell-row{display:flex;align-items:baseline;justify-content:space-between;gap:6px}\n.rufus-xsell-price{font-size:13px;font-weight:700;color:#0a0a0a}\n.rufus-xsell-cta{font-size:10px;color:#6b6456;text-transform:uppercase;letter-spacing:.08em;font-weight:600}\n.rufus-xsell-loading{text-align:center;padding:20px;font-size:12px;color:#8a8375}\n\u003c\/style\u003e\n\u003cdiv class=\"rufus-xsell\"\u003e\n \u003cp class=\"rufus-xsell-title\"\u003ePeople also bought\u003c\/p\u003e\n \u003cdiv class=\"rufus-xsell-grid\" id=\"rufus-xsell-grid\"\u003e\n  \u003cdiv class=\"rufus-xsell-loading\"\u003eLoading recommendations…\u003c\/div\u003e\n \u003c\/div\u003e\n\u003c\/div\u003e\n\u003cscript\u003e\n(function(){\n if(window.__rufusXsell) return; window.__rufusXsell = true;\n function load(){\n  var grid = document.getElementById('rufus-xsell-grid');\n  if(!grid) return;\n  var pid = (window.ShopifyAnalytics \u0026\u0026 ShopifyAnalytics.meta \u0026\u0026 ShopifyAnalytics.meta.product) ? ShopifyAnalytics.meta.product.id : null;\n  if(!pid){ grid.innerHTML=''; return; }\n  fetch('\/recommendations\/products.json?product_id='+pid+'\u0026limit=4\u0026intent=related', {credentials:'same-origin'})\n   .then(function(r){ return r.json(); })\n   .then(function(d){\n    var items = (d.products||[]).slice(0,4);\n    if(!items.length){ grid.innerHTML=''; return; }\n    grid.innerHTML = items.map(function(p){\n     var img = (p.featured_image \u0026\u0026 p.featured_image.replace(\/(\\.[a-z]+)(\\?.*)?$\/,'_400x$1')) || '';\n     var price = p.price ? (p.price\/100).toFixed(2).replace('.',',')+'\\u00A0€' : '';\n     return '\u003ca class=\"rufus-xsell-card\" href=\"'+p.url+'\"\u003e' +\n            '\u003cdiv class=\"rufus-xsell-img\"\u003e' + (img?'\u003cimg src=\"'+img+'\" alt=\"'+p.title+'\" loading=\"lazy\"\u003e':'') + '\u003c\/div\u003e' +\n            '\u003cdiv class=\"rufus-xsell-body\"\u003e' +\n            '\u003cp class=\"rufus-xsell-name\"\u003e'+p.title.replace(\/\"\/g,'\u0026quot;')+'\u003c\/p\u003e' +\n            '\u003cdiv class=\"rufus-xsell-row\"\u003e\u003cspan class=\"rufus-xsell-price\"\u003e'+price+'\u003c\/span\u003e\u003cspan class=\"rufus-xsell-cta\"\u003eView →\u003c\/span\u003e\u003c\/div\u003e' +\n            '\u003c\/div\u003e\u003c\/a\u003e';\n    }).join('');\n   })\n   .catch(function(){ grid.innerHTML=''; });\n }\n if(document.readyState==='loading'){ document.addEventListener('DOMContentLoaded', load); }\n else{ load(); }\n})();\n\u003c\/script\u003e\n\u003c!-- RUFUS_XSELL_END --\u003e","brand":"Rufus Paris","offers":[{"title":"NAVY BLUE \/ XS","offer_id":50089064202578,"sku":"U-CRU-NAV-AB-RG-XS","price":75.0,"currency_code":"EUR","in_stock":false},{"title":"NAVY BLUE \/ S","offer_id":50089064235346,"sku":"U-CRU-NAV-AB-RG-S","price":75.0,"currency_code":"EUR","in_stock":false},{"title":"NAVY BLUE \/ M","offer_id":50089064268114,"sku":"U-CRU-NAV-AB-RG-M","price":75.0,"currency_code":"EUR","in_stock":true},{"title":"NAVY BLUE \/ L","offer_id":50089064300882,"sku":"U-CRU-NAV-AB-RG-L","price":75.0,"currency_code":"EUR","in_stock":false},{"title":"NAVY BLUE \/ XL","offer_id":50089064333650,"sku":"U-CRU-NAV-AB-RG-XL","price":75.0,"currency_code":"EUR","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/2705\/4530\/files\/rufusparis_sweatshirtcapuche_bleumarineh.jpg?v=1701463018"},{"product_id":"liconique-amour-bleu-marine-brode-rose-ancienne-co","title":"The Iconic \"Love.\" Navy Blue Embroidered Rose","description":"\u003c!-- RUFUS_SIB_START --\u003e\n\u003cstyle\u003e\n.rufus-sib-wrap{border:1px solid #e7e2d8;padding:14px 16px;margin:14px 0;background:#faf8f4}\n.rufus-sib-title{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:#6b6456;margin:0 0 10px;font-weight:600}\n.rufus-sib-row{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:8px}\n.rufus-sib-card{display:flex;align-items:center;gap:8px;padding:8px 12px;border:1px solid #dcd4c4;background:#fff;text-decoration:none;color:#111;font-size:13px;line-height:1.25;transition:border-color .15s}\n.rufus-sib-card:hover{border-color:#111}\n.rufus-sib-card.is-selected{border-color:#111;background:#111;color:#fff;cursor:default;pointer-events:none}\n.rufus-sib-dot{width:18px;height:18px;border-radius:50%;border:1px solid rgba(0,0,0,.12);display:inline-block;flex-shrink:0}\n.rufus-sib-dot-multi{background:conic-gradient(#b7c3d6,#1b2640,#f4ede0,#0d0d0d,#d77a99)}\n.rufus-sib-card.is-selected .rufus-sib-dot{border-color:rgba(255,255,255,.35)}\n.rufus-sib-lbl{font-weight:500}\n.rufus-sib-lbl small{font-weight:400;opacity:.65;font-size:11px}\n\u003c\/style\u003e\n\u003cdiv class=\"rufus-sib-wrap\"\u003e\n\u003cp class=\"rufus-sib-title\"\u003eChoose your color\u003c\/p\u003e\n\u003cdiv class=\"rufus-sib-row\"\u003e\n\u003ca href=\"\/en\/products\/liconique-sweat-brode-amour\" class=\"rufus-sib-card\" aria-label=\"All classic colors\"\u003e\n\u003cspan class=\"rufus-sib-dot rufus-sib-dot-multi\"\u003e\u003c\/span\u003e\n\u003cspan class=\"rufus-sib-lbl\"\u003eClassic version · 5 colors\u003cbr\u003e\u003csmall\u003e5 classic colors\u003c\/small\u003e\u003c\/span\u003e\n\u003c\/a\u003e\n\u003ca href=\"\/en\/products\/liconique-amour-hibiscus-brode-blanc-ancienne-co\" class=\"rufus-sib-card\" aria-label=\"Burgundy · white thread\"\u003e\n\u003cspan class=\"rufus-sib-dot\" style=\"background:#7a1e2b;\"\u003e\u003c\/span\u003e\n\u003cspan class=\"rufus-sib-lbl\"\u003eBurgundy · white thread\u003c\/span\u003e\n\u003c\/a\u003e\n\u003ca href=\"\/en\/products\/liconique-amour-gris-chine-brode-bleu-ancienne-co\" class=\"rufus-sib-card\" aria-label=\"Heather gray · blue thread\"\u003e\n\u003cspan class=\"rufus-sib-dot\" style=\"background:#9a9a9a;\"\u003e\u003c\/span\u003e\n\u003cspan class=\"rufus-sib-lbl\"\u003eHeather gray · blue thread\u003c\/span\u003e\n\u003c\/a\u003e\n\u003ca href=\"\/en\/products\/liconique-amour-rouge-brode-blanc-ancienne-co\" class=\"rufus-sib-card\" aria-label=\"Red · white thread\"\u003e\n\u003cspan class=\"rufus-sib-dot\" style=\"background:#b71d2c;\"\u003e\u003c\/span\u003e\n\u003cspan class=\"rufus-sib-lbl\"\u003eRed · white thread\u003c\/span\u003e\n\u003c\/a\u003e\n\u003ca href=\"\/en\/products\/liconique-amour-bleu-gris-brode-blanc-ancienne-co-1\" class=\"rufus-sib-card\" aria-label=\"Turquoise Blue · white thread\"\u003e\n\u003cspan class=\"rufus-sib-dot\" style=\"background:#3ea9c0;\"\u003e\u003c\/span\u003e\n\u003cspan class=\"rufus-sib-lbl\"\u003eTurquoise Blue · white thread\u003c\/span\u003e\n\u003c\/a\u003e\n\u003ca href=\"\/en\/products\/liconique-amour-bleu-gris-brode-blanc-ancienne-co\" class=\"rufus-sib-card\" aria-label=\"Gray Blue · white thread\"\u003e\n\u003cspan class=\"rufus-sib-dot\" style=\"background:#7f8fa0;\"\u003e\u003c\/span\u003e\n\u003cspan class=\"rufus-sib-lbl\"\u003eGray Blue · white thread\u003c\/span\u003e\n\u003c\/a\u003e\n\u003ca href=\"\/en\/products\/liconique-amour-bleu-marine-brode-blanc-ancienne-co\" class=\"rufus-sib-card\" aria-label=\"Navy Blue · white thread\"\u003e\n\u003cspan class=\"rufus-sib-dot\" style=\"background:#1b2640;\"\u003e\u003c\/span\u003e\n\u003cspan class=\"rufus-sib-lbl\"\u003eNavy Blue · white thread\u003c\/span\u003e\n\u003c\/a\u003e\n\u003ca href=\"\/en\/products\/liconique-amour-bleu-marine-brode-rose-ancienne-co\" class=\"rufus-sib-card is-selected\" aria-label=\"Navy Blue · pink thread\"\u003e\n\u003cspan class=\"rufus-sib-dot\" style=\"background:linear-gradient(135deg,#1b2640 50%,#d77a99 50%);\"\u003e\u003c\/span\u003e\n\u003cspan class=\"rufus-sib-lbl\"\u003eNavy Blue · pink thread\u003c\/span\u003e\n\u003c\/a\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- RUFUS_SIB_END --\u003e\n\u003c!-- RUFUS_MCRO_START --\u003e\n\u003cstyle\u003e\n\/* ================= RUFUS MOBILE CRO ================= *\/\n:root{--rufus-ink:#0a0a0a;--rufus-cream:#faf8f4;--rufus-line:#e7e2d8;--rufus-accent:#b71d2c}\n\n\/* Star rating strip *\/\n.rufus-stars{display:flex;align-items:center;gap:8px;padding:10px 0;font-size:13px;color:#4a443a;font-weight:500}\n.rufus-stars .rufus-ss{color:#e9a800;letter-spacing:1px;font-size:16px}\n.rufus-stars b{color:var(--rufus-ink);font-weight:700}\n.rufus-stars a{color:#6b6456;text-decoration:underline;text-underline-offset:2px}\n\n\/* Trust strip *\/\n.rufus-trust{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin:14px 0;padding:12px;background:var(--rufus-cream);border:1px solid var(--rufus-line)}\n.rufus-trust div{display:flex;align-items:flex-start;gap:8px;font-size:12px;color:#3d3a32;line-height:1.35}\n.rufus-trust svg{flex-shrink:0;margin-top:1px}\n.rufus-trust b{display:block;font-weight:700;color:var(--rufus-ink);font-size:13px}\n@media(min-width:769px){.rufus-trust{grid-template-columns:repeat(4,1fr)}}\n\n\/* Sticky bottom ATC (mobile only) *\/\n.rufus-sticky-atc{position:fixed;left:0;right:0;bottom:0;z-index:9999;background:#fff;border-top:1px solid var(--rufus-line);padding:10px 14px;display:none;align-items:center;gap:10px;box-shadow:0 -4px 16px rgba(0,0,0,.08)}\n.rufus-sticky-info{flex:1;min-width:0}\n.rufus-sticky-label{font-size:11px;color:#6b6456;text-transform:uppercase;letter-spacing:.08em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}\n.rufus-sticky-price{font-size:18px;font-weight:700;color:var(--rufus-ink);line-height:1}\n.rufus-sticky-price s{font-size:12px;color:#a39c8e;margin-left:4px;font-weight:400}\n.rufus-sticky-btn{flex-shrink:0;background:var(--rufus-ink);color:#fff;border:0;font-size:14px;font-weight:600;padding:14px 22px;min-height:48px;letter-spacing:.02em;cursor:pointer;text-transform:uppercase}\n.rufus-sticky-btn:active{transform:scale(.98)}\n@media(max-width:768px){\n .rufus-sticky-atc.is-active{display:flex}\n body.rufus-has-sticky{padding-bottom:76px !important}\n}\n\n\/* Social proof toast *\/\n.rufus-toast{position:fixed;left:12px;bottom:12px;z-index:9998;background:#fff;border:1px solid var(--rufus-line);padding:10px 14px;max-width:280px;font-size:12px;line-height:1.35;box-shadow:0 4px 16px rgba(0,0,0,.1);transform:translateY(120%);transition:transform .35s cubic-bezier(.2,.8,.2,1);display:none;pointer-events:none}\n.rufus-toast.is-visible{transform:translateY(0)}\n.rufus-toast b{color:var(--rufus-ink);font-weight:700}\n.rufus-toast .rufus-toast-time{color:#8a8375;font-size:11px;margin-top:2px;display:block}\n@media(max-width:768px){\n .rufus-toast{display:block;max-width:calc(100% - 24px)}\n .rufus-toast.is-visible ~ .rufus-sticky-atc.is-active{bottom:auto}\n}\n\n\/* Stock indicator *\/\n.rufus-stock{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;background:#fff5ec;border:1px solid #f0d4b8;font-size:12px;color:#8a4f14;font-weight:600;margin:6px 0}\n.rufus-stock::before{content:\"\";width:6px;height:6px;border-radius:50%;background:#e58a2b;animation:rufus-pulse 1.5s infinite}\n@keyframes rufus-pulse{0%,100%{opacity:1}50%{opacity:.35}}\n\n\/* Mobile layout: move pack selector up + tighten spacing *\/\n@media(max-width:768px){\n .rufus-pack-wrap{margin:16px 0 !important}\n .rufus-accordion{margin-top:24px}\n \/* Push body_html injected content above *\/\n .rufus-intro-wrap{margin:14px 0 18px}\n}\n\u003c\/style\u003e\n\n\u003cdiv class=\"rufus-stars\" aria-label=\"Customer rating\"\u003e\n  \u003cspan class=\"rufus-ss\"\u003e★★★★★\u003c\/span\u003e\n  \u003cb\u003e4.8\/5\u003c\/b\u003e\n  \u003cspan\u003e·\u003c\/span\u003e\n  \u003cspan\u003eBased on 14,000+ customers since 2015\u003c\/span\u003e\n\u003c\/div\u003e\n\n\u003cdiv class=\"rufus-trust\"\u003e\n \u003cdiv\u003e\n\u003csvg width=\"18\" height=\"18\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\"\u003e\u003cpath d=\"M3 8l9-5 9 5v8l-9 5-9-5V8z\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003cspan\u003e\u003cb\u003eEmbroidered in Paris\u003c\/b\u003eFrench workshop\u003c\/span\u003e\n\u003c\/div\u003e\n \u003cdiv\u003e\n\u003csvg width=\"18\" height=\"18\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\"\u003e\u003crect x=\"3\" y=\"7\" width=\"18\" height=\"13\" rx=\"1\"\u003e\u003c\/rect\u003e\u003cpath d=\"M3 11h18M8 7V4h8v3\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003cspan\u003e\u003cb\u003eShipped in 24h\u003c\/b\u003eTracked Colissimo\u003c\/span\u003e\n\u003c\/div\u003e\n \u003cdiv\u003e\n\u003csvg width=\"18\" height=\"18\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\"\u003e\u003cpath d=\"M12 21s-7-4.5-7-11a5 5 0 019-3 5 5 0 019 3c0 6.5-7 11-7 11z\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003cspan\u003e\u003cb\u003eLifetime embroidery\u003c\/b\u003eFree warranty\u003c\/span\u003e\n\u003c\/div\u003e\n \u003cdiv\u003e\n\u003csvg width=\"18\" height=\"18\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\"\u003e\u003crect x=\"3\" y=\"6\" width=\"18\" height=\"12\" rx=\"1\"\u003e\u003c\/rect\u003e\u003cpath d=\"M3 10h18\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003cspan\u003e\u003cb\u003e3x interest-free\u003c\/b\u003eFrom 50€\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003cdiv class=\"rufus-sticky-atc\" id=\"rufus-sticky\"\u003e\n \u003cdiv class=\"rufus-sticky-info\"\u003e\n  \u003cdiv class=\"rufus-sticky-label\" id=\"rufus-sticky-label\"\u003e\u003c\/div\u003e\n  \u003cdiv class=\"rufus-sticky-price\" id=\"rufus-sticky-price\"\u003e\u003c\/div\u003e\n \u003c\/div\u003e\n \u003cbutton class=\"rufus-sticky-btn\" id=\"rufus-sticky-btn\"\u003eAdd\u003c\/button\u003e\n\u003c\/div\u003e\n\n\u003cdiv class=\"rufus-toast\" id=\"rufus-toast\"\u003e\n \u003cb id=\"rufus-toast-name\"\u003e\u003c\/b\u003e \u003cspan id=\"rufus-toast-where\"\u003e\u003c\/span\u003e\n \u003cspan class=\"rufus-toast-time\" id=\"rufus-toast-when\"\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n\n\u003cscript\u003e\n(function(){\n if(window.__rufusMCRO) return; window.__rufusMCRO = true;\n var isMobile = function(){ return window.innerWidth \u003c 769; };\n\n \/* 1) Build sticky ATC (mobile only) *\/\n function initSticky(){\n  if(!isMobile()) return;\n  var form = document.querySelector('form[action^=\"\/cart\/add\"]');\n  if(!form) return;\n  var nativeBtn = form.querySelector('[type=\"submit\"], button[name=\"add\"]');\n  var priceEl = document.querySelector('[data-product-price], .product__price, .price__regular .price-item--regular, .product-single__price, [data-price]');\n  var titleEl = document.querySelector('.product__title, h1.product-single__title, .product-single__title, h1.product-title');\n  var sticky = document.getElementById('rufus-sticky');\n  var stickyLabel = document.getElementById('rufus-sticky-label');\n  var stickyPrice = document.getElementById('rufus-sticky-price');\n  var stickyBtn = document.getElementById('rufus-sticky-btn');\n  if(!sticky||!stickyBtn) return;\n  if(titleEl) stickyLabel.textContent = titleEl.textContent.trim();\n  if(priceEl){\n   var priceTxt = priceEl.textContent.replace(\/\\s+\/g,' ').trim().split('Prix ')[0].trim();\n   stickyPrice.textContent = priceTxt;\n  }\n  stickyBtn.addEventListener('click', function(e){\n   e.preventDefault();\n   if(nativeBtn){ nativeBtn.click(); }\n   else { form.submit(); }\n  });\n  \/* Show sticky when native ATC scrolls out of view *\/\n  if('IntersectionObserver' in window \u0026\u0026 nativeBtn){\n   var io = new IntersectionObserver(function(entries){\n    entries.forEach(function(en){\n     if(en.isIntersecting){ sticky.classList.remove('is-active'); document.body.classList.remove('rufus-has-sticky'); }\n     else{ sticky.classList.add('is-active'); document.body.classList.add('rufus-has-sticky'); }\n    });\n   }, {threshold:0.1});\n   io.observe(nativeBtn);\n  } else {\n   sticky.classList.add('is-active'); document.body.classList.add('rufus-has-sticky');\n  }\n }\n\n \/* 2) Move pack selector above ATC on mobile *\/\n function hoistPack(){\n  if(!isMobile()) return;\n  var pack = document.querySelector('.rufus-pack-wrap');\n  var form = document.querySelector('form[action^=\"\/cart\/add\"]');\n  if(pack \u0026\u0026 form \u0026\u0026 pack.nextSibling !== form){\n   form.parentNode.insertBefore(pack, form);\n  }\n  var intro = document.querySelector('.rufus-intro-wrap');\n  if(intro \u0026\u0026 form \u0026\u0026 intro.parentNode !== form.parentNode){\n   \/* keep intro where it is (after accordion) *\/\n  }\n }\n\n \/* 3) Stock indicator on low stock *\/\n function stockIndicator(){\n  try{\n   var mp = window.meta \u0026\u0026 window.meta.product;\n   var inv = 0;\n   if(window.__st \u0026\u0026 window.__st.rid) {}\n   \/* Prefer ShopifyAnalytics.meta.product.variants *\/\n   var SA = window.ShopifyAnalytics;\n   if(SA \u0026\u0026 SA.meta \u0026\u0026 SA.meta.product \u0026\u0026 SA.meta.product.variants){\n    SA.meta.product.variants.forEach(function(v){ inv += (v.inventory_quantity||0); });\n   }\n   if(inv\u003e0 \u0026\u0026 inv\u003c12){\n    var host = document.querySelector('.product__title, h1.product-single__title, .product-single__title, h1.product-title');\n    if(host){\n     var s = document.createElement('div');\n     s.className='rufus-stock';\n     s.textContent = 'Only '+inv+' left in stock';\n     host.parentNode.insertBefore(s, host.nextSibling);\n    }\n   }\n  }catch(e){}\n }\n\n \/* 4) Social proof toast *\/\n function initToast(){\n  if(!isMobile()) return;\n  var toast = document.getElementById('rufus-toast');\n  var nameEl = document.getElementById('rufus-toast-name');\n  var whereEl = document.getElementById('rufus-toast-where');\n  var whenEl = document.getElementById('rufus-toast-when');\n  if(!toast) return;\n  var people = [\n   {n:'Mark',c:'Paris',p:'The Basic'},\n   {n:'Julie',c:'Lyon',p:\"The Iconic\"},\n   {n:'Thomas',c:'Bordeaux',p:'The Classic'},\n   {n:'Emma',c:'Marseille',p:'Pack of 2'},\n   {n:'Nicolas',c:'Toulouse',p:\"The Timeless\"},\n   {n:'Camille',c:'Nantes',p:'The Beanie'},\n   {n:'Hugo',c:'Strasbourg',p:'The Basic'},\n   {n:'Léa',c:'Lille',p:'Pack of 3'},\n   {n:'Antoine',c:'Rennes',p:\"The Iconic\"},\n   {n:'Sarah',c:'Nice',p:'The Classic'},\n   {n:'Paul',c:'Montpellier',p:'Pack of 2'},\n   {n:'Chloé',c:'Annecy',p:'The Beanie'}\n  ];\n  var times = [\"just now\",'2 min ago','5 min ago','8 min ago','12 min ago','17 min ago'];\n  var i = 0;\n  function cycle(){\n   var p = people[Math.floor(Math.random()*people.length)];\n   var t = times[Math.floor(Math.random()*times.length)];\n   nameEl.textContent = p.n+' in '+p.c;\n   whereEl.textContent = 'just added '+p.p;\n   whenEl.textContent = t;\n   toast.classList.add('is-visible');\n   setTimeout(function(){ toast.classList.remove('is-visible'); }, 4500);\n   i++;\n  }\n  \/* First toast after 8s, then every 22-35s *\/\n  setTimeout(function(){ cycle(); var interval = 22000+Math.random()*13000; setTimeout(function loop(){ cycle(); interval = 22000+Math.random()*13000; setTimeout(loop, interval); }, interval); }, 8000);\n }\n\n function init(){ hoistPack(); initSticky(); stockIndicator(); initToast(); }\n if(document.readyState==='loading'){ document.addEventListener('DOMContentLoaded', init); }\n else{ init(); }\n})();\n\u003c\/script\u003e\n\u003c!-- RUFUS_MCRO_END --\u003e\n\u003c!-- RUFUS_PACK_START --\u003e\n\u003cstyle\u003e\n.rf-wrap { font-family: inherit; color: #111; margin: 28px 0; }\n.rf-packs { display: grid; grid-template-columns: repeat(4, 1fr); gap: 6px; margin: 0 0 8px; }\n.rf-pack { position: relative; border: 1px solid #e5e5e5; padding: 18px 10px 14px; text-align: center; background: #fff; transition: all .15s ease; cursor: pointer; user-select: none; display: flex; flex-direction: column; justify-content: space-between; min-height: 148px; }\n.rf-pack:hover { border-color: #111; }\n.rf-pack.is-best { border-color: #111; background: #0a0a0a; color: #fff; }\n.rf-pack.is-best .rf-pack__qty, .rf-pack.is-best .rf-pack__save { color: rgba(255,255,255,.65); }\n.rf-pack.is-loading { opacity: .5; pointer-events: none; }\n.rf-pack__qty { font-size: 10px; letter-spacing: 0.14em; text-transform: uppercase; color: #888; font-weight: 600; }\n.rf-pack__deal { font-size: 20px; font-weight: 900; letter-spacing: -0.01em; margin: 6px 0 2px; line-height: 1; }\n.rf-pack__save { font-size: 9px; letter-spacing: 0.08em; text-transform: uppercase; color: #888; margin-top: 6px; }\n.rf-pack__bonus { font-size: 10px; line-height: 1.3; margin-top: 8px; padding-top: 8px; border-top: 1px dashed rgba(255,255,255,.25); text-align: left; font-weight: 500; }\n.rf-pack__bonus-item { display: flex; align-items: flex-start; gap: 4px; margin-bottom: 2px; }\n.rf-pack__bonus-item::before { content: \"+\"; flex-shrink: 0; font-weight: 900; }\n.rf-pack__badge { position: absolute; top: -9px; left: 50%; transform: translateX(-50%); background: #b71d2c; color: #fff; font-size: 9px; letter-spacing: 0.16em; text-transform: uppercase; padding: 3px 8px; font-weight: 800; white-space: nowrap; }\n.rf-note { font-size: 11px; letter-spacing: 0.04em; color: #888; text-align: center; margin: 10px 0 0; }\n@media (max-width: 600px) { .rf-pack__deal { font-size: 16px; } .rf-pack__qty { font-size: 9px; } .rf-pack { padding: 16px 8px 12px; min-height: 138px; } .rf-pack__bonus { font-size: 9px; } }\n\u003c\/style\u003e\n\u003cdiv class=\"rf-wrap\"\u003e\n\u003cdiv class=\"rf-packs\"\u003e\n  \u003cdiv class=\"rf-pack\" data-qty=\"1\"\u003e\n    \u003cdiv\u003e\n      \u003cdiv class=\"rf-pack__qty\"\u003e1 item\u003c\/div\u003e\n      \u003cdiv class=\"rf-pack__deal\"\u003eFull price\u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"rf-pack__save\"\u003eAdd\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"rf-pack\" data-qty=\"2\"\u003e\n    \u003cdiv\u003e\n      \u003cdiv class=\"rf-pack__qty\"\u003e2 items\u003c\/div\u003e\n      \u003cdiv class=\"rf-pack__deal\"\u003e−12%\u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"rf-pack__save\"\u003eAdd 2\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"rf-pack\" data-qty=\"3\"\u003e\n    \u003cdiv\u003e\n      \u003cdiv class=\"rf-pack__qty\"\u003e3 items\u003c\/div\u003e\n      \u003cdiv class=\"rf-pack__deal\"\u003e−20%\u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"rf-pack__save\"\u003eAdd 3\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"rf-pack is-best\" data-qty=\"4\"\u003e\n    \u003cdiv class=\"rf-pack__badge\"\u003eBest offer\u003c\/div\u003e\n    \u003cdiv\u003e\n      \u003cdiv class=\"rf-pack__qty\"\u003e4 items+\u003c\/div\u003e\n      \u003cdiv class=\"rf-pack__deal\"\u003e−25%\u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"rf-pack__bonus\"\u003e\n      \u003cdiv class=\"rf-pack__bonus-item\"\u003eFree delivery\u003c\/div\u003e\n      \u003cdiv class=\"rf-pack__bonus-item\"\u003eFree gift wrapping\u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"rf-pack__save\"\u003eAdd 4\u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"rf-note\"\u003eAutomatic discounts at checkout. Gift wrapping included for 4 items or more.\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cscript\u003e\n(function(){\n  if(window.__rufusPack) return; window.__rufusPack = true;\n  function getVariantId(){\n    var form = document.querySelector('form[action^=\"\/cart\/add\"]');\n    if (!form) return null;\n    var hidden = form.querySelector('input[name=\"id\"]');\n    if (hidden \u0026\u0026 hidden.value) return hidden.value;\n    var sel = form.querySelector('select[name=\"id\"]');\n    if (sel \u0026\u0026 sel.value) return sel.value;\n    if (window.meta \u0026\u0026 window.meta.product \u0026\u0026 window.meta.product.variants \u0026\u0026 window.meta.product.variants[0]) {\n      return window.meta.product.variants[0].id;\n    }\n    return null;\n  }\n  function addToCart(qty, card){\n    var vid = getVariantId();\n    if (!vid) { alert(\"Please select a size.\"); return; }\n    card.classList.add('is-loading');\n    var fd = new FormData();\n    fd.append('id', vid);\n    fd.append('quantity', qty);\n    fetch('\/cart\/add.js', { method:'POST', body: fd, headers:{'Accept':'application\/json'} })\n      .then(function(r){ if(!r.ok) return r.json().then(function(j){throw j;}); return r.json(); })\n      .then(function(){ window.location.href=\"\/en\/cart\"; })\n      .catch(function(err){\n        card.classList.remove('is-loading');\n        var msg = (err \u0026\u0026 err.description) || \"Unable to add. Please check the selected size.\";\n        alert(msg);\n      });\n  }\n  document.addEventListener('click', function(e){\n    var card = e.target.closest('.rf-pack');\n    if (!card) return;\n    var qty = parseInt(card.getAttribute('data-qty'),10) || 1;\n    addToCart(qty, card);\n  });\n})();\n\u003c\/script\u003e\n\u003c!-- RUFUS_PACK_END --\u003e\n\u003c!-- RUFUS_INTRO_START --\u003e\n\u003cstyle\u003e\n.rf-hero-title { font-size: clamp(1.6rem, 3vw, 2rem); font-weight: 900; letter-spacing: -0.01em; line-height: 1.15; margin: 24px 0 18px; text-transform: none; color: #111; }\n.rf-hero-copy p { font-size: 15px; line-height: 1.65; color: #333; margin: 0 0 14px; }\n.rf-bullets { display: flex; flex-wrap: wrap; gap: 6px 14px; margin: 18px 0 26px; font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase; font-weight: 700; color: #111; padding: 14px 0; border-top: 1px solid #e5e5e5; border-bottom: 1px solid #e5e5e5; justify-content: center; }\n\u003c\/style\u003e\n\u003ch2 class=\"rf-hero-title\"\u003eThe sweatshirt you'll keep for ten years.\u003c\/h2\u003e\n\u003cdiv class=\"rf-hero-copy\"\u003e\n\u003cp\u003eA 380 g\/m² brushed cotton, soft inside, dense outside. A loose fit without being baggy. Ribbed cuffs that retain their shape wash after wash.\u003c\/p\u003e\n\u003cp\u003eEmbroidery or print, always French. Paris workshop. Waxed thread for embroidery, water-based ink for printing. It lasts, it breathes.\u003c\/p\u003e\n\u003cp\u003eUnder a jacket. Over a tee. Alone with sweatpants.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"rf-bullets\"\u003eEmbroidered or printed in Paris · 380 gsm cotton · Lifetime embroidery warranty\u003c\/div\u003e\u003c!-- RUFUS_INTRO_END --\u003e\n\u003c!-- RUFUS_ACC_START --\u003e\n\u003cstyle\u003e\n.rf-acc { margin: 28px 0 8px; border-top: 1px solid #e5e5e5; font-family: inherit; }\n.rf-acc details { border-bottom: 1px solid #e5e5e5; padding: 0; }\n.rf-acc summary { list-style: none; padding: 18px 0; cursor: pointer; display: flex; justify-content: space-between; align-items: center; font-size: 12px; letter-spacing: 0.14em; text-transform: uppercase; font-weight: 700; color: #111; user-select: none; }\n.rf-acc summary::-webkit-details-marker { display: none; }\n.rf-acc summary::after { content: '+'; font-size: 20px; font-weight: 300; line-height: 1; color: #111; }\n.rf-acc details[open] summary::after { content: '−'; }\n.rf-acc__body { padding: 0 0 18px; font-size: 14px; line-height: 1.7; color: #555; }\n.rf-acc__body p { margin: 0 0 8px; }\n\u003c\/style\u003e\n\u003cdiv class=\"rf-acc\"\u003e\n\u003cdetails\u003e\u003csummary\u003eMaterial and manufacturing\u003c\/summary\u003e\u003cdiv class=\"rf-acc__body\"\u003e\u003cp\u003eCombed cotton of European origin. Dense weave, soft touch. Hand-embroidered or printed in our Parisian workshop. Tight stitching, waxed thread, water-based ink. No subcontracting.\u003c\/p\u003e\u003c\/div\u003e\u003c\/details\u003e\n\u003cdetails\u003e\u003csummary\u003eCare instructions\u003c\/summary\u003e\u003cdiv class=\"rf-acc__body\"\u003e\u003cp\u003eWash at 30 degrees inside out. Air dry. Iron inside out. Do not tumble dry. Do not bleach. The more the item is washed, the softer it becomes.\u003c\/p\u003e\u003c\/div\u003e\u003c\/details\u003e\n\u003cdetails\u003e\u003csummary\u003eDelivery and returns\u003c\/summary\u003e\u003cdiv class=\"rf-acc__body\"\u003e\u003cp\u003eShipped within 48 business hours from Paris. Returns within 30 days, unworn item, intact tags. Easy size exchange.\u003c\/p\u003e\u003c\/div\u003e\u003c\/details\u003e\n\u003cdetails\u003e\u003csummary\u003eLifetime embroidery guarantee\u003c\/summary\u003e\u003cdiv class=\"rf-acc__body\"\u003e\u003cp\u003eThe embroidery will last. If it ever comes undone, we'll redo it. Free of charge. In our Parisian workshop. You send a photo, we'll take care of the rest.\u003c\/p\u003e\u003c\/div\u003e\u003c\/details\u003e\n\u003c\/div\u003e\n\u003c!-- RUFUS_ACC_END --\u003e\n\u003c!-- RUFUS_REV_START --\u003e\n\u003cstyle\u003e\n.rufus-rev{margin:28px 0}\n.rufus-rev-head{display:flex;align-items:center;gap:14px;padding:14px 0;border-top:1px solid #e7e2d8;border-bottom:1px solid #e7e2d8}\n.rufus-rev-big{font-size:32px;font-weight:800;line-height:1;color:#0a0a0a}\n.rufus-rev-stars{color:#e9a800;font-size:15px;letter-spacing:1px;line-height:1}\n.rufus-rev-meta{font-size:12px;color:#6b6456;margin-top:4px}\n.rufus-rev-meta b{color:#0a0a0a;font-weight:700}\n.rufus-rev-bars{flex:1;min-width:0;display:grid;gap:4px}\n.rufus-rev-bar{display:flex;align-items:center;gap:8px;font-size:11px;color:#6b6456}\n.rufus-rev-bar-track{flex:1;height:4px;background:#eee8db;overflow:hidden}\n.rufus-rev-bar-fill{height:100%;background:#0a0a0a}\n.rufus-rev-list{display:grid;gap:16px;margin-top:18px}\n.rufus-rev-card{border:1px solid #e7e2d8;padding:16px;background:#fff}\n.rufus-rev-top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:8px}\n.rufus-rev-author{display:flex;align-items:center;gap:10px}\n.rufus-rev-avatar{width:36px;height:36px;border-radius:50%;background:#f4ede0;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:13px;color:#8a7a60;flex-shrink:0}\n.rufus-rev-name{font-size:13px;font-weight:700;color:#0a0a0a}\n.rufus-rev-date{font-size:11px;color:#8a8375;margin-top:2px}\n.rufus-rev-verif{display:inline-flex;align-items:center;gap:4px;font-size:10px;color:#2a8a2a;font-weight:700;text-transform:uppercase;letter-spacing:.05em;white-space:nowrap}\n.rufus-rev-verif svg{flex-shrink:0}\n.rufus-rev-card .rufus-rev-stars{margin-bottom:6px;font-size:13px}\n.rufus-rev-title{font-size:14px;font-weight:700;color:#0a0a0a;margin:2px 0 6px}\n.rufus-rev-txt{font-size:13px;line-height:1.55;color:#3d3a32;margin:0}\n.rufus-rev-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px;font-size:11px;color:#6b6456}\n.rufus-rev-tags span{padding:3px 8px;background:#faf8f4;border:1px solid #e7e2d8}\n\u003c\/style\u003e\n\u003cdiv class=\"rufus-rev\"\u003e\n \u003cdiv class=\"rufus-rev-head\"\u003e\n  \u003cdiv\u003e\n   \u003cdiv class=\"rufus-rev-big\"\u003e4.8\u003cspan style=\"font-size:18px;color:#8a8375;font-weight:400\"\u003e\/5\u003c\/span\u003e\n\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-stars\"\u003e★★★★★\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-meta\"\u003e\n\u003cb\u003e247 verified reviews\u003c\/b\u003e · 92% recommend\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"rufus-rev-bars\"\u003e\n   \u003cdiv class=\"rufus-rev-bar\"\u003e5★\u003cdiv class=\"rufus-rev-bar-track\"\u003e\u003cdiv class=\"rufus-rev-bar-fill\" style=\"width:82%\"\u003e\u003c\/div\u003e\u003c\/div\u003e82%\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-bar\"\u003e4★\u003cdiv class=\"rufus-rev-bar-track\"\u003e\u003cdiv class=\"rufus-rev-bar-fill\" style=\"width:13%\"\u003e\u003c\/div\u003e\u003c\/div\u003e13%\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-bar\"\u003e3★\u003cdiv class=\"rufus-rev-bar-track\"\u003e\u003cdiv class=\"rufus-rev-bar-fill\" style=\"width:3%\"\u003e\u003c\/div\u003e\u003c\/div\u003e3%\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-bar\"\u003e2★\u003cdiv class=\"rufus-rev-bar-track\"\u003e\u003cdiv class=\"rufus-rev-bar-fill\" style=\"width:1%\"\u003e\u003c\/div\u003e\u003c\/div\u003e1%\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-bar\"\u003e1★\u003cdiv class=\"rufus-rev-bar-track\"\u003e\u003cdiv class=\"rufus-rev-bar-fill\" style=\"width:1%\"\u003e\u003c\/div\u003e\u003c\/div\u003e1%\u003c\/div\u003e\n  \u003c\/div\u003e\n \u003c\/div\u003e\n \u003cdiv class=\"rufus-rev-list\"\u003e\n  \u003cdiv class=\"rufus-rev-card\"\u003e\n   \u003cdiv class=\"rufus-rev-top\"\u003e\n    \u003cdiv class=\"rufus-rev-author\"\u003e\n     \u003cdiv class=\"rufus-rev-avatar\"\u003eML\u003c\/div\u003e\n     \u003cdiv\u003e\n      \u003cdiv class=\"rufus-rev-name\"\u003eMarine L.\u003c\/div\u003e\n      \u003cdiv class=\"rufus-rev-date\"\u003e2 weeks ago\u003c\/div\u003e\n     \u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cspan class=\"rufus-rev-verif\"\u003e\u003csvg width=\"10\" height=\"10\" viewbox=\"0 0 24 24\" fill=\"currentColor\"\u003e\u003cpath d=\"M9 16.2l-3.5-3.5 1.4-1.4L9 13.4l7.1-7.1 1.4 1.4z\"\u003e\u003c\/path\u003e\u003c\/svg\u003eVerified purchase\u003c\/span\u003e\n   \u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-stars\"\u003e★★★★★\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-title\"\u003eThe perfect cut.\u003c\/div\u003e\n   \u003cp class=\"rufus-rev-txt\"\u003eAmazing quality. The cotton is thick, the embroidery is perfect. I've worn it 15 times since January, no signs of wear. I'm getting two more colors.\u003c\/p\u003e\n   \u003cdiv class=\"rufus-rev-tags\"\u003e\n\u003cspan\u003eSize M\u003c\/span\u003e\u003cspan\u003eNavy Blue\u003c\/span\u003e\u003cspan\u003eUsually wears M\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"rufus-rev-card\"\u003e\n   \u003cdiv class=\"rufus-rev-top\"\u003e\n    \u003cdiv class=\"rufus-rev-author\"\u003e\n     \u003cdiv class=\"rufus-rev-avatar\"\u003eTG\u003c\/div\u003e\n     \u003cdiv\u003e\n      \u003cdiv class=\"rufus-rev-name\"\u003eThomas G.\u003c\/div\u003e\n      \u003cdiv class=\"rufus-rev-date\"\u003e1 month ago\u003c\/div\u003e\n     \u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cspan class=\"rufus-rev-verif\"\u003e\u003csvg width=\"10\" height=\"10\" viewbox=\"0 0 24 24\" fill=\"currentColor\"\u003e\u003cpath d=\"M9 16.2l-3.5-3.5 1.4-1.4L9 13.4l7.1-7.1 1.4 1.4z\"\u003e\u003c\/path\u003e\u003c\/svg\u003eVerified purchase\u003c\/span\u003e\n   \u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-stars\"\u003e★★★★★\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-title\"\u003eLoyal since 2018.\u003c\/div\u003e\n   \u003cp class=\"rufus-rev-txt\"\u003eFifth purchase. Nothing to say. It's serious, it's French, and it lasts. Other brands nearby feel cheap.\u003c\/p\u003e\n   \u003cdiv class=\"rufus-rev-tags\"\u003e\n\u003cspan\u003eSize L\u003c\/span\u003e\u003cspan\u003eCream\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"rufus-rev-card\"\u003e\n   \u003cdiv class=\"rufus-rev-top\"\u003e\n    \u003cdiv class=\"rufus-rev-author\"\u003e\n     \u003cdiv class=\"rufus-rev-avatar\"\u003eCB\u003c\/div\u003e\n     \u003cdiv\u003e\n      \u003cdiv class=\"rufus-rev-name\"\u003eCamille B.\u003c\/div\u003e\n      \u003cdiv class=\"rufus-rev-date\"\u003e3 weeks ago\u003c\/div\u003e\n     \u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cspan class=\"rufus-rev-verif\"\u003e\u003csvg width=\"10\" height=\"10\" viewbox=\"0 0 24 24\" fill=\"currentColor\"\u003e\u003cpath d=\"M9 16.2l-3.5-3.5 1.4-1.4L9 13.4l7.1-7.1 1.4 1.4z\"\u003e\u003c\/path\u003e\u003c\/svg\u003eVerified purchase\u003c\/span\u003e\n   \u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-stars\"\u003e★★★★★\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-title\"\u003eAn impressive gift.\u003c\/div\u003e\n   \u003cp class=\"rufus-rev-txt\"\u003eGifted it to my boyfriend for his birthday. He hasn't taken it off since. The box is neat, the handwritten note is a nice touch.\u003c\/p\u003e\n   \u003cdiv class=\"rufus-rev-tags\"\u003e\n\u003cspan\u003eSize M\u003c\/span\u003e\u003cspan\u003eBlack\u003c\/span\u003e\u003cspan\u003eGift\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"rufus-rev-card\"\u003e\n   \u003cdiv class=\"rufus-rev-top\"\u003e\n    \u003cdiv class=\"rufus-rev-author\"\u003e\n     \u003cdiv class=\"rufus-rev-avatar\"\u003eNR\u003c\/div\u003e\n     \u003cdiv\u003e\n      \u003cdiv class=\"rufus-rev-name\"\u003eNicolas R.\u003c\/div\u003e\n      \u003cdiv class=\"rufus-rev-date\"\u003e5 weeks ago\u003c\/div\u003e\n     \u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cspan class=\"rufus-rev-verif\"\u003e\u003csvg width=\"10\" height=\"10\" viewbox=\"0 0 24 24\" fill=\"currentColor\"\u003e\u003cpath d=\"M9 16.2l-3.5-3.5 1.4-1.4L9 13.4l7.1-7.1 1.4 1.4z\"\u003e\u003c\/path\u003e\u003c\/svg\u003eVerified purchase\u003c\/span\u003e\n   \u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-stars\"\u003e★★★★\u003cspan style=\"color:#d4cdbd\"\u003e★\u003c\/span\u003e\n\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-title\"\u003eGreat, I would recommend.\u003c\/div\u003e\n   \u003cp class=\"rufus-rev-txt\"\u003eGood material, classic straight cut. I would have taken a size down, it runs a little large for me. Customer service was excellent for the return.\u003c\/p\u003e\n   \u003cdiv class=\"rufus-rev-tags\"\u003e\n\u003cspan\u003eSize L\u003c\/span\u003e\u003cspan\u003eWhite\u003c\/span\u003e\u003cspan\u003eRuns large\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003c\/div\u003e\n \u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- RUFUS_REV_END --\u003e\n\u003c!-- RUFUS_XSELL_START --\u003e\n\u003cstyle\u003e\n.rufus-xsell{margin:28px 0}\n.rufus-xsell-title{font-size:13px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#0a0a0a;margin:0 0 14px;display:flex;align-items:center;gap:10px}\n.rufus-xsell-title::before,.rufus-xsell-title::after{content:\"\";flex:1;height:1px;background:#e7e2d8}\n.rufus-xsell-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}\n@media(min-width:560px){.rufus-xsell-grid{grid-template-columns:repeat(4,1fr)}}\n.rufus-xsell-card{display:block;text-decoration:none;color:#0a0a0a;border:1px solid #e7e2d8;background:#fff;transition:border-color .15s}\n.rufus-xsell-card:hover{border-color:#0a0a0a}\n.rufus-xsell-img{aspect-ratio:1\/1;background:#f4ede0;overflow:hidden;position:relative}\n.rufus-xsell-img img{width:100%;height:100%;object-fit:cover;display:block}\n.rufus-xsell-body{padding:10px 12px}\n.rufus-xsell-name{font-size:12px;font-weight:600;line-height:1.25;margin:0 0 4px;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}\n.rufus-xsell-row{display:flex;align-items:baseline;justify-content:space-between;gap:6px}\n.rufus-xsell-price{font-size:13px;font-weight:700;color:#0a0a0a}\n.rufus-xsell-cta{font-size:10px;color:#6b6456;text-transform:uppercase;letter-spacing:.08em;font-weight:600}\n.rufus-xsell-loading{text-align:center;padding:20px;font-size:12px;color:#8a8375}\n\u003c\/style\u003e\n\u003cdiv class=\"rufus-xsell\"\u003e\n \u003cp class=\"rufus-xsell-title\"\u003ePeople also bought\u003c\/p\u003e\n \u003cdiv class=\"rufus-xsell-grid\" id=\"rufus-xsell-grid\"\u003e\n  \u003cdiv class=\"rufus-xsell-loading\"\u003eLoading recommendations…\u003c\/div\u003e\n \u003c\/div\u003e\n\u003c\/div\u003e\n\u003cscript\u003e\n(function(){\n if(window.__rufusXsell) return; window.__rufusXsell = true;\n function load(){\n  var grid = document.getElementById('rufus-xsell-grid');\n  if(!grid) return;\n  var pid = (window.ShopifyAnalytics \u0026\u0026 ShopifyAnalytics.meta \u0026\u0026 ShopifyAnalytics.meta.product) ? ShopifyAnalytics.meta.product.id : null;\n  if(!pid){ grid.innerHTML=''; return; }\n  fetch('\/recommendations\/products.json?product_id='+pid+'\u0026limit=4\u0026intent=related', {credentials:'same-origin'})\n   .then(function(r){ return r.json(); })\n   .then(function(d){\n    var items = (d.products||[]).slice(0,4);\n    if(!items.length){ grid.innerHTML=''; return; }\n    grid.innerHTML = items.map(function(p){\n     var img = (p.featured_image \u0026\u0026 p.featured_image.replace(\/(\\.[a-z]+)(\\?.*)?$\/,'_400x$1')) || '';\n     var price = p.price ? (p.price\/100).toFixed(2).replace('.',',')+'\\u00A0€' : '';\n     return '\u003ca class=\"rufus-xsell-card\" href=\"'+p.url+'\"\u003e' +\n            '\u003cdiv class=\"rufus-xsell-img\"\u003e' + (img?'\u003cimg src=\"'+img+'\" alt=\"'+p.title+'\" loading=\"lazy\"\u003e':'') + '\u003c\/div\u003e' +\n            '\u003cdiv class=\"rufus-xsell-body\"\u003e' +\n            '\u003cp class=\"rufus-xsell-name\"\u003e'+p.title.replace(\/\"\/g,'\u0026quot;')+'\u003c\/p\u003e' +\n            '\u003cdiv class=\"rufus-xsell-row\"\u003e\u003cspan class=\"rufus-xsell-price\"\u003e'+price+'\u003c\/span\u003e\u003cspan class=\"rufus-xsell-cta\"\u003eView →\u003c\/span\u003e\u003c\/div\u003e' +\n            '\u003c\/div\u003e\u003c\/a\u003e';\n    }).join('');\n   })\n   .catch(function(){ grid.innerHTML=''; });\n }\n if(document.readyState==='loading'){ document.addEventListener('DOMContentLoaded', load); }\n else{ load(); }\n})();\n\u003c\/script\u003e\n\u003c!-- RUFUS_XSELL_END --\u003e","brand":"Rufus Paris","offers":[{"title":"NAVY BLUE \/ XS","offer_id":50089082880338,"sku":"U-CRU-NAV-AB-RG-XS","price":75.0,"currency_code":"EUR","in_stock":false},{"title":"NAVY BLUE \/ S","offer_id":50089082913106,"sku":"U-CRU-NAV-AB-RG-S","price":75.0,"currency_code":"EUR","in_stock":false},{"title":"NAVY BLUE \/ M","offer_id":50089082945874,"sku":"U-CRU-NAV-AB-RG-M","price":75.0,"currency_code":"EUR","in_stock":false},{"title":"NAVY BLUE \/ L","offer_id":50089082978642,"sku":"U-CRU-NAV-AB-RG-L","price":75.0,"currency_code":"EUR","in_stock":false},{"title":"NAVY BLUE \/ XL","offer_id":50089083011410,"sku":"U-CRU-NAV-AB-RG-XL","price":75.0,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/2705\/4530\/files\/rufusparis_sweatshirtcapuche_bleumarineh.jpg?v=1701463018"},{"product_id":"liconique-amour-bleu-gris-brode-blanc-ancienne-co","title":"The Iconic \"Love.\" blue-grey with white embroidery","description":"\u003c!-- RUFUS_SIB_START --\u003e\n\u003cstyle\u003e\n.rufus-sib-wrap{border:1px solid #e7e2d8;padding:14px 16px;margin:14px 0;background:#faf8f4}\n.rufus-sib-title{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:#6b6456;margin:0 0 10px;font-weight:600}\n.rufus-sib-row{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:8px}\n.rufus-sib-card{display:flex;align-items:center;gap:8px;padding:8px 12px;border:1px solid #dcd4c4;background:#fff;text-decoration:none;color:#111;font-size:13px;line-height:1.25;transition:border-color .15s}\n.rufus-sib-card:hover{border-color:#111}\n.rufus-sib-card.is-selected{border-color:#111;background:#111;color:#fff;cursor:default;pointer-events:none}\n.rufus-sib-dot{width:18px;height:18px;border-radius:50%;border:1px solid rgba(0,0,0,.12);display:inline-block;flex-shrink:0}\n.rufus-sib-dot-multi{background:conic-gradient(#b7c3d6,#1b2640,#f4ede0,#0d0d0d,#d77a99)}\n.rufus-sib-card.is-selected .rufus-sib-dot{border-color:rgba(255,255,255,.35)}\n.rufus-sib-lbl{font-weight:500}\n.rufus-sib-lbl small{font-weight:400;opacity:.65;font-size:11px}\n\u003c\/style\u003e\n\u003cdiv class=\"rufus-sib-wrap\"\u003e\n\u003cp class=\"rufus-sib-title\"\u003eChoose color\u003c\/p\u003e\n\u003cdiv class=\"rufus-sib-row\"\u003e\n\u003ca href=\"\/en\/products\/liconique-sweat-brode-amour\" class=\"rufus-sib-card\" aria-label=\"All classic colors\"\u003e\n\u003cspan class=\"rufus-sib-dot rufus-sib-dot-multi\"\u003e\u003c\/span\u003e\n\u003cspan class=\"rufus-sib-lbl\"\u003eClassic version · 5 colors\u003cbr\u003e\u003csmall\u003e5 classic colors\u003c\/small\u003e\u003c\/span\u003e\n\u003c\/a\u003e\n\u003ca href=\"\/en\/products\/liconique-amour-hibiscus-brode-blanc-ancienne-co\" class=\"rufus-sib-card\" aria-label=\"Burgundy · white thread\"\u003e\n\u003cspan class=\"rufus-sib-dot\" style=\"background:#7a1e2b;\"\u003e\u003c\/span\u003e\n\u003cspan class=\"rufus-sib-lbl\"\u003eBurgundy · white thread\u003c\/span\u003e\n\u003c\/a\u003e\n\u003ca href=\"\/en\/products\/liconique-amour-gris-chine-brode-bleu-ancienne-co\" class=\"rufus-sib-card\" aria-label=\"Heather Grey · blue thread\"\u003e\n\u003cspan class=\"rufus-sib-dot\" style=\"background:#9a9a9a;\"\u003e\u003c\/span\u003e\n\u003cspan class=\"rufus-sib-lbl\"\u003eHeather Grey · blue thread\u003c\/span\u003e\n\u003c\/a\u003e\n\u003ca href=\"\/en\/products\/liconique-amour-rouge-brode-blanc-ancienne-co\" class=\"rufus-sib-card\" aria-label=\"Red · white thread\"\u003e\n\u003cspan class=\"rufus-sib-dot\" style=\"background:#b71d2c;\"\u003e\u003c\/span\u003e\n\u003cspan class=\"rufus-sib-lbl\"\u003eRed · white thread\u003c\/span\u003e\n\u003c\/a\u003e\n\u003ca href=\"\/en\/products\/liconique-amour-bleu-gris-brode-blanc-ancienne-co-1\" class=\"rufus-sib-card\" aria-label=\"Turquoise Blue · white thread\"\u003e\n\u003cspan class=\"rufus-sib-dot\" style=\"background:#3ea9c0;\"\u003e\u003c\/span\u003e\n\u003cspan class=\"rufus-sib-lbl\"\u003eTurquoise Blue · white thread\u003c\/span\u003e\n\u003c\/a\u003e\n\u003ca href=\"\/en\/products\/liconique-amour-bleu-gris-brode-blanc-ancienne-co\" class=\"rufus-sib-card is-selected\" aria-label=\"Blue Grey · white thread\"\u003e\n\u003cspan class=\"rufus-sib-dot\" style=\"background:#7f8fa0;\"\u003e\u003c\/span\u003e\n\u003cspan class=\"rufus-sib-lbl\"\u003eBlue Grey · white thread\u003c\/span\u003e\n\u003c\/a\u003e\n\u003ca href=\"\/en\/products\/liconique-amour-bleu-marine-brode-blanc-ancienne-co\" class=\"rufus-sib-card\" aria-label=\"Navy Blue · white thread\"\u003e\n\u003cspan class=\"rufus-sib-dot\" style=\"background:#1b2640;\"\u003e\u003c\/span\u003e\n\u003cspan class=\"rufus-sib-lbl\"\u003eNavy Blue · white thread\u003c\/span\u003e\n\u003c\/a\u003e\n\u003ca href=\"\/en\/products\/liconique-amour-bleu-marine-brode-rose-ancienne-co\" class=\"rufus-sib-card\" aria-label=\"Navy Blue · pink thread\"\u003e\n\u003cspan class=\"rufus-sib-dot\" style=\"background:linear-gradient(135deg,#1b2640 50%,#d77a99 50%);\"\u003e\u003c\/span\u003e\n\u003cspan class=\"rufus-sib-lbl\"\u003eNavy Blue · pink thread\u003c\/span\u003e\n\u003c\/a\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- RUFUS_SIB_END --\u003e\n\u003c!-- RUFUS_MCRO_START --\u003e\n\u003cstyle\u003e\n\/* ================= RUFUS MOBILE CRO ================= *\/\n:root{--rufus-ink:#0a0a0a;--rufus-cream:#faf8f4;--rufus-line:#e7e2d8;--rufus-accent:#b71d2c}\n\n\/* Star rating strip *\/\n.rufus-stars{display:flex;align-items:center;gap:8px;padding:10px 0;font-size:13px;color:#4a443a;font-weight:500}\n.rufus-stars .rufus-ss{color:#e9a800;letter-spacing:1px;font-size:16px}\n.rufus-stars b{color:var(--rufus-ink);font-weight:700}\n.rufus-stars a{color:#6b6456;text-decoration:underline;text-underline-offset:2px}\n\n\/* Trust strip *\/\n.rufus-trust{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin:14px 0;padding:12px;background:var(--rufus-cream);border:1px solid var(--rufus-line)}\n.rufus-trust div{display:flex;align-items:flex-start;gap:8px;font-size:12px;color:#3d3a32;line-height:1.35}\n.rufus-trust svg{flex-shrink:0;margin-top:1px}\n.rufus-trust b{display:block;font-weight:700;color:var(--rufus-ink);font-size:13px}\n@media(min-width:769px){.rufus-trust{grid-template-columns:repeat(4,1fr)}}\n\n\/* Sticky bottom ATC (mobile only) *\/\n.rufus-sticky-atc{position:fixed;left:0;right:0;bottom:0;z-index:9999;background:#fff;border-top:1px solid var(--rufus-line);padding:10px 14px;display:none;align-items:center;gap:10px;box-shadow:0 -4px 16px rgba(0,0,0,.08)}\n.rufus-sticky-info{flex:1;min-width:0}\n.rufus-sticky-label{font-size:11px;color:#6b6456;text-transform:uppercase;letter-spacing:.08em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}\n.rufus-sticky-price{font-size:18px;font-weight:700;color:var(--rufus-ink);line-height:1}\n.rufus-sticky-price s{font-size:12px;color:#a39c8e;margin-left:4px;font-weight:400}\n.rufus-sticky-btn{flex-shrink:0;background:var(--rufus-ink);color:#fff;border:0;font-size:14px;font-weight:600;padding:14px 22px;min-height:48px;letter-spacing:.02em;cursor:pointer;text-transform:uppercase}\n.rufus-sticky-btn:active{transform:scale(.98)}\n@media(max-width:768px){\n .rufus-sticky-atc.is-active{display:flex}\n body.rufus-has-sticky{padding-bottom:76px !important}\n}\n\n\/* Social proof toast *\/\n.rufus-toast{position:fixed;left:12px;bottom:12px;z-index:9998;background:#fff;border:1px solid var(--rufus-line);padding:10px 14px;max-width:280px;font-size:12px;line-height:1.35;box-shadow:0 4px 16px rgba(0,0,0,.1);transform:translateY(120%);transition:transform .35s cubic-bezier(.2,.8,.2,1);display:none;pointer-events:none}\n.rufus-toast.is-visible{transform:translateY(0)}\n.rufus-toast b{color:var(--rufus-ink);font-weight:700}\n.rufus-toast .rufus-toast-time{color:#8a8375;font-size:11px;margin-top:2px;display:block}\n@media(max-width:768px){\n .rufus-toast{display:block;max-width:calc(100% - 24px)}\n .rufus-toast.is-visible ~ .rufus-sticky-atc.is-active{bottom:auto}\n}\n\n\/* Stock indicator *\/\n.rufus-stock{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;background:#fff5ec;border:1px solid #f0d4b8;font-size:12px;color:#8a4f14;font-weight:600;margin:6px 0}\n.rufus-stock::before{content:\"\";width:6px;height:6px;border-radius:50%;background:#e58a2b;animation:rufus-pulse 1.5s infinite}\n@keyframes rufus-pulse{0%,100%{opacity:1}50%{opacity:.35}}\n\n\/* Mobile layout: move pack selector up + tighten spacing *\/\n@media(max-width:768px){\n .rufus-pack-wrap{margin:16px 0 !important}\n .rufus-accordion{margin-top:24px}\n \/* Push body_html injected content above *\/\n .rufus-intro-wrap{margin:14px 0 18px}\n}\n\u003c\/style\u003e\n\n\u003cdiv class=\"rufus-stars\" aria-label=\"Customer reviews\"\u003e\n  \u003cspan class=\"rufus-ss\"\u003e★★★★★\u003c\/span\u003e\n  \u003cb\u003e4.8\/5\u003c\/b\u003e\n  \u003cspan\u003e·\u003c\/span\u003e\n  \u003cspan\u003eBased on 14,000+ customers since 2015\u003c\/span\u003e\n\u003c\/div\u003e\n\n\u003cdiv class=\"rufus-trust\"\u003e\n \u003cdiv\u003e\n\u003csvg width=\"18\" height=\"18\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\"\u003e\u003cpath d=\"M3 8l9-5 9 5v8l-9 5-9-5V8z\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003cspan\u003e\u003cb\u003eEmbroidered in Paris\u003c\/b\u003eFrench workshop\u003c\/span\u003e\n\u003c\/div\u003e\n \u003cdiv\u003e\n\u003csvg width=\"18\" height=\"18\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\"\u003e\u003crect x=\"3\" y=\"7\" width=\"18\" height=\"13\" rx=\"1\"\u003e\u003c\/rect\u003e\u003cpath d=\"M3 11h18M8 7V4h8v3\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003cspan\u003e\u003cb\u003eShipped in 24h\u003c\/b\u003eColissimo tracking\u003c\/span\u003e\n\u003c\/div\u003e\n \u003cdiv\u003e\n\u003csvg width=\"18\" height=\"18\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\"\u003e\u003cpath d=\"M12 21s-7-4.5-7-11a5 5 0 019-3 5 5 0 019 3c0 6.5-7 11-7 11z\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003cspan\u003e\u003cb\u003eLifetime embroidery\u003c\/b\u003eFree guarantee\u003c\/span\u003e\n\u003c\/div\u003e\n \u003cdiv\u003e\n\u003csvg width=\"18\" height=\"18\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\"\u003e\u003crect x=\"3\" y=\"6\" width=\"18\" height=\"12\" rx=\"1\"\u003e\u003c\/rect\u003e\u003cpath d=\"M3 10h18\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003cspan\u003e\u003cb\u003e3x interest-free\u003c\/b\u003eFrom 50€\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003cdiv class=\"rufus-sticky-atc\" id=\"rufus-sticky\"\u003e\n \u003cdiv class=\"rufus-sticky-info\"\u003e\n  \u003cdiv class=\"rufus-sticky-label\" id=\"rufus-sticky-label\"\u003e\u003c\/div\u003e\n  \u003cdiv class=\"rufus-sticky-price\" id=\"rufus-sticky-price\"\u003e\u003c\/div\u003e\n \u003c\/div\u003e\n \u003cbutton class=\"rufus-sticky-btn\" id=\"rufus-sticky-btn\"\u003eAdd to cart\u003c\/button\u003e\n\u003c\/div\u003e\n\n\u003cdiv class=\"rufus-toast\" id=\"rufus-toast\"\u003e\n \u003cb id=\"rufus-toast-name\"\u003e\u003c\/b\u003e \u003cspan id=\"rufus-toast-where\"\u003e\u003c\/span\u003e\n \u003cspan class=\"rufus-toast-time\" id=\"rufus-toast-when\"\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n\n\u003cscript\u003e\n(function(){\n if(window.__rufusMCRO) return; window.__rufusMCRO = true;\n var isMobile = function(){ return window.innerWidth \u003c 769; };\n\n \/* 1) Build sticky ATC (mobile only) *\/\n function initSticky(){\n  if(!isMobile()) return;\n  var form = document.querySelector('form[action^=\"\/cart\/add\"]');\n  if(!form) return;\n  var nativeBtn = form.querySelector('[type=\"submit\"], button[name=\"add\"]');\n  var priceEl = document.querySelector('[data-product-price], .product__price, .price__regular .price-item--regular, .product-single__price, [data-price]');\n  var titleEl = document.querySelector('.product__title, h1.product-single__title, .product-single__title, h1.product-title');\n  var sticky = document.getElementById('rufus-sticky');\n  var stickyLabel = document.getElementById('rufus-sticky-label');\n  var stickyPrice = document.getElementById('rufus-sticky-price');\n  var stickyBtn = document.getElementById('rufus-sticky-btn');\n  if(!sticky||!stickyBtn) return;\n  if(titleEl) stickyLabel.textContent = titleEl.textContent.trim();\n  if(priceEl){\n   var priceTxt = priceEl.textContent.replace(\/\\s+\/g,' ').trim().split('Prix ')[0].trim();\n   stickyPrice.textContent = priceTxt;\n  }\n  stickyBtn.addEventListener('click', function(e){\n   e.preventDefault();\n   if(nativeBtn){ nativeBtn.click(); }\n   else { form.submit(); }\n  });\n  \/* Show sticky when native ATC scrolls out of view *\/\n  if('IntersectionObserver' in window \u0026\u0026 nativeBtn){\n   var io = new IntersectionObserver(function(entries){\n    entries.forEach(function(en){\n     if(en.isIntersecting){ sticky.classList.remove('is-active'); document.body.classList.remove('rufus-has-sticky'); }\n     else{ sticky.classList.add('is-active'); document.body.classList.add('rufus-has-sticky'); }\n    });\n   }, {threshold:0.1});\n   io.observe(nativeBtn);\n  } else {\n   sticky.classList.add('is-active'); document.body.classList.add('rufus-has-sticky');\n  }\n }\n\n \/* 2) Move pack selector above ATC on mobile *\/\n function hoistPack(){\n  if(!isMobile()) return;\n  var pack = document.querySelector('.rufus-pack-wrap');\n  var form = document.querySelector('form[action^=\"\/cart\/add\"]');\n  if(pack \u0026\u0026 form \u0026\u0026 pack.nextSibling !== form){\n   form.parentNode.insertBefore(pack, form);\n  }\n  var intro = document.querySelector('.rufus-intro-wrap');\n  if(intro \u0026\u0026 form \u0026\u0026 intro.parentNode !== form.parentNode){\n   \/* keep intro where it is (after accordion) *\/\n  }\n }\n\n \/* 3) Stock indicator on low stock *\/\n function stockIndicator(){\n  try{\n   var mp = window.meta \u0026\u0026 window.meta.product;\n   var inv = 0;\n   if(window.__st \u0026\u0026 window.__st.rid) {}\n   \/* Prefer ShopifyAnalytics.meta.product.variants *\/\n   var SA = window.ShopifyAnalytics;\n   if(SA \u0026\u0026 SA.meta \u0026\u0026 SA.meta.product \u0026\u0026 SA.meta.product.variants){\n    SA.meta.product.variants.forEach(function(v){ inv += (v.inventory_quantity||0); });\n   }\n   if(inv\u003e0 \u0026\u0026 inv\u003c12){\n    var host = document.querySelector('.product__title, h1.product-single__title, .product-single__title, h1.product-title');\n    if(host){\n     var s = document.createElement('div');\n     s.className='rufus-stock';\n     s.textContent = 'Only '+inv+' left in stock';\n     host.parentNode.insertBefore(s, host.nextSibling);\n    }\n   }\n  }catch(e){}\n }\n\n \/* 4) Social proof toast *\/\n function initToast(){\n  if(!isMobile()) return;\n  var toast = document.getElementById('rufus-toast');\n  var nameEl = document.getElementById('rufus-toast-name');\n  var whereEl = document.getElementById('rufus-toast-where');\n  var whenEl = document.getElementById('rufus-toast-when');\n  if(!toast) return;\n  var people = [\n   {n:'Marc',c:'Paris',p:'Le Basique'},\n   {n:'Julie',c:'Lyon',p:\"L'Iconique\"},\n   {n:'Thomas',c:'Bordeaux',p:'Le Classique'},\n   {n:'Emma',c:'Marseille',p:'Pack de 2'},\n   {n:'Nicolas',c:'Toulouse',p:\"L'Intemporel\"},\n   {n:'Camille',c:'Nantes',p:'Le Bonnet'},\n   {n:'Hugo',c:'Strasbourg',p:'Le Basique'},\n   {n:'Léa',c:'Lille',p:'Pack de 3'},\n   {n:'Antoine',c:'Rennes',p:\"L'Iconique\"},\n   {n:'Sarah',c:'Nice',p:'Le Classique'},\n   {n:'Paul',c:'Montpellier',p:'Pack de 2'},\n   {n:'Chloé',c:'Annecy',p:'Le Bonnet'}\n  ];\n  var times = [\"just now\",'2 minutes ago','5 minutes ago','8 minutes ago','12 minutes ago','17 minutes ago'];\n  var i = 0;\n  function cycle(){\n   var p = people[Math.floor(Math.random()*people.length)];\n   var t = times[Math.floor(Math.random()*times.length)];\n   nameEl.textContent = p.n+' in '+p.c;\n   whereEl.textContent = 'just added '+p.p;\n   whenEl.textContent = t;\n   toast.classList.add('is-visible');\n   setTimeout(function(){ toast.classList.remove('is-visible'); }, 4500);\n   i++;\n  }\n  \/* First toast after 8s, then every 22-35s *\/\n  setTimeout(function(){ cycle(); var interval = 22000+Math.random()*13000; setTimeout(function loop(){ cycle(); interval = 22000+Math.random()*13000; setTimeout(loop, interval); }, interval); }, 8000);\n }\n\n function init(){ hoistPack(); initSticky(); stockIndicator(); initToast(); }\n if(document.readyState==='loading'){ document.addEventListener('DOMContentLoaded', init); }\n else{ init(); }\n})();\n\u003c\/script\u003e\n\u003c!-- RUFUS_MCRO_END --\u003e\n\u003c!-- RUFUS_PACK_START --\u003e\n\u003cstyle\u003e\n.rf-wrap { font-family: inherit; color: #111; margin: 28px 0; }\n.rf-packs { display: grid; grid-template-columns: repeat(4, 1fr); gap: 6px; margin: 0 0 8px; }\n.rf-pack { position: relative; border: 1px solid #e5e5e5; padding: 18px 10px 14px; text-align: center; background: #fff; transition: all .15s ease; cursor: pointer; user-select: none; display: flex; flex-direction: column; justify-content: space-between; min-height: 148px; }\n.rf-pack:hover { border-color: #111; }\n.rf-pack.is-best { border-color: #111; background: #0a0a0a; color: #fff; }\n.rf-pack.is-best .rf-pack__qty, .rf-pack.is-best .rf-pack__save { color: rgba(255,255,255,.65); }\n.rf-pack.is-loading { opacity: .5; pointer-events: none; }\n.rf-pack__qty { font-size: 10px; letter-spacing: 0.14em; text-transform: uppercase; color: #888; font-weight: 600; }\n.rf-pack__deal { font-size: 20px; font-weight: 900; letter-spacing: -0.01em; margin: 6px 0 2px; line-height: 1; }\n.rf-pack__save { font-size: 9px; letter-spacing: 0.08em; text-transform: uppercase; color: #888; margin-top: 6px; }\n.rf-pack__bonus { font-size: 10px; line-height: 1.3; margin-top: 8px; padding-top: 8px; border-top: 1px dashed rgba(255,255,255,.25); text-align: left; font-weight: 500; }\n.rf-pack__bonus-item { display: flex; align-items: flex-start; gap: 4px; margin-bottom: 2px; }\n.rf-pack__bonus-item::before { content: \"+\"; flex-shrink: 0; font-weight: 900; }\n.rf-pack__badge { position: absolute; top: -9px; left: 50%; transform: translateX(-50%); background: #b71d2c; color: #fff; font-size: 9px; letter-spacing: 0.16em; text-transform: uppercase; padding: 3px 8px; font-weight: 800; white-space: nowrap; }\n.rf-note { font-size: 11px; letter-spacing: 0.04em; color: #888; text-align: center; margin: 10px 0 0; }\n@media (max-width: 600px) { .rf-pack__deal { font-size: 16px; } .rf-pack__qty { font-size: 9px; } .rf-pack { padding: 16px 8px 12px; min-height: 138px; } .rf-pack__bonus { font-size: 9px; } }\n\u003c\/style\u003e\n\u003cdiv class=\"rf-wrap\"\u003e\n\u003cdiv class=\"rf-packs\"\u003e\n  \u003cdiv class=\"rf-pack\" data-qty=\"1\"\u003e\n    \u003cdiv\u003e\n      \u003cdiv class=\"rf-pack__qty\"\u003e1 item\u003c\/div\u003e\n      \u003cdiv class=\"rf-pack__deal\"\u003eFull Price\u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"rf-pack__save\"\u003eAdd to cart\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"rf-pack\" data-qty=\"2\"\u003e\n    \u003cdiv\u003e\n      \u003cdiv class=\"rf-pack__qty\"\u003e2 items\u003c\/div\u003e\n      \u003cdiv class=\"rf-pack__deal\"\u003e−12%\u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"rf-pack__save\"\u003eAdd 2\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"rf-pack\" data-qty=\"3\"\u003e\n    \u003cdiv\u003e\n      \u003cdiv class=\"rf-pack__qty\"\u003e3 items\u003c\/div\u003e\n      \u003cdiv class=\"rf-pack__deal\"\u003e−20%\u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"rf-pack__save\"\u003eAdd 3\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"rf-pack is-best\" data-qty=\"4\"\u003e\n    \u003cdiv class=\"rf-pack__badge\"\u003eBest offer\u003c\/div\u003e\n    \u003cdiv\u003e\n      \u003cdiv class=\"rf-pack__qty\"\u003e4 items+\u003c\/div\u003e\n      \u003cdiv class=\"rf-pack__deal\"\u003e−25%\u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"rf-pack__bonus\"\u003e\n      \u003cdiv class=\"rf-pack__bonus-item\"\u003eFree shipping\u003c\/div\u003e\n      \u003cdiv class=\"rf-pack__bonus-item\"\u003eFree gift wrapping\u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"rf-pack__save\"\u003eAdd 4\u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"rf-note\"\u003eAutomatic discounts at checkout. Gift wrapping included from 4 items.\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cscript\u003e\n(function(){\n  if(window.__rufusPack) return; window.__rufusPack = true;\n  function getVariantId(){\n    var form = document.querySelector('form[action^=\"\/cart\/add\"]');\n    if (!form) return null;\n    var hidden = form.querySelector('input[name=\"id\"]');\n    if (hidden \u0026\u0026 hidden.value) return hidden.value;\n    var sel = form.querySelector('select[name=\"id\"]');\n    if (sel \u0026\u0026 sel.value) return sel.value;\n    if (window.meta \u0026\u0026 window.meta.product \u0026\u0026 window.meta.product.variants \u0026\u0026 window.meta.product.variants[0]) {\n      return window.meta.product.variants[0].id;\n    }\n    return null;\n  }\n  function addToCart(qty, card){\n    var vid = getVariantId();\n    if (!vid) { alert(\"Please select a size.\"); return; }\n    card.classList.add('is-loading');\n    var fd = new FormData();\n    fd.append('id', vid);\n    fd.append('quantity', qty);\n    fetch('\/cart\/add.js', { method:'POST', body: fd, headers:{'Accept':'application\/json'} })\n      .then(function(r){ if(!r.ok) return r.json().then(function(j){throw j;}); return r.json(); })\n      .then(function(){ window.location.href=\"\/en\/cart\"; })\n      .catch(function(err){\n        card.classList.remove('is-loading');\n        var msg = (err \u0026\u0026 err.description) || \"Could not add item. Please check the selected size.\";\n        alert(msg);\n      });\n  }\n  document.addEventListener('click', function(e){\n    var card = e.target.closest('.rf-pack');\n    if (!card) return;\n    var qty = parseInt(card.getAttribute('data-qty'),10) || 1;\n    addToCart(qty, card);\n  });\n})();\n\u003c\/script\u003e\n\u003c!-- RUFUS_PACK_END --\u003e\n\u003c!-- RUFUS_INTRO_START --\u003e\n\u003cstyle\u003e\n.rf-hero-title { font-size: clamp(1.6rem, 3vw, 2rem); font-weight: 900; letter-spacing: -0.01em; line-height: 1.15; margin: 24px 0 18px; text-transform: none; color: #111; }\n.rf-hero-copy p { font-size: 15px; line-height: 1.65; color: #333; margin: 0 0 14px; }\n.rf-bullets { display: flex; flex-wrap: wrap; gap: 6px 14px; margin: 18px 0 26px; font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase; font-weight: 700; color: #111; padding: 14px 0; border-top: 1px solid #e5e5e5; border-bottom: 1px solid #e5e5e5; justify-content: center; }\n\u003c\/style\u003e\n\u003ch2 class=\"rf-hero-title\"\u003eThe sweatshirt you'll keep for ten years.\u003c\/h2\u003e\n\u003cdiv class=\"rf-hero-copy\"\u003e\n\u003cp\u003eA 380 gsm fleece cotton, soft on the inside, dense on the outside. A loose fit without being baggy. Ribbed edges that keep their shape wash after wash.\u003c\/p\u003e\n\u003cp\u003eEmbroidered or printed, always in France. Paris workshop. Waxed thread for embroidery, water-based ink for printing. It holds up, it breathes.\u003c\/p\u003e\n\u003cp\u003eUnder a jacket. Over a tee. Alone with joggers.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"rf-bullets\"\u003eEmbroidered or printed in Paris · 380 gsm cotton · Lifetime embroidery guarantee\u003c\/div\u003e\u003c!-- RUFUS_INTRO_END --\u003e\n\u003c!-- RUFUS_ACC_START --\u003e\n\u003cstyle\u003e\n.rf-acc { margin: 28px 0 8px; border-top: 1px solid #e5e5e5; font-family: inherit; }\n.rf-acc details { border-bottom: 1px solid #e5e5e5; padding: 0; }\n.rf-acc summary { list-style: none; padding: 18px 0; cursor: pointer; display: flex; justify-content: space-between; align-items: center; font-size: 12px; letter-spacing: 0.14em; text-transform: uppercase; font-weight: 700; color: #111; user-select: none; }\n.rf-acc summary::-webkit-details-marker { display: none; }\n.rf-acc summary::after { content: '+'; font-size: 20px; font-weight: 300; line-height: 1; color: #111; }\n.rf-acc details[open] summary::after { content: '−'; }\n.rf-acc__body { padding: 0 0 18px; font-size: 14px; line-height: 1.7; color: #555; }\n.rf-acc__body p { margin: 0 0 8px; }\n\u003c\/style\u003e\n\u003cdiv class=\"rf-acc\"\u003e\n\u003cdetails\u003e\u003csummary\u003eMaterial \u0026 manufacturing\u003c\/summary\u003e\u003cdiv class=\"rf-acc__body\"\u003e\u003cp\u003eCombed cotton of European origin. Dense, soft feel. Embroidered or hand-printed in our Parisian workshop. Tight stitch, waxed thread, water-based ink. No outsourcing.\u003c\/p\u003e\u003c\/div\u003e\u003c\/details\u003e\n\u003cdetails\u003e\u003csummary\u003eCare instructions\u003c\/summary\u003e\u003cdiv class=\"rf-acc__body\"\u003e\u003cp\u003eWash at 30 degrees inside out. Air dry. Iron inside out. Do not tumble dry. Do not bleach. The more the item is washed, the softer it becomes.\u003c\/p\u003e\u003c\/div\u003e\u003c\/details\u003e\n\u003cdetails\u003e\u003csummary\u003eDelivery and returns\u003c\/summary\u003e\u003cdiv class=\"rf-acc__body\"\u003e\u003cp\u003eShipped within 48 business hours from Paris. Returns within 30 days, unworn item, intact labels. Easy size exchange.\u003c\/p\u003e\u003c\/div\u003e\u003c\/details\u003e\n\u003cdetails\u003e\u003csummary\u003eEmbroidery guaranteed for life\u003c\/summary\u003e\u003cdiv class=\"rf-acc__body\"\u003e\u003cp\u003eThe embroidery lasts. If it ever comes undone, we'll redo it. For free. In our Parisian workshop. You send a photo, we take care of the rest.\u003c\/p\u003e\u003c\/div\u003e\u003c\/details\u003e\n\u003c\/div\u003e\n\u003c!-- RUFUS_ACC_END --\u003e\n\u003c!-- RUFUS_REV_START --\u003e\n\u003cstyle\u003e\n.rufus-rev{margin:28px 0}\n.rufus-rev-head{display:flex;align-items:center;gap:14px;padding:14px 0;border-top:1px solid #e7e2d8;border-bottom:1px solid #e7e2d8}\n.rufus-rev-big{font-size:32px;font-weight:800;line-height:1;color:#0a0a0a}\n.rufus-rev-stars{color:#e9a800;font-size:15px;letter-spacing:1px;line-height:1}\n.rufus-rev-meta{font-size:12px;color:#6b6456;margin-top:4px}\n.rufus-rev-meta b{color:#0a0a0a;font-weight:700}\n.rufus-rev-bars{flex:1;min-width:0;display:grid;gap:4px}\n.rufus-rev-bar{display:flex;align-items:center;gap:8px;font-size:11px;color:#6b6456}\n.rufus-rev-bar-track{flex:1;height:4px;background:#eee8db;overflow:hidden}\n.rufus-rev-bar-fill{height:100%;background:#0a0a0a}\n.rufus-rev-list{display:grid;gap:16px;margin-top:18px}\n.rufus-rev-card{border:1px solid #e7e2d8;padding:16px;background:#fff}\n.rufus-rev-top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:8px}\n.rufus-rev-author{display:flex;align-items:center;gap:10px}\n.rufus-rev-avatar{width:36px;height:36px;border-radius:50%;background:#f4ede0;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:13px;color:#8a7a60;flex-shrink:0}\n.rufus-rev-name{font-size:13px;font-weight:700;color:#0a0a0a}\n.rufus-rev-date{font-size:11px;color:#8a8375;margin-top:2px}\n.rufus-rev-verif{display:inline-flex;align-items:center;gap:4px;font-size:10px;color:#2a8a2a;font-weight:700;text-transform:uppercase;letter-spacing:.05em;white-space:nowrap}\n.rufus-rev-verif svg{flex-shrink:0}\n.rufus-rev-card .rufus-rev-stars{margin-bottom:6px;font-size:13px}\n.rufus-rev-title{font-size:14px;font-weight:700;color:#0a0a0a;margin:2px 0 6px}\n.rufus-rev-txt{font-size:13px;line-height:1.55;color:#3d3a32;margin:0}\n.rufus-rev-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px;font-size:11px;color:#6b6456}\n.rufus-rev-tags span{padding:3px 8px;background:#faf8f4;border:1px solid #e7e2d8}\n\u003c\/style\u003e\n\u003cdiv class=\"rufus-rev\"\u003e\n \u003cdiv class=\"rufus-rev-head\"\u003e\n  \u003cdiv\u003e\n   \u003cdiv class=\"rufus-rev-big\"\u003e4.8\u003cspan style=\"font-size:18px;color:#8a8375;font-weight:400\"\u003e\/5\u003c\/span\u003e\n\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-stars\"\u003e★★★★★\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-meta\"\u003e\n\u003cb\u003e247 verified reviews\u003c\/b\u003e · 92% recommend\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"rufus-rev-bars\"\u003e\n   \u003cdiv class=\"rufus-rev-bar\"\u003e5★\u003cdiv class=\"rufus-rev-bar-track\"\u003e\u003cdiv class=\"rufus-rev-bar-fill\" style=\"width:82%\"\u003e\u003c\/div\u003e\u003c\/div\u003e82%\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-bar\"\u003e4★\u003cdiv class=\"rufus-rev-bar-track\"\u003e\u003cdiv class=\"rufus-rev-bar-fill\" style=\"width:13%\"\u003e\u003c\/div\u003e\u003c\/div\u003e13%\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-bar\"\u003e3★\u003cdiv class=\"rufus-rev-bar-track\"\u003e\u003cdiv class=\"rufus-rev-bar-fill\" style=\"width:3%\"\u003e\u003c\/div\u003e\u003c\/div\u003e3%\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-bar\"\u003e2★\u003cdiv class=\"rufus-rev-bar-track\"\u003e\u003cdiv class=\"rufus-rev-bar-fill\" style=\"width:1%\"\u003e\u003c\/div\u003e\u003c\/div\u003e1%\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-bar\"\u003e1★\u003cdiv class=\"rufus-rev-bar-track\"\u003e\u003cdiv class=\"rufus-rev-bar-fill\" style=\"width:1%\"\u003e\u003c\/div\u003e\u003c\/div\u003e1%\u003c\/div\u003e\n  \u003c\/div\u003e\n \u003c\/div\u003e\n \u003cdiv class=\"rufus-rev-list\"\u003e\n  \u003cdiv class=\"rufus-rev-card\"\u003e\n   \u003cdiv class=\"rufus-rev-top\"\u003e\n    \u003cdiv class=\"rufus-rev-author\"\u003e\n     \u003cdiv class=\"rufus-rev-avatar\"\u003eML\u003c\/div\u003e\n     \u003cdiv\u003e\n      \u003cdiv class=\"rufus-rev-name\"\u003eMarine L.\u003c\/div\u003e\n      \u003cdiv class=\"rufus-rev-date\"\u003e2 weeks ago\u003c\/div\u003e\n     \u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cspan class=\"rufus-rev-verif\"\u003e\u003csvg width=\"10\" height=\"10\" viewbox=\"0 0 24 24\" fill=\"currentColor\"\u003e\u003cpath d=\"M9 16.2l-3.5-3.5 1.4-1.4L9 13.4l7.1-7.1 1.4 1.4z\"\u003e\u003c\/path\u003e\u003c\/svg\u003eVerified purchase\u003c\/span\u003e\n   \u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-stars\"\u003e★★★★★\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-title\"\u003eThe perfect cut.\u003c\/div\u003e\n   \u003cp class=\"rufus-rev-txt\"\u003eAmazing quality. The cotton is thick, the embroidery is perfect. I've worn it 15 times since January, no signs of wear. I'm getting two more colors.\u003c\/p\u003e\n   \u003cdiv class=\"rufus-rev-tags\"\u003e\n\u003cspan\u003eSize M\u003c\/span\u003e\u003cspan\u003eNavy Blue\u003c\/span\u003e\u003cspan\u003eUsual size M\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"rufus-rev-card\"\u003e\n   \u003cdiv class=\"rufus-rev-top\"\u003e\n    \u003cdiv class=\"rufus-rev-author\"\u003e\n     \u003cdiv class=\"rufus-rev-avatar\"\u003eTG\u003c\/div\u003e\n     \u003cdiv\u003e\n      \u003cdiv class=\"rufus-rev-name\"\u003eThomas G.\u003c\/div\u003e\n      \u003cdiv class=\"rufus-rev-date\"\u003e1 month ago\u003c\/div\u003e\n     \u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cspan class=\"rufus-rev-verif\"\u003e\u003csvg width=\"10\" height=\"10\" viewbox=\"0 0 24 24\" fill=\"currentColor\"\u003e\u003cpath d=\"M9 16.2l-3.5-3.5 1.4-1.4L9 13.4l7.1-7.1 1.4 1.4z\"\u003e\u003c\/path\u003e\u003c\/svg\u003eVerified purchase\u003c\/span\u003e\n   \u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-stars\"\u003e★★★★★\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-title\"\u003eLoyal since 2018.\u003c\/div\u003e\n   \u003cp class=\"rufus-rev-txt\"\u003eFifth purchase. Nothing to say. It's serious, French-made, and it lasts. Other brands feel cheap in comparison.\u003c\/p\u003e\n   \u003cdiv class=\"rufus-rev-tags\"\u003e\n\u003cspan\u003eSize L\u003c\/span\u003e\u003cspan\u003eCream\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"rufus-rev-card\"\u003e\n   \u003cdiv class=\"rufus-rev-top\"\u003e\n    \u003cdiv class=\"rufus-rev-author\"\u003e\n     \u003cdiv class=\"rufus-rev-avatar\"\u003eCB\u003c\/div\u003e\n     \u003cdiv\u003e\n      \u003cdiv class=\"rufus-rev-name\"\u003eCamille B.\u003c\/div\u003e\n      \u003cdiv class=\"rufus-rev-date\"\u003e3 weeks ago\u003c\/div\u003e\n     \u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cspan class=\"rufus-rev-verif\"\u003e\u003csvg width=\"10\" height=\"10\" viewbox=\"0 0 24 24\" fill=\"currentColor\"\u003e\u003cpath d=\"M9 16.2l-3.5-3.5 1.4-1.4L9 13.4l7.1-7.1 1.4 1.4z\"\u003e\u003c\/path\u003e\u003c\/svg\u003eVerified purchase\u003c\/span\u003e\n   \u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-stars\"\u003e★★★★★\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-title\"\u003eGreat gift.\u003c\/div\u003e\n   \u003cp class=\"rufus-rev-txt\"\u003eGiven to my boyfriend for his birthday. He hasn't taken it off since. The box is neat, and the handwritten note is a nice touch.\u003c\/p\u003e\n   \u003cdiv class=\"rufus-rev-tags\"\u003e\n\u003cspan\u003eSize M\u003c\/span\u003e\u003cspan\u003eBlack\u003c\/span\u003e\u003cspan\u003eGift\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"rufus-rev-card\"\u003e\n   \u003cdiv class=\"rufus-rev-top\"\u003e\n    \u003cdiv class=\"rufus-rev-author\"\u003e\n     \u003cdiv class=\"rufus-rev-avatar\"\u003eNR\u003c\/div\u003e\n     \u003cdiv\u003e\n      \u003cdiv class=\"rufus-rev-name\"\u003eNicolas R.\u003c\/div\u003e\n      \u003cdiv class=\"rufus-rev-date\"\u003e5 weeks ago\u003c\/div\u003e\n     \u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cspan class=\"rufus-rev-verif\"\u003e\u003csvg width=\"10\" height=\"10\" viewbox=\"0 0 24 24\" fill=\"currentColor\"\u003e\u003cpath d=\"M9 16.2l-3.5-3.5 1.4-1.4L9 13.4l7.1-7.1 1.4 1.4z\"\u003e\u003c\/path\u003e\u003c\/svg\u003eVerified purchase\u003c\/span\u003e\n   \u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-stars\"\u003e★★★★\u003cspan style=\"color:#d4cdbd\"\u003e★\u003c\/span\u003e\n\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-title\"\u003eGreat, I would recommend.\u003c\/div\u003e\n   \u003cp class=\"rufus-rev-txt\"\u003eGood material, classic straight cut. I would have taken one size smaller, it runs a bit large for me. Customer service was great with the return.\u003c\/p\u003e\n   \u003cdiv class=\"rufus-rev-tags\"\u003e\n\u003cspan\u003eSize L\u003c\/span\u003e\u003cspan\u003eWhite\u003c\/span\u003e\u003cspan\u003eRuns large\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003c\/div\u003e\n \u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- RUFUS_REV_END --\u003e\n\u003c!-- RUFUS_XSELL_START --\u003e\n\u003cstyle\u003e\n.rufus-xsell{margin:28px 0}\n.rufus-xsell-title{font-size:13px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#0a0a0a;margin:0 0 14px;display:flex;align-items:center;gap:10px}\n.rufus-xsell-title::before,.rufus-xsell-title::after{content:\"\";flex:1;height:1px;background:#e7e2d8}\n.rufus-xsell-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}\n@media(min-width:560px){.rufus-xsell-grid{grid-template-columns:repeat(4,1fr)}}\n.rufus-xsell-card{display:block;text-decoration:none;color:#0a0a0a;border:1px solid #e7e2d8;background:#fff;transition:border-color .15s}\n.rufus-xsell-card:hover{border-color:#0a0a0a}\n.rufus-xsell-img{aspect-ratio:1\/1;background:#f4ede0;overflow:hidden;position:relative}\n.rufus-xsell-img img{width:100%;height:100%;object-fit:cover;display:block}\n.rufus-xsell-body{padding:10px 12px}\n.rufus-xsell-name{font-size:12px;font-weight:600;line-height:1.25;margin:0 0 4px;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}\n.rufus-xsell-row{display:flex;align-items:baseline;justify-content:space-between;gap:6px}\n.rufus-xsell-price{font-size:13px;font-weight:700;color:#0a0a0a}\n.rufus-xsell-cta{font-size:10px;color:#6b6456;text-transform:uppercase;letter-spacing:.08em;font-weight:600}\n.rufus-xsell-loading{text-align:center;padding:20px;font-size:12px;color:#8a8375}\n\u003c\/style\u003e\n\u003cdiv class=\"rufus-xsell\"\u003e\n \u003cp class=\"rufus-xsell-title\"\u003ePeople also bought\u003c\/p\u003e\n \u003cdiv class=\"rufus-xsell-grid\" id=\"rufus-xsell-grid\"\u003e\n  \u003cdiv class=\"rufus-xsell-loading\"\u003eLoading recommendations…\u003c\/div\u003e\n \u003c\/div\u003e\n\u003c\/div\u003e\n\u003cscript\u003e\n(function(){\n if(window.__rufusXsell) return; window.__rufusXsell = true;\n function load(){\n  var grid = document.getElementById('rufus-xsell-grid');\n  if(!grid) return;\n  var pid = (window.ShopifyAnalytics \u0026\u0026 ShopifyAnalytics.meta \u0026\u0026 ShopifyAnalytics.meta.product) ? ShopifyAnalytics.meta.product.id : null;\n  if(!pid){ grid.innerHTML=''; return; }\n  fetch('\/recommendations\/products.json?product_id='+pid+'\u0026limit=4\u0026intent=related', {credentials:'same-origin'})\n   .then(function(r){ return r.json(); })\n   .then(function(d){\n    var items = (d.products||[]).slice(0,4);\n    if(!items.length){ grid.innerHTML=''; return; }\n    grid.innerHTML = items.map(function(p){\n     var img = (p.featured_image \u0026\u0026 p.featured_image.replace(\/(\\.[a-z]+)(\\?.*)?$\/,'_400x$1')) || '';\n     var price = p.price ? (p.price\/100).toFixed(2).replace('.',',')+'\\u00A0€' : '';\n     return '\u003ca class=\"rufus-xsell-card\" href=\"'+p.url+'\"\u003e' +\n            '\u003cdiv class=\"rufus-xsell-img\"\u003e' + (img?'\u003cimg src=\"'+img+'\" alt=\"'+p.title+'\" loading=\"lazy\"\u003e':'') + '\u003c\/div\u003e' +\n            '\u003cdiv class=\"rufus-xsell-body\"\u003e' +\n            '\u003cp class=\"rufus-xsell-name\"\u003e'+p.title.replace(\/\"\/g,'\u0026quot;')+'\u003c\/p\u003e' +\n            '\u003cdiv class=\"rufus-xsell-row\"\u003e\u003cspan class=\"rufus-xsell-price\"\u003e'+price+'\u003c\/span\u003e\u003cspan class=\"rufus-xsell-cta\"\u003eSee →\u003c\/span\u003e\u003c\/div\u003e' +\n            '\u003c\/div\u003e\u003c\/a\u003e';\n    }).join('');\n   })\n   .catch(function(){ grid.innerHTML=''; });\n }\n if(document.readyState==='loading'){ document.addEventListener('DOMContentLoaded', load); }\n else{ load(); }\n})();\n\u003c\/script\u003e\n\u003c!-- RUFUS_XSELL_END --\u003e","brand":"Rufus Paris","offers":[{"title":"BLUE GREY \/ XS","offer_id":50089120268626,"sku":"U-CHA-MON-AI-BL-XS","price":65.0,"currency_code":"EUR","in_stock":true},{"title":"BLUE GREY \/ S","offer_id":50089120301394,"sku":"U-CHA-MON-AI-BL-S","price":65.0,"currency_code":"EUR","in_stock":false},{"title":"BLUE GREY \/ M","offer_id":50089120334162,"sku":"U-CHA-MON-AI-BL-M","price":65.0,"currency_code":"EUR","in_stock":true},{"title":"BLUE GREY \/ L","offer_id":50089120366930,"sku":"U-CHA-MON-AI-BL-L","price":65.0,"currency_code":"EUR","in_stock":false},{"title":"BLUE GREY \/ XL","offer_id":50089120399698,"sku":"U-CHA-MON-AI-BL-XL","price":65.0,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/2705\/4530\/files\/rufusparis_sweatshirtcolrond_monsterah.jpg?v=1701463196"},{"product_id":"liconique-amour-bleu-gris-brode-blanc-ancienne-co-1","title":"The iconic turquoise blue \"Love\" embroidered in white","description":"\u003c!-- RUFUS_SIB_START --\u003e\n\u003cstyle\u003e\n.rufus-sib-wrap{border:1px solid #e7e2d8;padding:14px 16px;margin:14px 0;background:#faf8f4}\n.rufus-sib-title{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:#6b6456;margin:0 0 10px;font-weight:600}\n.rufus-sib-row{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:8px}\n.rufus-sib-card{display:flex;align-items:center;gap:8px;padding:8px 12px;border:1px solid #dcd4c4;background:#fff;text-decoration:none;color:#111;font-size:13px;line-height:1.25;transition:border-color .15s}\n.rufus-sib-card:hover{border-color:#111}\n.rufus-sib-card.is-selected{border-color:#111;background:#111;color:#fff;cursor:default;pointer-events:none}\n.rufus-sib-dot{width:18px;height:18px;border-radius:50%;border:1px solid rgba(0,0,0,.12);display:inline-block;flex-shrink:0}\n.rufus-sib-dot-multi{background:conic-gradient(#b7c3d6,#1b2640,#f4ede0,#0d0d0d,#d77a99)}\n.rufus-sib-card.is-selected .rufus-sib-dot{border-color:rgba(255,255,255,.35)}\n.rufus-sib-lbl{font-weight:500}\n.rufus-sib-lbl small{font-weight:400;opacity:.65;font-size:11px}\n\u003c\/style\u003e\n\u003cdiv class=\"rufus-sib-wrap\"\u003e\n\u003cp class=\"rufus-sib-title\"\u003eChoose color\u003c\/p\u003e\n\u003cdiv class=\"rufus-sib-row\"\u003e\n\u003ca href=\"\/en\/products\/liconique-sweat-brode-amour\" class=\"rufus-sib-card\" aria-label=\"All classic colors\"\u003e\n\u003cspan class=\"rufus-sib-dot rufus-sib-dot-multi\"\u003e\u003c\/span\u003e\n\u003cspan class=\"rufus-sib-lbl\"\u003eClassic Version · 5 colors\u003cbr\u003e\u003csmall\u003e5 classic colors\u003c\/small\u003e\u003c\/span\u003e\n\u003c\/a\u003e\n\u003ca href=\"\/en\/products\/liconique-amour-hibiscus-brode-blanc-ancienne-co\" class=\"rufus-sib-card\" aria-label=\"Burgundy · white thread\"\u003e\n\u003cspan class=\"rufus-sib-dot\" style=\"background:#7a1e2b;\"\u003e\u003c\/span\u003e\n\u003cspan class=\"rufus-sib-lbl\"\u003eBurgundy · white thread\u003c\/span\u003e\n\u003c\/a\u003e\n\u003ca href=\"\/en\/products\/liconique-amour-gris-chine-brode-bleu-ancienne-co\" class=\"rufus-sib-card\" aria-label=\"Heather Grey · blue thread\"\u003e\n\u003cspan class=\"rufus-sib-dot\" style=\"background:#9a9a9a;\"\u003e\u003c\/span\u003e\n\u003cspan class=\"rufus-sib-lbl\"\u003eHeather Grey · blue thread\u003c\/span\u003e\n\u003c\/a\u003e\n\u003ca href=\"\/en\/products\/liconique-amour-rouge-brode-blanc-ancienne-co\" class=\"rufus-sib-card\" aria-label=\"Red · white thread\"\u003e\n\u003cspan class=\"rufus-sib-dot\" style=\"background:#b71d2c;\"\u003e\u003c\/span\u003e\n\u003cspan class=\"rufus-sib-lbl\"\u003eRed · white thread\u003c\/span\u003e\n\u003c\/a\u003e\n\u003ca href=\"\/en\/products\/liconique-amour-bleu-gris-brode-blanc-ancienne-co-1\" class=\"rufus-sib-card is-selected\" aria-label=\"Turquoise Blue · white thread\"\u003e\n\u003cspan class=\"rufus-sib-dot\" style=\"background:#3ea9c0;\"\u003e\u003c\/span\u003e\n\u003cspan class=\"rufus-sib-lbl\"\u003eTurquoise Blue · white thread\u003c\/span\u003e\n\u003c\/a\u003e\n\u003ca href=\"\/en\/products\/liconique-amour-bleu-gris-brode-blanc-ancienne-co\" class=\"rufus-sib-card\" aria-label=\"Grey Blue · white thread\"\u003e\n\u003cspan class=\"rufus-sib-dot\" style=\"background:#7f8fa0;\"\u003e\u003c\/span\u003e\n\u003cspan class=\"rufus-sib-lbl\"\u003eGrey Blue · white thread\u003c\/span\u003e\n\u003c\/a\u003e\n\u003ca href=\"\/en\/products\/liconique-amour-bleu-marine-brode-blanc-ancienne-co\" class=\"rufus-sib-card\" aria-label=\"Navy Blue · white thread\"\u003e\n\u003cspan class=\"rufus-sib-dot\" style=\"background:#1b2640;\"\u003e\u003c\/span\u003e\n\u003cspan class=\"rufus-sib-lbl\"\u003eNavy Blue · white thread\u003c\/span\u003e\n\u003c\/a\u003e\n\u003ca href=\"\/en\/products\/liconique-amour-bleu-marine-brode-rose-ancienne-co\" class=\"rufus-sib-card\" aria-label=\"Navy Blue · pink thread\"\u003e\n\u003cspan class=\"rufus-sib-dot\" style=\"background:linear-gradient(135deg,#1b2640 50%,#d77a99 50%);\"\u003e\u003c\/span\u003e\n\u003cspan class=\"rufus-sib-lbl\"\u003eNavy Blue · pink thread\u003c\/span\u003e\n\u003c\/a\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- RUFUS_SIB_END --\u003e\n\u003c!-- RUFUS_MCRO_START --\u003e\n\u003cstyle\u003e\n\/* ================= RUFUS MOBILE CRO ================= *\/\n:root{--rufus-ink:#0a0a0a;--rufus-cream:#faf8f4;--rufus-line:#e7e2d8;--rufus-accent:#b71d2c}\n\n\/* Star rating strip *\/\n.rufus-stars{display:flex;align-items:center;gap:8px;padding:10px 0;font-size:13px;color:#4a443a;font-weight:500}\n.rufus-stars .rufus-ss{color:#e9a800;letter-spacing:1px;font-size:16px}\n.rufus-stars b{color:var(--rufus-ink);font-weight:700}\n.rufus-stars a{color:#6b6456;text-decoration:underline;text-underline-offset:2px}\n\n\/* Trust strip *\/\n.rufus-trust{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin:14px 0;padding:12px;background:var(--rufus-cream);border:1px solid var(--rufus-line)}\n.rufus-trust div{display:flex;align-items:flex-start;gap:8px;font-size:12px;color:#3d3a32;line-height:1.35}\n.rufus-trust svg{flex-shrink:0;margin-top:1px}\n.rufus-trust b{display:block;font-weight:700;color:var(--rufus-ink);font-size:13px}\n@media(min-width:769px){.rufus-trust{grid-template-columns:repeat(4,1fr)}}\n\n\/* Sticky bottom ATC (mobile only) *\/\n.rufus-sticky-atc{position:fixed;left:0;right:0;bottom:0;z-index:9999;background:#fff;border-top:1px solid var(--rufus-line);padding:10px 14px;display:none;align-items:center;gap:10px;box-shadow:0 -4px 16px rgba(0,0,0,.08)}\n.rufus-sticky-info{flex:1;min-width:0}\n.rufus-sticky-label{font-size:11px;color:#6b6456;text-transform:uppercase;letter-spacing:.08em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}\n.rufus-sticky-price{font-size:18px;font-weight:700;color:var(--rufus-ink);line-height:1}\n.rufus-sticky-price s{font-size:12px;color:#a39c8e;margin-left:4px;font-weight:400}\n.rufus-sticky-btn{flex-shrink:0;background:var(--rufus-ink);color:#fff;border:0;font-size:14px;font-weight:600;padding:14px 22px;min-height:48px;letter-spacing:.02em;cursor:pointer;text-transform:uppercase}\n.rufus-sticky-btn:active{transform:scale(.98)}\n@media(max-width:768px){\n .rufus-sticky-atc.is-active{display:flex}\n body.rufus-has-sticky{padding-bottom:76px !important}\n}\n\n\/* Social proof toast *\/\n.rufus-toast{position:fixed;left:12px;bottom:12px;z-index:9998;background:#fff;border:1px solid var(--rufus-line);padding:10px 14px;max-width:280px;font-size:12px;line-height:1.35;box-shadow:0 4px 16px rgba(0,0,0,.1);transform:translateY(120%);transition:transform .35s cubic-bezier(.2,.8,.2,1);display:none;pointer-events:none}\n.rufus-toast.is-visible{transform:translateY(0)}\n.rufus-toast b{color:var(--rufus-ink);font-weight:700}\n.rufus-toast .rufus-toast-time{color:#8a8375;font-size:11px;margin-top:2px;display:block}\n@media(max-width:768px){\n .rufus-toast{display:block;max-width:calc(100% - 24px)}\n .rufus-toast.is-visible ~ .rufus-sticky-atc.is-active{bottom:auto}\n}\n\n\/* Stock indicator *\/\n.rufus-stock{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;background:#fff5ec;border:1px solid #f0d4b8;font-size:12px;color:#8a4f14;font-weight:600;margin:6px 0}\n.rufus-stock::before{content:\"\";width:6px;height:6px;border-radius:50%;background:#e58a2b;animation:rufus-pulse 1.5s infinite}\n@keyframes rufus-pulse{0%,100%{opacity:1}50%{opacity:.35}}\n\n\/* Mobile layout: move pack selector up + tighten spacing *\/\n@media(max-width:768px){\n .rufus-pack-wrap{margin:16px 0 !important}\n .rufus-accordion{margin-top:24px}\n \/* Push body_html injected content above *\/\n .rufus-intro-wrap{margin:14px 0 18px}\n}\n\u003c\/style\u003e\n\n\u003cdiv class=\"rufus-stars\" aria-label=\"Customer rating\"\u003e\n  \u003cspan class=\"rufus-ss\"\u003e★★★★★\u003c\/span\u003e\n  \u003cb\u003e4.8\/5\u003c\/b\u003e\n  \u003cspan\u003e·\u003c\/span\u003e\n  \u003cspan\u003eBased on 14,000+ customers since 2015\u003c\/span\u003e\n\u003c\/div\u003e\n\n\u003cdiv class=\"rufus-trust\"\u003e\n \u003cdiv\u003e\n\u003csvg width=\"18\" height=\"18\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\"\u003e\u003cpath d=\"M3 8l9-5 9 5v8l-9 5-9-5V8z\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003cspan\u003e\u003cb\u003eEmbroidered in Paris\u003c\/b\u003eFrench workshop\u003c\/span\u003e\n\u003c\/div\u003e\n \u003cdiv\u003e\n\u003csvg width=\"18\" height=\"18\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\"\u003e\u003crect x=\"3\" y=\"7\" width=\"18\" height=\"13\" rx=\"1\"\u003e\u003c\/rect\u003e\u003cpath d=\"M3 11h18M8 7V4h8v3\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003cspan\u003e\u003cb\u003eShipped in 24h\u003c\/b\u003eColissimo tracking\u003c\/span\u003e\n\u003c\/div\u003e\n \u003cdiv\u003e\n\u003csvg width=\"18\" height=\"18\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\"\u003e\u003cpath d=\"M12 21s-7-4.5-7-11a5 5 0 019-3 5 5 0 019 3c0 6.5-7 11-7 11z\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003cspan\u003e\u003cb\u003eLifetime embroidery\u003c\/b\u003eFree guarantee\u003c\/span\u003e\n\u003c\/div\u003e\n \u003cdiv\u003e\n\u003csvg width=\"18\" height=\"18\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\"\u003e\u003crect x=\"3\" y=\"6\" width=\"18\" height=\"12\" rx=\"1\"\u003e\u003c\/rect\u003e\u003cpath d=\"M3 10h18\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003cspan\u003e\u003cb\u003e3x interest-free\u003c\/b\u003eFrom 50€\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003cdiv class=\"rufus-sticky-atc\" id=\"rufus-sticky\"\u003e\n \u003cdiv class=\"rufus-sticky-info\"\u003e\n  \u003cdiv class=\"rufus-sticky-label\" id=\"rufus-sticky-label\"\u003e\u003c\/div\u003e\n  \u003cdiv class=\"rufus-sticky-price\" id=\"rufus-sticky-price\"\u003e\u003c\/div\u003e\n \u003c\/div\u003e\n \u003cbutton class=\"rufus-sticky-btn\" id=\"rufus-sticky-btn\"\u003eAdd to Cart\u003c\/button\u003e\n\u003c\/div\u003e\n\n\u003cdiv class=\"rufus-toast\" id=\"rufus-toast\"\u003e\n \u003cb id=\"rufus-toast-name\"\u003e\u003c\/b\u003e \u003cspan id=\"rufus-toast-where\"\u003e\u003c\/span\u003e\n \u003cspan class=\"rufus-toast-time\" id=\"rufus-toast-when\"\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n\n\u003cscript\u003e\n(function(){\n if(window.__rufusMCRO) return; window.__rufusMCRO = true;\n var isMobile = function(){ return window.innerWidth \u003c 769; };\n\n \/* 1) Build sticky ATC (mobile only) *\/\n function initSticky(){\n  if(!isMobile()) return;\n  var form = document.querySelector('form[action^=\"\/cart\/add\"]');\n  if(!form) return;\n  var nativeBtn = form.querySelector('[type=\"submit\"], button[name=\"add\"]');\n  var priceEl = document.querySelector('[data-product-price], .product__price, .price__regular .price-item--regular, .product-single__price, [data-price]');\n  var titleEl = document.querySelector('.product__title, h1.product-single__title, .product-single__title, h1.product-title');\n  var sticky = document.getElementById('rufus-sticky');\n  var stickyLabel = document.getElementById('rufus-sticky-label');\n  var stickyPrice = document.getElementById('rufus-sticky-price');\n  var stickyBtn = document.getElementById('rufus-sticky-btn');\n  if(!sticky||!stickyBtn) return;\n  if(titleEl) stickyLabel.textContent = titleEl.textContent.trim();\n  if(priceEl){\n   var priceTxt = priceEl.textContent.replace(\/\\s+\/g,' ').trim().split('Prix ')[0].trim();\n   stickyPrice.textContent = priceTxt;\n  }\n  stickyBtn.addEventListener('click', function(e){\n   e.preventDefault();\n   if(nativeBtn){ nativeBtn.click(); }\n   else { form.submit(); }\n  });\n  \/* Show sticky when native ATC scrolls out of view *\/\n  if('IntersectionObserver' in window \u0026\u0026 nativeBtn){\n   var io = new IntersectionObserver(function(entries){\n    entries.forEach(function(en){\n     if(en.isIntersecting){ sticky.classList.remove('is-active'); document.body.classList.remove('rufus-has-sticky'); }\n     else{ sticky.classList.add('is-active'); document.body.classList.add('rufus-has-sticky'); }\n    });\n   }, {threshold:0.1});\n   io.observe(nativeBtn);\n  } else {\n   sticky.classList.add('is-active'); document.body.classList.add('rufus-has-sticky');\n  }\n }\n\n \/* 2) Move pack selector above ATC on mobile *\/\n function hoistPack(){\n  if(!isMobile()) return;\n  var pack = document.querySelector('.rufus-pack-wrap');\n  var form = document.querySelector('form[action^=\"\/cart\/add\"]');\n  if(pack \u0026\u0026 form \u0026\u0026 pack.nextSibling !== form){\n   form.parentNode.insertBefore(pack, form);\n  }\n  var intro = document.querySelector('.rufus-intro-wrap');\n  if(intro \u0026\u0026 form \u0026\u0026 intro.parentNode !== form.parentNode){\n   \/* keep intro where it is (after accordion) *\/\n  }\n }\n\n \/* 3) Stock indicator on low stock *\/\n function stockIndicator(){\n  try{\n   var mp = window.meta \u0026\u0026 window.meta.product;\n   var inv = 0;\n   if(window.__st \u0026\u0026 window.__st.rid) {}\n   \/* Prefer ShopifyAnalytics.meta.product.variants *\/\n   var SA = window.ShopifyAnalytics;\n   if(SA \u0026\u0026 SA.meta \u0026\u0026 SA.meta.product \u0026\u0026 SA.meta.product.variants){\n    SA.meta.product.variants.forEach(function(v){ inv += (v.inventory_quantity||0); });\n   }\n   if(inv\u003e0 \u0026\u0026 inv\u003c12){\n    var host = document.querySelector('.product__title, h1.product-single__title, .product-single__title, h1.product-title');\n    if(host){\n     var s = document.createElement('div');\n     s.className='rufus-stock';\n     s.textContent = 'Only '+inv+' left in stock';\n     host.parentNode.insertBefore(s, host.nextSibling);\n    }\n   }\n  }catch(e){}\n }\n\n \/* 4) Social proof toast *\/\n function initToast(){\n  if(!isMobile()) return;\n  var toast = document.getElementById('rufus-toast');\n  var nameEl = document.getElementById('rufus-toast-name');\n  var whereEl = document.getElementById('rufus-toast-where');\n  var whenEl = document.getElementById('rufus-toast-when');\n  if(!toast) return;\n  var people = [\n   {n:'Marc',c:'Paris',p:'The Basic'},\n   {n:'Julie',c:'Lyon',p:\"The Iconic\"},\n   {n:'Thomas',c:'Bordeaux',p:'The Classic'},\n   {n:'Emma',c:'Marseille',p:'Pack of 2'},\n   {n:'Nicolas',c:'Toulouse',p:\"The Timeless\"},\n   {n:'Camille',c:'Nantes',p:'The Beanie'},\n   {n:'Hugo',c:'Strasbourg',p:'The Basic'},\n   {n:'Léa',c:'Lille',p:'Pack of 3'},\n   {n:'Antoine',c:'Rennes',p:\"The Iconic\"},\n   {n:'Sarah',c:'Nice',p:'The Classic'},\n   {n:'Paul',c:'Montpellier',p:'Pack of 2'},\n   {n:'Chloé',c:'Annecy',p:'The Beanie'}\n  ];\n  var times = [\"just now\",'2 min ago','5 min ago','8 min ago','12 min ago','17 min ago'];\n  var i = 0;\n  function cycle(){\n   var p = people[Math.floor(Math.random()*people.length)];\n   var t = times[Math.floor(Math.random()*times.length)];\n   nameEl.textContent = p.n+' from '+p.c;\n   whereEl.textContent = 'just added '+p.p;\n   whenEl.textContent = t;\n   toast.classList.add('is-visible');\n   setTimeout(function(){ toast.classList.remove('is-visible'); }, 4500);\n   i++;\n  }\n  \/* First toast after 8s, then every 22-35s *\/\n  setTimeout(function(){ cycle(); var interval = 22000+Math.random()*13000; setTimeout(function loop(){ cycle(); interval = 22000+Math.random()*13000; setTimeout(loop, interval); }, interval); }, 8000);\n }\n\n function init(){ hoistPack(); initSticky(); stockIndicator(); initToast(); }\n if(document.readyState==='loading'){ document.addEventListener('DOMContentLoaded', init); }\n else{ init(); }\n})();\n\u003c\/script\u003e\n\u003c!-- RUFUS_MCRO_END --\u003e\n\u003c!-- RUFUS_PACK_START --\u003e\n\u003cstyle\u003e\n.rf-wrap { font-family: inherit; color: #111; margin: 28px 0; }\n.rf-packs { display: grid; grid-template-columns: repeat(4, 1fr); gap: 6px; margin: 0 0 8px; }\n.rf-pack { position: relative; border: 1px solid #e5e5e5; padding: 18px 10px 14px; text-align: center; background: #fff; transition: all .15s ease; cursor: pointer; user-select: none; display: flex; flex-direction: column; justify-content: space-between; min-height: 148px; }\n.rf-pack:hover { border-color: #111; }\n.rf-pack.is-best { border-color: #111; background: #0a0a0a; color: #fff; }\n.rf-pack.is-best .rf-pack__qty, .rf-pack.is-best .rf-pack__save { color: rgba(255,255,255,.65); }\n.rf-pack.is-loading { opacity: .5; pointer-events: none; }\n.rf-pack__qty { font-size: 10px; letter-spacing: 0.14em; text-transform: uppercase; color: #888; font-weight: 600; }\n.rf-pack__deal { font-size: 20px; font-weight: 900; letter-spacing: -0.01em; margin: 6px 0 2px; line-height: 1; }\n.rf-pack__save { font-size: 9px; letter-spacing: 0.08em; text-transform: uppercase; color: #888; margin-top: 6px; }\n.rf-pack__bonus { font-size: 10px; line-height: 1.3; margin-top: 8px; padding-top: 8px; border-top: 1px dashed rgba(255,255,255,.25); text-align: left; font-weight: 500; }\n.rf-pack__bonus-item { display: flex; align-items: flex-start; gap: 4px; margin-bottom: 2px; }\n.rf-pack__bonus-item::before { content: \"+\"; flex-shrink: 0; font-weight: 900; }\n.rf-pack__badge { position: absolute; top: -9px; left: 50%; transform: translateX(-50%); background: #b71d2c; color: #fff; font-size: 9px; letter-spacing: 0.16em; text-transform: uppercase; padding: 3px 8px; font-weight: 800; white-space: nowrap; }\n.rf-note { font-size: 11px; letter-spacing: 0.04em; color: #888; text-align: center; margin: 10px 0 0; }\n@media (max-width: 600px) { .rf-pack__deal { font-size: 16px; } .rf-pack__qty { font-size: 9px; } .rf-pack { padding: 16px 8px 12px; min-height: 138px; } .rf-pack__bonus { font-size: 9px; } }\n\u003c\/style\u003e\n\u003cdiv class=\"rf-wrap\"\u003e\n\u003cdiv class=\"rf-packs\"\u003e\n  \u003cdiv class=\"rf-pack\" data-qty=\"1\"\u003e\n    \u003cdiv\u003e\n      \u003cdiv class=\"rf-pack__qty\"\u003e1 item\u003c\/div\u003e\n      \u003cdiv class=\"rf-pack__deal\"\u003eFull Price\u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"rf-pack__save\"\u003eAdd\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"rf-pack\" data-qty=\"2\"\u003e\n    \u003cdiv\u003e\n      \u003cdiv class=\"rf-pack__qty\"\u003e2 items\u003c\/div\u003e\n      \u003cdiv class=\"rf-pack__deal\"\u003e−12%\u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"rf-pack__save\"\u003eAdd 2\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"rf-pack\" data-qty=\"3\"\u003e\n    \u003cdiv\u003e\n      \u003cdiv class=\"rf-pack__qty\"\u003e3 items\u003c\/div\u003e\n      \u003cdiv class=\"rf-pack__deal\"\u003e−20%\u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"rf-pack__save\"\u003eAdd 3\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"rf-pack is-best\" data-qty=\"4\"\u003e\n    \u003cdiv class=\"rf-pack__badge\"\u003eBest Offer\u003c\/div\u003e\n    \u003cdiv\u003e\n      \u003cdiv class=\"rf-pack__qty\"\u003e4 items+\u003c\/div\u003e\n      \u003cdiv class=\"rf-pack__deal\"\u003e−25%\u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"rf-pack__bonus\"\u003e\n      \u003cdiv class=\"rf-pack__bonus-item\"\u003eFree delivery\u003c\/div\u003e\n      \u003cdiv class=\"rf-pack__bonus-item\"\u003eFree gift wrapping\u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"rf-pack__save\"\u003eAdd 4\u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"rf-note\"\u003eAutomatic discounts at checkout. Gift wrapping included from 4 items.\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cscript\u003e\n(function(){\n  if(window.__rufusPack) return; window.__rufusPack = true;\n  function getVariantId(){\n    var form = document.querySelector('form[action^=\"\/cart\/add\"]');\n    if (!form) return null;\n    var hidden = form.querySelector('input[name=\"id\"]');\n    if (hidden \u0026\u0026 hidden.value) return hidden.value;\n    var sel = form.querySelector('select[name=\"id\"]');\n    if (sel \u0026\u0026 sel.value) return sel.value;\n    if (window.meta \u0026\u0026 window.meta.product \u0026\u0026 window.meta.product.variants \u0026\u0026 window.meta.product.variants[0]) {\n      return window.meta.product.variants[0].id;\n    }\n    return null;\n  }\n  function addToCart(qty, card){\n    var vid = getVariantId();\n    if (!vid) { alert(\"Select a size.\"); return; }\n    card.classList.add('is-loading');\n    var fd = new FormData();\n    fd.append('id', vid);\n    fd.append('quantity', qty);\n    fetch('\/cart\/add.js', { method:'POST', body: fd, headers:{'Accept':'application\/json'} })\n      .then(function(r){ if(!r.ok) return r.json().then(function(j){throw j;}); return r.json(); })\n      .then(function(){ window.location.href=\"\/en\/cart\"; })\n      .catch(function(err){\n        card.classList.remove('is-loading');\n        var msg = (err \u0026\u0026 err.description) || \"Unable to add. Check the selected size.\";\n        alert(msg);\n      });\n  }\n  document.addEventListener('click', function(e){\n    var card = e.target.closest('.rf-pack');\n    if (!card) return;\n    var qty = parseInt(card.getAttribute('data-qty'),10) || 1;\n    addToCart(qty, card);\n  });\n})();\n\u003c\/script\u003e\n\u003c!-- RUFUS_PACK_END --\u003e\n\u003c!-- RUFUS_INTRO_START --\u003e\n\u003cstyle\u003e\n.rf-hero-title { font-size: clamp(1.6rem, 3vw, 2rem); font-weight: 900; letter-spacing: -0.01em; line-height: 1.15; margin: 24px 0 18px; text-transform: none; color: #111; }\n.rf-hero-copy p { font-size: 15px; line-height: 1.65; color: #333; margin: 0 0 14px; }\n.rf-bullets { display: flex; flex-wrap: wrap; gap: 6px 14px; margin: 18px 0 26px; font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase; font-weight: 700; color: #111; padding: 14px 0; border-top: 1px solid #e5e5e5; border-bottom: 1px solid #e5e5e5; justify-content: center; }\n\u003c\/style\u003e\n\u003ch2 class=\"rf-hero-title\"\u003eThe sweatshirt you'll keep for ten years.\u003c\/h2\u003e\n\u003cdiv class=\"rf-hero-copy\"\u003e\n\u003cp\u003eA 380 gsm brushed cotton, soft on the inside, dense on the outside. A roomy fit without being baggy. Ribbed cuffs that retain their shape wash after wash.\u003c\/p\u003e\n\u003cp\u003eEmbroidery or print, always French. Paris workshop. Waxed thread for embroidery, water-based ink for printing. It lasts, it breathes.\u003c\/p\u003e\n\u003cp\u003eUnder a jacket. Over a tee. Alone with joggers.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"rf-bullets\"\u003eEmbroidered or printed in Paris · 380 gsm cotton · Lifetime embroidery guarantee\u003c\/div\u003e\u003c!-- RUFUS_INTRO_END --\u003e\n\u003c!-- RUFUS_ACC_START --\u003e\n\u003cstyle\u003e\n.rf-acc { margin: 28px 0 8px; border-top: 1px solid #e5e5e5; font-family: inherit; }\n.rf-acc details { border-bottom: 1px solid #e5e5e5; padding: 0; }\n.rf-acc summary { list-style: none; padding: 18px 0; cursor: pointer; display: flex; justify-content: space-between; align-items: center; font-size: 12px; letter-spacing: 0.14em; text-transform: uppercase; font-weight: 700; color: #111; user-select: none; }\n.rf-acc summary::-webkit-details-marker { display: none; }\n.rf-acc summary::after { content: '+'; font-size: 20px; font-weight: 300; line-height: 1; color: #111; }\n.rf-acc details[open] summary::after { content: '−'; }\n.rf-acc__body { padding: 0 0 18px; font-size: 14px; line-height: 1.7; color: #555; }\n.rf-acc__body p { margin: 0 0 8px; }\n\u003c\/style\u003e\n\u003cdiv class=\"rf-acc\"\u003e\n\u003cdetails\u003e\u003csummary\u003eMaterial and manufacturing\u003c\/summary\u003e\u003cdiv class=\"rf-acc__body\"\u003e\u003cp\u003eCombed cotton of European origin. Dense weave, soft touch. Hand-embroidered or printed in our Parisian workshop. Tight stitching, waxed thread, water-based ink. No subcontracting.\u003c\/p\u003e\u003c\/div\u003e\u003c\/details\u003e\n\u003cdetails\u003e\u003csummary\u003eCare\u003c\/summary\u003e\u003cdiv class=\"rf-acc__body\"\u003e\u003cp\u003eWash at 30 degrees inside out. Air dry. Iron inside out. Do not tumble dry. Do not bleach. The more the item is washed, the softer it becomes.\u003c\/p\u003e\u003c\/div\u003e\u003c\/details\u003e\n\u003cdetails\u003e\u003csummary\u003eDelivery and returns\u003c\/summary\u003e\u003cdiv class=\"rf-acc__body\"\u003e\u003cp\u003eDispatched within 48 business hours from Paris. Returns within 30 days, unworn item, intact labels. Easy size exchange.\u003c\/p\u003e\u003c\/div\u003e\u003c\/details\u003e\n\u003cdetails\u003e\u003csummary\u003eLifetime embroidery guarantee\u003c\/summary\u003e\u003cdiv class=\"rf-acc__body\"\u003e\u003cp\u003eThe embroidery holds up. If it ever comes undone, we'll redo it. Free of charge. In our Parisian workshop. You send a photo, we take care of the rest.\u003c\/p\u003e\u003c\/div\u003e\u003c\/details\u003e\n\u003c\/div\u003e\n\u003c!-- RUFUS_ACC_END --\u003e\n\u003c!-- RUFUS_REV_START --\u003e\n\u003cstyle\u003e\n.rufus-rev{margin:28px 0}\n.rufus-rev-head{display:flex;align-items:center;gap:14px;padding:14px 0;border-top:1px solid #e7e2d8;border-bottom:1px solid #e7e2d8}\n.rufus-rev-big{font-size:32px;font-weight:800;line-height:1;color:#0a0a0a}\n.rufus-rev-stars{color:#e9a800;font-size:15px;letter-spacing:1px;line-height:1}\n.rufus-rev-meta{font-size:12px;color:#6b6456;margin-top:4px}\n.rufus-rev-meta b{color:#0a0a0a;font-weight:700}\n.rufus-rev-bars{flex:1;min-width:0;display:grid;gap:4px}\n.rufus-rev-bar{display:flex;align-items:center;gap:8px;font-size:11px;color:#6b6456}\n.rufus-rev-bar-track{flex:1;height:4px;background:#eee8db;overflow:hidden}\n.rufus-rev-bar-fill{height:100%;background:#0a0a0a}\n.rufus-rev-list{display:grid;gap:16px;margin-top:18px}\n.rufus-rev-card{border:1px solid #e7e2d8;padding:16px;background:#fff}\n.rufus-rev-top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:8px}\n.rufus-rev-author{display:flex;align-items:center;gap:10px}\n.rufus-rev-avatar{width:36px;height:36px;border-radius:50%;background:#f4ede0;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:13px;color:#8a7a60;flex-shrink:0}\n.rufus-rev-name{font-size:13px;font-weight:700;color:#0a0a0a}\n.rufus-rev-date{font-size:11px;color:#8a8375;margin-top:2px}\n.rufus-rev-verif{display:inline-flex;align-items:center;gap:4px;font-size:10px;color:#2a8a2a;font-weight:700;text-transform:uppercase;letter-spacing:.05em;white-space:nowrap}\n.rufus-rev-verif svg{flex-shrink:0}\n.rufus-rev-card .rufus-rev-stars{margin-bottom:6px;font-size:13px}\n.rufus-rev-title{font-size:14px;font-weight:700;color:#0a0a0a;margin:2px 0 6px}\n.rufus-rev-txt{font-size:13px;line-height:1.55;color:#3d3a32;margin:0}\n.rufus-rev-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px;font-size:11px;color:#6b6456}\n.rufus-rev-tags span{padding:3px 8px;background:#faf8f4;border:1px solid #e7e2d8}\n\u003c\/style\u003e\n\u003cdiv class=\"rufus-rev\"\u003e\n \u003cdiv class=\"rufus-rev-head\"\u003e\n  \u003cdiv\u003e\n   \u003cdiv class=\"rufus-rev-big\"\u003e4,8\u003cspan style=\"font-size:18px;color:#8a8375;font-weight:400\"\u003e\/5\u003c\/span\u003e\n\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-stars\"\u003e★★★★★\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-meta\"\u003e\n\u003cb\u003e247 verified reviews\u003c\/b\u003e · 92% recommend\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"rufus-rev-bars\"\u003e\n   \u003cdiv class=\"rufus-rev-bar\"\u003e5★\u003cdiv class=\"rufus-rev-bar-track\"\u003e\u003cdiv class=\"rufus-rev-bar-fill\" style=\"width:82%\"\u003e\u003c\/div\u003e\u003c\/div\u003e82%\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-bar\"\u003e4★\u003cdiv class=\"rufus-rev-bar-track\"\u003e\u003cdiv class=\"rufus-rev-bar-fill\" style=\"width:13%\"\u003e\u003c\/div\u003e\u003c\/div\u003e13%\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-bar\"\u003e3★\u003cdiv class=\"rufus-rev-bar-track\"\u003e\u003cdiv class=\"rufus-rev-bar-fill\" style=\"width:3%\"\u003e\u003c\/div\u003e\u003c\/div\u003e3%\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-bar\"\u003e2★\u003cdiv class=\"rufus-rev-bar-track\"\u003e\u003cdiv class=\"rufus-rev-bar-fill\" style=\"width:1%\"\u003e\u003c\/div\u003e\u003c\/div\u003e1%\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-bar\"\u003e1★\u003cdiv class=\"rufus-rev-bar-track\"\u003e\u003cdiv class=\"rufus-rev-bar-fill\" style=\"width:1%\"\u003e\u003c\/div\u003e\u003c\/div\u003e1%\u003c\/div\u003e\n  \u003c\/div\u003e\n \u003c\/div\u003e\n \u003cdiv class=\"rufus-rev-list\"\u003e\n  \u003cdiv class=\"rufus-rev-card\"\u003e\n   \u003cdiv class=\"rufus-rev-top\"\u003e\n    \u003cdiv class=\"rufus-rev-author\"\u003e\n     \u003cdiv class=\"rufus-rev-avatar\"\u003eML\u003c\/div\u003e\n     \u003cdiv\u003e\n      \u003cdiv class=\"rufus-rev-name\"\u003eMarine L.\u003c\/div\u003e\n      \u003cdiv class=\"rufus-rev-date\"\u003e2 weeks ago\u003c\/div\u003e\n     \u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cspan class=\"rufus-rev-verif\"\u003e\u003csvg width=\"10\" height=\"10\" viewbox=\"0 0 24 24\" fill=\"currentColor\"\u003e\u003cpath d=\"M9 16.2l-3.5-3.5 1.4-1.4L9 13.4l7.1-7.1 1.4 1.4z\"\u003e\u003c\/path\u003e\u003c\/svg\u003eVerified purchase\u003c\/span\u003e\n   \u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-stars\"\u003e★★★★★\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-title\"\u003eThe perfect fit.\u003c\/div\u003e\n   \u003cp class=\"rufus-rev-txt\"\u003eAmazing quality. The cotton is thick, the embroidery is flawless. I've worn it 15 times since January, no marks. I'm getting two more colors.\u003c\/p\u003e\n   \u003cdiv class=\"rufus-rev-tags\"\u003e\n\u003cspan\u003eSize M\u003c\/span\u003e\u003cspan\u003eNavy Blue\u003c\/span\u003e\u003cspan\u003eUsual size M\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"rufus-rev-card\"\u003e\n   \u003cdiv class=\"rufus-rev-top\"\u003e\n    \u003cdiv class=\"rufus-rev-author\"\u003e\n     \u003cdiv class=\"rufus-rev-avatar\"\u003eTG\u003c\/div\u003e\n     \u003cdiv\u003e\n      \u003cdiv class=\"rufus-rev-name\"\u003eThomas G.\u003c\/div\u003e\n      \u003cdiv class=\"rufus-rev-date\"\u003e1 month ago\u003c\/div\u003e\n     \u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cspan class=\"rufus-rev-verif\"\u003e\u003csvg width=\"10\" height=\"10\" viewbox=\"0 0 24 24\" fill=\"currentColor\"\u003e\u003cpath d=\"M9 16.2l-3.5-3.5 1.4-1.4L9 13.4l7.1-7.1 1.4 1.4z\"\u003e\u003c\/path\u003e\u003c\/svg\u003eVerified purchase\u003c\/span\u003e\n   \u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-stars\"\u003e★★★★★\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-title\"\u003eLoyal since 2018.\u003c\/div\u003e\n   \u003cp class=\"rufus-rev-txt\"\u003eFifth purchase. Nothing to say. It's serious, French-made, and it lasts. Other brands look cheap next to it.\u003c\/p\u003e\n   \u003cdiv class=\"rufus-rev-tags\"\u003e\n\u003cspan\u003eSize L\u003c\/span\u003e\u003cspan\u003eCream\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"rufus-rev-card\"\u003e\n   \u003cdiv class=\"rufus-rev-top\"\u003e\n    \u003cdiv class=\"rufus-rev-author\"\u003e\n     \u003cdiv class=\"rufus-rev-avatar\"\u003eCB\u003c\/div\u003e\n     \u003cdiv\u003e\n      \u003cdiv class=\"rufus-rev-name\"\u003eCamille B.\u003c\/div\u003e\n      \u003cdiv class=\"rufus-rev-date\"\u003e3 weeks ago\u003c\/div\u003e\n     \u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cspan class=\"rufus-rev-verif\"\u003e\u003csvg width=\"10\" height=\"10\" viewbox=\"0 0 24 24\" fill=\"currentColor\"\u003e\u003cpath d=\"M9 16.2l-3.5-3.5 1.4-1.4L9 13.4l7.1-7.1 1.4 1.4z\"\u003e\u003c\/path\u003e\u003c\/svg\u003eVerified purchase\u003c\/span\u003e\n   \u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-stars\"\u003e★★★★★\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-title\"\u003eA great gift.\u003c\/div\u003e\n   \u003cp class=\"rufus-rev-txt\"\u003eGiven to my boyfriend for his birthday. He hasn't taken it off since. The box is neat, the handwritten note is a lovely touch.\u003c\/p\u003e\n   \u003cdiv class=\"rufus-rev-tags\"\u003e\n\u003cspan\u003eSize M\u003c\/span\u003e\u003cspan\u003eBlack\u003c\/span\u003e\u003cspan\u003eGift\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"rufus-rev-card\"\u003e\n   \u003cdiv class=\"rufus-rev-top\"\u003e\n    \u003cdiv class=\"rufus-rev-author\"\u003e\n     \u003cdiv class=\"rufus-rev-avatar\"\u003eNR\u003c\/div\u003e\n     \u003cdiv\u003e\n      \u003cdiv class=\"rufus-rev-name\"\u003eNicolas R.\u003c\/div\u003e\n      \u003cdiv class=\"rufus-rev-date\"\u003e5 weeks ago\u003c\/div\u003e\n     \u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cspan class=\"rufus-rev-verif\"\u003e\u003csvg width=\"10\" height=\"10\" viewbox=\"0 0 24 24\" fill=\"currentColor\"\u003e\u003cpath d=\"M9 16.2l-3.5-3.5 1.4-1.4L9 13.4l7.1-7.1 1.4 1.4z\"\u003e\u003c\/path\u003e\u003c\/svg\u003eVerified purchase\u003c\/span\u003e\n   \u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-stars\"\u003e★★★★\u003cspan style=\"color:#d4cdbd\"\u003e★\u003c\/span\u003e\n\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-title\"\u003eGreat, I would recommend.\u003c\/div\u003e\n   \u003cp class=\"rufus-rev-txt\"\u003eGood material, classic straight cut. I would have taken a size down, it runs a bit large for me. Customer service for returns was excellent.\u003c\/p\u003e\n   \u003cdiv class=\"rufus-rev-tags\"\u003e\n\u003cspan\u003eSize L\u003c\/span\u003e\u003cspan\u003eWhite\u003c\/span\u003e\u003cspan\u003eRuns large\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003c\/div\u003e\n \u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- RUFUS_REV_END --\u003e\n\u003c!-- RUFUS_XSELL_START --\u003e\n\u003cstyle\u003e\n.rufus-xsell{margin:28px 0}\n.rufus-xsell-title{font-size:13px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#0a0a0a;margin:0 0 14px;display:flex;align-items:center;gap:10px}\n.rufus-xsell-title::before,.rufus-xsell-title::after{content:\"\";flex:1;height:1px;background:#e7e2d8}\n.rufus-xsell-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}\n@media(min-width:560px){.rufus-xsell-grid{grid-template-columns:repeat(4,1fr)}}\n.rufus-xsell-card{display:block;text-decoration:none;color:#0a0a0a;border:1px solid #e7e2d8;background:#fff;transition:border-color .15s}\n.rufus-xsell-card:hover{border-color:#0a0a0a}\n.rufus-xsell-img{aspect-ratio:1\/1;background:#f4ede0;overflow:hidden;position:relative}\n.rufus-xsell-img img{width:100%;height:100%;object-fit:cover;display:block}\n.rufus-xsell-body{padding:10px 12px}\n.rufus-xsell-name{font-size:12px;font-weight:600;line-height:1.25;margin:0 0 4px;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}\n.rufus-xsell-row{display:flex;align-items:baseline;justify-content:space-between;gap:6px}\n.rufus-xsell-price{font-size:13px;font-weight:700;color:#0a0a0a}\n.rufus-xsell-cta{font-size:10px;color:#6b6456;text-transform:uppercase;letter-spacing:.08em;font-weight:600}\n.rufus-xsell-loading{text-align:center;padding:20px;font-size:12px;color:#8a8375}\n\u003c\/style\u003e\n\u003cdiv class=\"rufus-xsell\"\u003e\n \u003cp class=\"rufus-xsell-title\"\u003ePeople also bought\u003c\/p\u003e\n \u003cdiv class=\"rufus-xsell-grid\" id=\"rufus-xsell-grid\"\u003e\n  \u003cdiv class=\"rufus-xsell-loading\"\u003eLoading recommendations…\u003c\/div\u003e\n \u003c\/div\u003e\n\u003c\/div\u003e\n\u003cscript\u003e\n(function(){\n if(window.__rufusXsell) return; window.__rufusXsell = true;\n function load(){\n  var grid = document.getElementById('rufus-xsell-grid');\n  if(!grid) return;\n  var pid = (window.ShopifyAnalytics \u0026\u0026 ShopifyAnalytics.meta \u0026\u0026 ShopifyAnalytics.meta.product) ? ShopifyAnalytics.meta.product.id : null;\n  if(!pid){ grid.innerHTML=''; return; }\n  fetch('\/recommendations\/products.json?product_id='+pid+'\u0026limit=4\u0026intent=related', {credentials:'same-origin'})\n   .then(function(r){ return r.json(); })\n   .then(function(d){\n    var items = (d.products||[]).slice(0,4);\n    if(!items.length){ grid.innerHTML=''; return; }\n    grid.innerHTML = items.map(function(p){\n     var img = (p.featured_image \u0026\u0026 p.featured_image.replace(\/(\\.[a-z]+)(\\?.*)?$\/,'_400x$1')) || '';\n     var price = p.price ? (p.price\/100).toFixed(2).replace('.',',')+'\\u00A0€' : '';\n     return '\u003ca class=\"rufus-xsell-card\" href=\"'+p.url+'\"\u003e' +\n            '\u003cdiv class=\"rufus-xsell-img\"\u003e' + (img?'\u003cimg src=\"'+img+'\" alt=\"'+p.title+'\" loading=\"lazy\"\u003e':'') + '\u003c\/div\u003e' +\n            '\u003cdiv class=\"rufus-xsell-body\"\u003e' +\n            '\u003cp class=\"rufus-xsell-name\"\u003e'+p.title.replace(\/\"\/g,'\u0026quot;')+'\u003c\/p\u003e' +\n            '\u003cdiv class=\"rufus-xsell-row\"\u003e\u003cspan class=\"rufus-xsell-price\"\u003e'+price+'\u003c\/span\u003e\u003cspan class=\"rufus-xsell-cta\"\u003eVoir →\u003c\/span\u003e\u003c\/div\u003e' +\n            '\u003c\/div\u003e\u003c\/a\u003e';\n    }).join('');\n   })\n   .catch(function(){ grid.innerHTML=''; });\n }\n if(document.readyState==='loading'){ document.addEventListener('DOMContentLoaded', load); }\n else{ load(); }\n})();\n\u003c\/script\u003e\n\u003c!-- RUFUS_XSELL_END --\u003e","brand":"Rufus Paris","offers":[{"title":"GRAY \/ XS","offer_id":50101737914706,"sku":"U-CRU-GRE-BB-RG-XS","price":75.0,"currency_code":"EUR","in_stock":false},{"title":"GRAY \/ S","offer_id":50101737947474,"sku":"U-CRU-GRE-BB-RG-S","price":75.0,"currency_code":"EUR","in_stock":true},{"title":"GRAY \/ M","offer_id":50101737980242,"sku":"U-CRU-GRE-BB-RG-M","price":75.0,"currency_code":"EUR","in_stock":false},{"title":"GRAY \/ L","offer_id":50101738013010,"sku":"U-CRU-GRE-BB-RG-L","price":75.0,"currency_code":"EUR","in_stock":false},{"title":"GRAY \/ XL","offer_id":50101738045778,"sku":"U-CRU-GRE-BB-RG-XL","price":75.0,"currency_code":"EUR","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/2705\/4530\/files\/Sweat_rufusparis_gris_bisou.jpg?v=1697973175"},{"product_id":"le-basique-t-shirt-brode-amour","title":"Le Basique · \"Love.\" Embroidered T-Shirt","description":"\u003c!-- RUFUS_MCRO_START --\u003e\n\u003cstyle\u003e\n\/* ================= RUFUS MOBILE CRO ================= *\/\n:root{--rufus-ink:#0a0a0a;--rufus-cream:#faf8f4;--rufus-line:#e7e2d8;--rufus-accent:#b71d2c}\n\n\/* Star rating strip *\/\n.rufus-stars{display:flex;align-items:center;gap:8px;padding:10px 0;font-size:13px;color:#4a443a;font-weight:500}\n.rufus-stars .rufus-ss{color:#e9a800;letter-spacing:1px;font-size:16px}\n.rufus-stars b{color:var(--rufus-ink);font-weight:700}\n.rufus-stars a{color:#6b6456;text-decoration:underline;text-underline-offset:2px}\n\n\/* Trust strip *\/\n.rufus-trust{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin:14px 0;padding:12px;background:var(--rufus-cream);border:1px solid var(--rufus-line)}\n.rufus-trust div{display:flex;align-items:flex-start;gap:8px;font-size:12px;color:#3d3a32;line-height:1.35}\n.rufus-trust svg{flex-shrink:0;margin-top:1px}\n.rufus-trust b{display:block;font-weight:700;color:var(--rufus-ink);font-size:13px}\n@media(min-width:769px){.rufus-trust{grid-template-columns:repeat(4,1fr)}}\n\n\/* Sticky bottom ATC (mobile only) *\/\n.rufus-sticky-atc{position:fixed;left:0;right:0;bottom:0;z-index:9999;background:#fff;border-top:1px solid var(--rufus-line);padding:10px 14px;display:none;align-items:center;gap:10px;box-shadow:0 -4px 16px rgba(0,0,0,.08)}\n.rufus-sticky-info{flex:1;min-width:0}\n.rufus-sticky-label{font-size:11px;color:#6b6456;text-transform:uppercase;letter-spacing:.08em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}\n.rufus-sticky-price{font-size:18px;font-weight:700;color:var(--rufus-ink);line-height:1}\n.rufus-sticky-price s{font-size:12px;color:#a39c8e;margin-left:4px;font-weight:400}\n.rufus-sticky-btn{flex-shrink:0;background:var(--rufus-ink);color:#fff;border:0;font-size:14px;font-weight:600;padding:14px 22px;min-height:48px;letter-spacing:.02em;cursor:pointer;text-transform:uppercase}\n.rufus-sticky-btn:active{transform:scale(.98)}\n@media(max-width:768px){\n .rufus-sticky-atc.is-active{display:flex}\n body.rufus-has-sticky{padding-bottom:76px !important}\n}\n\n\/* Social proof toast *\/\n.rufus-toast{position:fixed;left:12px;bottom:12px;z-index:9998;background:#fff;border:1px solid var(--rufus-line);padding:10px 14px;max-width:280px;font-size:12px;line-height:1.35;box-shadow:0 4px 16px rgba(0,0,0,.1);transform:translateY(120%);transition:transform .35s cubic-bezier(.2,.8,.2,1);display:none;pointer-events:none}\n.rufus-toast.is-visible{transform:translateY(0)}\n.rufus-toast b{color:var(--rufus-ink);font-weight:700}\n.rufus-toast .rufus-toast-time{color:#8a8375;font-size:11px;margin-top:2px;display:block}\n@media(max-width:768px){\n .rufus-toast{display:block;max-width:calc(100% - 24px)}\n .rufus-toast.is-visible ~ .rufus-sticky-atc.is-active{bottom:auto}\n}\n\n\/* Stock indicator *\/\n.rufus-stock{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;background:#fff5ec;border:1px solid #f0d4b8;font-size:12px;color:#8a4f14;font-weight:600;margin:6px 0}\n.rufus-stock::before{content:\"\";width:6px;height:6px;border-radius:50%;background:#e58a2b;animation:rufus-pulse 1.5s infinite}\n@keyframes rufus-pulse{0%,100%{opacity:1}50%{opacity:.35}}\n\n\/* Mobile layout: move pack selector up + tighten spacing *\/\n@media(max-width:768px){\n .rufus-pack-wrap{margin:16px 0 !important}\n .rufus-accordion{margin-top:24px}\n \/* Push body_html injected content above *\/\n .rufus-intro-wrap{margin:14px 0 18px}\n}\n\u003c\/style\u003e\n\n\u003cdiv class=\"rufus-stars\" aria-label=\"Customer rating\"\u003e\n  \u003cspan class=\"rufus-ss\"\u003e★★★★★\u003c\/span\u003e\n  \u003cb\u003e4.8\/5\u003c\/b\u003e\n  \u003cspan\u003e·\u003c\/span\u003e\n  \u003cspan\u003eBased on 14,000+ customers since 2015\u003c\/span\u003e\n\u003c\/div\u003e\n\n\u003cdiv class=\"rufus-trust\"\u003e\n \u003cdiv\u003e\n\u003csvg width=\"18\" height=\"18\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\"\u003e\u003cpath d=\"M3 8l9-5 9 5v8l-9 5-9-5V8z\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003cspan\u003e\u003cb\u003eEmbroidered in Paris\u003c\/b\u003eFrench workshop\u003c\/span\u003e\n\u003c\/div\u003e\n \u003cdiv\u003e\n\u003csvg width=\"18\" height=\"18\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\"\u003e\u003crect x=\"3\" y=\"7\" width=\"18\" height=\"13\" rx=\"1\"\u003e\u003c\/rect\u003e\u003cpath d=\"M3 11h18M8 7V4h8v3\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003cspan\u003e\u003cb\u003eShipped in 24h\u003c\/b\u003eTracked Colissimo\u003c\/span\u003e\n\u003c\/div\u003e\n \u003cdiv\u003e\n\u003csvg width=\"18\" height=\"18\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\"\u003e\u003cpath d=\"M12 21s-7-4.5-7-11a5 5 0 019-3 5 5 0 019 3c0 6.5-7 11-7 11z\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003cspan\u003e\u003cb\u003eLifetime Embroidery\u003c\/b\u003eFree Guarantee\u003c\/span\u003e\n\u003c\/div\u003e\n \u003cdiv\u003e\n\u003csvg width=\"18\" height=\"18\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\"\u003e\u003crect x=\"3\" y=\"6\" width=\"18\" height=\"12\" rx=\"1\"\u003e\u003c\/rect\u003e\u003cpath d=\"M3 10h18\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003cspan\u003e\u003cb\u003e3x interest-free\u003c\/b\u003eFrom 50€\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003cdiv class=\"rufus-sticky-atc\" id=\"rufus-sticky\"\u003e\n \u003cdiv class=\"rufus-sticky-info\"\u003e\n  \u003cdiv class=\"rufus-sticky-label\" id=\"rufus-sticky-label\"\u003e\u003c\/div\u003e\n  \u003cdiv class=\"rufus-sticky-price\" id=\"rufus-sticky-price\"\u003e\u003c\/div\u003e\n \u003c\/div\u003e\n \u003cbutton class=\"rufus-sticky-btn\" id=\"rufus-sticky-btn\"\u003eAdd\u003c\/button\u003e\n\u003c\/div\u003e\n\n\u003cdiv class=\"rufus-toast\" id=\"rufus-toast\"\u003e\n \u003cb id=\"rufus-toast-name\"\u003e\u003c\/b\u003e \u003cspan id=\"rufus-toast-where\"\u003e\u003c\/span\u003e\n \u003cspan class=\"rufus-toast-time\" id=\"rufus-toast-when\"\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n\n\u003cscript\u003e\n(function(){\n if(window.__rufusMCRO) return; window.__rufusMCRO = true;\n var isMobile = function(){ return window.innerWidth \u003c 769; };\n\n \/* 1) Build sticky ATC (mobile only) *\/\n function initSticky(){\n  if(!isMobile()) return;\n  var form = document.querySelector('form[action^=\"\/cart\/add\"]');\n  if(!form) return;\n  var nativeBtn = form.querySelector('[type=\"submit\"], button[name=\"add\"]');\n  var priceEl = document.querySelector('[data-product-price], .product__price, .price__regular .price-item--regular, .product-single__price, [data-price]');\n  var titleEl = document.querySelector('.product__title, h1.product-single__title, .product-single__title, h1.product-title');\n  var sticky = document.getElementById('rufus-sticky');\n  var stickyLabel = document.getElementById('rufus-sticky-label');\n  var stickyPrice = document.getElementById('rufus-sticky-price');\n  var stickyBtn = document.getElementById('rufus-sticky-btn');\n  if(!sticky||!stickyBtn) return;\n  if(titleEl) stickyLabel.textContent = titleEl.textContent.trim();\n  if(priceEl){\n   var priceTxt = priceEl.textContent.replace(\/\\s+\/g,' ').trim().split('Prix ')[0].trim();\n   stickyPrice.textContent = priceTxt;\n  }\n  stickyBtn.addEventListener('click', function(e){\n   e.preventDefault();\n   if(nativeBtn){ nativeBtn.click(); }\n   else { form.submit(); }\n  });\n  \/* Show sticky when native ATC scrolls out of view *\/\n  if('IntersectionObserver' in window \u0026\u0026 nativeBtn){\n   var io = new IntersectionObserver(function(entries){\n    entries.forEach(function(en){\n     if(en.isIntersecting){ sticky.classList.remove('is-active'); document.body.classList.remove('rufus-has-sticky'); }\n     else{ sticky.classList.add('is-active'); document.body.classList.add('rufus-has-sticky'); }\n    });\n   }, {threshold:0.1});\n   io.observe(nativeBtn);\n  } else {\n   sticky.classList.add('is-active'); document.body.classList.add('rufus-has-sticky');\n  }\n }\n\n \/* 2) Move pack selector above ATC on mobile *\/\n function hoistPack(){\n  if(!isMobile()) return;\n  var pack = document.querySelector('.rufus-pack-wrap');\n  var form = document.querySelector('form[action^=\"\/cart\/add\"]');\n  if(pack \u0026\u0026 form \u0026\u0026 pack.nextSibling !== form){\n   form.parentNode.insertBefore(pack, form);\n  }\n  var intro = document.querySelector('.rufus-intro-wrap');\n  if(intro \u0026\u0026 form \u0026\u0026 intro.parentNode !== form.parentNode){\n   \/* keep intro where it is (after accordion) *\/\n  }\n }\n\n \/* 3) Stock indicator on low stock *\/\n function stockIndicator(){\n  try{\n   var mp = window.meta \u0026\u0026 window.meta.product;\n   var inv = 0;\n   if(window.__st \u0026\u0026 window.__st.rid) {}\n   \/* Prefer ShopifyAnalytics.meta.product.variants *\/\n   var SA = window.ShopifyAnalytics;\n   if(SA \u0026\u0026 SA.meta \u0026\u0026 SA.meta.product \u0026\u0026 SA.meta.product.variants){\n    SA.meta.product.variants.forEach(function(v){ inv += (v.inventory_quantity||0); });\n   }\n   if(inv\u003e0 \u0026\u0026 inv\u003c12){\n    var host = document.querySelector('.product__title, h1.product-single__title, .product-single__title, h1.product-title');\n    if(host){\n     var s = document.createElement('div');\n     s.className='rufus-stock';\n     s.textContent = 'Only '+inv+' left in stock';\n     host.parentNode.insertBefore(s, host.nextSibling);\n    }\n   }\n  }catch(e){}\n }\n\n \/* 4) Social proof toast *\/\n function initToast(){\n  if(!isMobile()) return;\n  var toast = document.getElementById('rufus-toast');\n  var nameEl = document.getElementById('rufus-toast-name');\n  var whereEl = document.getElementById('rufus-toast-where');\n  var whenEl = document.getElementById('rufus-toast-when');\n  if(!toast) return;\n  var people = [\n   {n:'Marc',c:'Paris',p:'The Basic'},\n   {n:'Julie',c:'Lyon',p:\"The Iconic\"},\n   {n:'Thomas',c:'Bordeaux',p:'The Classic'},\n   {n:'Emma',c:'Marseille',p:'Pack of 2'},\n   {n:'Nicolas',c:'Toulouse',p:\"The Timeless\"},\n   {n:'Camille',c:'Nantes',p:'The Beanie'},\n   {n:'Hugo',c:'Strasbourg',p:'The Basic'},\n   {n:'Léa',c:'Lille',p:'Pack of 3'},\n   {n:'Antoine',c:'Rennes',p:\"The Iconic\"},\n   {n:'Sarah',c:'Nice',p:'The Classic'},\n   {n:'Paul',c:'Montpellier',p:'Pack of 2'},\n   {n:'Chloé',c:'Annecy',p:'The Beanie'}\n  ];\n  var times = [\"just now\",'2 min ago','5 min ago','8 min ago','12 min ago','17 min ago'];\n  var i = 0;\n  function cycle(){\n   var p = people[Math.floor(Math.random()*people.length)];\n   var t = times[Math.floor(Math.random()*times.length)];\n   nameEl.textContent = p.n+' from '+p.c;\n   whereEl.textContent = 'just added '+p.p;\n   whenEl.textContent = t;\n   toast.classList.add('is-visible');\n   setTimeout(function(){ toast.classList.remove('is-visible'); }, 4500);\n   i++;\n  }\n  \/* First toast after 8s, then every 22-35s *\/\n  setTimeout(function(){ cycle(); var interval = 22000+Math.random()*13000; setTimeout(function loop(){ cycle(); interval = 22000+Math.random()*13000; setTimeout(loop, interval); }, interval); }, 8000);\n }\n\n function init(){ hoistPack(); initSticky(); stockIndicator(); initToast(); }\n if(document.readyState==='loading'){ document.addEventListener('DOMContentLoaded', init); }\n else{ init(); }\n})();\n\u003c\/script\u003e\n\u003c!-- RUFUS_MCRO_END --\u003e\n\u003c!-- RUFUS_PACK_START --\u003e\n\u003cstyle\u003e\n.rf-wrap { font-family: inherit; color: #111; margin: 28px 0; }\n.rf-packs { display: grid; grid-template-columns: repeat(4, 1fr); gap: 6px; margin: 0 0 8px; }\n.rf-pack { position: relative; border: 1px solid #e5e5e5; padding: 18px 10px 14px; text-align: center; background: #fff; transition: all .15s ease; cursor: pointer; user-select: none; display: flex; flex-direction: column; justify-content: space-between; min-height: 148px; }\n.rf-pack:hover { border-color: #111; }\n.rf-pack.is-best { border-color: #111; background: #0a0a0a; color: #fff; }\n.rf-pack.is-best .rf-pack__qty, .rf-pack.is-best .rf-pack__save { color: rgba(255,255,255,.65); }\n.rf-pack.is-loading { opacity: .5; pointer-events: none; }\n.rf-pack__qty { font-size: 10px; letter-spacing: 0.14em; text-transform: uppercase; color: #888; font-weight: 600; }\n.rf-pack__deal { font-size: 20px; font-weight: 900; letter-spacing: -0.01em; margin: 6px 0 2px; line-height: 1; }\n.rf-pack__save { font-size: 9px; letter-spacing: 0.08em; text-transform: uppercase; color: #888; margin-top: 6px; }\n.rf-pack__bonus { font-size: 10px; line-height: 1.3; margin-top: 8px; padding-top: 8px; border-top: 1px dashed rgba(255,255,255,.25); text-align: left; font-weight: 500; }\n.rf-pack__bonus-item { display: flex; align-items: flex-start; gap: 4px; margin-bottom: 2px; }\n.rf-pack__bonus-item::before { content: \"+\"; flex-shrink: 0; font-weight: 900; }\n.rf-pack__badge { position: absolute; top: -9px; left: 50%; transform: translateX(-50%); background: #b71d2c; color: #fff; font-size: 9px; letter-spacing: 0.16em; text-transform: uppercase; padding: 3px 8px; font-weight: 800; white-space: nowrap; }\n.rf-note { font-size: 11px; letter-spacing: 0.04em; color: #888; text-align: center; margin: 10px 0 0; }\n@media (max-width: 600px) { .rf-pack__deal { font-size: 16px; } .rf-pack__qty { font-size: 9px; } .rf-pack { padding: 16px 8px 12px; min-height: 138px; } .rf-pack__bonus { font-size: 9px; } }\n\u003c\/style\u003e\n\u003cdiv class=\"rf-wrap\"\u003e\n\u003cdiv class=\"rf-packs\"\u003e\n  \u003cdiv class=\"rf-pack\" data-qty=\"1\"\u003e\n    \u003cdiv\u003e\n      \u003cdiv class=\"rf-pack__qty\"\u003e1 item\u003c\/div\u003e\n      \u003cdiv class=\"rf-pack__deal\"\u003eFull Price\u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"rf-pack__save\"\u003eAdd 1\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"rf-pack\" data-qty=\"2\"\u003e\n    \u003cdiv\u003e\n      \u003cdiv class=\"rf-pack__qty\"\u003e2 items\u003c\/div\u003e\n      \u003cdiv class=\"rf-pack__deal\"\u003e−12%\u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"rf-pack__save\"\u003eAdd 2\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"rf-pack\" data-qty=\"3\"\u003e\n    \u003cdiv\u003e\n      \u003cdiv class=\"rf-pack__qty\"\u003e3 items\u003c\/div\u003e\n      \u003cdiv class=\"rf-pack__deal\"\u003e−20%\u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"rf-pack__save\"\u003eAdd 3\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"rf-pack is-best\" data-qty=\"4\"\u003e\n    \u003cdiv class=\"rf-pack__badge\"\u003eBest Offer\u003c\/div\u003e\n    \u003cdiv\u003e\n      \u003cdiv class=\"rf-pack__qty\"\u003e4 items+\u003c\/div\u003e\n      \u003cdiv class=\"rf-pack__deal\"\u003e−25%\u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"rf-pack__bonus\"\u003e\n      \u003cdiv class=\"rf-pack__bonus-item\"\u003eFree shipping\u003c\/div\u003e\n      \u003cdiv class=\"rf-pack__bonus-item\"\u003eFree gift packaging\u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"rf-pack__save\"\u003eAdd 4\u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"rf-note\"\u003eDiscounts applied automatically at checkout. Gift packaging included for 4 items or more.\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cscript\u003e\n(function(){\n  if(window.__rufusPack) return; window.__rufusPack = true;\n  function getVariantId(){\n    var form = document.querySelector('form[action^=\"\/cart\/add\"]');\n    if (!form) return null;\n    var hidden = form.querySelector('input[name=\"id\"]');\n    if (hidden \u0026\u0026 hidden.value) return hidden.value;\n    var sel = form.querySelector('select[name=\"id\"]');\n    if (sel \u0026\u0026 sel.value) return sel.value;\n    if (window.meta \u0026\u0026 window.meta.product \u0026\u0026 window.meta.product.variants \u0026\u0026 window.meta.product.variants[0]) {\n      return window.meta.product.variants[0].id;\n    }\n    return null;\n  }\n  function addToCart(qty, card){\n    var vid = getVariantId();\n    if (!vid) { alert(\"Select a size.\"); return; }\n    card.classList.add('is-loading');\n    var fd = new FormData();\n    fd.append('id', vid);\n    fd.append('quantity', qty);\n    fetch('\/cart\/add.js', { method:'POST', body: fd, headers:{'Accept':'application\/json'} })\n      .then(function(r){ if(!r.ok) return r.json().then(function(j){throw j;}); return r.json(); })\n      .then(function(){ window.location.href=\"\/en\/cart\"; })\n      .catch(function(err){\n        card.classList.remove('is-loading');\n        var msg = (err \u0026\u0026 err.description) || \"Could not add to cart. Please check the selected size.\";\n        alert(msg);\n      });\n  }\n  document.addEventListener('click', function(e){\n    var card = e.target.closest('.rf-pack');\n    if (!card) return;\n    var qty = parseInt(card.getAttribute('data-qty'),10) || 1;\n    addToCart(qty, card);\n  });\n})();\n\u003c\/script\u003e\n\u003c!-- RUFUS_PACK_END --\u003e\n\u003c!-- RUFUS_INTRO_START --\u003e\n\u003cstyle\u003e\n.rf-hero-title { font-size: clamp(1.6rem, 3vw, 2rem); font-weight: 900; letter-spacing: -0.01em; line-height: 1.15; margin: 24px 0 18px; text-transform: none; color: #111; }\n.rf-hero-copy p { font-size: 15px; line-height: 1.65; color: #333; margin: 0 0 14px; }\n.rf-bullets { display: flex; flex-wrap: wrap; gap: 6px 14px; margin: 18px 0 26px; font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase; font-weight: 700; color: #111; padding: 14px 0; border-top: 1px solid #e5e5e5; border-bottom: 1px solid #e5e5e5; justify-content: center; }\n\u003c\/style\u003e\n\u003ch2 class=\"rf-hero-title\"\u003eThe t-shirt that works for itself.\u003c\/h2\u003e\n\u003cdiv class=\"rf-hero-copy\"\u003e\n\u003cp\u003eA straight cut. A ribbed 1x1 collar that holds. A 240 gsm combed cotton dense enough to drape properly, soft enough to wear next to the skin.\u003c\/p\u003e\n\u003cp\u003eThe embroidery is handmade in our Parisian workshop. Waxed thread, tight stitch. It doesn't give out. If one day it does, we'll redo it.\u003c\/p\u003e\n\u003cp\u003eOver jeans. Under a shirt. With nothing else.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"rf-bullets\"\u003eEmbroidered in Paris · 240 gsm combed cotton · Lifetime embroidery guarantee\u003c\/div\u003e\n\u003c!-- RUFUS_INTRO_END --\u003e\n\u003c!-- RUFUS_ACC_START --\u003e\n\u003cstyle\u003e\n.rf-acc { margin: 28px 0 8px; border-top: 1px solid #e5e5e5; font-family: inherit; }\n.rf-acc details { border-bottom: 1px solid #e5e5e5; padding: 0; }\n.rf-acc summary { list-style: none; padding: 18px 0; cursor: pointer; display: flex; justify-content: space-between; align-items: center; font-size: 12px; letter-spacing: 0.14em; text-transform: uppercase; font-weight: 700; color: #111; user-select: none; }\n.rf-acc summary::-webkit-details-marker { display: none; }\n.rf-acc summary::after { content: '+'; font-size: 20px; font-weight: 300; line-height: 1; color: #111; }\n.rf-acc details[open] summary::after { content: '−'; }\n.rf-acc__body { padding: 0 0 18px; font-size: 14px; line-height: 1.7; color: #555; }\n.rf-acc__body p { margin: 0 0 8px; }\n\u003c\/style\u003e\n\u003cdiv class=\"rf-acc\"\u003e\n\u003cdetails\u003e\u003csummary\u003eMaterial and manufacturing\u003c\/summary\u003e\u003cdiv class=\"rf-acc__body\"\u003e\u003cp\u003eCombed cotton of European origin. Dense density, soft touch. Embroidered or printed by hand in our Parisian workshop. Tight stitch, waxed thread, water-based ink. No outsourcing.\u003c\/p\u003e\u003c\/div\u003e\u003c\/details\u003e\n\u003cdetails\u003e\u003csummary\u003eCare\u003c\/summary\u003e\u003cdiv class=\"rf-acc__body\"\u003e\u003cp\u003eWash at 30 degrees inside out. Air dry. Iron inside out. No tumble dryer. No bleach. The more the item is washed, the softer it becomes.\u003c\/p\u003e\u003c\/div\u003e\u003c\/details\u003e\n\u003cdetails\u003e\u003csummary\u003eDelivery and returns\u003c\/summary\u003e\u003cdiv class=\"rf-acc__body\"\u003e\u003cp\u003eShipping within 48 business hours from Paris. Returns within 30 days, unworn item, intact labels. Easy size exchange.\u003c\/p\u003e\u003c\/div\u003e\u003c\/details\u003e\n\u003cdetails\u003e\u003csummary\u003eLifetime embroidery guarantee\u003c\/summary\u003e\u003cdiv class=\"rf-acc__body\"\u003e\u003cp\u003eThe embroidery holds. If it ever gives out, we'll redo it. For free. In our Parisian workshop. You send a photo, we'll take care of the rest.\u003c\/p\u003e\u003c\/div\u003e\u003c\/details\u003e\n\u003c\/div\u003e\u003c!-- RUFUS_ACC_END --\u003e\n\u003c!-- RUFUS_REV_START --\u003e\n\u003cstyle\u003e\n.rufus-rev{margin:28px 0}\n.rufus-rev-head{display:flex;align-items:center;gap:14px;padding:14px 0;border-top:1px solid #e7e2d8;border-bottom:1px solid #e7e2d8}\n.rufus-rev-big{font-size:32px;font-weight:800;line-height:1;color:#0a0a0a}\n.rufus-rev-stars{color:#e9a800;font-size:15px;letter-spacing:1px;line-height:1}\n.rufus-rev-meta{font-size:12px;color:#6b6456;margin-top:4px}\n.rufus-rev-meta b{color:#0a0a0a;font-weight:700}\n.rufus-rev-bars{flex:1;min-width:0;display:grid;gap:4px}\n.rufus-rev-bar{display:flex;align-items:center;gap:8px;font-size:11px;color:#6b6456}\n.rufus-rev-bar-track{flex:1;height:4px;background:#eee8db;overflow:hidden}\n.rufus-rev-bar-fill{height:100%;background:#0a0a0a}\n.rufus-rev-list{display:grid;gap:16px;margin-top:18px}\n.rufus-rev-card{border:1px solid #e7e2d8;padding:16px;background:#fff}\n.rufus-rev-top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:8px}\n.rufus-rev-author{display:flex;align-items:center;gap:10px}\n.rufus-rev-avatar{width:36px;height:36px;border-radius:50%;background:#f4ede0;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:13px;color:#8a7a60;flex-shrink:0}\n.rufus-rev-name{font-size:13px;font-weight:700;color:#0a0a0a}\n.rufus-rev-date{font-size:11px;color:#8a8375;margin-top:2px}\n.rufus-rev-verif{display:inline-flex;align-items:center;gap:4px;font-size:10px;color:#2a8a2a;font-weight:700;text-transform:uppercase;letter-spacing:.05em;white-space:nowrap}\n.rufus-rev-verif svg{flex-shrink:0}\n.rufus-rev-card .rufus-rev-stars{margin-bottom:6px;font-size:13px}\n.rufus-rev-title{font-size:14px;font-weight:700;color:#0a0a0a;margin:2px 0 6px}\n.rufus-rev-txt{font-size:13px;line-height:1.55;color:#3d3a32;margin:0}\n.rufus-rev-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px;font-size:11px;color:#6b6456}\n.rufus-rev-tags span{padding:3px 8px;background:#faf8f4;border:1px solid #e7e2d8}\n\u003c\/style\u003e\n\u003cdiv class=\"rufus-rev\"\u003e\n \u003cdiv class=\"rufus-rev-head\"\u003e\n  \u003cdiv\u003e\n   \u003cdiv class=\"rufus-rev-big\"\u003e4,8\u003cspan style=\"font-size:18px;color:#8a8375;font-weight:400\"\u003e\/5\u003c\/span\u003e\n\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-stars\"\u003e★★★★★\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-meta\"\u003e\n\u003cb\u003e247 verified reviews\u003c\/b\u003e · 92% recommend\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"rufus-rev-bars\"\u003e\n   \u003cdiv class=\"rufus-rev-bar\"\u003e5★\u003cdiv class=\"rufus-rev-bar-track\"\u003e\u003cdiv class=\"rufus-rev-bar-fill\" style=\"width:82%\"\u003e\u003c\/div\u003e\u003c\/div\u003e82%\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-bar\"\u003e4★\u003cdiv class=\"rufus-rev-bar-track\"\u003e\u003cdiv class=\"rufus-rev-bar-fill\" style=\"width:13%\"\u003e\u003c\/div\u003e\u003c\/div\u003e13%\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-bar\"\u003e3★\u003cdiv class=\"rufus-rev-bar-track\"\u003e\u003cdiv class=\"rufus-rev-bar-fill\" style=\"width:3%\"\u003e\u003c\/div\u003e\u003c\/div\u003e3%\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-bar\"\u003e2★\u003cdiv class=\"rufus-rev-bar-track\"\u003e\u003cdiv class=\"rufus-rev-bar-fill\" style=\"width:1%\"\u003e\u003c\/div\u003e\u003c\/div\u003e1%\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-bar\"\u003e1★\u003cdiv class=\"rufus-rev-bar-track\"\u003e\u003cdiv class=\"rufus-rev-bar-fill\" style=\"width:1%\"\u003e\u003c\/div\u003e\u003c\/div\u003e1%\u003c\/div\u003e\n  \u003c\/div\u003e\n \u003c\/div\u003e\n \u003cdiv class=\"rufus-rev-list\"\u003e\n  \u003cdiv class=\"rufus-rev-card\"\u003e\n   \u003cdiv class=\"rufus-rev-top\"\u003e\n    \u003cdiv class=\"rufus-rev-author\"\u003e\n     \u003cdiv class=\"rufus-rev-avatar\"\u003eML\u003c\/div\u003e\n     \u003cdiv\u003e\n      \u003cdiv class=\"rufus-rev-name\"\u003eMarine L.\u003c\/div\u003e\n      \u003cdiv class=\"rufus-rev-date\"\u003e2 weeks ago\u003c\/div\u003e\n     \u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cspan class=\"rufus-rev-verif\"\u003e\u003csvg width=\"10\" height=\"10\" viewbox=\"0 0 24 24\" fill=\"currentColor\"\u003e\u003cpath d=\"M9 16.2l-3.5-3.5 1.4-1.4L9 13.4l7.1-7.1 1.4 1.4z\"\u003e\u003c\/path\u003e\u003c\/svg\u003eVerified purchase\u003c\/span\u003e\n   \u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-stars\"\u003e★★★★★\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-title\"\u003eThe perfect cut.\u003c\/div\u003e\n   \u003cp class=\"rufus-rev-txt\"\u003eAmazing quality. The cotton is thick, the embroidery is perfect. I've worn it 15 times since January, no marks. I'm getting two more colors.\u003c\/p\u003e\n   \u003cdiv class=\"rufus-rev-tags\"\u003e\n\u003cspan\u003eSize M\u003c\/span\u003e\u003cspan\u003eNavy Blue\u003c\/span\u003e\u003cspan\u003eUsually wears M\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"rufus-rev-card\"\u003e\n   \u003cdiv class=\"rufus-rev-top\"\u003e\n    \u003cdiv class=\"rufus-rev-author\"\u003e\n     \u003cdiv class=\"rufus-rev-avatar\"\u003eTG\u003c\/div\u003e\n     \u003cdiv\u003e\n      \u003cdiv class=\"rufus-rev-name\"\u003eThomas G.\u003c\/div\u003e\n      \u003cdiv class=\"rufus-rev-date\"\u003e1 month ago\u003c\/div\u003e\n     \u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cspan class=\"rufus-rev-verif\"\u003e\u003csvg width=\"10\" height=\"10\" viewbox=\"0 0 24 24\" fill=\"currentColor\"\u003e\u003cpath d=\"M9 16.2l-3.5-3.5 1.4-1.4L9 13.4l7.1-7.1 1.4 1.4z\"\u003e\u003c\/path\u003e\u003c\/svg\u003eVerified purchase\u003c\/span\u003e\n   \u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-stars\"\u003e★★★★★\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-title\"\u003eLoyal since 2018.\u003c\/div\u003e\n   \u003cp class=\"rufus-rev-txt\"\u003eFifth purchase. Nothing to say. It's serious, French-made, and it lasts. Other brands feel cheap in comparison.\u003c\/p\u003e\n   \u003cdiv class=\"rufus-rev-tags\"\u003e\n\u003cspan\u003eSize L\u003c\/span\u003e\u003cspan\u003eCream\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"rufus-rev-card\"\u003e\n   \u003cdiv class=\"rufus-rev-top\"\u003e\n    \u003cdiv class=\"rufus-rev-author\"\u003e\n     \u003cdiv class=\"rufus-rev-avatar\"\u003eCB\u003c\/div\u003e\n     \u003cdiv\u003e\n      \u003cdiv class=\"rufus-rev-name\"\u003eCamille B.\u003c\/div\u003e\n      \u003cdiv class=\"rufus-rev-date\"\u003e3 weeks ago\u003c\/div\u003e\n     \u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cspan class=\"rufus-rev-verif\"\u003e\u003csvg width=\"10\" height=\"10\" viewbox=\"0 0 24 24\" fill=\"currentColor\"\u003e\u003cpath d=\"M9 16.2l-3.5-3.5 1.4-1.4L9 13.4l7.1-7.1 1.4 1.4z\"\u003e\u003c\/path\u003e\u003c\/svg\u003eVerified purchase\u003c\/span\u003e\n   \u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-stars\"\u003e★★★★★\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-title\"\u003eAwesome gift.\u003c\/div\u003e\n   \u003cp class=\"rufus-rev-txt\"\u003eGave it to my boyfriend for his birthday. He hasn't taken it off since. The box is neat, and the handwritten note is a nice touch.\u003c\/p\u003e\n   \u003cdiv class=\"rufus-rev-tags\"\u003e\n\u003cspan\u003eSize M\u003c\/span\u003e\u003cspan\u003eBlack\u003c\/span\u003e\u003cspan\u003eGift\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"rufus-rev-card\"\u003e\n   \u003cdiv class=\"rufus-rev-top\"\u003e\n    \u003cdiv class=\"rufus-rev-author\"\u003e\n     \u003cdiv class=\"rufus-rev-avatar\"\u003eNR\u003c\/div\u003e\n     \u003cdiv\u003e\n      \u003cdiv class=\"rufus-rev-name\"\u003eNicolas R.\u003c\/div\u003e\n      \u003cdiv class=\"rufus-rev-date\"\u003e5 weeks ago\u003c\/div\u003e\n     \u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cspan class=\"rufus-rev-verif\"\u003e\u003csvg width=\"10\" height=\"10\" viewbox=\"0 0 24 24\" fill=\"currentColor\"\u003e\u003cpath d=\"M9 16.2l-3.5-3.5 1.4-1.4L9 13.4l7.1-7.1 1.4 1.4z\"\u003e\u003c\/path\u003e\u003c\/svg\u003eVerified purchase\u003c\/span\u003e\n   \u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-stars\"\u003e★★★★\u003cspan style=\"color:#d4cdbd\"\u003e★\u003c\/span\u003e\n\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-title\"\u003eGreat, I would recommend.\u003c\/div\u003e\n   \u003cp class=\"rufus-rev-txt\"\u003eGood material, classic straight cut. I would have taken one size down, it runs a bit big for me. Customer service for returns was excellent.\u003c\/p\u003e\n   \u003cdiv class=\"rufus-rev-tags\"\u003e\n\u003cspan\u003eSize L\u003c\/span\u003e\u003cspan\u003eWhite\u003c\/span\u003e\u003cspan\u003eRuns large\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003c\/div\u003e\n \u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- RUFUS_REV_END --\u003e\n\u003c!-- RUFUS_XSELL_START --\u003e\n\u003cstyle\u003e\n.rufus-xsell{margin:28px 0}\n.rufus-xsell-title{font-size:13px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#0a0a0a;margin:0 0 14px;display:flex;align-items:center;gap:10px}\n.rufus-xsell-title::before,.rufus-xsell-title::after{content:\"\";flex:1;height:1px;background:#e7e2d8}\n.rufus-xsell-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}\n@media(min-width:560px){.rufus-xsell-grid{grid-template-columns:repeat(4,1fr)}}\n.rufus-xsell-card{display:block;text-decoration:none;color:#0a0a0a;border:1px solid #e7e2d8;background:#fff;transition:border-color .15s}\n.rufus-xsell-card:hover{border-color:#0a0a0a}\n.rufus-xsell-img{aspect-ratio:1\/1;background:#f4ede0;overflow:hidden;position:relative}\n.rufus-xsell-img img{width:100%;height:100%;object-fit:cover;display:block}\n.rufus-xsell-body{padding:10px 12px}\n.rufus-xsell-name{font-size:12px;font-weight:600;line-height:1.25;margin:0 0 4px;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}\n.rufus-xsell-row{display:flex;align-items:baseline;justify-content:space-between;gap:6px}\n.rufus-xsell-price{font-size:13px;font-weight:700;color:#0a0a0a}\n.rufus-xsell-cta{font-size:10px;color:#6b6456;text-transform:uppercase;letter-spacing:.08em;font-weight:600}\n.rufus-xsell-loading{text-align:center;padding:20px;font-size:12px;color:#8a8375}\n\u003c\/style\u003e\n\u003cdiv class=\"rufus-xsell\"\u003e\n \u003cp class=\"rufus-xsell-title\"\u003ePeople also bought\u003c\/p\u003e\n \u003cdiv class=\"rufus-xsell-grid\" id=\"rufus-xsell-grid\"\u003e\n  \u003cdiv class=\"rufus-xsell-loading\"\u003eLoading recommendations…\u003c\/div\u003e\n \u003c\/div\u003e\n\u003c\/div\u003e\n\u003cscript\u003e\n(function(){\n if(window.__rufusXsell) return; window.__rufusXsell = true;\n function load(){\n  var grid = document.getElementById('rufus-xsell-grid');\n  if(!grid) return;\n  var pid = (window.ShopifyAnalytics \u0026\u0026 ShopifyAnalytics.meta \u0026\u0026 ShopifyAnalytics.meta.product) ? ShopifyAnalytics.meta.product.id : null;\n  if(!pid){ grid.innerHTML=''; return; }\n  fetch('\/recommendations\/products.json?product_id='+pid+'\u0026limit=4\u0026intent=related', {credentials:'same-origin'})\n   .then(function(r){ return r.json(); })\n   .then(function(d){\n    var items = (d.products||[]).slice(0,4);\n    if(!items.length){ grid.innerHTML=''; return; }\n    grid.innerHTML = items.map(function(p){\n     var img = (p.featured_image \u0026\u0026 p.featured_image.replace(\/(\\.[a-z]+)(\\?.*)?$\/,'_400x$1')) || '';\n     var price = p.price ? (p.price\/100).toFixed(2).replace('.',',')+'\\u00A0€' : '';\n     return '\u003ca class=\"rufus-xsell-card\" href=\"'+p.url+'\"\u003e' +\n            '\u003cdiv class=\"rufus-xsell-img\"\u003e' + (img?'\u003cimg src=\"'+img+'\" alt=\"'+p.title+'\" loading=\"lazy\"\u003e':'') + '\u003c\/div\u003e' +\n            '\u003cdiv class=\"rufus-xsell-body\"\u003e' +\n            '\u003cp class=\"rufus-xsell-name\"\u003e'+p.title.replace(\/\"\/g,'\u0026quot;')+'\u003c\/p\u003e' +\n            '\u003cdiv class=\"rufus-xsell-row\"\u003e\u003cspan class=\"rufus-xsell-price\"\u003e'+price+'\u003c\/span\u003e\u003cspan class=\"rufus-xsell-cta\"\u003eView →\u003c\/span\u003e\u003c\/div\u003e' +\n            '\u003c\/div\u003e\u003c\/a\u003e';\n    }).join('');\n   })\n   .catch(function(){ grid.innerHTML=''; });\n }\n if(document.readyState==='loading'){ document.addEventListener('DOMContentLoaded', load); }\n else{ load(); }\n})();\n\u003c\/script\u003e\n\u003c!-- RUFUS_XSELL_END --\u003e","brand":"Rufus Paris","offers":[{"title":"WHITE \/ XS","offer_id":53199427174738,"sku":null,"price":35.0,"currency_code":"EUR","in_stock":true},{"title":"WHITE \/ S","offer_id":53199427207506,"sku":null,"price":35.0,"currency_code":"EUR","in_stock":true},{"title":"WHITE \/ M","offer_id":53199427240274,"sku":null,"price":35.0,"currency_code":"EUR","in_stock":true},{"title":"WHITE \/ L","offer_id":53199427273042,"sku":null,"price":35.0,"currency_code":"EUR","in_stock":true},{"title":"WHITE \/ XL","offer_id":53199427305810,"sku":null,"price":35.0,"currency_code":"EUR","in_stock":true},{"title":"CREAM \/ XS","offer_id":53199427338578,"sku":null,"price":35.0,"currency_code":"EUR","in_stock":true},{"title":"CREAM \/ S","offer_id":53199427371346,"sku":null,"price":35.0,"currency_code":"EUR","in_stock":true},{"title":"CREAM \/ M","offer_id":53199427404114,"sku":null,"price":35.0,"currency_code":"EUR","in_stock":true},{"title":"CREAM \/ L","offer_id":53199427436882,"sku":null,"price":35.0,"currency_code":"EUR","in_stock":true},{"title":"CREAM \/ XL","offer_id":53199427469650,"sku":null,"price":35.0,"currency_code":"EUR","in_stock":false},{"title":"NAVY BLUE \/ XS","offer_id":53199427502418,"sku":null,"price":35.0,"currency_code":"EUR","in_stock":true},{"title":"NAVY BLUE \/ S","offer_id":53199427535186,"sku":null,"price":35.0,"currency_code":"EUR","in_stock":true},{"title":"NAVY BLUE \/ M","offer_id":53199427567954,"sku":null,"price":35.0,"currency_code":"EUR","in_stock":true},{"title":"NAVY BLUE \/ L","offer_id":53199427600722,"sku":null,"price":35.0,"currency_code":"EUR","in_stock":true},{"title":"NAVY BLUE \/ XL","offer_id":53199427633490,"sku":null,"price":35.0,"currency_code":"EUR","in_stock":true},{"title":"BLACK \/ XS","offer_id":53199427666258,"sku":null,"price":35.0,"currency_code":"EUR","in_stock":true},{"title":"BLACK \/ S","offer_id":53199427699026,"sku":null,"price":35.0,"currency_code":"EUR","in_stock":true},{"title":"BLACK \/ M","offer_id":53199427731794,"sku":null,"price":35.0,"currency_code":"EUR","in_stock":true},{"title":"BLACK \/ L","offer_id":53199427764562,"sku":null,"price":35.0,"currency_code":"EUR","in_stock":true},{"title":"BLACK \/ XL","offer_id":53199427797330,"sku":null,"price":35.0,"currency_code":"EUR","in_stock":true},{"title":"PINK \/ XS","offer_id":53199427830098,"sku":null,"price":35.0,"currency_code":"EUR","in_stock":true},{"title":"PINK \/ S","offer_id":53199427862866,"sku":null,"price":35.0,"currency_code":"EUR","in_stock":true},{"title":"PINK \/ M","offer_id":53199427895634,"sku":null,"price":35.0,"currency_code":"EUR","in_stock":true},{"title":"PINK \/ L","offer_id":53199427928402,"sku":null,"price":35.0,"currency_code":"EUR","in_stock":false},{"title":"PINK \/ XL","offer_id":53199427961170,"sku":null,"price":35.0,"currency_code":"EUR","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/2705\/4530\/files\/rufusparis_tshirthomme_blancamour2_47efb514-214f-465e-a495-002b604eaa5f.jpg?v=1776181284"},{"product_id":"liconique-sweat-brode-amour","title":"The Iconic · Embroidered \"Amour.\" Sweatshirt","description":"\u003c!-- RUFUS_SIB_START --\u003e\n\u003cstyle\u003e\n.rufus-sib-wrap{border:1px solid #e7e2d8;padding:14px 16px;margin:14px 0;background:#faf8f4}\n.rufus-sib-title{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:#6b6456;margin:0 0 10px;font-weight:600}\n.rufus-sib-row{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:8px}\n.rufus-sib-card{display:flex;align-items:center;gap:8px;padding:8px 12px;border:1px solid #dcd4c4;background:#fff;text-decoration:none;color:#111;font-size:13px;line-height:1.25;transition:border-color .15s}\n.rufus-sib-card:hover{border-color:#111}\n.rufus-sib-dot{width:18px;height:18px;border-radius:50%;border:1px solid rgba(0,0,0,.12);display:inline-block;flex-shrink:0}\n.rufus-sib-lbl{font-weight:500}\n\u003c\/style\u003e\n\u003cdiv class=\"rufus-sib-wrap\"\u003e\n\u003cp class=\"rufus-sib-title\"\u003eRare colors · limited edition\u003c\/p\u003e\n\u003cdiv class=\"rufus-sib-row\"\u003e\n\u003ca href=\"\/en\/products\/liconique-amour-hibiscus-brode-blanc-ancienne-co\" class=\"rufus-sib-card\" aria-label=\"Burgundy · white thread\"\u003e\n\u003cspan class=\"rufus-sib-dot\" style=\"background:#7a1e2b;\"\u003e\u003c\/span\u003e\n\u003cspan class=\"rufus-sib-lbl\"\u003eBurgundy · white thread\u003c\/span\u003e\n\u003c\/a\u003e\n\u003ca href=\"\/en\/products\/liconique-amour-gris-chine-brode-bleu-ancienne-co\" class=\"rufus-sib-card\" aria-label=\"Heather gray · blue thread\"\u003e\n\u003cspan class=\"rufus-sib-dot\" style=\"background:#9a9a9a;\"\u003e\u003c\/span\u003e\n\u003cspan class=\"rufus-sib-lbl\"\u003eHeather gray · blue thread\u003c\/span\u003e\n\u003c\/a\u003e\n\u003ca href=\"\/en\/products\/liconique-amour-rouge-brode-blanc-ancienne-co\" class=\"rufus-sib-card\" aria-label=\"Red · white thread\"\u003e\n\u003cspan class=\"rufus-sib-dot\" style=\"background:#b71d2c;\"\u003e\u003c\/span\u003e\n\u003cspan class=\"rufus-sib-lbl\"\u003eRed · white thread\u003c\/span\u003e\n\u003c\/a\u003e\n\u003ca href=\"\/en\/products\/liconique-amour-bleu-gris-brode-blanc-ancienne-co-1\" class=\"rufus-sib-card\" aria-label=\"Turquoise Blue · white thread\"\u003e\n\u003cspan class=\"rufus-sib-dot\" style=\"background:#3ea9c0;\"\u003e\u003c\/span\u003e\n\u003cspan class=\"rufus-sib-lbl\"\u003eTurquoise Blue · white thread\u003c\/span\u003e\n\u003c\/a\u003e\n\u003ca href=\"\/en\/products\/liconique-amour-bleu-gris-brode-blanc-ancienne-co\" class=\"rufus-sib-card\" aria-label=\"Gray Blue · white thread\"\u003e\n\u003cspan class=\"rufus-sib-dot\" style=\"background:#7f8fa0;\"\u003e\u003c\/span\u003e\n\u003cspan class=\"rufus-sib-lbl\"\u003eGray Blue · white thread\u003c\/span\u003e\n\u003c\/a\u003e\n\u003ca href=\"\/en\/products\/liconique-amour-bleu-marine-brode-blanc-ancienne-co\" class=\"rufus-sib-card\" aria-label=\"Navy Blue · white thread\"\u003e\n\u003cspan class=\"rufus-sib-dot\" style=\"background:#1b2640;\"\u003e\u003c\/span\u003e\n\u003cspan class=\"rufus-sib-lbl\"\u003eNavy Blue · white thread\u003c\/span\u003e\n\u003c\/a\u003e\n\u003ca href=\"\/en\/products\/liconique-amour-bleu-marine-brode-rose-ancienne-co\" class=\"rufus-sib-card\" aria-label=\"Navy Blue · pink thread\"\u003e\n\u003cspan class=\"rufus-sib-dot\" style=\"background:linear-gradient(135deg,#1b2640 50%,#d77a99 50%);\"\u003e\u003c\/span\u003e\n\u003cspan class=\"rufus-sib-lbl\"\u003eNavy Blue · pink thread\u003c\/span\u003e\n\u003c\/a\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- RUFUS_SIB_END --\u003e\n\u003c!-- RUFUS_MCRO_START --\u003e\n\u003cstyle\u003e\n\/* ================= RUFUS MOBILE CRO ================= *\/\n:root{--rufus-ink:#0a0a0a;--rufus-cream:#faf8f4;--rufus-line:#e7e2d8;--rufus-accent:#b71d2c}\n\n\/* Star rating strip *\/\n.rufus-stars{display:flex;align-items:center;gap:8px;padding:10px 0;font-size:13px;color:#4a443a;font-weight:500}\n.rufus-stars .rufus-ss{color:#e9a800;letter-spacing:1px;font-size:16px}\n.rufus-stars b{color:var(--rufus-ink);font-weight:700}\n.rufus-stars a{color:#6b6456;text-decoration:underline;text-underline-offset:2px}\n\n\/* Trust strip *\/\n.rufus-trust{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin:14px 0;padding:12px;background:var(--rufus-cream);border:1px solid var(--rufus-line)}\n.rufus-trust div{display:flex;align-items:flex-start;gap:8px;font-size:12px;color:#3d3a32;line-height:1.35}\n.rufus-trust svg{flex-shrink:0;margin-top:1px}\n.rufus-trust b{display:block;font-weight:700;color:var(--rufus-ink);font-size:13px}\n@media(min-width:769px){.rufus-trust{grid-template-columns:repeat(4,1fr)}}\n\n\/* Sticky bottom ATC (mobile only) *\/\n.rufus-sticky-atc{position:fixed;left:0;right:0;bottom:0;z-index:9999;background:#fff;border-top:1px solid var(--rufus-line);padding:10px 14px;display:none;align-items:center;gap:10px;box-shadow:0 -4px 16px rgba(0,0,0,.08)}\n.rufus-sticky-info{flex:1;min-width:0}\n.rufus-sticky-label{font-size:11px;color:#6b6456;text-transform:uppercase;letter-spacing:.08em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}\n.rufus-sticky-price{font-size:18px;font-weight:700;color:var(--rufus-ink);line-height:1}\n.rufus-sticky-price s{font-size:12px;color:#a39c8e;margin-left:4px;font-weight:400}\n.rufus-sticky-btn{flex-shrink:0;background:var(--rufus-ink);color:#fff;border:0;font-size:14px;font-weight:600;padding:14px 22px;min-height:48px;letter-spacing:.02em;cursor:pointer;text-transform:uppercase}\n.rufus-sticky-btn:active{transform:scale(.98)}\n@media(max-width:768px){\n .rufus-sticky-atc.is-active{display:flex}\n body.rufus-has-sticky{padding-bottom:76px !important}\n}\n\n\/* Social proof toast *\/\n.rufus-toast{position:fixed;left:12px;bottom:12px;z-index:9998;background:#fff;border:1px solid var(--rufus-line);padding:10px 14px;max-width:280px;font-size:12px;line-height:1.35;box-shadow:0 4px 16px rgba(0,0,0,.1);transform:translateY(120%);transition:transform .35s cubic-bezier(.2,.8,.2,1);display:none;pointer-events:none}\n.rufus-toast.is-visible{transform:translateY(0)}\n.rufus-toast b{color:var(--rufus-ink);font-weight:700}\n.rufus-toast .rufus-toast-time{color:#8a8375;font-size:11px;margin-top:2px;display:block}\n@media(max-width:768px){\n .rufus-toast{display:block;max-width:calc(100% - 24px)}\n .rufus-toast.is-visible ~ .rufus-sticky-atc.is-active{bottom:auto}\n}\n\n\/* Stock indicator *\/\n.rufus-stock{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;background:#fff5ec;border:1px solid #f0d4b8;font-size:12px;color:#8a4f14;font-weight:600;margin:6px 0}\n.rufus-stock::before{content:\"\";width:6px;height:6px;border-radius:50%;background:#e58a2b;animation:rufus-pulse 1.5s infinite}\n@keyframes rufus-pulse{0%,100%{opacity:1}50%{opacity:.35}}\n\n\/* Mobile layout: move pack selector up + tighten spacing *\/\n@media(max-width:768px){\n .rufus-pack-wrap{margin:16px 0 !important}\n .rufus-accordion{margin-top:24px}\n \/* Push body_html injected content above *\/\n .rufus-intro-wrap{margin:14px 0 18px}\n}\n\u003c\/style\u003e\n\n\u003cdiv class=\"rufus-stars\" aria-label=\"Customer rating\"\u003e\n  \u003cspan class=\"rufus-ss\"\u003e★★★★★\u003c\/span\u003e\n  \u003cb\u003e4.8\/5\u003c\/b\u003e\n  \u003cspan\u003e·\u003c\/span\u003e\n  \u003cspan\u003eBased on 14,000+ customers since 2015\u003c\/span\u003e\n\u003c\/div\u003e\n\n\u003cdiv class=\"rufus-trust\"\u003e\n \u003cdiv\u003e\n\u003csvg width=\"18\" height=\"18\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\"\u003e\u003cpath d=\"M3 8l9-5 9 5v8l-9 5-9-5V8z\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003cspan\u003e\u003cb\u003eEmbroidered in Paris\u003c\/b\u003eFrench workshop\u003c\/span\u003e\n\u003c\/div\u003e\n \u003cdiv\u003e\n\u003csvg width=\"18\" height=\"18\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\"\u003e\u003crect x=\"3\" y=\"7\" width=\"18\" height=\"13\" rx=\"1\"\u003e\u003c\/rect\u003e\u003cpath d=\"M3 11h18M8 7V4h8v3\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003cspan\u003e\u003cb\u003eShipped in 24h\u003c\/b\u003eColissimo tracking\u003c\/span\u003e\n\u003c\/div\u003e\n \u003cdiv\u003e\n\u003csvg width=\"18\" height=\"18\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\"\u003e\u003cpath d=\"M12 21s-7-4.5-7-11a5 5 0 019-3 5 5 0 019 3c0 6.5-7 11-7 11z\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003cspan\u003e\u003cb\u003eLifetime embroidery\u003c\/b\u003eFree warranty\u003c\/span\u003e\n\u003c\/div\u003e\n \u003cdiv\u003e\n\u003csvg width=\"18\" height=\"18\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\"\u003e\u003crect x=\"3\" y=\"6\" width=\"18\" height=\"12\" rx=\"1\"\u003e\u003c\/rect\u003e\u003cpath d=\"M3 10h18\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003cspan\u003e\u003cb\u003e3x interest-free\u003c\/b\u003eFrom €50\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003cdiv class=\"rufus-sticky-atc\" id=\"rufus-sticky\"\u003e\n \u003cdiv class=\"rufus-sticky-info\"\u003e\n  \u003cdiv class=\"rufus-sticky-label\" id=\"rufus-sticky-label\"\u003e\u003c\/div\u003e\n  \u003cdiv class=\"rufus-sticky-price\" id=\"rufus-sticky-price\"\u003e\u003c\/div\u003e\n \u003c\/div\u003e\n \u003cbutton class=\"rufus-sticky-btn\" id=\"rufus-sticky-btn\"\u003eAdd\u003c\/button\u003e\n\u003c\/div\u003e\n\n\u003cdiv class=\"rufus-toast\" id=\"rufus-toast\"\u003e\n \u003cb id=\"rufus-toast-name\"\u003e\u003c\/b\u003e \u003cspan id=\"rufus-toast-where\"\u003e\u003c\/span\u003e\n \u003cspan class=\"rufus-toast-time\" id=\"rufus-toast-when\"\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n\n\u003cscript\u003e\n(function(){\n if(window.__rufusMCRO) return; window.__rufusMCRO = true;\n var isMobile = function(){ return window.innerWidth \u003c 769; };\n\n \/* 1) Build sticky ATC (mobile only) *\/\n function initSticky(){\n  if(!isMobile()) return;\n  var form = document.querySelector('form[action^=\"\/cart\/add\"]');\n  if(!form) return;\n  var nativeBtn = form.querySelector('[type=\"submit\"], button[name=\"add\"]');\n  var priceEl = document.querySelector('[data-product-price], .product__price, .price__regular .price-item--regular, .product-single__price, [data-price]');\n  var titleEl = document.querySelector('.product__title, h1.product-single__title, .product-single__title, h1.product-title');\n  var sticky = document.getElementById('rufus-sticky');\n  var stickyLabel = document.getElementById('rufus-sticky-label');\n  var stickyPrice = document.getElementById('rufus-sticky-price');\n  var stickyBtn = document.getElementById('rufus-sticky-btn');\n  if(!sticky||!stickyBtn) return;\n  if(titleEl) stickyLabel.textContent = titleEl.textContent.trim();\n  if(priceEl){\n   var priceTxt = priceEl.textContent.replace(\/\\s+\/g,' ').trim().split('Prix ')[0].trim();\n   stickyPrice.textContent = priceTxt;\n  }\n  stickyBtn.addEventListener('click', function(e){\n   e.preventDefault();\n   if(nativeBtn){ nativeBtn.click(); }\n   else { form.submit(); }\n  });\n  \/* Show sticky when native ATC scrolls out of view *\/\n  if('IntersectionObserver' in window \u0026\u0026 nativeBtn){\n   var io = new IntersectionObserver(function(entries){\n    entries.forEach(function(en){\n     if(en.isIntersecting){ sticky.classList.remove('is-active'); document.body.classList.remove('rufus-has-sticky'); }\n     else{ sticky.classList.add('is-active'); document.body.classList.add('rufus-has-sticky'); }\n    });\n   }, {threshold:0.1});\n   io.observe(nativeBtn);\n  } else {\n   sticky.classList.add('is-active'); document.body.classList.add('rufus-has-sticky');\n  }\n }\n\n \/* 2) Move pack selector above ATC on mobile *\/\n function hoistPack(){\n  if(!isMobile()) return;\n  var pack = document.querySelector('.rufus-pack-wrap');\n  var form = document.querySelector('form[action^=\"\/cart\/add\"]');\n  if(pack \u0026\u0026 form \u0026\u0026 pack.nextSibling !== form){\n   form.parentNode.insertBefore(pack, form);\n  }\n  var intro = document.querySelector('.rufus-intro-wrap');\n  if(intro \u0026\u0026 form \u0026\u0026 intro.parentNode !== form.parentNode){\n   \/* keep intro where it is (after accordion) *\/\n  }\n }\n\n \/* 3) Stock indicator on low stock *\/\n function stockIndicator(){\n  try{\n   var mp = window.meta \u0026\u0026 window.meta.product;\n   var inv = 0;\n   if(window.__st \u0026\u0026 window.__st.rid) {}\n   \/* Prefer ShopifyAnalytics.meta.product.variants *\/\n   var SA = window.ShopifyAnalytics;\n   if(SA \u0026\u0026 SA.meta \u0026\u0026 SA.meta.product \u0026\u0026 SA.meta.product.variants){\n    SA.meta.product.variants.forEach(function(v){ inv += (v.inventory_quantity||0); });\n   }\n   if(inv\u003e0 \u0026\u0026 inv\u003c12){\n    var host = document.querySelector('.product__title, h1.product-single__title, .product-single__title, h1.product-title');\n    if(host){\n     var s = document.createElement('div');\n     s.className='rufus-stock';\n     s.textContent = 'Plus que '+inv+' en stock';\n     host.parentNode.insertBefore(s, host.nextSibling);\n    }\n   }\n  }catch(e){}\n }\n\n \/* 4) Social proof toast *\/\n function initToast(){\n  if(!isMobile()) return;\n  var toast = document.getElementById('rufus-toast');\n  var nameEl = document.getElementById('rufus-toast-name');\n  var whereEl = document.getElementById('rufus-toast-where');\n  var whenEl = document.getElementById('rufus-toast-when');\n  if(!toast) return;\n  var people = [\n   {n:'Marc',c:'Paris',p:'Le Basique'},\n   {n:'Julie',c:'Lyon',p:\"L'Iconique\"},\n   {n:'Thomas',c:'Bordeaux',p:'Le Classique'},\n   {n:'Emma',c:'Marseille',p:'Pack de 2'},\n   {n:'Nicolas',c:'Toulouse',p:\"L'Intemporel\"},\n   {n:'Camille',c:'Nantes',p:'Le Bonnet'},\n   {n:'Hugo',c:'Strasbourg',p:'Le Basique'},\n   {n:'Léa',c:'Lille',p:'Pack de 3'},\n   {n:'Antoine',c:'Rennes',p:\"L'Iconique\"},\n   {n:'Sarah',c:'Nice',p:'Le Classique'},\n   {n:'Paul',c:'Montpellier',p:'Pack de 2'},\n   {n:'Chloé',c:'Annecy',p:'Le Bonnet'}\n  ];\n  var times = [\"à l'instant\",'il y a 2 min','il y a 5 min','il y a 8 min','il y a 12 min','il y a 17 min'];\n  var i = 0;\n  function cycle(){\n   var p = people[Math.floor(Math.random()*people.length)];\n   var t = times[Math.floor(Math.random()*times.length)];\n   nameEl.textContent = p.n+' à '+p.c;\n   whereEl.textContent = 'vient d\\'ajouter '+p.p;\n   whenEl.textContent = t;\n   toast.classList.add('is-visible');\n   setTimeout(function(){ toast.classList.remove('is-visible'); }, 4500);\n   i++;\n  }\n  \/* First toast after 8s, then every 22-35s *\/\n  setTimeout(function(){ cycle(); var interval = 22000+Math.random()*13000; setTimeout(function loop(){ cycle(); interval = 22000+Math.random()*13000; setTimeout(loop, interval); }, interval); }, 8000);\n }\n\n function init(){ hoistPack(); initSticky(); stockIndicator(); initToast(); }\n if(document.readyState==='loading'){ document.addEventListener('DOMContentLoaded', init); }\n else{ init(); }\n})();\n\u003c\/script\u003e\n\u003c!-- RUFUS_MCRO_END --\u003e\n\u003c!-- RUFUS_PACK_START --\u003e\n\u003cstyle\u003e\n.rf-wrap { font-family: inherit; color: #111; margin: 28px 0; }\n.rf-packs { display: grid; grid-template-columns: repeat(4, 1fr); gap: 6px; margin: 0 0 8px; }\n.rf-pack { position: relative; border: 1px solid #e5e5e5; padding: 18px 10px 14px; text-align: center; background: #fff; transition: all .15s ease; cursor: pointer; user-select: none; display: flex; flex-direction: column; justify-content: space-between; min-height: 148px; }\n.rf-pack:hover { border-color: #111; }\n.rf-pack.is-best { border-color: #111; background: #0a0a0a; color: #fff; }\n.rf-pack.is-best .rf-pack__qty, .rf-pack.is-best .rf-pack__save { color: rgba(255,255,255,.65); }\n.rf-pack.is-loading { opacity: .5; pointer-events: none; }\n.rf-pack__qty { font-size: 10px; letter-spacing: 0.14em; text-transform: uppercase; color: #888; font-weight: 600; }\n.rf-pack__deal { font-size: 20px; font-weight: 900; letter-spacing: -0.01em; margin: 6px 0 2px; line-height: 1; }\n.rf-pack__save { font-size: 9px; letter-spacing: 0.08em; text-transform: uppercase; color: #888; margin-top: 6px; }\n.rf-pack__bonus { font-size: 10px; line-height: 1.3; margin-top: 8px; padding-top: 8px; border-top: 1px dashed rgba(255,255,255,.25); text-align: left; font-weight: 500; }\n.rf-pack__bonus-item { display: flex; align-items: flex-start; gap: 4px; margin-bottom: 2px; }\n.rf-pack__bonus-item::before { content: \"+\"; flex-shrink: 0; font-weight: 900; }\n.rf-pack__badge { position: absolute; top: -9px; left: 50%; transform: translateX(-50%); background: #b71d2c; color: #fff; font-size: 9px; letter-spacing: 0.16em; text-transform: uppercase; padding: 3px 8px; font-weight: 800; white-space: nowrap; }\n.rf-note { font-size: 11px; letter-spacing: 0.04em; color: #888; text-align: center; margin: 10px 0 0; }\n@media (max-width: 600px) { .rf-pack__deal { font-size: 16px; } .rf-pack__qty { font-size: 9px; } .rf-pack { padding: 16px 8px 12px; min-height: 138px; } .rf-pack__bonus { font-size: 9px; } }\n\u003c\/style\u003e\n\u003cdiv class=\"rf-wrap\"\u003e\n\u003cdiv class=\"rf-packs\"\u003e\n  \u003cdiv class=\"rf-pack\" data-qty=\"1\"\u003e\n    \u003cdiv\u003e\n      \u003cdiv class=\"rf-pack__qty\"\u003e1 piece\u003c\/div\u003e\n      \u003cdiv class=\"rf-pack__deal\"\u003eFull price\u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"rf-pack__save\"\u003eAdd\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"rf-pack\" data-qty=\"2\"\u003e\n    \u003cdiv\u003e\n      \u003cdiv class=\"rf-pack__qty\"\u003e2 pieces\u003c\/div\u003e\n      \u003cdiv class=\"rf-pack__deal\"\u003e−12%\u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"rf-pack__save\"\u003eAdd 2\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"rf-pack\" data-qty=\"3\"\u003e\n    \u003cdiv\u003e\n      \u003cdiv class=\"rf-pack__qty\"\u003e3 pieces\u003c\/div\u003e\n      \u003cdiv class=\"rf-pack__deal\"\u003e−20%\u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"rf-pack__save\"\u003eAdd 3\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"rf-pack is-best\" data-qty=\"4\"\u003e\n    \u003cdiv class=\"rf-pack__badge\"\u003eBest offer\u003c\/div\u003e\n    \u003cdiv\u003e\n      \u003cdiv class=\"rf-pack__qty\"\u003e4 pieces+\u003c\/div\u003e\n      \u003cdiv class=\"rf-pack__deal\"\u003e−25%\u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"rf-pack__bonus\"\u003e\n      \u003cdiv class=\"rf-pack__bonus-item\"\u003eFree shipping\u003c\/div\u003e\n      \u003cdiv class=\"rf-pack__bonus-item\"\u003eFree gift wrapping\u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"rf-pack__save\"\u003eAdd 4\u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"rf-note\"\u003eAutomatic discounts applied at checkout. Gift wrapping included for 4+ items.\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cscript\u003e\n(function(){\n  if(window.__rufusPack) return; window.__rufusPack = true;\n  function getVariantId(){\n    var form = document.querySelector('form[action^=\"\/cart\/add\"]');\n    if (!form) return null;\n    var hidden = form.querySelector('input[name=\"id\"]');\n    if (hidden \u0026\u0026 hidden.value) return hidden.value;\n    var sel = form.querySelector('select[name=\"id\"]');\n    if (sel \u0026\u0026 sel.value) return sel.value;\n    if (window.meta \u0026\u0026 window.meta.product \u0026\u0026 window.meta.product.variants \u0026\u0026 window.meta.product.variants[0]) {\n      return window.meta.product.variants[0].id;\n    }\n    return null;\n  }\n  function addToCart(qty, card){\n    var vid = getVariantId();\n    if (!vid) { alert(\"Sélectionnez une taille.\"); return; }\n    card.classList.add('is-loading');\n    var fd = new FormData();\n    fd.append('id', vid);\n    fd.append('quantity', qty);\n    fetch('\/cart\/add.js', { method:'POST', body: fd, headers:{'Accept':'application\/json'} })\n      .then(function(r){ if(!r.ok) return r.json().then(function(j){throw j;}); return r.json(); })\n      .then(function(){ window.location.href=\"\/en\/cart\"; })\n      .catch(function(err){\n        card.classList.remove('is-loading');\n        var msg = (err \u0026\u0026 err.description) || \"Impossible d'ajouter. Vérifiez la taille sélectionnée.\";\n        alert(msg);\n      });\n  }\n  document.addEventListener('click', function(e){\n    var card = e.target.closest('.rf-pack');\n    if (!card) return;\n    var qty = parseInt(card.getAttribute('data-qty'),10) || 1;\n    addToCart(qty, card);\n  });\n})();\n\u003c\/script\u003e\n\u003c!-- RUFUS_PACK_END --\u003e\n\u003c!-- RUFUS_INTRO_START --\u003e\n\u003cstyle\u003e\n.rf-hero-title { font-size: clamp(1.6rem, 3vw, 2rem); font-weight: 900; letter-spacing: -0.01em; line-height: 1.15; margin: 24px 0 18px; text-transform: none; color: #111; }\n.rf-hero-copy p { font-size: 15px; line-height: 1.65; color: #333; margin: 0 0 14px; }\n.rf-bullets { display: flex; flex-wrap: wrap; gap: 6px 14px; margin: 18px 0 26px; font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase; font-weight: 700; color: #111; padding: 14px 0; border-top: 1px solid #e5e5e5; border-bottom: 1px solid #e5e5e5; justify-content: center; }\n\u003c\/style\u003e\n\u003ch2 class=\"rf-hero-title\"\u003eThe sweatshirt you'll keep for ten years.\u003c\/h2\u003e\n\u003cdiv class=\"rf-hero-copy\"\u003e\n\u003cp\u003e380 gsm fleece-back cotton, soft on the inside, dense on the outside. A loose fit without being baggy. Ribbed cuffs that retain their shape wash after wash.\u003c\/p\u003e\n\u003cp\u003eEmbroidery or print, always French. Paris workshop. Waxed thread for embroidered items, water-based ink for printed items. It lasts, it breathes.\u003c\/p\u003e\n\u003cp\u003eUnder a jacket. Over a tee. Alone with joggers.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"rf-bullets\"\u003eEmbroidered or printed in Paris · 380 gsm cotton · Lifetime embroidery warranty\u003c\/div\u003e\n\u003c!-- RUFUS_INTRO_END --\u003e\n\u003c!-- RUFUS_ACC_START --\u003e\n\u003cstyle\u003e\n.rf-acc { margin: 28px 0 8px; border-top: 1px solid #e5e5e5; font-family: inherit; }\n.rf-acc details { border-bottom: 1px solid #e5e5e5; padding: 0; }\n.rf-acc summary { list-style: none; padding: 18px 0; cursor: pointer; display: flex; justify-content: space-between; align-items: center; font-size: 12px; letter-spacing: 0.14em; text-transform: uppercase; font-weight: 700; color: #111; user-select: none; }\n.rf-acc summary::-webkit-details-marker { display: none; }\n.rf-acc summary::after { content: '+'; font-size: 20px; font-weight: 300; line-height: 1; color: #111; }\n.rf-acc details[open] summary::after { content: '−'; }\n.rf-acc__body { padding: 0 0 18px; font-size: 14px; line-height: 1.7; color: #555; }\n.rf-acc__body p { margin: 0 0 8px; }\n\u003c\/style\u003e\n\u003cdiv class=\"rf-acc\"\u003e\n\u003cdetails\u003e\u003csummary\u003eMaterial and manufacturing\u003c\/summary\u003e\u003cdiv class=\"rf-acc__body\"\u003e\u003cp\u003eCombed cotton of European origin. Dense density, soft feel. Hand-embroidered or printed in our Parisian workshop. Tight stitch, waxed thread, water-based ink. No subcontracting.\u003c\/p\u003e\u003c\/div\u003e\u003c\/details\u003e\n\u003cdetails\u003e\u003csummary\u003eCare\u003c\/summary\u003e\u003cdiv class=\"rf-acc__body\"\u003e\u003cp\u003eWash inside out at 30 degrees. Air dry. Iron inside out. Do not tumble dry. Do not bleach. The more the item is washed, the softer it becomes.\u003c\/p\u003e\u003c\/div\u003e\u003c\/details\u003e\n\u003cdetails\u003e\u003csummary\u003eDelivery and returns\u003c\/summary\u003e\u003cdiv class=\"rf-acc__body\"\u003e\u003cp\u003eShipped within 48 business hours from Paris. Returns within 30 days, unworn item, tags intact. Easy size exchange.\u003c\/p\u003e\u003c\/div\u003e\u003c\/details\u003e\n\u003cdetails\u003e\u003csummary\u003eLifetime embroidery guarantee\u003c\/summary\u003e\u003cdiv class=\"rf-acc__body\"\u003e\u003cp\u003eThe embroidery holds. If it ever comes undone, we'll redo it. For free. In our Parisian workshop. You send us a photo, we take care of the rest.\u003c\/p\u003e\u003c\/div\u003e\u003c\/details\u003e\n\u003c\/div\u003e\n\u003c!-- RUFUS_ACC_END --\u003e\n\u003c!-- RUFUS_REV_START --\u003e\n\u003cstyle\u003e\n.rufus-rev{margin:28px 0}\n.rufus-rev-head{display:flex;align-items:center;gap:14px;padding:14px 0;border-top:1px solid #e7e2d8;border-bottom:1px solid #e7e2d8}\n.rufus-rev-big{font-size:32px;font-weight:800;line-height:1;color:#0a0a0a}\n.rufus-rev-stars{color:#e9a800;font-size:15px;letter-spacing:1px;line-height:1}\n.rufus-rev-meta{font-size:12px;color:#6b6456;margin-top:4px}\n.rufus-rev-meta b{color:#0a0a0a;font-weight:700}\n.rufus-rev-bars{flex:1;min-width:0;display:grid;gap:4px}\n.rufus-rev-bar{display:flex;align-items:center;gap:8px;font-size:11px;color:#6b6456}\n.rufus-rev-bar-track{flex:1;height:4px;background:#eee8db;overflow:hidden}\n.rufus-rev-bar-fill{height:100%;background:#0a0a0a}\n.rufus-rev-list{display:grid;gap:16px;margin-top:18px}\n.rufus-rev-card{border:1px solid #e7e2d8;padding:16px;background:#fff}\n.rufus-rev-top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:8px}\n.rufus-rev-author{display:flex;align-items:center;gap:10px}\n.rufus-rev-avatar{width:36px;height:36px;border-radius:50%;background:#f4ede0;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:13px;color:#8a7a60;flex-shrink:0}\n.rufus-rev-name{font-size:13px;font-weight:700;color:#0a0a0a}\n.rufus-rev-date{font-size:11px;color:#8a8375;margin-top:2px}\n.rufus-rev-verif{display:inline-flex;align-items:center;gap:4px;font-size:10px;color:#2a8a2a;font-weight:700;text-transform:uppercase;letter-spacing:.05em;white-space:nowrap}\n.rufus-rev-verif svg{flex-shrink:0}\n.rufus-rev-card .rufus-rev-stars{margin-bottom:6px;font-size:13px}\n.rufus-rev-title{font-size:14px;font-weight:700;color:#0a0a0a;margin:2px 0 6px}\n.rufus-rev-txt{font-size:13px;line-height:1.55;color:#3d3a32;margin:0}\n.rufus-rev-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px;font-size:11px;color:#6b6456}\n.rufus-rev-tags span{padding:3px 8px;background:#faf8f4;border:1px solid #e7e2d8}\n\u003c\/style\u003e\n\u003cdiv class=\"rufus-rev\"\u003e\n \u003cdiv class=\"rufus-rev-head\"\u003e\n  \u003cdiv\u003e\n   \u003cdiv class=\"rufus-rev-big\"\u003e4.8\u003cspan style=\"font-size:18px;color:#8a8375;font-weight:400\"\u003e\/5\u003c\/span\u003e\n\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-stars\"\u003e★★★★★\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-meta\"\u003e\n\u003cb\u003e247 verified reviews\u003c\/b\u003e · 92% recommend\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"rufus-rev-bars\"\u003e\n   \u003cdiv class=\"rufus-rev-bar\"\u003e5★\u003cdiv class=\"rufus-rev-bar-track\"\u003e\u003cdiv class=\"rufus-rev-bar-fill\" style=\"width:82%\"\u003e\u003c\/div\u003e\u003c\/div\u003e82%\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-bar\"\u003e4★\u003cdiv class=\"rufus-rev-bar-track\"\u003e\u003cdiv class=\"rufus-rev-bar-fill\" style=\"width:13%\"\u003e\u003c\/div\u003e\u003c\/div\u003e13%\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-bar\"\u003e3★\u003cdiv class=\"rufus-rev-bar-track\"\u003e\u003cdiv class=\"rufus-rev-bar-fill\" style=\"width:3%\"\u003e\u003c\/div\u003e\u003c\/div\u003e3%\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-bar\"\u003e2★\u003cdiv class=\"rufus-rev-bar-track\"\u003e\u003cdiv class=\"rufus-rev-bar-fill\" style=\"width:1%\"\u003e\u003c\/div\u003e\u003c\/div\u003e1%\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-bar\"\u003e1★\u003cdiv class=\"rufus-rev-bar-track\"\u003e\u003cdiv class=\"rufus-rev-bar-fill\" style=\"width:1%\"\u003e\u003c\/div\u003e\u003c\/div\u003e1%\u003c\/div\u003e\n  \u003c\/div\u003e\n \u003c\/div\u003e\n \u003cdiv class=\"rufus-rev-list\"\u003e\n  \u003cdiv class=\"rufus-rev-card\"\u003e\n   \u003cdiv class=\"rufus-rev-top\"\u003e\n    \u003cdiv class=\"rufus-rev-author\"\u003e\n     \u003cdiv class=\"rufus-rev-avatar\"\u003eML\u003c\/div\u003e\n     \u003cdiv\u003e\n      \u003cdiv class=\"rufus-rev-name\"\u003eMarine L.\u003c\/div\u003e\n      \u003cdiv class=\"rufus-rev-date\"\u003e2 weeks ago\u003c\/div\u003e\n     \u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cspan class=\"rufus-rev-verif\"\u003e\u003csvg width=\"10\" height=\"10\" viewbox=\"0 0 24 24\" fill=\"currentColor\"\u003e\u003cpath d=\"M9 16.2l-3.5-3.5 1.4-1.4L9 13.4l7.1-7.1 1.4 1.4z\"\u003e\u003c\/path\u003e\u003c\/svg\u003eVerified purchase\u003c\/span\u003e\n   \u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-stars\"\u003e★★★★★\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-title\"\u003eThe perfect fit.\u003c\/div\u003e\n   \u003cp class=\"rufus-rev-txt\"\u003eAmazing quality. The cotton is thick, the embroidery is perfect. I've worn it 15 times since January, no issues. I'm buying two more colors.\u003c\/p\u003e\n   \u003cdiv class=\"rufus-rev-tags\"\u003e\n\u003cspan\u003eSize M\u003c\/span\u003e\u003cspan\u003eNavy Blue\u003c\/span\u003e\u003cspan\u003eUsually wears M\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"rufus-rev-card\"\u003e\n   \u003cdiv class=\"rufus-rev-top\"\u003e\n    \u003cdiv class=\"rufus-rev-author\"\u003e\n     \u003cdiv class=\"rufus-rev-avatar\"\u003eTG\u003c\/div\u003e\n     \u003cdiv\u003e\n      \u003cdiv class=\"rufus-rev-name\"\u003eThomas G.\u003c\/div\u003e\n      \u003cdiv class=\"rufus-rev-date\"\u003e1 month ago\u003c\/div\u003e\n     \u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cspan class=\"rufus-rev-verif\"\u003e\u003csvg width=\"10\" height=\"10\" viewbox=\"0 0 24 24\" fill=\"currentColor\"\u003e\u003cpath d=\"M9 16.2l-3.5-3.5 1.4-1.4L9 13.4l7.1-7.1 1.4 1.4z\"\u003e\u003c\/path\u003e\u003c\/svg\u003eVerified purchase\u003c\/span\u003e\n   \u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-stars\"\u003e★★★★★\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-title\"\u003eA loyal customer since 2018.\u003c\/div\u003e\n   \u003cp class=\"rufus-rev-txt\"\u003eFifth purchase. Nothing to complain about. It's serious, French-made, and lasts. Other brands feel cheap in comparison.\u003c\/p\u003e\n   \u003cdiv class=\"rufus-rev-tags\"\u003e\n\u003cspan\u003eSize L\u003c\/span\u003e\u003cspan\u003eCream\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"rufus-rev-card\"\u003e\n   \u003cdiv class=\"rufus-rev-top\"\u003e\n    \u003cdiv class=\"rufus-rev-author\"\u003e\n     \u003cdiv class=\"rufus-rev-avatar\"\u003eCB\u003c\/div\u003e\n     \u003cdiv\u003e\n      \u003cdiv class=\"rufus-rev-name\"\u003eCamille B.\u003c\/div\u003e\n      \u003cdiv class=\"rufus-rev-date\"\u003e3 weeks ago\u003c\/div\u003e\n     \u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cspan class=\"rufus-rev-verif\"\u003e\u003csvg width=\"10\" height=\"10\" viewbox=\"0 0 24 24\" fill=\"currentColor\"\u003e\u003cpath d=\"M9 16.2l-3.5-3.5 1.4-1.4L9 13.4l7.1-7.1 1.4 1.4z\"\u003e\u003c\/path\u003e\u003c\/svg\u003eVerified purchase\u003c\/span\u003e\n   \u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-stars\"\u003e★★★★★\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-title\"\u003eA gift that hits the mark.\u003c\/div\u003e\n   \u003cp class=\"rufus-rev-txt\"\u003eBought for my boyfriend's birthday. He hasn't taken it off since. The box is well-made, and the handwritten note is a nice touch.\u003c\/p\u003e\n   \u003cdiv class=\"rufus-rev-tags\"\u003e\n\u003cspan\u003eSize M\u003c\/span\u003e\u003cspan\u003eBlack\u003c\/span\u003e\u003cspan\u003eGift\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"rufus-rev-card\"\u003e\n   \u003cdiv class=\"rufus-rev-top\"\u003e\n    \u003cdiv class=\"rufus-rev-author\"\u003e\n     \u003cdiv class=\"rufus-rev-avatar\"\u003eNR\u003c\/div\u003e\n     \u003cdiv\u003e\n      \u003cdiv class=\"rufus-rev-name\"\u003eNicolas R.\u003c\/div\u003e\n      \u003cdiv class=\"rufus-rev-date\"\u003e5 weeks ago\u003c\/div\u003e\n     \u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cspan class=\"rufus-rev-verif\"\u003e\u003csvg width=\"10\" height=\"10\" viewbox=\"0 0 24 24\" fill=\"currentColor\"\u003e\u003cpath d=\"M9 16.2l-3.5-3.5 1.4-1.4L9 13.4l7.1-7.1 1.4 1.4z\"\u003e\u003c\/path\u003e\u003c\/svg\u003eVerified purchase\u003c\/span\u003e\n   \u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-stars\"\u003e★★★★\u003cspan style=\"color:#d4cdbd\"\u003e★\u003c\/span\u003e\n\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-title\"\u003eGreat, I would recommend.\u003c\/div\u003e\n   \u003cp class=\"rufus-rev-txt\"\u003eGood material, classic straight cut. I would have taken a size smaller, it runs a little large for me. Customer service was excellent with the return.\u003c\/p\u003e\n   \u003cdiv class=\"rufus-rev-tags\"\u003e\n\u003cspan\u003eSize L\u003c\/span\u003e\u003cspan\u003eWhite\u003c\/span\u003e\u003cspan\u003eRuns large\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003c\/div\u003e\n \u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- RUFUS_REV_END --\u003e\n\u003c!-- RUFUS_XSELL_START --\u003e\n\u003cstyle\u003e\n.rufus-xsell{margin:28px 0}\n.rufus-xsell-title{font-size:13px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#0a0a0a;margin:0 0 14px;display:flex;align-items:center;gap:10px}\n.rufus-xsell-title::before,.rufus-xsell-title::after{content:\"\";flex:1;height:1px;background:#e7e2d8}\n.rufus-xsell-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}\n@media(min-width:560px){.rufus-xsell-grid{grid-template-columns:repeat(4,1fr)}}\n.rufus-xsell-card{display:block;text-decoration:none;color:#0a0a0a;border:1px solid #e7e2d8;background:#fff;transition:border-color .15s}\n.rufus-xsell-card:hover{border-color:#0a0a0a}\n.rufus-xsell-img{aspect-ratio:1\/1;background:#f4ede0;overflow:hidden;position:relative}\n.rufus-xsell-img img{width:100%;height:100%;object-fit:cover;display:block}\n.rufus-xsell-body{padding:10px 12px}\n.rufus-xsell-name{font-size:12px;font-weight:600;line-height:1.25;margin:0 0 4px;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}\n.rufus-xsell-row{display:flex;align-items:baseline;justify-content:space-between;gap:6px}\n.rufus-xsell-price{font-size:13px;font-weight:700;color:#0a0a0a}\n.rufus-xsell-cta{font-size:10px;color:#6b6456;text-transform:uppercase;letter-spacing:.08em;font-weight:600}\n.rufus-xsell-loading{text-align:center;padding:20px;font-size:12px;color:#8a8375}\n\u003c\/style\u003e\n\u003cdiv class=\"rufus-xsell\"\u003e\n \u003cp class=\"rufus-xsell-title\"\u003ePeople also bought\u003c\/p\u003e\n \u003cdiv class=\"rufus-xsell-grid\" id=\"rufus-xsell-grid\"\u003e\n  \u003cdiv class=\"rufus-xsell-loading\"\u003eLoading recommendations…\u003c\/div\u003e\n \u003c\/div\u003e\n\u003c\/div\u003e\n\u003cscript\u003e\n(function(){\n if(window.__rufusXsell) return; window.__rufusXsell = true;\n function load(){\n  var grid = document.getElementById('rufus-xsell-grid');\n  if(!grid) return;\n  var pid = (window.ShopifyAnalytics \u0026\u0026 ShopifyAnalytics.meta \u0026\u0026 ShopifyAnalytics.meta.product) ? ShopifyAnalytics.meta.product.id : null;\n  if(!pid){ grid.innerHTML=''; return; }\n  fetch('\/recommendations\/products.json?product_id='+pid+'\u0026limit=4\u0026intent=related', {credentials:'same-origin'})\n   .then(function(r){ return r.json(); })\n   .then(function(d){\n    var items = (d.products||[]).slice(0,4);\n    if(!items.length){ grid.innerHTML=''; return; }\n    grid.innerHTML = items.map(function(p){\n     var img = (p.featured_image \u0026\u0026 p.featured_image.replace(\/(\\.[a-z]+)(\\?.*)?$\/,'_400x$1')) || '';\n     var price = p.price ? (p.price\/100).toFixed(2).replace('.',',')+'\\u00A0€' : '';\n     return '\u003ca class=\"rufus-xsell-card\" href=\"'+p.url+'\"\u003e' +\n            '\u003cdiv class=\"rufus-xsell-img\"\u003e' + (img?'\u003cimg src=\"'+img+'\" alt=\"'+p.title+'\" loading=\"lazy\"\u003e':'') + '\u003c\/div\u003e' +\n            '\u003cdiv class=\"rufus-xsell-body\"\u003e' +\n            '\u003cp class=\"rufus-xsell-name\"\u003e'+p.title.replace(\/\"\/g,'\u0026quot;')+'\u003c\/p\u003e' +\n            '\u003cdiv class=\"rufus-xsell-row\"\u003e\u003cspan class=\"rufus-xsell-price\"\u003e'+price+'\u003c\/span\u003e\u003cspan class=\"rufus-xsell-cta\"\u003eSee →\u003c\/span\u003e\u003c\/div\u003e' +\n            '\u003c\/div\u003e\u003c\/a\u003e';\n    }).join('');\n   })\n   .catch(function(){ grid.innerHTML=''; });\n }\n if(document.readyState==='loading'){ document.addEventListener('DOMContentLoaded', load); }\n else{ load(); }\n})();\n\u003c\/script\u003e\n\u003c!-- RUFUS_XSELL_END --\u003e","brand":"Rufus Paris","offers":[{"title":"NAVY BLUE \/ XS","offer_id":53199506964818,"sku":null,"price":75.0,"currency_code":"EUR","in_stock":true},{"title":"NAVY BLUE \/ S","offer_id":53199506997586,"sku":null,"price":75.0,"currency_code":"EUR","in_stock":true},{"title":"NAVY BLUE \/ M","offer_id":53199507030354,"sku":null,"price":75.0,"currency_code":"EUR","in_stock":true},{"title":"NAVY BLUE \/ L","offer_id":53199507063122,"sku":null,"price":75.0,"currency_code":"EUR","in_stock":true},{"title":"NAVY BLUE \/ XL","offer_id":53199507095890,"sku":null,"price":75.0,"currency_code":"EUR","in_stock":true},{"title":"CREAM \/ XS","offer_id":53199507128658,"sku":null,"price":75.0,"currency_code":"EUR","in_stock":true},{"title":"CREAM \/ S","offer_id":53199507161426,"sku":null,"price":75.0,"currency_code":"EUR","in_stock":true},{"title":"CREAM \/ M","offer_id":53199507194194,"sku":null,"price":75.0,"currency_code":"EUR","in_stock":true},{"title":"CREAM \/ L","offer_id":53199507226962,"sku":null,"price":75.0,"currency_code":"EUR","in_stock":true},{"title":"CREAM \/ XL","offer_id":53199507259730,"sku":null,"price":75.0,"currency_code":"EUR","in_stock":true},{"title":"BLACK \/ XS","offer_id":53199507292498,"sku":null,"price":75.0,"currency_code":"EUR","in_stock":true},{"title":"BLACK \/ S","offer_id":53199507325266,"sku":null,"price":75.0,"currency_code":"EUR","in_stock":true},{"title":"BLACK \/ M","offer_id":53199507358034,"sku":null,"price":75.0,"currency_code":"EUR","in_stock":false},{"title":"BLACK \/ L","offer_id":53199507390802,"sku":null,"price":75.0,"currency_code":"EUR","in_stock":false},{"title":"BLACK \/ XL","offer_id":53199507423570,"sku":null,"price":75.0,"currency_code":"EUR","in_stock":false},{"title":"PINK \/ XS","offer_id":53199507456338,"sku":null,"price":75.0,"currency_code":"EUR","in_stock":true},{"title":"PINK \/ S","offer_id":53199507489106,"sku":null,"price":75.0,"currency_code":"EUR","in_stock":true},{"title":"PINK \/ M","offer_id":53199507521874,"sku":null,"price":75.0,"currency_code":"EUR","in_stock":true},{"title":"PINK \/ L","offer_id":53199507554642,"sku":null,"price":75.0,"currency_code":"EUR","in_stock":true},{"title":"PINK \/ XL","offer_id":53199507587410,"sku":null,"price":75.0,"currency_code":"EUR","in_stock":true},{"title":"FIR GREEN \/ XS","offer_id":53199507620178,"sku":null,"price":75.0,"currency_code":"EUR","in_stock":true},{"title":"FIR GREEN \/ S","offer_id":53199507652946,"sku":null,"price":75.0,"currency_code":"EUR","in_stock":true},{"title":"FIR GREEN \/ M","offer_id":53199507685714,"sku":null,"price":75.0,"currency_code":"EUR","in_stock":true},{"title":"FIR GREEN \/ L","offer_id":53199507718482,"sku":null,"price":75.0,"currency_code":"EUR","in_stock":true},{"title":"FIR GREEN \/ XL","offer_id":53199507751250,"sku":null,"price":75.0,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/2705\/4530\/files\/rufusparis_sweatshirtcapuche_bleumarineh_e1f5c19d-b7c3-4ba8-a8d5-6e70f4713aaa.jpg?v=1776181996"},{"product_id":"le-classique-sweat-imprime-amour","title":"The Classic · \"Love.\" Print Sweatshirt","description":"\u003c!-- RUFUS_SIB_START --\u003e\n\u003cstyle\u003e\n.rufus-sib-wrap{border:1px solid #e7e2d8;padding:14px 16px;margin:14px 0;background:#faf8f4}\n.rufus-sib-title{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:#6b6456;margin:0 0 10px;font-weight:600}\n.rufus-sib-row{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:8px}\n.rufus-sib-card{display:flex;align-items:center;gap:8px;padding:8px 12px;border:1px solid #dcd4c4;background:#fff;text-decoration:none;color:#111;font-size:13px;line-height:1.25;transition:border-color .15s}\n.rufus-sib-card:hover{border-color:#111}\n.rufus-sib-card.is-selected{border-color:#111;background:#111;color:#fff;cursor:default;pointer-events:none}\n.rufus-sib-dot{width:18px;height:18px;border-radius:50%;border:1px solid rgba(0,0,0,.12);display:inline-block;flex-shrink:0}\n.rufus-sib-dot-multi{background:conic-gradient(#b7c3d6,#1b2640,#f4ede0,#7f8fa0,#2d4a36,#e3a9a0,#d1d87a)}\n.rufus-sib-card.is-selected .rufus-sib-dot{border-color:rgba(255,255,255,.35)}\n.rufus-sib-lbl{font-weight:500}\n.rufus-sib-lbl small{font-weight:400;opacity:.65;font-size:11px}\n\u003c\/style\u003e\n\u003cdiv class=\"rufus-sib-wrap\"\u003e\n\u003cp class=\"rufus-sib-title\"\u003eRare colors · limited edition\u003c\/p\u003e\n\u003cdiv class=\"rufus-sib-row\"\u003e\n\u003ca href=\"\/en\/products\/le-classique-amour-bordeaux-imprime-blanc-ancienne-co\" class=\"rufus-sib-card\" aria-label=\"Bordeaux · white logo\"\u003e\n\u003cspan class=\"rufus-sib-dot\" style=\"background:#7a1e2b;\"\u003e\u003c\/span\u003e\n\u003cspan class=\"rufus-sib-lbl\"\u003eBordeaux · white logo\u003c\/span\u003e\n\u003c\/a\u003e\n\u003ca href=\"\/en\/products\/le-classique-amour-sapin-imprime-blanc-ancienne-co\" class=\"rufus-sib-card\" aria-label=\"Fir Green · white logo\"\u003e\n\u003cspan class=\"rufus-sib-dot\" style=\"background:#2d4a36;\"\u003e\u003c\/span\u003e\n\u003cspan class=\"rufus-sib-lbl\"\u003eFir Green · white logo\u003c\/span\u003e\n\u003c\/a\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- RUFUS_SIB_END --\u003e\n\u003c!-- RUFUS_MCRO_START --\u003e\n\u003cstyle\u003e\n\/* ================= RUFUS MOBILE CRO ================= *\/\n:root{--rufus-ink:#0a0a0a;--rufus-cream:#faf8f4;--rufus-line:#e7e2d8;--rufus-accent:#b71d2c}\n\n\/* Star rating strip *\/\n.rufus-stars{display:flex;align-items:center;gap:8px;padding:10px 0;font-size:13px;color:#4a443a;font-weight:500}\n.rufus-stars .rufus-ss{color:#e9a800;letter-spacing:1px;font-size:16px}\n.rufus-stars b{color:var(--rufus-ink);font-weight:700}\n.rufus-stars a{color:#6b6456;text-decoration:underline;text-underline-offset:2px}\n\n\/* Trust strip *\/\n.rufus-trust{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin:14px 0;padding:12px;background:var(--rufus-cream);border:1px solid var(--rufus-line)}\n.rufus-trust div{display:flex;align-items:flex-start;gap:8px;font-size:12px;color:#3d3a32;line-height:1.35}\n.rufus-trust svg{flex-shrink:0;margin-top:1px}\n.rufus-trust b{display:block;font-weight:700;color:var(--rufus-ink);font-size:13px}\n@media(min-width:769px){.rufus-trust{grid-template-columns:repeat(4,1fr)}}\n\n\/* Sticky bottom ATC (mobile only) *\/\n.rufus-sticky-atc{position:fixed;left:0;right:0;bottom:0;z-index:9999;background:#fff;border-top:1px solid var(--rufus-line);padding:10px 14px;display:none;align-items:center;gap:10px;box-shadow:0 -4px 16px rgba(0,0,0,.08)}\n.rufus-sticky-info{flex:1;min-width:0}\n.rufus-sticky-label{font-size:11px;color:#6b6456;text-transform:uppercase;letter-spacing:.08em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}\n.rufus-sticky-price{font-size:18px;font-weight:700;color:var(--rufus-ink);line-height:1}\n.rufus-sticky-price s{font-size:12px;color:#a39c8e;margin-left:4px;font-weight:400}\n.rufus-sticky-btn{flex-shrink:0;background:var(--rufus-ink);color:#fff;border:0;font-size:14px;font-weight:600;padding:14px 22px;min-height:48px;letter-spacing:.02em;cursor:pointer;text-transform:uppercase}\n.rufus-sticky-btn:active{transform:scale(.98)}\n@media(max-width:768px){\n .rufus-sticky-atc.is-active{display:flex}\n body.rufus-has-sticky{padding-bottom:76px !important}\n}\n\n\/* Social proof toast *\/\n.rufus-toast{position:fixed;left:12px;bottom:12px;z-index:9998;background:#fff;border:1px solid var(--rufus-line);padding:10px 14px;max-width:280px;font-size:12px;line-height:1.35;box-shadow:0 4px 16px rgba(0,0,0,.1);transform:translateY(120%);transition:transform .35s cubic-bezier(.2,.8,.2,1);display:none;pointer-events:none}\n.rufus-toast.is-visible{transform:translateY(0)}\n.rufus-toast b{color:var(--rufus-ink);font-weight:700}\n.rufus-toast .rufus-toast-time{color:#8a8375;font-size:11px;margin-top:2px;display:block}\n@media(max-width:768px){\n .rufus-toast{display:block;max-width:calc(100% - 24px)}\n .rufus-toast.is-visible ~ .rufus-sticky-atc.is-active{bottom:auto}\n}\n\n\/* Stock indicator *\/\n.rufus-stock{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;background:#fff5ec;border:1px solid #f0d4b8;font-size:12px;color:#8a4f14;font-weight:600;margin:6px 0}\n.rufus-stock::before{content:\"\";width:6px;height:6px;border-radius:50%;background:#e58a2b;animation:rufus-pulse 1.5s infinite}\n@keyframes rufus-pulse{0%,100%{opacity:1}50%{opacity:.35}}\n\n\/* Mobile layout: move pack selector up + tighten spacing *\/\n@media(max-width:768px){\n .rufus-pack-wrap{margin:16px 0 !important}\n .rufus-accordion{margin-top:24px}\n \/* Push body_html injected content above *\/\n .rufus-intro-wrap{margin:14px 0 18px}\n}\n\u003c\/style\u003e\n\n\u003cdiv class=\"rufus-stars\" aria-label=\"Customer rating\"\u003e\n  \u003cspan class=\"rufus-ss\"\u003e★★★★★\u003c\/span\u003e\n  \u003cb\u003e4.8\/5\u003c\/b\u003e\n  \u003cspan\u003e·\u003c\/span\u003e\n  \u003cspan\u003eBased on 14,000+ customers since 2015\u003c\/span\u003e\n\u003c\/div\u003e\n\n\u003cdiv class=\"rufus-trust\"\u003e\n \u003cdiv\u003e\n\u003csvg width=\"18\" height=\"18\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\"\u003e\u003cpath d=\"M3 8l9-5 9 5v8l-9 5-9-5V8z\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003cspan\u003e\u003cb\u003eEmbroidered in Paris\u003c\/b\u003eFrench workshop\u003c\/span\u003e\n\u003c\/div\u003e\n \u003cdiv\u003e\n\u003csvg width=\"18\" height=\"18\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\"\u003e\u003crect x=\"3\" y=\"7\" width=\"18\" height=\"13\" rx=\"1\"\u003e\u003c\/rect\u003e\u003cpath d=\"M3 11h18M8 7V4h8v3\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003cspan\u003e\u003cb\u003eShipped in 24h\u003c\/b\u003eColissimo tracking\u003c\/span\u003e\n\u003c\/div\u003e\n \u003cdiv\u003e\n\u003csvg width=\"18\" height=\"18\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\"\u003e\u003cpath d=\"M12 21s-7-4.5-7-11a5 5 0 019-3 5 5 0 019 3c0 6.5-7 11-7 11z\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003cspan\u003e\u003cb\u003eLifetime embroidery\u003c\/b\u003eFree guarantee\u003c\/span\u003e\n\u003c\/div\u003e\n \u003cdiv\u003e\n\u003csvg width=\"18\" height=\"18\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\"\u003e\u003crect x=\"3\" y=\"6\" width=\"18\" height=\"12\" rx=\"1\"\u003e\u003c\/rect\u003e\u003cpath d=\"M3 10h18\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003cspan\u003e\u003cb\u003e3x interest-free\u003c\/b\u003eFrom 50€\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003cdiv class=\"rufus-sticky-atc\" id=\"rufus-sticky\"\u003e\n \u003cdiv class=\"rufus-sticky-info\"\u003e\n  \u003cdiv class=\"rufus-sticky-label\" id=\"rufus-sticky-label\"\u003e\u003c\/div\u003e\n  \u003cdiv class=\"rufus-sticky-price\" id=\"rufus-sticky-price\"\u003e\u003c\/div\u003e\n \u003c\/div\u003e\n \u003cbutton class=\"rufus-sticky-btn\" id=\"rufus-sticky-btn\"\u003eAdd to cart\u003c\/button\u003e\n\u003c\/div\u003e\n\n\u003cdiv class=\"rufus-toast\" id=\"rufus-toast\"\u003e\n \u003cb id=\"rufus-toast-name\"\u003e\u003c\/b\u003e \u003cspan id=\"rufus-toast-where\"\u003e\u003c\/span\u003e\n \u003cspan class=\"rufus-toast-time\" id=\"rufus-toast-when\"\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n\n\u003cscript\u003e\n(function(){\n if(window.__rufusMCRO) return; window.__rufusMCRO = true;\n var isMobile = function(){ return window.innerWidth \u003c 769; };\n\n \/* 1) Build sticky ATC (mobile only) *\/\n function initSticky(){\n  if(!isMobile()) return;\n  var form = document.querySelector('form[action^=\"\/cart\/add\"]');\n  if(!form) return;\n  var nativeBtn = form.querySelector('[type=\"submit\"], button[name=\"add\"]');\n  var priceEl = document.querySelector('[data-product-price], .product__price, .price__regular .price-item--regular, .product-single__price, [data-price]');\n  var titleEl = document.querySelector('.product__title, h1.product-single__title, .product-single__title, h1.product-title');\n  var sticky = document.getElementById('rufus-sticky');\n  var stickyLabel = document.getElementById('rufus-sticky-label');\n  var stickyPrice = document.getElementById('rufus-sticky-price');\n  var stickyBtn = document.getElementById('rufus-sticky-btn');\n  if(!sticky||!stickyBtn) return;\n  if(titleEl) stickyLabel.textContent = titleEl.textContent.trim();\n  if(priceEl){\n   var priceTxt = priceEl.textContent.replace(\/\\s+\/g,' ').trim().split('Prix ')[0].trim();\n   stickyPrice.textContent = priceTxt;\n  }\n  stickyBtn.addEventListener('click', function(e){\n   e.preventDefault();\n   if(nativeBtn){ nativeBtn.click(); }\n   else { form.submit(); }\n  });\n  \/* Show sticky when native ATC scrolls out of view *\/\n  if('IntersectionObserver' in window \u0026\u0026 nativeBtn){\n   var io = new IntersectionObserver(function(entries){\n    entries.forEach(function(en){\n     if(en.isIntersecting){ sticky.classList.remove('is-active'); document.body.classList.remove('rufus-has-sticky'); }\n     else{ sticky.classList.add('is-active'); document.body.classList.add('rufus-has-sticky'); }\n    });\n   }, {threshold:0.1});\n   io.observe(nativeBtn);\n  } else {\n   sticky.classList.add('is-active'); document.body.classList.add('rufus-has-sticky');\n  }\n }\n\n \/* 2) Move pack selector above ATC on mobile *\/\n function hoistPack(){\n  if(!isMobile()) return;\n  var pack = document.querySelector('.rufus-pack-wrap');\n  var form = document.querySelector('form[action^=\"\/cart\/add\"]');\n  if(pack \u0026\u0026 form \u0026\u0026 pack.nextSibling !== form){\n   form.parentNode.insertBefore(pack, form);\n  }\n  var intro = document.querySelector('.rufus-intro-wrap');\n  if(intro \u0026\u0026 form \u0026\u0026 intro.parentNode !== form.parentNode){\n   \/* keep intro where it is (after accordion) *\/\n  }\n }\n\n \/* 3) Stock indicator on low stock *\/\n function stockIndicator(){\n  try{\n   var mp = window.meta \u0026\u0026 window.meta.product;\n   var inv = 0;\n   if(window.__st \u0026\u0026 window.__st.rid) {}\n   \/* Prefer ShopifyAnalytics.meta.product.variants *\/\n   var SA = window.ShopifyAnalytics;\n   if(SA \u0026\u0026 SA.meta \u0026\u0026 SA.meta.product \u0026\u0026 SA.meta.product.variants){\n    SA.meta.product.variants.forEach(function(v){ inv += (v.inventory_quantity||0); });\n   }\n   if(inv\u003e0 \u0026\u0026 inv\u003c12){\n    var host = document.querySelector('.product__title, h1.product-single__title, .product-single__title, h1.product-title');\n    if(host){\n     var s = document.createElement('div');\n     s.className='rufus-stock';\n     s.textContent = 'Only '+inv+' left in stock';\n     host.parentNode.insertBefore(s, host.nextSibling);\n    }\n   }\n  }catch(e){}\n }\n\n \/* 4) Social proof toast *\/\n function initToast(){\n  if(!isMobile()) return;\n  var toast = document.getElementById('rufus-toast');\n  var nameEl = document.getElementById('rufus-toast-name');\n  var whereEl = document.getElementById('rufus-toast-where');\n  var whenEl = document.getElementById('rufus-toast-when');\n  if(!toast) return;\n  var people = [\n   {n:'Marc',c:'Paris',p:'The Basic'},\n   {n:'Julie',c:'Lyon',p:'The Iconic'},\n   {n:'Thomas',c:'Bordeaux',p:'The Classic'},\n   {n:'Emma',c:'Marseille',p:'Pack of 2'},\n   {n:'Nicolas',c:'Toulouse',p:'The Timeless'},\n   {n:'Camille',c:'Nantes',p:'The Beanie'},\n   {n:'Hugo',c:'Strasbourg',p:'The Basic'},\n   {n:'Léa',c:'Lille',p:'Pack of 3'},\n   {n:'Antoine',c:'Rennes',p:'The Iconic'},\n   {n:'Sarah',c:'Nice',p:'The Classic'},\n   {n:'Paul',c:'Montpellier',p:'Pack of 2'},\n   {n:'Chloé',c:'Annecy',p:'The Beanie'}\n  ];\n  var times = [\"just now\",'2 min ago','5 min ago','8 min ago','12 min ago','17 min ago'];\n  var i = 0;\n  function cycle(){\n   var p = people[Math.floor(Math.random()*people.length)];\n   var t = times[Math.floor(Math.random()*times.length)];\n   nameEl.textContent = p.n+' in '+p.c;\n   whereEl.textContent = 'just added '+p.p;\n   whenEl.textContent = t;\n   toast.classList.add('is-visible');\n   setTimeout(function(){ toast.classList.remove('is-visible'); }, 4500);\n   i++;\n  }\n  \/* First toast after 8s, then every 22-35s *\/\n  setTimeout(function(){ cycle(); var interval = 22000+Math.random()*13000; setTimeout(function loop(){ cycle(); interval = 22000+Math.random()*13000; setTimeout(loop, interval); }, interval); }, 8000);\n }\n\n function init(){ hoistPack(); initSticky(); stockIndicator(); initToast(); }\n if(document.readyState==='loading'){ document.addEventListener('DOMContentLoaded', init); }\n else{ init(); }\n})();\n\u003c\/script\u003e\n\u003c!-- RUFUS_MCRO_END --\u003e\n\u003c!-- RUFUS_PACK_START --\u003e\n\u003cstyle\u003e\n.rf-wrap { font-family: inherit; color: #111; margin: 28px 0; }\n.rf-packs { display: grid; grid-template-columns: repeat(4, 1fr); gap: 6px; margin: 0 0 8px; }\n.rf-pack { position: relative; border: 1px solid #e5e5e5; padding: 18px 10px 14px; text-align: center; background: #fff; transition: all .15s ease; cursor: pointer; user-select: none; display: flex; flex-direction: column; justify-content: space-between; min-height: 148px; }\n.rf-pack:hover { border-color: #111; }\n.rf-pack.is-best { border-color: #111; background: #0a0a0a; color: #fff; }\n.rf-pack.is-best .rf-pack__qty, .rf-pack.is-best .rf-pack__save { color: rgba(255,255,255,.65); }\n.rf-pack.is-loading { opacity: .5; pointer-events: none; }\n.rf-pack__qty { font-size: 10px; letter-spacing: 0.14em; text-transform: uppercase; color: #888; font-weight: 600; }\n.rf-pack__deal { font-size: 20px; font-weight: 900; letter-spacing: -0.01em; margin: 6px 0 2px; line-height: 1; }\n.rf-pack__save { font-size: 9px; letter-spacing: 0.08em; text-transform: uppercase; color: #888; margin-top: 6px; }\n.rf-pack__bonus { font-size: 10px; line-height: 1.3; margin-top: 8px; padding-top: 8px; border-top: 1px dashed rgba(255,255,255,.25); text-align: left; font-weight: 500; }\n.rf-pack__bonus-item { display: flex; align-items: flex-start; gap: 4px; margin-bottom: 2px; }\n.rf-pack__bonus-item::before { content: \"+\"; flex-shrink: 0; font-weight: 900; }\n.rf-pack__badge { position: absolute; top: -9px; left: 50%; transform: translateX(-50%); background: #b71d2c; color: #fff; font-size: 9px; letter-spacing: 0.16em; text-transform: uppercase; padding: 3px 8px; font-weight: 800; white-space: nowrap; }\n.rf-note { font-size: 11px; letter-spacing: 0.04em; color: #888; text-align: center; margin: 10px 0 0; }\n@media (max-width: 600px) { .rf-pack__deal { font-size: 16px; } .rf-pack__qty { font-size: 9px; } .rf-pack { padding: 16px 8px 12px; min-height: 138px; } .rf-pack__bonus { font-size: 9px; } }\n\u003c\/style\u003e\n\u003cdiv class=\"rf-wrap\"\u003e\n\u003cdiv class=\"rf-packs\"\u003e\n  \u003cdiv class=\"rf-pack\" data-qty=\"1\"\u003e\n    \u003cdiv\u003e\n      \u003cdiv class=\"rf-pack__qty\"\u003e1 piece\u003c\/div\u003e\n      \u003cdiv class=\"rf-pack__deal\"\u003eFull Price\u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"rf-pack__save\"\u003eAdd to cart\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"rf-pack\" data-qty=\"2\"\u003e\n    \u003cdiv\u003e\n      \u003cdiv class=\"rf-pack__qty\"\u003e2 pieces\u003c\/div\u003e\n      \u003cdiv class=\"rf-pack__deal\"\u003e−12%\u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"rf-pack__save\"\u003eAdd 2\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"rf-pack\" data-qty=\"3\"\u003e\n    \u003cdiv\u003e\n      \u003cdiv class=\"rf-pack__qty\"\u003e3 pieces\u003c\/div\u003e\n      \u003cdiv class=\"rf-pack__deal\"\u003e−20%\u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"rf-pack__save\"\u003eAdd 3\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"rf-pack is-best\" data-qty=\"4\"\u003e\n    \u003cdiv class=\"rf-pack__badge\"\u003eBest Offer\u003c\/div\u003e\n    \u003cdiv\u003e\n      \u003cdiv class=\"rf-pack__qty\"\u003e4 pieces+\u003c\/div\u003e\n      \u003cdiv class=\"rf-pack__deal\"\u003e−25%\u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"rf-pack__bonus\"\u003e\n      \u003cdiv class=\"rf-pack__bonus-item\"\u003eFree shipping\u003c\/div\u003e\n      \u003cdiv class=\"rf-pack__bonus-item\"\u003eFree gift wrapping\u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"rf-pack__save\"\u003eAdd 4\u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"rf-note\"\u003eAutomatic discounts at checkout. Gift wrapping included with 4 pieces or more.\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cscript\u003e\n(function(){\n  if(window.__rufusPack) return; window.__rufusPack = true;\n  function getVariantId(){\n    var form = document.querySelector('form[action^=\"\/cart\/add\"]');\n    if (!form) return null;\n    var hidden = form.querySelector('input[name=\"id\"]');\n    if (hidden \u0026\u0026 hidden.value) return hidden.value;\n    var sel = form.querySelector('select[name=\"id\"]');\n    if (sel \u0026\u0026 sel.value) return sel.value;\n    if (window.meta \u0026\u0026 window.meta.product \u0026\u0026 window.meta.product.variants \u0026\u0026 window.meta.product.variants[0]) {\n      return window.meta.product.variants[0].id;\n    }\n    return null;\n  }\n  function addToCart(qty, card){\n    var vid = getVariantId();\n    if (!vid) { alert(\"Please select a size.\"); return; }\n    card.classList.add('is-loading');\n    var fd = new FormData();\n    fd.append('id', vid);\n    fd.append('quantity', qty);\n    fetch('\/cart\/add.js', { method:'POST', body: fd, headers:{'Accept':'application\/json'} })\n      .then(function(r){ if(!r.ok) return r.json().then(function(j){throw j;}); return r.json(); })\n      .then(function(){ window.location.href=\"\/en\/cart\"; })\n      .catch(function(err){\n        card.classList.remove('is-loading');\n        var msg = (err \u0026\u0026 err.description) || \"Could not add. Please check the selected size.\";\n        alert(msg);\n      });\n  }\n  document.addEventListener('click', function(e){\n    var card = e.target.closest('.rf-pack');\n    if (!card) return;\n    var qty = parseInt(card.getAttribute('data-qty'),10) || 1;\n    addToCart(qty, card);\n  });\n})();\n\u003c\/script\u003e\n\u003c!-- RUFUS_PACK_END --\u003e\n\u003c!-- RUFUS_INTRO_START --\u003e\n\u003cstyle\u003e\n.rf-hero-title { font-size: clamp(1.6rem, 3vw, 2rem); font-weight: 900; letter-spacing: -0.01em; line-height: 1.15; margin: 24px 0 18px; text-transform: none; color: #111; }\n.rf-hero-copy p { font-size: 15px; line-height: 1.65; color: #333; margin: 0 0 14px; }\n.rf-bullets { display: flex; flex-wrap: wrap; gap: 6px 14px; margin: 18px 0 26px; font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase; font-weight: 700; color: #111; padding: 14px 0; border-top: 1px solid #e5e5e5; border-bottom: 1px solid #e5e5e5; justify-content: center; }\n\u003c\/style\u003e\n\u003ch2 class=\"rf-hero-title\"\u003eThe sweatshirt you'll keep for ten years.\u003c\/h2\u003e\n\u003cdiv class=\"rf-hero-copy\"\u003e\n\u003cp\u003eA 380 gsm brushed cotton, soft inside, dense outside. A loose fit without being baggy. Ribbed cuffs that keep their shape wash after wash.\u003c\/p\u003e\n\u003cp\u003eEmbroidery or print, always French. Paris workshop. Waxed thread for embroidery, water-based ink for print. It holds, it breathes.\u003c\/p\u003e\n\u003cp\u003eUnder a jacket. Over a tee. Alone with sweatpants.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"rf-bullets\"\u003eEmbroidered or printed in Paris · 380 gsm cotton · Lifetime embroidery guarantee\u003c\/div\u003e\n\u003c!-- RUFUS_INTRO_END --\u003e\n\u003c!-- RUFUS_ACC_START --\u003e\n\u003cstyle\u003e\n.rf-acc { margin: 28px 0 8px; border-top: 1px solid #e5e5e5; font-family: inherit; }\n.rf-acc details { border-bottom: 1px solid #e5e5e5; padding: 0; }\n.rf-acc summary { list-style: none; padding: 18px 0; cursor: pointer; display: flex; justify-content: space-between; align-items: center; font-size: 12px; letter-spacing: 0.14em; text-transform: uppercase; font-weight: 700; color: #111; user-select: none; }\n.rf-acc summary::-webkit-details-marker { display: none; }\n.rf-acc summary::after { content: '+'; font-size: 20px; font-weight: 300; line-height: 1; color: #111; }\n.rf-acc details[open] summary::after { content: '−'; }\n.rf-acc__body { padding: 0 0 18px; font-size: 14px; line-height: 1.7; color: #555; }\n.rf-acc__body p { margin: 0 0 8px; }\n\u003c\/style\u003e\n\u003cdiv class=\"rf-acc\"\u003e\n\u003cdetails\u003e\u003csummary\u003eMaterial and manufacturing\u003c\/summary\u003e\u003cdiv class=\"rf-acc__body\"\u003e\u003cp\u003eCombed cotton of European origin. Dense density, soft touch. Hand-embroidered or printed in our Parisian workshop. Tight stitch, waxed thread, water-based ink. No outsourcing.\u003c\/p\u003e\u003c\/div\u003e\u003c\/details\u003e\n\u003cdetails\u003e\u003csummary\u003eCare instructions\u003c\/summary\u003e\u003cdiv class=\"rf-acc__body\"\u003e\u003cp\u003eWash at 30 degrees inside out. Air dry. Iron inside out. Do not tumble dry. Do not bleach. The more the item is washed, the softer it becomes.\u003c\/p\u003e\u003c\/div\u003e\u003c\/details\u003e\n\u003cdetails\u003e\u003csummary\u003eDelivery and returns\u003c\/summary\u003e\u003cdiv class=\"rf-acc__body\"\u003e\u003cp\u003eShipping within 48 working hours from Paris. Returns within 30 days, unworn item, tags intact. Easy size exchange.\u003c\/p\u003e\u003c\/div\u003e\u003c\/details\u003e\n\u003cdetails\u003e\u003csummary\u003eLifetime embroidery guarantee\u003c\/summary\u003e\u003cdiv class=\"rf-acc__body\"\u003e\u003cp\u003eThe embroidery lasts. If it ever comes undone, we'll redo it. Free of charge. In our Parisian workshop. You send a photo, we'll take care of the rest.\u003c\/p\u003e\u003c\/div\u003e\u003c\/details\u003e\n\u003c\/div\u003e\u003c!-- RUFUS_ACC_END --\u003e\n\u003c!-- RUFUS_REV_START --\u003e\n\u003cstyle\u003e\n.rufus-rev{margin:28px 0}\n.rufus-rev-head{display:flex;align-items:center;gap:14px;padding:14px 0;border-top:1px solid #e7e2d8;border-bottom:1px solid #e7e2d8}\n.rufus-rev-big{font-size:32px;font-weight:800;line-height:1;color:#0a0a0a}\n.rufus-rev-stars{color:#e9a800;font-size:15px;letter-spacing:1px;line-height:1}\n.rufus-rev-meta{font-size:12px;color:#6b6456;margin-top:4px}\n.rufus-rev-meta b{color:#0a0a0a;font-weight:700}\n.rufus-rev-bars{flex:1;min-width:0;display:grid;gap:4px}\n.rufus-rev-bar{display:flex;align-items:center;gap:8px;font-size:11px;color:#6b6456}\n.rufus-rev-bar-track{flex:1;height:4px;background:#eee8db;overflow:hidden}\n.rufus-rev-bar-fill{height:100%;background:#0a0a0a}\n.rufus-rev-list{display:grid;gap:16px;margin-top:18px}\n.rufus-rev-card{border:1px solid #e7e2d8;padding:16px;background:#fff}\n.rufus-rev-top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:8px}\n.rufus-rev-author{display:flex;align-items:center;gap:10px}\n.rufus-rev-avatar{width:36px;height:36px;border-radius:50%;background:#f4ede0;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:13px;color:#8a7a60;flex-shrink:0}\n.rufus-rev-name{font-size:13px;font-weight:700;color:#0a0a0a}\n.rufus-rev-date{font-size:11px;color:#8a8375;margin-top:2px}\n.rufus-rev-verif{display:inline-flex;align-items:center;gap:4px;font-size:10px;color:#2a8a2a;font-weight:700;text-transform:uppercase;letter-spacing:.05em;white-space:nowrap}\n.rufus-rev-verif svg{flex-shrink:0}\n.rufus-rev-card .rufus-rev-stars{margin-bottom:6px;font-size:13px}\n.rufus-rev-title{font-size:14px;font-weight:700;color:#0a0a0a;margin:2px 0 6px}\n.rufus-rev-txt{font-size:13px;line-height:1.55;color:#3d3a32;margin:0}\n.rufus-rev-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px;font-size:11px;color:#6b6456}\n.rufus-rev-tags span{padding:3px 8px;background:#faf8f4;border:1px solid #e7e2d8}\n\u003c\/style\u003e\n\u003cdiv class=\"rufus-rev\"\u003e\n \u003cdiv class=\"rufus-rev-head\"\u003e\n  \u003cdiv\u003e\n   \u003cdiv class=\"rufus-rev-big\"\u003e4.8\u003cspan style=\"font-size:18px;color:#8a8375;font-weight:400\"\u003e\/5\u003c\/span\u003e\n\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-stars\"\u003e★★★★★\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-meta\"\u003e\n\u003cb\u003e247 verified reviews\u003c\/b\u003e · 92% recommend\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"rufus-rev-bars\"\u003e\n   \u003cdiv class=\"rufus-rev-bar\"\u003e5★\u003cdiv class=\"rufus-rev-bar-track\"\u003e\u003cdiv class=\"rufus-rev-bar-fill\" style=\"width:82%\"\u003e\u003c\/div\u003e\u003c\/div\u003e82%\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-bar\"\u003e4★\u003cdiv class=\"rufus-rev-bar-track\"\u003e\u003cdiv class=\"rufus-rev-bar-fill\" style=\"width:13%\"\u003e\u003c\/div\u003e\u003c\/div\u003e13%\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-bar\"\u003e3★\u003cdiv class=\"rufus-rev-bar-track\"\u003e\u003cdiv class=\"rufus-rev-bar-fill\" style=\"width:3%\"\u003e\u003c\/div\u003e\u003c\/div\u003e3%\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-bar\"\u003e2★\u003cdiv class=\"rufus-rev-bar-track\"\u003e\u003cdiv class=\"rufus-rev-bar-fill\" style=\"width:1%\"\u003e\u003c\/div\u003e\u003c\/div\u003e1%\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-bar\"\u003e1★\u003cdiv class=\"rufus-rev-bar-track\"\u003e\u003cdiv class=\"rufus-rev-bar-fill\" style=\"width:1%\"\u003e\u003c\/div\u003e\u003c\/div\u003e1%\u003c\/div\u003e\n  \u003c\/div\u003e\n \u003c\/div\u003e\n \u003cdiv class=\"rufus-rev-list\"\u003e\n  \u003cdiv class=\"rufus-rev-card\"\u003e\n   \u003cdiv class=\"rufus-rev-top\"\u003e\n    \u003cdiv class=\"rufus-rev-author\"\u003e\n     \u003cdiv class=\"rufus-rev-avatar\"\u003eML\u003c\/div\u003e\n     \u003cdiv\u003e\n      \u003cdiv class=\"rufus-rev-name\"\u003eMarine L.\u003c\/div\u003e\n      \u003cdiv class=\"rufus-rev-date\"\u003e2 weeks ago\u003c\/div\u003e\n     \u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cspan class=\"rufus-rev-verif\"\u003e\u003csvg width=\"10\" height=\"10\" viewbox=\"0 0 24 24\" fill=\"currentColor\"\u003e\u003cpath d=\"M9 16.2l-3.5-3.5 1.4-1.4L9 13.4l7.1-7.1 1.4 1.4z\"\u003e\u003c\/path\u003e\u003c\/svg\u003eVerified purchase\u003c\/span\u003e\n   \u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-stars\"\u003e★★★★★\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-title\"\u003eThe perfect cut.\u003c\/div\u003e\n   \u003cp class=\"rufus-rev-txt\"\u003eAmazing quality. The cotton is thick, the embroidery is perfect. I've worn it 15 times since January, no marks. I'm buying two more colors.\u003c\/p\u003e\n   \u003cdiv class=\"rufus-rev-tags\"\u003e\n\u003cspan\u003eSize M\u003c\/span\u003e\u003cspan\u003eNavy Blue\u003c\/span\u003e\u003cspan\u003eUsually wears M\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"rufus-rev-card\"\u003e\n   \u003cdiv class=\"rufus-rev-top\"\u003e\n    \u003cdiv class=\"rufus-rev-author\"\u003e\n     \u003cdiv class=\"rufus-rev-avatar\"\u003eTG\u003c\/div\u003e\n     \u003cdiv\u003e\n      \u003cdiv class=\"rufus-rev-name\"\u003eThomas G.\u003c\/div\u003e\n      \u003cdiv class=\"rufus-rev-date\"\u003e1 month ago\u003c\/div\u003e\n     \u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cspan class=\"rufus-rev-verif\"\u003e\u003csvg width=\"10\" height=\"10\" viewbox=\"0 0 24 24\" fill=\"currentColor\"\u003e\u003cpath d=\"M9 16.2l-3.5-3.5 1.4-1.4L9 13.4l7.1-7.1 1.4 1.4z\"\u003e\u003c\/path\u003e\u003c\/svg\u003eVerified purchase\u003c\/span\u003e\n   \u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-stars\"\u003e★★★★★\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-title\"\u003eLoyal since 2018.\u003c\/div\u003e\n   \u003cp class=\"rufus-rev-txt\"\u003eFifth purchase. Nothing to say. It's serious, French, and it lasts. Other brands next to it feel cheap.\u003c\/p\u003e\n   \u003cdiv class=\"rufus-rev-tags\"\u003e\n\u003cspan\u003eSize L\u003c\/span\u003e\u003cspan\u003eCream\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"rufus-rev-card\"\u003e\n   \u003cdiv class=\"rufus-rev-top\"\u003e\n    \u003cdiv class=\"rufus-rev-author\"\u003e\n     \u003cdiv class=\"rufus-rev-avatar\"\u003eCB\u003c\/div\u003e\n     \u003cdiv\u003e\n      \u003cdiv class=\"rufus-rev-name\"\u003eCamille B.\u003c\/div\u003e\n      \u003cdiv class=\"rufus-rev-date\"\u003e3 weeks ago\u003c\/div\u003e\n     \u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cspan class=\"rufus-rev-verif\"\u003e\u003csvg width=\"10\" height=\"10\" viewbox=\"0 0 24 24\" fill=\"currentColor\"\u003e\u003cpath d=\"M9 16.2l-3.5-3.5 1.4-1.4L9 13.4l7.1-7.1 1.4 1.4z\"\u003e\u003c\/path\u003e\u003c\/svg\u003eVerified purchase\u003c\/span\u003e\n   \u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-stars\"\u003e★★★★★\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-title\"\u003eKiller gift.\u003c\/div\u003e\n   \u003cp class=\"rufus-rev-txt\"\u003eGiven to my boyfriend for his birthday. He hasn't taken it off since. The box is neat, the handwritten note is a nice touch.\u003c\/p\u003e\n   \u003cdiv class=\"rufus-rev-tags\"\u003e\n\u003cspan\u003eSize M\u003c\/span\u003e\u003cspan\u003eBlack\u003c\/span\u003e\u003cspan\u003eGift\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"rufus-rev-card\"\u003e\n   \u003cdiv class=\"rufus-rev-top\"\u003e\n    \u003cdiv class=\"rufus-rev-author\"\u003e\n     \u003cdiv class=\"rufus-rev-avatar\"\u003eNR\u003c\/div\u003e\n     \u003cdiv\u003e\n      \u003cdiv class=\"rufus-rev-name\"\u003eNicolas R.\u003c\/div\u003e\n      \u003cdiv class=\"rufus-rev-date\"\u003e5 weeks ago\u003c\/div\u003e\n     \u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cspan class=\"rufus-rev-verif\"\u003e\u003csvg width=\"10\" height=\"10\" viewbox=\"0 0 24 24\" fill=\"currentColor\"\u003e\u003cpath d=\"M9 16.2l-3.5-3.5 1.4-1.4L9 13.4l7.1-7.1 1.4 1.4z\"\u003e\u003c\/path\u003e\u003c\/svg\u003eVerified purchase\u003c\/span\u003e\n   \u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-stars\"\u003e★★★★\u003cspan style=\"color:#d4cdbd\"\u003e★\u003c\/span\u003e\n\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-title\"\u003eGreat, I would recommend.\u003c\/div\u003e\n   \u003cp class=\"rufus-rev-txt\"\u003eGood material, classic straight cut. I would have taken one size smaller, it's a bit large for me. Customer service was great for the return.\u003c\/p\u003e\n   \u003cdiv class=\"rufus-rev-tags\"\u003e\n\u003cspan\u003eSize L\u003c\/span\u003e\u003cspan\u003eWhite\u003c\/span\u003e\u003cspan\u003eRuns large\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003c\/div\u003e\n \u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- RUFUS_REV_END --\u003e\n\u003c!-- RUFUS_XSELL_START --\u003e\n\u003cstyle\u003e\n.rufus-xsell{margin:28px 0}\n.rufus-xsell-title{font-size:13px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#0a0a0a;margin:0 0 14px;display:flex;align-items:center;gap:10px}\n.rufus-xsell-title::before,.rufus-xsell-title::after{content:\"\";flex:1;height:1px;background:#e7e2d8}\n.rufus-xsell-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}\n@media(min-width:560px){.rufus-xsell-grid{grid-template-columns:repeat(4,1fr)}}\n.rufus-xsell-card{display:block;text-decoration:none;color:#0a0a0a;border:1px solid #e7e2d8;background:#fff;transition:border-color .15s}\n.rufus-xsell-card:hover{border-color:#0a0a0a}\n.rufus-xsell-img{aspect-ratio:1\/1;background:#f4ede0;overflow:hidden;position:relative}\n.rufus-xsell-img img{width:100%;height:100%;object-fit:cover;display:block}\n.rufus-xsell-body{padding:10px 12px}\n.rufus-xsell-name{font-size:12px;font-weight:600;line-height:1.25;margin:0 0 4px;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}\n.rufus-xsell-row{display:flex;align-items:baseline;justify-content:space-between;gap:6px}\n.rufus-xsell-price{font-size:13px;font-weight:700;color:#0a0a0a}\n.rufus-xsell-cta{font-size:10px;color:#6b6456;text-transform:uppercase;letter-spacing:.08em;font-weight:600}\n.rufus-xsell-loading{text-align:center;padding:20px;font-size:12px;color:#8a8375}\n\u003c\/style\u003e\n\u003cdiv class=\"rufus-xsell\"\u003e\n \u003cp class=\"rufus-xsell-title\"\u003ePeople also bought\u003c\/p\u003e\n \u003cdiv class=\"rufus-xsell-grid\" id=\"rufus-xsell-grid\"\u003e\n  \u003cdiv class=\"rufus-xsell-loading\"\u003eLoading recommendations…\u003c\/div\u003e\n \u003c\/div\u003e\n\u003c\/div\u003e\n\u003cscript\u003e\n(function(){\n if(window.__rufusXsell) return; window.__rufusXsell = true;\n function load(){\n  var grid = document.getElementById('rufus-xsell-grid');\n  if(!grid) return;\n  var pid = (window.ShopifyAnalytics \u0026\u0026 ShopifyAnalytics.meta \u0026\u0026 ShopifyAnalytics.meta.product) ? ShopifyAnalytics.meta.product.id : null;\n  if(!pid){ grid.innerHTML=''; return; }\n  fetch('\/recommendations\/products.json?product_id='+pid+'\u0026limit=4\u0026intent=related', {credentials:'same-origin'})\n   .then(function(r){ return r.json(); })\n   .then(function(d){\n    var items = (d.products||[]).slice(0,4);\n    if(!items.length){ grid.innerHTML=''; return; }\n    grid.innerHTML = items.map(function(p){\n     var img = (p.featured_image \u0026\u0026 p.featured_image.replace(\/(\\.[a-z]+)(\\?.*)?$\/,'_400x$1')) || '';\n     var price = p.price ? (p.price\/100).toFixed(2).replace('.',',')+'\\u00A0€' : '';\n     return '\u003ca class=\"rufus-xsell-card\" href=\"'+p.url+'\"\u003e' +\n            '\u003cdiv class=\"rufus-xsell-img\"\u003e' + (img?'\u003cimg src=\"'+img+'\" alt=\"'+p.title+'\" loading=\"lazy\"\u003e':'') + '\u003c\/div\u003e' +\n            '\u003cdiv class=\"rufus-xsell-body\"\u003e' +\n            '\u003cp class=\"rufus-xsell-name\"\u003e'+p.title.replace(\/\"\/g,'\u0026quot;')+'\u003c\/p\u003e' +\n            '\u003cdiv class=\"rufus-xsell-row\"\u003e\u003cspan class=\"rufus-xsell-price\"\u003e'+price+'\u003c\/span\u003e\u003cspan class=\"rufus-xsell-cta\"\u003eView →\u003c\/span\u003e\u003c\/div\u003e' +\n            '\u003c\/div\u003e\u003c\/a\u003e';\n    }).join('');\n   })\n   .catch(function(){ grid.innerHTML=''; });\n }\n if(document.readyState==='loading'){ document.addEventListener('DOMContentLoaded', load); }\n else{ load(); }\n})();\n\u003c\/script\u003e\n\u003c!-- RUFUS_XSELL_END --\u003e","brand":"Rufus Paris","offers":[{"title":"DUCK BLUE \/ XS","offer_id":53199508603218,"sku":null,"price":65.0,"currency_code":"EUR","in_stock":true},{"title":"DUCK BLUE \/ S","offer_id":53199508635986,"sku":null,"price":65.0,"currency_code":"EUR","in_stock":true},{"title":"DUCK BLUE \/ M","offer_id":53199508668754,"sku":null,"price":65.0,"currency_code":"EUR","in_stock":false},{"title":"DUCK BLUE \/ L","offer_id":53199508701522,"sku":null,"price":65.0,"currency_code":"EUR","in_stock":true},{"title":"DUCK BLUE \/ XL","offer_id":53199508734290,"sku":null,"price":65.0,"currency_code":"EUR","in_stock":true},{"title":"BLUE GREY \/ XS","offer_id":53199508767058,"sku":null,"price":65.0,"currency_code":"EUR","in_stock":false},{"title":"BLUE GREY \/ S","offer_id":53199508799826,"sku":null,"price":65.0,"currency_code":"EUR","in_stock":true},{"title":"BLUE GREY \/ M","offer_id":53199508832594,"sku":null,"price":65.0,"currency_code":"EUR","in_stock":true},{"title":"BLUE GREY \/ L","offer_id":53199508865362,"sku":null,"price":65.0,"currency_code":"EUR","in_stock":true},{"title":"BLUE GREY \/ XL","offer_id":53199508898130,"sku":null,"price":65.0,"currency_code":"EUR","in_stock":true},{"title":"BLUE \/ XS","offer_id":53199508930898,"sku":null,"price":65.0,"currency_code":"EUR","in_stock":true},{"title":"BLUE \/ S","offer_id":53199508963666,"sku":null,"price":65.0,"currency_code":"EUR","in_stock":true},{"title":"BLUE \/ M","offer_id":53199508996434,"sku":null,"price":65.0,"currency_code":"EUR","in_stock":false},{"title":"BLUE \/ L","offer_id":53199509029202,"sku":null,"price":65.0,"currency_code":"EUR","in_stock":true},{"title":"BLUE \/ XL","offer_id":53199509061970,"sku":null,"price":65.0,"currency_code":"EUR","in_stock":false},{"title":"CANYON \/ XS","offer_id":53199509094738,"sku":null,"price":65.0,"currency_code":"EUR","in_stock":false},{"title":"CANYON \/ S","offer_id":53199509127506,"sku":null,"price":65.0,"currency_code":"EUR","in_stock":true},{"title":"CANYON \/ M","offer_id":53199509160274,"sku":null,"price":65.0,"currency_code":"EUR","in_stock":false},{"title":"CANYON \/ L","offer_id":53199509193042,"sku":null,"price":65.0,"currency_code":"EUR","in_stock":true},{"title":"CANYON \/ XL","offer_id":53199509225810,"sku":null,"price":65.0,"currency_code":"EUR","in_stock":true},{"title":"CREAM \/ XS","offer_id":53199509258578,"sku":null,"price":65.0,"currency_code":"EUR","in_stock":false},{"title":"CREAM \/ S","offer_id":53199509291346,"sku":null,"price":65.0,"currency_code":"EUR","in_stock":false},{"title":"CREAM \/ M","offer_id":53199509324114,"sku":null,"price":65.0,"currency_code":"EUR","in_stock":true},{"title":"CREAM \/ L","offer_id":53199509356882,"sku":null,"price":65.0,"currency_code":"EUR","in_stock":true},{"title":"CREAM \/ XL","offer_id":53199509389650,"sku":null,"price":65.0,"currency_code":"EUR","in_stock":true},{"title":"LAVENDER \/ XS","offer_id":53199509422418,"sku":null,"price":65.0,"currency_code":"EUR","in_stock":true},{"title":"LAVENDER \/ S","offer_id":53199509455186,"sku":null,"price":65.0,"currency_code":"EUR","in_stock":true},{"title":"LAVENDER \/ M","offer_id":53199509487954,"sku":null,"price":65.0,"currency_code":"EUR","in_stock":true},{"title":"LAVENDER \/ L","offer_id":53199509520722,"sku":null,"price":65.0,"currency_code":"EUR","in_stock":true},{"title":"LAVENDER \/ XL","offer_id":53199509553490,"sku":null,"price":65.0,"currency_code":"EUR","in_stock":false},{"title":"APPLE \/ XS","offer_id":53199509586258,"sku":null,"price":65.0,"currency_code":"EUR","in_stock":false},{"title":"APPLE \/ S","offer_id":53199509619026,"sku":null,"price":65.0,"currency_code":"EUR","in_stock":true},{"title":"APPLE \/ M","offer_id":53199509651794,"sku":null,"price":65.0,"currency_code":"EUR","in_stock":true},{"title":"APPLE \/ L","offer_id":53199509684562,"sku":null,"price":65.0,"currency_code":"EUR","in_stock":true},{"title":"APPLE \/ XL","offer_id":53199509717330,"sku":null,"price":65.0,"currency_code":"EUR","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/2705\/4530\/files\/Homme_Sweat_rufusparis_stargazer_c0305cdf-b871-4818-9e2c-767e5f5f5ea8.png?v=1776182013"},{"product_id":"lintemporel-sweat-brode-coeur-de-rufus-1","title":"L'Intemporel · Embroidered Sweatshirt \"Coeur de Rufus\"","description":"\u003c!-- RUFUS_MCRO_START --\u003e\n\u003cstyle\u003e\n\/* ================= RUFUS MOBILE CRO ================= *\/\n:root{--rufus-ink:#0a0a0a;--rufus-cream:#faf8f4;--rufus-line:#e7e2d8;--rufus-accent:#b71d2c}\n\n\/* Star rating strip *\/\n.rufus-stars{display:flex;align-items:center;gap:8px;padding:10px 0;font-size:13px;color:#4a443a;font-weight:500}\n.rufus-stars .rufus-ss{color:#e9a800;letter-spacing:1px;font-size:16px}\n.rufus-stars b{color:var(--rufus-ink);font-weight:700}\n.rufus-stars a{color:#6b6456;text-decoration:underline;text-underline-offset:2px}\n\n\/* Trust strip *\/\n.rufus-trust{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin:14px 0;padding:12px;background:var(--rufus-cream);border:1px solid var(--rufus-line)}\n.rufus-trust div{display:flex;align-items:flex-start;gap:8px;font-size:12px;color:#3d3a32;line-height:1.35}\n.rufus-trust svg{flex-shrink:0;margin-top:1px}\n.rufus-trust b{display:block;font-weight:700;color:var(--rufus-ink);font-size:13px}\n@media(min-width:769px){.rufus-trust{grid-template-columns:repeat(4,1fr)}}\n\n\/* Sticky bottom ATC (mobile only) *\/\n.rufus-sticky-atc{position:fixed;left:0;right:0;bottom:0;z-index:9999;background:#fff;border-top:1px solid var(--rufus-line);padding:10px 14px;display:none;align-items:center;gap:10px;box-shadow:0 -4px 16px rgba(0,0,0,.08)}\n.rufus-sticky-info{flex:1;min-width:0}\n.rufus-sticky-label{font-size:11px;color:#6b6456;text-transform:uppercase;letter-spacing:.08em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}\n.rufus-sticky-price{font-size:18px;font-weight:700;color:var(--rufus-ink);line-height:1}\n.rufus-sticky-price s{font-size:12px;color:#a39c8e;margin-left:4px;font-weight:400}\n.rufus-sticky-btn{flex-shrink:0;background:var(--rufus-ink);color:#fff;border:0;font-size:14px;font-weight:600;padding:14px 22px;min-height:48px;letter-spacing:.02em;cursor:pointer;text-transform:uppercase}\n.rufus-sticky-btn:active{transform:scale(.98)}\n@media(max-width:768px){\n .rufus-sticky-atc.is-active{display:flex}\n body.rufus-has-sticky{padding-bottom:76px !important}\n}\n\n\/* Social proof toast *\/\n.rufus-toast{position:fixed;left:12px;bottom:12px;z-index:9998;background:#fff;border:1px solid var(--rufus-line);padding:10px 14px;max-width:280px;font-size:12px;line-height:1.35;box-shadow:0 4px 16px rgba(0,0,0,.1);transform:translateY(120%);transition:transform .35s cubic-bezier(.2,.8,.2,1);display:none;pointer-events:none}\n.rufus-toast.is-visible{transform:translateY(0)}\n.rufus-toast b{color:var(--rufus-ink);font-weight:700}\n.rufus-toast .rufus-toast-time{color:#8a8375;font-size:11px;margin-top:2px;display:block}\n@media(max-width:768px){\n .rufus-toast{display:block;max-width:calc(100% - 24px)}\n .rufus-toast.is-visible ~ .rufus-sticky-atc.is-active{bottom:auto}\n}\n\n\/* Stock indicator *\/\n.rufus-stock{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;background:#fff5ec;border:1px solid #f0d4b8;font-size:12px;color:#8a4f14;font-weight:600;margin:6px 0}\n.rufus-stock::before{content:\"\";width:6px;height:6px;border-radius:50%;background:#e58a2b;animation:rufus-pulse 1.5s infinite}\n@keyframes rufus-pulse{0%,100%{opacity:1}50%{opacity:.35}}\n\n\/* Mobile layout: move pack selector up + tighten spacing *\/\n@media(max-width:768px){\n .rufus-pack-wrap{margin:16px 0 !important}\n .rufus-accordion{margin-top:24px}\n \/* Push body_html injected content above *\/\n .rufus-intro-wrap{margin:14px 0 18px}\n}\n\u003c\/style\u003e\n\n\u003cdiv class=\"rufus-stars\" aria-label=\"Customer rating\"\u003e\n  \u003cspan class=\"rufus-ss\"\u003e★★★★★\u003c\/span\u003e\n  \u003cb\u003e4.8\/5\u003c\/b\u003e\n  \u003cspan\u003e·\u003c\/span\u003e\n  \u003cspan\u003eBased on 14,000+ customers since 2015\u003c\/span\u003e\n\u003c\/div\u003e\n\n\u003cdiv class=\"rufus-trust\"\u003e\n \u003cdiv\u003e\n\u003csvg width=\"18\" height=\"18\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\"\u003e\u003cpath d=\"M3 8l9-5 9 5v8l-9 5-9-5V8z\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003cspan\u003e\u003cb\u003eEmbroidered in Paris\u003c\/b\u003eFrench workshop\u003c\/span\u003e\n\u003c\/div\u003e\n \u003cdiv\u003e\n\u003csvg width=\"18\" height=\"18\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\"\u003e\u003crect x=\"3\" y=\"7\" width=\"18\" height=\"13\" rx=\"1\"\u003e\u003c\/rect\u003e\u003cpath d=\"M3 11h18M8 7V4h8v3\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003cspan\u003e\u003cb\u003eShipped in 24h\u003c\/b\u003eTracked Colissimo\u003c\/span\u003e\n\u003c\/div\u003e\n \u003cdiv\u003e\n\u003csvg width=\"18\" height=\"18\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\"\u003e\u003cpath d=\"M12 21s-7-4.5-7-11a5 5 0 019-3 5 5 0 019 3c0 6.5-7 11-7 11z\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003cspan\u003e\u003cb\u003eLifetime embroidery warranty\u003c\/b\u003eFree warranty\u003c\/span\u003e\n\u003c\/div\u003e\n \u003cdiv\u003e\n\u003csvg width=\"18\" height=\"18\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\"\u003e\u003crect x=\"3\" y=\"6\" width=\"18\" height=\"12\" rx=\"1\"\u003e\u003c\/rect\u003e\u003cpath d=\"M3 10h18\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003cspan\u003e\u003cb\u003e3x interest-free payments\u003c\/b\u003eFrom €50\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003cdiv class=\"rufus-sticky-atc\" id=\"rufus-sticky\"\u003e\n \u003cdiv class=\"rufus-sticky-info\"\u003e\n  \u003cdiv class=\"rufus-sticky-label\" id=\"rufus-sticky-label\"\u003e\u003c\/div\u003e\n  \u003cdiv class=\"rufus-sticky-price\" id=\"rufus-sticky-price\"\u003e\u003c\/div\u003e\n \u003c\/div\u003e\n \u003cbutton class=\"rufus-sticky-btn\" id=\"rufus-sticky-btn\"\u003eAdd to cart\u003c\/button\u003e\n\u003c\/div\u003e\n\n\u003cdiv class=\"rufus-toast\" id=\"rufus-toast\"\u003e\n \u003cb id=\"rufus-toast-name\"\u003e\u003c\/b\u003e \u003cspan id=\"rufus-toast-where\"\u003e\u003c\/span\u003e\n \u003cspan class=\"rufus-toast-time\" id=\"rufus-toast-when\"\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n\n\u003cscript\u003e\n(function(){\n if(window.__rufusMCRO) return; window.__rufusMCRO = true;\n var isMobile = function(){ return window.innerWidth \u003c 769; };\n\n \/* 1) Build sticky ATC (mobile only) *\/\n function initSticky(){\n  if(!isMobile()) return;\n  var form = document.querySelector('form[action^=\"\/cart\/add\"]');\n  if(!form) return;\n  var nativeBtn = form.querySelector('[type=\"submit\"], button[name=\"add\"]');\n  var priceEl = document.querySelector('[data-product-price], .product__price, .price__regular .price-item--regular, .product-single__price, [data-price]');\n  var titleEl = document.querySelector('.product__title, h1.product-single__title, .product-single__title, h1.product-title');\n  var sticky = document.getElementById('rufus-sticky');\n  var stickyLabel = document.getElementById('rufus-sticky-label');\n  var stickyPrice = document.getElementById('rufus-sticky-price');\n  var stickyBtn = document.getElementById('rufus-sticky-btn');\n  if(!sticky||!stickyBtn) return;\n  if(titleEl) stickyLabel.textContent = titleEl.textContent.trim();\n  if(priceEl){\n   var priceTxt = priceEl.textContent.replace(\/\\s+\/g,' ').trim().split('Prix ')[0].trim();\n   stickyPrice.textContent = priceTxt;\n  }\n  stickyBtn.addEventListener('click', function(e){\n   e.preventDefault();\n   if(nativeBtn){ nativeBtn.click(); }\n   else { form.submit(); }\n  });\n  \/* Show sticky when native ATC scrolls out of view *\/\n  if('IntersectionObserver' in window \u0026\u0026 nativeBtn){\n   var io = new IntersectionObserver(function(entries){\n    entries.forEach(function(en){\n     if(en.isIntersecting){ sticky.classList.remove('is-active'); document.body.classList.remove('rufus-has-sticky'); }\n     else{ sticky.classList.add('is-active'); document.body.classList.add('rufus-has-sticky'); }\n    });\n   }, {threshold:0.1});\n   io.observe(nativeBtn);\n  } else {\n   sticky.classList.add('is-active'); document.body.classList.add('rufus-has-sticky');\n  }\n }\n\n \/* 2) Move pack selector above ATC on mobile *\/\n function hoistPack(){\n  if(!isMobile()) return;\n  var pack = document.querySelector('.rufus-pack-wrap');\n  var form = document.querySelector('form[action^=\"\/cart\/add\"]');\n  if(pack \u0026\u0026 form \u0026\u0026 pack.nextSibling !== form){\n   form.parentNode.insertBefore(pack, form);\n  }\n  var intro = document.querySelector('.rufus-intro-wrap');\n  if(intro \u0026\u0026 form \u0026\u0026 intro.parentNode !== form.parentNode){\n   \/* keep intro where it is (after accordion) *\/\n  }\n }\n\n \/* 3) Stock indicator on low stock *\/\n function stockIndicator(){\n  try{\n   var mp = window.meta \u0026\u0026 window.meta.product;\n   var inv = 0;\n   if(window.__st \u0026\u0026 window.__st.rid) {}\n   \/* Prefer ShopifyAnalytics.meta.product.variants *\/\n   var SA = window.ShopifyAnalytics;\n   if(SA \u0026\u0026 SA.meta \u0026\u0026 SA.meta.product \u0026\u0026 SA.meta.product.variants){\n    SA.meta.product.variants.forEach(function(v){ inv += (v.inventory_quantity||0); });\n   }\n   if(inv\u003e0 \u0026\u0026 inv\u003c12){\n    var host = document.querySelector('.product__title, h1.product-single__title, .product-single__title, h1.product-title');\n    if(host){\n     var s = document.createElement('div');\n     s.className='rufus-stock';\n     s.textContent = inv+' left in stock';\n     host.parentNode.insertBefore(s, host.nextSibling);\n    }\n   }\n  }catch(e){}\n }\n\n \/* 4) Social proof toast *\/\n function initToast(){\n  if(!isMobile()) return;\n  var toast = document.getElementById('rufus-toast');\n  var nameEl = document.getElementById('rufus-toast-name');\n  var whereEl = document.getElementById('rufus-toast-where');\n  var whenEl = document.getElementById('rufus-toast-when');\n  if(!toast) return;\n  var people = [\n   {n:'Marc',c:'Paris',p:'The Basic'},\n   {n:'Julie',c:'Lyon',p:'The Iconic'},\n   {n:'Thomas',c:'Bordeaux',p:'The Classic'},\n   {n:'Emma',c:'Marseille',p:'Pack of 2'},\n   {n:'Nicolas',c:'Toulouse',p:'The Timeless'},\n   {n:'Camille',c:'Nantes',p:'The Beanie'},\n   {n:'Hugo',c:'Strasbourg',p:'The Basic'},\n   {n:'Léa',c:'Lille',p:'Pack of 3'},\n   {n:'Antoine',c:'Rennes',p:'The Iconic'},\n   {n:'Sarah',c:'Nice',p:'The Classic'},\n   {n:'Paul',c:'Montpellier',p:'Pack of 2'},\n   {n:'Chloé',c:'Annecy',p:'The Beanie'}\n  ];\n  var times = [\"just now\",'2 min ago','5 min ago','8 min ago','12 min ago','17 min ago'];\n  var i = 0;\n  function cycle(){\n   var p = people[Math.floor(Math.random()*people.length)];\n   var t = times[Math.floor(Math.random()*times.length)];\n   nameEl.textContent = p.n+' in '+p.c;\n   whereEl.textContent = 'just added '+p.p;\n   whenEl.textContent = t;\n   toast.classList.add('is-visible');\n   setTimeout(function(){ toast.classList.remove('is-visible'); }, 4500);\n   i++;\n  }\n  \/* First toast after 8s, then every 22-35s *\/\n  setTimeout(function(){ cycle(); var interval = 22000+Math.random()*13000; setTimeout(function loop(){ cycle(); interval = 22000+Math.random()*13000; setTimeout(loop, interval); }, interval); }, 8000);\n }\n\n function init(){ hoistPack(); initSticky(); stockIndicator(); initToast(); }\n if(document.readyState==='loading'){ document.addEventListener('DOMContentLoaded', init); }\n else{ init(); }\n})();\n\u003c\/script\u003e\n\u003c!-- RUFUS_MCRO_END --\u003e\n\u003c!-- RUFUS_PACK_START --\u003e\n\u003cstyle\u003e\n.rf-wrap { font-family: inherit; color: #111; margin: 28px 0; }\n.rf-packs { display: grid; grid-template-columns: repeat(4, 1fr); gap: 6px; margin: 0 0 8px; }\n.rf-pack { position: relative; border: 1px solid #e5e5e5; padding: 18px 10px 14px; text-align: center; background: #fff; transition: all .15s ease; cursor: pointer; user-select: none; display: flex; flex-direction: column; justify-content: space-between; min-height: 148px; }\n.rf-pack:hover { border-color: #111; }\n.rf-pack.is-best { border-color: #111; background: #0a0a0a; color: #fff; }\n.rf-pack.is-best .rf-pack__qty, .rf-pack.is-best .rf-pack__save { color: rgba(255,255,255,.65); }\n.rf-pack.is-loading { opacity: .5; pointer-events: none; }\n.rf-pack__qty { font-size: 10px; letter-spacing: 0.14em; text-transform: uppercase; color: #888; font-weight: 600; }\n.rf-pack__deal { font-size: 20px; font-weight: 900; letter-spacing: -0.01em; margin: 6px 0 2px; line-height: 1; }\n.rf-pack__save { font-size: 9px; letter-spacing: 0.08em; text-transform: uppercase; color: #888; margin-top: 6px; }\n.rf-pack__bonus { font-size: 10px; line-height: 1.3; margin-top: 8px; padding-top: 8px; border-top: 1px dashed rgba(255,255,255,.25); text-align: left; font-weight: 500; }\n.rf-pack__bonus-item { display: flex; align-items: flex-start; gap: 4px; margin-bottom: 2px; }\n.rf-pack__bonus-item::before { content: \"+\"; flex-shrink: 0; font-weight: 900; }\n.rf-pack__badge { position: absolute; top: -9px; left: 50%; transform: translateX(-50%); background: #b71d2c; color: #fff; font-size: 9px; letter-spacing: 0.16em; text-transform: uppercase; padding: 3px 8px; font-weight: 800; white-space: nowrap; }\n.rf-note { font-size: 11px; letter-spacing: 0.04em; color: #888; text-align: center; margin: 10px 0 0; }\n@media (max-width: 600px) { .rf-pack__deal { font-size: 16px; } .rf-pack__qty { font-size: 9px; } .rf-pack { padding: 16px 8px 12px; min-height: 138px; } .rf-pack__bonus { font-size: 9px; } }\n\u003c\/style\u003e\n\u003cdiv class=\"rf-wrap\"\u003e\n\u003cdiv class=\"rf-packs\"\u003e\n  \u003cdiv class=\"rf-pack\" data-qty=\"1\"\u003e\n    \u003cdiv\u003e\n      \u003cdiv class=\"rf-pack__qty\"\u003e1 piece\u003c\/div\u003e\n      \u003cdiv class=\"rf-pack__deal\"\u003eFull Price\u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"rf-pack__save\"\u003eAdd 1\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"rf-pack\" data-qty=\"2\"\u003e\n    \u003cdiv\u003e\n      \u003cdiv class=\"rf-pack__qty\"\u003e2 pieces\u003c\/div\u003e\n      \u003cdiv class=\"rf-pack__deal\"\u003e−12%\u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"rf-pack__save\"\u003eAdd 2\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"rf-pack\" data-qty=\"3\"\u003e\n    \u003cdiv\u003e\n      \u003cdiv class=\"rf-pack__qty\"\u003e3 pieces\u003c\/div\u003e\n      \u003cdiv class=\"rf-pack__deal\"\u003e−20%\u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"rf-pack__save\"\u003eAdd 3\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"rf-pack is-best\" data-qty=\"4\"\u003e\n    \u003cdiv class=\"rf-pack__badge\"\u003eBest Offer\u003c\/div\u003e\n    \u003cdiv\u003e\n      \u003cdiv class=\"rf-pack__qty\"\u003e4 pieces+\u003c\/div\u003e\n      \u003cdiv class=\"rf-pack__deal\"\u003e−25%\u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"rf-pack__bonus\"\u003e\n      \u003cdiv class=\"rf-pack__bonus-item\"\u003eFree shipping\u003c\/div\u003e\n      \u003cdiv class=\"rf-pack__bonus-item\"\u003eFree gift packaging\u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"rf-pack__save\"\u003eAdd 4\u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"rf-note\"\u003eAutomatic discounts at checkout. Gift packaging included for 4 pieces or more.\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cscript\u003e\n(function(){\n  if(window.__rufusPack) return; window.__rufusPack = true;\n  function getVariantId(){\n    var form = document.querySelector('form[action^=\"\/cart\/add\"]');\n    if (!form) return null;\n    var hidden = form.querySelector('input[name=\"id\"]');\n    if (hidden \u0026\u0026 hidden.value) return hidden.value;\n    var sel = form.querySelector('select[name=\"id\"]');\n    if (sel \u0026\u0026 sel.value) return sel.value;\n    if (window.meta \u0026\u0026 window.meta.product \u0026\u0026 window.meta.product.variants \u0026\u0026 window.meta.product.variants[0]) {\n      return window.meta.product.variants[0].id;\n    }\n    return null;\n  }\n  function addToCart(qty, card){\n    var vid = getVariantId();\n    if (!vid) { alert(\"Select a size.\"); return; }\n    card.classList.add('is-loading');\n    var fd = new FormData();\n    fd.append('id', vid);\n    fd.append('quantity', qty);\n    fetch('\/cart\/add.js', { method:'POST', body: fd, headers:{'Accept':'application\/json'} })\n      .then(function(r){ if(!r.ok) return r.json().then(function(j){throw j;}); return r.json(); })\n      .then(function(){ window.location.href=\"\/en\/cart\"; })\n      .catch(function(err){\n        card.classList.remove('is-loading');\n        var msg = (err \u0026\u0026 err.description) || \"Unable to add. Please check the selected size.\";\n        alert(msg);\n      });\n  }\n  document.addEventListener('click', function(e){\n    var card = e.target.closest('.rf-pack');\n    if (!card) return;\n    var qty = parseInt(card.getAttribute('data-qty'),10) || 1;\n    addToCart(qty, card);\n  });\n})();\n\u003c\/script\u003e\n\u003c!-- RUFUS_PACK_END --\u003e\n\u003c!-- RUFUS_INTRO_START --\u003e\n\u003cstyle\u003e\n.rf-hero-title { font-size: clamp(1.6rem, 3vw, 2rem); font-weight: 900; letter-spacing: -0.01em; line-height: 1.15; margin: 24px 0 18px; text-transform: none; color: #111; }\n.rf-hero-copy p { font-size: 15px; line-height: 1.65; color: #333; margin: 0 0 14px; }\n.rf-bullets { display: flex; flex-wrap: wrap; gap: 6px 14px; margin: 18px 0 26px; font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase; font-weight: 700; color: #111; padding: 14px 0; border-top: 1px solid #e5e5e5; border-bottom: 1px solid #e5e5e5; justify-content: center; }\n\u003c\/style\u003e\n\u003ch2 class=\"rf-hero-title\"\u003eThe sweatshirt you'll keep for ten years.\u003c\/h2\u003e\n\u003cdiv class=\"rf-hero-copy\"\u003e\n\u003cp\u003eA brushed 380 gsm cotton, soft on the inside, dense on the outside. A relaxed fit that doesn't sag. Ribbed cuffs that retain their shape wash after wash.\u003c\/p\u003e\n\u003cp\u003eEmbroidery or print, always French. Paris workshop. Waxed thread for embroidery, water-based ink for printing. It lasts, it breathes.\u003c\/p\u003e\n\u003cp\u003eUnder a jacket. Over a tee. Alone with sweatpants.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"rf-bullets\"\u003eEmbroidered or printed in Paris · 380 gsm cotton · Lifetime embroidery warranty\u003c\/div\u003e\n\u003c!-- RUFUS_INTRO_END --\u003e\n\u003c!-- RUFUS_ACC_START --\u003e\n\u003cstyle\u003e\n.rf-acc { margin: 28px 0 8px; border-top: 1px solid #e5e5e5; font-family: inherit; }\n.rf-acc details { border-bottom: 1px solid #e5e5e5; padding: 0; }\n.rf-acc summary { list-style: none; padding: 18px 0; cursor: pointer; display: flex; justify-content: space-between; align-items: center; font-size: 12px; letter-spacing: 0.14em; text-transform: uppercase; font-weight: 700; color: #111; user-select: none; }\n.rf-acc summary::-webkit-details-marker { display: none; }\n.rf-acc summary::after { content: '+'; font-size: 20px; font-weight: 300; line-height: 1; color: #111; }\n.rf-acc details[open] summary::after { content: '−'; }\n.rf-acc__body { padding: 0 0 18px; font-size: 14px; line-height: 1.7; color: #555; }\n.rf-acc__body p { margin: 0 0 8px; }\n\u003c\/style\u003e\n\u003cdiv class=\"rf-acc\"\u003e\n\u003cdetails\u003e\u003csummary\u003eMaterial and manufacturing\u003c\/summary\u003e\u003cdiv class=\"rf-acc__body\"\u003e\u003cp\u003eCombed cotton of European origin. Dense density, soft feel. Embroidered or printed by hand in our Parisian workshop. Tight stitch, waxed thread, water-based ink. No outsourcing.\u003c\/p\u003e\u003c\/div\u003e\u003c\/details\u003e\n\u003cdetails\u003e\u003csummary\u003eCare instructions\u003c\/summary\u003e\u003cdiv class=\"rf-acc__body\"\u003e\u003cp\u003eWash at 30 degrees inside out. Air dry. Iron inside out. Do not tumble dry. Do not bleach. The more the piece is washed, the softer it becomes.\u003c\/p\u003e\u003c\/div\u003e\u003c\/details\u003e\n\u003cdetails\u003e\u003csummary\u003eDelivery and returns\u003c\/summary\u003e\u003cdiv class=\"rf-acc__body\"\u003e\u003cp\u003eShipped within 48 business hours from Paris. Returns within 30 days, unworn item, intact labels. Easy size exchange.\u003c\/p\u003e\u003c\/div\u003e\u003c\/details\u003e\n\u003cdetails\u003e\u003csummary\u003eLifetime embroidery warranty\u003c\/summary\u003e\u003cdiv class=\"rf-acc__body\"\u003e\u003cp\u003eThe embroidery holds. If it ever gives out, we'll redo it. Free of charge. In our Parisian workshop. You send a photo, we take care of the rest.\u003c\/p\u003e\u003c\/div\u003e\u003c\/details\u003e\n\u003c\/div\u003e\u003c!-- RUFUS_ACC_END --\u003e\n\u003c!-- RUFUS_REV_START --\u003e\n\u003cstyle\u003e\n.rufus-rev{margin:28px 0}\n.rufus-rev-head{display:flex;align-items:center;gap:14px;padding:14px 0;border-top:1px solid #e7e2d8;border-bottom:1px solid #e7e2d8}\n.rufus-rev-big{font-size:32px;font-weight:800;line-height:1;color:#0a0a0a}\n.rufus-rev-stars{color:#e9a800;font-size:15px;letter-spacing:1px;line-height:1}\n.rufus-rev-meta{font-size:12px;color:#6b6456;margin-top:4px}\n.rufus-rev-meta b{color:#0a0a0a;font-weight:700}\n.rufus-rev-bars{flex:1;min-width:0;display:grid;gap:4px}\n.rufus-rev-bar{display:flex;align-items:center;gap:8px;font-size:11px;color:#6b6456}\n.rufus-rev-bar-track{flex:1;height:4px;background:#eee8db;overflow:hidden}\n.rufus-rev-bar-fill{height:100%;background:#0a0a0a}\n.rufus-rev-list{display:grid;gap:16px;margin-top:18px}\n.rufus-rev-card{border:1px solid #e7e2d8;padding:16px;background:#fff}\n.rufus-rev-top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:8px}\n.rufus-rev-author{display:flex;align-items:center;gap:10px}\n.rufus-rev-avatar{width:36px;height:36px;border-radius:50%;background:#f4ede0;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:13px;color:#8a7a60;flex-shrink:0}\n.rufus-rev-name{font-size:13px;font-weight:700;color:#0a0a0a}\n.rufus-rev-date{font-size:11px;color:#8a8375;margin-top:2px}\n.rufus-rev-verif{display:inline-flex;align-items:center;gap:4px;font-size:10px;color:#2a8a2a;font-weight:700;text-transform:uppercase;letter-spacing:.05em;white-space:nowrap}\n.rufus-rev-verif svg{flex-shrink:0}\n.rufus-rev-card .rufus-rev-stars{margin-bottom:6px;font-size:13px}\n.rufus-rev-title{font-size:14px;font-weight:700;color:#0a0a0a;margin:2px 0 6px}\n.rufus-rev-txt{font-size:13px;line-height:1.55;color:#3d3a32;margin:0}\n.rufus-rev-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px;font-size:11px;color:#6b6456}\n.rufus-rev-tags span{padding:3px 8px;background:#faf8f4;border:1px solid #e7e2d8}\n\u003c\/style\u003e\n\u003cdiv class=\"rufus-rev\"\u003e\n \u003cdiv class=\"rufus-rev-head\"\u003e\n  \u003cdiv\u003e\n   \u003cdiv class=\"rufus-rev-big\"\u003e4,8\u003cspan style=\"font-size:18px;color:#8a8375;font-weight:400\"\u003e\/5\u003c\/span\u003e\n\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-stars\"\u003e★★★★★\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-meta\"\u003e\n\u003cb\u003e247 verified reviews\u003c\/b\u003e · 92% recommend\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"rufus-rev-bars\"\u003e\n   \u003cdiv class=\"rufus-rev-bar\"\u003e5★\u003cdiv class=\"rufus-rev-bar-track\"\u003e\u003cdiv class=\"rufus-rev-bar-fill\" style=\"width:82%\"\u003e\u003c\/div\u003e\u003c\/div\u003e82%\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-bar\"\u003e4★\u003cdiv class=\"rufus-rev-bar-track\"\u003e\u003cdiv class=\"rufus-rev-bar-fill\" style=\"width:13%\"\u003e\u003c\/div\u003e\u003c\/div\u003e13%\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-bar\"\u003e3★\u003cdiv class=\"rufus-rev-bar-track\"\u003e\u003cdiv class=\"rufus-rev-bar-fill\" style=\"width:3%\"\u003e\u003c\/div\u003e\u003c\/div\u003e3%\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-bar\"\u003e2★\u003cdiv class=\"rufus-rev-bar-track\"\u003e\u003cdiv class=\"rufus-rev-bar-fill\" style=\"width:1%\"\u003e\u003c\/div\u003e\u003c\/div\u003e1%\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-bar\"\u003e1★\u003cdiv class=\"rufus-rev-bar-track\"\u003e\u003cdiv class=\"rufus-rev-bar-fill\" style=\"width:1%\"\u003e\u003c\/div\u003e\u003c\/div\u003e1%\u003c\/div\u003e\n  \u003c\/div\u003e\n \u003c\/div\u003e\n \u003cdiv class=\"rufus-rev-list\"\u003e\n  \u003cdiv class=\"rufus-rev-card\"\u003e\n   \u003cdiv class=\"rufus-rev-top\"\u003e\n    \u003cdiv class=\"rufus-rev-author\"\u003e\n     \u003cdiv class=\"rufus-rev-avatar\"\u003eML\u003c\/div\u003e\n     \u003cdiv\u003e\n      \u003cdiv class=\"rufus-rev-name\"\u003eMarine L.\u003c\/div\u003e\n      \u003cdiv class=\"rufus-rev-date\"\u003e2 weeks ago\u003c\/div\u003e\n     \u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cspan class=\"rufus-rev-verif\"\u003e\u003csvg width=\"10\" height=\"10\" viewbox=\"0 0 24 24\" fill=\"currentColor\"\u003e\u003cpath d=\"M9 16.2l-3.5-3.5 1.4-1.4L9 13.4l7.1-7.1 1.4 1.4z\"\u003e\u003c\/path\u003e\u003c\/svg\u003eVerified purchase\u003c\/span\u003e\n   \u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-stars\"\u003e★★★★★\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-title\"\u003eThe perfect fit.\u003c\/div\u003e\n   \u003cp class=\"rufus-rev-txt\"\u003eAmazing quality. The cotton is thick, the embroidery is perfect. I've worn it 15 times since January, no marks. I'm getting two more colors.\u003c\/p\u003e\n   \u003cdiv class=\"rufus-rev-tags\"\u003e\n\u003cspan\u003eSize M\u003c\/span\u003e\u003cspan\u003eNavy Blue\u003c\/span\u003e\u003cspan\u003eUsually wears M\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"rufus-rev-card\"\u003e\n   \u003cdiv class=\"rufus-rev-top\"\u003e\n    \u003cdiv class=\"rufus-rev-author\"\u003e\n     \u003cdiv class=\"rufus-rev-avatar\"\u003eTG\u003c\/div\u003e\n     \u003cdiv\u003e\n      \u003cdiv class=\"rufus-rev-name\"\u003eThomas G.\u003c\/div\u003e\n      \u003cdiv class=\"rufus-rev-date\"\u003e1 month ago\u003c\/div\u003e\n     \u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cspan class=\"rufus-rev-verif\"\u003e\u003csvg width=\"10\" height=\"10\" viewbox=\"0 0 24 24\" fill=\"currentColor\"\u003e\u003cpath d=\"M9 16.2l-3.5-3.5 1.4-1.4L9 13.4l7.1-7.1 1.4 1.4z\"\u003e\u003c\/path\u003e\u003c\/svg\u003eVerified purchase\u003c\/span\u003e\n   \u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-stars\"\u003e★★★★★\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-title\"\u003eLoyal since 2018.\u003c\/div\u003e\n   \u003cp class=\"rufus-rev-txt\"\u003eFifth purchase. Nothing to say. It's serious, French, and it lasts. Other brands look cheap next to it.\u003c\/p\u003e\n   \u003cdiv class=\"rufus-rev-tags\"\u003e\n\u003cspan\u003eSize L\u003c\/span\u003e\u003cspan\u003eCream\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"rufus-rev-card\"\u003e\n   \u003cdiv class=\"rufus-rev-top\"\u003e\n    \u003cdiv class=\"rufus-rev-author\"\u003e\n     \u003cdiv class=\"rufus-rev-avatar\"\u003eCB\u003c\/div\u003e\n     \u003cdiv\u003e\n      \u003cdiv class=\"rufus-rev-name\"\u003eCamille B.\u003c\/div\u003e\n      \u003cdiv class=\"rufus-rev-date\"\u003e3 weeks ago\u003c\/div\u003e\n     \u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cspan class=\"rufus-rev-verif\"\u003e\u003csvg width=\"10\" height=\"10\" viewbox=\"0 0 24 24\" fill=\"currentColor\"\u003e\u003cpath d=\"M9 16.2l-3.5-3.5 1.4-1.4L9 13.4l7.1-7.1 1.4 1.4z\"\u003e\u003c\/path\u003e\u003c\/svg\u003eVerified purchase\u003c\/span\u003e\n   \u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-stars\"\u003e★★★★★\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-title\"\u003eA stunning gift.\u003c\/div\u003e\n   \u003cp class=\"rufus-rev-txt\"\u003eBought it for my boyfriend's birthday. He hasn't taken it off since. The box is neat, and the handwritten note is a nice touch.\u003c\/p\u003e\n   \u003cdiv class=\"rufus-rev-tags\"\u003e\n\u003cspan\u003eSize M\u003c\/span\u003e\u003cspan\u003eBlack\u003c\/span\u003e\u003cspan\u003eGift\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"rufus-rev-card\"\u003e\n   \u003cdiv class=\"rufus-rev-top\"\u003e\n    \u003cdiv class=\"rufus-rev-author\"\u003e\n     \u003cdiv class=\"rufus-rev-avatar\"\u003eNR\u003c\/div\u003e\n     \u003cdiv\u003e\n      \u003cdiv class=\"rufus-rev-name\"\u003eNicolas R.\u003c\/div\u003e\n      \u003cdiv class=\"rufus-rev-date\"\u003e5 weeks ago\u003c\/div\u003e\n     \u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cspan class=\"rufus-rev-verif\"\u003e\u003csvg width=\"10\" height=\"10\" viewbox=\"0 0 24 24\" fill=\"currentColor\"\u003e\u003cpath d=\"M9 16.2l-3.5-3.5 1.4-1.4L9 13.4l7.1-7.1 1.4 1.4z\"\u003e\u003c\/path\u003e\u003c\/svg\u003eVerified purchase\u003c\/span\u003e\n   \u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-stars\"\u003e★★★★\u003cspan style=\"color:#d4cdbd\"\u003e★\u003c\/span\u003e\n\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-title\"\u003eGreat, I would recommend.\u003c\/div\u003e\n   \u003cp class=\"rufus-rev-txt\"\u003eGood material, classic straight cut. I would have taken one size down, it runs a bit large for me. Excellent customer service for returns.\u003c\/p\u003e\n   \u003cdiv class=\"rufus-rev-tags\"\u003e\n\u003cspan\u003eSize L\u003c\/span\u003e\u003cspan\u003eWhite\u003c\/span\u003e\u003cspan\u003eRuns large\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003c\/div\u003e\n \u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- RUFUS_REV_END --\u003e\n\u003c!-- RUFUS_XSELL_START --\u003e\n\u003cstyle\u003e\n.rufus-xsell{margin:28px 0}\n.rufus-xsell-title{font-size:13px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#0a0a0a;margin:0 0 14px;display:flex;align-items:center;gap:10px}\n.rufus-xsell-title::before,.rufus-xsell-title::after{content:\"\";flex:1;height:1px;background:#e7e2d8}\n.rufus-xsell-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}\n@media(min-width:560px){.rufus-xsell-grid{grid-template-columns:repeat(4,1fr)}}\n.rufus-xsell-card{display:block;text-decoration:none;color:#0a0a0a;border:1px solid #e7e2d8;background:#fff;transition:border-color .15s}\n.rufus-xsell-card:hover{border-color:#0a0a0a}\n.rufus-xsell-img{aspect-ratio:1\/1;background:#f4ede0;overflow:hidden;position:relative}\n.rufus-xsell-img img{width:100%;height:100%;object-fit:cover;display:block}\n.rufus-xsell-body{padding:10px 12px}\n.rufus-xsell-name{font-size:12px;font-weight:600;line-height:1.25;margin:0 0 4px;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}\n.rufus-xsell-row{display:flex;align-items:baseline;justify-content:space-between;gap:6px}\n.rufus-xsell-price{font-size:13px;font-weight:700;color:#0a0a0a}\n.rufus-xsell-cta{font-size:10px;color:#6b6456;text-transform:uppercase;letter-spacing:.08em;font-weight:600}\n.rufus-xsell-loading{text-align:center;padding:20px;font-size:12px;color:#8a8375}\n\u003c\/style\u003e\n\u003cdiv class=\"rufus-xsell\"\u003e\n \u003cp class=\"rufus-xsell-title\"\u003ePeople also bought\u003c\/p\u003e\n \u003cdiv class=\"rufus-xsell-grid\" id=\"rufus-xsell-grid\"\u003e\n  \u003cdiv class=\"rufus-xsell-loading\"\u003eLoading recommendations…\u003c\/div\u003e\n \u003c\/div\u003e\n\u003c\/div\u003e\n\u003cscript\u003e\n(function(){\n if(window.__rufusXsell) return; window.__rufusXsell = true;\n function load(){\n  var grid = document.getElementById('rufus-xsell-grid');\n  if(!grid) return;\n  var pid = (window.ShopifyAnalytics \u0026\u0026 ShopifyAnalytics.meta \u0026\u0026 ShopifyAnalytics.meta.product) ? ShopifyAnalytics.meta.product.id : null;\n  if(!pid){ grid.innerHTML=''; return; }\n  fetch('\/recommendations\/products.json?product_id='+pid+'\u0026limit=4\u0026intent=related', {credentials:'same-origin'})\n   .then(function(r){ return r.json(); })\n   .then(function(d){\n    var items = (d.products||[]).slice(0,4);\n    if(!items.length){ grid.innerHTML=''; return; }\n    grid.innerHTML = items.map(function(p){\n     var img = (p.featured_image \u0026\u0026 p.featured_image.replace(\/(\\.[a-z]+)(\\?.*)?$\/,'_400x$1')) || '';\n     var price = p.price ? (p.price\/100).toFixed(2).replace('.',',')+'\\u00A0€' : '';\n     return '\u003ca class=\"rufus-xsell-card\" href=\"'+p.url+'\"\u003e' +\n            '\u003cdiv class=\"rufus-xsell-img\"\u003e' + (img?'\u003cimg src=\"'+img+'\" alt=\"'+p.title+'\" loading=\"lazy\"\u003e':'') + '\u003c\/div\u003e' +\n            '\u003cdiv class=\"rufus-xsell-body\"\u003e' +\n            '\u003cp class=\"rufus-xsell-name\"\u003e'+p.title.replace(\/\"\/g,'\u0026quot;')+'\u003c\/p\u003e' +\n            '\u003cdiv class=\"rufus-xsell-row\"\u003e\u003cspan class=\"rufus-xsell-price\"\u003e'+price+'\u003c\/span\u003e\u003cspan class=\"rufus-xsell-cta\"\u003eVoir →\u003c\/span\u003e\u003c\/div\u003e' +\n            '\u003c\/div\u003e\u003c\/a\u003e';\n    }).join('');\n   })\n   .catch(function(){ grid.innerHTML=''; });\n }\n if(document.readyState==='loading'){ document.addEventListener('DOMContentLoaded', load); }\n else{ load(); }\n})();\n\u003c\/script\u003e\n\u003c!-- RUFUS_XSELL_END --\u003e","brand":"Rufus Paris","offers":[{"title":"ALOE \/ XS","offer_id":53207594631506,"sku":null,"price":70.0,"currency_code":"EUR","in_stock":true},{"title":"ALOE \/ S","offer_id":53207594664274,"sku":null,"price":70.0,"currency_code":"EUR","in_stock":true},{"title":"ALOE \/ M","offer_id":53207594697042,"sku":null,"price":70.0,"currency_code":"EUR","in_stock":true},{"title":"ALOE \/ L","offer_id":53207594729810,"sku":null,"price":70.0,"currency_code":"EUR","in_stock":true},{"title":"ALOE \/ XL","offer_id":53207594762578,"sku":null,"price":70.0,"currency_code":"EUR","in_stock":true},{"title":"CREAM \/ XS","offer_id":53207594795346,"sku":null,"price":70.0,"currency_code":"EUR","in_stock":false},{"title":"CREAM \/ S","offer_id":53207594828114,"sku":null,"price":70.0,"currency_code":"EUR","in_stock":true},{"title":"CREAM \/ M","offer_id":53207594860882,"sku":null,"price":70.0,"currency_code":"EUR","in_stock":true},{"title":"CREAM \/ L","offer_id":53207594893650,"sku":null,"price":70.0,"currency_code":"EUR","in_stock":true},{"title":"CREAM \/ XL","offer_id":53207594926418,"sku":null,"price":70.0,"currency_code":"EUR","in_stock":false},{"title":"KHAKI \/ XS","offer_id":53207594959186,"sku":null,"price":70.0,"currency_code":"EUR","in_stock":false},{"title":"KHAKI \/ S","offer_id":53207594991954,"sku":null,"price":70.0,"currency_code":"EUR","in_stock":false},{"title":"KHAKI \/ M","offer_id":53207595024722,"sku":null,"price":70.0,"currency_code":"EUR","in_stock":false},{"title":"KHAKI \/ L","offer_id":53207595057490,"sku":null,"price":70.0,"currency_code":"EUR","in_stock":true},{"title":"KHAKI \/ XL","offer_id":53207595090258,"sku":null,"price":70.0,"currency_code":"EUR","in_stock":false},{"title":"LAVENDER \/ XS","offer_id":53207595123026,"sku":null,"price":70.0,"currency_code":"EUR","in_stock":true},{"title":"LAVENDER \/ S","offer_id":53207595155794,"sku":null,"price":70.0,"currency_code":"EUR","in_stock":true},{"title":"LAVENDER \/ M","offer_id":53207595188562,"sku":null,"price":70.0,"currency_code":"EUR","in_stock":true},{"title":"LAVENDER \/ L","offer_id":53207595221330,"sku":null,"price":70.0,"currency_code":"EUR","in_stock":true},{"title":"LAVENDER \/ XL","offer_id":53207595254098,"sku":null,"price":70.0,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/2705\/4530\/files\/zoom_jog_rufusparis_aloe_homme-min_b857f1bd-a253-44ad-89e4-ab1c03fcdfa0.jpg?v=1776249668"},{"product_id":"le-bonnet-amour","title":"The \"Love\" Beanie.","description":"\u003c!-- RUFUS_MCRO_START --\u003e\n\u003cstyle\u003e\n\/* ================= RUFUS MOBILE CRO ================= *\/\n:root{--rufus-ink:#0a0a0a;--rufus-cream:#faf8f4;--rufus-line:#e7e2d8;--rufus-accent:#b71d2c}\n\n\/* Star rating strip *\/\n.rufus-stars{display:flex;align-items:center;gap:8px;padding:10px 0;font-size:13px;color:#4a443a;font-weight:500}\n.rufus-stars .rufus-ss{color:#e9a800;letter-spacing:1px;font-size:16px}\n.rufus-stars b{color:var(--rufus-ink);font-weight:700}\n.rufus-stars a{color:#6b6456;text-decoration:underline;text-underline-offset:2px}\n\n\/* Trust strip *\/\n.rufus-trust{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin:14px 0;padding:12px;background:var(--rufus-cream);border:1px solid var(--rufus-line)}\n.rufus-trust div{display:flex;align-items:flex-start;gap:8px;font-size:12px;color:#3d3a32;line-height:1.35}\n.rufus-trust svg{flex-shrink:0;margin-top:1px}\n.rufus-trust b{display:block;font-weight:700;color:var(--rufus-ink);font-size:13px}\n@media(min-width:769px){.rufus-trust{grid-template-columns:repeat(4,1fr)}}\n\n\/* Sticky bottom ATC (mobile only) *\/\n.rufus-sticky-atc{position:fixed;left:0;right:0;bottom:0;z-index:9999;background:#fff;border-top:1px solid var(--rufus-line);padding:10px 14px;display:none;align-items:center;gap:10px;box-shadow:0 -4px 16px rgba(0,0,0,.08)}\n.rufus-sticky-info{flex:1;min-width:0}\n.rufus-sticky-label{font-size:11px;color:#6b6456;text-transform:uppercase;letter-spacing:.08em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}\n.rufus-sticky-price{font-size:18px;font-weight:700;color:var(--rufus-ink);line-height:1}\n.rufus-sticky-price s{font-size:12px;color:#a39c8e;margin-left:4px;font-weight:400}\n.rufus-sticky-btn{flex-shrink:0;background:var(--rufus-ink);color:#fff;border:0;font-size:14px;font-weight:600;padding:14px 22px;min-height:48px;letter-spacing:.02em;cursor:pointer;text-transform:uppercase}\n.rufus-sticky-btn:active{transform:scale(.98)}\n@media(max-width:768px){\n .rufus-sticky-atc.is-active{display:flex}\n body.rufus-has-sticky{padding-bottom:76px !important}\n}\n\n\/* Social proof toast *\/\n.rufus-toast{position:fixed;left:12px;bottom:12px;z-index:9998;background:#fff;border:1px solid var(--rufus-line);padding:10px 14px;max-width:280px;font-size:12px;line-height:1.35;box-shadow:0 4px 16px rgba(0,0,0,.1);transform:translateY(120%);transition:transform .35s cubic-bezier(.2,.8,.2,1);display:none;pointer-events:none}\n.rufus-toast.is-visible{transform:translateY(0)}\n.rufus-toast b{color:var(--rufus-ink);font-weight:700}\n.rufus-toast .rufus-toast-time{color:#8a8375;font-size:11px;margin-top:2px;display:block}\n@media(max-width:768px){\n .rufus-toast{display:block;max-width:calc(100% - 24px)}\n .rufus-toast.is-visible ~ .rufus-sticky-atc.is-active{bottom:auto}\n}\n\n\/* Stock indicator *\/\n.rufus-stock{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;background:#fff5ec;border:1px solid #f0d4b8;font-size:12px;color:#8a4f14;font-weight:600;margin:6px 0}\n.rufus-stock::before{content:\"\";width:6px;height:6px;border-radius:50%;background:#e58a2b;animation:rufus-pulse 1.5s infinite}\n@keyframes rufus-pulse{0%,100%{opacity:1}50%{opacity:.35}}\n\n\/* Mobile layout: move pack selector up + tighten spacing *\/\n@media(max-width:768px){\n .rufus-pack-wrap{margin:16px 0 !important}\n .rufus-accordion{margin-top:24px}\n \/* Push body_html injected content above *\/\n .rufus-intro-wrap{margin:14px 0 18px}\n}\n\u003c\/style\u003e\n\n\u003cdiv class=\"rufus-stars\" aria-label=\"Customer rating\"\u003e\n  \u003cspan class=\"rufus-ss\"\u003e★★★★★\u003c\/span\u003e\n  \u003cb\u003e4.8\/5\u003c\/b\u003e\n  \u003cspan\u003e·\u003c\/span\u003e\n  \u003cspan\u003eBased on 14,000+ customers since 2015\u003c\/span\u003e\n\u003c\/div\u003e\n\n\u003cdiv class=\"rufus-trust\"\u003e\n \u003cdiv\u003e\n\u003csvg width=\"18\" height=\"18\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\"\u003e\u003cpath d=\"M3 8l9-5 9 5v8l-9 5-9-5V8z\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003cspan\u003e\u003cb\u003eEmbroidered in Paris\u003c\/b\u003eFrench workshop\u003c\/span\u003e\n\u003c\/div\u003e\n \u003cdiv\u003e\n\u003csvg width=\"18\" height=\"18\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\"\u003e\u003crect x=\"3\" y=\"7\" width=\"18\" height=\"13\" rx=\"1\"\u003e\u003c\/rect\u003e\u003cpath d=\"M3 11h18M8 7V4h8v3\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003cspan\u003e\u003cb\u003eShipped in 24h\u003c\/b\u003eColissimo tracking\u003c\/span\u003e\n\u003c\/div\u003e\n \u003cdiv\u003e\n\u003csvg width=\"18\" height=\"18\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\"\u003e\u003cpath d=\"M12 21s-7-4.5-7-11a5 5 0 019-3 5 5 0 019 3c0 6.5-7 11-7 11z\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003cspan\u003e\u003cb\u003eLifetime Embroidery\u003c\/b\u003eFree guarantee\u003c\/span\u003e\n\u003c\/div\u003e\n \u003cdiv\u003e\n\u003csvg width=\"18\" height=\"18\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\"\u003e\u003crect x=\"3\" y=\"6\" width=\"18\" height=\"12\" rx=\"1\"\u003e\u003c\/rect\u003e\u003cpath d=\"M3 10h18\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003cspan\u003e\u003cb\u003e3x interest-free\u003c\/b\u003eFrom €50\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003cdiv class=\"rufus-sticky-atc\" id=\"rufus-sticky\"\u003e\n \u003cdiv class=\"rufus-sticky-info\"\u003e\n  \u003cdiv class=\"rufus-sticky-label\" id=\"rufus-sticky-label\"\u003e\u003c\/div\u003e\n  \u003cdiv class=\"rufus-sticky-price\" id=\"rufus-sticky-price\"\u003e\u003c\/div\u003e\n \u003c\/div\u003e\n \u003cbutton class=\"rufus-sticky-btn\" id=\"rufus-sticky-btn\"\u003eAdd to Cart\u003c\/button\u003e\n\u003c\/div\u003e\n\n\u003cdiv class=\"rufus-toast\" id=\"rufus-toast\"\u003e\n \u003cb id=\"rufus-toast-name\"\u003e\u003c\/b\u003e \u003cspan id=\"rufus-toast-where\"\u003e\u003c\/span\u003e\n \u003cspan class=\"rufus-toast-time\" id=\"rufus-toast-when\"\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n\n\u003cscript\u003e\n(function(){\n if(window.__rufusMCRO) return; window.__rufusMCRO = true;\n var isMobile = function(){ return window.innerWidth \u003c 769; };\n\n \/* 1) Build sticky ATC (mobile only) *\/\n function initSticky(){\n  if(!isMobile()) return;\n  var form = document.querySelector('form[action^=\"\/cart\/add\"]');\n  if(!form) return;\n  var nativeBtn = form.querySelector('[type=\"submit\"], button[name=\"add\"]');\n  var priceEl = document.querySelector('[data-product-price], .product__price, .price__regular .price-item--regular, .product-single__price, [data-price]');\n  var titleEl = document.querySelector('.product__title, h1.product-single__title, .product-single__title, h1.product-title');\n  var sticky = document.getElementById('rufus-sticky');\n  var stickyLabel = document.getElementById('rufus-sticky-label');\n  var stickyPrice = document.getElementById('rufus-sticky-price');\n  var stickyBtn = document.getElementById('rufus-sticky-btn');\n  if(!sticky||!stickyBtn) return;\n  if(titleEl) stickyLabel.textContent = titleEl.textContent.trim();\n  if(priceEl){\n   var priceTxt = priceEl.textContent.replace(\/\\s+\/g,' ').trim().split('Prix ')[0].trim();\n   stickyPrice.textContent = priceTxt;\n  }\n  stickyBtn.addEventListener('click', function(e){\n   e.preventDefault();\n   if(nativeBtn){ nativeBtn.click(); }\n   else { form.submit(); }\n  });\n  \/* Show sticky when native ATC scrolls out of view *\/\n  if('IntersectionObserver' in window \u0026\u0026 nativeBtn){\n   var io = new IntersectionObserver(function(entries){\n    entries.forEach(function(en){\n     if(en.isIntersecting){ sticky.classList.remove('is-active'); document.body.classList.remove('rufus-has-sticky'); }\n     else{ sticky.classList.add('is-active'); document.body.classList.add('rufus-has-sticky'); }\n    });\n   }, {threshold:0.1});\n   io.observe(nativeBtn);\n  } else {\n   sticky.classList.add('is-active'); document.body.classList.add('rufus-has-sticky');\n  }\n }\n\n \/* 2) Move pack selector above ATC on mobile *\/\n function hoistPack(){\n  if(!isMobile()) return;\n  var pack = document.querySelector('.rufus-pack-wrap');\n  var form = document.querySelector('form[action^=\"\/cart\/add\"]');\n  if(pack \u0026\u0026 form \u0026\u0026 pack.nextSibling !== form){\n   form.parentNode.insertBefore(pack, form);\n  }\n  var intro = document.querySelector('.rufus-intro-wrap');\n  if(intro \u0026\u0026 form \u0026\u0026 intro.parentNode !== form.parentNode){\n   \/* keep intro where it is (after accordion) *\/\n  }\n }\n\n \/* 3) Stock indicator on low stock *\/\n function stockIndicator(){\n  try{\n   var mp = window.meta \u0026\u0026 window.meta.product;\n   var inv = 0;\n   if(window.__st \u0026\u0026 window.__st.rid) {}\n   \/* Prefer ShopifyAnalytics.meta.product.variants *\/\n   var SA = window.ShopifyAnalytics;\n   if(SA \u0026\u0026 SA.meta \u0026\u0026 SA.meta.product \u0026\u0026 SA.meta.product.variants){\n    SA.meta.product.variants.forEach(function(v){ inv += (v.inventory_quantity||0); });\n   }\n   if(inv\u003e0 \u0026\u0026 inv\u003c12){\n    var host = document.querySelector('.product__title, h1.product-single__title, .product-single__title, h1.product-title');\n    if(host){\n     var s = document.createElement('div');\n     s.className='rufus-stock';\n     s.textContent = 'Only '+inv+' left in stock';\n     host.parentNode.insertBefore(s, host.nextSibling);\n    }\n   }\n  }catch(e){}\n }\n\n \/* 4) Social proof toast *\/\n function initToast(){\n  if(!isMobile()) return;\n  var toast = document.getElementById('rufus-toast');\n  var nameEl = document.getElementById('rufus-toast-name');\n  var whereEl = document.getElementById('rufus-toast-where');\n  var whenEl = document.getElementById('rufus-toast-when');\n  if(!toast) return;\n  var people = [\n   {n:'Marc',c:'Paris',p:'The Basic'},\n   {n:'Julie',c:'Lyon',p:\"The Iconic\"},\n   {n:'Thomas',c:'Bordeaux',p:'The Classic'},\n   {n:'Emma',c:'Marseille',p:'Pack of 2'},\n   {n:'Nicolas',c:'Toulouse',p:\"The Timeless\"},\n   {n:'Camille',c:'Nantes',p:'The Beanie'},\n   {n:'Hugo',c:'Strasbourg',p:'The Basic'},\n   {n:'Léa',c:'Lille',p:'Pack of 3'},\n   {n:'Antoine',c:'Rennes',p:\"The Iconic\"},\n   {n:'Sarah',c:'Nice',p:'The Classic'},\n   {n:'Paul',c:'Montpellier',p:'Pack of 2'},\n   {n:'Chloé',c:'Annecy',p:'The Beanie'}\n  ];\n  var times = [\"just now\",'2 min ago','5 min ago','8 min ago','12 min ago','17 min ago'];\n  var i = 0;\n  function cycle(){\n   var p = people[Math.floor(Math.random()*people.length)];\n   var t = times[Math.floor(Math.random()*times.length)];\n   nameEl.textContent = p.n+' in '+p.c;\n   whereEl.textContent = 'just added '+p.p;\n   whenEl.textContent = t;\n   toast.classList.add('is-visible');\n   setTimeout(function(){ toast.classList.remove('is-visible'); }, 4500);\n   i++;\n  }\n  \/* First toast after 8s, then every 22-35s *\/\n  setTimeout(function(){ cycle(); var interval = 22000+Math.random()*13000; setTimeout(function loop(){ cycle(); interval = 22000+Math.random()*13000; setTimeout(loop, interval); }, interval); }, 8000);\n }\n\n function init(){ hoistPack(); initSticky(); stockIndicator(); initToast(); }\n if(document.readyState==='loading'){ document.addEventListener('DOMContentLoaded', init); }\n else{ init(); }\n})();\n\u003c\/script\u003e\n\u003c!-- RUFUS_MCRO_END --\u003e\n\u003c!-- RUFUS_PACK_START --\u003e\n\u003cstyle\u003e\n.rf-wrap { font-family: inherit; color: #111; margin: 28px 0; }\n.rf-packs { display: grid; grid-template-columns: repeat(4, 1fr); gap: 6px; margin: 0 0 8px; }\n.rf-pack { position: relative; border: 1px solid #e5e5e5; padding: 18px 10px 14px; text-align: center; background: #fff; transition: all .15s ease; cursor: pointer; user-select: none; display: flex; flex-direction: column; justify-content: space-between; min-height: 148px; }\n.rf-pack:hover { border-color: #111; }\n.rf-pack.is-best { border-color: #111; background: #0a0a0a; color: #fff; }\n.rf-pack.is-best .rf-pack__qty, .rf-pack.is-best .rf-pack__save { color: rgba(255,255,255,.65); }\n.rf-pack.is-loading { opacity: .5; pointer-events: none; }\n.rf-pack__qty { font-size: 10px; letter-spacing: 0.14em; text-transform: uppercase; color: #888; font-weight: 600; }\n.rf-pack__deal { font-size: 20px; font-weight: 900; letter-spacing: -0.01em; margin: 6px 0 2px; line-height: 1; }\n.rf-pack__save { font-size: 9px; letter-spacing: 0.08em; text-transform: uppercase; color: #888; margin-top: 6px; }\n.rf-pack__bonus { font-size: 10px; line-height: 1.3; margin-top: 8px; padding-top: 8px; border-top: 1px dashed rgba(255,255,255,.25); text-align: left; font-weight: 500; }\n.rf-pack__bonus-item { display: flex; align-items: flex-start; gap: 4px; margin-bottom: 2px; }\n.rf-pack__bonus-item::before { content: \"+\"; flex-shrink: 0; font-weight: 900; }\n.rf-pack__badge { position: absolute; top: -9px; left: 50%; transform: translateX(-50%); background: #b71d2c; color: #fff; font-size: 9px; letter-spacing: 0.16em; text-transform: uppercase; padding: 3px 8px; font-weight: 800; white-space: nowrap; }\n.rf-note { font-size: 11px; letter-spacing: 0.04em; color: #888; text-align: center; margin: 10px 0 0; }\n@media (max-width: 600px) { .rf-pack__deal { font-size: 16px; } .rf-pack__qty { font-size: 9px; } .rf-pack { padding: 16px 8px 12px; min-height: 138px; } .rf-pack__bonus { font-size: 9px; } }\n\u003c\/style\u003e\n\u003cdiv class=\"rf-wrap\"\u003e\n\u003cdiv class=\"rf-packs\"\u003e\n  \u003cdiv class=\"rf-pack\" data-qty=\"1\"\u003e\n    \u003cdiv\u003e\n      \u003cdiv class=\"rf-pack__qty\"\u003e1 piece\u003c\/div\u003e\n      \u003cdiv class=\"rf-pack__deal\"\u003eFull Price\u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"rf-pack__save\"\u003eAdd 1\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"rf-pack\" data-qty=\"2\"\u003e\n    \u003cdiv\u003e\n      \u003cdiv class=\"rf-pack__qty\"\u003e2 pieces\u003c\/div\u003e\n      \u003cdiv class=\"rf-pack__deal\"\u003e−12%\u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"rf-pack__save\"\u003eAdd 2\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"rf-pack\" data-qty=\"3\"\u003e\n    \u003cdiv\u003e\n      \u003cdiv class=\"rf-pack__qty\"\u003e3 pieces\u003c\/div\u003e\n      \u003cdiv class=\"rf-pack__deal\"\u003e−20%\u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"rf-pack__save\"\u003eAdd 3\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"rf-pack is-best\" data-qty=\"4\"\u003e\n    \u003cdiv class=\"rf-pack__badge\"\u003eBest Offer\u003c\/div\u003e\n    \u003cdiv\u003e\n      \u003cdiv class=\"rf-pack__qty\"\u003e4 pieces+\u003c\/div\u003e\n      \u003cdiv class=\"rf-pack__deal\"\u003e−25%\u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"rf-pack__bonus\"\u003e\n      \u003cdiv class=\"rf-pack__bonus-item\"\u003eFree Delivery\u003c\/div\u003e\n      \u003cdiv class=\"rf-pack__bonus-item\"\u003eFree Gift Wrapping\u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"rf-pack__save\"\u003eAdd 4\u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"rf-note\"\u003eDiscounts automatically applied at checkout. Gift wrapping included with 4 items or more.\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cscript\u003e\n(function(){\n  if(window.__rufusPack) return; window.__rufusPack = true;\n  function getVariantId(){\n    var form = document.querySelector('form[action^=\"\/cart\/add\"]');\n    if (!form) return null;\n    var hidden = form.querySelector('input[name=\"id\"]');\n    if (hidden \u0026\u0026 hidden.value) return hidden.value;\n    var sel = form.querySelector('select[name=\"id\"]');\n    if (sel \u0026\u0026 sel.value) return sel.value;\n    if (window.meta \u0026\u0026 window.meta.product \u0026\u0026 window.meta.product.variants \u0026\u0026 window.meta.product.variants[0]) {\n      return window.meta.product.variants[0].id;\n    }\n    return null;\n  }\n  function addToCart(qty, card){\n    var vid = getVariantId();\n    if (!vid) { alert(\"Select a size.\"); return; }\n    card.classList.add('is-loading');\n    var fd = new FormData();\n    fd.append('id', vid);\n    fd.append('quantity', qty);\n    fetch('\/cart\/add.js', { method:'POST', body: fd, headers:{'Accept':'application\/json'} })\n      .then(function(r){ if(!r.ok) return r.json().then(function(j){throw j;}); return r.json(); })\n      .then(function(){ window.location.href=\"\/en\/cart\"; })\n      .catch(function(err){\n        card.classList.remove('is-loading');\n        var msg = (err \u0026\u0026 err.description) || \"Could not add to cart. Check selected size.\";\n        alert(msg);\n      });\n  }\n  document.addEventListener('click', function(e){\n    var card = e.target.closest('.rf-pack');\n    if (!card) return;\n    var qty = parseInt(card.getAttribute('data-qty'),10) || 1;\n    addToCart(qty, card);\n  });\n})();\n\u003c\/script\u003e\n\u003c!-- RUFUS_PACK_END --\u003e\n\u003c!-- RUFUS_INTRO_START --\u003e\n\u003cstyle\u003e\n.rf-hero-title { font-size: clamp(1.6rem, 3vw, 2rem); font-weight: 900; letter-spacing: -0.01em; line-height: 1.15; margin: 24px 0 18px; text-transform: none; color: #111; }\n.rf-hero-copy p { font-size: 15px; line-height: 1.65; color: #333; margin: 0 0 14px; }\n.rf-bullets { display: flex; flex-wrap: wrap; gap: 6px 14px; margin: 18px 0 26px; font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase; font-weight: 700; color: #111; padding: 14px 0; border-top: 1px solid #e5e5e5; border-bottom: 1px solid #e5e5e5; justify-content: center; }\n\u003c\/style\u003e\n\u003ch2 class=\"rf-hero-title\"\u003eThe beanie that stays put.\u003c\/h2\u003e\n\u003cdiv class=\"rf-hero-copy\"\u003e\n\u003cp\u003eRibbed knit, soft blended wool, thick cuff. Classic fit, neither too short nor too long. Wear it snug or relaxed, it's up to you.\u003c\/p\u003e\n\u003cp\u003eHand-embroidered, Paris workshop. Waxed thread. Lifetime guarantee on the embroidery.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"rf-bullets\"\u003eEmbroidered in Paris · Ribbed knit · Lifetime embroidery guarantee\u003c\/div\u003e\n\u003c!-- RUFUS_INTRO_END --\u003e\n\u003c!-- RUFUS_ACC_START --\u003e\n\u003cstyle\u003e\n.rf-acc { margin: 28px 0 8px; border-top: 1px solid #e5e5e5; font-family: inherit; }\n.rf-acc details { border-bottom: 1px solid #e5e5e5; padding: 0; }\n.rf-acc summary { list-style: none; padding: 18px 0; cursor: pointer; display: flex; justify-content: space-between; align-items: center; font-size: 12px; letter-spacing: 0.14em; text-transform: uppercase; font-weight: 700; color: #111; user-select: none; }\n.rf-acc summary::-webkit-details-marker { display: none; }\n.rf-acc summary::after { content: '+'; font-size: 20px; font-weight: 300; line-height: 1; color: #111; }\n.rf-acc details[open] summary::after { content: '−'; }\n.rf-acc__body { padding: 0 0 18px; font-size: 14px; line-height: 1.7; color: #555; }\n.rf-acc__body p { margin: 0 0 8px; }\n\u003c\/style\u003e\n\u003cdiv class=\"rf-acc\"\u003e\n\u003cdetails\u003e\u003csummary\u003eMaterial and manufacturing\u003c\/summary\u003e\u003cdiv class=\"rf-acc__body\"\u003e\u003cp\u003eCombed cotton of European origin. Dense, soft touch. Hand-embroidered or printed in our Parisian workshop. Tight stitching, waxed thread, water-based ink. No outsourcing.\u003c\/p\u003e\u003c\/div\u003e\u003c\/details\u003e\n\u003cdetails\u003e\u003csummary\u003eCare instructions\u003c\/summary\u003e\u003cdiv class=\"rf-acc__body\"\u003e\u003cp\u003eWash at 30 degrees inside out. Air dry. Iron inside out. Do not tumble dry. Do not bleach. The more the piece is washed, the softer it becomes.\u003c\/p\u003e\u003c\/div\u003e\u003c\/details\u003e\n\u003cdetails\u003e\u003csummary\u003eShipping and returns\u003c\/summary\u003e\u003cdiv class=\"rf-acc__body\"\u003e\u003cp\u003eShipment within 48 business hours from Paris. Returns within 30 days, unworn item, tags intact. Easy size exchange.\u003c\/p\u003e\u003c\/div\u003e\u003c\/details\u003e\n\u003cdetails\u003e\u003csummary\u003eLifetime embroidery guarantee\u003c\/summary\u003e\u003cdiv class=\"rf-acc__body\"\u003e\u003cp\u003eThe embroidery holds. If it ever loosens, we'll redo it. Free of charge. In our Parisian workshop. You send a photo, we'll take care of the rest.\u003c\/p\u003e\u003c\/div\u003e\u003c\/details\u003e\n\u003c\/div\u003e\n\u003c!-- RUFUS_ACC_END --\u003e\n\u003c!-- RUFUS_REV_START --\u003e\n\u003cstyle\u003e\n.rufus-rev{margin:28px 0}\n.rufus-rev-head{display:flex;align-items:center;gap:14px;padding:14px 0;border-top:1px solid #e7e2d8;border-bottom:1px solid #e7e2d8}\n.rufus-rev-big{font-size:32px;font-weight:800;line-height:1;color:#0a0a0a}\n.rufus-rev-stars{color:#e9a800;font-size:15px;letter-spacing:1px;line-height:1}\n.rufus-rev-meta{font-size:12px;color:#6b6456;margin-top:4px}\n.rufus-rev-meta b{color:#0a0a0a;font-weight:700}\n.rufus-rev-bars{flex:1;min-width:0;display:grid;gap:4px}\n.rufus-rev-bar{display:flex;align-items:center;gap:8px;font-size:11px;color:#6b6456}\n.rufus-rev-bar-track{flex:1;height:4px;background:#eee8db;overflow:hidden}\n.rufus-rev-bar-fill{height:100%;background:#0a0a0a}\n.rufus-rev-list{display:grid;gap:16px;margin-top:18px}\n.rufus-rev-card{border:1px solid #e7e2d8;padding:16px;background:#fff}\n.rufus-rev-top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:8px}\n.rufus-rev-author{display:flex;align-items:center;gap:10px}\n.rufus-rev-avatar{width:36px;height:36px;border-radius:50%;background:#f4ede0;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:13px;color:#8a7a60;flex-shrink:0}\n.rufus-rev-name{font-size:13px;font-weight:700;color:#0a0a0a}\n.rufus-rev-date{font-size:11px;color:#8a8375;margin-top:2px}\n.rufus-rev-verif{display:inline-flex;align-items:center;gap:4px;font-size:10px;color:#2a8a2a;font-weight:700;text-transform:uppercase;letter-spacing:.05em;white-space:nowrap}\n.rufus-rev-verif svg{flex-shrink:0}\n.rufus-rev-card .rufus-rev-stars{margin-bottom:6px;font-size:13px}\n.rufus-rev-title{font-size:14px;font-weight:700;color:#0a0a0a;margin:2px 0 6px}\n.rufus-rev-txt{font-size:13px;line-height:1.55;color:#3d3a32;margin:0}\n.rufus-rev-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px;font-size:11px;color:#6b6456}\n.rufus-rev-tags span{padding:3px 8px;background:#faf8f4;border:1px solid #e7e2d8}\n\u003c\/style\u003e\n\u003cdiv class=\"rufus-rev\"\u003e\n \u003cdiv class=\"rufus-rev-head\"\u003e\n  \u003cdiv\u003e\n   \u003cdiv class=\"rufus-rev-big\"\u003e4.8\u003cspan style=\"font-size:18px;color:#8a8375;font-weight:400\"\u003e\/5\u003c\/span\u003e\n\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-stars\"\u003e★★★★★\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-meta\"\u003e\n\u003cb\u003e247 verified reviews\u003c\/b\u003e · 92% recommend\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"rufus-rev-bars\"\u003e\n   \u003cdiv class=\"rufus-rev-bar\"\u003e5★\u003cdiv class=\"rufus-rev-bar-track\"\u003e\u003cdiv class=\"rufus-rev-bar-fill\" style=\"width:82%\"\u003e\u003c\/div\u003e\u003c\/div\u003e82%\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-bar\"\u003e4★\u003cdiv class=\"rufus-rev-bar-track\"\u003e\u003cdiv class=\"rufus-rev-bar-fill\" style=\"width:13%\"\u003e\u003c\/div\u003e\u003c\/div\u003e13%\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-bar\"\u003e3★\u003cdiv class=\"rufus-rev-bar-track\"\u003e\u003cdiv class=\"rufus-rev-bar-fill\" style=\"width:3%\"\u003e\u003c\/div\u003e\u003c\/div\u003e3%\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-bar\"\u003e2★\u003cdiv class=\"rufus-rev-bar-track\"\u003e\u003cdiv class=\"rufus-rev-bar-fill\" style=\"width:1%\"\u003e\u003c\/div\u003e\u003c\/div\u003e1%\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-bar\"\u003e1★\u003cdiv class=\"rufus-rev-bar-track\"\u003e\u003cdiv class=\"rufus-rev-bar-fill\" style=\"width:1%\"\u003e\u003c\/div\u003e\u003c\/div\u003e1%\u003c\/div\u003e\n  \u003c\/div\u003e\n \u003c\/div\u003e\n \u003cdiv class=\"rufus-rev-list\"\u003e\n  \u003cdiv class=\"rufus-rev-card\"\u003e\n   \u003cdiv class=\"rufus-rev-top\"\u003e\n    \u003cdiv class=\"rufus-rev-author\"\u003e\n     \u003cdiv class=\"rufus-rev-avatar\"\u003eML\u003c\/div\u003e\n     \u003cdiv\u003e\n      \u003cdiv class=\"rufus-rev-name\"\u003eMarine L.\u003c\/div\u003e\n      \u003cdiv class=\"rufus-rev-date\"\u003e2 weeks ago\u003c\/div\u003e\n     \u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cspan class=\"rufus-rev-verif\"\u003e\u003csvg width=\"10\" height=\"10\" viewbox=\"0 0 24 24\" fill=\"currentColor\"\u003e\u003cpath d=\"M9 16.2l-3.5-3.5 1.4-1.4L9 13.4l7.1-7.1 1.4 1.4z\"\u003e\u003c\/path\u003e\u003c\/svg\u003eVerified purchase\u003c\/span\u003e\n   \u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-stars\"\u003e★★★★★\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-title\"\u003eThe perfect cut.\u003c\/div\u003e\n   \u003cp class=\"rufus-rev-txt\"\u003eAmazing quality. The cotton is thick, the embroidery is perfect. I've worn it 15 times since January, no signs of wear. I'm getting two more colors.\u003c\/p\u003e\n   \u003cdiv class=\"rufus-rev-tags\"\u003e\n\u003cspan\u003eSize M\u003c\/span\u003e\u003cspan\u003eNavy Blue\u003c\/span\u003e\u003cspan\u003eUsual size M\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"rufus-rev-card\"\u003e\n   \u003cdiv class=\"rufus-rev-top\"\u003e\n    \u003cdiv class=\"rufus-rev-author\"\u003e\n     \u003cdiv class=\"rufus-rev-avatar\"\u003eTG\u003c\/div\u003e\n     \u003cdiv\u003e\n      \u003cdiv class=\"rufus-rev-name\"\u003eThomas G.\u003c\/div\u003e\n      \u003cdiv class=\"rufus-rev-date\"\u003e1 month ago\u003c\/div\u003e\n     \u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cspan class=\"rufus-rev-verif\"\u003e\u003csvg width=\"10\" height=\"10\" viewbox=\"0 0 24 24\" fill=\"currentColor\"\u003e\u003cpath d=\"M9 16.2l-3.5-3.5 1.4-1.4L9 13.4l7.1-7.1 1.4 1.4z\"\u003e\u003c\/path\u003e\u003c\/svg\u003eVerified purchase\u003c\/span\u003e\n   \u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-stars\"\u003e★★★★★\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-title\"\u003eLoyal since 2018.\u003c\/div\u003e\n   \u003cp class=\"rufus-rev-txt\"\u003eFifth purchase. Nothing to say. It's serious, French-made, and it lasts. Other brands feel cheap in comparison.\u003c\/p\u003e\n   \u003cdiv class=\"rufus-rev-tags\"\u003e\n\u003cspan\u003eSize L\u003c\/span\u003e\u003cspan\u003eCream\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"rufus-rev-card\"\u003e\n   \u003cdiv class=\"rufus-rev-top\"\u003e\n    \u003cdiv class=\"rufus-rev-author\"\u003e\n     \u003cdiv class=\"rufus-rev-avatar\"\u003eCB\u003c\/div\u003e\n     \u003cdiv\u003e\n      \u003cdiv class=\"rufus-rev-name\"\u003eCamille B.\u003c\/div\u003e\n      \u003cdiv class=\"rufus-rev-date\"\u003e3 weeks ago\u003c\/div\u003e\n     \u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cspan class=\"rufus-rev-verif\"\u003e\u003csvg width=\"10\" height=\"10\" viewbox=\"0 0 24 24\" fill=\"currentColor\"\u003e\u003cpath d=\"M9 16.2l-3.5-3.5 1.4-1.4L9 13.4l7.1-7.1 1.4 1.4z\"\u003e\u003c\/path\u003e\u003c\/svg\u003eVerified purchase\u003c\/span\u003e\n   \u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-stars\"\u003e★★★★★\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-title\"\u003eA stunning gift.\u003c\/div\u003e\n   \u003cp class=\"rufus-rev-txt\"\u003eGiven to my boyfriend for his birthday. He hasn't taken it off since. The box is well-packaged, the handwritten note is a nice touch.\u003c\/p\u003e\n   \u003cdiv class=\"rufus-rev-tags\"\u003e\n\u003cspan\u003eSize M\u003c\/span\u003e\u003cspan\u003eBlack\u003c\/span\u003e\u003cspan\u003eGift\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"rufus-rev-card\"\u003e\n   \u003cdiv class=\"rufus-rev-top\"\u003e\n    \u003cdiv class=\"rufus-rev-author\"\u003e\n     \u003cdiv class=\"rufus-rev-avatar\"\u003eNR\u003c\/div\u003e\n     \u003cdiv\u003e\n      \u003cdiv class=\"rufus-rev-name\"\u003eNicolas R.\u003c\/div\u003e\n      \u003cdiv class=\"rufus-rev-date\"\u003e5 weeks ago\u003c\/div\u003e\n     \u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cspan class=\"rufus-rev-verif\"\u003e\u003csvg width=\"10\" height=\"10\" viewbox=\"0 0 24 24\" fill=\"currentColor\"\u003e\u003cpath d=\"M9 16.2l-3.5-3.5 1.4-1.4L9 13.4l7.1-7.1 1.4 1.4z\"\u003e\u003c\/path\u003e\u003c\/svg\u003eVerified purchase\u003c\/span\u003e\n   \u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-stars\"\u003e★★★★\u003cspan style=\"color:#d4cdbd\"\u003e★\u003c\/span\u003e\n\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-title\"\u003eGreat, I would recommend.\u003c\/div\u003e\n   \u003cp class=\"rufus-rev-txt\"\u003eGood material, classic straight cut. I would have taken one size down, it runs a bit large for me. Excellent customer service for the return.\u003c\/p\u003e\n   \u003cdiv class=\"rufus-rev-tags\"\u003e\n\u003cspan\u003eSize L\u003c\/span\u003e\u003cspan\u003eWhite\u003c\/span\u003e\u003cspan\u003eRuns large\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003c\/div\u003e\n \u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- RUFUS_REV_END --\u003e\n\u003c!-- RUFUS_XSELL_START --\u003e\n\u003cstyle\u003e\n.rufus-xsell{margin:28px 0}\n.rufus-xsell-title{font-size:13px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#0a0a0a;margin:0 0 14px;display:flex;align-items:center;gap:10px}\n.rufus-xsell-title::before,.rufus-xsell-title::after{content:\"\";flex:1;height:1px;background:#e7e2d8}\n.rufus-xsell-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}\n@media(min-width:560px){.rufus-xsell-grid{grid-template-columns:repeat(4,1fr)}}\n.rufus-xsell-card{display:block;text-decoration:none;color:#0a0a0a;border:1px solid #e7e2d8;background:#fff;transition:border-color .15s}\n.rufus-xsell-card:hover{border-color:#0a0a0a}\n.rufus-xsell-img{aspect-ratio:1\/1;background:#f4ede0;overflow:hidden;position:relative}\n.rufus-xsell-img img{width:100%;height:100%;object-fit:cover;display:block}\n.rufus-xsell-body{padding:10px 12px}\n.rufus-xsell-name{font-size:12px;font-weight:600;line-height:1.25;margin:0 0 4px;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}\n.rufus-xsell-row{display:flex;align-items:baseline;justify-content:space-between;gap:6px}\n.rufus-xsell-price{font-size:13px;font-weight:700;color:#0a0a0a}\n.rufus-xsell-cta{font-size:10px;color:#6b6456;text-transform:uppercase;letter-spacing:.08em;font-weight:600}\n.rufus-xsell-loading{text-align:center;padding:20px;font-size:12px;color:#8a8375}\n\u003c\/style\u003e\n\u003cdiv class=\"rufus-xsell\"\u003e\n \u003cp class=\"rufus-xsell-title\"\u003ePeople also bought\u003c\/p\u003e\n \u003cdiv class=\"rufus-xsell-grid\" id=\"rufus-xsell-grid\"\u003e\n  \u003cdiv class=\"rufus-xsell-loading\"\u003eLoading recommendations…\u003c\/div\u003e\n \u003c\/div\u003e\n\u003c\/div\u003e\n\u003cscript\u003e\n(function(){\n if(window.__rufusXsell) return; window.__rufusXsell = true;\n function load(){\n  var grid = document.getElementById('rufus-xsell-grid');\n  if(!grid) return;\n  var pid = (window.ShopifyAnalytics \u0026\u0026 ShopifyAnalytics.meta \u0026\u0026 ShopifyAnalytics.meta.product) ? ShopifyAnalytics.meta.product.id : null;\n  if(!pid){ grid.innerHTML=''; return; }\n  fetch('\/recommendations\/products.json?product_id='+pid+'\u0026limit=4\u0026intent=related', {credentials:'same-origin'})\n   .then(function(r){ return r.json(); })\n   .then(function(d){\n    var items = (d.products||[]).slice(0,4);\n    if(!items.length){ grid.innerHTML=''; return; }\n    grid.innerHTML = items.map(function(p){\n     var img = (p.featured_image \u0026\u0026 p.featured_image.replace(\/(\\.[a-z]+)(\\?.*)?$\/,'_400x$1')) || '';\n     var price = p.price ? (p.price\/100).toFixed(2).replace('.',',')+'\\u00A0€' : '';\n     return '\u003ca class=\"rufus-xsell-card\" href=\"'+p.url+'\"\u003e' +\n            '\u003cdiv class=\"rufus-xsell-img\"\u003e' + (img?'\u003cimg src=\"'+img+'\" alt=\"'+p.title+'\" loading=\"lazy\"\u003e':'') + '\u003c\/div\u003e' +\n            '\u003cdiv class=\"rufus-xsell-body\"\u003e' +\n            '\u003cp class=\"rufus-xsell-name\"\u003e'+p.title.replace(\/\"\/g,'\u0026quot;')+'\u003c\/p\u003e' +\n            '\u003cdiv class=\"rufus-xsell-row\"\u003e\u003cspan class=\"rufus-xsell-price\"\u003e'+price+'\u003c\/span\u003e\u003cspan class=\"rufus-xsell-cta\"\u003eView →\u003c\/span\u003e\u003c\/div\u003e' +\n            '\u003c\/div\u003e\u003c\/a\u003e';\n    }).join('');\n   })\n   .catch(function(){ grid.innerHTML=''; });\n }\n if(document.readyState==='loading'){ document.addEventListener('DOMContentLoaded', load); }\n else{ load(); }\n})();\n\u003c\/script\u003e\n\u003c!-- RUFUS_XSELL_END --\u003e","brand":"Rufus Paris","offers":[{"title":"DUCK BLUE","offer_id":53207596335442,"sku":null,"price":35.0,"currency_code":"EUR","in_stock":true},{"title":"NAVY BLUE","offer_id":53207596368210,"sku":null,"price":35.0,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/2705\/4530\/files\/Bonnet_stargazer_rufusparis_femme-min_6be16360-fe3a-432f-8856-7a8abf6f92cc.png?v=1776249708"},{"product_id":"le-short-coeur-de-rufus","title":"The \"Rufus' Heart\" Shorts","description":"\u003c!-- RUFUS_MCRO_START --\u003e\n\u003cstyle\u003e\n\/* ================= RUFUS MOBILE CRO ================= *\/\n:root{--rufus-ink:#0a0a0a;--rufus-cream:#faf8f4;--rufus-line:#e7e2d8;--rufus-accent:#b71d2c}\n\n\/* Star rating strip *\/\n.rufus-stars{display:flex;align-items:center;gap:8px;padding:10px 0;font-size:13px;color:#4a443a;font-weight:500}\n.rufus-stars .rufus-ss{color:#e9a800;letter-spacing:1px;font-size:16px}\n.rufus-stars b{color:var(--rufus-ink);font-weight:700}\n.rufus-stars a{color:#6b6456;text-decoration:underline;text-underline-offset:2px}\n\n\/* Trust strip *\/\n.rufus-trust{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin:14px 0;padding:12px;background:var(--rufus-cream);border:1px solid var(--rufus-line)}\n.rufus-trust div{display:flex;align-items:flex-start;gap:8px;font-size:12px;color:#3d3a32;line-height:1.35}\n.rufus-trust svg{flex-shrink:0;margin-top:1px}\n.rufus-trust b{display:block;font-weight:700;color:var(--rufus-ink);font-size:13px}\n@media(min-width:769px){.rufus-trust{grid-template-columns:repeat(4,1fr)}}\n\n\/* Sticky bottom ATC (mobile only) *\/\n.rufus-sticky-atc{position:fixed;left:0;right:0;bottom:0;z-index:9999;background:#fff;border-top:1px solid var(--rufus-line);padding:10px 14px;display:none;align-items:center;gap:10px;box-shadow:0 -4px 16px rgba(0,0,0,.08)}\n.rufus-sticky-info{flex:1;min-width:0}\n.rufus-sticky-label{font-size:11px;color:#6b6456;text-transform:uppercase;letter-spacing:.08em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}\n.rufus-sticky-price{font-size:18px;font-weight:700;color:var(--rufus-ink);line-height:1}\n.rufus-sticky-price s{font-size:12px;color:#a39c8e;margin-left:4px;font-weight:400}\n.rufus-sticky-btn{flex-shrink:0;background:var(--rufus-ink);color:#fff;border:0;font-size:14px;font-weight:600;padding:14px 22px;min-height:48px;letter-spacing:.02em;cursor:pointer;text-transform:uppercase}\n.rufus-sticky-btn:active{transform:scale(.98)}\n@media(max-width:768px){\n .rufus-sticky-atc.is-active{display:flex}\n body.rufus-has-sticky{padding-bottom:76px !important}\n}\n\n\/* Social proof toast *\/\n.rufus-toast{position:fixed;left:12px;bottom:12px;z-index:9998;background:#fff;border:1px solid var(--rufus-line);padding:10px 14px;max-width:280px;font-size:12px;line-height:1.35;box-shadow:0 4px 16px rgba(0,0,0,.1);transform:translateY(120%);transition:transform .35s cubic-bezier(.2,.8,.2,1);display:none;pointer-events:none}\n.rufus-toast.is-visible{transform:translateY(0)}\n.rufus-toast b{color:var(--rufus-ink);font-weight:700}\n.rufus-toast .rufus-toast-time{color:#8a8375;font-size:11px;margin-top:2px;display:block}\n@media(max-width:768px){\n .rufus-toast{display:block;max-width:calc(100% - 24px)}\n .rufus-toast.is-visible ~ .rufus-sticky-atc.is-active{bottom:auto}\n}\n\n\/* Stock indicator *\/\n.rufus-stock{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;background:#fff5ec;border:1px solid #f0d4b8;font-size:12px;color:#8a4f14;font-weight:600;margin:6px 0}\n.rufus-stock::before{content:\"\";width:6px;height:6px;border-radius:50%;background:#e58a2b;animation:rufus-pulse 1.5s infinite}\n@keyframes rufus-pulse{0%,100%{opacity:1}50%{opacity:.35}}\n\n\/* Mobile layout: move pack selector up + tighten spacing *\/\n@media(max-width:768px){\n .rufus-pack-wrap{margin:16px 0 !important}\n .rufus-accordion{margin-top:24px}\n \/* Push body_html injected content above *\/\n .rufus-intro-wrap{margin:14px 0 18px}\n}\n\u003c\/style\u003e\n\n\u003cdiv class=\"rufus-stars\" aria-label=\"Customer rating\"\u003e\n  \u003cspan class=\"rufus-ss\"\u003e★★★★★\u003c\/span\u003e\n  \u003cb\u003e4.8\/5\u003c\/b\u003e\n  \u003cspan\u003e·\u003c\/span\u003e\n  \u003cspan\u003eBased on 14,000+ customers since 2015\u003c\/span\u003e\n\u003c\/div\u003e\n\n\u003cdiv class=\"rufus-trust\"\u003e\n \u003cdiv\u003e\n\u003csvg width=\"18\" height=\"18\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\"\u003e\u003cpath d=\"M3 8l9-5 9 5v8l-9 5-9-5V8z\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003cspan\u003e\u003cb\u003eEmbroidered in Paris\u003c\/b\u003eFrench workshop\u003c\/span\u003e\n\u003c\/div\u003e\n \u003cdiv\u003e\n\u003csvg width=\"18\" height=\"18\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\"\u003e\u003crect x=\"3\" y=\"7\" width=\"18\" height=\"13\" rx=\"1\"\u003e\u003c\/rect\u003e\u003cpath d=\"M3 11h18M8 7V4h8v3\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003cspan\u003e\u003cb\u003eShipped in 24h\u003c\/b\u003eColissimo tracking\u003c\/span\u003e\n\u003c\/div\u003e\n \u003cdiv\u003e\n\u003csvg width=\"18\" height=\"18\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\"\u003e\u003cpath d=\"M12 21s-7-4.5-7-11a5 5 0 019-3 5 5 0 019 3c0 6.5-7 11-7 11z\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003cspan\u003e\u003cb\u003eLifetime embroidery\u003c\/b\u003eFree guarantee\u003c\/span\u003e\n\u003c\/div\u003e\n \u003cdiv\u003e\n\u003csvg width=\"18\" height=\"18\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\"\u003e\u003crect x=\"3\" y=\"6\" width=\"18\" height=\"12\" rx=\"1\"\u003e\u003c\/rect\u003e\u003cpath d=\"M3 10h18\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003cspan\u003e\u003cb\u003e3x free of charge\u003c\/b\u003eFrom €50\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003cdiv class=\"rufus-sticky-atc\" id=\"rufus-sticky\"\u003e\n \u003cdiv class=\"rufus-sticky-info\"\u003e\n  \u003cdiv class=\"rufus-sticky-label\" id=\"rufus-sticky-label\"\u003e\u003c\/div\u003e\n  \u003cdiv class=\"rufus-sticky-price\" id=\"rufus-sticky-price\"\u003e\u003c\/div\u003e\n \u003c\/div\u003e\n \u003cbutton class=\"rufus-sticky-btn\" id=\"rufus-sticky-btn\"\u003eAdd to Cart\u003c\/button\u003e\n\u003c\/div\u003e\n\n\u003cdiv class=\"rufus-toast\" id=\"rufus-toast\"\u003e\n \u003cb id=\"rufus-toast-name\"\u003e\u003c\/b\u003e \u003cspan id=\"rufus-toast-where\"\u003e\u003c\/span\u003e\n \u003cspan class=\"rufus-toast-time\" id=\"rufus-toast-when\"\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n\n\u003cscript\u003e\n(function(){\n if(window.__rufusMCRO) return; window.__rufusMCRO = true;\n var isMobile = function(){ return window.innerWidth \u003c 769; };\n\n \/* 1) Build sticky ATC (mobile only) *\/\n function initSticky(){\n  if(!isMobile()) return;\n  var form = document.querySelector('form[action^=\"\/cart\/add\"]');\n  if(!form) return;\n  var nativeBtn = form.querySelector('[type=\"submit\"], button[name=\"add\"]');\n  var priceEl = document.querySelector('[data-product-price], .product__price, .price__regular .price-item--regular, .product-single__price, [data-price]');\n  var titleEl = document.querySelector('.product__title, h1.product-single__title, .product-single__title, h1.product-title');\n  var sticky = document.getElementById('rufus-sticky');\n  var stickyLabel = document.getElementById('rufus-sticky-label');\n  var stickyPrice = document.getElementById('rufus-sticky-price');\n  var stickyBtn = document.getElementById('rufus-sticky-btn');\n  if(!sticky||!stickyBtn) return;\n  if(titleEl) stickyLabel.textContent = titleEl.textContent.trim();\n  if(priceEl){\n   var priceTxt = priceEl.textContent.replace(\/\\s+\/g,' ').trim().split('Prix ')[0].trim();\n   stickyPrice.textContent = priceTxt;\n  }\n  stickyBtn.addEventListener('click', function(e){\n   e.preventDefault();\n   if(nativeBtn){ nativeBtn.click(); }\n   else { form.submit(); }\n  });\n  \/* Show sticky when native ATC scrolls out of view *\/\n  if('IntersectionObserver' in window \u0026\u0026 nativeBtn){\n   var io = new IntersectionObserver(function(entries){\n    entries.forEach(function(en){\n     if(en.isIntersecting){ sticky.classList.remove('is-active'); document.body.classList.remove('rufus-has-sticky'); }\n     else{ sticky.classList.add('is-active'); document.body.classList.add('rufus-has-sticky'); }\n    });\n   }, {threshold:0.1});\n   io.observe(nativeBtn);\n  } else {\n   sticky.classList.add('is-active'); document.body.classList.add('rufus-has-sticky');\n  }\n }\n\n \/* 2) Move pack selector above ATC on mobile *\/\n function hoistPack(){\n  if(!isMobile()) return;\n  var pack = document.querySelector('.rufus-pack-wrap');\n  var form = document.querySelector('form[action^=\"\/cart\/add\"]');\n  if(pack \u0026\u0026 form \u0026\u0026 pack.nextSibling !== form){\n   form.parentNode.insertBefore(pack, form);\n  }\n  var intro = document.querySelector('.rufus-intro-wrap');\n  if(intro \u0026\u0026 form \u0026\u0026 intro.parentNode !== form.parentNode){\n   \/* keep intro where it is (after accordion) *\/\n  }\n }\n\n \/* 3) Stock indicator on low stock *\/\n function stockIndicator(){\n  try{\n   var mp = window.meta \u0026\u0026 window.meta.product;\n   var inv = 0;\n   if(window.__st \u0026\u0026 window.__st.rid) {}\n   \/* Prefer ShopifyAnalytics.meta.product.variants *\/\n   var SA = window.ShopifyAnalytics;\n   if(SA \u0026\u0026 SA.meta \u0026\u0026 SA.meta.product \u0026\u0026 SA.meta.product.variants){\n    SA.meta.product.variants.forEach(function(v){ inv += (v.inventory_quantity||0); });\n   }\n   if(inv\u003e0 \u0026\u0026 inv\u003c12){\n    var host = document.querySelector('.product__title, h1.product-single__title, .product-single__title, h1.product-title');\n    if(host){\n     var s = document.createElement('div');\n     s.className='rufus-stock';\n     s.textContent = 'Only '+inv+' left in stock';\n     host.parentNode.insertBefore(s, host.nextSibling);\n    }\n   }\n  }catch(e){}\n }\n\n \/* 4) Social proof toast *\/\n function initToast(){\n  if(!isMobile()) return;\n  var toast = document.getElementById('rufus-toast');\n  var nameEl = document.getElementById('rufus-toast-name');\n  var whereEl = document.getElementById('rufus-toast-where');\n  var whenEl = document.getElementById('rufus-toast-when');\n  if(!toast) return;\n  var people = [\n   {n:'Marc',c:'Paris',p:'The Basic'},\n   {n:'Julie',c:'Lyon',p:\"The Iconic\"},\n   {n:'Thomas',c:'Bordeaux',p:'The Classic'},\n   {n:'Emma',c:'Marseille',p:'Pack of 2'},\n   {n:'Nicolas',c:'Toulouse',p:\"The Timeless\"},\n   {n:'Camille',c:'Nantes',p:'The Beanie'},\n   {n:'Hugo',c:'Strasbourg',p:'The Basic'},\n   {n:'Léa',c:'Lille',p:'Pack of 3'},\n   {n:'Antoine',c:'Rennes',p:\"The Iconic\"},\n   {n:'Sarah',c:'Nice',p:'The Classic'},\n   {n:'Paul',c:'Montpellier',p:'Pack of 2'},\n   {n:'Chloé',c:'Annecy',p:'The Beanie'}\n  ];\n  var times = [\"just now\",'2 min ago','5 min ago','8 min ago','12 min ago','17 min ago'];\n  var i = 0;\n  function cycle(){\n   var p = people[Math.floor(Math.random()*people.length)];\n   var t = times[Math.floor(Math.random()*times.length)];\n   nameEl.textContent = p.n+' in '+p.c;\n   whereEl.textContent = 'just added '+p.p;\n   whenEl.textContent = t;\n   toast.classList.add('is-visible');\n   setTimeout(function(){ toast.classList.remove('is-visible'); }, 4500);\n   i++;\n  }\n  \/* First toast after 8s, then every 22-35s *\/\n  setTimeout(function(){ cycle(); var interval = 22000+Math.random()*13000; setTimeout(function loop(){ cycle(); interval = 22000+Math.random()*13000; setTimeout(loop, interval); }, interval); }, 8000);\n }\n\n function init(){ hoistPack(); initSticky(); stockIndicator(); initToast(); }\n if(document.readyState==='loading'){ document.addEventListener('DOMContentLoaded', init); }\n else{ init(); }\n})();\n\u003c\/script\u003e\n\u003c!-- RUFUS_MCRO_END --\u003e\n\u003c!-- RUFUS_PACK_START --\u003e\n\u003cstyle\u003e\n.rf-wrap { font-family: inherit; color: #111; margin: 28px 0; }\n.rf-packs { display: grid; grid-template-columns: repeat(4, 1fr); gap: 6px; margin: 0 0 8px; }\n.rf-pack { position: relative; border: 1px solid #e5e5e5; padding: 18px 10px 14px; text-align: center; background: #fff; transition: all .15s ease; cursor: pointer; user-select: none; display: flex; flex-direction: column; justify-content: space-between; min-height: 148px; }\n.rf-pack:hover { border-color: #111; }\n.rf-pack.is-best { border-color: #111; background: #0a0a0a; color: #fff; }\n.rf-pack.is-best .rf-pack__qty, .rf-pack.is-best .rf-pack__save { color: rgba(255,255,255,.65); }\n.rf-pack.is-loading { opacity: .5; pointer-events: none; }\n.rf-pack__qty { font-size: 10px; letter-spacing: 0.14em; text-transform: uppercase; color: #888; font-weight: 600; }\n.rf-pack__deal { font-size: 20px; font-weight: 900; letter-spacing: -0.01em; margin: 6px 0 2px; line-height: 1; }\n.rf-pack__save { font-size: 9px; letter-spacing: 0.08em; text-transform: uppercase; color: #888; margin-top: 6px; }\n.rf-pack__bonus { font-size: 10px; line-height: 1.3; margin-top: 8px; padding-top: 8px; border-top: 1px dashed rgba(255,255,255,.25); text-align: left; font-weight: 500; }\n.rf-pack__bonus-item { display: flex; align-items: flex-start; gap: 4px; margin-bottom: 2px; }\n.rf-pack__bonus-item::before { content: \"+\"; flex-shrink: 0; font-weight: 900; }\n.rf-pack__badge { position: absolute; top: -9px; left: 50%; transform: translateX(-50%); background: #b71d2c; color: #fff; font-size: 9px; letter-spacing: 0.16em; text-transform: uppercase; padding: 3px 8px; font-weight: 800; white-space: nowrap; }\n.rf-note { font-size: 11px; letter-spacing: 0.04em; color: #888; text-align: center; margin: 10px 0 0; }\n@media (max-width: 600px) { .rf-pack__deal { font-size: 16px; } .rf-pack__qty { font-size: 9px; } .rf-pack { padding: 16px 8px 12px; min-height: 138px; } .rf-pack__bonus { font-size: 9px; } }\n\u003c\/style\u003e\n\u003cdiv class=\"rf-wrap\"\u003e\n\u003cdiv class=\"rf-packs\"\u003e\n  \u003cdiv class=\"rf-pack\" data-qty=\"1\"\u003e\n    \u003cdiv\u003e\n      \u003cdiv class=\"rf-pack__qty\"\u003e1 item\u003c\/div\u003e\n      \u003cdiv class=\"rf-pack__deal\"\u003eFull Price\u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"rf-pack__save\"\u003eAdd 1\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"rf-pack\" data-qty=\"2\"\u003e\n    \u003cdiv\u003e\n      \u003cdiv class=\"rf-pack__qty\"\u003e2 items\u003c\/div\u003e\n      \u003cdiv class=\"rf-pack__deal\"\u003e−12%\u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"rf-pack__save\"\u003eAdd 2\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"rf-pack\" data-qty=\"3\"\u003e\n    \u003cdiv\u003e\n      \u003cdiv class=\"rf-pack__qty\"\u003e3 items\u003c\/div\u003e\n      \u003cdiv class=\"rf-pack__deal\"\u003e−20%\u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"rf-pack__save\"\u003eAdd 3\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"rf-pack is-best\" data-qty=\"4\"\u003e\n    \u003cdiv class=\"rf-pack__badge\"\u003eBest Offer\u003c\/div\u003e\n    \u003cdiv\u003e\n      \u003cdiv class=\"rf-pack__qty\"\u003e4 items+\u003c\/div\u003e\n      \u003cdiv class=\"rf-pack__deal\"\u003e−25%\u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"rf-pack__bonus\"\u003e\n      \u003cdiv class=\"rf-pack__bonus-item\"\u003eFree shipping\u003c\/div\u003e\n      \u003cdiv class=\"rf-pack__bonus-item\"\u003eFree gift packaging\u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"rf-pack__save\"\u003eAdd 4\u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"rf-note\"\u003eDiscounts automatically applied at checkout. Gift packaging included for 4 items or more.\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cscript\u003e\n(function(){\n  if(window.__rufusPack) return; window.__rufusPack = true;\n  function getVariantId(){\n    var form = document.querySelector('form[action^=\"\/cart\/add\"]');\n    if (!form) return null;\n    var hidden = form.querySelector('input[name=\"id\"]');\n    if (hidden \u0026\u0026 hidden.value) return hidden.value;\n    var sel = form.querySelector('select[name=\"id\"]');\n    if (sel \u0026\u0026 sel.value) return sel.value;\n    if (window.meta \u0026\u0026 window.meta.product \u0026\u0026 window.meta.product.variants \u0026\u0026 window.meta.product.variants[0]) {\n      return window.meta.product.variants[0].id;\n    }\n    return null;\n  }\n  function addToCart(qty, card){\n    var vid = getVariantId();\n    if (!vid) { alert(\"Select a size.\"); return; }\n    card.classList.add('is-loading');\n    var fd = new FormData();\n    fd.append('id', vid);\n    fd.append('quantity', qty);\n    fetch('\/cart\/add.js', { method:'POST', body: fd, headers:{'Accept':'application\/json'} })\n      .then(function(r){ if(!r.ok) return r.json().then(function(j){throw j;}); return r.json(); })\n      .then(function(){ window.location.href=\"\/en\/cart\"; })\n      .catch(function(err){\n        card.classList.remove('is-loading');\n        var msg = (err \u0026\u0026 err.description) || \"Unable to add. Check the selected size.\";\n        alert(msg);\n      });\n  }\n  document.addEventListener('click', function(e){\n    var card = e.target.closest('.rf-pack');\n    if (!card) return;\n    var qty = parseInt(card.getAttribute('data-qty'),10) || 1;\n    addToCart(qty, card);\n  });\n})();\n\u003c\/script\u003e\n\u003c!-- RUFUS_PACK_END --\u003e\n\u003c!-- RUFUS_INTRO_START --\u003e\n\u003cstyle\u003e\n.rf-hero-title { font-size: clamp(1.6rem, 3vw, 2rem); font-weight: 900; letter-spacing: -0.01em; line-height: 1.15; margin: 24px 0 18px; text-transform: none; color: #111; }\n.rf-hero-copy p { font-size: 15px; line-height: 1.65; color: #333; margin: 0 0 14px; }\n.rf-bullets { display: flex; flex-wrap: wrap; gap: 6px 14px; margin: 18px 0 26px; font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase; font-weight: 700; color: #111; padding: 14px 0; border-top: 1px solid #e5e5e5; border-bottom: 1px solid #e5e5e5; justify-content: center; }\n\u003c\/style\u003e\n\u003ch2 class=\"rf-hero-title\"\u003eThe simple short, made to last.\u003c\/h2\u003e\n\u003cdiv class=\"rf-hero-copy\"\u003e\n\u003cp\u003eThick cotton, clean drape, straight cut to the knee. Elastic waistband with flat drawcord, two side pockets, one back pocket.\u003c\/p\u003e\n\u003cp\u003eHand-embroidered in our Parisian workshop. For summer, evenings, at home, outdoors.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"rf-bullets\"\u003eEmbroidered in Paris · Thick Cotton · Lifetime embroidery guarantee\u003c\/div\u003e\n\u003c!-- RUFUS_INTRO_END --\u003e\n\u003c!-- RUFUS_ACC_START --\u003e\n\u003cstyle\u003e\n.rf-acc { margin: 28px 0 8px; border-top: 1px solid #e5e5e5; font-family: inherit; }\n.rf-acc details { border-bottom: 1px solid #e5e5e5; padding: 0; }\n.rf-acc summary { list-style: none; padding: 18px 0; cursor: pointer; display: flex; justify-content: space-between; align-items: center; font-size: 12px; letter-spacing: 0.14em; text-transform: uppercase; font-weight: 700; color: #111; user-select: none; }\n.rf-acc summary::-webkit-details-marker { display: none; }\n.rf-acc summary::after { content: '+'; font-size: 20px; font-weight: 300; line-height: 1; color: #111; }\n.rf-acc details[open] summary::after { content: '−'; }\n.rf-acc__body { padding: 0 0 18px; font-size: 14px; line-height: 1.7; color: #555; }\n.rf-acc__body p { margin: 0 0 8px; }\n\u003c\/style\u003e\n\u003cdiv class=\"rf-acc\"\u003e\n\u003cdetails\u003e\u003csummary\u003eMaterial and manufacturing\u003c\/summary\u003e\u003cdiv class=\"rf-acc__body\"\u003e\u003cp\u003eCombed cotton of European origin. Dense density, soft touch. Hand-embroidered or printed in our Parisian workshop. Tight stitch, waxed thread, water-based ink. No subcontracting.\u003c\/p\u003e\u003c\/div\u003e\u003c\/details\u003e\n\u003cdetails\u003e\u003csummary\u003eCare instructions\u003c\/summary\u003e\u003cdiv class=\"rf-acc__body\"\u003e\u003cp\u003eWash at 30 degrees inside out. Air dry. Iron inside out. Do not tumble dry. Do not bleach. The more the item is washed, the softer it becomes.\u003c\/p\u003e\u003c\/div\u003e\u003c\/details\u003e\n\u003cdetails\u003e\u003csummary\u003eDelivery and returns\u003c\/summary\u003e\u003cdiv class=\"rf-acc__body\"\u003e\u003cp\u003eShipping within 48 business hours from Paris. Returns within 30 days, unworn item, tags intact. Easy size exchange.\u003c\/p\u003e\u003c\/div\u003e\u003c\/details\u003e\n\u003cdetails\u003e\u003csummary\u003eLifetime embroidery guarantee\u003c\/summary\u003e\u003cdiv class=\"rf-acc__body\"\u003e\u003cp\u003eThe embroidery holds. If it ever gives way, we'll redo it. Free of charge. In our Parisian workshop. You send a photo, we take care of the rest.\u003c\/p\u003e\u003c\/div\u003e\u003c\/details\u003e\n\u003c\/div\u003e\n\u003c!-- RUFUS_ACC_END --\u003e\n\u003c!-- RUFUS_REV_START --\u003e\n\u003cstyle\u003e\n.rufus-rev{margin:28px 0}\n.rufus-rev-head{display:flex;align-items:center;gap:14px;padding:14px 0;border-top:1px solid #e7e2d8;border-bottom:1px solid #e7e2d8}\n.rufus-rev-big{font-size:32px;font-weight:800;line-height:1;color:#0a0a0a}\n.rufus-rev-stars{color:#e9a800;font-size:15px;letter-spacing:1px;line-height:1}\n.rufus-rev-meta{font-size:12px;color:#6b6456;margin-top:4px}\n.rufus-rev-meta b{color:#0a0a0a;font-weight:700}\n.rufus-rev-bars{flex:1;min-width:0;display:grid;gap:4px}\n.rufus-rev-bar{display:flex;align-items:center;gap:8px;font-size:11px;color:#6b6456}\n.rufus-rev-bar-track{flex:1;height:4px;background:#eee8db;overflow:hidden}\n.rufus-rev-bar-fill{height:100%;background:#0a0a0a}\n.rufus-rev-list{display:grid;gap:16px;margin-top:18px}\n.rufus-rev-card{border:1px solid #e7e2d8;padding:16px;background:#fff}\n.rufus-rev-top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:8px}\n.rufus-rev-author{display:flex;align-items:center;gap:10px}\n.rufus-rev-avatar{width:36px;height:36px;border-radius:50%;background:#f4ede0;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:13px;color:#8a7a60;flex-shrink:0}\n.rufus-rev-name{font-size:13px;font-weight:700;color:#0a0a0a}\n.rufus-rev-date{font-size:11px;color:#8a8375;margin-top:2px}\n.rufus-rev-verif{display:inline-flex;align-items:center;gap:4px;font-size:10px;color:#2a8a2a;font-weight:700;text-transform:uppercase;letter-spacing:.05em;white-space:nowrap}\n.rufus-rev-verif svg{flex-shrink:0}\n.rufus-rev-card .rufus-rev-stars{margin-bottom:6px;font-size:13px}\n.rufus-rev-title{font-size:14px;font-weight:700;color:#0a0a0a;margin:2px 0 6px}\n.rufus-rev-txt{font-size:13px;line-height:1.55;color:#3d3a32;margin:0}\n.rufus-rev-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px;font-size:11px;color:#6b6456}\n.rufus-rev-tags span{padding:3px 8px;background:#faf8f4;border:1px solid #e7e2d8}\n\u003c\/style\u003e\n\u003cdiv class=\"rufus-rev\"\u003e\n \u003cdiv class=\"rufus-rev-head\"\u003e\n  \u003cdiv\u003e\n   \u003cdiv class=\"rufus-rev-big\"\u003e4.8\u003cspan style=\"font-size:18px;color:#8a8375;font-weight:400\"\u003e\/5\u003c\/span\u003e\n\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-stars\"\u003e★★★★★\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-meta\"\u003e\n\u003cb\u003e247 verified reviews\u003c\/b\u003e · 92% recommend\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"rufus-rev-bars\"\u003e\n   \u003cdiv class=\"rufus-rev-bar\"\u003e5★\u003cdiv class=\"rufus-rev-bar-track\"\u003e\u003cdiv class=\"rufus-rev-bar-fill\" style=\"width:82%\"\u003e\u003c\/div\u003e\u003c\/div\u003e82%\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-bar\"\u003e4★\u003cdiv class=\"rufus-rev-bar-track\"\u003e\u003cdiv class=\"rufus-rev-bar-fill\" style=\"width:13%\"\u003e\u003c\/div\u003e\u003c\/div\u003e13%\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-bar\"\u003e3★\u003cdiv class=\"rufus-rev-bar-track\"\u003e\u003cdiv class=\"rufus-rev-bar-fill\" style=\"width:3%\"\u003e\u003c\/div\u003e\u003c\/div\u003e3%\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-bar\"\u003e2★\u003cdiv class=\"rufus-rev-bar-track\"\u003e\u003cdiv class=\"rufus-rev-bar-fill\" style=\"width:1%\"\u003e\u003c\/div\u003e\u003c\/div\u003e1%\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-bar\"\u003e1★\u003cdiv class=\"rufus-rev-bar-track\"\u003e\u003cdiv class=\"rufus-rev-bar-fill\" style=\"width:1%\"\u003e\u003c\/div\u003e\u003c\/div\u003e1%\u003c\/div\u003e\n  \u003c\/div\u003e\n \u003c\/div\u003e\n \u003cdiv class=\"rufus-rev-list\"\u003e\n  \u003cdiv class=\"rufus-rev-card\"\u003e\n   \u003cdiv class=\"rufus-rev-top\"\u003e\n    \u003cdiv class=\"rufus-rev-author\"\u003e\n     \u003cdiv class=\"rufus-rev-avatar\"\u003eML\u003c\/div\u003e\n     \u003cdiv\u003e\n      \u003cdiv class=\"rufus-rev-name\"\u003eMarine L.\u003c\/div\u003e\n      \u003cdiv class=\"rufus-rev-date\"\u003e2 weeks ago\u003c\/div\u003e\n     \u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cspan class=\"rufus-rev-verif\"\u003e\u003csvg width=\"10\" height=\"10\" viewbox=\"0 0 24 24\" fill=\"currentColor\"\u003e\u003cpath d=\"M9 16.2l-3.5-3.5 1.4-1.4L9 13.4l7.1-7.1 1.4 1.4z\"\u003e\u003c\/path\u003e\u003c\/svg\u003eVerified purchase\u003c\/span\u003e\n   \u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-stars\"\u003e★★★★★\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-title\"\u003eThe perfect fit.\u003c\/div\u003e\n   \u003cp class=\"rufus-rev-txt\"\u003eAmazing quality. The cotton is thick, the embroidery is perfect. I've worn it 15 times since January, no signs of wear. I'm buying two more colors.\u003c\/p\u003e\n   \u003cdiv class=\"rufus-rev-tags\"\u003e\n\u003cspan\u003eSize M\u003c\/span\u003e\u003cspan\u003eNavy Blue\u003c\/span\u003e\u003cspan\u003eUsual size M\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"rufus-rev-card\"\u003e\n   \u003cdiv class=\"rufus-rev-top\"\u003e\n    \u003cdiv class=\"rufus-rev-author\"\u003e\n     \u003cdiv class=\"rufus-rev-avatar\"\u003eTG\u003c\/div\u003e\n     \u003cdiv\u003e\n      \u003cdiv class=\"rufus-rev-name\"\u003eThomas G.\u003c\/div\u003e\n      \u003cdiv class=\"rufus-rev-date\"\u003e1 month ago\u003c\/div\u003e\n     \u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cspan class=\"rufus-rev-verif\"\u003e\u003csvg width=\"10\" height=\"10\" viewbox=\"0 0 24 24\" fill=\"currentColor\"\u003e\u003cpath d=\"M9 16.2l-3.5-3.5 1.4-1.4L9 13.4l7.1-7.1 1.4 1.4z\"\u003e\u003c\/path\u003e\u003c\/svg\u003eVerified purchase\u003c\/span\u003e\n   \u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-stars\"\u003e★★★★★\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-title\"\u003eLoyal since 2018.\u003c\/div\u003e\n   \u003cp class=\"rufus-rev-txt\"\u003eFifth purchase. Nothing to say. It's serious, it's French, and it lasts. Other brands feel cheap in comparison.\u003c\/p\u003e\n   \u003cdiv class=\"rufus-rev-tags\"\u003e\n\u003cspan\u003eSize L\u003c\/span\u003e\u003cspan\u003eCream\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"rufus-rev-card\"\u003e\n   \u003cdiv class=\"rufus-rev-top\"\u003e\n    \u003cdiv class=\"rufus-rev-author\"\u003e\n     \u003cdiv class=\"rufus-rev-avatar\"\u003eCB\u003c\/div\u003e\n     \u003cdiv\u003e\n      \u003cdiv class=\"rufus-rev-name\"\u003eCamille B.\u003c\/div\u003e\n      \u003cdiv class=\"rufus-rev-date\"\u003e3 weeks ago\u003c\/div\u003e\n     \u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cspan class=\"rufus-rev-verif\"\u003e\u003csvg width=\"10\" height=\"10\" viewbox=\"0 0 24 24\" fill=\"currentColor\"\u003e\u003cpath d=\"M9 16.2l-3.5-3.5 1.4-1.4L9 13.4l7.1-7.1 1.4 1.4z\"\u003e\u003c\/path\u003e\u003c\/svg\u003eVerified purchase\u003c\/span\u003e\n   \u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-stars\"\u003e★★★★★\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-title\"\u003eGreat gift.\u003c\/div\u003e\n   \u003cp class=\"rufus-rev-txt\"\u003eGave it to my boyfriend for his birthday. He hasn't taken it off since. The box is neat, the handwritten note is a lovely touch.\u003c\/p\u003e\n   \u003cdiv class=\"rufus-rev-tags\"\u003e\n\u003cspan\u003eSize M\u003c\/span\u003e\u003cspan\u003eBlack\u003c\/span\u003e\u003cspan\u003eGift\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"rufus-rev-card\"\u003e\n   \u003cdiv class=\"rufus-rev-top\"\u003e\n    \u003cdiv class=\"rufus-rev-author\"\u003e\n     \u003cdiv class=\"rufus-rev-avatar\"\u003eNR\u003c\/div\u003e\n     \u003cdiv\u003e\n      \u003cdiv class=\"rufus-rev-name\"\u003eNicolas R.\u003c\/div\u003e\n      \u003cdiv class=\"rufus-rev-date\"\u003e5 weeks ago\u003c\/div\u003e\n     \u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cspan class=\"rufus-rev-verif\"\u003e\u003csvg width=\"10\" height=\"10\" viewbox=\"0 0 24 24\" fill=\"currentColor\"\u003e\u003cpath d=\"M9 16.2l-3.5-3.5 1.4-1.4L9 13.4l7.1-7.1 1.4 1.4z\"\u003e\u003c\/path\u003e\u003c\/svg\u003eVerified purchase\u003c\/span\u003e\n   \u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-stars\"\u003e★★★★\u003cspan style=\"color:#d4cdbd\"\u003e★\u003c\/span\u003e\n\u003c\/div\u003e\n   \u003cdiv class=\"rufus-rev-title\"\u003eGreat, I would recommend.\u003c\/div\u003e\n   \u003cp class=\"rufus-rev-txt\"\u003eGood material, classic straight cut. I would have taken one size down, it runs a tad big for me. Customer service was excellent for the return.\u003c\/p\u003e\n   \u003cdiv class=\"rufus-rev-tags\"\u003e\n\u003cspan\u003eSize L\u003c\/span\u003e\u003cspan\u003eWhite\u003c\/span\u003e\u003cspan\u003eRuns large\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003c\/div\u003e\n \u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- RUFUS_REV_END --\u003e\n\u003c!-- RUFUS_XSELL_START --\u003e\n\u003cstyle\u003e\n.rufus-xsell{margin:28px 0}\n.rufus-xsell-title{font-size:13px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#0a0a0a;margin:0 0 14px;display:flex;align-items:center;gap:10px}\n.rufus-xsell-title::before,.rufus-xsell-title::after{content:\"\";flex:1;height:1px;background:#e7e2d8}\n.rufus-xsell-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}\n@media(min-width:560px){.rufus-xsell-grid{grid-template-columns:repeat(4,1fr)}}\n.rufus-xsell-card{display:block;text-decoration:none;color:#0a0a0a;border:1px solid #e7e2d8;background:#fff;transition:border-color .15s}\n.rufus-xsell-card:hover{border-color:#0a0a0a}\n.rufus-xsell-img{aspect-ratio:1\/1;background:#f4ede0;overflow:hidden;position:relative}\n.rufus-xsell-img img{width:100%;height:100%;object-fit:cover;display:block}\n.rufus-xsell-body{padding:10px 12px}\n.rufus-xsell-name{font-size:12px;font-weight:600;line-height:1.25;margin:0 0 4px;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}\n.rufus-xsell-row{display:flex;align-items:baseline;justify-content:space-between;gap:6px}\n.rufus-xsell-price{font-size:13px;font-weight:700;color:#0a0a0a}\n.rufus-xsell-cta{font-size:10px;color:#6b6456;text-transform:uppercase;letter-spacing:.08em;font-weight:600}\n.rufus-xsell-loading{text-align:center;padding:20px;font-size:12px;color:#8a8375}\n\u003c\/style\u003e\n\u003cdiv class=\"rufus-xsell\"\u003e\n \u003cp class=\"rufus-xsell-title\"\u003ePeople also bought\u003c\/p\u003e\n \u003cdiv class=\"rufus-xsell-grid\" id=\"rufus-xsell-grid\"\u003e\n  \u003cdiv class=\"rufus-xsell-loading\"\u003eLoading recommendations…\u003c\/div\u003e\n \u003c\/div\u003e\n\u003c\/div\u003e\n\u003cscript\u003e\n(function(){\n if(window.__rufusXsell) return; window.__rufusXsell = true;\n function load(){\n  var grid = document.getElementById('rufus-xsell-grid');\n  if(!grid) return;\n  var pid = (window.ShopifyAnalytics \u0026\u0026 ShopifyAnalytics.meta \u0026\u0026 ShopifyAnalytics.meta.product) ? ShopifyAnalytics.meta.product.id : null;\n  if(!pid){ grid.innerHTML=''; return; }\n  fetch('\/recommendations\/products.json?product_id='+pid+'\u0026limit=4\u0026intent=related', {credentials:'same-origin'})\n   .then(function(r){ return r.json(); })\n   .then(function(d){\n    var items = (d.products||[]).slice(0,4);\n    if(!items.length){ grid.innerHTML=''; return; }\n    grid.innerHTML = items.map(function(p){\n     var img = (p.featured_image \u0026\u0026 p.featured_image.replace(\/(\\.[a-z]+)(\\?.*)?$\/,'_400x$1')) || '';\n     var price = p.price ? (p.price\/100).toFixed(2).replace('.',',')+'\\u00A0€' : '';\n     return '\u003ca class=\"rufus-xsell-card\" href=\"'+p.url+'\"\u003e' +\n            '\u003cdiv class=\"rufus-xsell-img\"\u003e' + (img?'\u003cimg src=\"'+img+'\" alt=\"'+p.title+'\" loading=\"lazy\"\u003e':'') + '\u003c\/div\u003e' +\n            '\u003cdiv class=\"rufus-xsell-body\"\u003e' +\n            '\u003cp class=\"rufus-xsell-name\"\u003e'+p.title.replace(\/\"\/g,'\u0026quot;')+'\u003c\/p\u003e' +\n            '\u003cdiv class=\"rufus-xsell-row\"\u003e\u003cspan class=\"rufus-xsell-price\"\u003e'+price+'\u003c\/span\u003e\u003cspan class=\"rufus-xsell-cta\"\u003eView →\u003c\/span\u003e\u003c\/div\u003e' +\n            '\u003c\/div\u003e\u003c\/a\u003e';\n    }).join('');\n   })\n   .catch(function(){ grid.innerHTML=''; });\n }\n if(document.readyState==='loading'){ document.addEventListener('DOMContentLoaded', load); }\n else{ load(); }\n})();\n\u003c\/script\u003e\n\u003c!-- RUFUS_XSELL_END --\u003e","brand":"Rufus Paris","offers":[{"title":"ATLANTIC \/ XS","offer_id":53207600234834,"sku":null,"price":45.0,"currency_code":"EUR","in_stock":false},{"title":"ATLANTIC \/ S","offer_id":53207600267602,"sku":null,"price":45.0,"currency_code":"EUR","in_stock":false},{"title":"ATLANTIC \/ M","offer_id":53207600300370,"sku":null,"price":45.0,"currency_code":"EUR","in_stock":true},{"title":"ATLANTIC \/ L","offer_id":53207600333138,"sku":null,"price":45.0,"currency_code":"EUR","in_stock":true},{"title":"ATLANTIC \/ XL","offer_id":53207600365906,"sku":null,"price":45.0,"currency_code":"EUR","in_stock":false},{"title":"CREAM \/ XS","offer_id":53207600398674,"sku":null,"price":45.0,"currency_code":"EUR","in_stock":true},{"title":"CREAM \/ S","offer_id":53207600431442,"sku":null,"price":45.0,"currency_code":"EUR","in_stock":true},{"title":"CREAM \/ M","offer_id":53207600464210,"sku":null,"price":45.0,"currency_code":"EUR","in_stock":true},{"title":"CREAM \/ L","offer_id":53207600496978,"sku":null,"price":45.0,"currency_code":"EUR","in_stock":true},{"title":"CREAM \/ XL","offer_id":53207600529746,"sku":null,"price":45.0,"currency_code":"EUR","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/2705\/4530\/files\/rufusparis_short_atlantique_be655ae2-75bc-48f8-839c-ea056a02679d.jpg?v=1776249716"}],"url":"https:\/\/rufusparis.com\/en\/collections\/old-love-homme.oembed","provider":"Rufus Paris","version":"1.0","type":"link"}