{"product_id":"winter-hat","title":"Winter Hat","description":"\u003cdiv style=\"font-family: 'ヒラギノ角ゴ ProN W3', 'Hiragino Kaku Gothic ProN', 'メイリオ', Meiryo, sans-serif; color: #333; line-height: 1.6; max-width: 1000px; margin: 0 auto; padding: 20px; box-sizing: border-box;\"\u003e\r\n\r\n    \u003c!-- Hero \/ Title --\u003e\r\n    \u003cdiv style=\"text-align: center; padding: 60px 15px; background-color: #f8fafc; margin-bottom: 40px; border-radius: 8px; border: 1px solid #e2e8f0;\"\u003e\r\n        \u003cspan style=\"color: #0369a1; font-size: 12px; letter-spacing: 0.1em; font-weight: bold; display: block; margin-bottom: 10px;\"\u003eYAKODA HEADWEAR\u003c\/span\u003e\r\n        \u003cdiv style=\"font-weight: 700; text-transform: uppercase; font-size: 28px; color: #0f172a; margin: 0 0 15px 0; display: inline-block;\"\u003eWinter Hat\u003c\/div\u003e\r\n        \u003cp style=\"font-size: 18px; color: #475569; max-width: 600px; margin: 0 auto; font-weight: bold;\"\u003e\r\n            ウィンター ハット\r\n        \u003c\/p\u003e\r\n    \u003c\/div\u003e\r\n\r\n    \u003c!-- Overview --\u003e\r\n    \u003cdiv style=\"margin-bottom: 80px;\"\u003e\r\n        \u003cdiv style=\"text-align: center; margin-bottom: 40px;\"\u003e\r\n            \u003cdiv style=\"display: inline-block; font-weight: 700; text-transform: uppercase; font-size: 24px; padding-bottom: 10px; margin: 0;\"\u003eOverview\u003c\/div\u003e\r\n            \u003cdiv style=\"width: 60px; height: 4px; background-color: #0369a1; margin: 10px auto 0;\"\u003e\u003c\/div\u003e\r\n        \u003c\/div\u003e\r\n        \u003cdiv style=\"font-size: 16px; color: #444; max-width: 800px; margin: 0 auto; text-align: center;\"\u003e\r\n            \u003cp style=\"margin-bottom: 1.5em; line-height: 1.8;\"\u003e\r\n                初秋から真冬にかけて、コロラドやワイオミングの氷点下や強風という過酷な環境で何年もテストを重ねて完成したハットです。\u003cbr\u003e\r\n                「これがあなたが買う最後の防寒用帽子になるかもしれない」と自信を持って言える、極寒のフィールドでも暖かさを逃さない究極のアイテムです。\r\n            \u003c\/p\u003e\r\n        \u003c\/div\u003e\r\n    \u003c\/div\u003e\r\n\r\n    \u003c!-- Gallery Section --\u003e\r\n    \u003cdiv style=\"margin-bottom: 80px;\"\u003e\r\n        \u003cdiv style=\"text-align: center; margin-bottom: 40px;\"\u003e\r\n            \u003cdiv style=\"display: inline-block; font-weight: 700; text-transform: uppercase; font-size: 24px; padding-bottom: 10px; margin: 0;\"\u003eGallery\u003c\/div\u003e\r\n            \u003cdiv style=\"width: 60px; height: 4px; background-color: #0369a1; margin: 10px auto 0;\"\u003e\u003c\/div\u003e\r\n        \u003c\/div\u003e\r\n\r\n        \u003cdiv style=\"display: flex; flex-wrap: wrap; gap: 20px; justify-content: center; max-width: 900px; margin: 0 auto;\"\u003e\r\n            \u003c!-- Image 1 --\u003e\r\n            \u003cdiv style=\"flex: 1; min-width: 280px; max-width: 45%; text-align: center; margin-bottom: 20px;\"\u003e\r\n                \u003cimg src=\"https:\/\/www.dropbox.com\/scl\/fi\/nhkake1axzrws6ev7fwz0\/.png?rlkey=r0ro7v07d4pfma700nvtcjizr\u0026amp;raw=1\" alt=\"[Winter Hat Image 1]\" style=\"width: 100%; height: auto; display: block; border-radius: 8px; box-shadow: 0 4px 10px rgba(0,0,0,0.1);\"\u003e\r\n            \u003c\/div\u003e\r\n            \u003c!-- Image 2 --\u003e\r\n            \u003cdiv style=\"flex: 1; min-width: 280px; max-width: 45%; text-align: center; margin-bottom: 20px;\"\u003e\r\n                \u003cimg src=\"https:\/\/www.dropbox.com\/scl\/fi\/cji4goxcuarck9brldjtv\/.png?rlkey=yl99cbkglfb19lri0xr0e80et\u0026amp;raw=1\" alt=\"[Winter Hat Image 2]\" style=\"width: 100%; height: auto; display: block; border-radius: 8px; box-shadow: 0 4px 10px rgba(0,0,0,0.1);\"\u003e\r\n            \u003c\/div\u003e\r\n             \u003c!-- Image 3 --\u003e\r\n            \u003cdiv style=\"flex: 1; min-width: 280px; max-width: 45%; text-align: center;\"\u003e\r\n                \u003cimg src=\"https:\/\/www.dropbox.com\/scl\/fi\/d7gzws1qqpvkq0lt1u19d\/.png?rlkey=3mkds4d0ledtrana3rt7dq4eb\u0026amp;raw=1\" alt=\"[Winter Hat Image 3]\" style=\"width: 100%; height: auto; display: block; border-radius: 8px; box-shadow: 0 4px 10px rgba(0,0,0,0.1);\"\u003e\r\n            \u003c\/div\u003e\r\n             \u003c!-- Image 4 --\u003e\r\n            \u003cdiv style=\"flex: 1; min-width: 280px; max-width: 45%; text-align: center;\"\u003e\r\n                \u003cimg src=\"https:\/\/www.dropbox.com\/scl\/fi\/fokqvjgpy4d6cwl1gn2j8\/.png?rlkey=6hb6vl197rkcr1e1bcmnv3isu\u0026amp;raw=1\" alt=\"[Winter Hat Image 4]\" style=\"width: 100%; height: auto; display: block; border-radius: 8px; box-shadow: 0 4px 10px rgba(0,0,0,0.1);\"\u003e\r\n            \u003c\/div\u003e\r\n        \u003c\/div\u003e\r\n    \u003c\/div\u003e\r\n\r\n    \u003c!-- Details \u0026 Specs --\u003e\r\n    \u003cdiv style=\"margin-bottom: 80px; background-color: #f9fafb; padding: 40px; border-radius: 8px; border: 1px solid #e5e7eb;\"\u003e\r\n        \u003cdiv style=\"text-align: center; margin-bottom: 30px;\"\u003e\r\n            \u003cdiv style=\"display: inline-block; font-weight: 700; text-transform: uppercase; font-size: 24px; color: #374151; margin: 0;\"\u003eFEATURES \u0026amp; DETAILS\u003c\/div\u003e\r\n            \u003cdiv style=\"width: 50px; height: 3px; background-color: #4a7c59; margin: 10px auto 0;\"\u003e\u003c\/div\u003e\r\n        \u003c\/div\u003e\r\n        \r\n        \u003c!--箇条書き Features --\u003e\r\n        \u003cdiv style=\"background-color: #fafff2; border: 1px solid #dcfce7; padding: 25px; border-radius: 6px; margin-bottom: 40px; max-width: 600px; margin-left: auto; margin-right: auto;\"\u003e\r\n            \u003cul style=\"list-style: none; padding: 0; margin: 0; font-size: 15px; color: #374151;\"\u003e\r\n                \u003cli style=\"margin-bottom: 10px;\"\u003e✓ 高い保温性を誇る断熱構造のクラウン\u003c\/li\u003e\r\n                \u003cli style=\"margin-bottom: 10px;\"\u003e✓ 暖かな合成フリース素材のイヤー\/ネックウォーマー\u003c\/li\u003e\r\n                \u003cli style=\"margin-bottom: 10px;\"\u003e✓ 水や汚れを弾くDWR（耐久撥水）加工\u003c\/li\u003e\r\n                \u003cli style=\"margin-bottom: 0;\"\u003e✓ 隠しスナップバンドによるスマートなサイズ調整\u003c\/li\u003e\r\n            \u003c\/ul\u003e\r\n        \u003c\/div\u003e\r\n\r\n        \u003c!-- Specs Table --\u003e\r\n        \u003cdiv style=\"overflow-x: auto; max-width: 800px; margin: 0 auto; background-color: #fff; box-shadow: 0 2px 8px rgba(0,0,0,0.05);\"\u003e\r\n            \u003ctable style=\"width: 100%; border-collapse: collapse; font-size: 14px; text-align: center; border: 1px solid #e5e7eb;\"\u003e\r\n                \u003cthead\u003e\r\n                    \u003ctr style=\"background-color: #1a2e1a; color: #fff;\"\u003e\r\n                        \u003cth style=\"padding: 15px; border: 1px solid #e5e7eb; font-weight: bold; width: 30%;\"\u003eスペック\u003c\/th\u003e\r\n                        \u003cth style=\"padding: 15px; border: 1px solid #e5e7eb; font-weight: bold; width: 70%;\"\u003e詳細\u003c\/th\u003e\r\n                    \u003c\/tr\u003e\r\n                \u003c\/thead\u003e\r\n                \u003ctbody\u003e\r\n                    \u003ctr\u003e\r\n                        \u003ctd style=\"padding: 12px; border: 1px solid #e5e7eb; font-weight: bold; background-color: #f8fafc;\"\u003eサイズ\u003c\/td\u003e\r\n                        \u003ctd style=\"padding: 12px; border: 1px solid #e5e7eb; text-align: left; padding-left: 20px;\"\u003e内側のスナップバンドで調整可能 (約 54.9cm - 58.7cm)\u003c\/td\u003e\r\n                    \u003c\/tr\u003e\r\n                    \u003ctr style=\"background-color: #f9fafb;\"\u003e\r\n                        \u003ctd style=\"padding: 12px; border: 1px solid #e5e7eb; font-weight: bold; background-color: #f8fafc;\"\u003e素材\u003c\/td\u003e\r\n                        \u003ctd style=\"padding: 12px; border: 1px solid #e5e7eb; text-align: left; padding-left: 20px;\"\u003eDWR（耐久撥水）リップストップコットン、合成フリース\u003c\/td\u003e\r\n                    \u003c\/tr\u003e\r\n                \u003c\/tbody\u003e\r\n            \u003c\/table\u003e\r\n        \u003c\/div\u003e\r\n    \u003c\/div\u003e\r\n\r\n    \u003c!-- Staff Impression --\u003e\r\n    \u003cdiv style=\"margin-bottom: 40px; border: 1px solid #e5e7eb; border-radius: 8px; overflow: hidden;\"\u003e\r\n        \u003cdiv style=\"background-color: #f1f5f9; padding: 20px; border-bottom: 1px solid #e5e7eb; text-align: center;\"\u003e\r\n            \u003cdiv style=\"display: inline-block; font-weight: 700; text-transform: uppercase; font-size: 20px; color: #1e293b; margin: 0; padding: 0;\"\u003eSTAFF IMPRESSION\u003c\/div\u003e\r\n        \u003c\/div\u003e\r\n        \u003cdiv style=\"padding: 30px;\"\u003e\r\n            \u003ch3 style=\"font-size: 18px; color: #0f172a; margin-top: 0; margin-bottom: 15px;\"\u003e「冬の釣りを変える、最強の暖かさ」\u003c\/h3\u003e\r\n            \u003cp style=\"font-size: 15px; color: #475569; line-height: 1.8; margin: 0;\"\u003e\r\n                冬場のフィールドで一番辛い「耳と首元の冷え」を完璧に防いでくれる心強いアイテムです。イヤーフラップ（耳当て）を上げればクラシックなキャップスタイルとして、寒さが厳しい時はフラップを下ろしてフリースに包まれる抜群の暖かさを体感できます。\u003cbr\u003e\u003cbr\u003e\r\n                耐久撥水加工が施されているため、雪やちょっとした雨でも安心。サイズ調整のバンドが内側に隠れているので、外見はすっきりスマートなのも嬉しいポイントです。冬の釣りやキャンプで手放せなくなること間違いなしです！\r\n            \u003c\/p\u003e\r\n        \u003c\/div\u003e\r\n    \u003c\/div\u003e\r\n\r\n    \u003c!-- AI Chat Assistant --\u003e\r\n    \u003cbutton id=\"ai-chat-btn\" style=\"position: fixed; bottom: 20px; right: 20px; background-color: #0369a1; color: white; border: none; border-radius: 50px; padding: 15px 20px; font-size: 16px; cursor: pointer; box-shadow: 0 4px 12px rgba(0,0,0,0.2); z-index: 1000; display: flex; align-items: center; gap: 8px;\"\u003e\r\n        ✨ AIスタッフに質問する\r\n    \u003c\/button\u003e\r\n\r\n    \u003cdiv id=\"ai-chat-modal\" style=\"display: none; position: fixed; bottom: 80px; right: 20px; width: 350px; max-height: 500px; background: white; border-radius: 12px; box-shadow: 0 8px 24px rgba(0,0,0,0.15); z-index: 1000; flex-direction: column; overflow: hidden; border: 1px solid #e2e8f0; font-family: 'Hiragino Kaku Gothic ProN', sans-serif;\"\u003e\r\n        \u003cdiv style=\"background-color: #0369a1; color: white; padding: 15px; font-weight: bold; display: flex; justify-content: space-between; align-items: center;\"\u003e\r\n            \u003cspan\u003e✨ AIスタッフ (ベータ版)\u003c\/span\u003e\r\n            \u003cbutton id=\"close-chat-btn\" style=\"background: none; border: none; color: white; font-size: 20px; cursor: pointer;\"\u003e×\u003c\/button\u003e\r\n        \u003c\/div\u003e\r\n        \u003cdiv id=\"chat-messages\" style=\"flex: 1; padding: 15px; overflow-y: auto; max-height: 300px; display: flex; flex-direction: column; gap: 10px; background-color: #f8fafc; font-size: 14px;\"\u003e\r\n            \u003cdiv style=\"align-self: flex-start; background: #e2e8f0; padding: 10px; border-radius: 8px; max-width: 80%; line-height: 1.4;\"\u003e\r\n                こんにちは！サイズ感やおすすめの着こなし、商品の機能についてなど、何でも聞いてください。\r\n            \u003c\/div\u003e\r\n        \u003c\/div\u003e\r\n        \u003cdiv style=\"padding: 10px; border-top: 1px solid #e2e8f0; display: flex; gap: 10px; background: white;\"\u003e\r\n            \u003cinput type=\"text\" id=\"chat-input\" placeholder=\"質問を入力...\" style=\"flex: 1; padding: 8px 12px; border: 1px solid #cbd5e1; border-radius: 20px; outline: none; font-size: 14px;\"\u003e\r\n            \u003cbutton id=\"send-chat-btn\" style=\"background-color: #0369a1; color: white; border: none; border-radius: 20px; padding: 8px 15px; cursor: pointer; font-size: 14px;\"\u003e送信\u003c\/button\u003e\r\n        \u003c\/div\u003e\r\n    \u003c\/div\u003e\r\n\u003c\/div\u003e\r\n\r\n\u003cscript\u003e\r\n    const apiKey = \"\"; \/\/ API key is provided by the execution environment\r\n\r\n    const chatBtn = document.getElementById('ai-chat-btn');\r\n    const chatModal = document.getElementById('ai-chat-modal');\r\n    const closeChatBtn = document.getElementById('close-chat-btn');\r\n    const sendChatBtn = document.getElementById('send-chat-btn');\r\n    const chatInput = document.getElementById('chat-input');\r\n    const chatMessages = document.getElementById('chat-messages');\r\n\r\n    chatBtn.addEventListener('click', () =\u003e {\r\n        chatModal.style.display = chatModal.style.display === 'none' || chatModal.style.display === '' ? 'flex' : 'none';\r\n        if (chatModal.style.display === 'flex') {\r\n            chatInput.focus();\r\n        }\r\n    });\r\n\r\n    closeChatBtn.addEventListener('click', () =\u003e {\r\n        chatModal.style.display = 'none';\r\n    });\r\n\r\n    async function callGeminiApi(prompt) {\r\n        if (!apiKey) {\r\n            return \"APIキーが設定されていません。\";\r\n        }\r\n        \r\n        \/\/ AIの振る舞い（システムプロンプト）を設定\r\n        const systemPrompt = \"あなたはYAKODAのアウトドアアパレル専門のAIスタッフです。お客様は「Winter Hat」という商品を見ています。この商品は、耐久撥水（DWR）リップストップコットンと断熱性のあるクラウン、フリース素材のイヤー\/ネックウォーマーを備えた究極の防寒ハットです。内側の隠しスナップバンドでサイズ調整が可能（約54.9cm - 58.7cm）です。お客様からの質問に対し、丁寧でフレンドリーなトーンで短めに（150字程度）日本語で回答してください。\";\r\n        \r\n        const url = `https:\/\/generativelanguage.googleapis.com\/v1beta\/models\/gemini-2.5-flash-preview-09-2025:generateContent?key=${apiKey}`;\r\n        \r\n        const payload = {\r\n            contents: [{ parts: [{ text: prompt }] }],\r\n            systemInstruction: { parts: [{ text: systemPrompt }] }\r\n        };\r\n\r\n        const fetchWithRetry = async (url, options, retries = 5, delay = 1000) =\u003e {\r\n            for (let i = 0; i \u003c retries; i++) {\r\n                try {\r\n                    const response = await fetch(url, options);\r\n                    if (!response.ok) throw new Error('API Error ' + response.status);\r\n                    return await response.json();\r\n                } catch (error) {\r\n                    if (i === retries - 1) throw error;\r\n                    await new Promise(res =\u003e setTimeout(res, delay));\r\n                    delay *= 2;\r\n                }\r\n            }\r\n        };\r\n\r\n        try {\r\n            const result = await fetchWithRetry(url, {\r\n                method: 'POST',\r\n                headers: { 'Content-Type': 'application\/json' },\r\n                body: JSON.stringify(payload)\r\n            });\r\n            return result.candidates?.[0]?.content?.parts?.[0]?.text || \"申し訳ありません。回答を生成できませんでした。\";\r\n        } catch (error) {\r\n            console.error(\"Gemini API Error:\", error);\r\n            return \"現在AIスタッフが混み合っております。少し時間をおいて再度お試しください。\";\r\n        }\r\n    }\r\n\r\n    function addMessage(text, isUser) {\r\n        const msgDiv = document.createElement('div');\r\n        msgDiv.style.padding = '10px';\r\n        msgDiv.style.borderRadius = '8px';\r\n        msgDiv.style.maxWidth = '80%';\r\n        msgDiv.style.wordBreak = 'break-word';\r\n        msgDiv.style.lineHeight = '1.4';\r\n        \r\n        if (isUser) {\r\n            msgDiv.style.alignSelf = 'flex-end';\r\n            msgDiv.style.background = '#0369a1';\r\n            msgDiv.style.color = 'white';\r\n        } else {\r\n            msgDiv.style.alignSelf = 'flex-start';\r\n            msgDiv.style.background = '#e2e8f0';\r\n            msgDiv.style.color = '#333';\r\n        }\r\n        \r\n        \/\/ 簡易的な改行のHTML変換\r\n        msgDiv.innerHTML = text.replace(\/\\n\/g, '\u003cbr\u003e');\r\n        chatMessages.appendChild(msgDiv);\r\n        chatMessages.scrollTop = chatMessages.scrollHeight;\r\n    }\r\n\r\n    async function handleSend() {\r\n        const text = chatInput.value.trim();\r\n        if (!text) return;\r\n\r\n        addMessage(text, true);\r\n        chatInput.value = '';\r\n        chatInput.disabled = true;\r\n        sendChatBtn.disabled = true;\r\n        sendChatBtn.style.opacity = '0.5';\r\n        \r\n        \/\/ Show loading indicator\r\n        const loadingId = 'loading-' + Date.now();\r\n        const loadingDiv = document.createElement('div');\r\n        loadingDiv.id = loadingId;\r\n        loadingDiv.style.alignSelf = 'flex-start';\r\n        loadingDiv.style.color = '#64748b';\r\n        loadingDiv.style.fontSize = '12px';\r\n        loadingDiv.innerText = '考え中...';\r\n        chatMessages.appendChild(loadingDiv);\r\n        chatMessages.scrollTop = chatMessages.scrollHeight;\r\n\r\n        const responseText = await callGeminiApi(text);\r\n        \r\n        \/\/ Remove loading indicator\r\n        const loadingElement = document.getElementById(loadingId);\r\n        if(loadingElement) loadingElement.remove();\r\n        \r\n        addMessage(responseText, false);\r\n        \r\n        chatInput.disabled = false;\r\n        sendChatBtn.disabled = false;\r\n        sendChatBtn.style.opacity = '1';\r\n        chatInput.focus();\r\n    }\r\n\r\n    sendChatBtn.addEventListener('click', handleSend);\r\n    chatInput.addEventListener('keypress', (e) =\u003e {\r\n        if (e.key === 'Enter') handleSend();\r\n    });\r\n\u003c\/script\u003e","brand":"YAKODA","offers":[{"title":"Black","offer_id":45348656447603,"sku":"YS-HWINH-BLK","price":12650.0,"currency_code":"JPY","in_stock":true},{"title":"Grey","offer_id":45348656480371,"sku":"YS-HWINH-GRY","price":12650.0,"currency_code":"JPY","in_stock":true},{"title":"Olive","offer_id":45348656513139,"sku":"YS-HWINH-OLI","price":12650.0,"currency_code":"JPY","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0720\/4002\/2131\/files\/000000000325_bWmFC0u.jpg?v=1787711515","url":"https:\/\/waltonflyfish.com\/products\/winter-hat","provider":"Fly Fishing Outfitters WALTON","version":"1.0","type":"link"}