{"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","url":"https:\/\/www.cyclistcloset.pt\/products\/castelli-go-jacket-gore-tex-infinium-windstopper-windproof-water-resistant","provider":"Cyclist's Closet","version":"1.0","type":"link"}