{"title":"CAMISOLAS MANGA COMPRIDA","description":"","products":[{"product_id":"castelli-entrata-thermal-cycling-jersey-winter-fleece-reflective-breathable","title":"CAMISOLA MANGA COMPRIDA CASTELLI ENTRATA BRANCA","description":"\u003cdiv class=\"product-description\"\u003e\n  \u003ch2\u003eCASTELLI ENTRATA THERMAL CYCLING JERSEY\u003c\/h2\u003e\n\n  \u003cp\u003e\n    A \u003cstrong\u003eCastelli Entrata Thermal Jersey\u003c\/strong\u003e é a escolha ideal para os ciclistas que preferem usar uma camisola térmica com colete  \n    em vez de um casaco leve durante os dias frios. O tecido em \u003cstrong\u003epoliéster cardado\u003c\/strong\u003e proporciona aquecimento e conforto,  \n    mantendo a respirabilidade e a liberdade de movimento — perfeita para o outono, início da primavera ou invernos suaves.\n  \u003c\/p\u003e\n\n  \u003ch3\u003eCaracterísticas\u003c\/h3\u003e\n  \u003cul\u003e\n    \u003cli\u003e\n\u003cstrong\u003eTecido 100% poliéster cardado\u003c\/strong\u003e para aquecimento adicional e excelente controlo da humidade.\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003eFecho YKK® Vislon®\u003c\/strong\u003e de fácil deslizamento.\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003e3 bolsos traseiros\u003c\/strong\u003e para transporte prático de acessórios.\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003eBanda elástica com silicone na cintura\u003c\/strong\u003e para manter a jersey no lugar.\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003ePainel refletor traseiro\u003c\/strong\u003e de grandes dimensões para maior visibilidade.\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003ePeso:\u003c\/strong\u003e 260 g\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003eTemperatura:\u003c\/strong\u003e 12˚ – 18˚C \/ 54˚ – 64˚F\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003eFIT:\u003c\/strong\u003e Regular\u003c\/li\u003e\n  \u003c\/ul\u003e\n\n  \u003ch3\u003eCONFORTO TÉRMICO E VERSATILIDADE\u003c\/h3\u003e\n  \u003cp\u003e\n    A \u003cstrong\u003eEntrata Thermal\u003c\/strong\u003e oferece calor suficiente para as tuas saídas em dias frios e pode ser facilmente combinada com um colete  \n    para aumentar a proteção. O tecido cardado e elástico adapta-se ao corpo, garantindo um ajuste confortável e respirável.  \n    Os detalhes funcionais, como os \u003cstrong\u003ebolsos traseiros\u003c\/strong\u003e, a \u003cstrong\u003efaixa elástica com silicone\u003c\/strong\u003e e o \u003cstrong\u003efecho YKK® Vislon®\u003c\/strong\u003e,  \n    asseguram praticidade e estilo em todas as tuas voltas.  \n    Uma peça versátil, pensada para o ciclista que valoriza desempenho e simplicidade nas estações mais frescas.\n  \u003c\/p\u003e\n\u003c\/div\u003e\n\u003c!-- ===== GUIA DE TAMANHOS CASTELLI ===== --\u003e\n\u003cdiv class=\"cc-size-highlight-full\"\u003e\n  \u003ch3\u003e📏 Encontra o Teu Tamanho Ideal\u003c\/h3\u003e\n  \u003cp\u003e\n    Para garantir o melhor ajuste e conforto, mede o perímetro do teu \n    \u003cstrong\u003epeito (A)\u003c\/strong\u003e e da tua \u003cstrong\u003ecintura (B)\u003c\/strong\u003e em centímetros e compara \n    com o guia de tamanhos Castelli abaixo.\n  \u003c\/p\u003e\n\n  \u003cul\u003e\n    \u003cli\u003eMede o \u003cstrong\u003epeito (A)\u003c\/strong\u003e na parte mais larga do tórax, mantendo a fita horizontal e sem apertar.\u003c\/li\u003e\n    \u003cli\u003eMede a \u003cstrong\u003ecintura (B)\u003c\/strong\u003e na zona mais estreita do tronco.\u003c\/li\u003e\n    \u003cli\u003eUsa uma fita métrica flexível, mantendo uma posição natural e relaxada.\u003c\/li\u003e\n    \u003cli\u003eCompara as medidas com a tabela e, se estiveres entre dois tamanhos, considera escolher \n        \u003cstrong\u003eum tamanho acima\u003c\/strong\u003e, conforme a recomendação da Castelli para maior conforto.\u003c\/li\u003e\n  \u003c\/ul\u003e\n\n  \u003cbutton class=\"cc-size-btn\" type=\"button\" aria-haspopup=\"dialog\" aria-controls=\"cc-size-modal\"\u003e\n    Calcule o seu tamanho\n  \u003c\/button\u003e\n\u003c\/div\u003e\n\n\u003c!-- ===== MODAL ===== --\u003e\n\u003cdialog id=\"cc-size-modal\" class=\"cc-size-modal\" aria-label=\"Guia de tamanhos\"\u003e\n  \u003cbutton class=\"cc-close\" aria-label=\"Fechar\"\u003e✕\u003c\/button\u003e\n  \u003cdiv class=\"cc-loader\" aria-hidden=\"true\"\u003e\u003c\/div\u003e\n  \u003cdiv class=\"cc-size-box\" hidden\u003e\n    \u003cimg id=\"cc-size-img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0946\/1832\/1278\/files\/Size_Chart_Castelli_Men_2.0.png?v=1761056363\" alt=\"Guia de tamanhos Castelli\" loading=\"eager\" decoding=\"sync\"\u003e\n  \u003c\/div\u003e\n\u003c\/dialog\u003e\n\n\u003c!-- ===== STYLE ===== --\u003e\n\u003cstyle\u003e\n  .product-description {\n    font-family: Arial, Helvetica, sans-serif;\n    color: #222;\n    line-height: 1.6;\n    font-size: 15px;\n  }\n  .product-description h2 {\n    font-size: 22px;\n    text-transform: uppercase;\n    letter-spacing: .5px;\n    color: #111;\n    margin-bottom: 10px;\n  }\n\n  \/* Caixa do guia *\/\n  .cc-size-highlight-full{\n    background:#f9f9f9;border:1px solid #e2e2e2;border-radius:10px;\n    padding:20px 24px;margin-top:20px;\n    font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;\n    box-shadow:0 2px 8px rgba(0,0,0,0.04);\n  }\n  .cc-size-highlight-full h3{font-size:18px;margin:0 0 10px;color:#111;}\n  .cc-size-highlight-full p{font-size:15px;margin:0 0 10px;color:#333;}\n  .cc-size-highlight-full ul{margin:0 0 15px 20px;padding:0;}\n  .cc-size-highlight-full li{margin-bottom:5px;font-size:15px;color:#333;}\n\n  \/* Botão *\/\n  .cc-size-btn{\n    display:inline-flex;align-items:center;gap:.5rem;\n    background:#000;color:#fff;border:none;border-radius:6px;\n    padding:10px 16px;font-size:14px;font-weight:500;cursor:pointer;\n    transition:transform .2s ease-in-out, background .2s ease-in-out;\n  }\n  .cc-size-btn:hover{background:#222;transform:translateY(-1px);}\n\n  \/* ===== MODAL: reset do tema + centrado real ===== *\/\n  .cc-size-modal{\n    position: fixed !important;\n    inset: 0 !important;\n    background: transparent !important;\n    border: 0 !important;\n    margin: 0 !important;\n    padding: 0 !important;\n    max-width: none !important;\n    width: 100vw !important;\n    height: 100vh !important;\n    display: none;\n    align-items: center !important;\n    justify-content: center !important;\n    z-index: 99999 !important;\n  }\n  .cc-size-modal[open]{ display:flex; }\n  .cc-size-modal::backdrop{ background: rgba(0,0,0,.6) !important; }\n\n  .cc-size-box{\n    position: relative;\n    box-sizing: border-box;\n    background: #fff;\n    border: 1px solid #e9e9e9;\n    border-radius: 10px;\n    box-shadow: 0 10px 25px rgba(0,0,0,.25);\n    padding: 8px;\n    overflow: hidden;\n    width: min(85vw, 1200px) !important;\n    max-height: 88vh !important;\n    display: flex;align-items:center;justify-content:center;\n  }\n  .cc-size-img{\n    display:block;\n    max-width:100% !important;\n    max-height:84vh !important;\n    width:auto !important;height:auto !important;\n    object-fit:contain !important;border-radius:6px;\n  }\n\n  .cc-close{\n    position:absolute;top:10px;right:10px;\n    background:#fff;border:1px solid #ddd;border-radius:6px;\n    padding:6px 9px;cursor:pointer;font-size:16px;line-height:1;\n    box-shadow:0 2px 6px rgba(0,0,0,.08);\n  }\n  .cc-close:hover{background:#f3f3f3;}\n\n  @media (max-width: 768px){\n    .cc-size-box{ width:95vw !important; max-height:95vh !important; padding:4px !important; }\n    .cc-size-img{ max-height:92vh !important; width:100% !important; }\n    .cc-close{ top:6px; right:6px; }\n  }\n\u003c\/style\u003e\n\n\u003c!-- ===== SCRIPT ===== --\u003e\n\u003cscript\u003e\n(function(){\n  const btn   = document.querySelector('.cc-size-btn');\n  const modal = document.getElementById('cc-size-modal');\n  if(!btn || !modal) return;\n\n  const close  = modal.querySelector('.cc-close');\n  const box    = modal.querySelector('.cc-size-box');\n  const img    = document.getElementById('cc-size-img');\n  const loader = modal.querySelector('.cc-loader');\n\n  function lockScroll(lock){\n    const el = document.documentElement;\n    if(lock){\n      el.style.overflow = 'hidden';\n      el.style.paddingRight = (window.innerWidth - document.documentElement.clientWidth) + 'px';\n    }else{\n      el.style.overflow = '';\n      el.style.paddingRight = '';\n    }\n  }\n\n  function openModal(e){\n    e \u0026\u0026 e.preventDefault();\n    if(modal.showModal){ modal.showModal(); } else { modal.setAttribute('open',''); }\n    lockScroll(true);\n    if(img \u0026\u0026 img.complete \u0026\u0026 img.naturalWidth\u003e0){\n      loader \u0026\u0026 (loader.style.display='none');\n      box \u0026\u0026 (box.hidden=false);\n    }\n  }\n\n  function closeModal(){\n    if(modal.close){ modal.close(); } else { modal.removeAttribute('open'); }\n    lockScroll(false);\n  }\n\n  btn.addEventListener('click', openModal, { passive:true });\n  close.addEventListener('click', closeModal);\n  modal.addEventListener('cancel', e =\u003e { e.preventDefault(); closeModal(); });\n\n  modal.addEventListener('click', e =\u003e {\n    if(!box.contains(e.target)) closeModal();\n  });\n\n  document.addEventListener('keydown', e =\u003e {\n    if(e.key === 'Escape' \u0026\u0026 modal.hasAttribute('open')) closeModal();\n  });\n\n  if(img){\n    img.addEventListener('load', () =\u003e {\n      loader \u0026\u0026 (loader.style.display='none');\n      box \u0026\u0026 (box.hidden=false);\n    });\n    img.addEventListener('error', () =\u003e {\n      loader \u0026\u0026 (loader.style.display='none');\n      box \u0026\u0026 (box.hidden=false);\n      box.innerHTML = '\u003cdiv style=\"padding:24px;text-align:center;color:#444\"\u003eNão foi possível carregar a imagem do guia de tamanhos.\u003c\/div\u003e';\n    });\n  }\n})();\n\u003c\/script\u003e\n","brand":"Castelli","offers":[{"title":"S","offer_id":56456196850046,"sku":"4523512870 S-1","price":89.9,"currency_code":"EUR","in_stock":false},{"title":"M","offer_id":56456196882814,"sku":"4523512870 M-1","price":89.9,"currency_code":"EUR","in_stock":false},{"title":"L","offer_id":56456196915582,"sku":"4523512870 L-1","price":89.9,"currency_code":"EUR","in_stock":false},{"title":"XL","offer_id":56456196948350,"sku":"4523512870 XL-1","price":89.9,"currency_code":"EUR","in_stock":false},{"title":"2XL","offer_id":56456196981118,"sku":"4523512870 2XL-1","price":89.9,"currency_code":"EUR","in_stock":false},{"title":"3XL","offer_id":56456197013886,"sku":"4523512870 3XL-1","price":89.9,"currency_code":"EUR","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0946\/1832\/1278\/files\/167866451653-0.jpg?v=1761317665"},{"product_id":"castelli-espresso-thermal-cycling-jersey-winter-breathable-comfort-warm","title":"CAMISOLA MANGA COMPRIDA CASTELLI ESPRESSO PRETO","description":"\u003cdiv class=\"product-description\"\u003e\n  \u003ch2\u003eCASTELLI ESPRESSO THERMAL CYCLING JERSEY\u003c\/h2\u003e\n\n  \u003cp\u003e\n    Quente, suave e confortável — três qualidades que qualquer boa camisola térmica deve ter.  \n    A \u003cstrong\u003eCastelli Espresso Thermal Jersey\u003c\/strong\u003e combina todas estas características num design elegante e funcional.  \n    O tecido \u003cstrong\u003eluxuosamente macio e cardado\u003c\/strong\u003e proporciona uma sensação incrível na pele, mantendo o corpo quente e confortável durante as pedaladas em dias frios.\n  \u003c\/p\u003e\n\n  \u003ch3\u003eCaracterísticas\u003c\/h3\u003e\n  \u003cul\u003e\n    \u003cli\u003e\n\u003cstrong\u003eTecido cardado luxuosamente suave e quente\u003c\/strong\u003e com elasticidade para conforto e ajuste perfeito.\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003e3 bolsos traseiros\u003c\/strong\u003e mais um \u003cstrong\u003e4.º bolso com fecho\u003c\/strong\u003e para guardar objetos de valor em segurança.\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003eFecho YKK® Vislon® de comprimento total\u003c\/strong\u003e com puxador ergonómico de fácil utilização.\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003eCós elástico com silicone\u003c\/strong\u003e para manter a camisola no lugar durante o esforço.\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003eDetalhe refletor traseiro\u003c\/strong\u003e para maior visibilidade em condições de pouca luz.\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003ePeso:\u003c\/strong\u003e 327 g\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003eTemperatura:\u003c\/strong\u003e 12˚ – 18˚C \/ 54˚ – 64˚F\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003eFIT:\u003c\/strong\u003e Regular\u003c\/li\u003e\n  \u003c\/ul\u003e\n\n  \u003ch3\u003eO conforto térmico que vai querer em todos os treinos\u003c\/h3\u003e\n  \u003cp\u003e\n    A \u003cstrong\u003eEspresso Thermal Jersey\u003c\/strong\u003e foi desenvolvida para proporcionar um ajuste justo ao corpo sem sensação de aperto.  \n    O tecido oferece \u003cstrong\u003eexcelente respirabilidade\u003c\/strong\u003e e mantém o calor corporal ideal, mesmo nas subidas mais exigentes.  \n    As costas e o cós foram projetados para manter tudo no lugar, mesmo com os bolsos totalmente carregados.  \n    A atenção aos detalhes — do \u003cstrong\u003efecho YKK® Vislon®\u003c\/strong\u003e à suavidade do tecido — faz desta camisola a sua nova favorita para dias frios.  \n    Porque, tal como o café Espresso, é sempre uma boa escolha.\n  \u003c\/p\u003e\n\u003c\/div\u003e\n\u003c!-- ===== GUIA DE TAMANHOS CASTELLI ===== --\u003e\n\u003cdiv class=\"cc-size-highlight-full\"\u003e\n  \u003ch3\u003e📏 Encontra o Teu Tamanho Ideal\u003c\/h3\u003e\n  \u003cp\u003e\n    Para garantir o melhor ajuste e conforto, mede o perímetro do teu \n    \u003cstrong\u003epeito (A)\u003c\/strong\u003e e da tua \u003cstrong\u003ecintura (B)\u003c\/strong\u003e em centímetros e compara \n    com o guia de tamanhos Castelli abaixo.\n  \u003c\/p\u003e\n\n  \u003cul\u003e\n    \u003cli\u003eMede o \u003cstrong\u003epeito (A)\u003c\/strong\u003e na parte mais larga do tórax, mantendo a fita horizontal e sem apertar.\u003c\/li\u003e\n    \u003cli\u003eMede a \u003cstrong\u003ecintura (B)\u003c\/strong\u003e na zona mais estreita do tronco.\u003c\/li\u003e\n    \u003cli\u003eUsa uma fita métrica flexível, mantendo uma posição natural e relaxada.\u003c\/li\u003e\n    \u003cli\u003eCompara as medidas com a tabela e, se estiveres entre dois tamanhos, considera escolher \n        \u003cstrong\u003eum tamanho acima\u003c\/strong\u003e, conforme a recomendação da Castelli para maior conforto.\u003c\/li\u003e\n  \u003c\/ul\u003e\n\n  \u003cbutton class=\"cc-size-btn\" type=\"button\" aria-haspopup=\"dialog\" aria-controls=\"cc-size-modal\"\u003e\n    Calcule o seu tamanho\n  \u003c\/button\u003e\n\u003c\/div\u003e\n\n\u003c!-- ===== MODAL ===== --\u003e\n\u003cdialog id=\"cc-size-modal\" class=\"cc-size-modal\" aria-label=\"Guia de tamanhos\"\u003e\n  \u003cbutton class=\"cc-close\" aria-label=\"Fechar\"\u003e✕\u003c\/button\u003e\n  \u003cdiv class=\"cc-loader\" aria-hidden=\"true\"\u003e\u003c\/div\u003e\n  \u003cdiv class=\"cc-size-box\" hidden\u003e\n    \u003cimg id=\"cc-size-img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0946\/1832\/1278\/files\/Size_Chart_Castelli_Men_2.0.png?v=1761056363\" alt=\"Guia de tamanhos Castelli\" loading=\"eager\" decoding=\"sync\"\u003e\n  \u003c\/div\u003e\n\u003c\/dialog\u003e\n\n\u003c!-- ===== STYLE ===== --\u003e\n\u003cstyle\u003e\n  .product-description {\n    font-family: Arial, Helvetica, sans-serif;\n    color: #222;\n    line-height: 1.6;\n    font-size: 15px;\n  }\n  .product-description h2 {\n    font-size: 22px;\n    text-transform: uppercase;\n    letter-spacing: .5px;\n    color: #111;\n    margin-bottom: 10px;\n  }\n\n  \/* Caixa do guia *\/\n  .cc-size-highlight-full{\n    background:#f9f9f9;border:1px solid #e2e2e2;border-radius:10px;\n    padding:20px 24px;margin-top:20px;\n    font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;\n    box-shadow:0 2px 8px rgba(0,0,0,0.04);\n  }\n  .cc-size-highlight-full h3{font-size:18px;margin:0 0 10px;color:#111;}\n  .cc-size-highlight-full p{font-size:15px;margin:0 0 10px;color:#333;}\n  .cc-size-highlight-full ul{margin:0 0 15px 20px;padding:0;}\n  .cc-size-highlight-full li{margin-bottom:5px;font-size:15px;color:#333;}\n\n  \/* Botão *\/\n  .cc-size-btn{\n    display:inline-flex;align-items:center;gap:.5rem;\n    background:#000;color:#fff;border:none;border-radius:6px;\n    padding:10px 16px;font-size:14px;font-weight:500;cursor:pointer;\n    transition:transform .2s ease-in-out, background .2s ease-in-out;\n  }\n  .cc-size-btn:hover{background:#222;transform:translateY(-1px);}\n\n  \/* ===== MODAL: reset do tema + centrado real ===== *\/\n  .cc-size-modal{\n    position: fixed !important;\n    inset: 0 !important;\n    background: transparent !important;\n    border: 0 !important;\n    margin: 0 !important;\n    padding: 0 !important;\n    max-width: none !important;\n    width: 100vw !important;\n    height: 100vh !important;\n    display: none;\n    align-items: center !important;\n    justify-content: center !important;\n    z-index: 99999 !important;\n  }\n  .cc-size-modal[open]{ display:flex; }\n  .cc-size-modal::backdrop{ background: rgba(0,0,0,.6) !important; }\n\n  .cc-size-box{\n    position: relative;\n    box-sizing: border-box;\n    background: #fff;\n    border: 1px solid #e9e9e9;\n    border-radius: 10px;\n    box-shadow: 0 10px 25px rgba(0,0,0,.25);\n    padding: 8px;\n    overflow: hidden;\n    width: min(85vw, 1200px) !important;\n    max-height: 88vh !important;\n    display: flex;align-items:center;justify-content:center;\n  }\n  .cc-size-img{\n    display:block;\n    max-width:100% !important;\n    max-height:84vh !important;\n    width:auto !important;height:auto !important;\n    object-fit:contain !important;border-radius:6px;\n  }\n\n  .cc-close{\n    position:absolute;top:10px;right:10px;\n    background:#fff;border:1px solid #ddd;border-radius:6px;\n    padding:6px 9px;cursor:pointer;font-size:16px;line-height:1;\n    box-shadow:0 2px 6px rgba(0,0,0,.08);\n  }\n  .cc-close:hover{background:#f3f3f3;}\n\n  @media (max-width: 768px){\n    .cc-size-box{ width:95vw !important; max-height:95vh !important; padding:4px !important; }\n    .cc-size-img{ max-height:92vh !important; width:100% !important; }\n    .cc-close{ top:6px; right:6px; }\n  }\n\u003c\/style\u003e\n\n\u003c!-- ===== SCRIPT ===== --\u003e\n\u003cscript\u003e\n(function(){\n  const btn   = document.querySelector('.cc-size-btn');\n  const modal = document.getElementById('cc-size-modal');\n  if(!btn || !modal) return;\n\n  const close  = modal.querySelector('.cc-close');\n  const box    = modal.querySelector('.cc-size-box');\n  const img    = document.getElementById('cc-size-img');\n  const loader = modal.querySelector('.cc-loader');\n\n  function lockScroll(lock){\n    const el = document.documentElement;\n    if(lock){\n      el.style.overflow = 'hidden';\n      el.style.paddingRight = (window.innerWidth - document.documentElement.clientWidth) + 'px';\n    }else{\n      el.style.overflow = '';\n      el.style.paddingRight = '';\n    }\n  }\n\n  function openModal(e){\n    e \u0026\u0026 e.preventDefault();\n    if(modal.showModal){ modal.showModal(); } else { modal.setAttribute('open',''); }\n    lockScroll(true);\n    if(img \u0026\u0026 img.complete \u0026\u0026 img.naturalWidth\u003e0){\n      loader \u0026\u0026 (loader.style.display='none');\n      box \u0026\u0026 (box.hidden=false);\n    }\n  }\n\n  function closeModal(){\n    if(modal.close){ modal.close(); } else { modal.removeAttribute('open'); }\n    lockScroll(false);\n  }\n\n  btn.addEventListener('click', openModal, { passive:true });\n  close.addEventListener('click', closeModal);\n  modal.addEventListener('cancel', e =\u003e { e.preventDefault(); closeModal(); });\n\n  modal.addEventListener('click', e =\u003e {\n    if(!box.contains(e.target)) closeModal();\n  });\n\n  document.addEventListener('keydown', e =\u003e {\n    if(e.key === 'Escape' \u0026\u0026 modal.hasAttribute('open')) closeModal();\n  });\n\n  if(img){\n    img.addEventListener('load', () =\u003e {\n      loader \u0026\u0026 (loader.style.display='none');\n      box \u0026\u0026 (box.hidden=false);\n    });\n    img.addEventListener('error', () =\u003e {\n      loader \u0026\u0026 (loader.style.display='none');\n      box \u0026\u0026 (box.hidden=false);\n      box.innerHTML = '\u003cdiv style=\"padding:24px;text-align:center;color:#444\"\u003eNão foi possível carregar a imagem do guia de tamanhos.\u003c\/div\u003e';\n    });\n  }\n})();\n\u003c\/script\u003e\n","brand":"Castelli","offers":[{"title":"S","offer_id":56456214413694,"sku":"4524508085 S-1","price":109.9,"currency_code":"EUR","in_stock":false},{"title":"M","offer_id":56456214446462,"sku":"4524508085 M-1","price":109.9,"currency_code":"EUR","in_stock":true},{"title":"L","offer_id":56456214479230,"sku":"4524508085 L-1","price":109.9,"currency_code":"EUR","in_stock":false},{"title":"XL","offer_id":56456214511998,"sku":"4524508085 XL-1","price":109.9,"currency_code":"EUR","in_stock":true},{"title":"2XL","offer_id":56456214544766,"sku":"4524508085 2XL-1","price":109.9,"currency_code":"EUR","in_stock":true},{"title":"3XL","offer_id":56456214577534,"sku":"4524508085 3XL-1","price":109.9,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0946\/1832\/1278\/files\/167823828901-0.jpg?v=1761317838"},{"product_id":"castelli-ottanta-ls-jersey-women-s-cycling-long-sleeve-jersey-thermal-breathable","title":"CAMISOLA MANGA COMPRIDA MULHER CASTELLI OTTANTA VERMELHO","description":"\u003cdiv class=\"cc-simple\"\u003e\n\u003ch2\u003eCASTELLI OTTANTA W\u003c\/h2\u003e\n\u003cp\u003e\u003cstrong\u003eUma jersey térmica de performance que combina um grafismo impactante com o calor essencial para a meia-estação.\u003c\/strong\u003e\u003cbr\u003eA Ottanta LS W foi desenhada para quem procura estilo sem sacrificar a funcionalidade técnica. Utilizando a versão térmica do tecido Warmer da Castelli, com o seu interior em fleece macio, esta jersey é a barreira ideal contra o frio outonal, funcionando perfeitamente sozinha ou combinada com um colete Perfetto ou Aria em dias mais exigentes.\u003c\/p\u003e\n\u003ch3\u003eAtenção ao Detalhe e Conforto Térmico\u003c\/h3\u003e\n\u003cp\u003eEmbora o grafismo seja o que primeiro chama a atenção, é a engenharia da Castelli que se destaca na estrada. A construção dos bolsos \"dropped-pocket\" mantém a carga estável e acessível, enquanto o fecho YKK® Vislon® de fácil manuseamento permite regular a ventilação com uma só mão. O interior escovado proporciona um conforto imediato sobre a pele, garantindo que o calor se mantém onde é necessário.\u003c\/p\u003e\n\u003ch3\u003eEspecificações Técnicas\u003c\/h3\u003e\n\u003cul class=\"cc-list\"\u003e\n\u003cli\u003e\n\u003cstrong\u003eTecido Warmer:\u003c\/strong\u003e Poliéster térmico com interior em fleece escovado\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eDesign Dropped-Pocket:\u003c\/strong\u003e 3 bolsos traseiros em posição ergonómica\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eFecho:\u003c\/strong\u003e YKK® Vislon® integral com proteção de pescoço\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eEstabilidade:\u003c\/strong\u003e Banda de silicone na cintura para evitar que a jersey suba\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eSegurança:\u003c\/strong\u003e Detalhes refletores para maior visibilidade rodoviária\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eVersatilidade:\u003c\/strong\u003e Ideal para o intervalo entre 12°C e 18°C\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eCorte:\u003c\/strong\u003e Regular Fit (Equilíbrio ideal entre conforto e performance)\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp style=\"font-size: 13px; color: #555; margin-top: 10px;\"\u003eA escolha ideal para ciclistas que valorizam a estética clássica da Castelli com tecnologias que garantem uma pedalada quente e seca.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cstyle\u003e\n  .cc-simple {\n    font-family: system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif;\n    color: #111;\n    line-height: 1.6;\n  }\n  .cc-simple h2 {\n    font-size: 1.5rem;\n    font-weight: 700;\n    letter-spacing: .5px;\n    margin-bottom: .75rem;\n    text-transform: uppercase;\n  }\n  .cc-simple h3 {\n    font-size: 1.1rem;\n    margin: 1.1rem 0 .5rem;\n    font-weight: 600;\n  }\n  .cc-simple p {\n    margin: .25rem 0 .75rem;\n  }\n  .cc-list {\n    margin: .5rem 0 1rem 1.25rem;\n  }\n  .cc-list li {\n    margin: .25rem 0;\n  }\n\u003c\/style\u003e","brand":"Castelli","offers":[{"title":"XS","offer_id":56456228143486,"sku":"4523546654 XS-1","price":79.9,"currency_code":"EUR","in_stock":false},{"title":"S","offer_id":56456228176254,"sku":"4523546654 S-1","price":79.9,"currency_code":"EUR","in_stock":false},{"title":"M","offer_id":56456228209022,"sku":"4523546654 M-1","price":79.9,"currency_code":"EUR","in_stock":false},{"title":"L","offer_id":56456228241790,"sku":"4523546654 L-1","price":79.9,"currency_code":"EUR","in_stock":false},{"title":"XL","offer_id":56456228274558,"sku":"4523546654 XL-1","price":79.9,"currency_code":"EUR","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0946\/1832\/1278\/files\/167791111368-0.jpg?v=1761317900"},{"product_id":"castelli-espresso-thermal-cycling-jersey-winter-breathable-comfort-warm-1","title":"CAMISOLA MANGA COMPRIDA CASTELLI ESPRESSO LARANJA","description":"\u003cdiv class=\"product-description\"\u003e\n  \u003ch2\u003eCASTELLI ESPRESSO THERMAL CYCLING JERSEY\u003c\/h2\u003e\n\n  \u003cp\u003e\n    A \u003cstrong\u003eCastelli Espresso Thermal Jersey\u003c\/strong\u003e combina três qualidades essenciais que qualquer jersey térmica deve ter:  \n    \u003cstrong\u003eaconchego, suavidade e conforto\u003c\/strong\u003e. Fabricada com um tecido de fleece luxuosamente suave, proporciona uma sensação incrível junto à pele,  \n    mantendo o corpo quente e seco durante as tuas voltas em dias frios.\n  \u003c\/p\u003e\n\n  \u003cp\u003e\n    O corte foi desenvolvido para garantir um \u003cstrong\u003eajuste próximo ao corpo\u003c\/strong\u003e sem sensação de aperto, oferecendo liberdade total de movimento.  \n    A construção cuidadosamente desenhada inclui bolsos amplos e seguros, tornando-a perfeita para treinos longos ou dias de estrada com variações de temperatura.\n  \u003c\/p\u003e\n\n  \u003ch3\u003eCaracterísticas\u003c\/h3\u003e\n  \u003cul\u003e\n    \u003cli\u003e\n\u003cstrong\u003eTecido de fleece suave e quente\u003c\/strong\u003e com elasticidade para um conforto e ajuste perfeitos.\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003e3 bolsos traseiros\u003c\/strong\u003e com \u003cstrong\u003e4.º bolso com fecho de segurança\u003c\/strong\u003e para objetos de valor.\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003eFecho YKK® Vislon®\u003c\/strong\u003e de comprimento total com puxador de fácil utilização.\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003eElástico com silicone\u003c\/strong\u003e na cintura para manter a jersey no lugar.\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003eElemento refletor traseiro\u003c\/strong\u003e para maior visibilidade.\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003ePeso:\u003c\/strong\u003e 327 g\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003eTemperatura:\u003c\/strong\u003e 12–18 °C \/ 54–64 °F\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003eFIT:\u003c\/strong\u003e Regular\u003c\/li\u003e\n  \u003c\/ul\u003e\n\n  \u003ch3\u003eO teu novo essencial de meia-estação\u003c\/h3\u003e\n  \u003cp\u003e\n    A \u003cstrong\u003eEspresso Thermal Jersey\u003c\/strong\u003e foi criada para ser a tua jersey de manga comprida favorita.  \n    O tecido oferece excelente \u003cstrong\u003erespirabilidade e isolamento térmico\u003c\/strong\u003e, mantendo o conforto mesmo em longas voltas.  \n    O design funcional permite carregar os bolsos sem que o tecido se deforme, e o bolso adicional com fecho mantém os teus valores em segurança.  \n    Terminada com o fiável fecho YKK® Vislon®, esta jersey será a tua nova companheira de eleição nos dias frescos —  \n    porque, afinal, \u003cstrong\u003eEspresso é sempre uma boa ideia\u003c\/strong\u003e.\n  \u003c\/p\u003e\n\u003c\/div\u003e\n\u003c!-- ===== GUIA DE TAMANHOS CASTELLI ===== --\u003e\n\u003cdiv class=\"cc-size-highlight-full\"\u003e\n  \u003ch3\u003e📏 Encontra o Teu Tamanho Ideal\u003c\/h3\u003e\n  \u003cp\u003e\n    Para garantir o melhor ajuste e conforto, mede o perímetro do teu \n    \u003cstrong\u003epeito (A)\u003c\/strong\u003e e da tua \u003cstrong\u003ecintura (B)\u003c\/strong\u003e em centímetros e compara \n    com o guia de tamanhos Castelli abaixo.\n  \u003c\/p\u003e\n\n  \u003cul\u003e\n    \u003cli\u003eMede o \u003cstrong\u003epeito (A)\u003c\/strong\u003e na parte mais larga do tórax, mantendo a fita horizontal e sem apertar.\u003c\/li\u003e\n    \u003cli\u003eMede a \u003cstrong\u003ecintura (B)\u003c\/strong\u003e na zona mais estreita do tronco.\u003c\/li\u003e\n    \u003cli\u003eUsa uma fita métrica flexível, mantendo uma posição natural e relaxada.\u003c\/li\u003e\n    \u003cli\u003eCompara as medidas com a tabela e, se estiveres entre dois tamanhos, considera escolher \n        \u003cstrong\u003eum tamanho acima\u003c\/strong\u003e, conforme a recomendação da Castelli para maior conforto.\u003c\/li\u003e\n  \u003c\/ul\u003e\n\n  \u003cbutton class=\"cc-size-btn\" type=\"button\" aria-haspopup=\"dialog\" aria-controls=\"cc-size-modal\"\u003e\n    Calcule o seu tamanho\n  \u003c\/button\u003e\n\u003c\/div\u003e\n\n\u003c!-- ===== MODAL ===== --\u003e\n\u003cdialog id=\"cc-size-modal\" class=\"cc-size-modal\" aria-label=\"Guia de tamanhos\"\u003e\n  \u003cbutton class=\"cc-close\" aria-label=\"Fechar\"\u003e✕\u003c\/button\u003e\n  \u003cdiv class=\"cc-loader\" aria-hidden=\"true\"\u003e\u003c\/div\u003e\n  \u003cdiv class=\"cc-size-box\" hidden\u003e\n    \u003cimg id=\"cc-size-img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0946\/1832\/1278\/files\/Size_Chart_Castelli_Men_2.0.png?v=1761056363\" alt=\"Guia de tamanhos Castelli\" loading=\"eager\" decoding=\"sync\"\u003e\n  \u003c\/div\u003e\n\u003c\/dialog\u003e\n\n\u003c!-- ===== STYLE ===== --\u003e\n\u003cstyle\u003e\n  .product-description {\n    font-family: Arial, Helvetica, sans-serif;\n    color: #222;\n    line-height: 1.6;\n    font-size: 15px;\n  }\n  .product-description h2 {\n    font-size: 22px;\n    text-transform: uppercase;\n    letter-spacing: .5px;\n    color: #111;\n    margin-bottom: 10px;\n  }\n\n  \/* Caixa do guia *\/\n  .cc-size-highlight-full{\n    background:#f9f9f9;border:1px solid #e2e2e2;border-radius:10px;\n    padding:20px 24px;margin-top:20px;\n    font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;\n    box-shadow:0 2px 8px rgba(0,0,0,0.04);\n  }\n  .cc-size-highlight-full h3{font-size:18px;margin:0 0 10px;color:#111;}\n  .cc-size-highlight-full p{font-size:15px;margin:0 0 10px;color:#333;}\n  .cc-size-highlight-full ul{margin:0 0 15px 20px;padding:0;}\n  .cc-size-highlight-full li{margin-bottom:5px;font-size:15px;color:#333;}\n\n  \/* Botão *\/\n  .cc-size-btn{\n    display:inline-flex;align-items:center;gap:.5rem;\n    background:#000;color:#fff;border:none;border-radius:6px;\n    padding:10px 16px;font-size:14px;font-weight:500;cursor:pointer;\n    transition:transform .2s ease-in-out, background .2s ease-in-out;\n  }\n  .cc-size-btn:hover{background:#222;transform:translateY(-1px);}\n\n  \/* ===== MODAL: reset do tema + centrado real ===== *\/\n  .cc-size-modal{\n    position: fixed !important;\n    inset: 0 !important;\n    background: transparent !important;\n    border: 0 !important;\n    margin: 0 !important;\n    padding: 0 !important;\n    max-width: none !important;\n    width: 100vw !important;\n    height: 100vh !important;\n    display: none;\n    align-items: center !important;\n    justify-content: center !important;\n    z-index: 99999 !important;\n  }\n  .cc-size-modal[open]{ display:flex; }\n  .cc-size-modal::backdrop{ background: rgba(0,0,0,.6) !important; }\n\n  .cc-size-box{\n    position: relative;\n    box-sizing: border-box;\n    background: #fff;\n    border: 1px solid #e9e9e9;\n    border-radius: 10px;\n    box-shadow: 0 10px 25px rgba(0,0,0,.25);\n    padding: 8px;\n    overflow: hidden;\n    width: min(85vw, 1200px) !important;\n    max-height: 88vh !important;\n    display: flex;align-items:center;justify-content:center;\n  }\n  .cc-size-img{\n    display:block;\n    max-width:100% !important;\n    max-height:84vh !important;\n    width:auto !important;height:auto !important;\n    object-fit:contain !important;border-radius:6px;\n  }\n\n  .cc-close{\n    position:absolute;top:10px;right:10px;\n    background:#fff;border:1px solid #ddd;border-radius:6px;\n    padding:6px 9px;cursor:pointer;font-size:16px;line-height:1;\n    box-shadow:0 2px 6px rgba(0,0,0,.08);\n  }\n  .cc-close:hover{background:#f3f3f3;}\n\n  @media (max-width: 768px){\n    .cc-size-box{ width:95vw !important; max-height:95vh !important; padding:4px !important; }\n    .cc-size-img{ max-height:92vh !important; width:100% !important; }\n    .cc-close{ top:6px; right:6px; }\n  }\n\u003c\/style\u003e\n\n\u003c!-- ===== SCRIPT ===== --\u003e\n\u003cscript\u003e\n(function(){\n  const btn   = document.querySelector('.cc-size-btn');\n  const modal = document.getElementById('cc-size-modal');\n  if(!btn || !modal) return;\n\n  const close  = modal.querySelector('.cc-close');\n  const box    = modal.querySelector('.cc-size-box');\n  const img    = document.getElementById('cc-size-img');\n  const loader = modal.querySelector('.cc-loader');\n\n  function lockScroll(lock){\n    const el = document.documentElement;\n    if(lock){\n      el.style.overflow = 'hidden';\n      el.style.paddingRight = (window.innerWidth - document.documentElement.clientWidth) + 'px';\n    }else{\n      el.style.overflow = '';\n      el.style.paddingRight = '';\n    }\n  }\n\n  function openModal(e){\n    e \u0026\u0026 e.preventDefault();\n    if(modal.showModal){ modal.showModal(); } else { modal.setAttribute('open',''); }\n    lockScroll(true);\n    if(img \u0026\u0026 img.complete \u0026\u0026 img.naturalWidth\u003e0){\n      loader \u0026\u0026 (loader.style.display='none');\n      box \u0026\u0026 (box.hidden=false);\n    }\n  }\n\n  function closeModal(){\n    if(modal.close){ modal.close(); } else { modal.removeAttribute('open'); }\n    lockScroll(false);\n  }\n\n  btn.addEventListener('click', openModal, { passive:true });\n  close.addEventListener('click', closeModal);\n  modal.addEventListener('cancel', e =\u003e { e.preventDefault(); closeModal(); });\n\n  modal.addEventListener('click', e =\u003e {\n    if(!box.contains(e.target)) closeModal();\n  });\n\n  document.addEventListener('keydown', e =\u003e {\n    if(e.key === 'Escape' \u0026\u0026 modal.hasAttribute('open')) closeModal();\n  });\n\n  if(img){\n    img.addEventListener('load', () =\u003e {\n      loader \u0026\u0026 (loader.style.display='none');\n      box \u0026\u0026 (box.hidden=false);\n    });\n    img.addEventListener('error', () =\u003e {\n      loader \u0026\u0026 (loader.style.display='none');\n      box \u0026\u0026 (box.hidden=false);\n      box.innerHTML = '\u003cdiv style=\"padding:24px;text-align:center;color:#444\"\u003eNão foi possível carregar a imagem do guia de tamanhos.\u003c\/div\u003e';\n    });\n  }\n})();\n\u003c\/script\u003e\n","brand":"Castelli","offers":[{"title":"S","offer_id":56456228766078,"sku":"4524508863 S-1","price":109.9,"currency_code":"EUR","in_stock":false},{"title":"M","offer_id":56456228798846,"sku":"4524508863 M-1","price":109.9,"currency_code":"EUR","in_stock":false},{"title":"L","offer_id":56456228831614,"sku":"4524508863 L-1","price":109.9,"currency_code":"EUR","in_stock":false},{"title":"XL","offer_id":56456228864382,"sku":"4524508863 XL-1","price":109.9,"currency_code":"EUR","in_stock":false},{"title":"2XL","offer_id":56456228897150,"sku":"4524508863 2XL-1","price":109.9,"currency_code":"EUR","in_stock":false},{"title":"3XL","offer_id":56456228929918,"sku":"4524508863 3XL-1","price":109.9,"currency_code":"EUR","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0946\/1832\/1278\/files\/167058580701-0.jpg?v=1761317907"},{"product_id":"castelli-espresso-w-long-sleeve-women-s-cycling-jersey","title":"CAMISOLA MANGA COMPRIDA MULHER CASTELLI ESPRESSO W PRETO","description":"\u003cdiv class=\"cc-simple\"\u003e\n\u003ch2\u003eCASTELLI ESPRESSO W\u003c\/h2\u003e\n\u003cp\u003e\u003cstrong\u003eA tua nova jersey de manga comprida favorita: o equilíbrio ideal entre proteção solar, aerodinâmica e conforto absoluto.\u003c\/strong\u003e\u003cbr\u003eA Espresso W LS foi desenhada para ser aquela peça indispensável que escolhes sempre que está seca após a lavagem. Quer prefiras um ajuste de competição ou um corte mais regular, esta jersey adapta-se perfeitamente graças ao tecido Air-O Stretch, que permite um ajuste próximo ao corpo sem nunca ser restritivo ou apertado.\u003c\/p\u003e\n\u003ch3\u003ePerformance Versátil e Conforto Air-O Stretch\u003c\/h3\u003e\n\u003cp\u003eDesenvolvida pela Castelli para oferecer uma gestão de humidade e respirabilidade excecionais, esta jersey provou também ser altamente eficiente em túnel de vento. O design de manga comprida com classificação UPF 30 oferece a proteção necessária contra os elementos, enquanto os detalhes como os punhos de corte a laser e o fecho YKK® Vislon® garantem uma experiência de utilização premium em qualquer tipo de volta.\u003c\/p\u003e\n\u003ch3\u003eEspecificações Técnicas\u003c\/h3\u003e\n\u003cul class=\"cc-list\"\u003e\n\u003cli\u003e\n\u003cstrong\u003eTecido Air-O Stretch:\u003c\/strong\u003e Respirabilidade de topo e ajuste anatómico\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eProteção Solar:\u003c\/strong\u003e Classificação UPF 30\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eConforto de Manga:\u003c\/strong\u003e Acabamento raw-cut (corte a laser) nos punhos\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eArrumação Inteligente:\u003c\/strong\u003e 3 bolsos traseiros + 1 bolso com fecho de segurança\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eFecho:\u003c\/strong\u003e YKK® Vislon® integral para regulação térmica fácil\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eAderência:\u003c\/strong\u003e Cintura elástica com silicone para fixação perfeita\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eVisibilidade:\u003c\/strong\u003e Detalhes refletores para segurança reforçada\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eCorte:\u003c\/strong\u003e Tailored Fit (Ajuste técnico e elegante)\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp style=\"font-size: 13px; color: #555; margin-top: 10px;\"\u003ePorque um Espresso é sempre uma boa ideia, esta jersey será a tua companheira ideal para todos os dias no selim, oferecendo leveza e proteção.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cstyle\u003e\n  .cc-simple {\n    font-family: system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif;\n    color: #111;\n    line-height: 1.6;\n  }\n  .cc-simple h2 {\n    font-size: 1.5rem;\n    font-weight: 700;\n    letter-spacing: .5px;\n    margin-bottom: .75rem;\n    text-transform: uppercase;\n  }\n  .cc-simple h3 {\n    font-size: 1.1rem;\n    margin: 1.1rem 0 .5rem;\n    font-weight: 600;\n  }\n  .cc-simple p {\n    margin: .25rem 0 .75rem;\n  }\n  .cc-list {\n    margin: .5rem 0 1rem 1.25rem;\n  }\n  .cc-list li {\n    margin: .25rem 0;\n  }\n\u003c\/style\u003e","brand":"Castelli","offers":[{"title":"XS","offer_id":56456242725246,"sku":"4525049085 XS-1","price":79.9,"currency_code":"EUR","in_stock":false},{"title":"S","offer_id":56456242758014,"sku":"4525049085 S-1","price":79.9,"currency_code":"EUR","in_stock":false},{"title":"M","offer_id":56456242790782,"sku":"4525049085 M-1","price":79.9,"currency_code":"EUR","in_stock":false},{"title":"L","offer_id":56456242823550,"sku":"4525049085 L-1","price":79.9,"currency_code":"EUR","in_stock":false},{"title":"XL","offer_id":56456242856318,"sku":"4525049085 XL-1","price":79.9,"currency_code":"EUR","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0946\/1832\/1278\/files\/167719237242-0.jpg?v=1761317973"},{"product_id":"long-sleeve-thermal-cycling-jersey-brand-castelli-soudal-quick-step-2024","title":"CAMISOLA MANGA COMPRIDA CASTELLI SOUDAL QUICK-STEP 2024","description":"\u003cdiv class=\"product-description\"\u003e\n  \u003ch2\u003eCASTELLI SOUDAL QUICK-STEP 2024 – LONG SLEEVE THERMAL CYCLING JERSEY\u003c\/h2\u003e\n\n  \u003cp\u003e\n    A \u003cstrong\u003eCastelli Soudal Quick-Step 2024 Thermal Jersey\u003c\/strong\u003e foi criada para oferecer o equilíbrio perfeito entre \n    \u003cstrong\u003eaquecimento e ventilação\u003c\/strong\u003e, mantendo o corpo confortável durante as tuas saídas em dias frescos.  \n    O seu tecido \u003cstrong\u003eWarmer X-Stretch\u003c\/strong\u003e proporciona uma sensação suave e térmica, garantindo a elasticidade necessária \n    para um \u003cstrong\u003eajuste justo e natural\u003c\/strong\u003e ao corpo, sem compressão excessiva.\n  \u003c\/p\u003e\n\n  \u003cp\u003e\n    Esta jersey térmica é ideal para condições de \u003cstrong\u003emeia-estação\u003c\/strong\u003e — pode ser usada sozinha em dias amenos ou combinada \n    com um colete como o Perfetto RoS para proteção adicional.  \n    O corte aerodinâmico e os bolsos traseiros em \u003cstrong\u003econstrução “drop-pocket”\u003c\/strong\u003e asseguram uma silhueta elegante e funcional, \n    mantendo tudo ao alcance durante a pedalada.\n  \u003c\/p\u003e\n\n  \u003ch3\u003eCaracterísticas\u003c\/h3\u003e\n  \u003cul\u003e\n    \u003cli\u003e\n\u003cstrong\u003eTecido Warmer X-Stretch escovado\u003c\/strong\u003e de peso médio para aquecimento e conforto.\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003eIdeal para dias frescos\u003c\/strong\u003e, com ou sem colete adicional.\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003eCorte Race\u003c\/strong\u003e com elevada elasticidade para ajuste perfeito sem compressão.\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003eConstrução “drop-pocket”\u003c\/strong\u003e para melhor ergonomia e acesso aos bolsos.\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003eFecho YKK® Vislon®\u003c\/strong\u003e coberto para isolamento térmico e estética refinada.\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003e3 bolsos traseiros\u003c\/strong\u003e de fácil acesso.\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003ePeso:\u003c\/strong\u003e 397 g\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003eTemperatura ideal:\u003c\/strong\u003e 12–18 °C \/ 54–64 °F\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003eFIT:\u003c\/strong\u003e Regular\u003c\/li\u003e\n  \u003c\/ul\u003e\n\n  \u003ch3\u003ePerformance de Equipa\u003c\/h3\u003e\n  \u003cp\u003e\n    Inspirada na \u003cstrong\u003eSoudal Quick-Step\u003c\/strong\u003e, esta jersey oferece a mesma qualidade e desempenho usados pelos profissionais.  \n    Leve, quente e elegante, é a escolha ideal para treinos de outono e primavera, combinando tecnologia Castelli com o espírito do \u003cstrong\u003eWolfpack\u003c\/strong\u003e.\n  \u003c\/p\u003e\n\u003c\/div\u003e\n\u003c!-- ===== GUIA DE TAMANHOS CASTELLI ===== --\u003e\n\u003cdiv class=\"cc-size-highlight-full\"\u003e\n  \u003ch3\u003e📏 Encontra o Teu Tamanho Ideal\u003c\/h3\u003e\n  \u003cp\u003e\n    Para garantir o melhor ajuste e conforto, mede o perímetro do teu \n    \u003cstrong\u003epeito (A)\u003c\/strong\u003e e da tua \u003cstrong\u003ecintura (B)\u003c\/strong\u003e em centímetros e compara \n    com o guia de tamanhos Castelli abaixo.\n  \u003c\/p\u003e\n\n  \u003cul\u003e\n    \u003cli\u003eMede o \u003cstrong\u003epeito (A)\u003c\/strong\u003e na parte mais larga do tórax, mantendo a fita horizontal e sem apertar.\u003c\/li\u003e\n    \u003cli\u003eMede a \u003cstrong\u003ecintura (B)\u003c\/strong\u003e na zona mais estreita do tronco.\u003c\/li\u003e\n    \u003cli\u003eUsa uma fita métrica flexível, mantendo uma posição natural e relaxada.\u003c\/li\u003e\n    \u003cli\u003eCompara as medidas com a tabela e, se estiveres entre dois tamanhos, considera escolher \n        \u003cstrong\u003eum tamanho acima\u003c\/strong\u003e, conforme a recomendação da Castelli para maior conforto.\u003c\/li\u003e\n  \u003c\/ul\u003e\n\n  \u003cbutton class=\"cc-size-btn\" type=\"button\" aria-haspopup=\"dialog\" aria-controls=\"cc-size-modal\"\u003e\n    Calcule o seu tamanho\n  \u003c\/button\u003e\n\u003c\/div\u003e\n\n\u003c!-- ===== MODAL ===== --\u003e\n\u003cdialog id=\"cc-size-modal\" class=\"cc-size-modal\" aria-label=\"Guia de tamanhos\"\u003e\n  \u003cbutton class=\"cc-close\" aria-label=\"Fechar\"\u003e✕\u003c\/button\u003e\n  \u003cdiv class=\"cc-loader\" aria-hidden=\"true\"\u003e\u003c\/div\u003e\n  \u003cdiv class=\"cc-size-box\" hidden\u003e\n    \u003cimg id=\"cc-size-img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0946\/1832\/1278\/files\/Size_Chart_Castelli_Men_2.0.png?v=1761056363\" alt=\"Guia de tamanhos Castelli\" loading=\"eager\" decoding=\"sync\"\u003e\n  \u003c\/div\u003e\n\u003c\/dialog\u003e\n\n\u003c!-- ===== STYLE ===== --\u003e\n\u003cstyle\u003e\n  .product-description {\n    font-family: Arial, Helvetica, sans-serif;\n    color: #222;\n    line-height: 1.6;\n    font-size: 15px;\n  }\n  .product-description h2 {\n    font-size: 22px;\n    text-transform: uppercase;\n    letter-spacing: .5px;\n    color: #111;\n    margin-bottom: 10px;\n  }\n\n  \/* Caixa do guia *\/\n  .cc-size-highlight-full{\n    background:#f9f9f9;border:1px solid #e2e2e2;border-radius:10px;\n    padding:20px 24px;margin-top:20px;\n    font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;\n    box-shadow:0 2px 8px rgba(0,0,0,0.04);\n  }\n  .cc-size-highlight-full h3{font-size:18px;margin:0 0 10px;color:#111;}\n  .cc-size-highlight-full p{font-size:15px;margin:0 0 10px;color:#333;}\n  .cc-size-highlight-full ul{margin:0 0 15px 20px;padding:0;}\n  .cc-size-highlight-full li{margin-bottom:5px;font-size:15px;color:#333;}\n\n  \/* Botão *\/\n  .cc-size-btn{\n    display:inline-flex;align-items:center;gap:.5rem;\n    background:#000;color:#fff;border:none;border-radius:6px;\n    padding:10px 16px;font-size:14px;font-weight:500;cursor:pointer;\n    transition:transform .2s ease-in-out, background .2s ease-in-out;\n  }\n  .cc-size-btn:hover{background:#222;transform:translateY(-1px);}\n\n  \/* ===== MODAL: reset do tema + centrado real ===== *\/\n  .cc-size-modal{\n    position: fixed !important;\n    inset: 0 !important;\n    background: transparent !important;\n    border: 0 !important;\n    margin: 0 !important;\n    padding: 0 !important;\n    max-width: none !important;\n    width: 100vw !important;\n    height: 100vh !important;\n    display: none;\n    align-items: center !important;\n    justify-content: center !important;\n    z-index: 99999 !important;\n  }\n  .cc-size-modal[open]{ display:flex; }\n  .cc-size-modal::backdrop{ background: rgba(0,0,0,.6) !important; }\n\n  .cc-size-box{\n    position: relative;\n    box-sizing: border-box;\n    background: #fff;\n    border: 1px solid #e9e9e9;\n    border-radius: 10px;\n    box-shadow: 0 10px 25px rgba(0,0,0,.25);\n    padding: 8px;\n    overflow: hidden;\n    width: min(85vw, 1200px) !important;\n    max-height: 88vh !important;\n    display: flex;align-items:center;justify-content:center;\n  }\n  .cc-size-img{\n    display:block;\n    max-width:100% !important;\n    max-height:84vh !important;\n    width:auto !important;height:auto !important;\n    object-fit:contain !important;border-radius:6px;\n  }\n\n  .cc-close{\n    position:absolute;top:10px;right:10px;\n    background:#fff;border:1px solid #ddd;border-radius:6px;\n    padding:6px 9px;cursor:pointer;font-size:16px;line-height:1;\n    box-shadow:0 2px 6px rgba(0,0,0,.08);\n  }\n  .cc-close:hover{background:#f3f3f3;}\n\n  @media (max-width: 768px){\n    .cc-size-box{ width:95vw !important; max-height:95vh !important; padding:4px !important; }\n    .cc-size-img{ max-height:92vh !important; width:100% !important; }\n    .cc-close{ top:6px; right:6px; }\n  }\n\u003c\/style\u003e\n\n\u003c!-- ===== SCRIPT ===== --\u003e\n\u003cscript\u003e\n(function(){\n  const btn   = document.querySelector('.cc-size-btn');\n  const modal = document.getElementById('cc-size-modal');\n  if(!btn || !modal) return;\n\n  const close  = modal.querySelector('.cc-close');\n  const box    = modal.querySelector('.cc-size-box');\n  const img    = document.getElementById('cc-size-img');\n  const loader = modal.querySelector('.cc-loader');\n\n  function lockScroll(lock){\n    const el = document.documentElement;\n    if(lock){\n      el.style.overflow = 'hidden';\n      el.style.paddingRight = (window.innerWidth - document.documentElement.clientWidth) + 'px';\n    }else{\n      el.style.overflow = '';\n      el.style.paddingRight = '';\n    }\n  }\n\n  function openModal(e){\n    e \u0026\u0026 e.preventDefault();\n    if(modal.showModal){ modal.showModal(); } else { modal.setAttribute('open',''); }\n    lockScroll(true);\n    if(img \u0026\u0026 img.complete \u0026\u0026 img.naturalWidth\u003e0){\n      loader \u0026\u0026 (loader.style.display='none');\n      box \u0026\u0026 (box.hidden=false);\n    }\n  }\n\n  function closeModal(){\n    if(modal.close){ modal.close(); } else { modal.removeAttribute('open'); }\n    lockScroll(false);\n  }\n\n  btn.addEventListener('click', openModal, { passive:true });\n  close.addEventListener('click', closeModal);\n  modal.addEventListener('cancel', e =\u003e { e.preventDefault(); closeModal(); });\n\n  modal.addEventListener('click', e =\u003e {\n    if(!box.contains(e.target)) closeModal();\n  });\n\n  document.addEventListener('keydown', e =\u003e {\n    if(e.key === 'Escape' \u0026\u0026 modal.hasAttribute('open')) closeModal();\n  });\n\n  if(img){\n    img.addEventListener('load', () =\u003e {\n      loader \u0026\u0026 (loader.style.display='none');\n      box \u0026\u0026 (box.hidden=false);\n    });\n    img.addEventListener('error', () =\u003e {\n      loader \u0026\u0026 (loader.style.display='none');\n      box \u0026\u0026 (box.hidden=false);\n      box.innerHTML = '\u003cdiv style=\"padding:24px;text-align:center;color:#444\"\u003eNão foi possível carregar a imagem do guia de tamanhos.\u003c\/div\u003e';\n    });\n  }\n})();\n\u003c\/script\u003e\n","brand":"Castelli","offers":[{"title":"S","offer_id":56456246591870,"sku":"4234004087 S-1","price":84.9,"currency_code":"EUR","in_stock":false},{"title":"M","offer_id":56456246624638,"sku":"4234004087 M-1","price":84.9,"currency_code":"EUR","in_stock":false},{"title":"L","offer_id":56456246657406,"sku":"4234004087 L-1","price":84.9,"currency_code":"EUR","in_stock":false},{"title":"XL","offer_id":56456246690174,"sku":"4234004087 XL-1","price":84.9,"currency_code":"EUR","in_stock":false},{"title":"2XL","offer_id":56456246722942,"sku":"4234004087 2XL-1","price":84.9,"currency_code":"EUR","in_stock":false},{"title":"3XL","offer_id":56456246755710,"sku":"4234004087 3XL-1","price":84.9,"currency_code":"EUR","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0946\/1832\/1278\/files\/166969973471-0.jpg?v=1761318014"},{"product_id":"castelli-sinergia-2-women-long-sleeve-cycling-jersey-road-bike-full-zip","title":"CAMISOLA MANGA COMPRIDA MULHER CASTELLI SINERGIA 2 VERMELHO","description":"\u003cdiv class=\"cc-simple\"\u003e\n\u003ch2\u003eCASTELLI SINERGIA 2\u003c\/h2\u003e\n\u003cp\u003e\u003cstrong\u003eA base térmica perfeita para as tuas saídas de outono e primavera.\u003c\/strong\u003e\u003cbr\u003eA jersey Sinergia 2 FZ foi desenhada para ser a peça mais versátil do teu guarda-roupa de ciclismo. Focada no essencial — excelente tecido, ajuste impecável e bolsos funcionais — esta jersey térmica oferece o equilíbrio ideal entre isolamento e respirabilidade, sem o volume excessivo de um casaco pesado.\u003c\/p\u003e\n\u003ch3\u003eConforto Térmico e Versatilidade\u003c\/h3\u003e\n\u003cp\u003eConstruída com o tecido Warmer da Castelli, esta jersey mantém o corpo quente enquanto liberta a humidade. É a escolha ideal para usar sozinha em dias frescos ou combinada com um colete quando a temperatura desce. O design dos bolsos traseiros (drop-pocket) garante que estes permanecem na posição ideal, mesmo quando carregados, facilitando o acesso durante a pedalada.\u003c\/p\u003e\n\u003ch3\u003eEspecificações Técnicas\u003c\/h3\u003e\n\u003cul class=\"cc-list\"\u003e\n\u003cli\u003e\n\u003cstrong\u003eTecido Warmer:\u003c\/strong\u003e Isolamento térmico macio e eficiente\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eBolsos:\u003c\/strong\u003e 3 bolsos traseiros com construção Drop-Pocket\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eFecho:\u003c\/strong\u003e YKK® Vislon® de deslize fácil e leve\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eVisibilidade:\u003c\/strong\u003e Detalhes refletores traseiros para maior segurança\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eDesign:\u003c\/strong\u003e Estética limpa com logótipo clássico no peito\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eUtilização:\u003c\/strong\u003e Perfeita para o intervalo entre 12°C e 18°C\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eCorte:\u003c\/strong\u003e Regular Fit (Conforto anatómico para todas as ciclistas)\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp style=\"font-size: 13px; color: #555; margin-top: 10px;\"\u003eUma peça fundamental que simplifica o teu vestuário técnico sem abdicar da performance Castelli.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cstyle\u003e\n  .cc-simple {\n    font-family: system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif;\n    color: #111;\n    line-height: 1.6;\n  }\n  .cc-simple h2 {\n    font-size: 1.5rem;\n    font-weight: 700;\n    letter-spacing: .5px;\n    margin-bottom: .75rem;\n    text-transform: uppercase;\n  }\n  .cc-simple h3 {\n    font-size: 1.1rem;\n    margin: 1.1rem 0 .5rem;\n    font-weight: 600;\n  }\n  .cc-simple p {\n    margin: .25rem 0 .75rem;\n  }\n  .cc-list {\n    margin: .5rem 0 1rem 1.25rem;\n  }\n  .cc-list li {\n    margin: .25rem 0;\n  }\n\u003c\/style\u003e","brand":"Castelli","offers":[{"title":"XS","offer_id":56456255832446,"sku":"4521531081 XS","price":64.9,"currency_code":"EUR","in_stock":false},{"title":"S","offer_id":56456255865214,"sku":"4521531081 S","price":64.9,"currency_code":"EUR","in_stock":false},{"title":"M","offer_id":56456255897982,"sku":"4521531081 M","price":64.9,"currency_code":"EUR","in_stock":false},{"title":"L","offer_id":56456255930750,"sku":"4521531081 L","price":64.9,"currency_code":"EUR","in_stock":false},{"title":"XL","offer_id":56456255963518,"sku":"4521531081 XL","price":64.9,"currency_code":"EUR","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0946\/1832\/1278\/files\/167738910209-0.jpg?v=1761318072"},{"product_id":"winter-cycling-jersey-brand-castelli-unlimited-thermal-jersey","title":"CAMISOLA MANGA COMPRIDA CASTELLI UNLIMITED CINZA","description":"\u003cdiv class=\"product-description\"\u003e\n  \u003ch2\u003eCASTELLI UNLIMITED THERMAL JERSEY\u003c\/h2\u003e\n\n  \u003cp\u003e\n    A \u003cstrong\u003eCastelli Unlimited Thermal Jersey\u003c\/strong\u003e foi concebida para os dias de frio em que o conforto, a respirabilidade e a liberdade de movimento são essenciais.  \n    Ideal para aventuras de \u003cstrong\u003egravel\u003c\/strong\u003e e passeios de estrada em tempo fresco, esta jersey mantém o \u003cstrong\u003etronco aquecido\u003c\/strong\u003e enquanto permite ventilação suficiente para evitar o sobreaquecimento.\n  \u003c\/p\u003e\n\n  \u003cp\u003e\n    O corpo é fabricado com \u003cstrong\u003etecido Warmer\u003c\/strong\u003e que proporciona isolamento térmico e excelente gestão da humidade,  \n    enquanto as mangas e painéis laterais em \u003cstrong\u003eWarmer X-Stretch\u003c\/strong\u003e asseguram um ajuste elástico e confortável, próximo ao corpo, sem restringir os movimentos.  \n    O \u003cstrong\u003efecho YKK® Vislon®\u003c\/strong\u003e com protetor de pescoço facilita o ajuste e aumenta o conforto durante o uso prolongado.\n  \u003c\/p\u003e\n\n  \u003cp\u003e\n    Com \u003cstrong\u003etrês bolsos traseiros\u003c\/strong\u003e amplos e um \u003cstrong\u003eelástico com silicone na cintura\u003c\/strong\u003e que mantém a jersey no lugar, esta peça combina  \n    \u003cstrong\u003eversatilidade, proteção e estilo\u003c\/strong\u003e para as tuas pedaladas em clima fresco.\n  \u003c\/p\u003e\n\n  \u003ch3\u003eCaracterísticas\u003c\/h3\u003e\n  \u003cul\u003e\n    \u003cli\u003e\n\u003cstrong\u003eTecido Warmer\u003c\/strong\u003e no corpo para aquecimento e conforto.\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003eWarmer X-Stretch\u003c\/strong\u003e nas mangas e laterais para ajuste perfeito e liberdade de movimento.\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003eElástico com silicone\u003c\/strong\u003e na cintura para maior estabilidade.\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003e3 bolsos traseiros\u003c\/strong\u003e de fácil acesso.\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003eFecho YKK® Vislon®\u003c\/strong\u003e de deslizamento suave com protetor de pescoço.\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003ePeso:\u003c\/strong\u003e 294 g\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003eTemperatura ideal:\u003c\/strong\u003e 12–18 °C \/ 54–64 °F\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003eFIT:\u003c\/strong\u003e Tailored\u003c\/li\u003e\n  \u003c\/ul\u003e\n\u003c\/div\u003e\n\n\u003c!-- ===== GUIA DE TAMANHOS CASTELLI ===== --\u003e\n\u003cdiv class=\"cc-size-highlight-full\"\u003e\n  \u003ch3\u003e📏 Encontra o Teu Tamanho Ideal\u003c\/h3\u003e\n  \u003cp\u003e\n    Para garantir o melhor ajuste e conforto, mede o perímetro do teu \n    \u003cstrong\u003epeito (A)\u003c\/strong\u003e e da tua \u003cstrong\u003ecintura (B)\u003c\/strong\u003e em centímetros e compara \n    com o guia de tamanhos Castelli abaixo.\n  \u003c\/p\u003e\n\n  \u003cul\u003e\n    \u003cli\u003eMede o \u003cstrong\u003epeito (A)\u003c\/strong\u003e na parte mais larga do tórax, mantendo a fita horizontal e sem apertar.\u003c\/li\u003e\n    \u003cli\u003eMede a \u003cstrong\u003ecintura (B)\u003c\/strong\u003e na zona mais estreita do tronco.\u003c\/li\u003e\n    \u003cli\u003eUsa uma fita métrica flexível, mantendo uma posição natural e relaxada.\u003c\/li\u003e\n    \u003cli\u003eCompara as medidas com a tabela e, se estiveres entre dois tamanhos, considera escolher \n        \u003cstrong\u003eum tamanho acima\u003c\/strong\u003e, conforme a recomendação da Castelli para maior conforto.\u003c\/li\u003e\n  \u003c\/ul\u003e\n\n  \u003cbutton class=\"cc-size-btn\" type=\"button\" aria-haspopup=\"dialog\" aria-controls=\"cc-size-modal\"\u003e\n    Calcule o seu tamanho\n  \u003c\/button\u003e\n\u003c\/div\u003e\n\n\u003c!-- ===== MODAL ===== --\u003e\n\u003cdialog id=\"cc-size-modal\" class=\"cc-size-modal\" aria-label=\"Guia de tamanhos\"\u003e\n  \u003cbutton class=\"cc-close\" aria-label=\"Fechar\"\u003e✕\u003c\/button\u003e\n  \u003cdiv class=\"cc-loader\" aria-hidden=\"true\"\u003e\u003c\/div\u003e\n  \u003cdiv class=\"cc-size-box\" hidden\u003e\n    \u003cimg id=\"cc-size-img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0946\/1832\/1278\/files\/Size_Chart_Castelli_Men_2.0.png?v=1761056363\" alt=\"Guia de tamanhos Castelli\" loading=\"eager\" decoding=\"sync\"\u003e\n  \u003c\/div\u003e\n\u003c\/dialog\u003e\n\n\u003c!-- ===== STYLE ===== --\u003e\n\u003cstyle\u003e\n  .product-description {\n    font-family: Arial, Helvetica, sans-serif;\n    color: #222;\n    line-height: 1.6;\n    font-size: 15px;\n  }\n  .product-description h2 {\n    font-size: 22px;\n    text-transform: uppercase;\n    letter-spacing: .5px;\n    color: #111;\n    margin-bottom: 10px;\n  }\n\n  \/* Caixa do guia *\/\n  .cc-size-highlight-full{\n    background:#f9f9f9;border:1px solid #e2e2e2;border-radius:10px;\n    padding:20px 24px;margin-top:20px;\n    font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;\n    box-shadow:0 2px 8px rgba(0,0,0,0.04);\n  }\n  .cc-size-highlight-full h3{font-size:18px;margin:0 0 10px;color:#111;}\n  .cc-size-highlight-full p{font-size:15px;margin:0 0 10px;color:#333;}\n  .cc-size-highlight-full ul{margin:0 0 15px 20px;padding:0;}\n  .cc-size-highlight-full li{margin-bottom:5px;font-size:15px;color:#333;}\n\n  \/* Botão *\/\n  .cc-size-btn{\n    display:inline-flex;align-items:center;gap:.5rem;\n    background:#000;color:#fff;border:none;border-radius:6px;\n    padding:10px 16px;font-size:14px;font-weight:500;cursor:pointer;\n    transition:transform .2s ease-in-out, background .2s ease-in-out;\n  }\n  .cc-size-btn:hover{background:#222;transform:translateY(-1px);}\n\n  \/* ===== MODAL: reset do tema + centrado real ===== *\/\n  .cc-size-modal{\n    position: fixed !important;\n    inset: 0 !important;\n    background: transparent !important;\n    border: 0 !important;\n    margin: 0 !important;\n    padding: 0 !important;\n    max-width: none !important;\n    width: 100vw !important;\n    height: 100vh !important;\n    display: none;\n    align-items: center !important;\n    justify-content: center !important;\n    z-index: 99999 !important;\n  }\n  .cc-size-modal[open]{ display:flex; }\n  .cc-size-modal::backdrop{ background: rgba(0,0,0,.6) !important; }\n\n  .cc-size-box{\n    position: relative;\n    box-sizing: border-box;\n    background: #fff;\n    border: 1px solid #e9e9e9;\n    border-radius: 10px;\n    box-shadow: 0 10px 25px rgba(0,0,0,.25);\n    padding: 8px;\n    overflow: hidden;\n    width: min(85vw, 1200px) !important;\n    max-height: 88vh !important;\n    display: flex;align-items:center;justify-content:center;\n  }\n  .cc-size-img{\n    display:block;\n    max-width:100% !important;\n    max-height:84vh !important;\n    width:auto !important;height:auto !important;\n    object-fit:contain !important;border-radius:6px;\n  }\n\n  .cc-close{\n    position:absolute;top:10px;right:10px;\n    background:#fff;border:1px solid #ddd;border-radius:6px;\n    padding:6px 9px;cursor:pointer;font-size:16px;line-height:1;\n    box-shadow:0 2px 6px rgba(0,0,0,.08);\n  }\n  .cc-close:hover{background:#f3f3f3;}\n\n  @media (max-width: 768px){\n    .cc-size-box{ width:95vw !important; max-height:95vh !important; padding:4px !important; }\n    .cc-size-img{ max-height:92vh !important; width:100% !important; }\n    .cc-close{ top:6px; right:6px; }\n  }\n\u003c\/style\u003e\n\n\u003c!-- ===== SCRIPT ===== --\u003e\n\u003cscript\u003e\n(function(){\n  const btn   = document.querySelector('.cc-size-btn');\n  const modal = document.getElementById('cc-size-modal');\n  if(!btn || !modal) return;\n\n  const close  = modal.querySelector('.cc-close');\n  const box    = modal.querySelector('.cc-size-box');\n  const img    = document.getElementById('cc-size-img');\n  const loader = modal.querySelector('.cc-loader');\n\n  function lockScroll(lock){\n    const el = document.documentElement;\n    if(lock){\n      el.style.overflow = 'hidden';\n      el.style.paddingRight = (window.innerWidth - document.documentElement.clientWidth) + 'px';\n    }else{\n      el.style.overflow = '';\n      el.style.paddingRight = '';\n    }\n  }\n\n  function openModal(e){\n    e \u0026\u0026 e.preventDefault();\n    if(modal.showModal){ modal.showModal(); } else { modal.setAttribute('open',''); }\n    lockScroll(true);\n    if(img \u0026\u0026 img.complete \u0026\u0026 img.naturalWidth\u003e0){\n      loader \u0026\u0026 (loader.style.display='none');\n      box \u0026\u0026 (box.hidden=false);\n    }\n  }\n\n  function closeModal(){\n    if(modal.close){ modal.close(); } else { modal.removeAttribute('open'); }\n    lockScroll(false);\n  }\n\n  btn.addEventListener('click', openModal, { passive:true });\n  close.addEventListener('click', closeModal);\n  modal.addEventListener('cancel', e =\u003e { e.preventDefault(); closeModal(); });\n\n  modal.addEventListener('click', e =\u003e {\n    if(!box.contains(e.target)) closeModal();\n  });\n\n  document.addEventListener('keydown', e =\u003e {\n    if(e.key === 'Escape' \u0026\u0026 modal.hasAttribute('open')) closeModal();\n  });\n\n  if(img){\n    img.addEventListener('load', () =\u003e {\n      loader \u0026\u0026 (loader.style.display='none');\n      box \u0026\u0026 (box.hidden=false);\n    });\n    img.addEventListener('error', () =\u003e {\n      loader \u0026\u0026 (loader.style.display='none');\n      box \u0026\u0026 (box.hidden=false);\n      box.innerHTML = '\u003cdiv style=\"padding:24px;text-align:center;color:#444\"\u003eNão foi possível carregar a imagem do guia de tamanhos.\u003c\/div\u003e';\n    });\n  }\n})();\n\u003c\/script\u003e\n","brand":"Castelli","offers":[{"title":"S","offer_id":56456259469694,"sku":"4524522030 S","price":79.9,"currency_code":"EUR","in_stock":false},{"title":"M","offer_id":56456259502462,"sku":"4524522030 M","price":79.9,"currency_code":"EUR","in_stock":false},{"title":"L","offer_id":56456259535230,"sku":"4524522030 L","price":79.9,"currency_code":"EUR","in_stock":false},{"title":"XL","offer_id":56456259567998,"sku":"4524522030 XL","price":79.9,"currency_code":"EUR","in_stock":false},{"title":"2XL","offer_id":56456259600766,"sku":"4524522030 2XL","price":79.9,"currency_code":"EUR","in_stock":false},{"title":"3XL","offer_id":56456259633534,"sku":"4524522030 3XL","price":79.9,"currency_code":"EUR","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0946\/1832\/1278\/files\/167043621602-0.jpg?v=1761318111"},{"product_id":"castelli-puro-4-cycling-thermal-jersey-breathable-lightweight-reflective","title":"CAMISOLA MANGA COMPRIDA CASTELLI PURO 4 BRANCO","description":"\u003cdiv class=\"product-description\"\u003e\n  \u003ch2\u003eCASTELLI PURO 4 CYCLING JERSEY\u003c\/h2\u003e\n\n  \u003cp\u003e\n    A \u003cstrong\u003ePuro 4 Jersey\u003c\/strong\u003e é a escolha ideal para os dias frescos de início de outono ou fim de primavera. \n    Oferece \u003cstrong\u003eaquecimento intermédio, excelente respirabilidade e visibilidade total a 360°\u003c\/strong\u003e, \n    num design limpo e elegante que combina conforto e desempenho.\n  \u003c\/p\u003e\n\n  \u003cp\u003e\n    Fabricada em \u003cstrong\u003etecido 3D knit\u003c\/strong\u003e (93% poliéster \/ 7% elastano), \n    cria \u003cstrong\u003ebolsas de ar internas\u003c\/strong\u003e que aumentam o isolamento térmico sem adicionar peso — \n    mais calor do que o esperado para um tecido de 180 g. \n    O material italiano oferece um toque suave e \u003cstrong\u003eelasticidade superior\u003c\/strong\u003e, \n    permitindo um ajuste justo ao corpo sem compressão excessiva.\n  \u003c\/p\u003e\n\n  \u003cp\u003e\n    A jersey inclui \u003cstrong\u003epainéis refletivos nos ombros\u003c\/strong\u003e e \u003cstrong\u003edetalhes térmicos refletivos\u003c\/strong\u003e \n    nos bolsos traseiros para máxima visibilidade em todas as direções. \n    O \u003cstrong\u003efecho YKK® Vislon®\u003c\/strong\u003e desliza facilmente, enquanto o \n    \u003cstrong\u003eelástico com grip na cintura\u003c\/strong\u003e mantém a jersey firme no lugar. \n    Com um corte técnico e funcional, a Puro 4 combina desempenho térmico e estilo minimalista.\n  \u003c\/p\u003e\n\n  \u003ch3\u003eCaracterísticas\u003c\/h3\u003e\n  \u003cul\u003e\n    \u003cli\u003e\n\u003cstrong\u003eAquecimento intermédio\u003c\/strong\u003e ideal para temperaturas frescas.\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003eTecido 3D knit\u003c\/strong\u003e (93% poliéster \/ 7% elastano) que retém calor e gere a humidade.\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003eElevada elasticidade\u003c\/strong\u003e para ajuste justo sem sensação de aperto.\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003ePainéis refletivos nos ombros\u003c\/strong\u003e e \u003cstrong\u003edetalhes refletivos nos bolsos\u003c\/strong\u003e para visibilidade 360°.\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003eElástico com grip\u003c\/strong\u003e na cintura para estabilidade durante o esforço.\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003e3 bolsos traseiros\u003c\/strong\u003e para armazenamento funcional.\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003eFecho YKK® Vislon®\u003c\/strong\u003e de deslizamento fácil.\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003ePeso:\u003c\/strong\u003e 285 g\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003eTemperatura ideal:\u003c\/strong\u003e 12–18 °C \/ 54–64 °F\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003eFIT:\u003c\/strong\u003e Tailored\u003c\/li\u003e\n  \u003c\/ul\u003e\n\u003c\/div\u003e\n\u003c!-- ===== GUIA DE TAMANHOS CASTELLI ===== --\u003e\n\u003cdiv class=\"cc-size-highlight-full\"\u003e\n  \u003ch3\u003e📏 Encontra o Teu Tamanho Ideal\u003c\/h3\u003e\n  \u003cp\u003e\n    Para garantir o melhor ajuste e conforto, mede o perímetro do teu \n    \u003cstrong\u003epeito (A)\u003c\/strong\u003e e da tua \u003cstrong\u003ecintura (B)\u003c\/strong\u003e em centímetros e compara \n    com o guia de tamanhos Castelli abaixo.\n  \u003c\/p\u003e\n\n  \u003cul\u003e\n    \u003cli\u003eMede o \u003cstrong\u003epeito (A)\u003c\/strong\u003e na parte mais larga do tórax, mantendo a fita horizontal e sem apertar.\u003c\/li\u003e\n    \u003cli\u003eMede a \u003cstrong\u003ecintura (B)\u003c\/strong\u003e na zona mais estreita do tronco.\u003c\/li\u003e\n    \u003cli\u003eUsa uma fita métrica flexível, mantendo uma posição natural e relaxada.\u003c\/li\u003e\n    \u003cli\u003eCompara as medidas com a tabela e, se estiveres entre dois tamanhos, considera escolher \n        \u003cstrong\u003eum tamanho acima\u003c\/strong\u003e, conforme a recomendação da Castelli para maior conforto.\u003c\/li\u003e\n  \u003c\/ul\u003e\n\n  \u003cbutton class=\"cc-size-btn\" type=\"button\" aria-haspopup=\"dialog\" aria-controls=\"cc-size-modal\"\u003e\n    Calcule o seu tamanho\n  \u003c\/button\u003e\n\u003c\/div\u003e\n\n\u003c!-- ===== MODAL ===== --\u003e\n\u003cdialog id=\"cc-size-modal\" class=\"cc-size-modal\" aria-label=\"Guia de tamanhos\"\u003e\n  \u003cbutton class=\"cc-close\" aria-label=\"Fechar\"\u003e✕\u003c\/button\u003e\n  \u003cdiv class=\"cc-loader\" aria-hidden=\"true\"\u003e\u003c\/div\u003e\n  \u003cdiv class=\"cc-size-box\" hidden\u003e\n    \u003cimg id=\"cc-size-img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0946\/1832\/1278\/files\/Size_Chart_Castelli_Men_2.0.png?v=1761056363\" alt=\"Guia de tamanhos Castelli\" loading=\"eager\" decoding=\"sync\"\u003e\n  \u003c\/div\u003e\n\u003c\/dialog\u003e\n\n\u003c!-- ===== STYLE ===== --\u003e\n\u003cstyle\u003e\n  .product-description {\n    font-family: Arial, Helvetica, sans-serif;\n    color: #222;\n    line-height: 1.6;\n    font-size: 15px;\n  }\n  .product-description h2 {\n    font-size: 22px;\n    text-transform: uppercase;\n    letter-spacing: .5px;\n    color: #111;\n    margin-bottom: 10px;\n  }\n\n  \/* Caixa do guia *\/\n  .cc-size-highlight-full{\n    background:#f9f9f9;border:1px solid #e2e2e2;border-radius:10px;\n    padding:20px 24px;margin-top:20px;\n    font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;\n    box-shadow:0 2px 8px rgba(0,0,0,0.04);\n  }\n  .cc-size-highlight-full h3{font-size:18px;margin:0 0 10px;color:#111;}\n  .cc-size-highlight-full p{font-size:15px;margin:0 0 10px;color:#333;}\n  .cc-size-highlight-full ul{margin:0 0 15px 20px;padding:0;}\n  .cc-size-highlight-full li{margin-bottom:5px;font-size:15px;color:#333;}\n\n  \/* Botão *\/\n  .cc-size-btn{\n    display:inline-flex;align-items:center;gap:.5rem;\n    background:#000;color:#fff;border:none;border-radius:6px;\n    padding:10px 16px;font-size:14px;font-weight:500;cursor:pointer;\n    transition:transform .2s ease-in-out, background .2s ease-in-out;\n  }\n  .cc-size-btn:hover{background:#222;transform:translateY(-1px);}\n\n  \/* ===== MODAL: reset do tema + centrado real ===== *\/\n  .cc-size-modal{\n    position: fixed !important;\n    inset: 0 !important;\n    background: transparent !important;\n    border: 0 !important;\n    margin: 0 !important;\n    padding: 0 !important;\n    max-width: none !important;\n    width: 100vw !important;\n    height: 100vh !important;\n    display: none;\n    align-items: center !important;\n    justify-content: center !important;\n    z-index: 99999 !important;\n  }\n  .cc-size-modal[open]{ display:flex; }\n  .cc-size-modal::backdrop{ background: rgba(0,0,0,.6) !important; }\n\n  .cc-size-box{\n    position: relative;\n    box-sizing: border-box;\n    background: #fff;\n    border: 1px solid #e9e9e9;\n    border-radius: 10px;\n    box-shadow: 0 10px 25px rgba(0,0,0,.25);\n    padding: 8px;\n    overflow: hidden;\n    width: min(85vw, 1200px) !important;\n    max-height: 88vh !important;\n    display: flex;align-items:center;justify-content:center;\n  }\n  .cc-size-img{\n    display:block;\n    max-width:100% !important;\n    max-height:84vh !important;\n    width:auto !important;height:auto !important;\n    object-fit:contain !important;border-radius:6px;\n  }\n\n  .cc-close{\n    position:absolute;top:10px;right:10px;\n    background:#fff;border:1px solid #ddd;border-radius:6px;\n    padding:6px 9px;cursor:pointer;font-size:16px;line-height:1;\n    box-shadow:0 2px 6px rgba(0,0,0,.08);\n  }\n  .cc-close:hover{background:#f3f3f3;}\n\n  @media (max-width: 768px){\n    .cc-size-box{ width:95vw !important; max-height:95vh !important; padding:4px !important; }\n    .cc-size-img{ max-height:92vh !important; width:100% !important; }\n    .cc-close{ top:6px; right:6px; }\n  }\n\u003c\/style\u003e\n\n\u003c!-- ===== SCRIPT ===== --\u003e\n\u003cscript\u003e\n(function(){\n  const btn   = document.querySelector('.cc-size-btn');\n  const modal = document.getElementById('cc-size-modal');\n  if(!btn || !modal) return;\n\n  const close  = modal.querySelector('.cc-close');\n  const box    = modal.querySelector('.cc-size-box');\n  const img    = document.getElementById('cc-size-img');\n  const loader = modal.querySelector('.cc-loader');\n\n  function lockScroll(lock){\n    const el = document.documentElement;\n    if(lock){\n      el.style.overflow = 'hidden';\n      el.style.paddingRight = (window.innerWidth - document.documentElement.clientWidth) + 'px';\n    }else{\n      el.style.overflow = '';\n      el.style.paddingRight = '';\n    }\n  }\n\n  function openModal(e){\n    e \u0026\u0026 e.preventDefault();\n    if(modal.showModal){ modal.showModal(); } else { modal.setAttribute('open',''); }\n    lockScroll(true);\n    if(img \u0026\u0026 img.complete \u0026\u0026 img.naturalWidth\u003e0){\n      loader \u0026\u0026 (loader.style.display='none');\n      box \u0026\u0026 (box.hidden=false);\n    }\n  }\n\n  function closeModal(){\n    if(modal.close){ modal.close(); } else { modal.removeAttribute('open'); }\n    lockScroll(false);\n  }\n\n  btn.addEventListener('click', openModal, { passive:true });\n  close.addEventListener('click', closeModal);\n  modal.addEventListener('cancel', e =\u003e { e.preventDefault(); closeModal(); });\n\n  modal.addEventListener('click', e =\u003e {\n    if(!box.contains(e.target)) closeModal();\n  });\n\n  document.addEventListener('keydown', e =\u003e {\n    if(e.key === 'Escape' \u0026\u0026 modal.hasAttribute('open')) closeModal();\n  });\n\n  if(img){\n    img.addEventListener('load', () =\u003e {\n      loader \u0026\u0026 (loader.style.display='none');\n      box \u0026\u0026 (box.hidden=false);\n    });\n    img.addEventListener('error', () =\u003e {\n      loader \u0026\u0026 (loader.style.display='none');\n      box \u0026\u0026 (box.hidden=false);\n      box.innerHTML = '\u003cdiv style=\"padding:24px;text-align:center;color:#444\"\u003eNão foi possível carregar a imagem do guia de tamanhos.\u003c\/div\u003e';\n    });\n  }\n})();\n\u003c\/script\u003e\n","brand":"Castelli","offers":[{"title":"S","offer_id":56456262254974,"sku":"4525510064 S","price":99.9,"currency_code":"EUR","in_stock":false},{"title":"M","offer_id":56456262287742,"sku":"4525510064 M","price":99.9,"currency_code":"EUR","in_stock":false},{"title":"L","offer_id":56456262320510,"sku":"4525510064 L","price":99.9,"currency_code":"EUR","in_stock":false},{"title":"XL","offer_id":56456262353278,"sku":"4525510064 XL","price":99.9,"currency_code":"EUR","in_stock":false},{"title":"2XL","offer_id":56456262386046,"sku":"4525510064 2XL","price":99.9,"currency_code":"EUR","in_stock":false},{"title":"3XL","offer_id":56456262418814,"sku":"4525510064 3XL","price":99.9,"currency_code":"EUR","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0946\/1832\/1278\/files\/167818988524-0.jpg?v=1761318139"},{"product_id":"castelli-apice-thermal-cycling-jersey-fleeced-warm-breathable-comfort","title":"CAMISOLA MANGA COMPRIDA CASTELLI APICE THERMAL CINZA","description":"\u003cdiv class=\"product-description\"\u003e\n  \u003ch2\u003eCASTELLI APICE THERMAL CYCLING JERSEY\u003c\/h2\u003e\n\n  \u003cp\u003e\n    A \u003cstrong\u003eApice Thermal Jersey\u003c\/strong\u003e foi concebida para oferecer \u003cstrong\u003econforto e aquecimento ideais\u003c\/strong\u003e \n    nos dias mais frescos. Combina tecidos técnicos de elevada qualidade com um corte ergonómico, \n    proporcionando uma \u003cstrong\u003egestão térmica e de humidade excecional\u003c\/strong\u003e sem comprometer o desempenho.\n  \u003c\/p\u003e\n\n  \u003cp\u003e\n    O corpo principal utiliza um \u003cstrong\u003etecido 3D knit\u003c\/strong\u003e composto por 93% poliéster e 7% elastano, \n    que \u003cstrong\u003ecria câmaras de ar internas\u003c\/strong\u003e para retenção de calor e excelente controlo da transpiração. \n    As mangas e painéis laterais, em \u003cstrong\u003emalha cardada (fleeced knit)\u003c\/strong\u003e com 20% de elastano, \n    oferecem elasticidade e um ajuste confortável junto ao corpo.\n  \u003c\/p\u003e\n\n  \u003cp\u003e\n    O \u003cstrong\u003efecho YKK® Vislon®\u003c\/strong\u003e desliza suavemente, permitindo uma ventilação precisa, \n    enquanto o \u003cstrong\u003eelástico com grip na cintura\u003c\/strong\u003e mantém a jersey estável durante a pedalada. \n    Três \u003cstrong\u003ebolsos traseiros\u003c\/strong\u003e oferecem espaço suficiente para transportar o essencial. \n    Ideal para quem procura calor, respirabilidade e conforto nas transições entre o outono e o inverno.\n  \u003c\/p\u003e\n\n  \u003ch3\u003eCaracterísticas\u003c\/h3\u003e\n  \u003cul\u003e\n    \u003cli\u003e\n\u003cstrong\u003eAquecimento intermédio\u003c\/strong\u003e com excelente gestão da humidade.\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003eTecido principal 3D knit\u003c\/strong\u003e (93% poliéster \/ 7% elastano) que retém o calor e elimina a humidade.\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003eMangas e painéis laterais\u003c\/strong\u003e em malha cardada (80% poliéster \/ 20% elastano) para ajuste e conforto.\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003eElástico com grip\u003c\/strong\u003e na cintura para estabilidade durante o movimento.\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003e3 bolsos traseiros\u003c\/strong\u003e para armazenamento funcional.\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003eFecho YKK® Vislon®\u003c\/strong\u003e de deslizamento fácil.\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003ePeso:\u003c\/strong\u003e 273 g\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003eTemperatura ideal:\u003c\/strong\u003e 14–18 °C \/ 57–64 °F\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003eFIT:\u003c\/strong\u003e Regular\u003c\/li\u003e\n  \u003c\/ul\u003e\n\u003c\/div\u003e\n\u003c!-- ===== GUIA DE TAMANHOS CASTELLI ===== --\u003e\n\u003cdiv class=\"cc-size-highlight-full\"\u003e\n  \u003ch3\u003e📏 Encontra o Teu Tamanho Ideal\u003c\/h3\u003e\n  \u003cp\u003e\n    Para garantir o melhor ajuste e conforto, mede o perímetro do teu \n    \u003cstrong\u003epeito (A)\u003c\/strong\u003e e da tua \u003cstrong\u003ecintura (B)\u003c\/strong\u003e em centímetros e compara \n    com o guia de tamanhos Castelli abaixo.\n  \u003c\/p\u003e\n\n  \u003cul\u003e\n    \u003cli\u003eMede o \u003cstrong\u003epeito (A)\u003c\/strong\u003e na parte mais larga do tórax, mantendo a fita horizontal e sem apertar.\u003c\/li\u003e\n    \u003cli\u003eMede a \u003cstrong\u003ecintura (B)\u003c\/strong\u003e na zona mais estreita do tronco.\u003c\/li\u003e\n    \u003cli\u003eUsa uma fita métrica flexível, mantendo uma posição natural e relaxada.\u003c\/li\u003e\n    \u003cli\u003eCompara as medidas com a tabela e, se estiveres entre dois tamanhos, considera escolher \n        \u003cstrong\u003eum tamanho acima\u003c\/strong\u003e, conforme a recomendação da Castelli para maior conforto.\u003c\/li\u003e\n  \u003c\/ul\u003e\n\n  \u003cbutton class=\"cc-size-btn\" type=\"button\" aria-haspopup=\"dialog\" aria-controls=\"cc-size-modal\"\u003e\n    Calcule o seu tamanho\n  \u003c\/button\u003e\n\u003c\/div\u003e\n\n\u003c!-- ===== MODAL ===== --\u003e\n\u003cdialog id=\"cc-size-modal\" class=\"cc-size-modal\" aria-label=\"Guia de tamanhos\"\u003e\n  \u003cbutton class=\"cc-close\" aria-label=\"Fechar\"\u003e✕\u003c\/button\u003e\n  \u003cdiv class=\"cc-loader\" aria-hidden=\"true\"\u003e\u003c\/div\u003e\n  \u003cdiv class=\"cc-size-box\" hidden\u003e\n    \u003cimg id=\"cc-size-img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0946\/1832\/1278\/files\/Size_Chart_Castelli_Men_2.0.png?v=1761056363\" alt=\"Guia de tamanhos Castelli\" loading=\"eager\" decoding=\"sync\"\u003e\n  \u003c\/div\u003e\n\u003c\/dialog\u003e\n\n\u003c!-- ===== STYLE ===== --\u003e\n\u003cstyle\u003e\n  .product-description {\n    font-family: Arial, Helvetica, sans-serif;\n    color: #222;\n    line-height: 1.6;\n    font-size: 15px;\n  }\n  .product-description h2 {\n    font-size: 22px;\n    text-transform: uppercase;\n    letter-spacing: .5px;\n    color: #111;\n    margin-bottom: 10px;\n  }\n\n  \/* Caixa do guia *\/\n  .cc-size-highlight-full{\n    background:#f9f9f9;border:1px solid #e2e2e2;border-radius:10px;\n    padding:20px 24px;margin-top:20px;\n    font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;\n    box-shadow:0 2px 8px rgba(0,0,0,0.04);\n  }\n  .cc-size-highlight-full h3{font-size:18px;margin:0 0 10px;color:#111;}\n  .cc-size-highlight-full p{font-size:15px;margin:0 0 10px;color:#333;}\n  .cc-size-highlight-full ul{margin:0 0 15px 20px;padding:0;}\n  .cc-size-highlight-full li{margin-bottom:5px;font-size:15px;color:#333;}\n\n  \/* Botão *\/\n  .cc-size-btn{\n    display:inline-flex;align-items:center;gap:.5rem;\n    background:#000;color:#fff;border:none;border-radius:6px;\n    padding:10px 16px;font-size:14px;font-weight:500;cursor:pointer;\n    transition:transform .2s ease-in-out, background .2s ease-in-out;\n  }\n  .cc-size-btn:hover{background:#222;transform:translateY(-1px);}\n\n  \/* ===== MODAL: reset do tema + centrado real ===== *\/\n  .cc-size-modal{\n    position: fixed !important;\n    inset: 0 !important;\n    background: transparent !important;\n    border: 0 !important;\n    margin: 0 !important;\n    padding: 0 !important;\n    max-width: none !important;\n    width: 100vw !important;\n    height: 100vh !important;\n    display: none;\n    align-items: center !important;\n    justify-content: center !important;\n    z-index: 99999 !important;\n  }\n  .cc-size-modal[open]{ display:flex; }\n  .cc-size-modal::backdrop{ background: rgba(0,0,0,.6) !important; }\n\n  .cc-size-box{\n    position: relative;\n    box-sizing: border-box;\n    background: #fff;\n    border: 1px solid #e9e9e9;\n    border-radius: 10px;\n    box-shadow: 0 10px 25px rgba(0,0,0,.25);\n    padding: 8px;\n    overflow: hidden;\n    width: min(85vw, 1200px) !important;\n    max-height: 88vh !important;\n    display: flex;align-items:center;justify-content:center;\n  }\n  .cc-size-img{\n    display:block;\n    max-width:100% !important;\n    max-height:84vh !important;\n    width:auto !important;height:auto !important;\n    object-fit:contain !important;border-radius:6px;\n  }\n\n  .cc-close{\n    position:absolute;top:10px;right:10px;\n    background:#fff;border:1px solid #ddd;border-radius:6px;\n    padding:6px 9px;cursor:pointer;font-size:16px;line-height:1;\n    box-shadow:0 2px 6px rgba(0,0,0,.08);\n  }\n  .cc-close:hover{background:#f3f3f3;}\n\n  @media (max-width: 768px){\n    .cc-size-box{ width:95vw !important; max-height:95vh !important; padding:4px !important; }\n    .cc-size-img{ max-height:92vh !important; width:100% !important; }\n    .cc-close{ top:6px; right:6px; }\n  }\n\u003c\/style\u003e\n\n\u003c!-- ===== SCRIPT ===== --\u003e\n\u003cscript\u003e\n(function(){\n  const btn   = document.querySelector('.cc-size-btn');\n  const modal = document.getElementById('cc-size-modal');\n  if(!btn || !modal) return;\n\n  const close  = modal.querySelector('.cc-close');\n  const box    = modal.querySelector('.cc-size-box');\n  const img    = document.getElementById('cc-size-img');\n  const loader = modal.querySelector('.cc-loader');\n\n  function lockScroll(lock){\n    const el = document.documentElement;\n    if(lock){\n      el.style.overflow = 'hidden';\n      el.style.paddingRight = (window.innerWidth - document.documentElement.clientWidth) + 'px';\n    }else{\n      el.style.overflow = '';\n      el.style.paddingRight = '';\n    }\n  }\n\n  function openModal(e){\n    e \u0026\u0026 e.preventDefault();\n    if(modal.showModal){ modal.showModal(); } else { modal.setAttribute('open',''); }\n    lockScroll(true);\n    if(img \u0026\u0026 img.complete \u0026\u0026 img.naturalWidth\u003e0){\n      loader \u0026\u0026 (loader.style.display='none');\n      box \u0026\u0026 (box.hidden=false);\n    }\n  }\n\n  function closeModal(){\n    if(modal.close){ modal.close(); } else { modal.removeAttribute('open'); }\n    lockScroll(false);\n  }\n\n  btn.addEventListener('click', openModal, { passive:true });\n  close.addEventListener('click', closeModal);\n  modal.addEventListener('cancel', e =\u003e { e.preventDefault(); closeModal(); });\n\n  modal.addEventListener('click', e =\u003e {\n    if(!box.contains(e.target)) closeModal();\n  });\n\n  document.addEventListener('keydown', e =\u003e {\n    if(e.key === 'Escape' \u0026\u0026 modal.hasAttribute('open')) closeModal();\n  });\n\n  if(img){\n    img.addEventListener('load', () =\u003e {\n      loader \u0026\u0026 (loader.style.display='none');\n      box \u0026\u0026 (box.hidden=false);\n    });\n    img.addEventListener('error', () =\u003e {\n      loader \u0026\u0026 (loader.style.display='none');\n      box \u0026\u0026 (box.hidden=false);\n      box.innerHTML = '\u003cdiv style=\"padding:24px;text-align:center;color:#444\"\u003eNão foi possível carregar a imagem do guia de tamanhos.\u003c\/div\u003e';\n    });\n  }\n})();\n\u003c\/script\u003e\n","brand":"CDCSPORT","offers":[{"title":"S","offer_id":56456263008638,"sku":"4525556645 S-7","price":150.0,"currency_code":"EUR","in_stock":false},{"title":"M","offer_id":56456263041406,"sku":"4525556645 M-7","price":150.0,"currency_code":"EUR","in_stock":false},{"title":"L","offer_id":56456263074174,"sku":"4525556645 L-7","price":150.0,"currency_code":"EUR","in_stock":false},{"title":"XL","offer_id":56456263106942,"sku":"4525556645 XL-7","price":150.0,"currency_code":"EUR","in_stock":false},{"title":"2XL","offer_id":56456263139710,"sku":"4525556645 2XL-7","price":150.0,"currency_code":"EUR","in_stock":false},{"title":"3XL","offer_id":56456263172478,"sku":"4525556645 3XL-7","price":150.0,"currency_code":"EUR","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0946\/1832\/1278\/files\/167818208267-0.jpg?v=1761318147"},{"product_id":"castelli-apice-thermal-cycling-jersey-fleeced-warm-breathable-comfort-1","title":"CAMISOLA MANGA COMPRIDA CASTELLI APICE THERMAL VERDE","description":"\u003cdiv class=\"product-description\"\u003e\n  \u003ch2\u003eCASTELLI APICE THERMAL CYCLING JERSEY\u003c\/h2\u003e\n\n  \u003cp\u003e\n    A \u003cstrong\u003eApice Thermal Jersey\u003c\/strong\u003e foi concebida para oferecer \u003cstrong\u003econforto e aquecimento ideais\u003c\/strong\u003e \n    nos dias mais frescos. Combina tecidos técnicos de elevada qualidade com um corte ergonómico, \n    proporcionando uma \u003cstrong\u003egestão térmica e de humidade excecional\u003c\/strong\u003e sem comprometer o desempenho.\n  \u003c\/p\u003e\n\n  \u003cp\u003e\n    O corpo principal utiliza um \u003cstrong\u003etecido 3D knit\u003c\/strong\u003e composto por 93% poliéster e 7% elastano, \n    que \u003cstrong\u003ecria câmaras de ar internas\u003c\/strong\u003e para retenção de calor e excelente controlo da transpiração. \n    As mangas e painéis laterais, em \u003cstrong\u003emalha cardada (fleeced knit)\u003c\/strong\u003e com 20% de elastano, \n    oferecem elasticidade e um ajuste confortável junto ao corpo.\n  \u003c\/p\u003e\n\n  \u003cp\u003e\n    O \u003cstrong\u003efecho YKK® Vislon®\u003c\/strong\u003e desliza suavemente, permitindo uma ventilação precisa, \n    enquanto o \u003cstrong\u003eelástico com grip na cintura\u003c\/strong\u003e mantém a jersey estável durante a pedalada. \n    Três \u003cstrong\u003ebolsos traseiros\u003c\/strong\u003e oferecem espaço suficiente para transportar o essencial. \n    Ideal para quem procura calor, respirabilidade e conforto nas transições entre o outono e o inverno.\n  \u003c\/p\u003e\n\n  \u003ch3\u003eCaracterísticas\u003c\/h3\u003e\n  \u003cul\u003e\n    \u003cli\u003e\n\u003cstrong\u003eAquecimento intermédio\u003c\/strong\u003e com excelente gestão da humidade.\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003eTecido principal 3D knit\u003c\/strong\u003e (93% poliéster \/ 7% elastano) que retém o calor e elimina a humidade.\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003eMangas e painéis laterais\u003c\/strong\u003e em malha cardada (80% poliéster \/ 20% elastano) para ajuste e conforto.\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003eElástico com grip\u003c\/strong\u003e na cintura para estabilidade durante o movimento.\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003e3 bolsos traseiros\u003c\/strong\u003e para armazenamento funcional.\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003eFecho YKK® Vislon®\u003c\/strong\u003e de deslizamento fácil.\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003ePeso:\u003c\/strong\u003e 273 g\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003eTemperatura ideal:\u003c\/strong\u003e 14–18 °C \/ 57–64 °F\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003eFIT:\u003c\/strong\u003e Regular\u003c\/li\u003e\n  \u003c\/ul\u003e\n\u003c\/div\u003e\n\u003c!-- ===== GUIA DE TAMANHOS CASTELLI ===== --\u003e\n\u003cdiv class=\"cc-size-highlight-full\"\u003e\n  \u003ch3\u003e📏 Encontra o Teu Tamanho Ideal\u003c\/h3\u003e\n  \u003cp\u003e\n    Para garantir o melhor ajuste e conforto, mede o perímetro do teu \n    \u003cstrong\u003epeito (A)\u003c\/strong\u003e e da tua \u003cstrong\u003ecintura (B)\u003c\/strong\u003e em centímetros e compara \n    com o guia de tamanhos Castelli abaixo.\n  \u003c\/p\u003e\n\n  \u003cul\u003e\n    \u003cli\u003eMede o \u003cstrong\u003epeito (A)\u003c\/strong\u003e na parte mais larga do tórax, mantendo a fita horizontal e sem apertar.\u003c\/li\u003e\n    \u003cli\u003eMede a \u003cstrong\u003ecintura (B)\u003c\/strong\u003e na zona mais estreita do tronco.\u003c\/li\u003e\n    \u003cli\u003eUsa uma fita métrica flexível, mantendo uma posição natural e relaxada.\u003c\/li\u003e\n    \u003cli\u003eCompara as medidas com a tabela e, se estiveres entre dois tamanhos, considera escolher \n        \u003cstrong\u003eum tamanho acima\u003c\/strong\u003e, conforme a recomendação da Castelli para maior conforto.\u003c\/li\u003e\n  \u003c\/ul\u003e\n\n  \u003cbutton class=\"cc-size-btn\" type=\"button\" aria-haspopup=\"dialog\" aria-controls=\"cc-size-modal\"\u003e\n    Calcule o seu tamanho\n  \u003c\/button\u003e\n\u003c\/div\u003e\n\n\u003c!-- ===== MODAL ===== --\u003e\n\u003cdialog id=\"cc-size-modal\" class=\"cc-size-modal\" aria-label=\"Guia de tamanhos\"\u003e\n  \u003cbutton class=\"cc-close\" aria-label=\"Fechar\"\u003e✕\u003c\/button\u003e\n  \u003cdiv class=\"cc-loader\" aria-hidden=\"true\"\u003e\u003c\/div\u003e\n  \u003cdiv class=\"cc-size-box\" hidden\u003e\n    \u003cimg id=\"cc-size-img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0946\/1832\/1278\/files\/Size_Chart_Castelli_Men_2.0.png?v=1761056363\" alt=\"Guia de tamanhos Castelli\" loading=\"eager\" decoding=\"sync\"\u003e\n  \u003c\/div\u003e\n\u003c\/dialog\u003e\n\n\u003c!-- ===== STYLE ===== --\u003e\n\u003cstyle\u003e\n  .product-description {\n    font-family: Arial, Helvetica, sans-serif;\n    color: #222;\n    line-height: 1.6;\n    font-size: 15px;\n  }\n  .product-description h2 {\n    font-size: 22px;\n    text-transform: uppercase;\n    letter-spacing: .5px;\n    color: #111;\n    margin-bottom: 10px;\n  }\n\n  \/* Caixa do guia *\/\n  .cc-size-highlight-full{\n    background:#f9f9f9;border:1px solid #e2e2e2;border-radius:10px;\n    padding:20px 24px;margin-top:20px;\n    font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;\n    box-shadow:0 2px 8px rgba(0,0,0,0.04);\n  }\n  .cc-size-highlight-full h3{font-size:18px;margin:0 0 10px;color:#111;}\n  .cc-size-highlight-full p{font-size:15px;margin:0 0 10px;color:#333;}\n  .cc-size-highlight-full ul{margin:0 0 15px 20px;padding:0;}\n  .cc-size-highlight-full li{margin-bottom:5px;font-size:15px;color:#333;}\n\n  \/* Botão *\/\n  .cc-size-btn{\n    display:inline-flex;align-items:center;gap:.5rem;\n    background:#000;color:#fff;border:none;border-radius:6px;\n    padding:10px 16px;font-size:14px;font-weight:500;cursor:pointer;\n    transition:transform .2s ease-in-out, background .2s ease-in-out;\n  }\n  .cc-size-btn:hover{background:#222;transform:translateY(-1px);}\n\n  \/* ===== MODAL: reset do tema + centrado real ===== *\/\n  .cc-size-modal{\n    position: fixed !important;\n    inset: 0 !important;\n    background: transparent !important;\n    border: 0 !important;\n    margin: 0 !important;\n    padding: 0 !important;\n    max-width: none !important;\n    width: 100vw !important;\n    height: 100vh !important;\n    display: none;\n    align-items: center !important;\n    justify-content: center !important;\n    z-index: 99999 !important;\n  }\n  .cc-size-modal[open]{ display:flex; }\n  .cc-size-modal::backdrop{ background: rgba(0,0,0,.6) !important; }\n\n  .cc-size-box{\n    position: relative;\n    box-sizing: border-box;\n    background: #fff;\n    border: 1px solid #e9e9e9;\n    border-radius: 10px;\n    box-shadow: 0 10px 25px rgba(0,0,0,.25);\n    padding: 8px;\n    overflow: hidden;\n    width: min(85vw, 1200px) !important;\n    max-height: 88vh !important;\n    display: flex;align-items:center;justify-content:center;\n  }\n  .cc-size-img{\n    display:block;\n    max-width:100% !important;\n    max-height:84vh !important;\n    width:auto !important;height:auto !important;\n    object-fit:contain !important;border-radius:6px;\n  }\n\n  .cc-close{\n    position:absolute;top:10px;right:10px;\n    background:#fff;border:1px solid #ddd;border-radius:6px;\n    padding:6px 9px;cursor:pointer;font-size:16px;line-height:1;\n    box-shadow:0 2px 6px rgba(0,0,0,.08);\n  }\n  .cc-close:hover{background:#f3f3f3;}\n\n  @media (max-width: 768px){\n    .cc-size-box{ width:95vw !important; max-height:95vh !important; padding:4px !important; }\n    .cc-size-img{ max-height:92vh !important; width:100% !important; }\n    .cc-close{ top:6px; right:6px; }\n  }\n\u003c\/style\u003e\n\n\u003c!-- ===== SCRIPT ===== --\u003e\n\u003cscript\u003e\n(function(){\n  const btn   = document.querySelector('.cc-size-btn');\n  const modal = document.getElementById('cc-size-modal');\n  if(!btn || !modal) return;\n\n  const close  = modal.querySelector('.cc-close');\n  const box    = modal.querySelector('.cc-size-box');\n  const img    = document.getElementById('cc-size-img');\n  const loader = modal.querySelector('.cc-loader');\n\n  function lockScroll(lock){\n    const el = document.documentElement;\n    if(lock){\n      el.style.overflow = 'hidden';\n      el.style.paddingRight = (window.innerWidth - document.documentElement.clientWidth) + 'px';\n    }else{\n      el.style.overflow = '';\n      el.style.paddingRight = '';\n    }\n  }\n\n  function openModal(e){\n    e \u0026\u0026 e.preventDefault();\n    if(modal.showModal){ modal.showModal(); } else { modal.setAttribute('open',''); }\n    lockScroll(true);\n    if(img \u0026\u0026 img.complete \u0026\u0026 img.naturalWidth\u003e0){\n      loader \u0026\u0026 (loader.style.display='none');\n      box \u0026\u0026 (box.hidden=false);\n    }\n  }\n\n  function closeModal(){\n    if(modal.close){ modal.close(); } else { modal.removeAttribute('open'); }\n    lockScroll(false);\n  }\n\n  btn.addEventListener('click', openModal, { passive:true });\n  close.addEventListener('click', closeModal);\n  modal.addEventListener('cancel', e =\u003e { e.preventDefault(); closeModal(); });\n\n  modal.addEventListener('click', e =\u003e {\n    if(!box.contains(e.target)) closeModal();\n  });\n\n  document.addEventListener('keydown', e =\u003e {\n    if(e.key === 'Escape' \u0026\u0026 modal.hasAttribute('open')) closeModal();\n  });\n\n  if(img){\n    img.addEventListener('load', () =\u003e {\n      loader \u0026\u0026 (loader.style.display='none');\n      box \u0026\u0026 (box.hidden=false);\n    });\n    img.addEventListener('error', () =\u003e {\n      loader \u0026\u0026 (loader.style.display='none');\n      box \u0026\u0026 (box.hidden=false);\n      box.innerHTML = '\u003cdiv style=\"padding:24px;text-align:center;color:#444\"\u003eNão foi possível carregar a imagem do guia de tamanhos.\u003c\/div\u003e';\n    });\n  }\n})();\n\u003c\/script\u003e\n","brand":"CDCSPORT","offers":[{"title":"S","offer_id":56456263270782,"sku":"4525556645 S-8","price":150.0,"currency_code":"EUR","in_stock":false},{"title":"M","offer_id":56456263303550,"sku":"4525556645 M-8","price":150.0,"currency_code":"EUR","in_stock":false},{"title":"L","offer_id":56456263336318,"sku":"4525556645 L-8","price":150.0,"currency_code":"EUR","in_stock":true},{"title":"XL","offer_id":56456263369086,"sku":"4525556645 XL-8","price":150.0,"currency_code":"EUR","in_stock":true},{"title":"2XL","offer_id":56456263401854,"sku":"4525556645 2XL-8","price":150.0,"currency_code":"EUR","in_stock":false},{"title":"3XL","offer_id":56456263434622,"sku":"4525556645 3XL-8","price":150.0,"currency_code":"EUR","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0946\/1832\/1278\/files\/167818211424-0.jpg?v=1761318149"},{"product_id":"castelli-fly-ls-cycling-jersey-lightweight-thermal-breathable","title":"CAMISOLA MANGA COMPRIDA CASTELLI FLY PRETO","description":"\u003cdiv class=\"product-description\"\u003e\n  \u003ch2\u003eCASTELLI FLY LS CYCLING JERSEY\u003c\/h2\u003e\n\n  \u003cp\u003e\n    A \u003cstrong\u003eFly LS Jersey\u003c\/strong\u003e é uma camisola térmica de manga comprida ultraleve, \n    ideal para os dias ligeiramente frios em que procuras \u003cstrong\u003evelocidade e liberdade de movimento\u003c\/strong\u003e. \n    O tecido \u003cstrong\u003eFly T-SL\u003c\/strong\u003e escovado e macio oferece o equilíbrio certo entre calor, elasticidade e leveza, \n    garantindo um ajuste justo ao corpo.\n  \u003c\/p\u003e\n\n  \u003cp\u003e\n    Inspirada nas camisolas aerodinâmicas de verão, apresenta \u003cstrong\u003egola baixa\u003c\/strong\u003e para regulação térmica \n    e um \u003cstrong\u003ecorte próximo do corpo\u003c\/strong\u003e que favorece o desempenho e a eficiência. \n    Perfeita para as transições de estação, do verão ao outono e inverno leve.\n  \u003c\/p\u003e\n\n  \u003cp\u003e\n    Inclui \u003cstrong\u003etrês bolsos traseiros\u003c\/strong\u003e para armazenamento e um \u003cstrong\u003ebolso adicional com fecho\u003c\/strong\u003e \n    para objetos de valor. O \u003cstrong\u003eelástico com silicone\u003c\/strong\u003e na cintura mantém a camisola estável durante a pedalada, \n    e os \u003cstrong\u003edetalhes refletores\u003c\/strong\u003e aumentam a visibilidade em condições de pouca luz.\n  \u003c\/p\u003e\n\n  \u003ch3\u003eCaracterísticas\u003c\/h3\u003e\n  \u003cul\u003e\n    \u003cli\u003e\n\u003cstrong\u003eConstrução ultraleve\u003c\/strong\u003e com calor equilibrado para dias frescos.\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003eGola baixa\u003c\/strong\u003e para regulação da temperatura.\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003eCastelli FLY Fabric Technologies: FFT\u003c\/strong\u003e com tecido \u003cstrong\u003eFly T-SL\u003c\/strong\u003e.\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003eFecho YKK® Vislon®\u003c\/strong\u003e de deslizamento fácil.\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003e3 bolsos traseiros\u003c\/strong\u003e + \u003cstrong\u003e1 bolso com fecho\u003c\/strong\u003e para segurança adicional.\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003eElástico com silicone\u003c\/strong\u003e na cintura para manter a camisola no lugar.\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003eAba refletora\u003c\/strong\u003e nos bolsos traseiros para visibilidade.\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003ePeso:\u003c\/strong\u003e 344 g\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003eTemperatura ideal:\u003c\/strong\u003e 12–18 °C \/ 54–64 °F\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003eFIT:\u003c\/strong\u003e Tailored\u003c\/li\u003e\n  \u003c\/ul\u003e\n\u003c\/div\u003e\n\n\u003c!-- ===== GUIA DE TAMANHOS CASTELLI ===== --\u003e\n\u003cdiv class=\"cc-size-highlight-full\"\u003e\n  \u003ch3\u003e📏 Encontra o Teu Tamanho Ideal\u003c\/h3\u003e\n  \u003cp\u003e\n    Para garantir o melhor ajuste e conforto, mede o perímetro do teu \n    \u003cstrong\u003epeito (A)\u003c\/strong\u003e e da tua \u003cstrong\u003ecintura (B)\u003c\/strong\u003e em centímetros e compara \n    com o guia de tamanhos Castelli abaixo.\n  \u003c\/p\u003e\n\n  \u003cul\u003e\n    \u003cli\u003eMede o \u003cstrong\u003epeito (A)\u003c\/strong\u003e na parte mais larga do tórax, mantendo a fita horizontal e sem apertar.\u003c\/li\u003e\n    \u003cli\u003eMede a \u003cstrong\u003ecintura (B)\u003c\/strong\u003e na zona mais estreita do tronco.\u003c\/li\u003e\n    \u003cli\u003eUsa uma fita métrica flexível, mantendo uma posição natural e relaxada.\u003c\/li\u003e\n    \u003cli\u003eCompara as medidas com a tabela e, se estiveres entre dois tamanhos, considera escolher \n        \u003cstrong\u003eum tamanho acima\u003c\/strong\u003e, conforme a recomendação da Castelli para maior conforto.\u003c\/li\u003e\n  \u003c\/ul\u003e\n\n  \u003cbutton class=\"cc-size-btn\" type=\"button\" aria-haspopup=\"dialog\" aria-controls=\"cc-size-modal\"\u003e\n    Calcule o seu tamanho\n  \u003c\/button\u003e\n\u003c\/div\u003e\n\n\u003c!-- ===== MODAL ===== --\u003e\n\u003cdialog id=\"cc-size-modal\" class=\"cc-size-modal\" aria-label=\"Guia de tamanhos\"\u003e\n  \u003cbutton class=\"cc-close\" aria-label=\"Fechar\"\u003e✕\u003c\/button\u003e\n  \u003cdiv class=\"cc-loader\" aria-hidden=\"true\"\u003e\u003c\/div\u003e\n  \u003cdiv class=\"cc-size-box\" hidden\u003e\n    \u003cimg id=\"cc-size-img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0946\/1832\/1278\/files\/Size_Chart_Castelli_Men_2.0.png?v=1761056363\" alt=\"Guia de tamanhos Castelli\" loading=\"eager\" decoding=\"sync\"\u003e\n  \u003c\/div\u003e\n\u003c\/dialog\u003e\n\n\u003c!-- ===== STYLE ===== --\u003e\n\u003cstyle\u003e\n  .product-description {\n    font-family: Arial, Helvetica, sans-serif;\n    color: #222;\n    line-height: 1.6;\n    font-size: 15px;\n  }\n  .product-description h2 {\n    font-size: 22px;\n    text-transform: uppercase;\n    letter-spacing: .5px;\n    color: #111;\n    margin-bottom: 10px;\n  }\n\n  \/* Caixa do guia *\/\n  .cc-size-highlight-full{\n    background:#f9f9f9;border:1px solid #e2e2e2;border-radius:10px;\n    padding:20px 24px;margin-top:20px;\n    font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;\n    box-shadow:0 2px 8px rgba(0,0,0,0.04);\n  }\n  .cc-size-highlight-full h3{font-size:18px;margin:0 0 10px;color:#111;}\n  .cc-size-highlight-full p{font-size:15px;margin:0 0 10px;color:#333;}\n  .cc-size-highlight-full ul{margin:0 0 15px 20px;padding:0;}\n  .cc-size-highlight-full li{margin-bottom:5px;font-size:15px;color:#333;}\n\n  \/* Botão *\/\n  .cc-size-btn{\n    display:inline-flex;align-items:center;gap:.5rem;\n    background:#000;color:#fff;border:none;border-radius:6px;\n    padding:10px 16px;font-size:14px;font-weight:500;cursor:pointer;\n    transition:transform .2s ease-in-out, background .2s ease-in-out;\n  }\n  .cc-size-btn:hover{background:#222;transform:translateY(-1px);}\n\n  \/* ===== MODAL: reset do tema + centrado real ===== *\/\n  .cc-size-modal{\n    position: fixed !important;\n    inset: 0 !important;\n    background: transparent !important;\n    border: 0 !important;\n    margin: 0 !important;\n    padding: 0 !important;\n    max-width: none !important;\n    width: 100vw !important;\n    height: 100vh !important;\n    display: none;\n    align-items: center !important;\n    justify-content: center !important;\n    z-index: 99999 !important;\n  }\n  .cc-size-modal[open]{ display:flex; }\n  .cc-size-modal::backdrop{ background: rgba(0,0,0,.6) !important; }\n\n  .cc-size-box{\n    position: relative;\n    box-sizing: border-box;\n    background: #fff;\n    border: 1px solid #e9e9e9;\n    border-radius: 10px;\n    box-shadow: 0 10px 25px rgba(0,0,0,.25);\n    padding: 8px;\n    overflow: hidden;\n    width: min(85vw, 1200px) !important;\n    max-height: 88vh !important;\n    display: flex;align-items:center;justify-content:center;\n  }\n  .cc-size-img{\n    display:block;\n    max-width:100% !important;\n    max-height:84vh !important;\n    width:auto !important;height:auto !important;\n    object-fit:contain !important;border-radius:6px;\n  }\n\n  .cc-close{\n    position:absolute;top:10px;right:10px;\n    background:#fff;border:1px solid #ddd;border-radius:6px;\n    padding:6px 9px;cursor:pointer;font-size:16px;line-height:1;\n    box-shadow:0 2px 6px rgba(0,0,0,.08);\n  }\n  .cc-close:hover{background:#f3f3f3;}\n\n  @media (max-width: 768px){\n    .cc-size-box{ width:95vw !important; max-height:95vh !important; padding:4px !important; }\n    .cc-size-img{ max-height:92vh !important; width:100% !important; }\n    .cc-close{ top:6px; right:6px; }\n  }\n\u003c\/style\u003e\n\n\u003c!-- ===== SCRIPT ===== --\u003e\n\u003cscript\u003e\n(function(){\n  const btn   = document.querySelector('.cc-size-btn');\n  const modal = document.getElementById('cc-size-modal');\n  if(!btn || !modal) return;\n\n  const close  = modal.querySelector('.cc-close');\n  const box    = modal.querySelector('.cc-size-box');\n  const img    = document.getElementById('cc-size-img');\n  const loader = modal.querySelector('.cc-loader');\n\n  function lockScroll(lock){\n    const el = document.documentElement;\n    if(lock){\n      el.style.overflow = 'hidden';\n      el.style.paddingRight = (window.innerWidth - document.documentElement.clientWidth) + 'px';\n    }else{\n      el.style.overflow = '';\n      el.style.paddingRight = '';\n    }\n  }\n\n  function openModal(e){\n    e \u0026\u0026 e.preventDefault();\n    if(modal.showModal){ modal.showModal(); } else { modal.setAttribute('open',''); }\n    lockScroll(true);\n    if(img \u0026\u0026 img.complete \u0026\u0026 img.naturalWidth\u003e0){\n      loader \u0026\u0026 (loader.style.display='none');\n      box \u0026\u0026 (box.hidden=false);\n    }\n  }\n\n  function closeModal(){\n    if(modal.close){ modal.close(); } else { modal.removeAttribute('open'); }\n    lockScroll(false);\n  }\n\n  btn.addEventListener('click', openModal, { passive:true });\n  close.addEventListener('click', closeModal);\n  modal.addEventListener('cancel', e =\u003e { e.preventDefault(); closeModal(); });\n\n  modal.addEventListener('click', e =\u003e {\n    if(!box.contains(e.target)) closeModal();\n  });\n\n  document.addEventListener('keydown', e =\u003e {\n    if(e.key === 'Escape' \u0026\u0026 modal.hasAttribute('open')) closeModal();\n  });\n\n  if(img){\n    img.addEventListener('load', () =\u003e {\n      loader \u0026\u0026 (loader.style.display='none');\n      box \u0026\u0026 (box.hidden=false);\n    });\n    img.addEventListener('error', () =\u003e {\n      loader \u0026\u0026 (loader.style.display='none');\n      box \u0026\u0026 (box.hidden=false);\n      box.innerHTML = '\u003cdiv style=\"padding:24px;text-align:center;color:#444\"\u003eNão foi possível carregar a imagem do guia de tamanhos.\u003c\/div\u003e';\n    });\n  }\n})();\n\u003c\/script\u003e\n","brand":"Castelli","offers":[{"title":"S","offer_id":56456273625470,"sku":"4523511085-S","price":99.9,"currency_code":"EUR","in_stock":false},{"title":"M","offer_id":56456273658238,"sku":"4523511085-M","price":99.9,"currency_code":"EUR","in_stock":false},{"title":"L","offer_id":56456273691006,"sku":"4523511085-L","price":99.9,"currency_code":"EUR","in_stock":false},{"title":"XL","offer_id":56456273723774,"sku":"4523511085-XL","price":99.9,"currency_code":"EUR","in_stock":false},{"title":"2XL","offer_id":56456273756542,"sku":"4523511085-2XL","price":99.9,"currency_code":"EUR","in_stock":false},{"title":"3XL","offer_id":56456273789310,"sku":"4523511085-3XL","price":99.9,"currency_code":"EUR","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0946\/1832\/1278\/files\/167879952514-0.jpg?v=1761318250"},{"product_id":"castelli-puro-4-cycling-thermal-jersey-breathable-lightweight-reflective-1","title":"CAMISOLA MANGA COMPRIDA CASTELLI PURO 4 PRETO","description":"\u003cdiv class=\"product-description\"\u003e\n  \u003ch2\u003eCASTELLI PURO 4 CYCLING JERSEY\u003c\/h2\u003e\n\n  \u003cp\u003e\n    A \u003cstrong\u003eCastelli Puro 4 Jersey\u003c\/strong\u003e foi desenhada para proporcionar o \u003cstrong\u003eequilíbrio perfeito entre aquecimento, conforto e respirabilidade\u003c\/strong\u003e \n    em dias frescos de outono ou primavera.  \n    Oferece um \u003cstrong\u003eajuste justo ao corpo\u003c\/strong\u003e com elevada elasticidade e \u003cstrong\u003evisibilidade a 360°\u003c\/strong\u003e, \n    ideal para ciclistas que procuram desempenho e segurança.\n  \u003c\/p\u003e\n\n  \u003cp\u003e\n    O tecido italiano em \u003cstrong\u003emalha 3D (93% poliéster \/ 7% elastano)\u003c\/strong\u003e cria \u003cstrong\u003ebolsas de ar internas\u003c\/strong\u003e \n    que aumentam o isolamento térmico sem comprometer a leveza.  \n    O toque suave e a elasticidade garantem conforto durante todo o percurso, mesmo nas longas horas de treino.  \n    Graças à sua gestão de humidade superior, mantém o corpo seco e regulado termicamente.\n  \u003c\/p\u003e\n\n  \u003cp\u003e\n    Os \u003cstrong\u003epainéis refletivos nos ombros\u003c\/strong\u003e e os \u003cstrong\u003edetalhes térmicos refletivos nos bolsos\u003c\/strong\u003e \n    aumentam a visibilidade em todas as direções.  \n    O \u003cstrong\u003efecho YKK® Vislon®\u003c\/strong\u003e desliza facilmente, permitindo ajustar a ventilação em andamento, \n    enquanto o \u003cstrong\u003egrip elástico na cintura\u003c\/strong\u003e mantém a jersey firme e bem posicionada.\n  \u003c\/p\u003e\n\n  \u003cp\u003e\n    Leve, versátil e elegante, a Puro 4 é a escolha certa para quem quer uma jersey limpa em design, \n    funcional em cada detalhe e eficaz na regulação térmica.\n  \u003c\/p\u003e\n\n  \u003ch3\u003eCaracterísticas\u003c\/h3\u003e\n  \u003cul\u003e\n    \u003cli\u003e\n\u003cstrong\u003eAquecimento intermédio\u003c\/strong\u003e ideal para temperaturas amenas.\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003eTecido 3D knit\u003c\/strong\u003e (93% poliéster \/ 7% elastano) com isolamento superior e excelente gestão de humidade.\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003eElasticidade elevada\u003c\/strong\u003e para um ajuste justo sem compressão.\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003ePainéis refletivos\u003c\/strong\u003e nos ombros e \u003cstrong\u003edetalhes refletivos\u003c\/strong\u003e nos bolsos para visibilidade a 360°.\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003eElástico com grip\u003c\/strong\u003e na cintura para estabilidade.\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003e3 bolsos traseiros\u003c\/strong\u003e funcionais.\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003eFecho YKK® Vislon®\u003c\/strong\u003e de deslizamento fácil.\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003ePeso:\u003c\/strong\u003e 285 g\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003eTemperatura ideal:\u003c\/strong\u003e 12–18 °C \/ 54–64 °F\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003eFIT:\u003c\/strong\u003e Tailored\u003c\/li\u003e\n  \u003c\/ul\u003e\n\u003c\/div\u003e\n\u003c!-- ===== GUIA DE TAMANHOS CASTELLI ===== --\u003e\n\u003cdiv class=\"cc-size-highlight-full\"\u003e\n  \u003ch3\u003e📏 Encontra o Teu Tamanho Ideal\u003c\/h3\u003e\n  \u003cp\u003e\n    Para garantir o melhor ajuste e conforto, mede o perímetro do teu \n    \u003cstrong\u003epeito (A)\u003c\/strong\u003e e da tua \u003cstrong\u003ecintura (B)\u003c\/strong\u003e em centímetros e compara \n    com o guia de tamanhos Castelli abaixo.\n  \u003c\/p\u003e\n\n  \u003cul\u003e\n    \u003cli\u003eMede o \u003cstrong\u003epeito (A)\u003c\/strong\u003e na parte mais larga do tórax, mantendo a fita horizontal e sem apertar.\u003c\/li\u003e\n    \u003cli\u003eMede a \u003cstrong\u003ecintura (B)\u003c\/strong\u003e na zona mais estreita do tronco.\u003c\/li\u003e\n    \u003cli\u003eUsa uma fita métrica flexível, mantendo uma posição natural e relaxada.\u003c\/li\u003e\n    \u003cli\u003eCompara as medidas com a tabela e, se estiveres entre dois tamanhos, considera escolher \n        \u003cstrong\u003eum tamanho acima\u003c\/strong\u003e, conforme a recomendação da Castelli para maior conforto.\u003c\/li\u003e\n  \u003c\/ul\u003e\n\n  \u003cbutton class=\"cc-size-btn\" type=\"button\" aria-haspopup=\"dialog\" aria-controls=\"cc-size-modal\"\u003e\n    Calcule o seu tamanho\n  \u003c\/button\u003e\n\u003c\/div\u003e\n\n\u003c!-- ===== MODAL ===== --\u003e\n\u003cdialog id=\"cc-size-modal\" class=\"cc-size-modal\" aria-label=\"Guia de tamanhos\"\u003e\n  \u003cbutton class=\"cc-close\" aria-label=\"Fechar\"\u003e✕\u003c\/button\u003e\n  \u003cdiv class=\"cc-loader\" aria-hidden=\"true\"\u003e\u003c\/div\u003e\n  \u003cdiv class=\"cc-size-box\" hidden\u003e\n    \u003cimg id=\"cc-size-img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0946\/1832\/1278\/files\/Size_Chart_Castelli_Men_2.0.png?v=1761056363\" alt=\"Guia de tamanhos Castelli\" loading=\"eager\" decoding=\"sync\"\u003e\n  \u003c\/div\u003e\n\u003c\/dialog\u003e\n\n\u003c!-- ===== STYLE ===== --\u003e\n\u003cstyle\u003e\n  .product-description {\n    font-family: Arial, Helvetica, sans-serif;\n    color: #222;\n    line-height: 1.6;\n    font-size: 15px;\n  }\n  .product-description h2 {\n    font-size: 22px;\n    text-transform: uppercase;\n    letter-spacing: .5px;\n    color: #111;\n    margin-bottom: 10px;\n  }\n\n  \/* Caixa do guia *\/\n  .cc-size-highlight-full{\n    background:#f9f9f9;border:1px solid #e2e2e2;border-radius:10px;\n    padding:20px 24px;margin-top:20px;\n    font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;\n    box-shadow:0 2px 8px rgba(0,0,0,0.04);\n  }\n  .cc-size-highlight-full h3{font-size:18px;margin:0 0 10px;color:#111;}\n  .cc-size-highlight-full p{font-size:15px;margin:0 0 10px;color:#333;}\n  .cc-size-highlight-full ul{margin:0 0 15px 20px;padding:0;}\n  .cc-size-highlight-full li{margin-bottom:5px;font-size:15px;color:#333;}\n\n  \/* Botão *\/\n  .cc-size-btn{\n    display:inline-flex;align-items:center;gap:.5rem;\n    background:#000;color:#fff;border:none;border-radius:6px;\n    padding:10px 16px;font-size:14px;font-weight:500;cursor:pointer;\n    transition:transform .2s ease-in-out, background .2s ease-in-out;\n  }\n  .cc-size-btn:hover{background:#222;transform:translateY(-1px);}\n\n  \/* ===== MODAL: reset do tema + centrado real ===== *\/\n  .cc-size-modal{\n    position: fixed !important;\n    inset: 0 !important;\n    background: transparent !important;\n    border: 0 !important;\n    margin: 0 !important;\n    padding: 0 !important;\n    max-width: none !important;\n    width: 100vw !important;\n    height: 100vh !important;\n    display: none;\n    align-items: center !important;\n    justify-content: center !important;\n    z-index: 99999 !important;\n  }\n  .cc-size-modal[open]{ display:flex; }\n  .cc-size-modal::backdrop{ background: rgba(0,0,0,.6) !important; }\n\n  .cc-size-box{\n    position: relative;\n    box-sizing: border-box;\n    background: #fff;\n    border: 1px solid #e9e9e9;\n    border-radius: 10px;\n    box-shadow: 0 10px 25px rgba(0,0,0,.25);\n    padding: 8px;\n    overflow: hidden;\n    width: min(85vw, 1200px) !important;\n    max-height: 88vh !important;\n    display: flex;align-items:center;justify-content:center;\n  }\n  .cc-size-img{\n    display:block;\n    max-width:100% !important;\n    max-height:84vh !important;\n    width:auto !important;height:auto !important;\n    object-fit:contain !important;border-radius:6px;\n  }\n\n  .cc-close{\n    position:absolute;top:10px;right:10px;\n    background:#fff;border:1px solid #ddd;border-radius:6px;\n    padding:6px 9px;cursor:pointer;font-size:16px;line-height:1;\n    box-shadow:0 2px 6px rgba(0,0,0,.08);\n  }\n  .cc-close:hover{background:#f3f3f3;}\n\n  @media (max-width: 768px){\n    .cc-size-box{ width:95vw !important; max-height:95vh !important; padding:4px !important; }\n    .cc-size-img{ max-height:92vh !important; width:100% !important; }\n    .cc-close{ top:6px; right:6px; }\n  }\n\u003c\/style\u003e\n\n\u003c!-- ===== SCRIPT ===== --\u003e\n\u003cscript\u003e\n(function(){\n  const btn   = document.querySelector('.cc-size-btn');\n  const modal = document.getElementById('cc-size-modal');\n  if(!btn || !modal) return;\n\n  const close  = modal.querySelector('.cc-close');\n  const box    = modal.querySelector('.cc-size-box');\n  const img    = document.getElementById('cc-size-img');\n  const loader = modal.querySelector('.cc-loader');\n\n  function lockScroll(lock){\n    const el = document.documentElement;\n    if(lock){\n      el.style.overflow = 'hidden';\n      el.style.paddingRight = (window.innerWidth - document.documentElement.clientWidth) + 'px';\n    }else{\n      el.style.overflow = '';\n      el.style.paddingRight = '';\n    }\n  }\n\n  function openModal(e){\n    e \u0026\u0026 e.preventDefault();\n    if(modal.showModal){ modal.showModal(); } else { modal.setAttribute('open',''); }\n    lockScroll(true);\n    if(img \u0026\u0026 img.complete \u0026\u0026 img.naturalWidth\u003e0){\n      loader \u0026\u0026 (loader.style.display='none');\n      box \u0026\u0026 (box.hidden=false);\n    }\n  }\n\n  function closeModal(){\n    if(modal.close){ modal.close(); } else { modal.removeAttribute('open'); }\n    lockScroll(false);\n  }\n\n  btn.addEventListener('click', openModal, { passive:true });\n  close.addEventListener('click', closeModal);\n  modal.addEventListener('cancel', e =\u003e { e.preventDefault(); closeModal(); });\n\n  modal.addEventListener('click', e =\u003e {\n    if(!box.contains(e.target)) closeModal();\n  });\n\n  document.addEventListener('keydown', e =\u003e {\n    if(e.key === 'Escape' \u0026\u0026 modal.hasAttribute('open')) closeModal();\n  });\n\n  if(img){\n    img.addEventListener('load', () =\u003e {\n      loader \u0026\u0026 (loader.style.display='none');\n      box \u0026\u0026 (box.hidden=false);\n    });\n    img.addEventListener('error', () =\u003e {\n      loader \u0026\u0026 (loader.style.display='none');\n      box \u0026\u0026 (box.hidden=false);\n      box.innerHTML = '\u003cdiv style=\"padding:24px;text-align:center;color:#444\"\u003eNão foi possível carregar a imagem do guia de tamanhos.\u003c\/div\u003e';\n    });\n  }\n})();\n\u003c\/script\u003e\n","brand":"Castelli","offers":[{"title":"S","offer_id":56477899391358,"sku":"4525510030 S","price":99.9,"currency_code":"EUR","in_stock":true},{"title":"M","offer_id":56477899424126,"sku":"4525510030 M","price":99.9,"currency_code":"EUR","in_stock":true},{"title":"L","offer_id":56477899456894,"sku":"4525510030 L","price":99.9,"currency_code":"EUR","in_stock":true},{"title":"XL","offer_id":56477899489662,"sku":"4525510030 XL","price":99.9,"currency_code":"EUR","in_stock":true},{"title":"2XL","offer_id":56477899522430,"sku":"4525510030 2XL","price":99.9,"currency_code":"EUR","in_stock":false},{"title":"3XL","offer_id":56477899555198,"sku":"4525510030 3XL","price":99.9,"currency_code":"EUR","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0946\/1832\/1278\/files\/167818987220-0.jpg?v=1761652716"},{"product_id":"castelli-pro-thermal-mid-long-sleeve-jersey-lightweight-cool-conditions","title":"CAMISOLA MANGA COMPRIDA CASTELLI PRO SOUDAL QUICK-STEP 2025","description":"\u003cdiv class=\"cc-simple\"\u003e\n\u003ch2\u003eCASTELLI PRO THERMAL\u003c\/h2\u003e\n\u003cp\u003e\u003cstrong\u003eA peça favorita dos profissionais: uma jersey térmica mais leve e elástica para treinos de alta intensidade em condições frescas.\u003c\/strong\u003e\u003cbr\u003eA Pro Thermal Mid LS foi desenhada para aqueles dias de transição onde uma jersey de manga curta é insuficiente, mas uma térmica pesada provocaria o sobreaquecimento. O segredo reside no tecido Warmer X-Stretch, que proporciona o equilíbrio ideal entre isolamento e respirabilidade, mantendo um perfil aerodinâmico que se move contigo.\u003c\/p\u003e\n\u003ch3\u003eAjuste Aerodinâmico e Funcionalidade Pro\u003c\/h3\u003e\n\u003cp\u003eCom um corte mais ajustado ao corpo, esta jersey oferece uma performance de elite sem nunca comprometer o conforto. A construção de bolsos rebaixados (drop-pocket) mantém o equipamento estável e bem posicionado, mesmo quando pedalas fora do selim. Equipada com o fiável fecho YKK® Vislon®, é a escolha técnica para quem procura cobrir os braços e manter o core protegido sem o volume de um casaco.\u003c\/p\u003e\n\u003ch3\u003eEspecificações Técnicas\u003c\/h3\u003e\n\u003cul class=\"cc-list\"\u003e\n\u003cli\u003e\n\u003cstrong\u003eTecido Warmer X-Stretch:\u003c\/strong\u003e Interior cardado para calor leve e máxima flexibilidade\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eCorte Race:\u003c\/strong\u003e Ajuste próximo ao corpo para ganho aerodinâmico\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eDrop-Pocket Construction:\u003c\/strong\u003e Melhor posicionamento dos bolsos e ajuste de cintura\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eFecho YKK® Vislon®:\u003c\/strong\u003e Manipulação suave e rápida com uma mão\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eGestão de Calor:\u003c\/strong\u003e Perfeita para evitar o sobreaquecimento em ritmos elevados\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eVersatilidade Térmica:\u003c\/strong\u003e Excelente performance entre 10°C e 20°C\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eCorte:\u003c\/strong\u003e Tailored Fit (Ajuste técnico profissional)\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp style=\"font-size: 13px; color: #555; margin-top: 10px;\"\u003eDesenvolvida para as exigências do pelotão profissional, onde a regulação térmica e o ajuste são cruciais.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cstyle\u003e\n  .cc-simple {\n    font-family: system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif;\n    color: #111;\n    line-height: 1.6;\n  }\n  .cc-simple h2 {\n    font-size: 1.5rem;\n    font-weight: 700;\n    letter-spacing: .5px;\n    margin-bottom: .75rem;\n    text-transform: uppercase;\n  }\n  .cc-simple h3 {\n    font-size: 1.1rem;\n    margin: 1.1rem 0 .5rem;\n    font-weight: 600;\n  }\n  .cc-simple p {\n    margin: .25rem 0 .75rem;\n  }\n  .cc-list {\n    margin: .5rem 0 1rem 1.25rem;\n  }\n  .cc-list li {\n    margin: .25rem 0;\n  }\n\u003c\/style\u003e","brand":"Castelli","offers":[{"title":"XS","offer_id":56501475344766,"sku":"4235111150-XS","price":79.9,"currency_code":"EUR","in_stock":false},{"title":"S","offer_id":56501475377534,"sku":"4235111150-S","price":79.9,"currency_code":"EUR","in_stock":false},{"title":"M","offer_id":56501475410302,"sku":"4235111150-M","price":79.9,"currency_code":"EUR","in_stock":false},{"title":"L","offer_id":56501475443070,"sku":"4235111150-L","price":79.9,"currency_code":"EUR","in_stock":false},{"title":"XL","offer_id":56501475475838,"sku":"4235111150-XL","price":79.9,"currency_code":"EUR","in_stock":false},{"title":"2XL","offer_id":56501475508606,"sku":"4235111150-XXL","price":79.9,"currency_code":"EUR","in_stock":false},{"title":"3XL","offer_id":56501475541374,"sku":"4235111150-3XL","price":79.9,"currency_code":"EUR","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0946\/1832\/1278\/files\/167898130274-0.jpg?v=1762015442"},{"product_id":"ale-prime-pro-team-bahrain-long-sleeve-jersey-thermal-3-rear-pockets","title":"ALÉ PRIME PRO TEAM BAHRAIN LONG SLEEVE JERSEY","description":"\u003cdiv class=\"\" cc-simple\u003e\n\u003cp\u003e\u003cstrong\u003eAn ergonomic, versatile long sleeve jersey for mid-season conditions, combining insulation with effective ventilation.\u003c\/strong\u003e\u003cbr\u003eThe \u003cstrong\u003eAlé Prime Long Sleeve Jersey – Pro Team Bahrain\u003c\/strong\u003e is made from compact and smooth \u003cstrong\u003eTHERMO PIQUET 200\u003c\/strong\u003e fabric. Its piquet structure enhances ventilation while helping to insulate the body, making it a comfortable and reliable choice for moderate climates.\u003c\/p\u003e\n\u003cp\u003eWith an ergonomic fit and practical features, it delivers stable positioning on the bike and plenty of storage for ride essentials—ideal for training and everyday riding.\u003c\/p\u003e\n\u003ch3\u003eHighlights\u003c\/h3\u003e\n\u003cul class=\"\" cc-list\u003e\n\u003cli\u003e\n\u003cstrong\u003eTHERMO PIQUET 200 fabric\u003c\/strong\u003e with piquet structure for ventilation + insulation\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eSilicone waist gripper\u003c\/strong\u003e to keep the jersey securely in place\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eAnatomically shaped double cuff\u003c\/strong\u003e design for a comfortable fit\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eThree rear pockets\u003c\/strong\u003e for nutrition and essentials\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eRear reflective accent\u003c\/strong\u003e for added safety in low-light conditions\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch3\u003eSpecifications\u003c\/h3\u003e\n\u003cul class=\"\" cc-list\u003e\n\u003cli\u003e\n\u003cstrong\u003eWeight:\u003c\/strong\u003e 255 g\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eFabric:\u003c\/strong\u003e Thermo Piquet 200\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eComposition:\u003c\/strong\u003e 100% polyester\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch3\u003eClassification\u003c\/h3\u003e\n\u003cul class=\"\" cc-list\u003e\n\u003cli\u003e\u003cstrong\u003eBreathability\u003c\/strong\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eLightness\u003c\/strong\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eUV protection\u003c\/strong\u003e\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp style=\"\" font-size: color: margin-top:\u003ePerfect for mid-season riding when you want a comfortable jersey with balanced thermal regulation and practical, ride-ready features.\u003c\/p\u003e\n\u003c\/div\u003e","brand":"Alé","offers":[{"title":"S","offer_id":56699360739710,"sku":"H24213105 S","price":94.9,"currency_code":"EUR","in_stock":false},{"title":"M","offer_id":56699360772478,"sku":"H24213105 M","price":94.9,"currency_code":"EUR","in_stock":false},{"title":"L","offer_id":56699360805246,"sku":"H24213105 L","price":94.9,"currency_code":"EUR","in_stock":true},{"title":"XL","offer_id":56699360838014,"sku":"H24213105 XL","price":94.9,"currency_code":"EUR","in_stock":true},{"title":"2XL","offer_id":56699360870782,"sku":"H24213105 2XL","price":94.9,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0946\/1832\/1278\/files\/167931439328-0.jpg?v=1765538492"},{"product_id":"ale-pragma-fondo-3-0-long-sleeve-cycling-jersey-winter-thermal-silicone-waist","title":"ALÉ PRAGMA FONDO 3.0 LONG SLEEVE JERSEY","description":"\u003cdiv class=\"\"\u003e\n\u003ch2\u003eALÉ PRAGMA FONDO 3.0 LONG SLEEVE CYCLING JERSEY\u003c\/h2\u003e\n\u003cp\u003e\u003cstrong\u003eA training jersey for mid-winter and early spring, combining functional fabrics, warmth and a Performance fit.\u003c\/strong\u003e\u003cbr\u003eThe \u003cstrong\u003eAlé Pragma Fondo 3.0 Long Sleeve Jersey\u003c\/strong\u003e is the best choice for riders looking for a training garment for the \u003cstrong\u003emid-winter season\u003c\/strong\u003e or \u003cstrong\u003eearly spring\u003c\/strong\u003e, when functional, technical fabrics are required.\u003c\/p\u003e\n\u003cp\u003eIts \u003cstrong\u003ePerformance fit\u003c\/strong\u003e ensures full freedom of movement, while soft and warm materials deliver lasting comfort throughout the ride. Finished in true Alé® style with trendy colours, it blends performance and everyday training versatility.\u003c\/p\u003e\n\u003ch3\u003eHighlights\u003c\/h3\u003e\n\u003cul class=\"\"\u003e\n\u003cli\u003e\u003cstrong\u003eIdeal for mid-winter and early spring training\u003c\/strong\u003e\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eSoft Cloth 250 fabric\u003c\/strong\u003e for warmth and comfort\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eSilicone waist gripper\u003c\/strong\u003e for a secure fit\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eAnatomically shaped double cuff\u003c\/strong\u003e design for comfort\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eThree rear pockets\u003c\/strong\u003e for ride essentials\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eReflective details\u003c\/strong\u003e for added safety\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch3\u003eSpecifications\u003c\/h3\u003e\n\u003cul class=\"\"\u003e\n\u003cli\u003e\n\u003cstrong\u003eWeight:\u003c\/strong\u003e 280 g\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eFabric:\u003c\/strong\u003e Soft Cloth 250\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eComposition (main fabric):\u003c\/strong\u003e 85% polyamide, 15% elastane\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch3\u003eClassification\u003c\/h3\u003e\n\u003cul class=\"\"\u003e\n\u003cli\u003e\u003cstrong\u003eBreathability\u003c\/strong\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eThermicity\u003c\/strong\u003e\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003ePerfect for training rides when you want a warm, comfortable jersey with a secure fit and functional fabrics for cooler conditions.\u003c\/p\u003e\n\u003c\/div\u003e","brand":"Alé","offers":[{"title":"XS","offer_id":56699362607486,"sku":"L26007401 XS","price":99.9,"currency_code":"EUR","in_stock":true},{"title":"S","offer_id":56699362640254,"sku":"L26007401 S","price":99.9,"currency_code":"EUR","in_stock":false},{"title":"M","offer_id":56699362673022,"sku":"L26007401 M","price":99.9,"currency_code":"EUR","in_stock":false},{"title":"L","offer_id":56699362705790,"sku":"L26007401 L","price":99.9,"currency_code":"EUR","in_stock":true},{"title":"XL","offer_id":56699362738558,"sku":"L26007401 XL","price":99.9,"currency_code":"EUR","in_stock":true},{"title":"2XL","offer_id":56699362771326,"sku":"L26007401 2XL","price":99.9,"currency_code":"EUR","in_stock":false},{"title":"3XL","offer_id":56699362804094,"sku":"L26007401 3XL","price":99.9,"currency_code":"EUR","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0946\/1832\/1278\/files\/167894715300-0.jpg?v=1765538513"},{"product_id":"ale-prime-long-sleeve-jersey-french-federation-edition-thermal-pro-team","title":"ALÉ PRIME FRENCH FEDERATION LONG SLEEVE JERSEY","description":"\u003cdiv class=\"\" cc-simple\u003e\n\u003cp\u003e\u003cstrong\u003eAn ergonomic, versatile long sleeve jersey for mid-season conditions, combining insulation with effective ventilation.\u003c\/strong\u003e\u003cbr\u003eThe \u003cstrong\u003eAlé Prime Long Sleeve Jersey – French Federation Edition\u003c\/strong\u003e is made from compact and smooth \u003cstrong\u003eTHERMO PIQUET 200\u003c\/strong\u003e fabric. Its piquet structure enhances ventilation while helping to insulate the body, making it a comfortable and reliable choice for moderate climates.\u003c\/p\u003e\n\u003cp\u003eWith an ergonomic fit and practical features, it delivers stable positioning on the bike and plenty of storage for ride essentials—ideal for training and everyday riding.\u003c\/p\u003e\n\u003ch3\u003eHighlights\u003c\/h3\u003e\n\u003cul class=\"\" cc-list\u003e\n\u003cli\u003e\n\u003cstrong\u003eTHERMO PIQUET 200 fabric\u003c\/strong\u003e with piquet structure for ventilation + insulation\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eSilicone waist gripper\u003c\/strong\u003e to keep the jersey securely in place\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eAnatomically shaped double cuff\u003c\/strong\u003e design for a comfortable fit\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eThree rear pockets\u003c\/strong\u003e for nutrition and essentials\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eRear reflective accent\u003c\/strong\u003e for added safety in low-light conditions\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch3\u003eSpecifications\u003c\/h3\u003e\n\u003cul class=\"\" cc-list\u003e\n\u003cli\u003e\n\u003cstrong\u003eWeight:\u003c\/strong\u003e 255 g\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eFabric:\u003c\/strong\u003e Thermo Piquet 200\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eComposition:\u003c\/strong\u003e 100% polyester\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch3\u003eClassification\u003c\/h3\u003e\n\u003cul class=\"\" cc-list\u003e\n\u003cli\u003e\u003cstrong\u003eBreathability\u003c\/strong\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eLightness\u003c\/strong\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eUV protection\u003c\/strong\u003e\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp style=\"\" font-size: color: margin-top:\u003ePerfect for mid-season riding when you want a comfortable jersey with balanced thermal regulation and practical, ride-ready features.\u003c\/p\u003e\n\u003c\/div\u003e","brand":"Alé","offers":[{"title":"S","offer_id":56699364409726,"sku":"F24154098 S","price":94.9,"currency_code":"EUR","in_stock":true},{"title":"M","offer_id":56699364442494,"sku":"F24154098 M","price":94.9,"currency_code":"EUR","in_stock":false},{"title":"L","offer_id":56699364475262,"sku":"F24154098 L","price":94.9,"currency_code":"EUR","in_stock":true},{"title":"XL","offer_id":56699364508030,"sku":"F24154098 XL","price":94.9,"currency_code":"EUR","in_stock":true},{"title":"2XL","offer_id":56699364540798,"sku":"F24154098 2Xl","price":94.9,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0946\/1832\/1278\/files\/167931470297-0.jpg?v=1765538545"},{"product_id":"ale-prime-long-sleeve-jersey-british-federation-edition-thermal-pro-team","title":"ALÉ PRIME BRITISH FEDERATION EDITION LONG SLEEVE JERSEY","description":"\u003cdiv class=\"\" cc-simple\u003e\n\u003cp\u003e\u003cstrong\u003eAn ergonomic, versatile long sleeve jersey for mid-season conditions, combining insulation with effective ventilation.\u003c\/strong\u003e\u003cbr\u003eThe \u003cstrong\u003eAlé Prime Long Sleeve Jersey – British Federation Edition\u003c\/strong\u003e is made from compact and smooth \u003cstrong\u003eTHERMO PIQUET 200\u003c\/strong\u003e fabric. Its piquet structure enhances ventilation while helping to insulate the body, making it a comfortable and reliable choice for moderate climates.\u003c\/p\u003e\n\u003cp\u003eWith an ergonomic fit and practical features, it delivers stable positioning on the bike and plenty of storage for ride essentials—ideal for training and everyday riding.\u003c\/p\u003e\n\u003ch3\u003eHighlights\u003c\/h3\u003e\n\u003cul class=\"\" cc-list\u003e\n\u003cli\u003e\n\u003cstrong\u003eTHERMO PIQUET 200 fabric\u003c\/strong\u003e with piquet structure for ventilation + insulation\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eSilicone waist gripper\u003c\/strong\u003e to keep the jersey securely in place\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eAnatomically shaped double cuff\u003c\/strong\u003e design for a comfortable fit\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eThree rear pockets\u003c\/strong\u003e for nutrition and essentials\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eRear reflective accent\u003c\/strong\u003e for added safety in low-light conditions\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch3\u003eSpecifications\u003c\/h3\u003e\n\u003cul class=\"\" cc-list\u003e\n\u003cli\u003e\n\u003cstrong\u003eWeight:\u003c\/strong\u003e 255 g\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eFabric:\u003c\/strong\u003e Thermo Piquet 200\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eComposition:\u003c\/strong\u003e 100% polyester\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch3\u003eClassification\u003c\/h3\u003e\n\u003cul class=\"\" cc-list\u003e\n\u003cli\u003e\u003cstrong\u003eBreathability\u003c\/strong\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eLightness\u003c\/strong\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eUV protection\u003c\/strong\u003e\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp style=\"\" font-size: color: margin-top:\u003ePerfect for mid-season riding when you want a comfortable jersey with balanced thermal regulation and practical, ride-ready features.\u003c\/p\u003e\n\u003c\/div\u003e","brand":"Alé","offers":[{"title":"S","offer_id":56699366146430,"sku":"R25140129 S","price":99.9,"currency_code":"EUR","in_stock":true},{"title":"M","offer_id":56699366179198,"sku":"R25140129 M","price":99.9,"currency_code":"EUR","in_stock":true},{"title":"L","offer_id":56699366211966,"sku":"R25140129 L","price":99.9,"currency_code":"EUR","in_stock":true},{"title":"XL","offer_id":56699366244734,"sku":"R25140129 XL","price":99.9,"currency_code":"EUR","in_stock":true},{"title":"2XL","offer_id":56699366277502,"sku":"R25140129 2XL","price":99.9,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0946\/1832\/1278\/files\/167930679556-0.jpg?v=1765538572"},{"product_id":"ale-prime-pro-team-green-project-bardiani-csf-long-sleeve-jersey","title":"ALÉ PRIME PRO TEAM PROJETO GREEN PROJECT BARDIANI-CSF LONG SLEEVE JERSEY","description":"\u003cdiv class=\"\"\u003e\n\u003ch2\u003eALÉ PRIME PRO TEAM GREEN PROJECT BARDIANI-CSF LONG SLEEVE JERSEY\u003c\/h2\u003e\n\u003cp\u003e\u003cstrong\u003eHigh-performance jersey inspired by the official kit of the Green Project Bardiani-CSF professional team.\u003c\/strong\u003e\u003cbr\u003eThe \u003cstrong\u003eAlé Cycling Prime Pro Team Bardiani-CSF\u003c\/strong\u003e long sleeve jersey is designed for demanding cyclists seeking the perfect balance of aerodynamics, comfort and technical functionality. It is ideal for both training and racing, reflecting true professional team performance.\u003c\/p\u003e\n\u003cp\u003eThe \u003cstrong\u003eextended silicone waist band\u003c\/strong\u003e keeps the jersey securely in place during high-intensity efforts, while the \u003cstrong\u003efull-length front zipper\u003c\/strong\u003e allows easy ventilation control on climbs or in warmer conditions.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eThree spacious rear pockets\u003c\/strong\u003e provide ample storage for nutrition, tools and personal items. For added safety, \u003cstrong\u003erear reflective details\u003c\/strong\u003e enhance visibility in low-light environments.\u003c\/p\u003e\n\u003cp\u003eAccording to Alé Cycling, this jersey delivers \u003cstrong\u003eexcellent breathability, lightweight performance and UV protection\u003c\/strong\u003e, making it a versatile and reliable choice for dedicated cyclists.\u003c\/p\u003e\n\u003ch3\u003eHighlights\u003c\/h3\u003e\n\u003cul class=\"\"\u003e\n\u003cli\u003e\u003cstrong\u003eOfficial Green Project Bardiani-CSF edition\u003c\/strong\u003e\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eAerodynamic design\u003c\/strong\u003e for training and racing\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eExtended silicone waist band\u003c\/strong\u003e for a secure fit\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eFull-length zipper\u003c\/strong\u003e for ventilation control\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eReflective details\u003c\/strong\u003e for improved safety\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch3\u003eTechnical Features\u003c\/h3\u003e\n\u003cul class=\"\"\u003e\n\u003cli\u003e\n\u003cstrong\u003eBreathability:\u003c\/strong\u003e High\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eLightweight:\u003c\/strong\u003e Yes\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eUV protection:\u003c\/strong\u003e Yes\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003ePockets:\u003c\/strong\u003e 3 rear pockets\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003eA professional-inspired jersey built for riders who demand performance, comfort and authentic team style.\u003c\/p\u003e\n\u003c\/div\u003e","brand":"Alé","offers":[{"title":"S","offer_id":56699366506878,"sku":"R23188079 S","price":69.9,"currency_code":"EUR","in_stock":true},{"title":"M","offer_id":56699366539646,"sku":"R23188079 M","price":69.9,"currency_code":"EUR","in_stock":true},{"title":"L","offer_id":56699366572414,"sku":"R23188079 L","price":69.9,"currency_code":"EUR","in_stock":true},{"title":"XL","offer_id":56699366605182,"sku":"R23188079 XL","price":69.9,"currency_code":"EUR","in_stock":true},{"title":"2XL","offer_id":56699366637950,"sku":"R23188079 2XL","price":69.9,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0946\/1832\/1278\/files\/167931405557-0.jpg?v=1765538576"},{"product_id":"castelli-ottanta-ls-jersey-women-s-cycling-long-sleeve-jersey-thermal-breathable-1","title":"CAMISOLA MANGA COMPRIDA MULHER CASTELLI OTTANTA PRETO","description":"\u003cdiv class=\"cc-simple\"\u003e\n\u003ch2\u003eCASTELLI OTTANTA W\u003c\/h2\u003e\n\u003cp\u003e\u003cstrong\u003eUma jersey térmica de performance que combina um grafismo impactante com o calor essencial para a meia-estação.\u003c\/strong\u003e\u003cbr\u003eA Ottanta LS W foi desenhada para quem procura estilo sem sacrificar a funcionalidade técnica. Utilizando a versão térmica do tecido Warmer da Castelli, com o seu interior em fleece macio, esta jersey é a barreira ideal contra o frio outonal, funcionando perfeitamente sozinha ou combinada com um colete Perfetto ou Aria em dias mais exigentes.\u003c\/p\u003e\n\u003ch3\u003eAtenção ao Detalhe e Conforto Térmico\u003c\/h3\u003e\n\u003cp\u003eEmbora o grafismo seja o que primeiro chama a atenção, é a engenharia da Castelli que se destaca na estrada. A construção dos bolsos \"dropped-pocket\" mantém a carga estável e acessível, enquanto o fecho YKK® Vislon® de fácil manuseamento permite regular a ventilação com uma só mão. O interior escovado proporciona um conforto imediato sobre a pele, garantindo que o calor se mantém onde é necessário.\u003c\/p\u003e\n\u003ch3\u003eEspecificações Técnicas\u003c\/h3\u003e\n\u003cul class=\"cc-list\"\u003e\n\u003cli\u003e\n\u003cstrong\u003eTecido Warmer:\u003c\/strong\u003e Poliéster térmico com interior em fleece escovado\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eDesign Dropped-Pocket:\u003c\/strong\u003e 3 bolsos traseiros em posição ergonómica\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eFecho:\u003c\/strong\u003e YKK® Vislon® integral com proteção de pescoço\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eEstabilidade:\u003c\/strong\u003e Banda de silicone na cintura para evitar que a jersey suba\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eSegurança:\u003c\/strong\u003e Detalhes refletores para maior visibilidade rodoviária\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eVersatilidade:\u003c\/strong\u003e Ideal para o intervalo entre 12°C e 18°C\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eCorte:\u003c\/strong\u003e Regular Fit (Equilíbrio ideal entre conforto e performance)\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp style=\"font-size: 13px; color: #555; margin-top: 10px;\"\u003eA escolha ideal para ciclistas que valorizam a estética clássica da Castelli com tecnologias que garantem uma pedalada quente e seca.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cstyle\u003e\n  .cc-simple {\n    font-family: system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif;\n    color: #111;\n    line-height: 1.6;\n  }\n  .cc-simple h2 {\n    font-size: 1.5rem;\n    font-weight: 700;\n    letter-spacing: .5px;\n    margin-bottom: .75rem;\n    text-transform: uppercase;\n  }\n  .cc-simple h3 {\n    font-size: 1.1rem;\n    margin: 1.1rem 0 .5rem;\n    font-weight: 600;\n  }\n  .cc-simple p {\n    margin: .25rem 0 .75rem;\n  }\n  .cc-list {\n    margin: .5rem 0 1rem 1.25rem;\n  }\n  .cc-list li {\n    margin: .25rem 0;\n  }\n\u003c\/style\u003e","brand":"Castelli","offers":[{"title":"XS","offer_id":56885242167678,"sku":"4523546010 XS","price":79.9,"currency_code":"EUR","in_stock":false},{"title":"S","offer_id":56885242200446,"sku":"4523546010 S","price":79.9,"currency_code":"EUR","in_stock":false},{"title":"M","offer_id":56885242233214,"sku":"4523546010 M","price":79.9,"currency_code":"EUR","in_stock":false},{"title":"L","offer_id":56885242265982,"sku":"4523546010 L","price":79.9,"currency_code":"EUR","in_stock":false},{"title":"XL","offer_id":56885242298750,"sku":"4523546010 XL","price":79.9,"currency_code":"EUR","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0946\/1832\/1278\/files\/167791106582-0.jpg?v=1770132917"},{"product_id":"castelli-espresso-w-long-sleeve-women-s-cycling-jersey-1","title":"CAMISOLA MANGA COMPRIDA MULHER CASTELLI ESPRESSO W VERMELHO","description":"\u003cdiv class=\"cc-simple\"\u003e\n\u003ch2\u003eCASTELLI ESPRESSO W\u003c\/h2\u003e\n\u003cp\u003e\u003cstrong\u003eA tua nova jersey de manga comprida favorita: desenhada para ser a primeira escolha mal acabe de secar.\u003c\/strong\u003e\u003cbr\u003eA Espresso W LS foi criada com um objetivo simples: ser a jersey que escolhes sempre, independentemente de preferires um ajuste aerodinâmico de competição ou um corte mais regular. Graças ao inovador tecido Air-O Stretch, esta peça adapta-se ao teu corpo de forma natural, oferecendo uma sensação de liberdade total sem nunca comprometer a performance técnica.\u003c\/p\u003e\n\u003ch3\u003ePerformance Respirável e Proteção UPF 30\u003c\/h3\u003e\n\u003cp\u003eDesenvolvida pela Castelli para uma gestão de humidade exemplar, esta jersey provou ser tão eficiente no túnel de vento como é confortável na estrada. As mangas de manga comprida com punhos de corte a laser oferecem uma transição suave sobre a pele e proteção solar adicional. Com um bolso extra de segurança com fecho e a fiabilidade do sistema YKK® Vislon®, a Espresso prova que a simplicidade e a alta tecnologia podem caminhar juntas.\u003c\/p\u003e\n\u003ch3\u003eEspecificações Técnicas\u003c\/h3\u003e\n\u003cul class=\"cc-list\"\u003e\n\u003cli\u003e\n\u003cstrong\u003eTecido Air-O Stretch:\u003c\/strong\u003e Respirabilidade de elite e ajuste anatómico perfeito\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eProteção UV:\u003c\/strong\u003e Classificação UPF 30 para proteção solar\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003ePunhos Raw-Cut:\u003c\/strong\u003e Acabamento a laser para conforto sem costuras\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eArrumação Segura:\u003c\/strong\u003e 3 bolsos traseiros + 1 bolso com fecho para objetos de valor\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eFecho YKK® Vislon®:\u003c\/strong\u003e O sistema de deslize mais suave do mercado\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eEstabilidade:\u003c\/strong\u003e Cintura com silicone para fixação total\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eVisibilidade:\u003c\/strong\u003e Detalhe refletor traseiro para maior segurança\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eCorte:\u003c\/strong\u003e Tailored Fit (Ajuste técnico feminino)\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp style=\"font-size: 13px; color: #555; margin-top: 10px;\"\u003ePorque um Espresso é sempre uma boa ideia, esta jersey de manga comprida será a tua companheira mais fiável para todos os dias no selim.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cstyle\u003e\n  .cc-simple {\n    font-family: system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif;\n    color: #111;\n    line-height: 1.6;\n  }\n  .cc-simple h2 {\n    font-size: 1.5rem;\n    font-weight: 700;\n    letter-spacing: .5px;\n    margin-bottom: .75rem;\n    text-transform: uppercase;\n  }\n  .cc-simple h3 {\n    font-size: 1.1rem;\n    margin: 1.1rem 0 .5rem;\n    font-weight: 600;\n  }\n  .cc-simple p {\n    margin: .25rem 0 .75rem;\n  }\n  .cc-list {\n    margin: .5rem 0 1rem 1.25rem;\n  }\n  .cc-list li {\n    margin: .25rem 0;\n  }\n\u003c\/style\u003e","brand":"Castelli","offers":[{"title":"XS","offer_id":56885242429822,"sku":"4525049081 XS","price":79.9,"currency_code":"EUR","in_stock":false},{"title":"S","offer_id":56885242462590,"sku":"4525049081 S","price":79.9,"currency_code":"EUR","in_stock":false},{"title":"M","offer_id":56885242495358,"sku":"4525049081 M","price":79.9,"currency_code":"EUR","in_stock":false},{"title":"L","offer_id":56885242528126,"sku":"4525049081 L","price":79.9,"currency_code":"EUR","in_stock":true},{"title":"XL","offer_id":56885242560894,"sku":"4525049081 XL","price":79.9,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0946\/1832\/1278\/files\/167719242093-0.jpg?v=1770132920"}],"url":"https:\/\/www.cyclistcloset.com\/en-eu\/collections\/camisolas-manga-comprida.oembed","provider":"Cyclist's Closet","version":"1.0","type":"link"}