{"title":"CASTELLI INVERNO","description":"","products":[{"product_id":"castelli-alpha-flight-ros-cycling-jacket-polartec-alpha-breathable-windproof","title":"CASACO CASTELLI ALPHA FLIGHT RoS PRETO","description":"\u003cdiv class=\"product-description\"\u003e\n  \u003ch2\u003eCASTELLI ALPHA FLIGHT RoS CYCLING JACKET\u003c\/h2\u003e\n\n  \u003cp\u003e\n    A \u003cstrong\u003eCastelli Alpha Flight RoS Jacket\u003c\/strong\u003e é a melhor escolha para pedalar em \u003cstrong\u003econdições amenas\u003c\/strong\u003e.  \n    Extremamente leve, altamente respirável e com um ajuste aerodinâmico, foi desenvolvida para \u003cstrong\u003etreinos intensos\u003c\/strong\u003e ou para manter a temperatura corporal ideal em dias frescos.  \n    A construção de \u003cstrong\u003edupla camada Alpha\u003c\/strong\u003e combina um exterior sem membrana com isolamento interior \u003cstrong\u003ePolartec® Alpha\u003c\/strong\u003e ativo, oferecendo o equilíbrio perfeito entre calor e ventilação.\n  \u003c\/p\u003e\n\n  \u003ch3\u003eCaracterísticas\u003c\/h3\u003e\n  \u003cul\u003e\n    \u003cli\u003e\n\u003cstrong\u003eTecido Nano Flex Light\u003c\/strong\u003e no peito, mangas e costas superiores bloqueia parcialmente o vento, garantindo máxima respirabilidade.\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003eConstrução Alpha de dupla camada\u003c\/strong\u003e que separa a camada corta-vento do isolamento, melhorando a ventilação e a gestão térmica.\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003eAcabamento hidrorrepelente\u003c\/strong\u003e para proteção leve contra chuva e salpicos.\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003eIsolamento Polartec® Alpha\u003c\/strong\u003e no peito, mangas e costas, proporcionando calor ativo e leveza.\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003eTecido Nano Flex Extra Dry\u003c\/strong\u003e na parte traseira para ventilação e dissipação de calor, mantendo proteção contra chuva leve.\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003eFechos duplos YKK® Vislon®\u003c\/strong\u003e deslocados para ventilação ajustável.\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003eBolsos traseiros (3)\u003c\/strong\u003e com orifícios cortados a laser para drenagem.\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003eBolso lateral com fecho\u003c\/strong\u003e para objetos de valor.\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003eBanda elástica de cintura com corte a cru\u003c\/strong\u003e que se adapta ao corpo e evita dobras.\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003ePeso:\u003c\/strong\u003e 307 g\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003eTemperatura:\u003c\/strong\u003e 6˚ – 16˚C \/ 42˚ – 61˚F\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003eFIT:\u003c\/strong\u003e Tailored\u003c\/li\u003e\n  \u003c\/ul\u003e\n\n  \u003ch3\u003eTECNOLOGIA ALPHA PARA CONFORTO E VELOCIDADE\u003c\/h3\u003e\n  \u003cp\u003e\n    Esta é a jaqueta ideal para \u003cstrong\u003eandar depressa em dias frios\u003c\/strong\u003e ou para manter o conforto térmico em condições mais amenas.  \n    A tecnologia \u003cstrong\u003eAlpha de dupla camada\u003c\/strong\u003e permite que o ar circule sem deixar o frio entrar, evitando o sobreaquecimento durante esforços intensos.  \n    O isolamento \u003cstrong\u003ePolartec® Alpha\u003c\/strong\u003e oferece calor sem volume, enquanto o tecido \u003cstrong\u003eNano Flex Extra Dry\u003c\/strong\u003e nas costas promove ventilação e dispersão da transpiração.  \n    O corte justo elimina o bater do tecido e garante um \u003cstrong\u003eajuste aerodinâmico\u003c\/strong\u003e, tornando esta a jaqueta mais rápida da Castelli — porque mesmo no inverno, acreditamos que \u003cstrong\u003eFast Is Fun\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":56456189149566,"sku":"4523506085 S","price":169.9,"currency_code":"EUR","in_stock":false},{"title":"M","offer_id":56456189182334,"sku":"4523506085 M","price":169.9,"currency_code":"EUR","in_stock":false},{"title":"L","offer_id":56456189215102,"sku":"4523506085 L","price":169.9,"currency_code":"EUR","in_stock":false},{"title":"XL","offer_id":56456189247870,"sku":"4523506085 XL","price":169.9,"currency_code":"EUR","in_stock":false},{"title":"2XL","offer_id":56456189280638,"sku":"4523506085 2XL","price":169.9,"currency_code":"EUR","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0946\/1832\/1278\/files\/167875065015-0.jpg?v=1761317593"},{"product_id":"castelli-perfetto-air-cycling-vest-windproof-breathable-lightweight","title":"CASTELLI PERFETTO AIR CYCLING VEST BLACK","description":"\u003cdiv class=\"\"\u003e\n\u003ch2\u003eCASTELLI PERFETTO AIR CYCLING VEST\u003c\/h2\u003e\n\u003cp\u003eThe \u003cstrong\u003eCastelli Perfetto Air Vest\u003c\/strong\u003e is the ideal vest for cycling in cold conditions. offering \u003cstrong\u003emoderate thermal insulation\u003c\/strong\u003e with \u003cstrong\u003eexceptional breathability\u003c\/strong\u003e . Developed with innovative \u003cstrong\u003eRistretto technology\u003c\/strong\u003e , this vest keeps the body warm and dry. allowing controlled airflow to regulate temperature and comfort throughout the ride.\u003c\/p\u003e\n\u003ch3\u003eFeatures\u003c\/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cstrong\u003eMedium-weight vest\u003c\/strong\u003e for cold temperatures, with moderate insulation and excellent breathability.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eCastelli Ristretto Lite technology\u003c\/strong\u003e for superior warmth, drying and breathability, with \u003cstrong\u003ePFAS-free DWR\u003c\/strong\u003e treatment.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eBack panel made of stretch fabric\u003c\/strong\u003e that offers a perfect fit and additional ventilation.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eYKK® Vislon® zipper\u003c\/strong\u003e with double opening (top and bottom) for adjustable ventilation.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eThree flat back pockets\u003c\/strong\u003e with internal safety flap.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eReflective details\u003c\/strong\u003e on the bottom of the pockets for increased visibility.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eFabric developed in partnership with ITTTAI®\u003c\/strong\u003e , combining elasticity, breathability and water protection through expertise in membranes and lamination.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eWeight:\u003c\/strong\u003e 173 g\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eTemperature:\u003c\/strong\u003e 10˚ – 18˚C \/ 50˚ – 64˚F\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eFIT:\u003c\/strong\u003e Tailored\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch3\u003eTHERMAL COMFORT WITH EXCEPTIONAL BREATHABILITY\u003c\/h3\u003e\n\u003cp\u003eThis vest is designed for those who need \u003cstrong\u003ewarmth and breathability throughout their journey\u003c\/strong\u003e . \u003cstrong\u003eRistretto\u003c\/strong\u003e fabric is designed to be virtually windproof, allowing only the necessary airflow. to eliminate moisture and keep the body dry. The front panel uses medium-weight Ristretto fabric, while the back panel is made of stretch fabric. It increases ventilation and comfort. The YKK® double-opening closure allows for easy adjustment of ventilation on the go. Featuring three spacious pockets and a high collar that eliminates the need for a neck warmer, The \u003cstrong\u003ePerfetto Air Vest\u003c\/strong\u003e is the ideal garment for days when versatility and comfort are essential.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c!-- ===== GUIA DE TAMANHOS CASTELLI ===== --\u003e\n\u003cdiv class=\"\"\u003e\u003c\/div\u003e","brand":"Castelli","offers":[{"title":"S","offer_id":56456193737086,"sku":"4525503085 S","price":119.9,"currency_code":"EUR","in_stock":true},{"title":"M","offer_id":56456193769854,"sku":"4525503085 M","price":119.9,"currency_code":"EUR","in_stock":false},{"title":"L","offer_id":56456193802622,"sku":"4525503085 L","price":119.9,"currency_code":"EUR","in_stock":true},{"title":"XL","offer_id":56456193835390,"sku":"4525503085 XL","price":119.9,"currency_code":"EUR","in_stock":true},{"title":"2XL","offer_id":56456193868158,"sku":"4525503085 2XL","price":119.9,"currency_code":"EUR","in_stock":true},{"title":"3XL","offer_id":56456193900926,"sku":"4525503085 3XL","price":119.9,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0946\/1832\/1278\/files\/167876929646-0.jpg?v=1761317636"},{"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-squadra-stretch-cycling-vest-windproof-lightweight-breathable","title":"CASTELLI SQUADRA STRETCH VEST GRAY","description":"\u003cdiv class=\"\"\u003e\n\u003ch2\u003eCASTELLI SQUADRA STRETCH CYCLING VEST\u003c\/h2\u003e\n\u003cp\u003eThe \u003cstrong\u003eCastelli Squadra Stretch Vest\u003c\/strong\u003e is a simple and elegant solution for keeping the wind away from the torso in cold conditions. offering a snug fit to the body and excellent ventilation. A lightweight, practical, and essential piece of equipment for those seeking additional protection without compromising freedom of movement.\u003c\/p\u003e\n\u003ch3\u003eFeatures\u003c\/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cstrong\u003eRipstop fabric with coating\u003c\/strong\u003e on the front and back to block wind and resist splashes.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eSide panels made of dense stretch fabric\u003c\/strong\u003e for a perfect fit and efficient ventilation.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eHigh collar\u003c\/strong\u003e for greater protection against the cold and drafts.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eReflective details\u003c\/strong\u003e on the chest and lower back for better visibility in low light.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eWeight:\u003c\/strong\u003e 93 g\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eTemperature:\u003c\/strong\u003e 12˚ – 20˚C \/ 54˚ – 68˚F\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eFIT:\u003c\/strong\u003e Tailored\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch3\u003eSIMPLICITY AND EFFICIENCY\u003c\/h3\u003e\n\u003cp\u003eCastelli has completely redesigned its entry-level vest, creating a lightweight and functional piece with the ideal balance between protection and breathability. The \u003cstrong\u003eripstop\u003c\/strong\u003e fabric blocks wind at the front and protects from rear bumps, while the stretchy side panels allow the vest to mold to the body, eliminating the uncomfortable flapping of fabric in the wind. The high collar and elongated back cut increase protection, while the color-blocked design and reflective details add a touch of elegance. The \u003cstrong\u003eSquadra Stretch Vest\u003c\/strong\u003e is the perfect choice for outings on days with unpredictable weather — lightweight, effective, and with the unmistakable Castelli style.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c!-- ===== GUIA DE TAMANHOS CASTELLI ===== --\u003e\n\u003cdiv class=\"\"\u003e\u003c\/div\u003e","brand":"Castelli","offers":[{"title":"XS","offer_id":56456198816126,"sku":"4521512870 XS","price":59.9,"currency_code":"EUR","in_stock":false},{"title":"S","offer_id":56456198848894,"sku":"4521512870 S","price":59.9,"currency_code":"EUR","in_stock":false},{"title":"M","offer_id":56456198881662,"sku":"4521512870 M","price":59.9,"currency_code":"EUR","in_stock":false},{"title":"L","offer_id":56456198914430,"sku":"4521512870 L","price":59.9,"currency_code":"EUR","in_stock":false},{"title":"XL","offer_id":56456198947198,"sku":"4521512870 XL","price":59.9,"currency_code":"EUR","in_stock":false},{"title":"2XL","offer_id":56456198979966,"sku":"4521512870 2XL","price":59.9,"currency_code":"EUR","in_stock":false},{"title":"3XL","offer_id":56456199012734,"sku":"4521512870 3XL","price":59.9,"currency_code":"EUR","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0946\/1832\/1278\/files\/167877527752-0.jpg?v=1761317685"},{"product_id":"castelli-espresso-cycling-bibtight-thermal-comfort-winter-breathable","title":"CASTELLI ESPRESSO BIBTIGHT PURPLE","description":"\u003cdiv class=\"\"\u003e\n\u003ch2\u003eCASTELLI ESPRESSO CYCLING BIBTIGHT\u003c\/h2\u003e\n\u003cp\u003eThe \u003cstrong\u003eCastelli Espresso Bibtight\u003c\/strong\u003e was designed to be the best companion during most of your winter trips. Focused on comfort and performance, it uses \u003cstrong\u003eThermoflex\u003c\/strong\u003e fabric throughout, guaranteeing warmth, elasticity, and softness. Strategically placed seams minimize any irritation, while the \u003cstrong\u003eProgetto X2 Air Seamless\u003c\/strong\u003e leather ensures comfort even on the longest journeys. A simple, elegant and functional design so you can focus solely on pedaling.\u003c\/p\u003e\n\u003ch3\u003eFeatures\u003c\/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cstrong\u003eThermoflex fabric\u003c\/strong\u003e for warmth, elasticity and maximum comfort.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eElastic mesh straps\u003c\/strong\u003e that offer support and effective ventilation.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eBadana Progetto X2 Air Seamless\u003c\/strong\u003e designed for comfort on long distances.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eZipperless construction at the ankles\u003c\/strong\u003e to eliminate bulk and irritation, ideal with shoe covers.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eReflective label\u003c\/strong\u003e on the back of the leg for increased visibility.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eWeight:\u003c\/strong\u003e 268 g\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eTemperature:\u003c\/strong\u003e 4˚ – 15˚C \/ 39˚ – 59˚F\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eFIT:\u003c\/strong\u003e Regular\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch3\u003eWINTER COMFORT AND PERFORMANCE\u003c\/h3\u003e\n\u003cp\u003e\u003cstrong\u003eEspresso Bibtight\u003c\/strong\u003e is the result of Castelli's expertise in creating winter clothing that combines superior warmth and comfort. The seams were designed to follow the body's natural movement without causing friction. And the zipperless ankle ensures a clean, streamlined fit. Inspired by the design of the \u003cstrong\u003eEspresso Bibshort\u003c\/strong\u003e , this thermal version was designed to provide the same second-skin feel. even on the coldest days. Simple, effective, and incredibly comfortable — because in winter, the most important thing is to feel good on your bike.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c!-- ===== GUIA DE TAMANHOS CASTELLI ===== --\u003e\n\u003cdiv class=\"\"\u003e\u003c\/div\u003e\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\u003c!-- ===== SCRIPT ===== --\u003e","brand":"Castelli","offers":[{"title":"S","offer_id":56456199766398,"sku":"4524514513 S","price":104.9,"currency_code":"EUR","in_stock":false},{"title":"M","offer_id":56456199799166,"sku":"4524514513 M","price":104.9,"currency_code":"EUR","in_stock":true},{"title":"L","offer_id":56456199831934,"sku":"4524514513 L","price":104.9,"currency_code":"EUR","in_stock":true},{"title":"XL","offer_id":56456199864702,"sku":"4524514513 XL","price":104.9,"currency_code":"EUR","in_stock":true},{"title":"2XL","offer_id":56456199897470,"sku":"4524514513 2XL","price":104.9,"currency_code":"EUR","in_stock":false},{"title":"3XL","offer_id":56456199930238,"sku":"4524514513 3XL","price":104.9,"currency_code":"EUR","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0946\/1832\/1278\/files\/167853898676-0.jpg?v=1761317694"},{"product_id":"castelli-go-jacket-gore-tex-infinium-windstopper-windproof-water-resistant","title":"CASACO CASTELLI GO AMARELO","description":"\u003cdiv class=\"product-description\"\u003e\n  \u003ch2\u003eCASTELLI GO JACKET\u003c\/h2\u003e\n\n  \u003cp\u003e\n    A \u003cstrong\u003eCastelli Go Jacket\u003c\/strong\u003e é a jaqueta mais versátil da marca — ideal para qualquer estação.  \n    Pode ser usada como uma camada leve em dias amenos ou, com camadas térmicas por baixo, em temperaturas frias.  \n    Combinando leveza, respirabilidade, resistência ao vento e à água, e um ajuste confortável, é a escolha perfeita para quem quer simplicidade, elegância e desempenho num só produto.  \n    Como o nome diz: basta vestir e \u003cstrong\u003eGo\u003c\/strong\u003e.\n  \u003c\/p\u003e\n\n  \u003ch3\u003eCaracterísticas\u003c\/h3\u003e\n  \u003cul\u003e\n    \u003cli\u003e\n\u003cstrong\u003eConstrução em soft-shell integral\u003c\/strong\u003e com tecido \u003cstrong\u003eGORE-TEX INFINIUM™ WINDSTOPPER® 150\u003c\/strong\u003e que bloqueia o vento frio e oferece excelente respirabilidade.\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003eElasticidade excecional\u003c\/strong\u003e com corte neutro para conforto ideal e liberdade de movimentos.\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003ePunhos internos elásticos\u003c\/strong\u003e para perfeita integração com as luvas, evitando a entrada de ar frio.\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003eBolsos traseiros (3)\u003c\/strong\u003e amplos e \u003cstrong\u003ebolso frontal com fecho\u003c\/strong\u003e para pequenos objetos.\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003eFecho YKK® Vislon®\u003c\/strong\u003e com puxador em borracha para maior aderência e durabilidade.\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003eAcabamento sem costuras na cintura\u003c\/strong\u003e para um visual técnico e limpo.\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003eFaixa refletora larga\u003c\/strong\u003e na zona dos bolsos para visibilidade em pouca luz.\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003ePeso:\u003c\/strong\u003e 357 g\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003eTemperatura:\u003c\/strong\u003e 4˚ – 14˚C \/ 39˚ – 57˚F\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003eFIT:\u003c\/strong\u003e Regular\u003c\/li\u003e\n  \u003c\/ul\u003e\n\n  \u003ch3\u003eVERSATILIDADE MÁXIMA\u003c\/h3\u003e\n  \u003cp\u003e\n    Se procura \u003cstrong\u003eapenas uma jaqueta para todas as condições\u003c\/strong\u003e, esta é a escolha certa.  \n    Usa o mesmo tecido externo da premiada \u003cstrong\u003eAlpha RoS 2 Jacket\u003c\/strong\u003e — elogiada pela \u003cem\u003eCyclingnews\u003c\/em\u003e como “referência no desempenho de jaquetas de inverno” — mas sem o forro integrado,  \n    permitindo-lhe ajustar o nível de isolamento conforme o frio.  \n    Combine-a com uma \u003cstrong\u003ecamada base Flanders Warm\u003c\/strong\u003e e um jersey térmico para conforto até temperaturas negativas.  \n    O corte ajustado, o acabamento sem costuras e os detalhes elegantes dão-lhe um visual refinado, enquanto os punhos internos eliminam correntes de ar frias.  \n    A \u003cstrong\u003eGo Jacket\u003c\/strong\u003e oferece o equilíbrio perfeito entre estilo, proteção e funcionalidade para os ciclistas mais exigentes.\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":56456200028542,"sku":"4521504384 S","price":139.9,"currency_code":"EUR","in_stock":false},{"title":"M","offer_id":56456200061310,"sku":"4521504384 M","price":139.9,"currency_code":"EUR","in_stock":false},{"title":"L","offer_id":56456200094078,"sku":"4521504384 L","price":139.9,"currency_code":"EUR","in_stock":true},{"title":"XL","offer_id":56456200126846,"sku":"4521504384 XL","price":139.9,"currency_code":"EUR","in_stock":true},{"title":"2XL","offer_id":56456200159614,"sku":"4521504384 2XL","price":139.9,"currency_code":"EUR","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0946\/1832\/1278\/files\/167836833085-0.jpg?v=1761317697"},{"product_id":"castelli-prosecco-tech-long-sleeve-base-layer-color-black","title":"CAMISOLA INTERIOR CASTELLI PROSECCO TEC PRETO","description":"\u003cdiv class=\"product-description\"\u003e\n  \u003ch2\u003eCASTELLI PROSECCO TECH LONG SLEEVE BASE LAYER\u003c\/h2\u003e\n\n  \u003cp\u003e\n    A \u003cstrong\u003eCastelli Prosecco Tech Long Sleeve Base Layer\u003c\/strong\u003e foi desenvolvida para manter o corpo seco e confortável em condições frias,  \n    utilizando uma construção com \u003cstrong\u003emapeamento corporal\u003c\/strong\u003e e tecidos estrategicamente posicionados para otimizar o isolamento e a gestão da humidade.  \n    O tecido principal em poliéster elástico com tratamento \u003cstrong\u003eProsecco hidrofílico\u003c\/strong\u003e garante uma absorção eficaz do suor, enquanto os painéis em  \n    \u003cstrong\u003ePrimaLoft®\u003c\/strong\u003e proporcionam calor equilibrado nas zonas cobertas pelas alças do bibtight.\n  \u003c\/p\u003e\n\n  \u003ch3\u003eCaracterísticas\u003c\/h3\u003e\n  \u003cul\u003e\n    \u003cli\u003e\n\u003cstrong\u003eTecido principal em malha elástica 100% poliéster\u003c\/strong\u003e com tratamento Prosecco hidrofílico para máxima transferência de humidade.\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003ePainéis em PrimaLoft®\u003c\/strong\u003e na cintura e costas, sob as áreas cobertas pelas alças do bibtight, para reduzir o excesso de aquecimento.\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003eGola redonda\u003c\/strong\u003e para melhor integração com camisolas ou jerseys de gola baixa.\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003ePeso:\u003c\/strong\u003e 151 g\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003eTemperatura:\u003c\/strong\u003e 6°C – 16°C \/ 43°F – 61°F\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003eFIT:\u003c\/strong\u003e Tailored\u003c\/li\u003e\n  \u003c\/ul\u003e\n\n  \u003ch3\u003eCONFORTO E TECNOLOGIA\u003c\/h3\u003e\n  \u003cp\u003e\n    A base layer \u003cstrong\u003eProsecco Tech\u003c\/strong\u003e foi pensada para maximizar o conforto durante saídas em tempo frio,  \n    mantendo o corpo seco e regulando a temperatura mesmo em esforço prolongado.  \n    A combinação dos tecidos \u003cstrong\u003eProsecco\u003c\/strong\u003e e \u003cstrong\u003ePrimaLoft®\u003c\/strong\u003e cria uma camada leve, respirável e termicamente eficiente —  \n    ideal para usar sob o seu jersey ou casaco de inverno \u003cstrong\u003eCastelli\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":56456200421758,"sku":"4520529010 S","price":59.9,"currency_code":"EUR","in_stock":false},{"title":"M","offer_id":56456200454526,"sku":"4520529010 M","price":59.9,"currency_code":"EUR","in_stock":false},{"title":"L","offer_id":56456200487294,"sku":"4520529010 L","price":59.9,"currency_code":"EUR","in_stock":true},{"title":"XL","offer_id":56456200520062,"sku":"4520529010 XL","price":59.9,"currency_code":"EUR","in_stock":false},{"title":"2XL","offer_id":56456200552830,"sku":"4520529010 2XL","price":59.9,"currency_code":"EUR","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0946\/1832\/1278\/files\/167642955971-0.jpg?v=1761317701"},{"product_id":"cycling-bibtight-castelli-sorpasso-ros-bibtight-black","title":"CASTELLI SORPASSO RoS BIBTIGHT BLACK","description":"\u003cdiv class=\"\"\u003e\n\u003ch2\u003eCASTELLI SORPASSO RoS\u003c\/h2\u003e\n\u003cp\u003e\u003cstrong\u003eThe ultimate winter pants for long distances: designed to offer performance and comfort across an exceptional temperature range.\u003c\/strong\u003e\u003cbr\u003eThe Sorpasso RoS (Rain or Shine) pants are the technical choice for cyclists who don't stop during the colder months. Thanks to the strategic combination of Nano Flex fabrics, these pants provide superior thermal insulation and industry-leading water repellency, allowing you to train hard in dry conditions as well as in light rain or wet roads.\u003c\/p\u003e\n\u003ch3\u003eTextile Engineering and Comfort Project X2\u003c\/h3\u003e\n\u003cp\u003eThe secret of Sorpassos lies in body mapping: the Nano Flex 3G fabric offers softness and compression in the legs, while the Xtra Dry panels guarantee extra warmth in the core and thighs. Inside, the Progetto X2 Air Seamless chamois protects your contact points during multi-hour outings. With an anatomical cut that perfectly adapts to movement and straps that disappear under a jacket, these pants are the benchmark for winter.\u003c\/p\u003e\n\u003ch3\u003eTechnical Specifications\u003c\/h3\u003e\n\u003cul class=\"\"\u003e\n\u003cli\u003e\n\u003cstrong\u003eNano Flex 3G:\u003c\/strong\u003e Third-generation warmth, elasticity, and water repellency.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eNano Flex Xtra Dry Panels:\u003c\/strong\u003e Enhanced insulation in critical areas and splash protection.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eCarneira Progetto X2 Air Seamless:\u003c\/strong\u003e Professional cushioning for long distances\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eAnatomical Cut:\u003c\/strong\u003e Precision fit at the hips and knees for total freedom of movement.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eLie-Flat handles:\u003c\/strong\u003e Ultra-flat profile for maximum comfort and aerodynamics.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eYKK® Camlock® zippers:\u003c\/strong\u003e Secure and easy-to-handle leg termination.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eHigh Visibility:\u003c\/strong\u003e Rear reflective details for safety in low light conditions.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eTemperature Range:\u003c\/strong\u003e Effective from -2°C to 10°C\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003eUnmatched versatility for those who demand the best equipment to face the harsh winter.\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":"S","offer_id":56456200749438,"sku":"4520522010 S-1","price":149.9,"currency_code":"EUR","in_stock":false},{"title":"M","offer_id":56456200782206,"sku":"4520522010 M-1","price":149.9,"currency_code":"EUR","in_stock":false},{"title":"L","offer_id":56456200814974,"sku":"4520522010 L-1","price":149.9,"currency_code":"EUR","in_stock":false},{"title":"XL","offer_id":56456200847742,"sku":"4520522010 XL-1","price":149.9,"currency_code":"EUR","in_stock":false},{"title":"2XL","offer_id":56456200880510,"sku":"4520522010 2XL-1","price":149.9,"currency_code":"EUR","in_stock":false},{"title":"3XL","offer_id":56456200913278,"sku":"4520522010 3XL-1","price":149.9,"currency_code":"EUR","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0946\/1832\/1278\/files\/167063063504-0.jpg?v=1761317703"},{"product_id":"castelli-beta-ros-cycling-jacket-windproof-water-repellent-breathable","title":"CASACO CASTELLI BETA RoS VERDE","description":"\u003cdiv class=\"cc-simple\"\u003e\n  \u003ch2\u003eCASTELLI BETA RoS\u003c\/h2\u003e\n\n  \u003cp\u003e\u003cstrong\u003eA barreira perfeita contra o vento e a chuva leve, tão leve e elástica que mal notarás que a estás a vestir.\u003c\/strong\u003e\u003cbr\u003e\n  O casaco Beta RoS foi criado para os ciclistas que sentem falta da liberdade de usar apenas uma jersey quando o verão termina. Utilizando os tecidos mais leves e flexíveis da Castelli, este casaco oferece uma proteção surpreendente contra os elementos, mantendo uma respirabilidade de elite para as tuas saídas de alta intensidade no outono e primavera.\u003c\/p\u003e\n\n  \u003ch3\u003ePerformance Minimalista e Proteção Polartec®\u003c\/h3\u003e\n  \u003cp\u003eEquipado com a tecnologia Polartec® NeoShell® na frente, este casaco bloqueia o vento e a água enquanto acompanha cada movimento do teu corpo. O corte Race Fit elimina o drapejar do tecido ao vento, ajudando a manter o calor corporal sem causar sobreaquecimento. É uma peça técnica focada no essencial: velocidade, proteção e conforto absoluto em qualquer terreno.\u003c\/p\u003e\n\n  \u003ch3\u003eEspecificações Técnicas\u003c\/h3\u003e\n  \u003cul class=\"cc-list\"\u003e\n    \u003cli\u003e\n\u003cstrong\u003eFrente Polartec® NeoShell®:\u003c\/strong\u003e Membrana impermeável e corta-vento de alta elasticidade\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003eCostas Nano Flex Light:\u003c\/strong\u003e Respirabilidade extrema com proteção contra salpicos\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003eVersatilidade RoS:\u003c\/strong\u003e Excelente desempenho com sol ou chuva leve\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003eFecho YKK® Vislon®:\u003c\/strong\u003e Manipulação fácil para regulação térmica instantânea\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003eVisibilidade:\u003c\/strong\u003e Painel refletor traseiro de grandes dimensões para segurança\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003eArrumação:\u003c\/strong\u003e 3 bolsos traseiros amplos\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003eCorte:\u003c\/strong\u003e Race Fit (Ajuste aerodinâmico de competição)\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003eIntervalo Térmico:\u003c\/strong\u003e Ideal para temperaturas entre 8°C e 18°C\u003c\/li\u003e\n  \u003c\/ul\u003e\n\n  \u003cp style=\"font-size:13px;color:#555;margin-top:10px;\"\u003eO Beta RoS é a escolha definitiva para quem procura proteção técnica sem abdicar da sensação de leveza de uma jersey de competição.\u003c\/p\u003e\n\u003c\/div\u003e\n\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":"S","offer_id":56456207237502,"sku":"4520505353 S-1","price":129.9,"currency_code":"EUR","in_stock":false},{"title":"M","offer_id":56456207270270,"sku":"4520505353 M-1","price":129.9,"currency_code":"EUR","in_stock":true},{"title":"L","offer_id":56456207303038,"sku":"4520505353 L-1","price":129.9,"currency_code":"EUR","in_stock":false},{"title":"XL","offer_id":56456207335806,"sku":"4520505353 XL-1","price":129.9,"currency_code":"EUR","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0946\/1832\/1278\/files\/167836765267-0.jpg?v=1761317766"},{"product_id":"castelli-beta-ros-cycling-jacket-windproof-water-repellent-breathable-1","title":"CASACO CASTELLI BETA RoS PRETO","description":"\u003cdiv class=\"cc-simple\"\u003e\n  \u003ch2\u003eCASTELLI BETA RoS\u003c\/h2\u003e\n\n  \u003cp\u003e\u003cstrong\u003eA barreira perfeita contra o vento e a chuva leve, tão leve e elástica que mal notarás que a estás a vestir.\u003c\/strong\u003e\u003cbr\u003e\n  O casaco Beta RoS foi criado para os ciclistas que sentem falta da liberdade de usar apenas uma jersey quando o verão termina. Utilizando os tecidos mais leves e flexíveis da Castelli, este casaco oferece uma proteção surpreendente contra os elementos, mantendo uma respirabilidade de elite para as tuas saídas de alta intensidade no outono e primavera.\u003c\/p\u003e\n\n  \u003ch3\u003ePerformance Minimalista e Proteção Polartec®\u003c\/h3\u003e\n  \u003cp\u003eEquipado com a tecnologia Polartec® NeoShell® na frente, este casaco bloqueia o vento e a água enquanto acompanha cada movimento do teu corpo. O corte Race Fit elimina o drapejar do tecido ao vento, ajudando a manter o calor corporal sem causar sobreaquecimento. É uma peça técnica focada no essencial: velocidade, proteção e conforto absoluto em qualquer terreno.\u003c\/p\u003e\n\n  \u003ch3\u003eEspecificações Técnicas\u003c\/h3\u003e\n  \u003cul class=\"cc-list\"\u003e\n    \u003cli\u003e\n\u003cstrong\u003eFrente Polartec® NeoShell®:\u003c\/strong\u003e Membrana impermeável e corta-vento de alta elasticidade\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003eCostas Nano Flex Light:\u003c\/strong\u003e Respirabilidade extrema com proteção contra salpicos\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003eVersatilidade RoS:\u003c\/strong\u003e Excelente desempenho com sol ou chuva leve\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003eFecho YKK® Vislon®:\u003c\/strong\u003e Manipulação fácil para regulação térmica instantânea\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003eVisibilidade:\u003c\/strong\u003e Painel refletor traseiro de grandes dimensões para segurança\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003eArrumação:\u003c\/strong\u003e 3 bolsos traseiros amplos\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003eCorte:\u003c\/strong\u003e Race Fit (Ajuste aerodinâmico de competição)\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003eIntervalo Térmico:\u003c\/strong\u003e Ideal para temperaturas entre 8°C e 18°C\u003c\/li\u003e\n  \u003c\/ul\u003e\n\n  \u003cp style=\"font-size:13px;color:#555;margin-top:10px;\"\u003eO Beta RoS é a escolha definitiva para quem procura proteção técnica sem abdicar da sensação de leveza de uma jersey de competição.\u003c\/p\u003e\n\u003c\/div\u003e\n\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":"S","offer_id":56456208023934,"sku":"4520505085 S-2","price":129.9,"currency_code":"EUR","in_stock":false},{"title":"M","offer_id":56456208056702,"sku":"4520505085 M-2","price":129.9,"currency_code":"EUR","in_stock":false},{"title":"L","offer_id":56456208089470,"sku":"4520505085 L-2","price":129.9,"currency_code":"EUR","in_stock":false},{"title":"XL","offer_id":56456208122238,"sku":"4520505085 XL-2","price":129.9,"currency_code":"EUR","in_stock":false},{"title":"2XL","offer_id":56456208155006,"sku":"4520505085 2XL-2","price":129.9,"currency_code":"EUR","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0946\/1832\/1278\/files\/167836766945-0.jpg?v=1761317772"},{"product_id":"castelli-espresso-air-cycling-jacket-winter-breathable-warm-fleece","title":"CASACO CASTELLI ESPRESSO AIR PRETO","description":"\u003cdiv class=\"product-description\"\u003e\n  \u003ch2\u003eCASTELLI ESPRESSO AIR CYCLING JACKET\u003c\/h2\u003e\n\n  \u003cp\u003e\n    A \u003cstrong\u003eCastelli Espresso Air Jacket\u003c\/strong\u003e foi criada para oferecer o equilíbrio perfeito entre \u003cstrong\u003ecalor, respirabilidade e conforto\u003c\/strong\u003e, mesmo nos dias de inverno mais frios.  \n    Desenvolvida com a exclusiva \u003cstrong\u003eRistretto Technology\u003c\/strong\u003e, esta jaqueta garante uma ventilação controlada, mantendo o corpo seco e quente durante horas na estrada.  \n    O tecido \u003cstrong\u003eRistretto Warm\u003c\/strong\u003e, com interior em velo, proporciona um ajuste elástico e ergonómico que acompanha cada movimento do ciclista.\n  \u003c\/p\u003e\n\n  \u003ch3\u003eCaracterísticas\u003c\/h3\u003e\n  \u003cul\u003e\n    \u003cli\u003e\n\u003cstrong\u003eTecnologia Ristretto\u003c\/strong\u003e — respirabilidade e regulação térmica incomparáveis, mantendo o corpo seco e aquecido.\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003eTecido Ristretto Warm\u003c\/strong\u003e — interior em velo para aquecimento e elasticidade, garantindo conforto excecional.\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003eTratamento DWR sem PFAS\u003c\/strong\u003e — repele chuva leve e salpicos de estrada de forma ecológica.\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003eFecho YKK® Vislon®\u003c\/strong\u003e — suave, resistente e fácil de abrir mesmo com luvas.\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003e3 bolsos traseiros planos\u003c\/strong\u003e com aba de segurança interior para evitar que os objetos caiam.\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003eCintura com corte cru e perfil baixo\u003c\/strong\u003e que impede a entrada de ar frio.\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003eElementos refletivos\u003c\/strong\u003e para visibilidade e segurança acrescida em condições de pouca luz.\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003eDesenvolvida em parceria com ITTTAI®\u003c\/strong\u003e — especialista em laminação e membranas, para criar um tecido exclusivo com proteção e respirabilidade avançadas.\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003ePeso:\u003c\/strong\u003e 417 g\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003eTemperatura:\u003c\/strong\u003e 0°C – 10°C \/ 32°F – 50°F\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003eFIT:\u003c\/strong\u003e Regular\u003c\/li\u003e\n  \u003c\/ul\u003e\n\n  \u003ch3\u003eRespirabilidade e Calor em Perfeita Harmonia\u003c\/h3\u003e\n  \u003cp\u003e\n    Graças à \u003cstrong\u003eRistretto Technology\u003c\/strong\u003e, esta jaqueta permite uma passagem controlada de ar para evitar o sobreaquecimento,  \n    enquanto o interior em velo cria uma camada isolante ideal para pedaladas longas no frio.  \n    O tecido elástico garante liberdade total de movimento e um ajuste justo sem comprometer o conforto.\n  \u003c\/p\u003e\n\n  \u003cp\u003e\n    A \u003cstrong\u003eEspresso Air Jacket\u003c\/strong\u003e é também funcional em cada detalhe: os bolsos traseiros amplos com aba de segurança mantêm os teus objetos protegidos,  \n    e o tratamento DWR ecológico protege contra a chuva leve.  \n    Seja para treinos intensos ou longas aventuras de inverno, esta é a jaqueta que vais querer usar sempre que a temperatura descer.\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":56456208253310,"sku":"4524502085 S-1","price":169.9,"currency_code":"EUR","in_stock":false},{"title":"M","offer_id":56456208286078,"sku":"4524502085 M-1","price":169.9,"currency_code":"EUR","in_stock":false},{"title":"L","offer_id":56456208318846,"sku":"4524502085 L-1","price":169.9,"currency_code":"EUR","in_stock":false},{"title":"XL","offer_id":56456208351614,"sku":"4524502085 XL-1","price":169.9,"currency_code":"EUR","in_stock":false},{"title":"2XL","offer_id":56456208384382,"sku":"4524502085 2XL-1","price":169.9,"currency_code":"EUR","in_stock":false},{"title":"3XL","offer_id":56456208417150,"sku":"4524502085 3XL-1","price":169.9,"currency_code":"EUR","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0946\/1832\/1278\/files\/167822337352-0.jpg?v=1761317774"},{"product_id":"cycling-bibtight-castelli-sorpasso-ros-bibtight-black-silver-reflex","title":"CASTELLI SORPASSO RoS BIBTIGHT BLACK","description":"\u003cdiv class=\"\"\u003e\n\u003ch2\u003eCASTELLI SORPASSO RoS BIBTIGHT\u003c\/h2\u003e\n\u003cp\u003eThe \u003cstrong\u003eCastelli Sorpasso RoS Bibtight\u003c\/strong\u003e was designed for long hours on the road, offering performance and comfort. superior under any circumstances. Made with \u003cstrong\u003eNano Flex 3G\u003c\/strong\u003e and \u003cstrong\u003eNano Flex Xtra Dry\u003c\/strong\u003e fabrics, it combines warmth, elasticity and water resistance. guaranteeing protection and freedom of movement even on the coldest and wettest days. The anatomical cut and the \u003cstrong\u003eProgetto X2 Air Seamless cushion\u003c\/strong\u003e guarantee unparalleled comfort during extended rides.\u003c\/p\u003e\n\u003ch3\u003eFeatures\u003c\/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cstrong\u003eNano Flex 3G fabric\u003c\/strong\u003e — the best balance between warmth, elastic compression, softness, and water repellency.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eNano Flex Xtra Dry panels\u003c\/strong\u003e on the front and thighs for enhanced thermal insulation, and on the back for splash protection.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eAnatomical cut\u003c\/strong\u003e at the hips and knees, adapting naturally to the body in motion.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eReflective elements\u003c\/strong\u003e for maximum visibility in low-light conditions.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eFlat, elastic straps\u003c\/strong\u003e for a comfortable fit without excessive pressure.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eYKK® Camlock® zippers\u003c\/strong\u003e at the ankles for easy opening and closing.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eWeight:\u003c\/strong\u003e 381 g\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eTemperature:\u003c\/strong\u003e -2°C – 10°C \/ 28°F – 50°F\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eFIT:\u003c\/strong\u003e Tailored\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch3\u003eRoS Technology — Rain or Shine\u003c\/h3\u003e\n\u003cp\u003e\u003cstrong\u003eCastelli\u003c\/strong\u003e developed the \u003cstrong\u003eRoS (Rain or Shine)\u003c\/strong\u003e line as the ultimate solution for variable conditions: Superior performance in dry weather, with sufficient water resistance to handle light rain or wet roads. All this without compromising breathability and ventilation, essential for maintaining comfort for hours in the saddle. A versatile and premium biblight, ready for your winter adventures.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c!-- ===== GUIA DE TAMANHOS CASTELLI ===== --\u003e\n\u003cdiv class=\"\"\u003e\u003c\/div\u003e","brand":"Castelli","offers":[{"title":"S","offer_id":56456208777598,"sku":"4520522710 S-1","price":149.9,"currency_code":"EUR","in_stock":false},{"title":"M","offer_id":56456208810366,"sku":"4520522710 M-1","price":149.9,"currency_code":"EUR","in_stock":true},{"title":"L","offer_id":56456208843134,"sku":"4520522710 L-1","price":149.9,"currency_code":"EUR","in_stock":false},{"title":"XL","offer_id":56456208875902,"sku":"4520522710 XL-1","price":149.9,"currency_code":"EUR","in_stock":false},{"title":"2XL","offer_id":56456208908670,"sku":"4520522710 2XL-1","price":149.9,"currency_code":"EUR","in_stock":false},{"title":"3XL","offer_id":56456208941438,"sku":"4520522710 3XL-1","price":149.9,"currency_code":"EUR","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0946\/1832\/1278\/files\/167063067165-0.jpg?v=1761317778"},{"product_id":"castelli-free-aero-rc-bibtight-winter-cycling-thermal-breathable-windproof","title":"CASTELLI FREE AERO RC BIBTIGHT BLACK","description":"\u003cdiv class=\"\"\u003e\n\u003ch2\u003eCASTELLI FREE AERO RC BIBTIGHT\u003c\/h2\u003e\n\u003cp\u003e\u003cstrong\u003eThe ultimate choice for winter training: aerodynamic performance with the perfect balance between thermal insulation and elasticity.\u003c\/strong\u003e\u003cbr\u003eThe Free Aero RC Bibtight pants were developed to be your first choice on most winter days. Focused on long-distance comfort, these pants use Nano Flex 3G technology to keep your body warm and repel water, allowing you to focus solely on the road, regardless of weather conditions.\u003c\/p\u003e\n\u003ch3\u003eNano Flex Tissue Engineering\u003c\/h3\u003e\n\u003cp\u003eFrom waist to knee, the Nano Flex 3G fabric offers exceptional softness and effective protection against wind and light rain. On the lower leg, a lighter woven fabric with a brushed interior protects against constant splashes from wet roads. The absence of ankle closures, thanks to the raw-cut finish, reduces bulk under shoe covers and increases overall comfort while cycling.\u003c\/p\u003e\n\u003ch3\u003eTechnical Specifications\u003c\/h3\u003e\n\u003cul class=\"\"\u003e\n\u003cli\u003e\n\u003cstrong\u003eNano Flex 3G:\u003c\/strong\u003e Third-generation water repellency and superior heat resistance.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eCarneira Progetto X2 Air Seamless:\u003c\/strong\u003e Professional-level cushioning for long distances\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eMinimalist Handles:\u003c\/strong\u003e Maximum stability without unnecessary bulk.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eRaw-Cut Finishes:\u003c\/strong\u003e Zipperless elastic legs for a perfect fit with accessories.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eMoisture Management:\u003c\/strong\u003e Optimized breathability to prevent cooling from sweat.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eSafety:\u003c\/strong\u003e Rear reflective panels for visibility on gray days.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eCut:\u003c\/strong\u003e Race Fit (High-performance fit)\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003eDesigned for base days and pre-season training, the Free Aero RC raises the bar for comfort in winter cycling.\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":"S","offer_id":56456209629566,"sku":"4522523010 S-1","price":109.9,"currency_code":"EUR","in_stock":false},{"title":"M","offer_id":56456209662334,"sku":"4522523010 M-1","price":109.9,"currency_code":"EUR","in_stock":false},{"title":"L","offer_id":56456209695102,"sku":"4522523010 L-1","price":109.9,"currency_code":"EUR","in_stock":false},{"title":"XL","offer_id":56456209727870,"sku":"4522523010 XL-1","price":109.9,"currency_code":"EUR","in_stock":false},{"title":"2XL","offer_id":56456209760638,"sku":"4522523010 2XL-1","price":109.9,"currency_code":"EUR","in_stock":false},{"title":"3XL","offer_id":56456209793406,"sku":"4522523010 3XL-1","price":109.9,"currency_code":"EUR","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0946\/1832\/1278\/files\/167063068344-0.jpg?v=1761317788"},{"product_id":"cycling-bibtight-castelli-sorpasso-ros-bibtight-blue","title":"CASTELLI SORPASSO RoS BIBTIGHT BLUE","description":"\u003cdiv class=\"\"\u003e\n\u003ch2\u003eCASTELLI SORPASSO RoS CYCLING BIBTIGHT\u003c\/h2\u003e\n\u003cp\u003eThe \u003cstrong\u003eCastelli Sorpasso RoS Bibtight\u003c\/strong\u003e was designed to provide comfort during long hours of cycling in a wide variety of weather conditions. Made with advanced \u003cstrong\u003eNano Flex 3G\u003c\/strong\u003e fabric, it offers a perfect combination of warmth, elasticity and water repellency, while \u003cstrong\u003eNano Flex Xtra Dry\u003c\/strong\u003e panels in the most exposed areas increase thermal protection. The anatomical cut and the \u003cstrong\u003eProgetto X2 Air Seamless\u003c\/strong\u003e cushion ensure exceptional comfort on long-distance rides.\u003c\/p\u003e\n\u003ch3\u003eFeatures\u003c\/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cstrong\u003eNano Flex 3G fabric\u003c\/strong\u003e — the ideal balance of warmth, elastic compression, softness, and water repellency.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eNano Flex Xtra Dry panels\u003c\/strong\u003e on the upper front and thighs for added warmth, and on the back for splash protection.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eAnatomical cut\u003c\/strong\u003e at the hips and knees for a natural fit and complete freedom of movement.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eReflective inserts\u003c\/strong\u003e for maximum visibility in low-light conditions.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eFlat elastic straps\u003c\/strong\u003e that fit comfortably against the body without creating pressure.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eYKK® Camlock® zippers\u003c\/strong\u003e at the ankles for easy on and off and a secure fit.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eWeight:\u003c\/strong\u003e 381 g\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eTemperature:\u003c\/strong\u003e -2°C – 10°C \/ 28°F – 50°F\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eFIT:\u003c\/strong\u003e Tailored\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch3\u003ePROGETTO X2 AIR SEAMLESS – COMFORT FOR LONG DISTANCES\u003c\/h3\u003e\n\u003cp\u003eThe \u003cstrong\u003eProgetto X2 Air Seamless\u003c\/strong\u003e cushion is composed of two independent layers that guarantee maximum comfort:\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cstrong\u003eSkin Care Layer\u003c\/strong\u003e — a seamless, bacteriostatic layer that adapts to the body and saddle, preventing irritation.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eCushioning Layer\u003c\/strong\u003e — a perforated, dual-density structure that ensures ventilation and shock absorption, even on the longest rides.\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch3\u003eRoS – Performance Rain or Shine\u003c\/h3\u003e\n\u003cp\u003e\u003cstrong\u003eRoS (Rain or Shine)\u003c\/strong\u003e technology represents Castelli's commitment to creating the best possible clothing for dry conditions. without compromising rain protection. The result is a versatile, breathable, and durable bib-front shoe, ideal for facing winter with comfort and confidence. just like the professional cyclists from \u003cstrong\u003eSoudal Quick-Step\u003c\/strong\u003e .\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c!-- ===== GUIA DE TAMANHOS CASTELLI ===== --\u003e\n\u003cdiv class=\"\"\u003e\u003c\/div\u003e","brand":"Castelli","offers":[{"title":"S","offer_id":56456210448766,"sku":"4520522424 S-1","price":149.9,"currency_code":"EUR","in_stock":false},{"title":"M","offer_id":56456210481534,"sku":"4520522424 M-1","price":149.9,"currency_code":"EUR","in_stock":false},{"title":"L","offer_id":56456210514302,"sku":"4520522424 L-1","price":149.9,"currency_code":"EUR","in_stock":false},{"title":"XL","offer_id":56456210547070,"sku":"4520522424 XL-1","price":149.9,"currency_code":"EUR","in_stock":false},{"title":"2XL","offer_id":56456210579838,"sku":"4520522424 2XL-1","price":149.9,"currency_code":"EUR","in_stock":false},{"title":"3XL","offer_id":56456210612606,"sku":"4520522424 3XL-1","price":149.9,"currency_code":"EUR","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0946\/1832\/1278\/files\/167063065401-0.jpg?v=1761317796"},{"product_id":"cycling-bibtight-castelli-soudal-quick-step-sorpasso-ros-bibtight","title":"CASTELLI SORPASSO RoS SOUDAL QUICK-STEP BIBTIGHT","description":"\u003cdiv class=\"\"\u003e\n\u003ch2\u003eCASTELLI SORPASSO RoS SOUDAL QUICK-STEP BIBTIGHT\u003c\/h2\u003e\n\u003cp\u003eDesigned for long hours in any condition, the \u003cstrong\u003eCastelli Sorpasso RoS Bibtight\u003c\/strong\u003e is the same model used by the \u003cstrong\u003eSoudal Quick-Step team\u003c\/strong\u003e during winter training. It combines thermal protection, elasticity, and water resistance, offering exceptional performance and comfort in the most demanding conditions.\u003c\/p\u003e\n\u003ch3\u003eFeatures\u003c\/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cstrong\u003eNano Flex 3G fabric\u003c\/strong\u003e – the perfect balance of warmth, elasticity, softness, and water repellency.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eNano Flex Xtra Dry panels\u003c\/strong\u003e on the upper front, thighs, and rear area provide additional thermal protection and protection against road splashes.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eAnatomical cut\u003c\/strong\u003e at the hips and knees for an ideal fit and complete freedom of movement.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eReflective panels\u003c\/strong\u003e on the ankles for maximum visibility in low-light conditions.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eFlat, elastic straps\u003c\/strong\u003e that ensure comfort and stability during movement.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eYKK® Camlock® zippers\u003c\/strong\u003e on the legs for adjustment and ease of dressing.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eProgetto X2 Air Seamless chamois\u003c\/strong\u003e — high-performance cushion for long hours in the saddle.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eTemperature range:\u003c\/strong\u003e 0°C – 12°C\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eWeight:\u003c\/strong\u003e 301 g\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eFIT:\u003c\/strong\u003e Race\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch3\u003ePROGETTO X2 AIR SEAMLESS – PROFESSIONAL-LEVEL COMFORT\u003c\/h3\u003e\n\u003cp\u003eThe \u003cstrong\u003eProgetto X2 Air Seamless\u003c\/strong\u003e cushion represents the pinnacle of Castelli technology in comfort for long distances. It is composed of \u003cstrong\u003etwo independent layers\u003c\/strong\u003e :\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cstrong\u003eSkin Care Layer\u003c\/strong\u003e — a seamless, bacteriostatic layer that adapts perfectly to the body and saddle, preventing irritation and creases.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eCushioning Layer\u003c\/strong\u003e — \u003cem\u003eSeamless Integrated Technology (SIT)\u003c\/em\u003e with perforated viscose comfort zones for maximum breathability and cushioning.\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch3\u003ePerformance and endurance in any condition.\u003c\/h3\u003e\n\u003cp\u003eThe \u003cstrong\u003eSorpasso RoS\u003c\/strong\u003e was developed for cyclists who don't slow down in winter. With its advanced \u003cstrong\u003eRoS (Rain or Shine)\u003c\/strong\u003e fabric, it retains warmth on cold days and repels water in light rain. The ergonomic cut and ideal elasticity ensure freedom of movement, while the soft inner lining offers lasting comfort. It's the perfect equipment for tackling long training sessions and unpredictable conditions with the same performance as the professionals.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c!-- ===== GUIA DE TAMANHOS CASTELLI ===== --\u003e\n\u003cdiv class=\"\"\u003e\u003c\/div\u003e","brand":"Castelli","offers":[{"title":"S","offer_id":56456211366270,"sku":"4234200424 S-1","price":139.9,"currency_code":"EUR","in_stock":false},{"title":"M","offer_id":56456211399038,"sku":"4234200424 M-1","price":139.9,"currency_code":"EUR","in_stock":false},{"title":"L","offer_id":56456211431806,"sku":"4234200424 L-1","price":139.9,"currency_code":"EUR","in_stock":false},{"title":"XL","offer_id":56456211464574,"sku":"4234200424 XL-1","price":139.9,"currency_code":"EUR","in_stock":false},{"title":"2XL","offer_id":56456211497342,"sku":"4234200424 2XL-1","price":139.9,"currency_code":"EUR","in_stock":false},{"title":"3XL","offer_id":56456211530110,"sku":"4234200424 3XL-1","price":139.9,"currency_code":"EUR","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0946\/1832\/1278\/files\/166900409055-0.jpg?v=1761317806"},{"product_id":"cycling-bibtight-castelli-sorpasso-ros-bibtight-black-red","title":"CASTELLI SORPASSO RoS BIBTIGHT BLACK \/ RED","description":"\u003cdiv class=\"\"\u003e\n\u003ch2\u003eCASTELLI SORPASSO RoS\u003c\/h2\u003e\n\u003cp\u003e\u003cstrong\u003eThe ultimate winter pants for long distances: designed to offer performance and comfort across an exceptional temperature range.\u003c\/strong\u003e\u003cbr\u003eThe Sorpasso RoS (Rain or Shine) pants are the technical choice for cyclists who don't stop during the colder months. Thanks to the strategic combination of Nano Flex fabrics, these pants provide superior thermal insulation and industry-leading water repellency, allowing you to train hard in dry conditions as well as in light rain or wet roads.\u003c\/p\u003e\n\u003ch3\u003eTextile Engineering and Comfort Project X2\u003c\/h3\u003e\n\u003cp\u003eThe secret of Sorpassos lies in body mapping: the Nano Flex 3G fabric offers softness and compression in the legs, while the Xtra Dry panels guarantee extra warmth in the core and thighs. Inside, the Progetto X2 Air Seamless chamois protects your contact points during multi-hour outings. With an anatomical cut that perfectly adapts to movement and straps that disappear under a jacket, these pants are the benchmark for winter.\u003c\/p\u003e\n\u003ch3\u003eTechnical Specifications\u003c\/h3\u003e\n\u003cul class=\"\"\u003e\n\u003cli\u003e\n\u003cstrong\u003eNano Flex 3G:\u003c\/strong\u003e Third-generation warmth, elasticity, and water repellency.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eNano Flex Xtra Dry Panels:\u003c\/strong\u003e Enhanced insulation in critical areas and splash protection.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eCarneira Progetto X2 Air Seamless:\u003c\/strong\u003e Professional cushioning for long distances\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eAnatomical Cut:\u003c\/strong\u003e Precision fit at the hips and knees for total freedom of movement.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eLie-Flat handles:\u003c\/strong\u003e Ultra-flat profile for maximum comfort and aerodynamics.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eYKK® Camlock® zippers:\u003c\/strong\u003e Secure and easy-to-handle leg termination.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eHigh Visibility:\u003c\/strong\u003e Rear reflective details for safety in low light conditions.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eTemperature Range:\u003c\/strong\u003e Effective from -2°C to 10°C\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003eUnmatched versatility for those who demand the best equipment to face the harsh winter.\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":"S","offer_id":56456213070206,"sku":"4520522023 S-1","price":124.9,"currency_code":"EUR","in_stock":false},{"title":"M","offer_id":56456213102974,"sku":"4520522023 M-1","price":124.9,"currency_code":"EUR","in_stock":false},{"title":"L","offer_id":56456213135742,"sku":"4520522023 L-1","price":124.9,"currency_code":"EUR","in_stock":false},{"title":"XL","offer_id":56456213168510,"sku":"4520522023 XL-1","price":124.9,"currency_code":"EUR","in_stock":false},{"title":"2XL","offer_id":56456213201278,"sku":"4520522023 2XL-1","price":124.9,"currency_code":"EUR","in_stock":false},{"title":"3XL","offer_id":56456213234046,"sku":"4520522023 3XL-1","price":124.9,"currency_code":"EUR","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0946\/1832\/1278\/files\/167063067991-0.jpg?v=1761317823"},{"product_id":"cycling-jacket-brand-castelli-model-unlimited-jacket","title":"CASTELLI UNLIMITED JACKET BLACK","description":"\u003cdiv class=\"\"\u003e\n\u003ch2\u003eCASTELLI UNLIMITED CYCLING JACKET\u003c\/h2\u003e\n\u003cp\u003eThe \u003cstrong\u003eCastelli Unlimited Jacket\u003c\/strong\u003e is the ideal choice for those seeking comfort and protection during road or gravel adventures. Its \u003cstrong\u003ewarm brushed fabric\u003c\/strong\u003e offers exceptional thermal insulation, while \u003cstrong\u003ewindproof\u003c\/strong\u003e areas ensure the perfect balance between warmth and breathability. Versatile and functional, this jacket is made for cyclists who appreciate performance and style on any terrain.\u003c\/p\u003e\n\u003ch3\u003eFeatures\u003c\/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFully \u003cstrong\u003elined with fleece\u003c\/strong\u003e for superior warmth and comfort.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eWindproof protection positioned\u003c\/strong\u003e in the most exposed areas to block the cold.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eSmart additional pockets\u003c\/strong\u003e : invisible front pocket for quick access and elastic mesh back pocket for storing gloves, jacket or snacks.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eLightweight elastic collar\u003c\/strong\u003e that prevents cold air from entering.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003e3 rear cargo pockets\u003c\/strong\u003e for carrying essential equipment.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eFull-length YKK® zipper\u003c\/strong\u003e for ventilation adjustment and thermal regulation.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eReflective details\u003c\/strong\u003e on the waistband and cuffs for increased visibility.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eTemperature:\u003c\/strong\u003e 4°C – 14°C \/ 39°F – 57°F\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eFIT:\u003c\/strong\u003e Tailored\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch3\u003ePerformance without limits\u003c\/h3\u003e\n\u003cp\u003eCreated for long adventures, the \u003cstrong\u003eUnlimited Jacket\u003c\/strong\u003e combines protection and versatility in a garment that easily adapts to different conditions. The combination of thermal comfort, additional storage pockets, and a tailored cut makes it perfect for riding on trails, gravel, or cold roads. A piece that reflects the true spirit of the \u003cstrong\u003eUnlimited\u003c\/strong\u003e collection — performance and freedom in any course.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c!-- ===== GUIA DE TAMANHOS CASTELLI ===== --\u003e\n\u003cdiv class=\"\"\u003e\u003c\/div\u003e","brand":"Castelli","offers":[{"title":"S","offer_id":56456214151550,"sku":"4524520085 S-1","price":149.9,"currency_code":"EUR","in_stock":false},{"title":"M","offer_id":56456214184318,"sku":"4524520085 M-1","price":149.9,"currency_code":"EUR","in_stock":false},{"title":"L","offer_id":56456214217086,"sku":"4524520085 L-1","price":149.9,"currency_code":"EUR","in_stock":false},{"title":"XL","offer_id":56456214249854,"sku":"4524520085 XL-1","price":149.9,"currency_code":"EUR","in_stock":false},{"title":"2XL","offer_id":56456214282622,"sku":"4524520085 2XL-1","price":149.9,"currency_code":"EUR","in_stock":false},{"title":"3XL","offer_id":56456214315390,"sku":"4524520085 3XL-1","price":149.9,"currency_code":"EUR","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0946\/1832\/1278\/files\/167149871964-0.jpg?v=1761317835"},{"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":"pro-thermal-skully-brand-castelli-soudal-quick-step-2024","title":"CASTELLI SOUDAL QUICK-STEP 2024 SKULLY","description":"\u003cdiv class=\"\"\u003e\n\u003ch2\u003eCASTELLI SOUDAL QUICK-STEP 2024\u003c\/h2\u003e\n\u003cp\u003e\u003cstrong\u003eKeep your head and ears protected with the official Soudal Quick-Step beanie: premium thermal insulation with an ultra-thin profile.\u003c\/strong\u003e\u003cbr\u003eThe Pro Thermal Skully is the essential accessory for tackling winter training in professional peloton style. Made from Thermoflex fabric, this beanie offers an ideal balance between heat retention and breathability, ensuring sweat is wicked away while keeping the cold out.\u003c\/p\u003e\n\u003ch3\u003eEngineering for Maximum Comfort\u003c\/h3\u003e\n\u003cp\u003eDesigned to be worn under a helmet without you even noticing its presence, this hat features laser-cut edges that eliminate unnecessary bulk. Its anatomical shape strategically covers the ears, the areas most sensitive to icy wind, while flat seams ensure there's no irritation during hours in the saddle. It's the pro's choice for the most demanding days.\u003c\/p\u003e\n\u003ch3\u003eTechnical Specifications\u003c\/h3\u003e\n\u003cul class=\"\"\u003e\n\u003cli\u003e\n\u003cstrong\u003eThermoflex fabric:\u003c\/strong\u003e Brushed interior for maximum warmth and softness.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eAnatomical Cut:\u003c\/strong\u003e Pre-molded for full ear coverage.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eSharp-Cut Profile:\u003c\/strong\u003e Flat edge for a perfect fit under the helmet.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eFlat Seams:\u003c\/strong\u003e Low-profile construction to avoid pressure points.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eReflective Details:\u003c\/strong\u003e Rear visibility for increased safety.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eSoudal Quick-Step Edition:\u003c\/strong\u003e Official Team Graphics 2024\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003eFace the winter with the technical protection and winning heritage of Soudal Quick-Step.\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":"Default Title","offer_id":56456215036286,"sku":"4233203424-1","price":19.9,"currency_code":"EUR","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0946\/1832\/1278\/files\/166904198741-0.jpg?v=1761317844"},{"product_id":"castelli-gabba-ros-2-soudal-quick-step-cycling-jacket-waterproof-windproof","title":"CASACO CASTELLI GABBA RoS 2 SOUDAL QUICK-STEP","description":"\u003cdiv class=\"product-description\"\u003e\n  \u003ch2\u003eCASTELLI GABBA RoS 2 SOUDAL QUICK-STEP CYCLING JACKET\u003c\/h2\u003e\n\n  \u003cp\u003e\n    A \u003cstrong\u003eGabba RoS 2\u003c\/strong\u003e é o original que criou uma nova categoria no vestuário de ciclismo.  \n    Uma \u003cstrong\u003ecamisola de manga curta à prova de vento e resistente à água\u003c\/strong\u003e, perfeita tanto para condições húmidas como secas.  \n    Feita para ser usada com \u003cstrong\u003eaquecedores de braços Nano Flex\u003c\/strong\u003e, mantém o tronco quente sem sobreaquecimento — a peça essencial para o outono e primavera.\n  \u003c\/p\u003e\n\n  \u003ch3\u003eCaracterísticas\u003c\/h3\u003e\n  \u003cul\u003e\n    \u003cli\u003e\n\u003cstrong\u003e5.ª geração da icónica Gabba\u003c\/strong\u003e, criada pelos inventores do conceito original.\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003eMais resistente à água do que nunca\u003c\/strong\u003e, mantendo a respirabilidade excecional.\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003eTecido Castelli exclusivo GORE-TEX INFINIUM™ WINDSTOPPER® 205 Warm\u003c\/strong\u003e nas zonas frontais para máxima proteção contra vento e chuva.\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003eTecido GORE-TEX INFINIUM™ WINDSTOPPER® 203 Stretch\u003c\/strong\u003e na parte traseira para maior elasticidade e ventilação.\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003eCosturas seladas nos ombros\u003c\/strong\u003e para resistência adicional à chuva.\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003eFecho YKK® Vislon® de dupla abertura\u003c\/strong\u003e (superior e inferior) para ventilação ajustável, com cobertura adicional contra o vento e chuva.\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003e3 bolsos traseiros\u003c\/strong\u003e com painel refletor na parte inferior para maior visibilidade.\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003ePeso:\u003c\/strong\u003e 329 g\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003eTemperatura:\u003c\/strong\u003e 9˚ – 16˚C \/ 48˚ – 61˚F\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003eFIT:\u003c\/strong\u003e Race\u003c\/li\u003e\n  \u003c\/ul\u003e\n\n  \u003ch3\u003eA peça que mudou o ciclismo\u003c\/h3\u003e\n  \u003cp\u003e\n    Desde a sua estreia em 2010, a \u003cstrong\u003eGabba\u003c\/strong\u003e revolucionou a forma como os profissionais — e agora também os ciclistas amadores — enfrentam o frio e a chuva.  \n    Esta versão \u003cstrong\u003eRoS 2\u003c\/strong\u003e (“Rain or Shine”) é praticamente impermeável, mantendo ao mesmo tempo a respirabilidade e o conforto térmico que sempre a distinguiram.  \n    A combinação de tecidos GORE-TEX INFINIUM™ proporciona \u003cstrong\u003eproteção total na frente e respirabilidade otimizada nas costas\u003c\/strong\u003e, garantindo um equilíbrio perfeito em condições variáveis.  \n    O corte anatómico de corrida e os detalhes refletivos tornam-na ideal para treinos intensos e longas distâncias em clima fresco.  \n    Use-a com \u003cstrong\u003eaquecedores Nano Flex\u003c\/strong\u003e para máxima versatilidade e desempenho.\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":56456215101822,"sku":"4234265424 S-2","price":149.9,"currency_code":"EUR","in_stock":false},{"title":"M","offer_id":56456215134590,"sku":"4234265424 M-2","price":149.9,"currency_code":"EUR","in_stock":false},{"title":"L","offer_id":56456215167358,"sku":"4234265424 L-2","price":149.9,"currency_code":"EUR","in_stock":false},{"title":"XL","offer_id":56456215200126,"sku":"4234265424 XL-2","price":149.9,"currency_code":"EUR","in_stock":false},{"title":"2XL","offer_id":56456215232894,"sku":"4234265424 2XL-2","price":149.9,"currency_code":"EUR","in_stock":false},{"title":"3XL","offer_id":56456215265662,"sku":"4234265424 3XL-2","price":149.9,"currency_code":"EUR","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0946\/1832\/1278\/files\/167824009683-0.jpg?v=1761317847"},{"product_id":"castelli-polare-4-bibtight-winter-cycling-thermal-breathable-windproof","title":"CASTELLI POLARE 4 BIBTIGHT BLACK","description":"\u003cdiv class=\"\"\u003e\n\u003ch2\u003eCASTELLI POLARE 4 BIBTIGHT\u003c\/h2\u003e\n\u003cp\u003eThe \u003cstrong\u003eCastelli Polare 4 Bibtight\u003c\/strong\u003e was designed for the coldest days of the year. Featuring a \u003cstrong\u003ePolartec® AirCore™ front panel\u003c\/strong\u003e that offers complete protection against wind and cold, and \u003cstrong\u003eThermoflex\u003c\/strong\u003e fabric on the back for added warmth and stretch, these pants ensure comfort and performance in sub-zero temperatures.\u003c\/p\u003e\n\u003ch3\u003eFeatures\u003c\/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cstrong\u003eCastelli's warmest biblight lamp\u003c\/strong\u003e , ideal for sub-zero temperatures.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eFull front panel in Polartec® AirCore™\u003c\/strong\u003e for complete wind protection.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eThermoflex fleece fabric\u003c\/strong\u003e on the seat and back of the legs for added warmth and excellent stretch.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eMesh bibs\u003c\/strong\u003e that prevent moisture retention, ensuring breathability.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eKISS Air2 cushion\u003c\/strong\u003e for cushioning and comfort without excessive bulk.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eHigh-visibility reflective strips\u003c\/strong\u003e above the knee (front) and in the calf area (back).\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eAnkle straps\u003c\/strong\u003e for easy dressing and undressing.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eWeight:\u003c\/strong\u003e 311 g\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eTemperature:\u003c\/strong\u003e -5˚ – 5˚C \/ 23˚ – 41˚F\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eFIT:\u003c\/strong\u003e Regular\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch3\u003eComplete protection for the coldest days.\u003c\/h3\u003e\n\u003cp\u003eThe \u003cstrong\u003ePolare 4\u003c\/strong\u003e bikes were designed for those who don't want to give up cycling in winter, even on icy days. \u003cstrong\u003ePolartec® AirCore™\u003c\/strong\u003e fabric creates an effective wind barrier and retains body heat, while \u003cstrong\u003eThermoflex\u003c\/strong\u003e ensures freedom of movement and thermal comfort. With reflective details and excellent breathability, it's the ideal choice for training and long distances in extreme conditions.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c!-- ===== GUIA DE TAMANHOS CASTELLI ===== --\u003e\n\u003cdiv class=\"\"\u003e\u003c\/div\u003e\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\u003c!-- ===== SCRIPT ===== --\u003e","brand":"Castelli","offers":[{"title":"S","offer_id":56456215658878,"sku":"4525516010 S-2","price":164.9,"currency_code":"EUR","in_stock":true},{"title":"M","offer_id":56456215691646,"sku":"4525516010 M-2","price":164.9,"currency_code":"EUR","in_stock":true},{"title":"L","offer_id":56456215724414,"sku":"4525516010 L-2","price":164.9,"currency_code":"EUR","in_stock":true},{"title":"XL","offer_id":56456215757182,"sku":"4525516010 XL-2","price":164.9,"currency_code":"EUR","in_stock":true},{"title":"2XL","offer_id":56456215789950,"sku":"4525516010 2XL-2","price":164.9,"currency_code":"EUR","in_stock":true},{"title":"3XL","offer_id":56456215822718,"sku":"4525516010 3XL-2","price":164.9,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0946\/1832\/1278\/files\/167823893725-0.jpg?v=1763491499"},{"product_id":"castelli-free-aero-rc-bibtight-winter-cycling-thermal-breathable-windproof-1","title":"CASTELLI FREE AERO RC BIBTIGHT BLUE","description":"\u003cdiv class=\"\"\u003e\n\u003ch2\u003eCASTELLI FREE AERO RC BIBTIGHT\u003c\/h2\u003e\n\u003cp\u003e\u003cstrong\u003eThe ultimate choice for winter training: aerodynamic performance with the perfect balance between thermal insulation and elasticity.\u003c\/strong\u003e\u003cbr\u003eThe Free Aero RC Bibtight pants were developed to be your first choice on most winter days. Focused on long-distance comfort, these pants use Nano Flex 3G technology to keep your body warm and repel water, allowing you to focus solely on the road, regardless of weather conditions.\u003c\/p\u003e\n\u003ch3\u003eNano Flex Tissue Engineering\u003c\/h3\u003e\n\u003cp\u003eFrom waist to knee, the Nano Flex 3G fabric offers exceptional softness and effective protection against wind and light rain. On the lower leg, a lighter woven fabric with a brushed interior protects against constant splashes from wet roads. The absence of ankle closures, thanks to the raw-cut finish, reduces bulk under shoe covers and increases overall comfort while cycling.\u003c\/p\u003e\n\u003ch3\u003eTechnical Specifications\u003c\/h3\u003e\n\u003cul class=\"\"\u003e\n\u003cli\u003e\n\u003cstrong\u003eNano Flex 3G:\u003c\/strong\u003e Third-generation water repellency and superior heat resistance.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eCarneira Progetto X2 Air Seamless:\u003c\/strong\u003e Professional-level cushioning for long distances\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eMinimalist Handles:\u003c\/strong\u003e Maximum stability without unnecessary bulk.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eRaw-Cut Finishes:\u003c\/strong\u003e Zipperless elastic legs for a perfect fit with accessories.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eMoisture Management:\u003c\/strong\u003e Optimized breathability to prevent cooling from sweat.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eSafety:\u003c\/strong\u003e Rear reflective panels for visibility on gray days.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eCut:\u003c\/strong\u003e Race Fit (High-performance fit)\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003eDesigned for base days and pre-season training, the Free Aero RC raises the bar for comfort in winter cycling.\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":"S","offer_id":56456216805758,"sku":"4522523424 S-2","price":109.9,"currency_code":"EUR","in_stock":false},{"title":"M","offer_id":56456216838526,"sku":"4522523424 M-2","price":109.9,"currency_code":"EUR","in_stock":false},{"title":"L","offer_id":56456216871294,"sku":"4522523424 L-2","price":109.9,"currency_code":"EUR","in_stock":false},{"title":"XL","offer_id":56456216904062,"sku":"4522523424 XL-2","price":109.9,"currency_code":"EUR","in_stock":true},{"title":"2XL","offer_id":56456216936830,"sku":"4522523424 2XL-2","price":109.9,"currency_code":"EUR","in_stock":false},{"title":"3XL","offer_id":56456216969598,"sku":"4522523424 3XL-2","price":109.9,"currency_code":"EUR","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0946\/1832\/1278\/files\/167826056868-0.jpg?v=1761317862"},{"product_id":"castelli-aria-shell-cycling-jacket-ultralight-windproof-packable-breathable","title":"CASACO CASTELLI ARIA SHELL CINZA","description":"\u003cdiv class=\"product-description\"\u003e\n\u003ch2\u003eCASTELLI ARIA SHELL CYCLING JACKET\u003c\/h2\u003e\n\u003cp\u003eA \u003cstrong\u003eCastelli Aria Shell Jacket\u003c\/strong\u003e redefine o conceito de corta-vento. Extremamente leve, compacta e respirável, foi desenhada para oferecer \u003cstrong\u003eproteção contra o vento\u003c\/strong\u003e na parte frontal enquanto permite uma excelente \u003cstrong\u003eventilação através dos painéis laterais elásticos\u003c\/strong\u003e. Ideal para ampliar a faixa de temperatura das tuas peças favoritas da Castelli.\u003c\/p\u003e\n\u003cp\u003eCom um \u003cstrong\u003eajuste anatómico e aerodinâmico\u003c\/strong\u003e, a Aria Shell elimina o problema do tecido a abanar ao vento, proporcionando uma sensação de segunda pele. Compacta-se facilmente no seu próprio bolso lateral integrado, sendo perfeita tanto para usar durante toda a volta como para guardar no bolso do jersey quando a temperatura sobe.\u003c\/p\u003e\n\u003ch3\u003eCaracterísticas\u003c\/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cstrong\u003eFrente em microfibra ultraleve à prova de vento\u003c\/strong\u003e para proteção eficaz contra o ar frio.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003ePainéis laterais e posteriores das mangas\u003c\/strong\u003e em tecido de malha listrado elástico e respirável, que evita o flapping do tecido.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eExtremamente compacta\u003c\/strong\u003e – dobra-se facilmente e inclui \u003cstrong\u003esaco integrado de arrumação\u003c\/strong\u003e.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eFecho YKK® Vislon®\u003c\/strong\u003e para utilização fácil e suave.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eMarca Castelli refletora\u003c\/strong\u003e para maior visibilidade.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003ePeso:\u003c\/strong\u003e 125 g\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eTemperatura:\u003c\/strong\u003e 10–18 °C \/ 50–65 °F\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eFIT:\u003c\/strong\u003e Tailored\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch3\u003eNão é o teu antigo corta-vento\u003c\/h3\u003e\n\u003cp\u003eEsquece o típico corta-vento volumoso e barulhento. A \u003cstrong\u003eAria Shell Jacket\u003c\/strong\u003e é uma camada leve e moderna que bloqueia o vento na parte frontal, garantindo respirabilidade e conforto através dos painéis elásticos. A combinação de tecidos técnicos cria um \u003cstrong\u003eajuste justo, sem circulação de ar frio\u003c\/strong\u003e e sem o aspeto \"antigo\" dos corta-ventos tradicionais. Leve o suficiente para usar toda a volta em condições amenas — e, quando quiseres guardá-la, ela cabe facilmente no bolso do jersey ou no alforge.\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\u003ePara garantir o melhor ajuste e conforto, mede o perímetro do teu \u003cstrong\u003epeito (A)\u003c\/strong\u003e e da tua \u003cstrong\u003ecintura (B)\u003c\/strong\u003e em centímetros e compara com o guia de tamanhos Castelli abaixo.\u003c\/p\u003e\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 \u003cstrong\u003eum tamanho acima\u003c\/strong\u003e, conforme a recomendação da Castelli para maior conforto.\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cbutton aria-controls=\"cc-size-modal\" aria-haspopup=\"dialog\" type=\"button\" class=\"cc-size-btn\"\u003e Calcule o seu tamanho \u003c\/button\u003e\n\u003c\/div\u003e\n\u003c!-- ===== MODAL ===== --\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003cp\u003e\u003c\/p\u003e\u003cdialog aria-label=\"Guia de tamanhos\" class=\"cc-size-modal\" id=\"cc-size-modal\"\u003e \u003cbutton aria-label=\"Fechar\" class=\"cc-close\"\u003e✕\u003c\/button\u003e\n\u003cdiv aria-hidden=\"true\" class=\"cc-loader\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003cdiv hidden=\"\" class=\"cc-size-box\"\u003e\u003cimg decoding=\"sync\" loading=\"eager\" alt=\"Guia de tamanhos Castelli\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0946\/1832\/1278\/files\/Size_Chart_Castelli_Men_2.0.png?v=1761056363\" id=\"cc-size-img\"\u003e\u003c\/div\u003e\n\u003c\/dialog\u003e\u003cp\u003e\u003c\/p\u003e\n\u003cp\u003e \u003c\/p\u003e\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\u003c!-- ===== SCRIPT ===== --\u003e\n\u003cp\u003e \u003c\/p\u003e","brand":"Castelli","offers":[{"title":"S","offer_id":56456217592190,"sku":"4520058030 S-2","price":99.9,"currency_code":"EUR","in_stock":false},{"title":"M","offer_id":56456217624958,"sku":"4520058030 M-2","price":99.9,"currency_code":"EUR","in_stock":false},{"title":"L","offer_id":56456217657726,"sku":"4520058030 L-2","price":99.9,"currency_code":"EUR","in_stock":false},{"title":"XL","offer_id":56456217690494,"sku":"4520058030 XL-2","price":99.9,"currency_code":"EUR","in_stock":false},{"title":"2XL","offer_id":56456217723262,"sku":"4520058030 2XL-2","price":99.9,"currency_code":"EUR","in_stock":false},{"title":"3XL","offer_id":56456217756030,"sku":"4520058030 3XL-2","price":99.9,"currency_code":"EUR","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0946\/1832\/1278\/files\/167828879394-0.jpg?v=1761317872"},{"product_id":"castelli-prosecco-tech-short-sleeve-base-layer-color-black","title":"CAMISOLA INTERIOR CASTELLI PROSECCO TECH PRETA","description":"\u003cdiv class=\"product-description\"\u003e\n  \u003ch2\u003eCASTELLI PROSECCO TECH SHORT SLEEVE BASE LAYER\u003c\/h2\u003e\n\n  \u003cp\u003e\n    A \u003cstrong\u003eCastelli Prosecco Tech Base Layer\u003c\/strong\u003e foi criada para te manter seco e confortável em condições frias, graças à sua construção de mapeamento corporal e à combinação estratégica de tecidos técnicos.  \n    O tecido principal com \u003cstrong\u003etratamento hidrofílico Prosecco\u003c\/strong\u003e proporciona excelente gestão da humidade, enquanto os painéis \u003cstrong\u003ePrimaLoft®\u003c\/strong\u003e nas zonas cobertas pelos bretelles equilibram o isolamento térmico.\n  \u003c\/p\u003e\n\n  \u003ch3\u003eCaracterísticas\u003c\/h3\u003e\n  \u003cul\u003e\n    \u003cli\u003e\n\u003cstrong\u003eTecido principal em malha elástica 100% poliéster\u003c\/strong\u003e com tratamento Prosecco para máxima eliminação da transpiração.\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003ePainéis PrimaLoft®\u003c\/strong\u003e na cintura e nas costas para reduzir o isolamento desigual sob os bretelles do bibtight.\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003eGola redonda\u003c\/strong\u003e para se ajustar perfeitamente sob jerseys de gola curta.\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003ePeso:\u003c\/strong\u003e 114 g\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003eTemperatura:\u003c\/strong\u003e 10–20 °C \/ 50–68 °F\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003eFIT:\u003c\/strong\u003e Tailored\u003c\/li\u003e\n  \u003c\/ul\u003e\n\n  \u003ch3\u003eConforto térmico e gestão inteligente da humidade\u003c\/h3\u003e\n  \u003cp\u003e\n    Desenvolvida com a tecnologia \u003cstrong\u003ebody mapping\u003c\/strong\u003e, esta base layer identifica as zonas do corpo que necessitam de maior ventilação ou isolamento.  \n    O tecido \u003cstrong\u003eProsecco\u003c\/strong\u003e absorve rapidamente o suor, mantendo o corpo seco, enquanto o \u003cstrong\u003ePrimaLoft®\u003c\/strong\u003e proporciona leve isolamento nas áreas mais sensíveis ao frio.  \n    O corte justo e a gola discreta tornam-na ideal para usar sob qualquer jersey Castelli durante os treinos e corridas em dias frescos.\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":56456218739070,"sku":"4520530010 S-1","price":59.9,"currency_code":"EUR","in_stock":false},{"title":"M","offer_id":56456218771838,"sku":"4520530010 M-1","price":59.9,"currency_code":"EUR","in_stock":false},{"title":"L","offer_id":56456218804606,"sku":"4520530010 L-1","price":59.9,"currency_code":"EUR","in_stock":false},{"title":"XL","offer_id":56456218837374,"sku":"4520530010 XL-1","price":59.9,"currency_code":"EUR","in_stock":false},{"title":"2XL","offer_id":56456218870142,"sku":"4520530010 2XL-1","price":59.9,"currency_code":"EUR","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0946\/1832\/1278\/files\/167642947491-0.jpg?v=1761317884"},{"product_id":"castelli-perfetto-ros-long-sleeve-cycling-jacket-windproof-rain-protection","title":"CASACO CASTELLI PERFETTO ROS CASTANHO","description":"\u003cdiv class=\"cc-simple\"\u003e\n\u003ch2\u003eCASTELLI PERFETTO ROS\u003c\/h2\u003e\n\u003cp\u003e\u003cstrong\u003eO herdeiro da lendária Gabba, agora com padrões exclusivos em edição limitada para combinar proteção total com um estilo único.\u003c\/strong\u003e\u003cbr\u003eO casaco Perfetto RoS Long Sleeve é a peça de eleição para treinos de alta intensidade e competição nos meses mais frios. Com um ajuste de corrida (Race Fit) e a tecnologia GORE-TEX INFINIUM™, este casaco oferece proteção contra o vento e a chuva sem sacrificar a respirabilidade, garantindo que te destacas no pelotão tanto pela performance como pelo design.\u003c\/p\u003e\n\u003ch3\u003eProteção Rain or Shine com Engenharia GORE-TEX\u003c\/h3\u003e\n\u003cp\u003eA Castelli utiliza tecidos diferenciados para maximizar o conforto: a parte frontal conta com uma membrana resistente à água e interior cardado para proteger o core, enquanto as costas utilizam um tecido mais elástico que permite a saída rápida da humidade. Se a intensidade subir, as aberturas laterais com fecho oferecem uma ventilação imediata, mantendo a temperatura corporal estável em qualquer situação.\u003c\/p\u003e\n\u003ch3\u003eEspecificações Técnicas\u003c\/h3\u003e\n\u003cul class=\"cc-list\"\u003e\n\u003cli\u003e\n\u003cstrong\u003eGORE-TEX INFINIUM™ 205\/203:\u003c\/strong\u003e Proteção frontal térmica e traseira altamente respirável\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eCosturas Seladas:\u003c\/strong\u003e Reforço nos ombros para maior impermeabilidade\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eVentilação Direta:\u003c\/strong\u003e Aberturas laterais com fecho para controlo térmico \"on the fly\"\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eArrumação Otimizada:\u003c\/strong\u003e 2 bolsos largos com manga interna para bomba\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eDropped Tail:\u003c\/strong\u003e Painel traseiro longo contra salpicos com refletividade XL\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eFecho YKK® Vislon®:\u003c\/strong\u003e Deslize suave com cobertura protetora\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eCorte:\u003c\/strong\u003e Race Fit (Ajuste aerodinâmico profissional)\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp style=\"font-size: 13px; color: #555; margin-top: 10px;\"\u003eVersatilidade incomparável e proteção de elite, agora numa edição limitada para quem exige o melhor em cada saída.\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":"S","offer_id":56456219066750,"sku":"4521546030 S","price":139.9,"currency_code":"EUR","in_stock":false},{"title":"M","offer_id":56456219099518,"sku":"4521546030 M","price":139.9,"currency_code":"EUR","in_stock":false},{"title":"L","offer_id":56456219132286,"sku":"4521546030 L","price":139.9,"currency_code":"EUR","in_stock":false},{"title":"XL","offer_id":56456219165054,"sku":"4521546030 XL","price":139.9,"currency_code":"EUR","in_stock":false},{"title":"2XL","offer_id":56456219197822,"sku":"4521546030 2XL","price":139.9,"currency_code":"EUR","in_stock":false},{"title":"3XL","offer_id":56456219230590,"sku":"4521546030 3XL","price":139.9,"currency_code":"EUR","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0946\/1832\/1278\/files\/167709611239-0.jpg?v=1761317886"},{"product_id":"castelli-dinamica-2-women-s-cycling-jacket-winter-thermal-windstopper","title":"CASTELLI DINAMICA 2 W JACKET BLACK","description":"\u003cdiv class=\"\"\u003e\n\u003ch2\u003eCASTELLI DINAMICA 2 W\u003c\/h2\u003e\n\u003cp\u003e\u003cstrong\u003eComplete thermal insulation and wind protection for your most challenging winter journeys.\u003c\/strong\u003e \u003cbr\u003eThe Dinamica 2 W is the jacket that Castelli designed for those who don't want to give up serious training even when the thermometer is approaching zero degrees. Constructed entirely from GORE-TEX INFINIUM™ WINDSTOPPER® X-Fast fabric, this jacket offers an impenetrable barrier against icy wind, while the inner fleece lining ensures that warmth remains where it's needed.\u003c\/p\u003e\n\u003ch3\u003eUncompromising Comfort in the Cold\u003c\/h3\u003e\n\u003cp\u003eUnlike bulky winter jackets that restrict movement, the Dinamica 2 allows you to pedal hard without overheating, thanks to its class-leading breathability. The details have been designed with winter in mind: double cuffs that seal out cold air and an easy-to-adjust zipper, even with thick winter gloves, ensuring every kilometer is comfortable.\u003c\/p\u003e\n\u003ch3\u003eTechnical Specifications\u003c\/h3\u003e\n\u003cul class=\"\"\u003e\n\u003cli\u003e\n\u003cstrong\u003eFull Fabric:\u003c\/strong\u003e GORE-TEX INFINIUM™ WINDSTOPPER® X-Fast (100% windproof)\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eInsulation:\u003c\/strong\u003e High-density thermal fleece inner lining.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eCuffs:\u003c\/strong\u003e Double-layer design for a seal with the gloves.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eVisibility:\u003c\/strong\u003e 360-degree reflective panels for total safety.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eClosure:\u003c\/strong\u003e YKK® Vislon® with ergonomic, easy-to-use handle.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eCut:\u003c\/strong\u003e Regular Fit (Anatomical comfort with room for inner layers)\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eTemperature Range:\u003c\/strong\u003e Optimal performance between 0°C and 10°C\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003eThe perfect ally for cyclists seeking extra warmth and complete protection from the elements without the excessive weight of a conventional jacket.\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":56456228503934,"sku":"4522542085 XS","price":139.9,"currency_code":"EUR","in_stock":true},{"title":"S","offer_id":56456228536702,"sku":"4522542085 S","price":139.9,"currency_code":"EUR","in_stock":true},{"title":"M","offer_id":56456228569470,"sku":"4522542085 M","price":139.9,"currency_code":"EUR","in_stock":true},{"title":"L","offer_id":56456228602238,"sku":"4522542085 L","price":139.9,"currency_code":"EUR","in_stock":true},{"title":"XL","offer_id":56456228635006,"sku":"4522542085 XL","price":139.9,"currency_code":"EUR","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0946\/1832\/1278\/files\/167790724211-0.jpg?v=1761317904"},{"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-aria-shell-cycling-jacket-ultralight-windproof-packable-breathable-1","title":"CASACO CASTELLI ARIA SHELL AZUL","description":"\u003cdiv class=\"product-description\"\u003e\n  \u003ch2\u003eCASTELLI ARIA SHELL CYCLING JACKET\u003c\/h2\u003e\n\n  \u003cp\u003e\n    A \u003cstrong\u003eCastelli Aria Shell Jacket\u003c\/strong\u003e redefine o conceito de corta-vento.  \n    Extremamente leve, compacta e respirável, foi desenhada para oferecer \u003cstrong\u003eproteção contra o vento\u003c\/strong\u003e na parte frontal  \n    enquanto permite uma excelente \u003cstrong\u003eventilação através dos painéis laterais elásticos\u003c\/strong\u003e.  \n    Ideal para ampliar a faixa de temperatura das tuas peças favoritas da Castelli.\n  \u003c\/p\u003e\n\n  \u003cp\u003e\n    Com um \u003cstrong\u003eajuste anatómico e aerodinâmico\u003c\/strong\u003e, a Aria Shell elimina o problema do tecido a abanar ao vento,  \n    proporcionando uma sensação de segunda pele.  \n    Compacta-se facilmente no seu próprio bolso lateral integrado, sendo perfeita tanto para usar durante toda a volta  \n    como para guardar no bolso do jersey quando a temperatura sobe.\n  \u003c\/p\u003e\n\n  \u003ch3\u003eCaracterísticas\u003c\/h3\u003e\n  \u003cul\u003e\n    \u003cli\u003e\n\u003cstrong\u003eFrente em microfibra ultraleve à prova de vento\u003c\/strong\u003e para proteção eficaz contra o ar frio.\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003ePainéis laterais e posteriores das mangas\u003c\/strong\u003e em tecido de malha listrado elástico e respirável, que evita o flapping do tecido.\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003eExtremamente compacta\u003c\/strong\u003e – dobra-se facilmente e inclui \u003cstrong\u003esaco integrado de arrumação\u003c\/strong\u003e.\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003eFecho YKK® Vislon®\u003c\/strong\u003e para utilização fácil e suave.\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003eMarca Castelli refletora\u003c\/strong\u003e para maior visibilidade.\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003ePeso:\u003c\/strong\u003e 125 g\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003eTemperatura:\u003c\/strong\u003e 10–18 °C \/ 50–65 °F\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003eFIT:\u003c\/strong\u003e Tailored\u003c\/li\u003e\n  \u003c\/ul\u003e\n\n  \u003ch3\u003eNão é o teu antigo corta-vento\u003c\/h3\u003e\n  \u003cp\u003e\n    Esquece o típico corta-vento volumoso e barulhento.  \n    A \u003cstrong\u003eAria Shell Jacket\u003c\/strong\u003e é uma camada leve e moderna que bloqueia o vento na parte frontal,  \n    garantindo respirabilidade e conforto através dos painéis elásticos.  \n    A combinação de tecidos técnicos cria um \u003cstrong\u003eajuste justo, sem circulação de ar frio\u003c\/strong\u003e e sem o aspeto \"antigo\" dos corta-ventos tradicionais.  \n    Leve o suficiente para usar toda a volta em condições amenas — e, quando quiseres guardá-la, ela cabe facilmente no bolso do jersey ou no alforge.\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":56456229486974,"sku":"4520058424 S-1","price":99.9,"currency_code":"EUR","in_stock":false},{"title":"M","offer_id":56456229519742,"sku":"4520058424 M-1","price":99.9,"currency_code":"EUR","in_stock":false},{"title":"L","offer_id":56456229552510,"sku":"4520058424 L-1","price":99.9,"currency_code":"EUR","in_stock":false},{"title":"XL","offer_id":56456229585278,"sku":"4520058424 XL-1","price":99.9,"currency_code":"EUR","in_stock":false},{"title":"2XL","offer_id":56456229618046,"sku":"4520058424 2XL-1","price":99.9,"currency_code":"EUR","in_stock":false},{"title":"3XL","offer_id":56456229650814,"sku":"4520058424 3XL-1","price":99.9,"currency_code":"EUR","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0946\/1832\/1278\/files\/167828875959-0.jpg?v=1761317916"},{"product_id":"castelli-transition-2-w-women-s-winter-cycling-jacket-gore-tex-infinium","title":"CASTELLI TRANSITION 2 W JACKET PINK","description":"\u003cdiv class=\"\"\u003e\n\u003ch2\u003eCastelli Transition 2 W\u003c\/h2\u003e\n\u003cp\u003e\u003cstrong\u003eThe ideal jacket for transitioning between seasons: protection against the wind without the risk of overheating.\u003c\/strong\u003e\u003cbr\u003eThe Transition 2 W jacket is designed for those days when a vest isn't enough, but a heavy winter jacket is too much. Using GORE-TEX INFINIUM™ technology on the front, this jacket effectively cuts through the cold wind, while the breathable fleece back ensures your body maintains an ideal temperature without accumulating sweat.\u003c\/p\u003e\n\u003ch3\u003eLightweight and Intelligent Protection\u003c\/h3\u003e\n\u003cp\u003ePerfect for autumn, spring, or mild winters, the Transition 2 stands out for its asymmetrical YKK® Vislon® closure, which avoids the discomfort of multiple layers overlapping at the chin. If temperatures drop, simply add a thermal base layer to extend its use throughout much of the winter, always maintaining a stylish and functional fit.\u003c\/p\u003e\n\u003ch3\u003eTechnical Specifications\u003c\/h3\u003e\n\u003cul class=\"\"\u003e\n\u003cli\u003e\n\u003cstrong\u003eFront and Sleeves:\u003c\/strong\u003e GORE-TEX INFINIUM™ WINDSTOPPER® (Windproof and breathable)\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eBack Panel:\u003c\/strong\u003e Brushed Warmer fabric for maximum ventilation.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eClosure:\u003c\/strong\u003e YKK® Vislon® asymmetric smooth-glide\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eStorage:\u003c\/strong\u003e 3 large rear pockets\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eThermal Comfort:\u003c\/strong\u003e Amazing protection without excessive bulk.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eCut:\u003c\/strong\u003e Regular Fit (Anatomical comfort for women)\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eWeight:\u003c\/strong\u003e 331g\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003eThe essential piece for those who don't let the morning breeze or the unpredictable weather of mid-season interrupt their workout.\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":56456239087998,"sku":"4523544654 XS-1","price":119.9,"currency_code":"EUR","in_stock":false},{"title":"S","offer_id":56456239120766,"sku":"4523544654 S-1","price":119.9,"currency_code":"EUR","in_stock":false},{"title":"M","offer_id":56456239153534,"sku":"4523544654 M-1","price":119.9,"currency_code":"EUR","in_stock":false},{"title":"L","offer_id":56456239186302,"sku":"4523544654 L-1","price":119.9,"currency_code":"EUR","in_stock":false},{"title":"XL","offer_id":56456239219070,"sku":"4523544654 XL-1","price":119.9,"currency_code":"EUR","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0946\/1832\/1278\/files\/167864349701-0.jpg?v=1761317944"},{"product_id":"castelli-gabba-ros-2-w-women-s-cycling-jacket-winter-wind-rain-protection","title":"CASTELLI GABBA RoS 2 W JACKET ORANGE","description":"\u003cdiv class=\"\"\u003e\n\u003ch2\u003eCASTELLI GABBA RoS 2 W\u003c\/h2\u003e\n\u003cp\u003e\u003cstrong\u003eThe 5th generation of the component that revolutionized professional cycling: total core protection without the risk of overheating.\u003c\/strong\u003e \u003cbr\u003eIn 2010, Castelli introduced Gabba to professionals and forever changed the way people run in the rain and cold. The Gabba RoS 2 W continues this legacy as a water-resistant short-sleeved jacket, perfect for cold conditions. By keeping the torso warm and dry without the bulk of a traditional coat, it allows for total agility, making it an essential piece for autumn and spring.\u003c\/p\u003e\n\u003ch3\u003eGORE-TEX INFINIUM™ Innovation\u003c\/h3\u003e\n\u003cp\u003eThis version is more waterproof than ever, while maintaining the legendary breathability that made Gabba famous. It uses two exclusive GORE-TEX fabrics: a warmer, more durable one on the front and shoulders, and a lighter, more stretchy one on the back to release excess heat. The new YKK® Vislon® double-opening zipper makes it easy to regulate temperature and access internal pockets while cycling.\u003c\/p\u003e\n\u003ch3\u003eTechnical Specifications\u003c\/h3\u003e\n\u003cul class=\"\"\u003e\n\u003cli\u003e\n\u003cstrong\u003eFront Fabric:\u003c\/strong\u003e GORE-TEX INFINIUM™ WINDSTOPPER® 205 Warm (100% windproof)\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eBacking Fabric:\u003c\/strong\u003e GORE-TEX INFINIUM™ WINDSTOPPER® 203 Stretch for ventilation\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eVersatility:\u003c\/strong\u003e Ideal for use with Nano Flex sleeves on humid days.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eClosure:\u003c\/strong\u003e YKK® Vislon® double-opening closure for adjustable ventilation.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eProtection:\u003c\/strong\u003e Shoulder seams sealed against rain.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eVisibility:\u003c\/strong\u003e Large rear reflective panel\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eCut:\u003c\/strong\u003e Race Fit (Aerodynamic competition tuning)\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003ePair this outfit with your favorite shoes and handcuffs to confidently face any weather forecast.\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":56456241545598,"sku":"4522544883 XS-1","price":119.9,"currency_code":"EUR","in_stock":false},{"title":"S","offer_id":56456241578366,"sku":"4522544883 S-1","price":119.9,"currency_code":"EUR","in_stock":false},{"title":"M","offer_id":56456241611134,"sku":"4522544883 M-1","price":119.9,"currency_code":"EUR","in_stock":false},{"title":"L","offer_id":56456241643902,"sku":"4522544883 L-1","price":119.9,"currency_code":"EUR","in_stock":false},{"title":"XL","offer_id":56456241676670,"sku":"4522544883 XL-1","price":119.9,"currency_code":"EUR","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0946\/1832\/1278\/files\/167790773327-0.jpg?v=1761317962"},{"product_id":"castelli-summer-base-layer-model-active-cooling-sleeveless-silver-gray","title":"CAMISOLA INTERIOR CASTELLI BASE LAYER","description":"\u003cdiv class=\"product-description\"\u003e\n  \u003ch2\u003eCASTELLI ACTIVE COOLING SLEEVELESS BASE LAYER – SILVER GRAY\u003c\/h2\u003e\n\n  \u003cp\u003e\n    A \u003cstrong\u003eCastelli Active Cooling Sleeveless Base Layer\u003c\/strong\u003e foi projetada para te manter fresco mesmo nos dias mais quentes.  \n    A sua tecnologia de arrefecimento ativo retém uma leve quantidade de humidade próxima da pele, promovendo um \u003cstrong\u003eefeito de evaporação natural\u003c\/strong\u003e que reduz a temperatura corporal durante o esforço.\n  \u003c\/p\u003e\n\n  \u003cp\u003e\n    O tecido \u003cstrong\u003ePolartec® Delta\u003c\/strong\u003e oferece um equilíbrio perfeito entre secagem rápida e retenção de humidade regulada,  \n    permitindo que o corpo se mantenha fresco sem acumular suor em excesso.  \n    O design sem mangas e a construção minimalista tornam esta base layer ideal para treinos e competições em clima quente,  \n    proporcionando \u003cstrong\u003eliberdade total de movimento\u003c\/strong\u003e e conforto durante toda a pedalada.\n  \u003c\/p\u003e\n\n  \u003ch3\u003eCaracterísticas\u003c\/h3\u003e\n  \u003cul\u003e\n    \u003cli\u003e\n\u003cstrong\u003eBase layer projetada para arrefecer\u003c\/strong\u003e o corpo em dias quentes.\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003eTecido Polartec® Delta\u003c\/strong\u003e com secagem regulada para otimizar o arrefecimento por evaporação.\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003eDesign sem mangas\u003c\/strong\u003e com construção minimalista para máxima leveza.\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003eEstampa sublimada\u003c\/strong\u003e de alta durabilidade.\u003c\/li\u003e\n  \u003c\/ul\u003e\n\n  \u003ch3\u003eFrescura e Performance nas Altas Temperaturas\u003c\/h3\u003e\n  \u003cp\u003e\n    Leve, técnica e altamente funcional, a \u003cstrong\u003eActive Cooling Base Layer\u003c\/strong\u003e é essencial para os ciclistas que enfrentam o calor com intensidade.  \n    Mantém o corpo fresco e confortável, ajudando-te a dar o máximo mesmo nas condições mais exigentes.\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":56456241774974,"sku":"4520030870 S-1","price":69.9,"currency_code":"EUR","in_stock":true},{"title":"M","offer_id":56456241807742,"sku":"4520030870 M-1","price":69.9,"currency_code":"EUR","in_stock":false},{"title":"L","offer_id":56456241840510,"sku":"4520030870 L-1","price":69.9,"currency_code":"EUR","in_stock":true},{"title":"XL","offer_id":56456241873278,"sku":"4520030870 XL-1","price":69.9,"currency_code":"EUR","in_stock":true},{"title":"2XL","offer_id":56456241906046,"sku":"4520030870 2XL-1","price":69.9,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0946\/1832\/1278\/files\/167642924581-0.jpg?v=1761317964"},{"product_id":"castelli-sorpasso-ros-w-women-s-winter-cycling-bibtight-thermal-performance","title":"CASTELLI SORPASSO RoS W BIBTIGHT PURPLE","description":"\u003cdiv class=\"\"\u003e\n\u003ch2\u003eCASTELLI SORPASSO RoS W\u003c\/h2\u003e\n\u003cp\u003e\u003cstrong\u003eThe ultimate winter trousers: designed to offer comfort and protection in the widest range of conditions.\u003c\/strong\u003e \u003cbr\u003eThe Sorpasso RoS W pants are the choice of cyclists who don't stop all winter long. Combining Nano Flex 3G fabric with extra thermal panels, these pants offer an effective barrier against light rain and intense cold, while maintaining breathability and freedom of movement that few winter gear options can match.\u003c\/p\u003e\n\u003ch3\u003eNano Flex Technology and Progetto X2 Comfort\u003c\/h3\u003e\n\u003cp\u003eThe engineering behind these pants focuses on versatility. The nanotechnology treatment repels water without compromising elasticity, while the top-of-the-line Castelli Progetto X2 Air Seamless chamois ensures your long runs are free from irritation and pressure points. With an anatomical cut that follows the curves of the female body, these pants become almost imperceptible during exertion.\u003c\/p\u003e\n\u003ch3\u003eTechnical Specifications\u003c\/h3\u003e\n\u003cul class=\"\"\u003e\n\u003cli\u003e\n\u003cstrong\u003eNano Flex 3G fabric:\u003c\/strong\u003e Industry-leading water repellency and gentle compression.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eThermal Insulation:\u003c\/strong\u003e Xtra Dry panels on the thighs for protection against extreme cold.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eCarneira:\u003c\/strong\u003e Progetto X2 Air Seamless Donna (Professional Level)\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eHandles:\u003c\/strong\u003e Flat, minimalist design for maximum comfort.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eAnkles:\u003c\/strong\u003e YKK® Camlock® zippers for a secure and easy-to-wear fit.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eSafety:\u003c\/strong\u003e High-visibility reflective details at the rear.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eTemperature Range:\u003c\/strong\u003e Superior performance between -2°C and 10°C\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eFit:\u003c\/strong\u003e Tailored Fit (Anatomical technical cut)\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003eDesigned to be your go-to pants all winter long, whether the sky is clear or rain is imminent.\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":56456241938814,"sku":"4520563513 XS-1","price":149.9,"currency_code":"EUR","in_stock":false},{"title":"S","offer_id":56456241971582,"sku":"4520563513 S-1","price":149.9,"currency_code":"EUR","in_stock":false},{"title":"M","offer_id":56456242004350,"sku":"4520563513 M-1","price":149.9,"currency_code":"EUR","in_stock":false},{"title":"L","offer_id":56456242037118,"sku":"4520563513 L-1","price":149.9,"currency_code":"EUR","in_stock":false},{"title":"XL","offer_id":56456242069886,"sku":"4520563513 XL-1","price":149.9,"currency_code":"EUR","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0946\/1832\/1278\/files\/167792556735-0.jpg?v=1761317966"},{"product_id":"castelli-base-layer-model-core-seamless-base-layer-black","title":"CAMISOLA INTERIOR CASTELLI CORE PRETO","description":"\u003cdiv class=\"product-description\"\u003e\n\u003ch2\u003eCASTELLI CORE BASE LAYER\u003c\/h2\u003e\n\u003cp\u003eA \u003cstrong\u003eCastelli Core Seamless Base Layer\u003c\/strong\u003e foi desenvolvida para oferecer o equilíbrio perfeito entre \u003cstrong\u003eleveza, aquecimento e conforto\u003c\/strong\u003e. Surpreendentemente quente para o seu peso, esta base layer é ideal para condições frescas, garantindo excelente \u003cstrong\u003egestão da humidade\u003c\/strong\u003e e um toque extremamente suave na pele.\u003c\/p\u003e\n\u003cp\u003eA construção \u003cstrong\u003esem costuras\u003c\/strong\u003e elimina pontos de fricção e assegura um ajuste justo e confortável. As zonas laterais e traseiras em tecido mais leve otimizam a respirabilidade, enquanto a abertura larga no pescoço permite um encaixe perfeito sob jerseys de gola baixa. Um essencial para pedalar nos dias mais frios com conforto e performance.\u003c\/p\u003e\n\u003ch3\u003eCaracterísticas\u003c\/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cstrong\u003eComposição:\u003c\/strong\u003e 84% poliéster \/ 16% polipropileno — macio, quente e com excelente elasticidade.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eConstrução Seamless\u003c\/strong\u003e (sem costuras) para máximo conforto.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eMalha mais leve\u003c\/strong\u003e nas laterais e costas para melhor ventilação.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eAbertura larga no pescoço\u003c\/strong\u003e para ajustar sob jerseys de gola baixa.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003ePeso:\u003c\/strong\u003e 135 g\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eTemperatura:\u003c\/strong\u003e 8–20 °C \/ 46–68 °F\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eFIT:\u003c\/strong\u003e Regular\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch3\u003eConforto e Aquecimento com Máxima Liberdade\u003c\/h3\u003e\n\u003cp\u003eA \u003cstrong\u003eCore Seamless\u003c\/strong\u003e é perfeita para quem procura uma base layer versátil, leve e eficiente. Proporciona isolamento térmico quando o frio aperta, sem comprometer a respirabilidade, tornando-se a escolha ideal para pedalar com conforto em qualquer ritmo.\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\u003ePara garantir o melhor ajuste e conforto, mede o perímetro do teu \u003cstrong\u003epeito (A)\u003c\/strong\u003e e da tua \u003cstrong\u003ecintura (B)\u003c\/strong\u003e em centímetros e compara com o guia de tamanhos Castelli abaixo.\u003c\/p\u003e\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 \u003cstrong\u003eum tamanho acima\u003c\/strong\u003e, conforme a recomendação da Castelli para maior conforto.\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cbutton class=\"cc-size-btn\" type=\"button\" aria-haspopup=\"dialog\" aria-controls=\"cc-size-modal\"\u003e Calcule o seu tamanho \u003c\/button\u003e\n\u003c\/div\u003e\n\u003c!-- ===== MODAL ===== --\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003cp\u003e\u003c\/p\u003e\u003cdialog id=\"cc-size-modal\" class=\"cc-size-modal\" aria-label=\"Guia de tamanhos\"\u003e \u003cbutton class=\"cc-close\" aria-label=\"Fechar\"\u003e✕\u003c\/button\u003e\n\u003cdiv class=\"cc-loader\" aria-hidden=\"true\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003cdiv class=\"cc-size-box\" hidden=\"\"\u003e\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\u003c\/div\u003e\n\u003c\/dialog\u003e\u003cp\u003e\u003c\/p\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003cp\u003e \u003c\/p\u003e\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\u003c!-- ===== SCRIPT ===== --\u003e\n\u003cp\u003e \u003c\/p\u003e","brand":"Castelli","offers":[{"title":"S \/ M","offer_id":56456242135422,"sku":"4520575010 SM","price":69.9,"currency_code":"EUR","in_stock":false},{"title":"L \/ XL","offer_id":56456242168190,"sku":"4520575010 LXL","price":69.9,"currency_code":"EUR","in_stock":false},{"title":"2XL","offer_id":56456242200958,"sku":"4520575010 2XL","price":69.9,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0946\/1832\/1278\/files\/167642941908-0.jpg?v=1761317968"},{"product_id":"castelli-tutto-nano-cycling-gloves-water-repellent-windproof-touchscreen","title":"CASTELLI TUTTO NANO GLOVES","description":"\u003cdiv class=\"\"\u003e\n\u003ch2\u003eCASTELLI TUTTO NANO CYCLING GLOVES\u003c\/h2\u003e\n\u003cp\u003eIdeal for \u003cstrong\u003ecold and wet\u003c\/strong\u003e conditions, \u003cstrong\u003eTutto Nano\u003c\/strong\u003e gloves use \u003cstrong\u003eNano Flex 3G\u003c\/strong\u003e fabric, which combines a warm brushed interior with \u003cstrong\u003ewater repellency\u003c\/strong\u003e thanks to nanotechnology. The fabric's natural elasticity provides \u003cstrong\u003eexceptional comfort\u003c\/strong\u003e , almost as if you weren't wearing gloves at all.\u003c\/p\u003e\n\u003ch3\u003eMain Features\u003c\/h3\u003e\n\u003cul class=\"\"\u003e\n\u003cli\u003e\n\u003cstrong\u003eNano Flex 3G fabric\u003c\/strong\u003e : warm, comfortable, and water-resistant.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eSilicone grip\u003c\/strong\u003e for control and safety on the handlebars.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eCompatible with touchscreens\u003c\/strong\u003e at your fingertips.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eMinimal seams\u003c\/strong\u003e for greater dexterity and comfort.\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 72 g\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eTemperature:\u003c\/strong\u003e 12°–20°C \/ 54°–68°F\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eFit:\u003c\/strong\u003e Regular\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003eDespite their seemingly simple design, the \u003cstrong\u003eTutto Nano shoes\u003c\/strong\u003e offer surprising protection against cold and moisture, while maintaining a light and intuitive feel while driving. Sometimes, the simplest solution really is the best.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cstyle\u003e\n  .cc-simple{font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;color:#111;line-height:1.6}\n  .cc-simple h2{text-transform:uppercase;font-weight:700;margin:0 0 .6rem;font-size:1.25rem}\n  .cc-simple h3{margin:1rem 0 .4rem;font-size:1.05rem;font-weight:600}\n  .cc-list{margin:.4rem 0 1rem 1.2rem;padding:0}\n  .cc-list li{margin:.3rem 0}\n\u003c\/style\u003e","brand":"Castelli","offers":[{"title":"XS","offer_id":56456242463102,"sku":"4520534010 XS-1","price":39.9,"currency_code":"EUR","in_stock":false},{"title":"S","offer_id":56456242495870,"sku":"4520534010 S-1","price":39.9,"currency_code":"EUR","in_stock":false},{"title":"M","offer_id":56456242528638,"sku":"4520534010 M-1","price":39.9,"currency_code":"EUR","in_stock":false},{"title":"L","offer_id":56456242561406,"sku":"4520534010 L-1","price":39.9,"currency_code":"EUR","in_stock":false},{"title":"XL","offer_id":56456242594174,"sku":"4520534010 XL-1","price":39.9,"currency_code":"EUR","in_stock":false},{"title":"2XL","offer_id":56456242626942,"sku":"4520534010 2XL-1","price":39.9,"currency_code":"EUR","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0946\/1832\/1278\/files\/167831294543-0.jpg?v=1761317972"},{"product_id":"castelli-base-layer-model-core-seamless-base-layer-white","title":"CAMISOLA INTERIOR CASTELLI CORE","description":"\u003cdiv class=\"product-description\"\u003e\n  \u003ch2\u003eCASTELLI CORE SEAMLESS BASE LAYER\u003c\/h2\u003e\n\n  \u003cp\u003e\n    A \u003cstrong\u003eCastelli Core Seamless Base Layer\u003c\/strong\u003e foi desenvolvida para oferecer o equilíbrio perfeito entre  \n    \u003cstrong\u003eleveza, aquecimento e conforto\u003c\/strong\u003e. Surpreendentemente quente para o seu peso, esta base layer é ideal  \n    para condições frescas, garantindo excelente \u003cstrong\u003egestão da humidade\u003c\/strong\u003e e um toque extremamente suave na pele.\n  \u003c\/p\u003e\n\n  \u003cp\u003e\n    A construção \u003cstrong\u003esem costuras\u003c\/strong\u003e elimina pontos de fricção e assegura um ajuste justo e confortável.  \n    As zonas laterais e traseiras em tecido mais leve otimizam a respirabilidade, enquanto a abertura larga no pescoço  \n    permite um encaixe perfeito sob jerseys de gola baixa.  \n    Um essencial para pedalar nos dias mais frios com conforto e performance.\n  \u003c\/p\u003e\n\n  \u003ch3\u003eCaracterísticas\u003c\/h3\u003e\n  \u003cul\u003e\n    \u003cli\u003e\n\u003cstrong\u003eComposição:\u003c\/strong\u003e 84% poliéster \/ 16% polipropileno — macio, quente e com excelente elasticidade.\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003eConstrução Seamless\u003c\/strong\u003e (sem costuras) para máximo conforto.\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003eMalha mais leve\u003c\/strong\u003e nas laterais e costas para melhor ventilação.\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003eAbertura larga no pescoço\u003c\/strong\u003e para ajustar sob jerseys de gola baixa.\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003ePeso:\u003c\/strong\u003e 135 g\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003eTemperatura:\u003c\/strong\u003e 8–20 °C \/ 46–68 °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 e Aquecimento com Máxima Liberdade\u003c\/h3\u003e\n  \u003cp\u003e\n    A \u003cstrong\u003eCore Seamless\u003c\/strong\u003e é perfeita para quem procura uma base layer versátil, leve e eficiente.  \n    Proporciona isolamento térmico quando o frio aperta, sem comprometer a respirabilidade,  \n    tornando-se a escolha ideal para pedalar com conforto em qualquer ritmo.\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\/M","offer_id":56456243446142,"sku":"4520575001 SM-1","price":69.9,"currency_code":"EUR","in_stock":false},{"title":"L\/XL","offer_id":56456243478910,"sku":"4520575001 LXL-1","price":69.9,"currency_code":"EUR","in_stock":false},{"title":"2XL","offer_id":56456243511678,"sku":"4520575001 2XL-1","price":69.9,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0946\/1832\/1278\/files\/167642939588-0.jpg?v=1761317980"},{"product_id":"castelli-alpha-ros-2-w-women-s-cycling-jacket-winter-wind-rain-protection","title":"CASTELLI ALPHA ROS 2 W JACKET BLUE","description":"\u003cdiv class=\"\"\u003e\n\u003ch2\u003eCASTELLI ALPHA ROS 2 W\u003c\/h2\u003e\n\u003cp\u003e\u003cstrong\u003eThe ultimate winter coat: warmth, breathability, and extreme protection against rain.\u003c\/strong\u003e\u003cbr\u003eThe Alpha RoS 2 W represents Castelli's vision of the perfect winter jacket. In its third generation, this model continues to lead the market by solving the biggest problem in winter cycling: moisture management. Thanks to its innovative construction, it keeps you dry and warm even during high-intensity workouts in sub-zero temperatures.\u003c\/p\u003e\n\u003ch3\u003eAlpha Dual Layer Technology\u003c\/h3\u003e\n\u003cp\u003eThe secret of this jacket lies in the separation between the thermal insulation layer and the outer windproof barrier. This construction allows the outer layer to open for ventilation and to wick away sweat during climbs, while keeping the inner layer closed to protect the body from the cold. The result is a consistently dry interior, preventing thermal shock during descents.\u003c\/p\u003e\n\u003ch3\u003eTechnical Specifications\u003c\/h3\u003e\n\u003cul class=\"\"\u003e\n\u003cli\u003e\n\u003cstrong\u003eMembrane:\u003c\/strong\u003e GORE-TEX INFINIUM™ WINDSTOPPER® 150\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eEngineering:\u003c\/strong\u003e Rain or Shine (Maximum performance in dry or wet conditions)\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eInsulation:\u003c\/strong\u003e Softer, warmer 3D inner layer for a superior fit.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eCuffs:\u003c\/strong\u003e Double-layer design for seamless integration with gloves.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eSafety:\u003c\/strong\u003e Laser-cut reflective details on the back pockets.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eTemperature Range:\u003c\/strong\u003e Comfort guaranteed between -5°C and 10°C\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eCut:\u003c\/strong\u003e Tailored Fit (Ergonomic fit for women)\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003eThe most versatile and technologically advanced piece of clothing for winter workouts, regardless of weather conditions.\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":56456243773822,"sku":"4520553492 XS-1","price":189.9,"currency_code":"EUR","in_stock":false},{"title":"S","offer_id":56456243806590,"sku":"4520553492 S-1","price":189.9,"currency_code":"EUR","in_stock":false},{"title":"M","offer_id":56456243839358,"sku":"4520553492 M-1","price":189.9,"currency_code":"EUR","in_stock":false},{"title":"L","offer_id":56456243872126,"sku":"4520553492 L-1","price":189.9,"currency_code":"EUR","in_stock":false},{"title":"XL","offer_id":56456243904894,"sku":"4520553492 XL-1","price":189.9,"currency_code":"EUR","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0946\/1832\/1278\/files\/167793229861-0.jpg?v=1761317985"},{"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-pro-mesh-sleeveless-quick-step-2024-the-professional-undergarment","title":"CAMISOLA INTERIOR CASTELLI PRO MESH SOUDAL QUICK-STEP 2024","description":"\u003cdiv class=\"product-description\"\u003e\n  \u003ch2\u003eCASTELLI PRO MESH SLEEVELESS – SOUDAL QUICK-STEP 2024 BELGIAN BLUE\u003c\/h2\u003e\n\n  \u003cp\u003e\n    A \u003cstrong\u003eCastelli Pro Mesh Sleeveless Quick-Step 2024\u003c\/strong\u003e é uma \u003cstrong\u003ecamisola interior profissional\u003c\/strong\u003e desenhada para ciclistas que exigem desempenho e conforto em todas as condições.  \n    Utilizada pelos atletas da \u003cstrong\u003eequipa Soudal Quick-Step\u003c\/strong\u003e, esta peça oferece gestão de humidade excecional e leveza extrema — ideal tanto para dias quentes como frios.\n  \u003c\/p\u003e\n\n  \u003cp\u003e\n    O \u003cstrong\u003etecido em malha 3D\u003c\/strong\u003e assegura uma \u003cstrong\u003etransferência eficaz da transpiração\u003c\/strong\u003e, mantendo o corpo seco e regulando a temperatura corporal durante o esforço.  \n    O corte sem mangas e a construção plana na cintura garantem um ajuste perfeito, sem criar volume debaixo do jersey ou dos bibshorts.  \n    A \u003cstrong\u003eestampa sublimada\u003c\/strong\u003e confere um toque distinto e moderno, permitindo mostrar o estilo Quick-Step quando o jersey está aberto.\n  \u003c\/p\u003e\n\n  \u003cp\u003e\n    Leve, funcional e projetada com a experiência dos profissionais, a Pro Mesh é a base perfeita para qualquer saída em estrada — seja em dias quentes de verão ou sob uma camada térmica no inverno.\n  \u003c\/p\u003e\n\n  \u003ch3\u003eCaracterísticas\u003c\/h3\u003e\n  \u003cul\u003e\n    \u003cli\u003e\n\u003cstrong\u003eTecido em malha 3D\u003c\/strong\u003e para excelente controlo da humidade.\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003eGestão térmica eficiente\u003c\/strong\u003e em condições quentes ou frias.\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003eConstrução plana na cintura\u003c\/strong\u003e que evita desconforto dentro dos calções.\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003eEstampa sublimada exclusiva\u003c\/strong\u003e inspirada na equipa Soudal Quick-Step 2024.\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003eIdeal como camada base\u003c\/strong\u003e sob jerseys ou casacos térmicos.\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003ePeso:\u003c\/strong\u003e 46 g\u003c\/li\u003e\n  \u003c\/ul\u003e\n\n  \u003ch3\u003eDesempenho Profissional\u003c\/h3\u003e\n  \u003cp\u003e\n    A \u003cstrong\u003ePro Mesh Sleeveless Quick-Step 2024 Belgian Blue\u003c\/strong\u003e foi criada com o conhecimento dos ciclistas profissionais  \n    para oferecer \u003cstrong\u003erespirabilidade, leveza e eficiência térmica\u003c\/strong\u003e em qualquer condição.  \n    Uma peça essencial para quem leva o ciclismo tão a sério quanto o \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":56456251179390,"sku":"4232096424 S-1","price":49.9,"currency_code":"EUR","in_stock":false},{"title":"M","offer_id":56456251212158,"sku":"4232096424 M-1","price":49.9,"currency_code":"EUR","in_stock":false},{"title":"L","offer_id":56456251244926,"sku":"4232096424 L-1","price":49.9,"currency_code":"EUR","in_stock":false},{"title":"XL","offer_id":56456251277694,"sku":"4232096424 XL-1","price":49.9,"currency_code":"EUR","in_stock":false},{"title":"2XL","offer_id":56456251310462,"sku":"4232096424 2XL-1","price":49.9,"currency_code":"EUR","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0946\/1832\/1278\/files\/167643043570-0.jpg?v=1761318040"},{"product_id":"castelli-velocissimo-5-men-s-cycling-bibtight-winter-thermal-performance","title":"CASTELLI VELOCISSIMO 5 BIBTIGHT","description":"\u003cdiv class=\"\"\u003e\n\u003ch2\u003eCASTELLI VELOCISSIMO 5 BIBTIGHT\u003c\/h2\u003e\n\u003cp\u003eThe \u003cstrong\u003eCastelli Velocissimo 5 Bibtight\u003c\/strong\u003e combines \u003cstrong\u003eminimalism, comfort, and performance\u003c\/strong\u003e for cool autumn days and moderate winters. Ideal for those seeking \u003cstrong\u003eprotection and flexibility\u003c\/strong\u003e without the bulk of winter culottes, this garment provides effective warmth and a perfect fit.\u003c\/p\u003e\n\u003cp\u003eThe upper part is made with \u003cstrong\u003eThermoflex\u003c\/strong\u003e fabric, which is soft and stretchy, ensuring thermal comfort and freedom of movement. At the bottom, below the knee, the \u003cstrong\u003eNano Flex\u003c\/strong\u003e fabric with a fleece lining offers \u003cstrong\u003eprotection against wet track splashes\u003c\/strong\u003e . keeping your legs dry and warm. The zipperless finish at the ankle reduces bulk inside the boot covers, making them easier to put on and maximizing comfort.\u003c\/p\u003e\n\u003cp\u003eThe \u003cstrong\u003eKISS Air² seat pad\u003c\/strong\u003e ensures shock absorption and comfort over long distances. while the \u003cstrong\u003emesh straps\u003c\/strong\u003e ensure excellent ventilation. Strategically placed reflective elements increase side and rear visibility. A practical and stylish choice for cyclists who value uncomplicated performance.\u003c\/p\u003e\n\u003ch3\u003eFeatures\u003c\/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cstrong\u003eThermoflex fabric\u003c\/strong\u003e from knee to waist for warmth and comfort.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eNano Flex fabric\u003c\/strong\u003e with fleece lining on the lower leg for splash protection.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eKISS Air² seat pad\u003c\/strong\u003e for comfort on long rides.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eMesh straps\u003c\/strong\u003e for ventilation and lightweight support.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eZipperless finish\u003c\/strong\u003e at the ankle to reduce bulk inside the boot covers.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eReflective inserts\u003c\/strong\u003e on the sides and back for increased visibility.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eWeight:\u003c\/strong\u003e 274 g\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eIdeal temperature:\u003c\/strong\u003e 8–16°C \/ 46–61°F\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eFIT:\u003c\/strong\u003e Regular\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch3\u003eSimplified Comfort and Performance\u003c\/h3\u003e\n\u003cp\u003eThe \u003cstrong\u003eVelocissimo 5 Bibtight\u003c\/strong\u003e is the perfect balance between \u003cstrong\u003elightness, protection and comfort\u003c\/strong\u003e . Ideal for workouts or outings on cold days, it offers the soft touch of Thermoflex and the water-repellent protection of Nano Flex. A smart choice for those who want to cycle comfortably and protected, without excessive layers.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c!-- ===== GUIA DE TAMANHOS CASTELLI ===== --\u003e\n\u003cdiv class=\"\"\u003e\u003c\/div\u003e","brand":"Castelli","offers":[{"title":"S","offer_id":56456252031358,"sku":"4521517010 S-1","price":89.9,"currency_code":"EUR","in_stock":false},{"title":"M","offer_id":56456252064126,"sku":"4521517010 M-1","price":89.9,"currency_code":"EUR","in_stock":false},{"title":"L","offer_id":56456252096894,"sku":"4521517010 L-1","price":89.9,"currency_code":"EUR","in_stock":false},{"title":"XL","offer_id":56456252129662,"sku":"4521517010 XL-1","price":89.9,"currency_code":"EUR","in_stock":false},{"title":"2XL","offer_id":56456252162430,"sku":"4521517010 2XL-1","price":89.9,"currency_code":"EUR","in_stock":false},{"title":"3XL","offer_id":56456252195198,"sku":"4521517010 3XL-1","price":89.9,"currency_code":"EUR","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0946\/1832\/1278\/files\/167794268607-0.jpg?v=1761318051"},{"product_id":"cycling-vest-brand-castelli-pro-light-wind-vest-soudal-quick-step-2025","title":"CASTELLI PRO LIGHT SOUDAL QUICK-STEP 2025 VEST","description":"\u003cdiv class=\"\"\u003e\n\u003ch2\u003eCASTELLI PRO LIGHT WIND VEST – SOUDAL QUICK-STEP 2025\u003c\/h2\u003e\n\u003cp\u003eThe \u003cstrong\u003eCastelli Pro Light Wind Vest Soudal Quick-Step 2020\u003c\/strong\u003e is an essential piece for any cyclist looking for... \u003cstrong\u003eUltralight wind protection\u003c\/strong\u003e without compromising breathability. Developed based on the experience of the \u003cstrong\u003eSoudal Quick-Step\u003c\/strong\u003e professional team, This version combines \u003cstrong\u003ecutting-edge technology, aerodynamic design, and team style\u003c\/strong\u003e .\u003c\/p\u003e\n\u003cp\u003eThe \u003cstrong\u003eprinted fabric and the woven fabric in the front and shoulder areas\u003c\/strong\u003e have low air permeability. Effectively blocking wind while maintaining the breathability needed for peak performance. The \u003cstrong\u003estretchy mesh\u003c\/strong\u003e back panel provides ventilation and comfort. ensuring that the vest fits the body perfectly without adding bulk.\u003c\/p\u003e\n\u003cp\u003eThe \u003cstrong\u003eYKK® Vislon® zipper\u003c\/strong\u003e offers quick and easy handling. Even with gloves, the compact design allows the vest to be folded and stored in a jersey pocket. Ideal for long climbs, fast descents, or days when the weather is constantly changing.\u003c\/p\u003e\n\u003ch3\u003eFeatures\u003c\/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cstrong\u003eExtremely lightweight and compact\u003c\/strong\u003e , ideal for easy carrying in your pocket.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eFront and shoulder fabric\u003c\/strong\u003e with low air permeability to block wind.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eMesh back panel\u003c\/strong\u003e for full ventilation.\u003c\/li\u003e\n\u003cli\u003eSmooth-gliding \u003cstrong\u003eYKK® Vislon® zipper\u003c\/strong\u003e for quick adjustment.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eAnatomical fit\u003c\/strong\u003e for comfort and performance in cycling position.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eWeight:\u003c\/strong\u003e 94 g\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eIdeal temperature:\u003c\/strong\u003e 12–20°C \/ 53–68°F\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eFIT:\u003c\/strong\u003e Tailored\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch3\u003eProfessional Lightness\u003c\/h3\u003e\n\u003cp\u003eCreated for the \u003cstrong\u003eSoudal Quick-Step\u003c\/strong\u003e team, the \u003cstrong\u003ePro Light Wind Vest 2020\u003c\/strong\u003e offers The ideal combination of \u003cstrong\u003eprotection, lightness and breathability\u003c\/strong\u003e . It's the perfect vest to keep your body protected on descents and cool mornings. with the professional touch and aerodynamic performance that characterize \u003cstrong\u003eCastelli\u003c\/strong\u003e products.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c!-- ===== GUIA DE TAMANHOS CASTELLI ===== --\u003e\n\u003cdiv class=\"\"\u003e\u003c\/div\u003e","brand":"Castelli","offers":[{"title":"S","offer_id":56456253407614,"sku":"4235088150 S-1","price":59.9,"currency_code":"EUR","in_stock":false},{"title":"M","offer_id":56456253440382,"sku":"4235088150 M-1","price":59.9,"currency_code":"EUR","in_stock":false},{"title":"L","offer_id":56456253473150,"sku":"4235088150 L-1","price":59.9,"currency_code":"EUR","in_stock":false},{"title":"XL","offer_id":56456253505918,"sku":"4235088150 XL-1","price":59.9,"currency_code":"EUR","in_stock":false},{"title":"2XL","offer_id":56456253538686,"sku":"4235088150 2XL-1","price":59.9,"currency_code":"EUR","in_stock":false},{"title":"3XL","offer_id":56456253571454,"sku":"4235088150 3XL-1","price":59.9,"currency_code":"EUR","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0946\/1832\/1278\/files\/167350147714-0.jpg?v=1761318055"},{"product_id":"castelli-perfetto-ros-3-cycling-jacket-windproof-waterproof-breathable","title":"CASACO CASTELLI PERFETTO RoS 3 LARANJA","description":"\u003cdiv class=\"product-description\"\u003e\n  \u003ch2\u003eCASTELLI PERFETTO RoS 3 CYCLING JACKET\u003c\/h2\u003e\n\n  \u003cp\u003e\n    A \u003cstrong\u003eCastelli Perfetto RoS 3 Jacket\u003c\/strong\u003e é a evolução da icónica linha Perfetto,  \n    reconhecida pela sua combinação única de \u003cstrong\u003eproteção contra o vento e chuva\u003c\/strong\u003e,  \n    \u003cstrong\u003erespirabilidade excecional\u003c\/strong\u003e e \u003cstrong\u003eajuste elástico de alto desempenho\u003c\/strong\u003e.  \n    Concebida para ser a tua \u003cstrong\u003emelhor companheira em qualquer condição climática\u003c\/strong\u003e,  \n    esta é a jaqueta que faz tudo.\n  \u003c\/p\u003e\n\n  \u003cp\u003e\n    O segredo está no tecido \u003cstrong\u003ePolartec® AirCore™\u003c\/strong\u003e de 150 g,  \n    uma membrana eletrofiada permeável ao ar que oferece uma respirabilidade líder no setor  \n    sem comprometer a proteção contra o vento e a resistência à água.  \n    A jaqueta é \u003cstrong\u003enão isolada\u003c\/strong\u003e, sendo ideal para condições frescas,  \n    mas pode ser facilmente combinada com uma camada térmica adicional para enfrentar o frio intenso.\n  \u003c\/p\u003e\n\n  \u003cp\u003e\n    Inclui \u003cstrong\u003ecosturas nos ombros seladas\u003c\/strong\u003e para maior resistência à chuva,  \n    \u003cstrong\u003eaberturas de ventilação com fecho no peito\u003c\/strong\u003e e um \u003cstrong\u003efecho YKK® Vislon®\u003c\/strong\u003e  \n    com dupla abertura para regulação de temperatura e acesso rápido aos bolsos.  \n    A cauda alongada protege contra os salpicos da roda traseira e os \u003cstrong\u003eelementos refletores\u003c\/strong\u003e  \n    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\u003eProteção total\u003c\/strong\u003e contra vento e chuva leve, com elevada respirabilidade.\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003eTecido Polartec® AirCore™\u003c\/strong\u003e de 150 g com membrana eletrofiada para conforto e ventilação.\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003eCosturas refletoras seladas\u003c\/strong\u003e nos ombros para resistência adicional à chuva.\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003eFecho YKK® Vislon®\u003c\/strong\u003e de dupla abertura, fácil de manusear com luvas.\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003eAberturas de ventilação\u003c\/strong\u003e com fecho no peito para regulação térmica.\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003e3 bolsos traseiros\u003c\/strong\u003e com orifícios de drenagem.\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003eCauda alongada\u003c\/strong\u003e para proteção contra salpicos da roda.\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003ePormenores refletores\u003c\/strong\u003e para maior segurança.\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003ePeso:\u003c\/strong\u003e 244 g\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003eTemperatura ideal:\u003c\/strong\u003e 4–14 °C \/ 39–57 °F\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003eFIT:\u003c\/strong\u003e Tailored\u003c\/li\u003e\n  \u003c\/ul\u003e\n\n  \u003ch3\u003eA Jaqueta Que Faz Tudo\u003c\/h3\u003e\n  \u003cp\u003e\n    A \u003cstrong\u003ePerfetto RoS 3\u003c\/strong\u003e é a escolha definitiva para quem procura uma jaqueta versátil e fiável  \n    para pedalar em qualquer condição.  \n    Oferece proteção completa, respirabilidade de topo e conforto incomparável,  \n    mantendo o estilo e a performance que definem a Castelli.  \n    Seja para treinos frios, dias húmidos ou aventuras de longa distância,  \n    esta é \u003cstrong\u003ea jaqueta que nunca te vai deixar ficar mal\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":56456254816638,"sku":"4525556245 S-2","price":189.9,"currency_code":"EUR","in_stock":false},{"title":"M","offer_id":56456254849406,"sku":"4525556245 M-2","price":189.9,"currency_code":"EUR","in_stock":true},{"title":"L","offer_id":56456254882174,"sku":"4525556245 L-2","price":189.9,"currency_code":"EUR","in_stock":false},{"title":"XL","offer_id":56456254914942,"sku":"4525556245 XL-2","price":189.9,"currency_code":"EUR","in_stock":true},{"title":"2XL","offer_id":56456254947710,"sku":"4525556245 2XL-2","price":189.9,"currency_code":"EUR","in_stock":true},{"title":"3XL","offer_id":56456254980478,"sku":"4525556245 3XL-2","price":189.9,"currency_code":"EUR","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0946\/1832\/1278\/files\/167817688835-0.jpg?v=1761318058"},{"product_id":"winter-cycling-gloves-brand-castelli-perfetto-ros-glove","title":"CASTELLI PERFETTO RoS WINTER GLOVES BLACK","description":"\u003cdiv class=\"\"\u003e\n\u003ch2\u003eCASTELLI PERFETTO RoS WINTER GLOVES\u003c\/h2\u003e\n\u003cp\u003e\u003cstrong\u003eCastelli Perfetto RoS Gloves\u003c\/strong\u003e represent the perfect balance between \u003cstrong\u003eprotection, comfort, and innovation\u003c\/strong\u003e . Created with a futuristic, \u003cstrong\u003esingle-stitch\u003c\/strong\u003e thermoformed construction, these gloves provide a design \u003cstrong\u003eThin, warm and extremely comfortable\u003c\/strong\u003e , ideal for the cold autumn and winter months.\u003c\/p\u003e\n\u003cp\u003eMade with \u003cstrong\u003eGORE-TEX INFINIUM™ WINDSTOPPER® Stretch Warm\u003c\/strong\u003e , They guarantee complete protection against wind and excellent water resistance, while maintaining breathability and freedom of movement. The \u003cstrong\u003epolar interior\u003c\/strong\u003e provides thermal insulation, while the \u003cstrong\u003esilicone areas on the palm...\u003c\/strong\u003e They ensure a firm grip on the handlebars, even in rainy or wet conditions.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eCastelli Damping System (CDS)\u003c\/strong\u003e technology protects the median nerve. Reducing numbness and fatigue in the hands during long bike rides. The \u003cstrong\u003eelastic neoprene cuff\u003c\/strong\u003e makes it easy to put on and take off. And the \u003cstrong\u003etouchscreen-compatible tips\u003c\/strong\u003e allow you to use your phone without removing your gloves. A complete, functional and elegant model for the discerning cyclist.\u003c\/p\u003e\n\u003ch3\u003eFeatures\u003c\/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cstrong\u003eThermoformed, one-seam construction\u003c\/strong\u003e for a perfect fit and aerodynamic design.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eGORE-TEX INFINIUM™ WINDSTOPPER® Stretch Warm\u003c\/strong\u003e for protection against wind and water.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eWool interior\u003c\/strong\u003e for warmth and comfort.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eCastelli Damping System (CDS)\u003c\/strong\u003e for median nerve protection and vibration reduction.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eElastic neoprene cuff\u003c\/strong\u003e for easy on and off.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eSilicone zones\u003c\/strong\u003e on the palm for superior grip.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eReflective details\u003c\/strong\u003e for increased visibility.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eTouchscreen technology\u003c\/strong\u003e at your fingertips.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eIdeal temperature:\u003c\/strong\u003e 4–14°C \/ 39–57°F\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eFIT:\u003c\/strong\u003e Tailored\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch3\u003eCDS – Castelli Damping System\u003c\/h3\u003e\n\u003cp\u003eThe \u003cstrong\u003eCastelli Damping System (CDS)\u003c\/strong\u003e was developed to solve a common problem among cyclists: \u003cstrong\u003eDiscomfort and numbness in the hands\u003c\/strong\u003e caused by prolonged contact with the handlebars. Castelli carefully mapped the key zones of the hand to create a protective structure that combines \u003cstrong\u003eShock-absorbing materials and cushioning foams\u003c\/strong\u003e provide superior comfort and control. The CDS is present in several models of the Castelli collection and is recognized for its exceptional performance. both in training and in competition.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c!-- ===== GUIA DE TAMANHO LUVAS CASTELLI ===== --\u003e\n\u003cdiv class=\"\"\u003e\u003c\/div\u003e","brand":"Castelli","offers":[{"title":"S","offer_id":56456256061822,"sku":"4519519010 S-1","price":59.9,"currency_code":"EUR","in_stock":true},{"title":"M","offer_id":56456256094590,"sku":"4519519010 M-1","price":59.9,"currency_code":"EUR","in_stock":true},{"title":"L","offer_id":56456256127358,"sku":"4519519010 L-1","price":59.9,"currency_code":"EUR","in_stock":true},{"title":"XL","offer_id":56456256160126,"sku":"4519519010 XL-1","price":59.9,"currency_code":"EUR","in_stock":true},{"title":"2XL","offer_id":56456256192894,"sku":"4519519010 2XL-1","price":59.9,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0946\/1832\/1278\/files\/167001973445-0.jpg?v=1761318075"},{"product_id":"castelli-arenberg-gel-lf-cycling-gloves-long-finger-mtb-gravel-road-bike","title":"CASTELLI ARENBERG GEL LF GLOVES BLACK","description":"\u003cdiv class=\"\"\u003e\n\u003ch2\u003eCASTELLI ARENBERG GEL LF CYCLING GLOVES\u003c\/h2\u003e\n\u003cp\u003eThe \u003cstrong\u003eCastelli Arenberg Gel LF gloves\u003c\/strong\u003e are the long-fingered version of the brand's most padded summer model. Perfect for \u003cstrong\u003egravel, mountain biking\u003c\/strong\u003e , or road trips in cool weather. They combine exceptional protection, comfort, and grip — ideal for those facing uneven terrain or long distances.\u003c\/p\u003e\n\u003cp\u003eThe exclusive \u003cstrong\u003eCastelli Damping System (CDS)\u003c\/strong\u003e protects the median nerve. reducing numbness and discomfort in the hands, while the \u003cstrong\u003egel padding\u003c\/strong\u003e and \u003cstrong\u003esilicone pattern\u003c\/strong\u003e The padding in the palm increases shock absorption and handlebar control. The \u003cstrong\u003eadjustable wrist closure\u003c\/strong\u003e ensures a secure fit. And the \u003cstrong\u003eMicroMesh back panel\u003c\/strong\u003e offers excellent ventilation and lightness.\u003c\/p\u003e\n\u003cp\u003eFeaturing a \u003cstrong\u003emicrosuede finish on the thumb\u003c\/strong\u003e to wipe away facial moisture or sweat during exercise, These gloves offer the perfect balance of \u003cstrong\u003ecomplete protection, comfort, and performance\u003c\/strong\u003e . whether on cobblestone roads, gravel, or long days of training.\u003c\/p\u003e\n\u003ch3\u003eFeatures\u003c\/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cstrong\u003eGel padding\u003c\/strong\u003e and \u003cstrong\u003esilicone pattern\u003c\/strong\u003e for superior comfort and grip.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eCastelli Damping System (CDS)\u003c\/strong\u003e for median nerve protection.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eAdjustable wrist closure\u003c\/strong\u003e for a perfect fit.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eBack panel made of lightweight and breathable MicroMesh\u003c\/strong\u003e .\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eThumb made of microsuede\u003c\/strong\u003e for easy cleaning during training.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eWeight:\u003c\/strong\u003e 108 g\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eIdeal temperature:\u003c\/strong\u003e 12–27°C \/ 54–80°F\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eFIT:\u003c\/strong\u003e Regular\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch3\u003eUnlimited comfort\u003c\/h3\u003e\n\u003cp\u003eLike their short-toe counterparts, the Arenberg Gel LF offer \u003cstrong\u003eunparalleled comfort on any terrain\u003c\/strong\u003e . Its ergonomic design and \u003cstrong\u003eCDS\u003c\/strong\u003e ensure a smooth ride, even on \u003cstrong\u003egravel roads.\u003c\/strong\u003e or in \u003cstrong\u003ethe cobblestone sections of Paris-Roubaix\u003c\/strong\u003e . A premium choice for cyclists seeking maximum protection without compromising handlebar feel.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c!-- ===== GUIA DE TAMANHO LUVAS CASTELLI ===== --\u003e\n\u003cdiv class=\"\"\u003e\u003c\/div\u003e","brand":"Castelli","offers":[{"title":"XS","offer_id":56456257274238,"sku":"4520033010 XS-1","price":49.9,"currency_code":"EUR","in_stock":false},{"title":"S","offer_id":56456257307006,"sku":"4520033010 S-1","price":49.9,"currency_code":"EUR","in_stock":true},{"title":"M","offer_id":56456257339774,"sku":"4520033010 M-1","price":49.9,"currency_code":"EUR","in_stock":false},{"title":"L","offer_id":56456257372542,"sku":"4520033010 L-1","price":49.9,"currency_code":"EUR","in_stock":false},{"title":"XL","offer_id":56456257405310,"sku":"4520033010 XL-1","price":49.9,"currency_code":"EUR","in_stock":false},{"title":"2XL","offer_id":56456257438078,"sku":"4520033010 2XL-1","price":49.9,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0946\/1832\/1278\/files\/167831277280-0.jpg?v=1761318088"},{"product_id":"castelli-flanders-2-ls-cycling-base-layer-thermal-lightweight-breathable","title":"CAMISOLA INTERIOR CASTELLI FLANDERS 2 PRETO","description":"\u003cdiv class=\"product-description\"\u003e\n  \u003ch2\u003eCASTELLI FLANDERS 2 LONG SLEEVE CYCLING BASE LAYER\u003c\/h2\u003e\n\n  \u003cp\u003e\n    A \u003cstrong\u003eCastelli Flanders 2 Long Sleeve Base Layer\u003c\/strong\u003e é a camada base mais quente da Castelli,  \n    desenhada para enfrentar as condições mais frias do inverno.  \n    O tecido \u003cstrong\u003eSottoZero Fleece\u003c\/strong\u003e de poliéster 100% proporciona um excelente isolamento térmico,  \n    mantendo o corpo seco e confortável mesmo em temperaturas negativas.\n  \u003c\/p\u003e\n\n  \u003cp\u003e\n    Com uma \u003cstrong\u003egola de altura média\u003c\/strong\u003e que ajuda a proteger o pescoço do frio e um ajuste ergonómico,  \n    esta peça adapta-se perfeitamente sob qualquer jersey ou casaco.  \n    As \u003cstrong\u003ecosturas planas Merrow\u003c\/strong\u003e reduzem o atrito e aumentam o conforto,  \n    enquanto as \u003cstrong\u003einserções em malha nas axilas\u003c\/strong\u003e garantem ventilação e gestão ideal da humidade durante o esforço.\n  \u003c\/p\u003e\n\n  \u003cp\u003e\n    Ideal para ciclistas que não abdicam de pedalar em dias frios, a Flanders 2 é sinónimo de  \n    \u003cstrong\u003eaquecimento, conforto e performance\u003c\/strong\u003e em qualquer saída de inverno.\n  \u003c\/p\u003e\n\n  \u003ch3\u003eCaracterísticas\u003c\/h3\u003e\n  \u003cul\u003e\n    \u003cli\u003e\n\u003cstrong\u003eTecido SottoZero Fleece\u003c\/strong\u003e 100% poliéster para isolamento térmico e gestão de humidade.\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003eGola de altura média\u003c\/strong\u003e para proteção adicional contra o frio.\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003eCosturas planas Merrow\u003c\/strong\u003e para maior conforto e durabilidade.\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003ePainéis em malha nas axilas\u003c\/strong\u003e para ventilação e controlo da temperatura.\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003ePeso:\u003c\/strong\u003e 181 g\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003eTemperatura ideal:\u003c\/strong\u003e -2–10 °C \/ 28–50 °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":"Castelli","offers":[{"title":"XS","offer_id":56456257503614,"sku":"4525525010 XS-1","price":79.9,"currency_code":"EUR","in_stock":false},{"title":"S","offer_id":56456257536382,"sku":"4525525010 S-1","price":79.9,"currency_code":"EUR","in_stock":true},{"title":"M","offer_id":56456257569150,"sku":"4525525010 M-1","price":79.9,"currency_code":"EUR","in_stock":true},{"title":"L","offer_id":56456257601918,"sku":"4525525010 L-1","price":79.9,"currency_code":"EUR","in_stock":true},{"title":"XL","offer_id":56456257634686,"sku":"4525525010 XL-1","price":79.9,"currency_code":"EUR","in_stock":true},{"title":"2XL","offer_id":56456257667454,"sku":"4525525010 2XL-1","price":79.9,"currency_code":"EUR","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0946\/1832\/1278\/files\/167819878282-0.jpg?v=1761318090"},{"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-1","price":79.9,"currency_code":"EUR","in_stock":false},{"title":"M","offer_id":56456259502462,"sku":"4524522030 M-1","price":79.9,"currency_code":"EUR","in_stock":false},{"title":"L","offer_id":56456259535230,"sku":"4524522030 L-1","price":79.9,"currency_code":"EUR","in_stock":false},{"title":"XL","offer_id":56456259567998,"sku":"4524522030 XL-1","price":79.9,"currency_code":"EUR","in_stock":false},{"title":"2XL","offer_id":56456259600766,"sku":"4524522030 2XL-1","price":79.9,"currency_code":"EUR","in_stock":false},{"title":"3XL","offer_id":56456259633534,"sku":"4524522030 3XL-1","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-entrata-2-cycling-jacket-windproof-breathable-thermal-back-panel","title":"CASACO CASTELLI ENTRATA 2 VERMELHO","description":"\u003cdiv class=\"product-description\"\u003e\n  \u003ch2\u003eCASTELLI ENTRATA 2 CYCLING JACKET\u003c\/h2\u003e\n\n  \u003cp\u003e\n    A \u003cstrong\u003eCastelli Entrata 2 Jacket\u003c\/strong\u003e foi concebida para proporcionar \u003cstrong\u003eproteção eficaz contra o vento\u003c\/strong\u003e e o frio moderado, \n    mantendo uma \u003cstrong\u003erespirabilidade excecional\u003c\/strong\u003e.  \n    Ideal para saídas em dias frescos, combina tecidos técnicos de elevada qualidade com o ajuste confortável característico da Castelli.\n  \u003c\/p\u003e\n\n  \u003cp\u003e\n    A parte frontal e as mangas são fabricadas com o inovador \u003cstrong\u003etecido Polartec® AirCore™\u003c\/strong\u003e de 298 g, \n    que oferece \u003cstrong\u003eproteção contra o vento e permeabilidade ao ar\u003c\/strong\u003e líder na sua classe.  \n    Este tecido electrofiado cria uma barreira eficaz contra o frio sem comprometer a ventilação.  \n    Nas costas, o tecido \u003cstrong\u003eWarmer fleece elástico em poliéster\u003c\/strong\u003e assegura uma excelente gestão da humidade e respirabilidade.\n  \u003c\/p\u003e\n\n  \u003cp\u003e\n    O \u003cstrong\u003efecho YKK® Vislon®\u003c\/strong\u003e facilita o ajuste em andamento, enquanto os \u003cstrong\u003etrês bolsos traseiros\u003c\/strong\u003e oferecem amplo espaço de arrumação.  \n    O \u003cstrong\u003epormenor refletor na base dos bolsos\u003c\/strong\u003e melhora a visibilidade em condições de pouca luz.\n  \u003c\/p\u003e\n\n  \u003cp\u003e\n    Uma escolha equilibrada entre \u003cstrong\u003eproteção térmica, respirabilidade e conforto\u003c\/strong\u003e, \n    tornando a Entrata 2 a companheira ideal para treinos ou passeios durante o outono e o início do inverno.\n  \u003c\/p\u003e\n\n  \u003ch3\u003eCaracterísticas\u003c\/h3\u003e\n  \u003cul\u003e\n    \u003cli\u003e\n\u003cstrong\u003eCasaco de peso intermédio\u003c\/strong\u003e para condições frescas a frias.\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003eFrente e mangas em Polartec® AirCore™\u003c\/strong\u003e para proteção contra o vento e respirabilidade superior.\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003eTecido Warmer fleece elástico\u003c\/strong\u003e nas costas para melhor gestão térmica e de humidade.\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003eFecho YKK® Vislon®\u003c\/strong\u003e de deslizamento suave.\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003e3 bolsos traseiros\u003c\/strong\u003e espaçosos para transportar o essencial.\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003eDetalhes refletivos\u003c\/strong\u003e para maior visibilidade em ambientes com pouca luz.\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003ePeso:\u003c\/strong\u003e 403 g\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003eTemperatura ideal:\u003c\/strong\u003e 6–15 °C \/ 43–59 °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":"Castelli","offers":[{"title":"S","offer_id":56456260813182,"sku":"4525507023 S","price":159.9,"currency_code":"EUR","in_stock":false},{"title":"M","offer_id":56456260845950,"sku":"4525507023 M","price":159.9,"currency_code":"EUR","in_stock":true},{"title":"L","offer_id":56456260878718,"sku":"4525507023 L","price":159.9,"currency_code":"EUR","in_stock":false},{"title":"XL","offer_id":56456260911486,"sku":"4525507023 XL","price":159.9,"currency_code":"EUR","in_stock":false},{"title":"2XL","offer_id":56456260944254,"sku":"4525507023 2XL","price":159.9,"currency_code":"EUR","in_stock":false},{"title":"3XL","offer_id":56456260977022,"sku":"4525507023 3XL","price":159.9,"currency_code":"EUR","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0946\/1832\/1278\/files\/167817460085-0.jpg?v=1761318126"},{"product_id":"castelli-unlimited-bibtight-thermoflex-winter-cycling-bib-tights-breathable","title":"CASTELLI UNLIMITED BIBTIGHT BLACK","description":"\u003cdiv class=\"\"\u003e\n\u003ch2\u003eCASTELLI UNLIMITED BIBTIGHT\u003c\/h2\u003e\n\u003cp\u003e\u003cstrong\u003eCastelli Unlimited Bibtight\u003c\/strong\u003e combines the thermal comfort and quality of the \u003cstrong\u003eEspresso\u003c\/strong\u003e line. With the added functionality of \u003cstrong\u003eside pockets\u003c\/strong\u003e , making it ideal for long training sessions, gravel adventures, or road cycling on cold days.\u003c\/p\u003e\n\u003cp\u003eMade from \u003cstrong\u003eThermoflex fabric\u003c\/strong\u003e , it offers the perfect balance of \u003cstrong\u003ewarmth, elasticity and comfort\u003c\/strong\u003e . The \u003cstrong\u003eelastic mesh straps\u003c\/strong\u003e ensure ventilation and freedom of movement, while the \u003cstrong\u003emesh pockets\u003c\/strong\u003e The buttons on each leg allow you to carry small items in a practical and safe way.\u003c\/p\u003e\n\u003cp\u003eThe \u003cstrong\u003eProgetto X2 Air Seamless padding\u003c\/strong\u003e provides exceptional comfort over long distances. Eliminating pressure points and improving breathability. With no zippers at the ankles, the design is clean and reduces bulk, ensuring a smooth fit with socks or sneakers.\u003c\/p\u003e\n\u003cp\u003eDetails such as the \u003cstrong\u003ereflective element on the back\u003c\/strong\u003e increase visibility. completing a versatile and comfortable outfit for any outing in moderately cold conditions.\u003c\/p\u003e\n\u003ch3\u003eFeatures\u003c\/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cstrong\u003eThermoflex fabric\u003c\/strong\u003e for warmth, elasticity and comfort in cold temperatures.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eElastic mesh straps\u003c\/strong\u003e for better ventilation and support.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eSide mesh pockets\u003c\/strong\u003e on both legs for convenient carrying.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eProgetto X2 Air Seamless padding\u003c\/strong\u003e for lasting comfort over long distances.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eNo zippers at the ankles\u003c\/strong\u003e to reduce bulk and increase comfort.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eReflective detail on the back\u003c\/strong\u003e for increased visibility.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eWeight:\u003c\/strong\u003e 331 g\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eIdeal temperature:\u003c\/strong\u003e 4–16°C \/ 39–61°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=\"\"\u003e\u003c\/div\u003e","brand":"Castelli","offers":[{"title":"S","offer_id":56456261304702,"sku":"4525521010 S-2","price":139.9,"currency_code":"EUR","in_stock":true},{"title":"M","offer_id":56456261337470,"sku":"4525521010 M-2","price":139.9,"currency_code":"EUR","in_stock":true},{"title":"L","offer_id":56456261370238,"sku":"4525521010 L-2","price":139.9,"currency_code":"EUR","in_stock":true},{"title":"XL","offer_id":56456261403006,"sku":"4525521010 XL-2","price":139.9,"currency_code":"EUR","in_stock":true},{"title":"2XL","offer_id":56456261435774,"sku":"4525521010 2XL-2","price":139.9,"currency_code":"EUR","in_stock":true},{"title":"3XL","offer_id":56456261468542,"sku":"4525521010 3XL-2","price":139.9,"currency_code":"EUR","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0946\/1832\/1278\/files\/167817515994-0.jpg?v=1761318129"},{"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-3","price":99.9,"currency_code":"EUR","in_stock":false},{"title":"M","offer_id":56456262287742,"sku":"4525510064 M-3","price":99.9,"currency_code":"EUR","in_stock":false},{"title":"L","offer_id":56456262320510,"sku":"4525510064 L-3","price":99.9,"currency_code":"EUR","in_stock":false},{"title":"XL","offer_id":56456262353278,"sku":"4525510064 XL-3","price":99.9,"currency_code":"EUR","in_stock":false},{"title":"2XL","offer_id":56456262386046,"sku":"4525510064 2XL-3","price":99.9,"currency_code":"EUR","in_stock":false},{"title":"3XL","offer_id":56456262418814,"sku":"4525510064 3XL-3","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"}],"url":"https:\/\/www.cyclistcloset.pt\/en\/collections\/castelli-inverno.oembed","provider":"Cyclist's Closet","version":"1.0","type":"link"}