{"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","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":"COLETE CORTA-VENTO CASTELLI PERFETTO AIR PRETO","description":"\u003cdiv class=\"product-description\"\u003e\n\u003cdiv class=\"product-description\"\u003e\n\u003ch2\u003eCASTELLI PERFETTO AIR\u003c\/h2\u003e\n\u003cp\u003eA \u003cstrong\u003eCastelli Perfetto Air Vest\u003c\/strong\u003e é o colete ideal para pedalar em condições frescas, oferecendo \u003cstrong\u003eisolamento térmico moderado\u003c\/strong\u003e com \u003cstrong\u003erespirabilidade excecional\u003c\/strong\u003e. Desenvolvido com a inovadora \u003cstrong\u003etecnologia Ristretto\u003c\/strong\u003e, este colete mantém o corpo quente e seco, permitindo a passagem controlada de ar para regular a temperatura e o conforto durante toda a pedalada.\u003c\/p\u003e\n\u003ch3\u003eCaracterísticas\u003c\/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eColete de peso médio\u003c\/strong\u003e para temperaturas frescas, com isolamento moderado e excelente respirabilidade.\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eTecnologia Castelli Ristretto Lite\u003c\/strong\u003e para aquecimento, secagem e respirabilidade superiores, com tratamento \u003cstrong\u003ePFAS-free DWR\u003c\/strong\u003e.\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003ePainel traseiro em tecido elástico\u003c\/strong\u003e que oferece ajuste perfeito e ventilação adicional.\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eFecho YKK® Vislon®\u003c\/strong\u003e com abertura dupla (superior e inferior) para ventilação ajustável.\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eTrês bolsos traseiros planos\u003c\/strong\u003e com aba interna de segurança.\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eDetalhes refletivos\u003c\/strong\u003e na parte inferior dos bolsos para maior visibilidade.\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eTecido desenvolvido em parceria com ITTTAI®\u003c\/strong\u003e, combinando elasticidade, respirabilidade e proteção contra a água através da experiência em membranas e laminação.\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003ePeso:\u003c\/strong\u003e 173 g\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eTemperatura:\u003c\/strong\u003e 10˚ – 18˚C \/ 50˚ – 64˚F\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eFIT:\u003c\/strong\u003e Tailored\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch3\u003eCONFORTO TÉRMICO COM RESPIRABILIDADE EXCECIONAL\u003c\/h3\u003e\n\u003cp\u003eEste é o colete pensado para quem precisa de \u003cstrong\u003ecalor e respirabilidade durante todo o percurso\u003c\/strong\u003e. O tecido \u003cstrong\u003eRistretto\u003c\/strong\u003e foi projetado para ser praticamente corta-vento, permitindo apenas o fluxo de ar necessário para eliminar a humidade e manter o corpo seco. A parte frontal utiliza tecido Ristretto de peso médio, enquanto o painel traseiro em tecido elástico aumenta a ventilação e o conforto. O fecho YKK® de dupla abertura permite ajustar facilmente a ventilação em movimento. Com três bolsos espaçosos e uma gola alta que dispensa o uso de neck warmer, o \u003cstrong\u003ePerfetto Air Vest\u003c\/strong\u003e é a peça ideal para os dias em que a versatilidade e o conforto são essenciais.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003ch2\u003e\u003c!-- ===== GUIA DE TAMANHOS CASTELLI ===== --\u003e\u003c\/h2\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\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- ===== MODAL ===== --\u003e\n\u003cp\u003e\u0026nbsp;\u003c\/p\u003e\n\u003cp\u003e\u0026nbsp;\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\u0026nbsp;\u003c\/p\u003e\n\u003cp\u003e\u0026nbsp;\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\u0026nbsp;\u003c\/p\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\u003eCAMISOLA TÉRMICA DE CICLISMO CASTELLI ENTRATA\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":"COLETE CORTA-VENTO CASTELLI SQUADRA STRETCH CINZA","description":"\u003cdiv class=\"product-description\"\u003e\n\u003cdiv class=\"product-description\"\u003e\n\u003ch2\u003eCASTELLI SQUADRA STRETCH CYCLING VEST\u003c\/h2\u003e\n\u003cp\u003eA \u003cstrong\u003eCastelli Squadra Stretch Vest\u003c\/strong\u003e é uma solução simples e elegante para manter o vento afastado do tronco em condições frescas, oferecendo um ajuste justo ao corpo e excelente ventilação. Uma peça leve, prática e essencial para quem procura proteção adicional sem comprometer a liberdade de movimento.\u003c\/p\u003e\n\u003ch3\u003eCaracterísticas\u003c\/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eTecido ripstop com revestimento\u003c\/strong\u003e à frente e atrás para bloquear o vento e resistir a salpicos.\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003ePainéis laterais em tecido elástico denso\u003c\/strong\u003e para ajuste perfeito e ventilação eficiente.\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eGola alta\u003c\/strong\u003e para maior proteção contra o frio e correntes de ar.\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eDetalhes refletores\u003c\/strong\u003e no peito e na parte inferior das costas para melhor visibilidade em pouca luz.\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003ePeso:\u003c\/strong\u003e 93 g\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eTemperatura:\u003c\/strong\u003e 12˚ – 20˚C \/ 54˚ – 68˚F\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eFIT:\u003c\/strong\u003e Tailored\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch3\u003eSIMPLICIDADE E EFICIÊNCIA\u003c\/h3\u003e\n\u003cp\u003eA Castelli reformulou completamente o seu colete de entrada, criando uma peça leve e funcional com o equilíbrio ideal entre proteção e respirabilidade. O tecido \u003cstrong\u003eripstop\u003c\/strong\u003e bloqueia o vento na frente e protege das projeções traseiras, enquanto os painéis elásticos laterais permitem que o colete se molde ao corpo, eliminando o desconfortável bater de tecido ao vento. A gola subida e o corte alongado atrás aumentam a proteção, enquanto o design com blocos de cor e os detalhes refletores acrescentam um toque de elegância. A \u003cstrong\u003eSquadra Stretch Vest\u003c\/strong\u003e é a escolha perfeita para saídas em dias de tempo instável — leve, eficaz e com estilo inconfundível Castelli.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003ch2\u003e\u003c!-- ===== GUIA DE TAMANHOS CASTELLI ===== --\u003e\u003c\/h2\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\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- ===== MODAL ===== --\u003e\n\u003cp\u003e\u0026nbsp;\u003c\/p\u003e\n\u003cp\u003e\u0026nbsp;\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\u0026nbsp;\u003c\/p\u003e\n\u003cp\u003e\u0026nbsp;\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\u0026nbsp;\u003c\/p\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":"CALÇAS CASTELLI ESPRESSO ROXO","description":"\u003cdiv class=\"product-description\"\u003e\n\u003cdiv class=\"product-description\"\u003e\n\u003ch2\u003eCASTELLI ESPRESSO CYCLING BIBTIGHT\u003c\/h2\u003e\n\u003cp\u003eA \u003cstrong\u003eCastelli Espresso Bibtight\u003c\/strong\u003e foi concebida para ser a melhor companheira durante a maioria das suas saídas de inverno. Focada no conforto e no desempenho, utiliza o tecido \u003cstrong\u003eThermoflex\u003c\/strong\u003e em toda a sua extensão, garantindo calor, elasticidade e suavidade. As costuras estrategicamente posicionadas minimizam qualquer irritação, enquanto a badana \u003cstrong\u003eProgetto X2 Air Seamless\u003c\/strong\u003e assegura conforto mesmo nos percursos mais longos. Um design simples, elegante e funcional para que se concentre apenas em pedalar.\u003c\/p\u003e\n\u003ch3\u003eCaracterísticas\u003c\/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eTecido Thermoflex\u003c\/strong\u003e para aquecimento, elasticidade e máximo conforto.\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eAlças em malha elástica\u003c\/strong\u003e que oferecem suporte e ventilação eficaz.\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eBadana Progetto X2 Air Seamless\u003c\/strong\u003e desenvolvida para conforto em longas distâncias.\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eConstrução sem fecho nos tornozelos\u003c\/strong\u003e para eliminar volume e irritações, ideal com coberturas de sapatos.\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eEtiqueta refletora\u003c\/strong\u003e na parte traseira da perna para maior visibilidade.\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003ePeso:\u003c\/strong\u003e 268 g\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eTemperatura:\u003c\/strong\u003e 4˚ – 15˚C \/ 39˚ – 59˚F\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eFIT:\u003c\/strong\u003e Regular\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch3\u003eCONFORTO E DESEMPENHO DE INVERNO\u003c\/h3\u003e\n\u003cp\u003eA \u003cstrong\u003eEspresso Bibtight\u003c\/strong\u003e é o resultado da experiência da Castelli em criar roupa de inverno que combina calor e conforto superiores. As costuras foram estudadas para acompanhar o movimento natural do corpo sem causar fricção, e o tornozelo sem fecho garante um ajuste limpo e aerodinâmico. Inspirada no design da \u003cstrong\u003eEspresso Bibshort\u003c\/strong\u003e, esta versão térmica foi pensada para proporcionar a mesma sensação de segunda pele, mesmo nos dias mais frios. Simples, eficaz e incrivelmente confortável — porque no inverno, o essencial é sentir-se bem sobre a bicicleta.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003ch2\u003e\u003c!-- ===== GUIA DE TAMANHOS CASTELLI ===== --\u003e\u003c\/h2\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 da tua \u003cstrong\u003ecintura (B)\u003c\/strong\u003e e da tua \u003cstrong\u003eanca (C)\u003c\/strong\u003e em centímetros e compara com o guia de tamanhos Castelli abaixo.\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003eMede a \u003cstrong\u003ecintura (B)\u003c\/strong\u003e na zona mais estreita do tronco.\u003c\/li\u003e\n\u003cli\u003eMede a \u003cstrong\u003eanca (C)\u003c\/strong\u003e na zona mais larga dos glúteos.\u003c\/li\u003e\n\u003cli\u003eUsa uma fita métrica flexível, sem apertar.\u003c\/li\u003e\n\u003cli\u003eCompara as medidas com a tabela e considera escolher \u003cstrong\u003eum tamanho acima\u003c\/strong\u003e do sugerido, conforme recomendação da Castelli.\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\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- ===== MODAL ===== --\u003e\n\u003cp\u003e\u0026nbsp;\u003c\/p\u003e\n\u003cp\u003e\u0026nbsp;\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\u0026nbsp;\u003c\/p\u003e\n\u003cp\u003e\u0026nbsp;\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\u0026nbsp;\u003c\/p\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","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\u003eCAMADA BASE CASTELLI PROSECCO TECH MANGA COMPRIDA\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","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":"CALÇAS CASTELLI SORPASSO RoS PRETO","description":"\u003cdiv class=\"product-description\"\u003e\n\u003cdiv class=\"product-description\"\u003e\n\u003ch2\u003eCASTELLI SORPASSO RoS BIBTIGHT\u003c\/h2\u003e\n\u003cp\u003eA \u003cstrong\u003eCastelli Sorpasso RoS Bibtight\u003c\/strong\u003e foi concebida para longas horas em estrada, oferecendo desempenho e conforto superiores em qualquer condição. Fabricada com os tecidos \u003cstrong\u003eNano Flex 3G\u003c\/strong\u003e e \u003cstrong\u003eNano Flex Xtra Dry\u003c\/strong\u003e, combina calor, elasticidade e resistência à água, garantindo proteção e liberdade de movimento mesmo nos dias mais frios e húmidos. O corte anatómico e a \u003cstrong\u003ealmofada Progetto X2 Air Seamless\u003c\/strong\u003e asseguram um conforto incomparável em pedais prolongados.\u003c\/p\u003e\n\u003ch3\u003eCaracterísticas\u003c\/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eTecido Nano Flex 3G\u003c\/strong\u003e — o melhor equilíbrio entre calor, compressão elástica, suavidade e repelência à água.\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003ePainéis Nano Flex Xtra Dry\u003c\/strong\u003e na parte frontal e nas coxas para maior isolamento térmico, e na traseira para proteção contra salpicos.\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eCorte anatómico\u003c\/strong\u003e nos quadris e joelhos, adaptando-se naturalmente ao corpo em movimento.\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eElementos refletoras\u003c\/strong\u003e para máxima visibilidade em condições de pouca luz.\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eAlças planas e elásticas\u003c\/strong\u003e para um ajuste confortável e sem pressão excessiva.\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eFechos YKK® Camlock®\u003c\/strong\u003e nos tornozelos, de fácil abertura e fecho.\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003ePeso:\u003c\/strong\u003e 381 g\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eTemperatura:\u003c\/strong\u003e -2°C – 10°C \/ 28°F – 50°F\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eFIT:\u003c\/strong\u003e Tailored\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch3\u003eTECNOLOGIA RoS — RAIN OR SHINE\u003c\/h3\u003e\n\u003cp\u003eA \u003cstrong\u003eCastelli\u003c\/strong\u003e desenvolveu a linha \u003cstrong\u003eRoS (Rain or Shine)\u003c\/strong\u003e como a solução definitiva para condições variáveis: o melhor desempenho em tempo seco, com resistência à água suficiente para enfrentar chuva ligeira ou estradas molhadas. Tudo isto sem comprometer a respirabilidade e ventilação, essenciais para manter o conforto durante horas no selim. Uma bibtight versátil e premium, pronta para as suas aventuras de inverno.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003ch2\u003e\u003c!-- ===== GUIA DE TAMANHOS CASTELLI ===== --\u003e\u003c\/h2\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 da tua \u003cstrong\u003ecintura (B)\u003c\/strong\u003e e da tua \u003cstrong\u003eanca (C)\u003c\/strong\u003e em centímetros e compara com o guia de tamanhos Castelli abaixo.\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003eMede a \u003cstrong\u003ecintura (B)\u003c\/strong\u003e na zona mais estreita do tronco.\u003c\/li\u003e\n\u003cli\u003eMede a \u003cstrong\u003eanca (C)\u003c\/strong\u003e na zona mais larga dos glúteos.\u003c\/li\u003e\n\u003cli\u003eUsa uma fita métrica flexível, sem apertar.\u003c\/li\u003e\n\u003cli\u003eCompara as medidas com a tabela e considera escolher \u003cstrong\u003eum tamanho acima\u003c\/strong\u003e do sugerido, conforme recomendação da Castelli.\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\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- ===== MODAL ===== --\u003e\n\u003cp\u003e\u0026nbsp;\u003c\/p\u003e\n\u003cp\u003e\u0026nbsp;\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\u0026nbsp;\u003c\/p\u003e\n\u003cp\u003e\u0026nbsp;\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\u0026nbsp;\u003c\/p\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":"BLUSÃO 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","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":"CALÇAS CASTELLI SORPASSO RoS PRETO","description":"\u003cdiv class=\"product-description\"\u003e\n\u003cdiv class=\"product-description\"\u003e\n\u003ch2\u003eCASTELLI SORPASSO RoS CYCLING BIBTIGHT\u003c\/h2\u003e\n\u003cp\u003eA \u003cstrong\u003eCastelli Sorpasso RoS Bibtight\u003c\/strong\u003e foi desenhada para oferecer máximo conforto em longas horas de pedalada e nas mais variadas condições meteorológicas. Utiliza o tecido \u003cstrong\u003eNano Flex 3G\u003c\/strong\u003e — o melhor equilíbrio entre calor, compressão elástica, suavidade e repelência à água — com painéis adicionais em \u003cstrong\u003eNano Flex Xtra Dry\u003c\/strong\u003e nas zonas mais expostas ao frio e à projeção de água. O corte anatómico e a almofada \u003cstrong\u003eProgetto X2 Air Seamless\u003c\/strong\u003e garantem conforto superior mesmo nas distâncias mais longas.\u003c\/p\u003e\n\u003ch3\u003eCaracterísticas\u003c\/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eTecido Nano Flex 3G\u003c\/strong\u003e para o melhor equilíbrio entre calor, compressão elástica, suavidade e repelência à água.\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003ePainéis Nano Flex Xtra Dry\u003c\/strong\u003e na parte frontal e nas coxas para aquecimento extra, e na parte traseira para proteção contra salpicos da estrada.\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eCorte anatómico\u003c\/strong\u003e nas ancas e nos joelhos para total liberdade de movimento.\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eInserções refletoras\u003c\/strong\u003e para máxima visibilidade e segurança em condições de pouca luz.\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eAlças planas e elásticas\u003c\/strong\u003e que oferecem suporte sem compressão excessiva.\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eFechos YKK® Camlock®\u003c\/strong\u003e nos tornozelos para fácil colocação e ajuste seguro.\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003ePeso:\u003c\/strong\u003e 381 g\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eTemperatura:\u003c\/strong\u003e -2°C – 10°C \/ 28°F – 50°F\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eFIT:\u003c\/strong\u003e Tailored\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch3\u003ePROGETTO X2 AIR SEAMLESS\u003c\/h3\u003e\n\u003cp\u003eA almofada \u003cstrong\u003eProgetto X2 Air Seamless\u003c\/strong\u003e é composta por duas camadas independentes, cada uma com uma função específica:\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eSkin Care Layer\u003c\/strong\u003e — camada bacteriostática e sem costuras que se adapta ao corpo e ao selim, evitando irritações e fricções.\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eCushioning Layer\u003c\/strong\u003e — espuma de dupla densidade com perfurações para ventilação e absorção de impactos, garantindo conforto mesmo nas pedaladas mais longas.\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch3\u003eRoS – Rain or Shine Performance\u003c\/h3\u003e\n\u003cp\u003eA tecnologia \u003cstrong\u003eRoS (Rain or Shine)\u003c\/strong\u003e representa o compromisso da Castelli em criar vestuário de alto desempenho que oferece o melhor desempenho em tempo seco, mas que também resiste eficazmente à chuva e à humidade. O resultado é uma bibtight versátil, respirável e quase impermeável, ideal para enfrentar o inverno com conforto e confiança.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003ch2\u003e\u003c!-- ===== GUIA DE TAMANHOS CASTELLI ===== --\u003e\u003c\/h2\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 da tua \u003cstrong\u003ecintura (B)\u003c\/strong\u003e e da tua \u003cstrong\u003eanca (C)\u003c\/strong\u003e em centímetros e compara com o guia de tamanhos Castelli abaixo.\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003eMede a \u003cstrong\u003ecintura (B)\u003c\/strong\u003e na zona mais estreita do tronco.\u003c\/li\u003e\n\u003cli\u003eMede a \u003cstrong\u003eanca (C)\u003c\/strong\u003e na zona mais larga dos glúteos.\u003c\/li\u003e\n\u003cli\u003eUsa uma fita métrica flexível, sem apertar.\u003c\/li\u003e\n\u003cli\u003eCompara as medidas com a tabela e considera escolher \u003cstrong\u003eum tamanho acima\u003c\/strong\u003e do sugerido, conforme recomendação da Castelli.\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\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- ===== MODAL ===== --\u003e\n\u003cp\u003e\u0026nbsp;\u003c\/p\u003e\n\u003cp\u003e\u0026nbsp;\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\u0026nbsp;\u003c\/p\u003e\n\u003cp\u003e\u0026nbsp;\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\u0026nbsp;\u003c\/p\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":"CALÇAS CASTELLI FREE AERO RC PRETO","description":"\u003ch2\u003eCASTELLI FREE AERO RC\u003c\/h2\u003e\n\u003cp\u003e\u003cstrong\u003eA escolha definitiva para os treinos de inverno: performance aerodinâmica com o equilíbrio perfeito entre isolamento térmico e elasticidade.\u003c\/strong\u003e\u003cbr\u003eAs calças Free Aero RC Bibtight foram desenvolvidas para serem a tua primeira opção na maioria dos dias de inverno. Focadas no conforto de longa distância, estas calças utilizam a tecnologia Nano Flex 3G para manter o corpo quente e repelir a água, permitindo que te foques apenas na estrada, independentemente das condições meteorológicas.\u003c\/p\u003e\n\u003ch3\u003eEngenharia de Tecidos Nano Flex\u003c\/h3\u003e\n\u003cp\u003eDesde a cintura ao joelho, o tecido Nano Flex 3G oferece uma suavidade excecional e uma proteção eficaz contra o vento e a chuva leve. Na parte inferior da perna, um tecido entrançado mais leve com interior escovado protege contra os salpicos constantes das estradas molhadas. A ausência de fechos nos tornozelos, graças ao acabamento raw-cut, reduz o volume sob as capas de sapatos e aumenta o conforto global durante a pedalada.\u003c\/p\u003e\n\u003ch3\u003eEspecificações Técnicas\u003c\/h3\u003e\n\u003cul class=\"cc-list\"\u003e\n\u003cli\u003e\u003cstrong\u003eNano Flex 3G:\u003c\/strong\u003e Repelência à água de terceira geração e calor superior\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eCarneira Progetto X2 Air Seamless:\u003c\/strong\u003e Amortecimento de nível profissional para longas distâncias\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eAlças Minimalistas:\u003c\/strong\u003e Máxima estabilidade sem volume desnecessário\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eTerminações Raw-Cut:\u003c\/strong\u003e Pernas elásticas sem fecho para ajuste perfeito com acessórios\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eGestão de Humidade:\u003c\/strong\u003e Respirabilidade otimizada para evitar o arrefecimento pelo suor\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eSegurança:\u003c\/strong\u003e Painéis refletores traseiros para visibilidade em dias cinzentos\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eCorte:\u003c\/strong\u003e Race Fit (Ajuste de alta competição)\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp style=\"font-size: 13px; color: #555; margin-top: 10px;\"\u003eDesenhadas para os dias de base e preparação de pré-época, as Free Aero RC elevam o padrão de conforto no ciclismo de inverno.\u003c\/p\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":"CALÇAS CASTELLI SORPASSO RoS AZUL","description":"\u003cdiv class=\"product-description\"\u003e\n\u003cdiv class=\"product-description\"\u003e\n\u003ch2\u003eCASTELLI SORPASSO RoS CYCLING BIBTIGHT\u003c\/h2\u003e\n\u003cp\u003eA \u003cstrong\u003eCastelli Sorpasso RoS Bibtight\u003c\/strong\u003e foi concebida para proporcionar conforto durante longas horas de pedalada nas mais variadas condições meteorológicas. Fabricada com o avançado tecido \u003cstrong\u003eNano Flex 3G\u003c\/strong\u003e, oferece uma combinação perfeita de calor, elasticidade e repelência à água, enquanto os painéis \u003cstrong\u003eNano Flex Xtra Dry\u003c\/strong\u003e nas zonas mais expostas aumentam a proteção térmica. O corte anatómico e a almofada \u003cstrong\u003eProgetto X2 Air Seamless\u003c\/strong\u003e asseguram um conforto excecional em percursos de longa distância.\u003c\/p\u003e\n\u003ch3\u003eCaracterísticas\u003c\/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eTecido Nano Flex 3G\u003c\/strong\u003e — equilíbrio ideal entre calor, compressão elástica, suavidade e repelência à água.\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003ePainéis Nano Flex Xtra Dry\u003c\/strong\u003e na parte frontal superior e nas coxas para aquecimento adicional, e na zona traseira para proteção contra salpicos.\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eCorte anatómico\u003c\/strong\u003e nas ancas e joelhos para um ajuste natural e liberdade total de movimento.\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eInserções refletoras\u003c\/strong\u003e para máxima visibilidade em condições de pouca luz.\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eAlças elásticas planas\u003c\/strong\u003e que se adaptam confortavelmente ao corpo sem criar pressão.\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eFechos YKK® Camlock®\u003c\/strong\u003e nos tornozelos para fácil colocação e ajuste seguro.\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003ePeso:\u003c\/strong\u003e 381 g\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eTemperatura:\u003c\/strong\u003e -2°C – 10°C \/ 28°F – 50°F\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eFIT:\u003c\/strong\u003e Tailored\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch3\u003ePROGETTO X2 AIR SEAMLESS – CONFORTO PARA LONGAS DISTÂNCIAS\u003c\/h3\u003e\n\u003cp\u003eA almofada \u003cstrong\u003eProgetto X2 Air Seamless\u003c\/strong\u003e é composta por duas camadas independentes que garantem o máximo conforto:\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eSkin Care Layer\u003c\/strong\u003e — camada bacteriostática e sem costuras que se adapta ao corpo e ao selim, evitando irritações.\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eCushioning Layer\u003c\/strong\u003e — estrutura perfurada de dupla densidade que assegura ventilação e absorção de impactos mesmo nas pedaladas mais longas.\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch3\u003eRoS – Rain or Shine Performance\u003c\/h3\u003e\n\u003cp\u003eA tecnologia \u003cstrong\u003eRoS (Rain or Shine)\u003c\/strong\u003e representa o compromisso da Castelli em criar a melhor roupa possível para condições secas, sem comprometer a proteção contra a chuva. O resultado é uma bibtight versátil, respirável e resistente, ideal para enfrentar o inverno com conforto e confiança, tal como os ciclistas profissionais da \u003cstrong\u003eSoudal Quick-Step\u003c\/strong\u003e.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003ch2\u003e\u003c!-- ===== GUIA DE TAMANHOS CASTELLI ===== --\u003e\u003c\/h2\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 da tua \u003cstrong\u003ecintura (B)\u003c\/strong\u003e e da tua \u003cstrong\u003eanca (C)\u003c\/strong\u003e em centímetros e compara com o guia de tamanhos Castelli abaixo.\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003eMede a \u003cstrong\u003ecintura (B)\u003c\/strong\u003e na zona mais estreita do tronco.\u003c\/li\u003e\n\u003cli\u003eMede a \u003cstrong\u003eanca (C)\u003c\/strong\u003e na zona mais larga dos glúteos.\u003c\/li\u003e\n\u003cli\u003eUsa uma fita métrica flexível, sem apertar.\u003c\/li\u003e\n\u003cli\u003eCompara as medidas com a tabela e considera escolher \u003cstrong\u003eum tamanho acima\u003c\/strong\u003e do sugerido, conforme recomendação da Castelli.\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\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- ===== MODAL ===== --\u003e\n\u003cp\u003e\u0026nbsp;\u003c\/p\u003e\n\u003cp\u003e\u0026nbsp;\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\u0026nbsp;\u003c\/p\u003e\n\u003cp\u003e\u0026nbsp;\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\u0026nbsp;\u003c\/p\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":"CALÇAS CASTELLI SORPASSO RoS SOUDAL QUICK-STEP","description":"\u003cdiv class=\"product-description\"\u003e\n\u003cdiv class=\"product-description\"\u003e\n\u003ch2\u003eCASTELLI SOUDAL QUICK-STEP SORPASSO RoS BIBTIGHT\u003c\/h2\u003e\n\u003cp\u003eFeita para longas horas em qualquer condição, a \u003cstrong\u003eCastelli Sorpasso RoS Bibtight\u003c\/strong\u003e é o mesmo modelo usado pela \u003cstrong\u003eequipa Soudal Quick-Step\u003c\/strong\u003e durante os treinos de inverno. Combina proteção térmica, elasticidade e resistência à água, oferecendo desempenho e conforto excecionais nas condições mais exigentes.\u003c\/p\u003e\n\u003ch3\u003eCaracterísticas\u003c\/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eTecido Nano Flex 3G\u003c\/strong\u003e – equilíbrio perfeito entre calor, elasticidade, suavidade e repelência à água.\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003ePainéis Nano Flex Xtra Dry\u003c\/strong\u003e na parte frontal superior, coxas e zona traseira para proteção térmica adicional e contra salpicos da estrada.\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eCorte anatómico\u003c\/strong\u003e na zona das ancas e joelhos para ajuste ideal e total liberdade de movimento.\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003ePainéis refletivos\u003c\/strong\u003e nos tornozelos para máxima visibilidade em condições de pouca luz.\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eAlças planas e elásticas\u003c\/strong\u003e que garantem conforto e estabilidade durante o movimento.\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eFecho YKK® Camlock®\u003c\/strong\u003e nas pernas para ajuste e facilidade ao vestir.\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eProgetto X2 Air Seamless chamois\u003c\/strong\u003e — almofada de alto desempenho para longas horas no selim.\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eFaixa térmica:\u003c\/strong\u003e 0°C – 12°C\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003ePeso:\u003c\/strong\u003e 301 g\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eFIT:\u003c\/strong\u003e Race\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch3\u003ePROGETTO X2 AIR SEAMLESS – CONFORTO DE NÍVEL PROFISSIONAL\u003c\/h3\u003e\n\u003cp\u003eA almofada \u003cstrong\u003eProgetto X2 Air Seamless\u003c\/strong\u003e representa o auge da tecnologia Castelli em conforto para longas distâncias. É composta por \u003cstrong\u003eduas camadas independentes\u003c\/strong\u003e:\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eSkin Care Layer\u003c\/strong\u003e — camada bacteriostática e sem costuras que se adapta perfeitamente ao corpo e ao selim, evitando irritações e dobras.\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eCushioning Layer\u003c\/strong\u003e — tecnologia \u003cem\u003eSeamless Integrated Technology (S.I.T.)\u003c\/em\u003e com zonas de conforto em viscose perfuradas para máxima respirabilidade e amortecimento.\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch3\u003eDesempenho e resistência em qualquer condição\u003c\/h3\u003e\n\u003cp\u003eA \u003cstrong\u003eSorpasso RoS\u003c\/strong\u003e foi desenvolvida para o ciclista que não abranda no inverno. Com o avançado tecido \u003cstrong\u003eRoS (Rain or Shine)\u003c\/strong\u003e, mantém o calor em dias frios e repele a água sob chuva leve. O corte ergonómico e a elasticidade ideal garantem liberdade de movimento, enquanto o forro interior macio oferece conforto prolongado. É o equipamento perfeito para enfrentar treinos longos e condições imprevisíveis com o mesmo desempenho dos profissionais.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003ch2\u003e\u003c!-- ===== GUIA DE TAMANHOS CASTELLI ===== --\u003e\u003c\/h2\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 da tua \u003cstrong\u003ecintura (B)\u003c\/strong\u003e e da tua \u003cstrong\u003eanca (C)\u003c\/strong\u003e em centímetros e compara com o guia de tamanhos Castelli abaixo.\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003eMede a \u003cstrong\u003ecintura (B)\u003c\/strong\u003e na zona mais estreita do tronco.\u003c\/li\u003e\n\u003cli\u003eMede a \u003cstrong\u003eanca (C)\u003c\/strong\u003e na zona mais larga dos glúteos.\u003c\/li\u003e\n\u003cli\u003eUsa uma fita métrica flexível, sem apertar.\u003c\/li\u003e\n\u003cli\u003eCompara as medidas com a tabela e considera escolher \u003cstrong\u003eum tamanho acima\u003c\/strong\u003e do sugerido, conforme recomendação da Castelli.\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\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- ===== MODAL ===== --\u003e\n\u003cp\u003e\u0026nbsp;\u003c\/p\u003e\n\u003cp\u003e\u0026nbsp;\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\u0026nbsp;\u003c\/p\u003e\n\u003cp\u003e\u0026nbsp;\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\u0026nbsp;\u003c\/p\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":"CALÇAS CASTELLI SORPASSO RoS PRETO \/ VERMELHO","description":"\u003ch2\u003eCASTELLI SORPASSO RoS\u003c\/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAs calças de inverno definitivas para longas distâncias: desenhadas para oferecer performance e conforto numa amplitude térmica excecional.\u003c\/strong\u003e\u003cbr\u003eAs Sorpasso RoS (Rain or Shine) são a escolha técnica para o ciclista que não para durante os meses mais frios. Graças à combinação estratégica de tecidos Nano Flex, estas calças proporcionam um isolamento térmico superior e uma repelência à água líder de mercado, permitindo que treines com intensidade tanto em dias secos como sob chuva leve ou estradas molhadas.\u003c\/p\u003e\n\u003ch3\u003eEngenharia de Tecidos e Conforto Progetto X2\u003c\/h3\u003e\n\u003cp\u003eO segredo das Sorpasso reside no mapeamento corporal: o tecido Nano Flex 3G oferece suavidade e compressão nas pernas, enquanto os painéis Xtra Dry garantem calor extra no core e nas coxas. No interior, a carneira Progetto X2 Air Seamless protege os teus pontos de contacto em saídas de várias horas. Com um corte anatómico que se ajusta perfeitamente ao movimento e alças que desaparecem sob o casaco, estas calças são o padrão de referência para o inverno.\u003c\/p\u003e\n\u003ch3\u003eEspecificações Técnicas\u003c\/h3\u003e\n\u003cul class=\"cc-list\"\u003e\n\u003cli\u003e\u003cstrong\u003eNano Flex 3G:\u003c\/strong\u003e Calor, elasticidade e repelência à água de terceira geração\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003ePainéis Nano Flex Xtra Dry:\u003c\/strong\u003e Isolamento reforçado nas zonas críticas e proteção contra salpicos\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eCarneira Progetto X2 Air Seamless:\u003c\/strong\u003e Amortecimento profissional para longas distâncias\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eCorte Anatómico:\u003c\/strong\u003e Ajuste de precisão nas ancas e joelhos para total liberdade de movimentos\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eAlças Lie-Flat:\u003c\/strong\u003e Perfil ultra plano para máximo conforto e aerodinâmica\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eFechos YKK® Camlock®:\u003c\/strong\u003e Terminação de perna segura e fácil de manusear\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eAlta Visibilidade:\u003c\/strong\u003e Detalhes refletores traseiros para segurança em condições de luz baixa\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eGama Térmica:\u003c\/strong\u003e Eficaz desde os -2°C até aos 10°C\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp style=\"font-size: 13px; color: #555; margin-top: 10px;\"\u003eVersatilidade incomparável para quem exige o melhor equipamento para enfrentar o inverno rigoroso.\u003c\/p\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":"CASACO CASTELLI UNLIMITED PRETO","description":"\u003cdiv class=\"product-description\"\u003e\n\u003cdiv class=\"product-description\"\u003e\n\u003ch2\u003eCASTELLI UNLIMITED\u003c\/h2\u003e\n\u003cp\u003eA \u003cstrong\u003eCastelli Unlimited Jacket\u003c\/strong\u003e é a escolha ideal para quem procura conforto e proteção durante as aventuras em estrada ou gravel. O seu \u003cstrong\u003etecido cardado quente\u003c\/strong\u003e oferece isolamento térmico excecional, enquanto as zonas com \u003cstrong\u003eproteção corta-vento\u003c\/strong\u003e garantem o equilíbrio perfeito entre calor e respirabilidade. Versátil e funcional, é uma casaca feita para o ciclista que aprecia o desempenho e o estilo em qualquer terreno.\u003c\/p\u003e\n\u003ch3\u003eCaracterísticas\u003c\/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eTecido interior em fleece\u003c\/strong\u003e em toda a peça para aquecimento e conforto superiores.\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eProteção corta-vento localizada\u003c\/strong\u003e nas zonas mais expostas para bloquear o frio.\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eBolsos adicionais inteligentes\u003c\/strong\u003e: bolso frontal invisível para acesso rápido e bolso traseiro em malha elástica para guardar luvas, casaco ou snacks.\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eColar elástico leve\u003c\/strong\u003e que impede a entrada de ar frio.\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003e3 bolsos traseiros tipo “cargo”\u003c\/strong\u003e para transporte de equipamento essencial.\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eFecho YKK® de comprimento total\u003c\/strong\u003e para ajuste da ventilação e regulação térmica.\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eDetalhes refletivos\u003c\/strong\u003e na cintura e nos punhos para maior visibilidade.\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eTemperatura:\u003c\/strong\u003e 4°C – 14°C \/ 39°F – 57°F\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eFIT:\u003c\/strong\u003e Tailored\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch3\u003eDesempenho sem limites\u003c\/h3\u003e\n\u003cp\u003eCriada para longas aventuras, a \u003cstrong\u003eUnlimited Jacket\u003c\/strong\u003e combina proteção e versatilidade numa peça que se adapta facilmente a diferentes condições. A mistura entre conforto térmico, bolsos de arrumação adicionais e corte ajustado torna-a perfeita para pedalar em trilhos, gravel ou estradas frias. Uma peça que reflete o verdadeiro espírito da coleção \u003cstrong\u003eUnlimited\u003c\/strong\u003e — performance e liberdade em qualquer percurso.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003ch2\u003e\u003c!-- ===== GUIA DE TAMANHOS CASTELLI ===== --\u003e\u003c\/h2\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\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- ===== MODAL ===== --\u003e\n\u003cp\u003e\u0026nbsp;\u003c\/p\u003e\n\u003cp\u003e\u0026nbsp;\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\u0026nbsp;\u003c\/p\u003e\n\u003cp\u003e\u0026nbsp;\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\u0026nbsp;\u003c\/p\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\u003eCAMISOLA TÉRMICA CASTELLI ESPRESSO CYCLING\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","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":"GORRO CASTELLI SOUDAL QUICK-STEP 2024","description":"\u003cdiv class=\"cc-simple\"\u003e\n\u003ch2\u003eCASTELLI SOUDAL QUICK-STEP 2024\u003c\/h2\u003e\n\u003cp\u003e\u003cstrong\u003eMantém a cabeça e as orelhas protegidas com o gorro oficial da Soudal Quick-Step: isolamento térmico premium com um perfil ultra-fino.\u003c\/strong\u003e\u003cbr\u003eO Pro Thermal Skully é o acessório indispensável para enfrentar os treinos de inverno com o estilo do pelotão profissional. Fabricado em tecido Thermoflex, este gorro oferece um equilíbrio ideal entre retenção de calor e respirabilidade, garantindo que o suor é expelido enquanto o frio se mantém do lado de fora.\u003c\/p\u003e\n\u003ch3\u003eEngenharia para Conforto Máximo\u003c\/h3\u003e\n\u003cp\u003eDesenhado para ser usado por baixo do capacete sem que notes a sua presença, este gorro apresenta terminações de corte a laser que eliminam o volume desnecessário. A sua forma anatómica cobre estrategicamente as orelhas, as zonas mais sensíveis ao vento gelado, enquanto as costuras planas garantem que não existem irritações durante as horas de selim. É a peça de eleição dos profissionais para os dias mais rigorosos.\u003c\/p\u003e\n\u003ch3\u003eEspecificações Técnicas\u003c\/h3\u003e\n\u003cul class=\"cc-list\"\u003e\n\u003cli\u003e\u003cstrong\u003eTecido Thermoflex:\u003c\/strong\u003e Interior cardado para máximo calor e suavidade\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eCorte Anatómico:\u003c\/strong\u003e Pré-moldado para cobertura total das orelhas\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003ePerfil Sharp-Cut:\u003c\/strong\u003e Bordo plano para um ajuste perfeito sob o capacete\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eCosturas Planas:\u003c\/strong\u003e Construção de baixo perfil para evitar pontos de pressão\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eDetalhes Refletores:\u003c\/strong\u003e Visibilidade traseira para maior segurança\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eEdição Soudal Quick-Step:\u003c\/strong\u003e Grafismo oficial da equipa 2024\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp style=\"font-size: 13px; color: #555; margin-top: 10px;\"\u003eEnfrenta o inverno com a proteção técnica e a herança de vitória da 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","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":"CALÇAS CASTELLI POLARE 4 PRETO","description":"\u003cdiv class=\"product-description\"\u003e\n\u003cdiv class=\"product-description\"\u003e\n\u003ch2\u003eCASTELLI POLARE 4 BIBTIGHT\u003c\/h2\u003e\n\u003cp\u003eAs \u003cstrong\u003eCastelli Polare 4 Bibtight\u003c\/strong\u003e foram concebidas para os dias mais frios do ano. Com um \u003cstrong\u003epainel frontal em Polartec® AirCore™\u003c\/strong\u003e que oferece proteção total contra o vento e o frio, e tecido \u003cstrong\u003eThermoflex\u003c\/strong\u003e na parte traseira para maior calor e elasticidade, estas calças garantem conforto e desempenho em temperaturas abaixo de zero.\u003c\/p\u003e\n\u003ch3\u003eCaracterísticas\u003c\/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eA bibtight mais quente da Castelli\u003c\/strong\u003e, ideal para condições de temperatura negativas.\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003ePainel frontal completo em Polartec® AirCore™\u003c\/strong\u003e para proteção total contra o vento.\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eTecido Thermoflex fleece\u003c\/strong\u003e no assento e parte posterior das pernas para calor adicional e excelente elasticidade.\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eAlças em rede (mesh bibs)\u003c\/strong\u003e que não retêm a humidade, garantindo respirabilidade.\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eAlmofada KISS Air2\u003c\/strong\u003e para amortecimento e conforto sem volume excessivo.\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eFaixas refletoras de alta visibilidade\u003c\/strong\u003e acima do joelho (à frente) e na zona da barriga da perna (atrás).\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eFechos no tornozelo\u003c\/strong\u003e para vestir e despir facilmente.\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003ePeso:\u003c\/strong\u003e 311 g\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eTemperatura:\u003c\/strong\u003e -5˚ – 5˚C \/ 23˚ – 41˚F\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eFIT:\u003c\/strong\u003e Regular\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch3\u003eProteção total para os dias mais frios\u003c\/h3\u003e\n\u003cp\u003eAs \u003cstrong\u003ePolare 4\u003c\/strong\u003e foram desenhadas para quem não abdica de pedalar no inverno, mesmo nos dias de gelo. O tecido \u003cstrong\u003ePolartec® AirCore™\u003c\/strong\u003e cria uma barreira eficaz contra o vento e mantém o calor corporal, enquanto o \u003cstrong\u003eThermoflex\u003c\/strong\u003e garante liberdade de movimentos e conforto térmico. Com detalhes refletores e excelente respirabilidade, é a escolha ideal para treinos e longas distâncias em condições extremas.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003ch2\u003e\u003c!-- ===== GUIA DE TAMANHOS CASTELLI ===== --\u003e\u003c\/h2\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 da tua \u003cstrong\u003ecintura (B)\u003c\/strong\u003e e da tua \u003cstrong\u003eanca (C)\u003c\/strong\u003e em centímetros e compara com o guia de tamanhos Castelli abaixo.\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003eMede a \u003cstrong\u003ecintura (B)\u003c\/strong\u003e na zona mais estreita do tronco.\u003c\/li\u003e\n\u003cli\u003eMede a \u003cstrong\u003eanca (C)\u003c\/strong\u003e na zona mais larga dos glúteos.\u003c\/li\u003e\n\u003cli\u003eUsa uma fita métrica flexível, sem apertar.\u003c\/li\u003e\n\u003cli\u003eCompara as medidas com a tabela e considera escolher \u003cstrong\u003eum tamanho acima\u003c\/strong\u003e do sugerido, conforme recomendação da Castelli.\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\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- ===== MODAL ===== --\u003e\n\u003cp\u003e\u0026nbsp;\u003c\/p\u003e\n\u003cp\u003e\u0026nbsp;\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\u0026nbsp;\u003c\/p\u003e\n\u003cp\u003e\u0026nbsp;\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\u0026nbsp;\u003c\/p\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":"CALÇAS CASTELLI FREE AERO RC AZUL","description":"\u003ch2\u003eCASTELLI FREE AERO RC\u003c\/h2\u003e\n\u003cp\u003e\u003cstrong\u003eA escolha definitiva para os treinos de inverno: performance aerodinâmica com o equilíbrio perfeito entre isolamento térmico e elasticidade.\u003c\/strong\u003e\u003cbr\u003eAs calças Free Aero RC Bibtight foram desenvolvidas para serem a tua primeira opção na maioria dos dias de inverno. Focadas no conforto de longa distância, estas calças utilizam a tecnologia Nano Flex 3G para manter o corpo quente e repelir a água, permitindo que te foques apenas na estrada, independentemente das condições meteorológicas.\u003c\/p\u003e\n\u003ch3\u003eEngenharia de Tecidos Nano Flex\u003c\/h3\u003e\n\u003cp\u003eDesde a cintura ao joelho, o tecido Nano Flex 3G oferece uma suavidade excecional e uma proteção eficaz contra o vento e a chuva leve. Na parte inferior da perna, um tecido entrançado mais leve com interior escovado protege contra os salpicos constantes das estradas molhadas. A ausência de fechos nos tornozelos, graças ao acabamento raw-cut, reduz o volume sob as capas de sapatos e aumenta o conforto global durante a pedalada.\u003c\/p\u003e\n\u003ch3\u003eEspecificações Técnicas\u003c\/h3\u003e\n\u003cul class=\"cc-list\"\u003e\n\u003cli\u003e\u003cstrong\u003eNano Flex 3G:\u003c\/strong\u003e Repelência à água de terceira geração e calor superior\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eCarneira Progetto X2 Air Seamless:\u003c\/strong\u003e Amortecimento de nível profissional para longas distâncias\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eAlças Minimalistas:\u003c\/strong\u003e Máxima estabilidade sem volume desnecessário\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eTerminações Raw-Cut:\u003c\/strong\u003e Pernas elásticas sem fecho para ajuste perfeito com acessórios\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eGestão de Humidade:\u003c\/strong\u003e Respirabilidade otimizada para evitar o arrefecimento pelo suor\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eSegurança:\u003c\/strong\u003e Painéis refletores traseiros para visibilidade em dias cinzentos\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eCorte:\u003c\/strong\u003e Race Fit (Ajuste de alta competição)\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp style=\"font-size: 13px; color: #555; margin-top: 10px;\"\u003eDesenhadas para os dias de base e preparação de pré-época, as Free Aero RC elevam o padrão de conforto no ciclismo de inverno.\u003c\/p\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":"BLUSÃO CASTELLI ARIA SHELL CINZENTO","description":"\u003cdiv class=\"product-description\"\u003e\n\u003ch2\u003eBLUSÃO CICLISMO CASTELLI ARIA SHELL\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\u003eCAMISOLA INTERIOR DE MANGA CURTA CASTELLI PROSECCO TECH\u003c\/h2\u003e\n\n  \u003cp\u003e\n    A \u003cstrong\u003eCamisola Interior Castelli Prosecco Tech\u003c\/strong\u003e foi concebida para te manter seco e confortável em condições de frio, 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 uma excelente gestão da humidade, enquanto os painéis \u003cstrong\u003ePrimaLoft®\u003c\/strong\u003e nas zonas cobertas pelas alças 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 as alças do bibtight.\u003c\/li\u003e\n    \u003cli\u003e\n\u003cstrong\u003eGola redonda\u003c\/strong\u003e para se ajustar perfeitamente sob camisolas 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 Ajustado\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 camisola interior 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 um leve isolamento nas áreas mais sensíveis ao frio.  \n    O corte justo e a gola discreta tornam-na ideal para usar sob qualquer camisola 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","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":"CASACO MULHER CASTELLI DINAMICA 2 PRETO","description":"\u003ch2\u003eCASTELLI DINAMICA 2 W\u003c\/h2\u003e\n\u003cp\u003e\u003cstrong\u003eIsolamento térmico total e proteção contra o vento para as tuas saídas de inverno mais rigorosas.\u003c\/strong\u003e\u003cbr\u003eO Dinamica 2 W é o casaco que a Castelli desenhou para quem não quer abdicar de treinar a sério mesmo quando o termómetro se aproxima dos zero graus. Totalmente construído em tecido GORE-TEX INFINIUM™ WINDSTOPPER® X-Fast, este casaco oferece uma barreira impenetrável contra o vento gelado, enquanto o forro interior em fleece garante que o calor se mantém onde é necessário.\u003c\/p\u003e\n\u003ch3\u003eConforto sem Compromissos no Frio\u003c\/h3\u003e\n\u003cp\u003eAo contrário dos casacos de inverno volumosos que limitam o movimento, o Dinamica 2 permite pedalar com intensidade sem causar sobreaquecimento, graças à sua respirabilidade líder na classe. Os detalhes foram pensados para o inverno: punhos duplos que vedam a entrada de ar frio e um fecho fácil de ajustar mesmo com luvas grossas de inverno, garantindo que cada quilómetro seja confortável.\u003c\/p\u003e\n\u003ch3\u003eEspecificações Técnicas\u003c\/h3\u003e\n\u003cul class=\"cc-list\"\u003e\n\u003cli\u003e\u003cstrong\u003eTecido Integral:\u003c\/strong\u003e GORE-TEX INFINIUM™ WINDSTOPPER® X-Fast (100% corta-vento)\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eIsolamento:\u003c\/strong\u003e Forro interior em fleece térmico de alta densidade\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003ePunhos:\u003c\/strong\u003e Design de dupla camada para vedação com as luvas\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eVisibilidade:\u003c\/strong\u003e Painéis refletores de 360 graus para segurança total\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eFecho:\u003c\/strong\u003e YKK® Vislon® com puxador ergonómico de fácil manuseamento\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eCorte:\u003c\/strong\u003e Regular Fit (Conforto anatómico com espaço para camadas internas)\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eIntervalo Térmico:\u003c\/strong\u003e Desempenho ideal entre 0°C e 10°C\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp style=\"font-size: 13px; color: #555; margin-top: 10px;\"\u003eO aliado perfeito para as ciclistas que procuram calor extra e proteção total contra os elementos sem o peso excessivo de um casaco convencional.\u003c\/p\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\u003eCAMISOLA TÉRMICA DE CICLISMO CASTELLI ESPRESSO\u003c\/h2\u003e\n\n  \u003cp\u003e\n    A \u003cstrong\u003eCamisola Térmica Castelli Espresso\u003c\/strong\u003e combina três qualidades essenciais que qualquer camisola 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 camisola 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\u003eCamisola Térmica Espresso\u003c\/strong\u003e foi criada para ser a tua camisola 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 camisola 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","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":"BLUSÃO CASTELLI ARIA SHELL AZUL","description":"\u003cdiv class=\"product-description\"\u003e\n  \u003ch2\u003eCORTA-VENTO CASTELLI 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","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":"CASACO MULHER CASTELLI TRANSITION 2 W ROSA","description":"\u003ch2\u003eCASTELLI TRANSITION 2 W\u003c\/h2\u003e\n\u003cp\u003e\u003cstrong\u003eO casaco ideal para a transição de estações: proteção contra o vento sem risco de sobreaquecimento.\u003c\/strong\u003e\u003cbr\u003eO casaco Transition 2 W foi desenhado para aqueles dias em que um colete é insuficiente, mas um casaco de inverno pesado é demasiado. Utilizando a tecnologia GORE-TEX INFINIUM™ na parte frontal, este casaco corta o vento frio com eficácia, enquanto as costas em tecido fleece respirável garantem que o teu corpo mantém a temperatura ideal sem acumular transpiração.\u003c\/p\u003e\n\u003ch3\u003eLeveza e Proteção Inteligente\u003c\/h3\u003e\n\u003cp\u003ePerfeito para o outono, primavera ou invernos moderados, o Transition 2 destaca-se pelo seu fecho assimétrico YKK® Vislon®, que evita o desconforto de várias camadas sobrepostas no queixo. Se as temperaturas descerem, basta adicionar uma camada base térmica para estender o seu uso durante grande parte do inverno, mantendo sempre um ajuste elegante e funcional.\u003c\/p\u003e\n\u003ch3\u003eEspecificações Técnicas\u003c\/h3\u003e\n\u003cul class=\"cc-list\"\u003e\n\u003cli\u003e\u003cstrong\u003eFrente e Mangas:\u003c\/strong\u003e GORE-TEX INFINIUM™ WINDSTOPPER® (Corta-vento e respirável)\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003ePainel Traseiro:\u003c\/strong\u003e Tecido Warmer escovado para ventilação máxima\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eFecho:\u003c\/strong\u003e YKK® Vislon® assimétrico de deslize suave\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eArrumação:\u003c\/strong\u003e 3 bolsos traseiros amplos\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eConforto Térmico:\u003c\/strong\u003e Proteção surpreendente sem volume excessivo\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eCorte:\u003c\/strong\u003e Regular Fit (Conforto anatómico feminino)\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003ePeso:\u003c\/strong\u003e 331g\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp style=\"font-size: 13px; color: #555; margin-top: 10px;\"\u003eA peça essencial para quem não deixa que a brisa matinal ou o tempo incerto de meia-estação interrompam o treino.\u003c\/p\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":"CASACO MULHER CASTELLI GABBA RoS 2 W LARANJA","description":"\u003ch2\u003eCASTELLI GABBA RoS 2 W\u003c\/h2\u003e\n\u003cp\u003e\u003cstrong\u003eA 5.ª geração da peça que revolucionou o ciclismo profissional: a proteção total do core sem o risco de sobreaquecimento.\u003c\/strong\u003e\u003cbr\u003eEm 2010, a Castelli apresentou a Gabba aos profissionais e mudou para sempre a forma como se corre sob chuva e frio. A Gabba RoS 2 W continua este legado como um casaco de manga curta resistente à água, perfeito para condições frescas. Ao manter o tronco quente e seco sem o volume de um casaco tradicional, permite uma agilidade total, sendo a peça indispensável para o outono e primavera.\u003c\/p\u003e\n\u003ch3\u003eInovação GORE-TEX INFINIUM™\u003c\/h3\u003e\n\u003cp\u003eEsta versão está mais impermeável do que nunca, mantendo a respirabilidade lendária que tornou a Gabba famosa. Utiliza dois tecidos GORE-TEX exclusivos: um mais quente e resistente na frente e ombros, e um mais leve e elástico nas costas para libertar o calor excessivo. O novo fecho YKK® Vislon® de abertura dupla facilita a regulação da temperatura e o acesso aos bolsos internos durante a pedalada.\u003c\/p\u003e\n\u003ch3\u003eEspecificações Técnicas\u003c\/h3\u003e\n\u003cul class=\"cc-list\"\u003e\n\u003cli\u003e\u003cstrong\u003eTecido Frontal:\u003c\/strong\u003e GORE-TEX INFINIUM™ WINDSTOPPER® 205 Warm (100% corta-vento)\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eTecido Traseiro:\u003c\/strong\u003e GORE-TEX INFINIUM™ WINDSTOPPER® 203 Stretch para ventilação\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eVersatilidade:\u003c\/strong\u003e Ideal para usar com manguitos Nano Flex em dias húmidos\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eFecho:\u003c\/strong\u003e YKK® Vislon® de dupla abertura para ventilação ajustável\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eProteção:\u003c\/strong\u003e Costuras dos ombros seladas contra a chuva\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eVisibilidade:\u003c\/strong\u003e Painel refletor traseiro de grandes dimensões\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eCorte:\u003c\/strong\u003e Race Fit (Ajuste aerodinâmico de competição)\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp style=\"font-size: 13px; color: #555; margin-top: 10px;\"\u003eCombine esta peça com os seus sapatos favoritos e manguitos para enfrentar qualquer previsão meteorológica com confiança.\u003c\/p\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\u003eCAMISOLA INTERIOR CASTELLI ACTIVE COOLING SLEEVELESS – CINZENTO PRATA\u003c\/h2\u003e\n\n  \u003cp\u003e\n    A \u003cstrong\u003eCamisola Interior Castelli Active Cooling Sleeveless\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 camisola interior 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\u003eCamisola interior 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\u003eCamisola Interior Active Cooling\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","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":"CALÇAS MULHER CASTELLI SORPASSO RoS W ROXO","description":"\u003ch2\u003eCASTELLI SORPASSO RoS W\u003c\/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAs calças definitivas para o inverno: criadas para oferecer conforto e proteção na mais ampla gama de condições.\u003c\/strong\u003e\u003cbr\u003eAs Sorpasso RoS W são a escolha das ciclistas que não param durante todo o inverno. Combinando o tecido Nano Flex 3G com painéis extra térmicos, estas calças oferecem uma barreira eficaz contra a chuva leve e o frio intenso, mantendo uma respirabilidade e liberdade de movimentos que poucos equipamentos de inverno conseguem igualar.\u003c\/p\u003e\n\u003ch3\u003eTecnologia Nano Flex e Conforto Progetto X2\u003c\/h3\u003e\n\u003cp\u003eA engenharia por trás destas calças foca-se na versatilidade. O tratamento de nanotecnologia repele a água sem comprometer a elasticidade, enquanto a carneira Progetto X2 Air Seamless, o topo de gama da Castelli, assegura que as tuas saídas de longa distância sejam livres de irritações e pontos de pressão. Com um corte anatómico que segue as curvas do corpo feminino, estas calças tornam-se quase impercetíveis durante o esforço.\u003c\/p\u003e\n\u003ch3\u003eEspecificações Técnicas\u003c\/h3\u003e\n\u003cul class=\"cc-list\"\u003e\n\u003cli\u003e\u003cstrong\u003eTecido Nano Flex 3G:\u003c\/strong\u003e Repelência à água líder de mercado e compressão suave\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eIsolamento Térmico:\u003c\/strong\u003e Painéis Xtra Dry nas coxas para proteção contra o frio extremo\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eCarneira:\u003c\/strong\u003e Progetto X2 Air Seamless Donna (Nível Profissional)\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eAlças:\u003c\/strong\u003e Design plano e minimalista para máximo conforto\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eTornozelos:\u003c\/strong\u003e Fechos YKK® Camlock® para um ajuste seguro e fácil de vestir\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eSegurança:\u003c\/strong\u003e Detalhes refletores de alta visibilidade traseira\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eIntervalo Térmico:\u003c\/strong\u003e Performance superior entre -2°C e 10°C\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eAjuste:\u003c\/strong\u003e Tailored Fit (Corte técnico anatómico)\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp style=\"font-size: 13px; color: #555; margin-top: 10px;\"\u003eDesenhadas para serem as tuas calças de eleição durante todo o inverno, quer o céu esteja limpo ou sob chuva iminente.\u003c\/p\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 PRETA","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":"P \/ 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":"LUVAS CASTELLI TUTTO NANO PRETO","description":"\u003cdiv class=\"cc-simple\"\u003e\n\u003ch2\u003eCASTELLI TUTTO NANO LUVAS DE CICLISMO\u003c\/h2\u003e\n\u003cp\u003eIdeais para condições \u003cstrong\u003efrescas e húmidas\u003c\/strong\u003e, as luvas \u003cstrong\u003eTutto Nano\u003c\/strong\u003e utilizam o tecido \u003cstrong\u003eNano Flex 3G\u003c\/strong\u003e, que combina um interior escovado quente com \u003cstrong\u003erepelência à água\u003c\/strong\u003e graças à nanotecnologia. A elasticidade natural do tecido proporciona um \u003cstrong\u003econforto excecional\u003c\/strong\u003e, quase como se não estivesses a usar luvas.\u003c\/p\u003e\n\u003ch3\u003ePrincipais Características\u003c\/h3\u003e\n\u003cul class=\"cc-list\"\u003e\n\u003cli\u003e\u003cstrong\u003eTecido Nano Flex 3G\u003c\/strong\u003e: quente, confortável e resistente à água.\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eAderência em silicone\u003c\/strong\u003e para controlo e segurança no guiador.\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eCompatíveis com ecrã tátil\u003c\/strong\u003e na ponta dos dedos.\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eCosturas mínimas\u003c\/strong\u003e para maior destreza e conforto.\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch3\u003eEspecificações\u003c\/h3\u003e\n\u003cul class=\"cc-list\"\u003e\n\u003cli\u003e\u003cstrong\u003ePeso:\u003c\/strong\u003e 72 g\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eTemperatura:\u003c\/strong\u003e 12°–20°C \/ 54°–68°F\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eAjuste:\u003c\/strong\u003e Regular\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003eApesar do design aparentemente simples, as \u003cstrong\u003eTutto Nano\u003c\/strong\u003e oferecem uma proteção surpreendente contra o frio e a humidade, mantendo ao mesmo tempo uma sensação leve e intuitiva na condução. Às vezes, a solução mais simples é mesmo a melhor.\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\u003eCAMADA BASE CASTELLI CORE SEAMLESS\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 camisolas 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 camisolas 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 camada base 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","brand":"Castelli","offers":[{"title":"Masculino\/Feminino","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":"CASACO MULHER CASTELLI ALPHA RoS 2 AZUL","description":"\u003ch2\u003eCASTELLI ALPHA ROS 2 W\u003c\/h2\u003e\n\u003cp\u003e\u003cstrong\u003eO casaco de inverno definitivo: calor, respirabilidade e proteção extrema contra a chuva.\u003c\/strong\u003e\u003cbr\u003eO Alpha RoS 2 W representa a visão da Castelli sobre o casaco de inverno perfeito. Na sua terceira geração, este modelo continua a liderar o mercado ao resolver o maior problema do ciclismo de inverno: a gestão da humidade. Graças à sua construção inovadora, mantém-te seca e quente mesmo durante treinos de alta intensidade sob temperaturas negativas.\u003c\/p\u003e\n\u003ch3\u003eTecnologia de Dupla Camada Alpha\u003c\/h3\u003e\n\u003cp\u003eO segredo deste casaco reside na separação entre a camada de isolamento térmico e a barreira exterior corta-vento. Esta construção permite abrir a camada externa para ventilar e expulsar o suor durante as subidas, mantendo a camada interna fechada para proteger o corpo do frio. O resultado é um interior sempre seco, evitando o choque térmico nas descidas.\u003c\/p\u003e\n\u003ch3\u003eEspecificações Técnicas\u003c\/h3\u003e\n\u003cul class=\"cc-list\"\u003e\n\u003cli\u003e\u003cstrong\u003eMembrana:\u003c\/strong\u003e GORE-TEX INFINIUM™ WINDSTOPPER® 150\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eEngenharia:\u003c\/strong\u003e Rain or Shine (Máxima performance em seco ou molhado)\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eIsolamento:\u003c\/strong\u003e Camada interna 3D mais macia e quente para um ajuste superior\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003ePunhos:\u003c\/strong\u003e Design de camada dupla para integração perfeita com as luvas\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eSegurança:\u003c\/strong\u003e Detalhes refletores cortados a laser nos bolsos traseiros\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eIntervalo Térmico:\u003c\/strong\u003e Conforto garantido entre -5°C e 10°C\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eCorte:\u003c\/strong\u003e Tailored Fit (Ajuste ergonómico feminino)\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp style=\"font-size: 13px; color: #555; margin-top: 10px;\"\u003eA peça mais versátil e tecnologicamente avançada para treinos de inverno, independentemente das condições climatéricas.\u003c\/p\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 DE MANGA COMPRIDA CASTELLI SOUDAL QUICK-STEP 2024","description":"\u003cdiv class=\"product-description\"\u003e\n  \u003ch2\u003eCAMISOLA TÉRMICA DE CICLISMO DE MANGA COMPRIDA CASTELLI SOUDAL QUICK-STEP 2024\u003c\/h2\u003e\n\n  \u003cp\u003e\n    A \u003cstrong\u003eCamisola Térmica Castelli Soudal Quick-Step 2024\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 camisola 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 camisola 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","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","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":"CALÇAS CASTELLI VELOCISSIMO 5 PRETO","description":"\u003cdiv class=\"product-description\"\u003e\n\u003cdiv class=\"product-description\"\u003e\n\u003ch2\u003eCASTELLI VELOCISSIMO 5 MEN’S CYCLING BIBTIGHT\u003c\/h2\u003e\n\u003cp\u003eA \u003cstrong\u003eCastelli Velocissimo 5 Bibtight\u003c\/strong\u003e combina \u003cstrong\u003eminimalismo, conforto e desempenho\u003c\/strong\u003e para os dias frios de outono e inverno moderado. Ideal para quem procura \u003cstrong\u003eproteção e flexibilidade\u003c\/strong\u003e sem o volume dos culotes de inverno profundo, esta peça proporciona aquecimento eficaz e um ajuste perfeito ao corpo.\u003c\/p\u003e\n\u003cp\u003eA parte superior é feita com o tecido \u003cstrong\u003eThermoflex\u003c\/strong\u003e, suave e elástico, garantindo conforto térmico e liberdade de movimento. Na parte inferior, abaixo do joelho, o tecido \u003cstrong\u003eNano Flex\u003c\/strong\u003e com interior em fleece oferece \u003cstrong\u003eproteção contra salpicos de estrada molhada\u003c\/strong\u003e, mantendo as pernas secas e aquecidas. O acabamento sem fecho no tornozelo reduz o volume dentro das cobre-botas, facilitando o uso e maximizando o conforto.\u003c\/p\u003e\n\u003cp\u003eO \u003cstrong\u003eKISS Air² seat pad\u003c\/strong\u003e garante absorção de impacto e conforto em longas distâncias, enquanto as \u003cstrong\u003ealças em rede\u003c\/strong\u003e asseguram excelente ventilação. Elementos refletores estrategicamente posicionados aumentam a visibilidade lateral e traseira. Uma escolha prática e elegante para o ciclista que valoriza o desempenho sem complicações.\u003c\/p\u003e\n\u003ch3\u003eCaracterísticas\u003c\/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eTecido Thermoflex\u003c\/strong\u003e do joelho à cintura para aquecimento e conforto.\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eTecido Nano Flex\u003c\/strong\u003e com interior em fleece na parte inferior da perna para proteção contra salpicos.\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eKISS Air² seat pad\u003c\/strong\u003e para conforto em longas pedaladas.\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eAlças em rede\u003c\/strong\u003e para ventilação e suporte leve.\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eAcabamento sem fecho\u003c\/strong\u003e no tornozelo para reduzir volume dentro das cobre-botas.\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eInserções refletoras\u003c\/strong\u003e nos lados e parte posterior para maior visibilidade.\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003ePeso:\u003c\/strong\u003e 274 g\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eTemperatura ideal:\u003c\/strong\u003e 8–16 °C \/ 46–61 °F\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eFIT:\u003c\/strong\u003e Regular\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch3\u003eConforto e Desempenho Simplificados\u003c\/h3\u003e\n\u003cp\u003eA \u003cstrong\u003eVelocissimo 5 Bibtight\u003c\/strong\u003e é o equilíbrio perfeito entre \u003cstrong\u003eleveza, proteção e conforto\u003c\/strong\u003e. Ideal para treinos ou saídas em dias frios, oferece o toque suave do Thermoflex e a proteção repelente à água do Nano Flex. Uma escolha inteligente para quem quer pedalar confortável e protegido, sem excesso de camadas.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003ch2\u003e\u003c!-- ===== GUIA DE TAMANHOS CASTELLI ===== --\u003e\u003c\/h2\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 da tua \u003cstrong\u003ecintura (B)\u003c\/strong\u003e e da tua \u003cstrong\u003eanca (C)\u003c\/strong\u003e em centímetros e compara com o guia de tamanhos Castelli abaixo.\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003eMede a \u003cstrong\u003ecintura (B)\u003c\/strong\u003e na zona mais estreita do tronco.\u003c\/li\u003e\n\u003cli\u003eMede a \u003cstrong\u003eanca (C)\u003c\/strong\u003e na zona mais larga dos glúteos.\u003c\/li\u003e\n\u003cli\u003eUsa uma fita métrica flexível, sem apertar.\u003c\/li\u003e\n\u003cli\u003eCompara as medidas com a tabela e considera escolher \u003cstrong\u003eum tamanho acima\u003c\/strong\u003e do sugerido, conforme recomendação da Castelli.\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\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- ===== MODAL ===== --\u003e\n\u003cp\u003e\u0026nbsp;\u003c\/p\u003e\n\u003cp\u003e\u0026nbsp;\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\u0026nbsp;\u003c\/p\u003e\n\u003cp\u003e\u0026nbsp;\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\u0026nbsp;\u003c\/p\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":"COLETE CORTA-VENTO CASTELLI PRO LIGHT SOUDAL QUICK-STEP 2025","description":"\u003cdiv class=\"product-description\"\u003e\n\u003cdiv class=\"product-description\"\u003e\n\u003ch2\u003eCASTELLI PRO LIGHT WIND VEST – SOUDAL QUICK-STEP 2025\u003c\/h2\u003e\n\u003cp\u003eA \u003cstrong\u003eCastelli Pro Light Wind Vest Soudal Quick-Step 2025\u003c\/strong\u003e é uma peça essencial para qualquer ciclista que procura \u003cstrong\u003eproteção ultraleve contra o vento\u003c\/strong\u003e sem comprometer a respirabilidade. Desenvolvida com base na experiência da equipa profissional \u003cstrong\u003eSoudal Quick-Step\u003c\/strong\u003e, esta versão combina \u003cstrong\u003etecnologia de ponta, design aerodinâmico e estilo de equipa\u003c\/strong\u003e.\u003c\/p\u003e\n\u003cp\u003eO tecido \u003cstrong\u003eimpresso e tecido nas zonas frontais e ombros\u003c\/strong\u003e tem baixa permeabilidade ao ar, bloqueando eficazmente o vento enquanto mantém a respirabilidade necessária para o desempenho máximo. A parte traseira em \u003cstrong\u003emalha elástica\u003c\/strong\u003e proporciona ventilação e conforto, garantindo que o colete se ajusta perfeitamente ao corpo sem criar volume.\u003c\/p\u003e\n\u003cp\u003eO \u003cstrong\u003efecho YKK® Vislon®\u003c\/strong\u003e oferece um manuseamento rápido e fácil, mesmo com luvas, e o design compacto permite dobrar e guardar o colete num bolso de jersey. Ideal para subidas longas, descidas rápidas ou dias em que o tempo muda constantemente.\u003c\/p\u003e\n\u003ch3\u003eCaracterísticas\u003c\/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eExtremamente leve e compacto\u003c\/strong\u003e, ideal para transporte fácil no bolso.\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eTecido frontal e nos ombros\u003c\/strong\u003e com baixa permeabilidade ao ar para bloquear o vento.\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003ePainel traseiro em malha\u003c\/strong\u003e para ventilação total.\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eFecho YKK® Vislon®\u003c\/strong\u003e de deslizamento suave para ajuste rápido.\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eAjuste anatómico\u003c\/strong\u003e para conforto e performance em posição de ciclismo.\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003ePeso:\u003c\/strong\u003e 94 g\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eTemperatura ideal:\u003c\/strong\u003e 12–20 °C \/ 53–68 °F\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eFIT:\u003c\/strong\u003e Tailored\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch3\u003eLeveza Profissional\u003c\/h3\u003e\n\u003cp\u003eCriado para a equipa \u003cstrong\u003eSoudal Quick-Step\u003c\/strong\u003e, o \u003cstrong\u003ePro Light Wind Vest 2025\u003c\/strong\u003e oferece a combinação ideal de \u003cstrong\u003eproteção, leveza e respirabilidade\u003c\/strong\u003e. É o colete perfeito para manter o corpo protegido nas descidas e nas manhãs frescas, com o toque profissional e o desempenho aerodinâmico que caracterizam os produtos \u003cstrong\u003eCastelli\u003c\/strong\u003e.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003ch2\u003e\u003c!-- ===== GUIA DE TAMANHOS CASTELLI ===== --\u003e\u003c\/h2\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\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- ===== MODAL ===== --\u003e\n\u003cp\u003e\u0026nbsp;\u003c\/p\u003e\n\u003cp\u003e\u0026nbsp;\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\u0026nbsp;\u003c\/p\u003e\n\u003cp\u003e\u0026nbsp;\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\u0026nbsp;\u003c\/p\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","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":"LUVAS CASTELLI PERFETTO RoS PRETO","description":"\u003cdiv class=\"product-description\"\u003e\n\u003cdiv class=\"product-description\"\u003e\n\u003ch2\u003eCASTELLI PERFETTO RoS WINTER GLOVES\u003c\/h2\u003e\n\u003cp\u003eAs \u003cstrong\u003eCastelli Perfetto RoS Gloves\u003c\/strong\u003e representam o equilíbrio perfeito entre \u003cstrong\u003eproteção, conforto e inovação\u003c\/strong\u003e. Criadas com uma construção termoformada futurista de \u003cstrong\u003euma única costura\u003c\/strong\u003e, estas luvas proporcionam um design \u003cstrong\u003efino, quente e extremamente confortável\u003c\/strong\u003e, ideal para os meses frios de outono e inverno.\u003c\/p\u003e\n\u003cp\u003eFabricadas com o \u003cstrong\u003eGORE-TEX INFINIUM™ WINDSTOPPER® Stretch Warm\u003c\/strong\u003e, garantem proteção total contra o vento e excelente resistência à água, mantendo a respirabilidade e a liberdade de movimento. O \u003cstrong\u003einterior em fleece\u003c\/strong\u003e oferece isolamento térmico, enquanto as \u003cstrong\u003ezonas em silicone na palma\u003c\/strong\u003e asseguram uma aderência firme ao guiador, mesmo em condições de chuva ou humidade.\u003c\/p\u003e\n\u003cp\u003eA tecnologia \u003cstrong\u003eCastelli Damping System (CDS)\u003c\/strong\u003e protege o nervo mediano, reduzindo dormência e fadiga nas mãos durante longas pedaladas. O \u003cstrong\u003epunho em neoprene elástico\u003c\/strong\u003e facilita o vestir e despir, e as \u003cstrong\u003epontas compatíveis com ecrãs táteis\u003c\/strong\u003e permitem usar o telemóvel sem remover as luvas. Um modelo completo, funcional e elegante para o ciclista exigente.\u003c\/p\u003e\n\u003ch3\u003eCaracterísticas\u003c\/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eConstrução termoformada de uma única costura\u003c\/strong\u003e para ajuste perfeito e design aerodinâmico.\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eGORE-TEX INFINIUM™ WINDSTOPPER® Stretch Warm\u003c\/strong\u003e para proteção contra vento e água.\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eInterior em fleece\u003c\/strong\u003e para aquecimento e conforto.\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eCastelli Damping System (CDS)\u003c\/strong\u003e para proteção do nervo mediano e redução de vibrações.\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003ePunho em neoprene elástico\u003c\/strong\u003e para facilidade ao calçar e retirar.\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eZonas em silicone\u003c\/strong\u003e na palma para aderência superior.\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eDetalhes refletivos\u003c\/strong\u003e para maior visibilidade.\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eTecnologia touchscreen\u003c\/strong\u003e na ponta dos dedos.\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eTemperatura ideal:\u003c\/strong\u003e 4–14 °C \/ 39–57 °F\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eFIT:\u003c\/strong\u003e Tailored\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch3\u003eCDS – Castelli Damping System\u003c\/h3\u003e\n\u003cp\u003eO \u003cstrong\u003eCastelli Damping System (CDS)\u003c\/strong\u003e foi desenvolvido para resolver um problema comum entre ciclistas: o \u003cstrong\u003edesconforto e dormência nas mãos\u003c\/strong\u003e causados por longos períodos de contacto com o guiador. A Castelli mapeou cuidadosamente as zonas-chave da mão para criar uma estrutura de proteção que combina \u003cstrong\u003emateriais de absorção e espumas amortecedoras\u003c\/strong\u003e, proporcionando conforto e controlo superiores. O CDS está presente em vários modelos da coleção Castelli e é reconhecido pelo seu desempenho excecional tanto em treinos como em competição.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003ch2\u003e\u003c!-- ===== GUIA DE TAMANHO LUVAS CASTELLI ===== --\u003e\u003c\/h2\u003e\n\u003cdiv class=\"cc-size-highlight-full\" style=\"background: #f9f9f9; border: 1px solid #e2e2e2; border-radius: 10px; padding: 20px 24px; margin-top: 20px; font-family: system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif; box-shadow: 0 2px 8px rgba(0,0,0,0.04); color: #333; line-height: 1.6; font-size: 15px;\"\u003e\n\u003ch3 style=\"margin: 0 0 12px; font-size: 18px; font-weight: 600; color: #111;\"\u003e🧤 Encontra o Teu Tamanho de Luvas\u003c\/h3\u003e\n\u003cp style=\"margin: 0 0 12px; font-size: 15px; color: #333;\"\u003ePara escolher o tamanho correto das tuas luvas Castelli, mede a \u003cstrong\u003ecircunferência da palma da mão\u003c\/strong\u003e (sem incluir o polegar) em centímetros e compara com o guia de tamanhos.\u003c\/p\u003e\n\u003cul style=\"margin: 0 0 15px 20px; padding: 0;\"\u003e\n\u003cli style=\"margin-bottom: 6px;\"\u003eMantém a mão relaxada e aberta.\u003c\/li\u003e\n\u003cli style=\"margin-bottom: 6px;\"\u003ePassa a fita métrica à volta da parte mais larga da palma, logo abaixo dos nós dos dedos (sem o polegar).\u003c\/li\u003e\n\u003cli style=\"margin-bottom: 6px;\"\u003eAnota a medida em centímetros.\u003c\/li\u003e\n\u003cli style=\"margin-bottom: 0;\"\u003eCompara com a tabela Castelli e, se estiveres entre dois tamanhos, escolhe o maior para mais conforto.\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cbutton class=\"cc-size-btn\" type=\"button\" aria-haspopup=\"dialog\" aria-controls=\"cc-glove-size-modal\" style=\"display: inline-block; background: #000; color: #fff; border: none; border-radius: 6px; padding: 10px 16px; font-size: 14px; font-weight: 500; cursor: pointer; transition: all .2s ease-in-out;\"\u003e Calcule o seu tamanho\u003c\/button\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- ===== MODAL ===== --\u003e\n\u003cp\u003e\u0026nbsp;\u003c\/p\u003e\n\u003cp\u003e\u0026nbsp;\u003c\/p\u003e\n\u003cp\u003e\u003c\/p\u003e\u003cdialog id=\"cc-glove-size-modal\" class=\"cc-size-modal\" aria-label=\"Guia de tamanhos de luvas\" style=\"position: fixed; inset: 0; background: transparent; border: 0; margin: 0; padding: 0; max-width: none; width: 100vw; height: 100vh; display: none; align-items: center; justify-content: center; z-index: 99999;\"\u003e \u003cbutton class=\"cc-close\" aria-label=\"Fechar\" style=\"position: absolute; top: 10px; right: 10px; background: #fff; border: 1px solid #ddd; border-radius: 6px; padding: 6px 9px; cursor: pointer; font-size: 16px; line-height: 1; box-shadow: 0 2px 6px rgba(0,0,0,.08);\"\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=\"\" style=\"position: relative; box-sizing: border-box; background: #fff; border: 1px solid #e9e9e9; border-radius: 10px; box-shadow: 0 10px 25px rgba(0,0,0,.25); padding: 8px; overflow: hidden; width: min(85vw,600px); max-height: 88vh; display: flex; align-items: center; justify-content: center;\"\u003e\u003cimg id=\"cc-glove-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 de luvas Castelli\" style=\"display: block; max-width: 100%; max-height: 84vh; width: auto; height: auto; object-fit: contain; border-radius: 6px;\"\u003e\u003c\/div\u003e\n\u003c\/dialog\u003e\u003cp\u003e\u003c\/p\u003e\n\u003cp\u003e\u0026nbsp;\u003c\/p\u003e\n\u003cp\u003e\u0026nbsp;\u003c\/p\u003e\n\u003c!-- ===== SCRIPT ===== --\u003e\n\u003cp\u003e\u0026nbsp;\u003c\/p\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":"LUVAS CASTELLI ARENBERG GEL LF PRETO","description":"\u003cdiv class=\"product-description\"\u003e\n\u003cdiv class=\"product-description\"\u003e\n\u003ch2\u003eCASTELLI ARENBERG GEL LF CYCLING GLOVES\u003c\/h2\u003e\n\u003cp\u003eAs \u003cstrong\u003eluvas Castelli Arenberg Gel LF\u003c\/strong\u003e são a versão de dedos longos do modelo de verão mais acolchoado da marca, perfeitas para \u003cstrong\u003egravel, BTT\u003c\/strong\u003e ou passeios de estrada em tempo fresco. Combinam proteção, conforto e aderência excecionais — ideais para quem enfrenta terrenos irregulares ou longas distâncias.\u003c\/p\u003e\n\u003cp\u003eO sistema exclusivo \u003cstrong\u003eCastelli Damping System (CDS)\u003c\/strong\u003e protege o nervo mediano, reduzindo a dormência e o desconforto nas mãos, enquanto o \u003cstrong\u003eacolchoamento em gel\u003c\/strong\u003e e o \u003cstrong\u003epadrão em silicone\u003c\/strong\u003e na palma aumentam a absorção de impactos e o controlo do guiador. O \u003cstrong\u003efecho ajustável no pulso\u003c\/strong\u003e assegura um ajuste seguro, e o \u003cstrong\u003edorso em MicroMesh\u003c\/strong\u003e oferece excelente ventilação e leveza.\u003c\/p\u003e\n\u003cp\u003eCom acabamento em \u003cstrong\u003emicrosuede no polegar\u003c\/strong\u003e para limpar o rosto ou o suor durante o esforço, estas luvas são o equilíbrio ideal entre \u003cstrong\u003eproteção total, conforto e performance\u003c\/strong\u003e — seja em estradas de empedrado, gravel ou longos dias de treino.\u003c\/p\u003e\n\u003ch3\u003eCaracterísticas\u003c\/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eAcolchoamento em gel\u003c\/strong\u003e e \u003cstrong\u003epadrão em silicone\u003c\/strong\u003e para conforto e aderência superiores.\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eCastelli Damping System (CDS)\u003c\/strong\u003e para proteção do nervo mediano.\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eFecho ajustável no pulso\u003c\/strong\u003e para ajuste perfeito.\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eDorso em MicroMesh\u003c\/strong\u003e leve e respirável.\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003ePolegar em microsuede\u003c\/strong\u003e para limpeza durante o treino.\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003ePeso:\u003c\/strong\u003e 108 g\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eTemperatura ideal:\u003c\/strong\u003e 12–27 °C \/ 54–80 °F\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eFIT:\u003c\/strong\u003e Regular\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch3\u003eConforto ilimitado\u003c\/h3\u003e\n\u003cp\u003eTal como a sua versão de dedos curtos, as Arenberg Gel LF oferecem \u003cstrong\u003econforto incomparável em qualquer terreno\u003c\/strong\u003e. A sua construção ergonómica e o \u003cstrong\u003eCDS\u003c\/strong\u003e garantem uma condução suave, seja em \u003cstrong\u003eestradas de gravel\u003c\/strong\u003e ou nos \u003cstrong\u003esetores empedrados de Paris-Roubaix\u003c\/strong\u003e. Uma escolha premium para ciclistas que procuram máxima proteção sem comprometer a sensibilidade ao guiador.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003ch2\u003e\u003c!-- ===== GUIA DE TAMANHO LUVAS CASTELLI ===== --\u003e\u003c\/h2\u003e\n\u003cdiv class=\"cc-size-highlight-full\" style=\"background: #f9f9f9; border: 1px solid #e2e2e2; border-radius: 10px; padding: 20px 24px; margin-top: 20px; font-family: system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif; box-shadow: 0 2px 8px rgba(0,0,0,0.04); color: #333; line-height: 1.6; font-size: 15px;\"\u003e\n\u003ch3 style=\"margin: 0 0 12px; font-size: 18px; font-weight: 600; color: #111;\"\u003e🧤 Encontra o Teu Tamanho de Luvas\u003c\/h3\u003e\n\u003cp style=\"margin: 0 0 12px; font-size: 15px; color: #333;\"\u003ePara escolher o tamanho correto das tuas luvas Castelli, mede a \u003cstrong\u003ecircunferência da palma da mão\u003c\/strong\u003e (sem incluir o polegar) em centímetros e compara com o guia de tamanhos.\u003c\/p\u003e\n\u003cul style=\"margin: 0 0 15px 20px; padding: 0;\"\u003e\n\u003cli style=\"margin-bottom: 6px;\"\u003eMantém a mão relaxada e aberta.\u003c\/li\u003e\n\u003cli style=\"margin-bottom: 6px;\"\u003ePassa a fita métrica à volta da parte mais larga da palma, logo abaixo dos nós dos dedos (sem o polegar).\u003c\/li\u003e\n\u003cli style=\"margin-bottom: 6px;\"\u003eAnota a medida em centímetros.\u003c\/li\u003e\n\u003cli style=\"margin-bottom: 0;\"\u003eCompara com a tabela Castelli e, se estiveres entre dois tamanhos, escolhe o maior para mais conforto.\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cbutton class=\"cc-size-btn\" type=\"button\" aria-haspopup=\"dialog\" aria-controls=\"cc-glove-size-modal\" style=\"display: inline-block; background: #000; color: #fff; border: none; border-radius: 6px; padding: 10px 16px; font-size: 14px; font-weight: 500; cursor: pointer; transition: all .2s ease-in-out;\"\u003e Calcule o seu tamanho\u003c\/button\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- ===== MODAL ===== --\u003e\n\u003cp\u003e\u0026nbsp;\u003c\/p\u003e\n\u003cp\u003e\u0026nbsp;\u003c\/p\u003e\n\u003cp\u003e\u003c\/p\u003e\u003cdialog id=\"cc-glove-size-modal\" class=\"cc-size-modal\" aria-label=\"Guia de tamanhos de luvas\" style=\"position: fixed; inset: 0; background: transparent; border: 0; margin: 0; padding: 0; max-width: none; width: 100vw; height: 100vh; display: none; align-items: center; justify-content: center; z-index: 99999;\"\u003e \u003cbutton class=\"cc-close\" aria-label=\"Fechar\" style=\"position: absolute; top: 10px; right: 10px; background: #fff; border: 1px solid #ddd; border-radius: 6px; padding: 6px 9px; cursor: pointer; font-size: 16px; line-height: 1; box-shadow: 0 2px 6px rgba(0,0,0,.08);\"\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=\"\" style=\"position: relative; box-sizing: border-box; background: #fff; border: 1px solid #e9e9e9; border-radius: 10px; box-shadow: 0 10px 25px rgba(0,0,0,.25); padding: 8px; overflow: hidden; width: min(85vw,600px); max-height: 88vh; display: flex; align-items: center; justify-content: center;\"\u003e\u003cimg id=\"cc-glove-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 de luvas Castelli\" style=\"display: block; max-width: 100%; max-height: 84vh; width: auto; height: auto; object-fit: contain; border-radius: 6px;\"\u003e\u003c\/div\u003e\n\u003c\/dialog\u003e\u003cp\u003e\u003c\/p\u003e\n\u003cp\u003e\u0026nbsp;\u003c\/p\u003e\n\u003cp\u003e\u0026nbsp;\u003c\/p\u003e\n\u003c!-- ===== SCRIPT ===== --\u003e\n\u003cp\u003e\u0026nbsp;\u003c\/p\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\u003eCAMADA BASE CICLISMO MANGA COMPRIDA CASTELLI FLANDERS 2\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","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 CINZENTO","description":"\u003cdiv class=\"product-description\"\u003e\n  \u003ch2\u003eCAMISOLA TÉRMICA CASTELLI UNLIMITED\u003c\/h2\u003e\n\n  \u003cp\u003e\n    A \u003cstrong\u003eCamisola Térmica Castelli Unlimited\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 camisola 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 camisola 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","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","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":"CALÇAS CASTELLI UNLIMITED PRETO","description":"\u003cdiv class=\"product-description\"\u003e\n\u003cdiv class=\"product-description\"\u003e\n\u003ch2\u003eCASTELLI UNLIMITED BIBTIGHT\u003c\/h2\u003e\n\u003cp\u003eA \u003cstrong\u003eCastelli Unlimited Bibtight\u003c\/strong\u003e combina o conforto térmico e a qualidade da linha \u003cstrong\u003eEspresso\u003c\/strong\u003e com a funcionalidade adicional de \u003cstrong\u003ebolsos laterais\u003c\/strong\u003e, tornando-a ideal para treinos longos, aventuras gravel ou ciclismo de estrada em dias frios.\u003c\/p\u003e\n\u003cp\u003eConstruída em \u003cstrong\u003etecido Thermoflex\u003c\/strong\u003e, oferece o equilíbrio perfeito entre \u003cstrong\u003eaquecimento, elasticidade e conforto\u003c\/strong\u003e. As \u003cstrong\u003ealças em malha elástica\u003c\/strong\u003e garantem ventilação e liberdade de movimento, enquanto os \u003cstrong\u003ebolsos em rede\u003c\/strong\u003e em cada perna permitem transportar pequenos itens de forma prática e segura.\u003c\/p\u003e\n\u003cp\u003eO \u003cstrong\u003eacolchoamento Progetto X2 Air Seamless\u003c\/strong\u003e proporciona conforto excecional em longas distâncias, eliminando pontos de pressão e melhorando a respirabilidade. Sem fechos nos tornozelos, o design é limpo e reduz o volume, assegurando um ajuste suave com as meias ou sapatilhas.\u003c\/p\u003e\n\u003cp\u003eDetalhes como o \u003cstrong\u003eelemento refletor na parte posterior\u003c\/strong\u003e aumentam a visibilidade, completando um conjunto versátil e confortável para qualquer saída em condições de frio moderado.\u003c\/p\u003e\n\u003ch3\u003eCaracterísticas\u003c\/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eTecido Thermoflex\u003c\/strong\u003e para calor, elasticidade e conforto em temperaturas frias.\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eAlças em malha elástica\u003c\/strong\u003e para melhor ventilação e suporte.\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eBolsos laterais em malha\u003c\/strong\u003e em ambas as pernas para transporte prático.\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eAcolchoamento Progetto X2 Air Seamless\u003c\/strong\u003e para conforto duradouro em longas distâncias.\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eSem fecho nos tornozelos\u003c\/strong\u003e para reduzir volume e aumentar o conforto.\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eDetalhe refletor traseiro\u003c\/strong\u003e para maior visibilidade.\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003ePeso:\u003c\/strong\u003e 331 g\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eTemperatura ideal:\u003c\/strong\u003e 4–16 °C \/ 39–61 °F\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eFIT:\u003c\/strong\u003e Regular\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/div\u003e\n\u003ch2\u003e\u003c!-- ===== GUIA DE TAMANHOS CASTELLI ===== --\u003e\u003c\/h2\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 da tua \u003cstrong\u003ecintura (B)\u003c\/strong\u003e e da tua \u003cstrong\u003eanca (C)\u003c\/strong\u003e em centímetros e compara com o guia de tamanhos Castelli abaixo.\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003eMede a \u003cstrong\u003ecintura (B)\u003c\/strong\u003e na zona mais estreita do tronco.\u003c\/li\u003e\n\u003cli\u003eMede a \u003cstrong\u003eanca (C)\u003c\/strong\u003e na zona mais larga dos glúteos.\u003c\/li\u003e\n\u003cli\u003eUsa uma fita métrica flexível, sem apertar.\u003c\/li\u003e\n\u003cli\u003eCompara as medidas com a tabela e considera escolher \u003cstrong\u003eum tamanho acima\u003c\/strong\u003e do sugerido, conforme recomendação da Castelli.\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\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- ===== MODAL ===== --\u003e\n\u003cp\u003e\u0026nbsp;\u003c\/p\u003e\n\u003cp\u003e\u0026nbsp;\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\u0026nbsp;\u003c\/p\u003e\n\u003cp\u003e\u0026nbsp;\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\u0026nbsp;\u003c\/p\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\u003eCAMISOLA DE CICLISMO CASTELLI PURO 4\u003c\/h2\u003e\n\n  \u003cp\u003e\n    A \u003cstrong\u003eCamisola Puro 4\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 camisola 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 camisola 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","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 CINZENTA","description":"\u003cdiv class=\"product-description\"\u003e\n  \u003ch2\u003eCAMISOLA TÉRMICA CASTELLI APICE PARA CICLISMO\u003c\/h2\u003e\n\n  \u003cp\u003e\n    A \u003cstrong\u003eCamisola Térmica Apice\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 camisola 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","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 DE MANGA COMPRIDA CASTELLI APICE THERMAL VERDE","description":"\u003cdiv class=\"product-description\"\u003e\n  \u003ch2\u003eCAMISOLA TÉRMICA DE CICLISMO CASTELLI APICE\u003c\/h2\u003e\n\n  \u003cp\u003e\n    A \u003cstrong\u003eCamisola Térmica Apice\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 camisola 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","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\/collections\/castelli-inverno.oembed?page=2","provider":"Cyclist's Closet","version":"1.0","type":"link"}