{"title":"[EVEN]別注","description":null,"products":[{"product_id":"e24h0003k","title":"［BRIEFING別注］シューズコンテナー","description":"\u003cp\u003e\u003cvideo playsinline=\"\" muted=\"\" loop=\"loop\" autoplay=\"autoplay\" controls=\"controls\" height=\"auto\" width=\"100%\"\u003e\n  \u003csource type=\"video\/mp4\" src=\"https:\/\/cdn.shopify.com\/videos\/c\/o\/v\/b1b782cc450e455a975d1e22b5869fdd.mp4\"\u003e\u003c\/video\u003e\u003c\/p\u003e\n\u003cp\u003eお使いのブラウザはこの動画に対応しておりません。\u003c\/p\u003e\n\u003ch2\u003e\u003cstrong\u003eEVEN別注　FUNQ Shopだけでしか買えない逸品「BRIEFING」とのコラボアイテムが、いよいよ入荷。\u003c\/strong\u003e\u003c\/h2\u003e\n\u003cp\u003e\u003cbr\u003e車のトランクでシューズを整頓して積んでおきたいという要望から生まれたシューズボックス。\u003c\/p\u003e\n\u003cp\u003eゴルフ狂が集うEVENならではの着眼点で、こだわりを詰め込んだ別注商品がついに完成しました。\u003c\/p\u003e\n\u003cp\u003eシューズ2足が収納できるサイズ感。\u003cbr\u003e\u003c\/p\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\n\u003cp\u003e\u003cspan\u003e中空構造の高強力糸を織り交ぜて強度を維持しながら軽量化した素材、AIR BALLISTIC NYLONを採用。\u003c\/span\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cspan\u003e優れた強度を維持しながらも非常に軽量な仕上がりです。\u003c\/span\u003e\u003c\/p\u003e\n\u003cp\u003e別注商品の証、\"EVEN\"と\"BRIEFING\"のダブルネームを使用。　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　\u003c\/p\u003e\n\u003cp\u003e\u003cmeta charset=\"utf-8\"\u003e\u003cspan\u003eサイズ：W:420mm H:115mm D:330mm\u003c\/span\u003e\u003cbr\u003e\u003cspan\u003e素材：1680D × 840D AIR BALLISTIC NYLON\u003c\/span\u003e\u003cbr\u003e\u003cspan\u003e製造国：中国\u003c\/span\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cmeta charset=\"utf-8\"\u003e\u003cspan\u003e商品コード｜E24H0003K\u003cbr\u003e購入時納期｜3-4日\u003c\/span\u003e\u003cbr\u003e\u003c\/p\u003e\n\u003c!----\u003e","brand":"EVEN","offers":[{"title":"BLACK","offer_id":45556536246490,"sku":"E24H0003K-01-00","price":31900.0,"currency_code":"JPY","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0654\/2609\/6346\/files\/17_20_20.png?v=1789460446"},{"product_id":"e25a0144k","title":"［LACOSTE別注］ L.12.12 ポロシャツ","description":"\u003cstyle\u003e\n    \/* ========== ベーススタイル ========== *\/\n    .ProductMeta__Specification {\n      font-family: \"hiraginoW3\", Arial, sans-serif;\n    }\n    .ProductMeta__Accordion {\n      border-top: 1px solid #e5e5e5;\n    }\n    .ProductMeta__Accordion:last-child {\n      border-bottom: 1px solid #e5e5e5;\n    }\n    .ProductMeta__AccordionHeading {\n      cursor: pointer;\n      padding: 16px 0;\n      font-weight: bold;\n      position: relative;\n      display: flex;\n      justify-content: space-between;\n      align-items: center;\n    }\n    .ProductMeta__AccordionHeading::after {\n      content: \"+\";\n      font-weight: normal;\n      font-size: 16px;\n    }\n    .ProductMeta__AccordionHeading.c-show::after {\n      content: \"−\";\n    }\n    .ProductMeta__AccordionTitle {\n      display: flex;\n      align-items: center;\n      gap: 12px;\n    }\n    .accordion-icon {\n      width: 18px;\n      height: 18px;\n      object-fit: contain;\n      display: block;\n    }\n    .accordion-icon--description {\n      width: 15px;\n      height: 15px;\n    }\n    .ProductMeta__AccordionContent {\n      overflow: hidden;\n      height: 0;\n      transition: height 0.35s ease;\n      padding-bottom: 0;\n    }\n    \/* ========== テーブル共通設定 ========== *\/\n    .ProductMeta__AccordionContent table {\n      width: 100%;\n      border-collapse: collapse;\n      margin-bottom: 16px;\n    }\n    .ProductMeta__AccordionContent th,\n    .ProductMeta__AccordionContent td {\n      border: 1px solid #ddd;\n      padding: 8px;\n      font-size: 11px;\n    }\n    .ProductMeta__AccordionContent table:not(.size-table) td {\n      text-align: left;\n    }\n    .ProductMeta__AccordionContent table:not(.size-table) td:first-child {\n      width: 30%;\n      color: #666;\n      border-right: none;\n    }\n    .ProductMeta__AccordionContent table:not(.size-table) td:last-child {\n      border-left: none;\n    }\n    .size-table {\n      width: 100%;\n      border-collapse: collapse;\n      margin-top: 12px;\n      font-size: 10px;\n    }\n    .size-table thead th {\n      background: #f5f5f5;\n      font-weight: 600;\n      border: 1px solid #ddd;\n      padding: 10px 8px;\n    }\n    .size-table tbody th {\n      background: #fafafa;\n      font-weight: 600;\n      border: 1px solid #ddd;\n      padding: 10px 8px;\n    }\n    .size-table tbody td {\n      border: 1px solid #ddd;\n      padding: 10px 8px;\n    }\n    .size-table th, .size-table td {\n      text-align: center;\n    }\n    .size-note {\n      font-size: 12px;\n      color: #666;\n      margin-top: 8px;\n      line-height: 1.6;\n    }\n    \/* ========== スクロールエリア ========== *\/\n    .accordion-scroll-area {\n      max-height: 160px;\n      overflow-y: auto;\n      padding-right: 8px;\n      margin-bottom: 16px;\n    }\n    .accordion-scroll-area::-webkit-scrollbar { width: 4px; }\n    .accordion-scroll-area::-webkit-scrollbar-track { background: #f5f5f5; border-radius: 4px; }\n    .accordion-scroll-area::-webkit-scrollbar-thumb { background: #ccc; border-radius: 4px; }\n    \/* ========== テキストスタイル ========== *\/\n    .ProductMeta__AccordionContent p,\n    .ProductMeta__AccordionContent li {\n      font-size: 12px;\n      line-height: 1.8;\n    }\n    .accordion-description .ProductMeta__AccordionContent p {\n      font-size: 12px;\n      font-weight: 300;\n      line-height: 2;\n      letter-spacing: 0.06em;\n      text-align: left;\n      margin: 0;\n    }\n    .accordion-description .ProductMeta__AccordionContent p + p {\n      margin-top: 12px;\n    }\n    \/* ========== サイズ視覚イメージ \u0026 スライダー ========== *\/\n    .size-visual {\n      margin-top: 24px;\n      margin-bottom: 24px;\n    }\n    .size-visual__image {\n      max-width: 55%;\n      margin: 0 auto;\n    }\n    .size-visual__image img {\n      width: 100%;\n      height: auto;\n      display: block;\n    }\n    .size-visual__slider-container {\n      position: relative;\n      margin-top: 16px;\n      padding: 0 30px;\n      display: flex;\n      align-items: center;\n    }\n    .size-visual__buttons {\n      display: flex;\n      gap: 8px;\n      overflow-x: auto;\n      scroll-behavior: smooth;\n      width: 100%;\n      -ms-overflow-style: none;\n      scrollbar-width: none;\n    }\n    .size-visual__buttons::-webkit-scrollbar { display: none; }\n    .size-btn {\n      flex: 0 0 28%;\n      padding: 12px 0;\n      font-size: 12px;\n      border: 1px solid #ddd;\n      background: #fff;\n      cursor: pointer;\n      white-space: nowrap;\n      transition: background 0.2s, color 0.2s;\n    }\n    .size-btn.is-active {\n      background: #111;\n      color: #fff;\n      border-color: #111;\n    }\n    .slider-arrow {\n      position: absolute;\n      top: 50%;\n      transform: translateY(-50%);\n      width: 30px;\n      height: 100%;\n      background: transparent;\n      border: none;\n      cursor: pointer;\n      z-index: 2;\n      padding: 0;\n      display: flex;\n      align-items: center;\n      justify-content: center;\n    }\n    .slider-arrow--prev { left: -5px; }\n    .slider-arrow--next { right: -5px; }\n    .slider-arrow::before {\n      content: '';\n      display: block;\n      width: 10px;\n      height: 10px;\n      border-top: 2px solid #333;\n      border-right: 2px solid #333;\n    }\n    .slider-arrow--prev::before { transform: rotate(-135deg); }\n    .slider-arrow--next::before { transform: rotate(45deg); }\n    .slider-arrow:focus { outline: none; }\n    \/* ========== Gallery グリッド設定 ========== *\/\n    .gallery-grid {\n      display: grid;\n      grid-template-columns: repeat(4, 1fr);\n      gap: 8px;\n      margin-bottom: 16px;\n    }\n    .gallery-item-wrapper {\n      width: 100%;\n      display: block;\n      cursor: pointer;\n      transition: opacity 0.2s ease;\n      -webkit-tap-highlight-color: transparent;\n    }\n    .gallery-item-wrapper:hover { opacity: 0.7; }\n    .gallery-item {\n      width: 100%;\n      height: auto;\n      display: block;\n      object-fit: cover;\n      aspect-ratio: 3 \/ 4;\n      pointer-events: none;\n    }\n    \/* ========== ギャラリーモーダル ========== *\/\n    .gallery-modal {\n      display: none;\n      position: fixed;\n      z-index: 999999;\n      left: 0;\n      top: 0;\n      width: 100%;\n      height: 100%;\n      background-color: rgba(0, 0, 0, 0.85);\n      opacity: 0;\n      transition: opacity 0.35s ease, background-color 0.3s ease;\n      touch-action: none;\n    }\n    .gallery-modal.is-open {\n      display: flex;\n      opacity: 1;\n      justify-content: center;\n      align-items: center;\n    }\n    .gallery-modal__content {\n      position: relative;\n      display: inline-flex;\n      justify-content: center;\n      align-items: center;\n      width: auto;\n      height: auto;\n    }\n    #galleryModalImg {\n      max-height: 85vh;\n      max-width: calc(100vw - 160px);\n      width: auto;\n      height: auto;\n      display: block;\n      user-select: none;\n      transform: translate(0, 0) scale(1);\n      transition: transform 0.3s ease-out, opacity 0.3s ease;\n      box-shadow: 0 10px 40px rgba(0,0,0,0.3);\n    }\n    .gallery-modal__indicator {\n      position: absolute;\n      bottom: 20px;\n      left: 50%;\n      transform: translateX(-50%);\n      color: #fff;\n      font-size: 14px;\n      font-family: \"futura\", Arial, sans-serif;\n      letter-spacing: 0.15em;\n      z-index: 1000000;\n      text-shadow: 0 2px 6px rgba(0,0,0,0.8);\n      font-weight: 400;\n      pointer-events: none;\n    }\n    .gallery-modal__thumbnails {\n      position: absolute;\n      bottom: 24px;\n      left: 50%;\n      transform: translateX(-50%);\n      display: flex;\n      gap: 8px;\n      z-index: 1000000;\n    }\n    .gallery-modal__thumb {\n      width: 48px;\n      height: 48px;\n      object-fit: cover;\n      cursor: pointer;\n      border: 2px solid transparent;\n      border-radius: 4px;\n      opacity: 0.5;\n      transition: all 0.2s ease;\n      box-shadow: 0 2px 4px rgba(0,0,0,0.5);\n    }\n    .gallery-modal__thumb:hover { opacity: 0.8; }\n    .gallery-modal__thumb.is-active { border-color: #fff; opacity: 1; }\n    .gallery-modal__close {\n      position: absolute;\n      top: 16px;\n      right: 16px;\n      color: #fff;\n      font-size: 44px;\n      font-weight: 200;\n      cursor: pointer;\n      z-index: 1000000;\n      line-height: 1;\n      user-select: none;\n      transition: opacity 0.2s;\n      text-shadow: 0 2px 6px rgba(0,0,0,0.5);\n    }\n    .gallery-modal__close:hover { opacity: 0.7; }\n    .gallery-modal__arrow {\n      position: absolute;\n      top: 50%;\n      transform: translateY(-50%);\n      background: transparent;\n      border: none;\n      cursor: pointer;\n      padding: 20px;\n      z-index: 1000000;\n      display: flex;\n      align-items: center;\n      justify-content: center;\n      filter: drop-shadow(0 2px 4px rgba(0,0,0,0.5));\n    }\n    .gallery-modal__arrow--prev { left: -70px; }\n    .gallery-modal__arrow--next { right: -70px; }\n    .gallery-modal__arrow::before {\n      content: '';\n      display: block;\n      width: 26px;\n      height: 26px;\n      border-top: 3px solid #fff;\n      border-right: 3px solid #fff;\n    }\n    .gallery-modal__arrow--prev::before { transform: rotate(-135deg); }\n    .gallery-modal__arrow--next::before { transform: rotate(45deg); }\n    \/* ========== SP用調整 ========== *\/\n    @media screen and (max-width: 768px) {\n      .ProductMeta__AccordionContent { padding-bottom: 0 !important; }\n      .size-visual { margin-top: 16px; margin-bottom: 20px; }\n      .size-visual__image { max-width: 100%; }\n      .size-visual__slider-container { padding: 0 24px; }\n      .slider-arrow { width: 24px; }\n      .slider-arrow--prev { left: 0; }\n      .slider-arrow--next { right: 0; }\n      .gallery-grid { grid-template-columns: repeat(2, 1fr); gap: 4px; }\n      #galleryModalImg { max-width: 100vw; max-height: 80vh; }\n      .gallery-modal__thumbnails { bottom: 20px; }\n      .gallery-modal__thumb { width: 40px; height: 40px; }\n      .gallery-modal__close { top: 16px; right: 16px; font-size: 40px; }\n      .gallery-modal__arrow { padding: 15px; }\n      .gallery-modal__arrow--prev { left: 0; }\n      .gallery-modal__arrow--next { right: 0; }\n    }\n  \u003c\/style\u003e\n\u003cdiv class=\"ProductMeta__Specification\"\u003e\n\u003c!-- ============================================================ --\u003e \u003c!-- ▼ [SECTION: DESCRIPTION] アコーディオン「Description」       --\u003e \u003c!-- ============================================================ --\u003e\n\u003cdiv class=\"ProductMeta__Accordion accordion-description\"\u003e\n\u003cdiv class=\"ProductMeta__AccordionHeading c-show\"\u003e\n\u003cdiv class=\"ProductMeta__AccordionTitle\"\u003e\n\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0654\/2609\/6346\/files\/description.png?v=1775810343\" alt=\"\" class=\"accordion-icon accordion-icon--description\"\u003e \u003cspan\u003eDescription\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"ProductMeta__AccordionContent\"\u003e\n\u003cdiv class=\"accordion-scroll-area\"\u003e\n\u003c!-- ▼ [EDIT: 商品説明] ここから〜ここまでが商品説明テキスト --\u003e\n\u003cp\u003e1933年に誕生し、全てのラコステポロシャツの＜原型＞である『L.12.12』のEVEN別注モデル。\u003cbr\u003e胸元のワニのデザインや、右袖の刺繍をEVEN仕様にカスタマイズ。\u003cbr\u003eさらに後ろ身頃の右裾には「STYLE EVEN」のロゴマークを特別に刺繍。\u003cbr\u003eブランド創設時から変わらぬデザインや機能性を受け継ぎ、単一の高級糸のみで編み上げた鹿の子による贅沢な光沢と耐久性を持つ、『ラコステ』のDNAを形にしたポロシャツが、世界で１つだけのEVEN別注モデルで登場です。\u003c\/p\u003e\n\u003cbr\u003e\u003c!-- ▲ [EDIT: 商品説明] ここまで --\u003e \u003c!-- ▼ [EDIT: ブランド説明] ここから〜ここまでがブランド説明テキスト --\u003e\n\u003cp\u003e【ラコステ】\u003cbr\u003e1933年にフランスの伝説的テニスプレーヤーであるルネ・ラコステが創業した、ワニのロゴで有名なプレミアム・ファッションスポーツブランドです。フレンチ・エレガンスとスポーツを融合させた、上品で快適なスタイルを提案しています。\u003c\/p\u003e\n\u003c!-- ▲ [EDIT: ブランド説明] ここまで --\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- ▲ [SECTION: DESCRIPTION] ここまで --\u003e \u003c!-- ============================================================ --\u003e \u003c!-- ▼ [SECTION: SIZE] アコーディオン「Size」                     --\u003e \u003c!-- ============================================================ --\u003e\n\u003cdiv class=\"ProductMeta__Accordion\"\u003e\n\u003cdiv class=\"ProductMeta__AccordionHeading\"\u003e\n\u003cdiv class=\"ProductMeta__AccordionTitle\"\u003e\n\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0654\/2609\/6346\/files\/size.png?v=1775810343\" alt=\"\" class=\"accordion-icon\"\u003e \u003cspan\u003eSize\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"ProductMeta__AccordionContent\"\u003e\n\u003c!-- ▼ [EDIT: サイズテーブル] 採寸表 --\u003e\n\u003ctable class=\"size-table\"\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eSIZE\u003c\/th\u003e\n\u003cth\u003e肩幅\u003c\/th\u003e\n\u003cth\u003e身幅\u003c\/th\u003e\n\u003cth\u003e袖丈\u003c\/th\u003e\n\u003cth\u003e着丈\u003c\/th\u003e\n\u003c\/tr\u003e\n\u003c\/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003cth\u003eS\u003c\/th\u003e\n\u003ctd\u003e44\u003c\/td\u003e\n\u003ctd\u003e50.5\u003c\/td\u003e\n\u003ctd\u003e21\u003c\/td\u003e\n\u003ctd\u003e70.5\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eM\u003c\/th\u003e\n\u003ctd\u003e46\u003c\/td\u003e\n\u003ctd\u003e54\u003c\/td\u003e\n\u003ctd\u003e22\u003c\/td\u003e\n\u003ctd\u003e72\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eL\u003c\/th\u003e\n\u003ctd\u003e48\u003c\/td\u003e\n\u003ctd\u003e57.5\u003c\/td\u003e\n\u003ctd\u003e23\u003c\/td\u003e\n\u003ctd\u003e73.5\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\n\u003c\/table\u003e\n\u003c!-- ▲ [EDIT: サイズテーブル] ここまで --\u003e\n\u003cp class=\"size-note\"\u003e※ 表記サイズは目安となります。\u003cbr\u003e※ 採寸方法により多少の誤差が生じる場合がございます。\u003c\/p\u003e\n\u003c!-- ▼ [EDIT: サイズビジュアル] 寸法イメージ画像 \u0026 サイズボタン --\u003e \u003c!-- 画像URL変更：data-image=\"...\" の中のURLを書き換え --\u003e\n\u003cdiv class=\"size-visual\"\u003e\n\u003cdiv class=\"size-visual__image\"\u003e\u003cimg id=\"sizeVisualImage\" alt=\"サイズ寸法イメージ\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"size-visual__slider-container\"\u003e\n\u003cbutton class=\"slider-arrow slider-arrow--prev\"\u003e\u003c\/button\u003e\n\u003cdiv class=\"size-visual__buttons\" id=\"sizeButtonsContainer\"\u003e\n\u003c!-- [BTN:S] data-image にSサイズの画像URLを入れる --\u003e \u003cbutton class=\"size-btn is-active\"\u003eS\u003c\/button\u003e \u003c!-- [BTN:M] data-image にMサイズの画像URLを入れる --\u003e \u003cbutton class=\"size-btn\"\u003eM\u003c\/button\u003e \u003c!-- [BTN:L] data-image にLサイズの画像URLを入れる --\u003e \u003cbutton class=\"size-btn\"\u003eL\u003c\/button\u003e \u003c!-- [BTN:XL] data-image にXLサイズの画像URLを入れる --\u003e\n\u003c\/div\u003e\n\u003cbutton class=\"slider-arrow slider-arrow--next\"\u003e\u003c\/button\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- ▲ [EDIT: サイズビジュアル] ここまで --\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- ▲ [SECTION: SIZE] ここまで --\u003e \u003c!-- ============================================================ --\u003e \u003c!-- ▼ [SECTION: DETAIL] アコーディオン「Detail」                 --\u003e \u003c!-- ============================================================ --\u003e\n\u003cdiv class=\"ProductMeta__Accordion\"\u003e\n\u003cdiv class=\"ProductMeta__AccordionHeading\"\u003e\n\u003cdiv class=\"ProductMeta__AccordionTitle\"\u003e\n\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0654\/2609\/6346\/files\/detail.png?v=1775810343\" alt=\"\" class=\"accordion-icon\"\u003e \u003cspan\u003eDetail\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"ProductMeta__AccordionContent\"\u003e\n\u003ctable\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003eブランド名\u003c\/td\u003e\n\u003ctd\u003eラコステ\u003c\/td\u003e\n\u003c!-- [VAL:ブランド名] --\u003e\n\u003c\/tr\u003e\n\u003c!-- [VAL:品番] --\u003e\n\u003ctr\u003e\n\u003ctd\u003e商品コード\u003c\/td\u003e\n\u003ctd\u003eE25A0144K\u003c\/td\u003e\n\u003c!-- [VAL:商品コード] --\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e原産国\u003c\/td\u003e\n\u003ctd\u003e日本\u003c\/td\u003e\n\u003c!-- [VAL:原産国] --\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e素材\u003c\/td\u003e\n\u003ctd\u003e綿 100%\u003c\/td\u003e\n\u003c!-- [VAL:素材] --\u003e\n\u003c\/tr\u003e\n\u003c!-- [VAL:モデル] --\u003e\n\u003c\/tbody\u003e\n\u003c\/table\u003e\n\u003c!-- ▲ [EDIT: 詳細テーブル] ここまで --\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- ▲ [SECTION: DETAIL] ここまで --\u003e \u003c!-- ============================================================ --\u003e \u003c!-- ▼ [SECTION: GALLERY] アコーディオン「Gallery」               --\u003e \u003c!-- ============================================================ --\u003e\n\u003cdiv class=\"ProductMeta__Accordion\"\u003e\n\u003cdiv class=\"ProductMeta__AccordionHeading\"\u003e\n\u003cdiv class=\"ProductMeta__AccordionTitle\"\u003e\n\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0654\/2609\/6346\/files\/gallery.svg?v=1775810342\" alt=\"\" class=\"accordion-icon\"\u003e \u003cspan\u003eGallery\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"ProductMeta__AccordionContent\"\u003e\n\u003c!-- ▼ [EDIT: ギャラリー画像] --\u003e \u003c!-- 画像追加：下記ブロックをコピーして末尾に追加し、URLとalt番号を書き換える --\u003e\n\u003cdiv class=\"gallery-grid\"\u003e\n\u003cdiv class=\"gallery-item-wrapper\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/even0260.jpg?v=1745405749\u0026amp;width=200\" class=\"gallery-item\" alt=\"Gallery 1\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"gallery-item-wrapper\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/even0264.jpg?v=1745405764\u0026amp;width=200\" class=\"gallery-item\" alt=\"Gallery 2\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"gallery-item-wrapper\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/even0261.jpg?v=1745405764\u0026amp;width=200\" class=\"gallery-item\" alt=\"Gallery 3\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"gallery-item-wrapper\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/even0262.jpg?v=1745405764\u0026amp;width=200\" class=\"gallery-item\" alt=\"Gallery 4\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"gallery-item-wrapper\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/even0263.jpg?v=1745405764\u0026amp;width=200\" class=\"gallery-item\" alt=\"Gallery 5\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- ▲ [EDIT: ギャラリー画像] ここまで --\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- ▲ [SECTION: GALLERY] ここまで --\u003e \u003c!-- ============================================================ --\u003e \u003c!-- ▼ [SECTION: SHIPPING] アコーディオン「Shipping」             --\u003e \u003c!-- ============================================================ --\u003e\n\u003cdiv class=\"ProductMeta__Accordion\"\u003e\n\u003cdiv class=\"ProductMeta__AccordionHeading\"\u003e\n\u003cdiv class=\"ProductMeta__AccordionTitle\"\u003e\n\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0654\/2609\/6346\/files\/Shipping.png?v=1775810343\" alt=\"\" class=\"accordion-icon\"\u003e \u003cspan\u003eShipping\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"ProductMeta__AccordionContent\"\u003e\n\u003cul class=\"shipping-list\"\u003e\n\u003cli\u003e￥11,000以上購入で全国送料無料\u003c\/li\u003e\n\u003cli\u003e通常3-4営業日以内に出荷いたします。\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp class=\"shipping-policy\"\u003e\u003ca href=\"https:\/\/addix.co.jp\/ec-help\/\" rel=\"noopener\" target=\"_blank\"\u003e配送ポリシーはこちら\u003c\/a\u003e\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- ▲ [SECTION: SHIPPING] ここまで --\u003e \u003c!-- ギャラリーモーダル（編集不要） --\u003e\n\u003cdiv id=\"galleryModal\" class=\"gallery-modal\"\u003e\n\u003cdiv class=\"gallery-modal__content\"\u003e\n\u003cspan class=\"gallery-modal__close\" id=\"galleryModalClose\"\u003e×\u003c\/span\u003e \u003cbutton class=\"gallery-modal__arrow gallery-modal__arrow--prev\" id=\"galleryPrevBtn\"\u003e\u003c\/button\u003e \u003cimg id=\"galleryModalImg\" alt=\"Expanded Image\"\u003e \u003cbutton class=\"gallery-modal__arrow gallery-modal__arrow--next\" id=\"galleryNextBtn\"\u003e\u003c\/button\u003e\n\u003cdiv class=\"gallery-modal__indicator\" id=\"galleryModalIndicator\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"gallery-modal__thumbnails\" id=\"galleryModalThumbnails\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cscript\u003e\n    document.addEventListener('DOMContentLoaded', function () {\n      \/\/ 1. アコーディオン開閉ロジック\n      document.querySelectorAll('.ProductMeta__Accordion').forEach(function (accordion) {\n        const heading = accordion.querySelector('.ProductMeta__AccordionHeading');\n        const content = accordion.querySelector('.ProductMeta__AccordionContent');\n        if (heading.classList.contains('c-show')) {\n          content.style.height = 'auto';\n        }\n        heading.addEventListener('click', function () {\n          const isOpen = heading.classList.contains('c-show');\n          heading.classList.toggle('c-show');\n          if (isOpen) {\n            content.style.height = content.scrollHeight + 'px';\n            setTimeout(() =\u003e { content.style.height = '0px'; }, 10);\n          } else {\n            content.style.height = content.scrollHeight + 'px';\n            content.addEventListener('transitionend', function onTransitionEnd() {\n              if (heading.classList.contains('c-show')) {\n                content.style.height = 'auto';\n              }\n              content.removeEventListener('transitionend', onTransitionEnd);\n            }, { once: true });\n          }\n        });\n      });\n      \/\/ 2. サイズ視覚イメージ \u0026 スライダー機能\n      const image = document.getElementById('sizeVisualImage');\n      const buttonsContainer = document.getElementById('sizeButtonsContainer');\n      const buttons = document.querySelectorAll('.size-btn');\n      const prevBtn = document.querySelector('.slider-arrow--prev');\n      const nextBtn = document.querySelector('.slider-arrow--next');\n      if (image \u0026\u0026 buttons.length \u003e 0) {\n        image.src = buttons[0].dataset.image;\n        buttons[0].classList.add('is-active');\n        buttons.forEach(btn =\u003e {\n          btn.addEventListener('click', () =\u003e {\n            image.src = btn.dataset.image;\n            buttons.forEach(b =\u003e b.classList.remove('is-active'));\n            btn.classList.add('is-active');\n          });\n        });\n        if (buttonsContainer \u0026\u0026 prevBtn \u0026\u0026 nextBtn) {\n          const scrollAmount = 100;\n          prevBtn.addEventListener('click', (e) =\u003e {\n            e.preventDefault();\n            buttonsContainer.scrollBy({ left: -scrollAmount, behavior: 'smooth' });\n          });\n          nextBtn.addEventListener('click', (e) =\u003e {\n            e.preventDefault();\n            buttonsContainer.scrollBy({ left: scrollAmount, behavior: 'smooth' });\n          });\n        }\n      }\n      \/\/ 3. Gallery モーダル機能\n      const galleryWrappers = document.querySelectorAll('.gallery-item-wrapper');\n      const modal = document.getElementById('galleryModal');\n      const modalImg = document.getElementById('galleryModalImg');\n      const closeBtn = document.getElementById('galleryModalClose');\n      const modalPrevBtn = document.getElementById('galleryPrevBtn');\n      const modalNextBtn = document.getElementById('galleryNextBtn');\n      const indicator = document.getElementById('galleryModalIndicator');\n      const thumbnailsContainer = document.getElementById('galleryModalThumbnails');\n      let currentGalleryIndex = 0;\n      const galleryImages = Array.from(galleryWrappers).map(wrapper =\u003e wrapper.dataset.src);\n      galleryImages.forEach((src, index) =\u003e {\n        const img = document.createElement('img');\n        img.src = src;\n        img.classList.add('gallery-modal__thumb');\n        if (index === 0) img.classList.add('is-active');\n        img.addEventListener('click', (e) =\u003e {\n          e.stopPropagation();\n          if (currentGalleryIndex !== index) {\n            const direction = index \u003e currentGalleryIndex ? 'next' : 'prev';\n            animateImageTransition(index, direction);\n          }\n        });\n        thumbnailsContainer.appendChild(img);\n      });\n      function updateModalImage(index) {\n        modalImg.src = galleryImages[index];\n        currentGalleryIndex = index;\n        if(indicator) indicator.textContent = `${index + 1} \/ ${galleryImages.length}`;\n        const thumbs = thumbnailsContainer.querySelectorAll('.gallery-modal__thumb');\n        thumbs.forEach((t, i) =\u003e {\n          if (i === index) t.classList.add('is-active');\n          else t.classList.remove('is-active');\n        });\n      }\n      let touchStartX = 0, touchStartY = 0, currentTranslateX = 0, currentTranslateY = 0;\n      let isDragging = false, isPinching = false, swipeDirection = null;\n      let initialPinchDistance = 0, currentScale = 1;\n      function getDistance(touches) {\n        return Math.hypot(touches[1].clientX - touches[0].clientX, touches[1].clientY - touches[0].clientY);\n      }\n      function animateImageTransition(newIndex, direction) {\n        const outX = direction === 'next' ? '-50px' : '50px';\n        const inX = direction === 'next' ? '50px' : '-50px';\n        modalImg.style.transform = `translate(${outX}, 0) scale(1)`;\n        modalImg.style.opacity = '0';\n        setTimeout(() =\u003e {\n          updateModalImage(newIndex);\n          modalImg.style.transition = 'none';\n          modalImg.style.transform = `translate(${inX}, 0) scale(1)`;\n          currentTranslateX = 0; currentTranslateY = 0; currentScale = 1;\n          setTimeout(() =\u003e {\n            modalImg.style.transition = 'transform 0.3s ease-out, opacity 0.3s ease';\n            modalImg.style.transform = 'translate(0, 0) scale(1)';\n            modalImg.style.opacity = '1';\n          }, 30);\n        }, 150);\n      }\n      function showNextImageFromSwipe(startX) {\n        let newIndex = currentGalleryIndex + 1;\n        if (newIndex \u003e= galleryImages.length) newIndex = 0;\n        modalImg.style.transform = `translate(${startX - 50}px, 0) scale(1)`;\n        modalImg.style.opacity = '0';\n        setTimeout(() =\u003e {\n          updateModalImage(newIndex);\n          modalImg.style.transition = 'none';\n          modalImg.style.transform = `translate(50px, 0) scale(1)`;\n          currentTranslateX = 0; currentTranslateY = 0; currentScale = 1;\n          setTimeout(() =\u003e {\n            modalImg.style.transition = 'transform 0.3s ease-out, opacity 0.3s ease';\n            modalImg.style.transform = 'translate(0, 0) scale(1)';\n            modalImg.style.opacity = '1';\n          }, 30);\n        }, 150);\n      }\n      function showPrevImageFromSwipe(startX) {\n        let newIndex = currentGalleryIndex - 1;\n        if (newIndex \u003c 0) newIndex = galleryImages.length - 1;\n        modalImg.style.transform = `translate(${startX + 50}px, 0) scale(1)`;\n        modalImg.style.opacity = '0';\n        setTimeout(() =\u003e {\n          updateModalImage(newIndex);\n          modalImg.style.transition = 'none';\n          modalImg.style.transform = `translate(-50px, 0) scale(1)`;\n          currentTranslateX = 0; currentTranslateY = 0; currentScale = 1;\n          setTimeout(() =\u003e {\n            modalImg.style.transition = 'transform 0.3s ease-out, opacity 0.3s ease';\n            modalImg.style.transform = 'translate(0, 0) scale(1)';\n            modalImg.style.opacity = '1';\n          }, 30);\n        }, 150);\n      }\n      function showPrevImage() {\n        let newIndex = currentGalleryIndex - 1;\n        if (newIndex \u003c 0) newIndex = galleryImages.length - 1;\n        animateImageTransition(newIndex, 'prev');\n      }\n      function showNextImage() {\n        let newIndex = currentGalleryIndex + 1;\n        if (newIndex \u003e= galleryImages.length) newIndex = 0;\n        animateImageTransition(newIndex, 'next');\n      }\n      function closeModal() {\n        modal.classList.remove('is-open');\n        modal.style.backgroundColor = 'rgba(0, 0, 0, 0)';\n        modalImg.style.transform = `translate(0, ${currentTranslateY}px) scale(1)`;\n        setTimeout(() =\u003e { modal.style.display = 'none'; }, 350);\n        document.body.style.overflow = '';\n      }\n      galleryWrappers.forEach((wrapper, index) =\u003e {\n        wrapper.addEventListener('click', (e) =\u003e {\n          e.preventDefault();\n          e.stopImmediatePropagation();\n          updateModalImage(index);\n          currentTranslateX = 0; currentTranslateY = 0; currentScale = 1; swipeDirection = null;\n          modal.style.backgroundColor = 'rgba(0, 0, 0, 0.85)';\n          modalImg.style.transition = 'none';\n          modalImg.style.transform = 'translate(0, 0) scale(1)';\n          modalImg.style.opacity = '1';\n          modal.style.display = 'flex';\n          setTimeout(() =\u003e {\n            modal.classList.add('is-open');\n            modalImg.style.transition = 'transform 0.3s ease-out, opacity 0.3s ease';\n          }, 10);\n          document.body.style.overflow = 'hidden';\n        }, { capture: true });\n      });\n      closeBtn.addEventListener('click', closeModal);\n      modal.addEventListener('click', (e) =\u003e {\n        if (e.target === modal || e.target === document.querySelector('.gallery-modal__content')) closeModal();\n      });\n      modalPrevBtn.addEventListener('click', (e) =\u003e { e.stopPropagation(); showPrevImage(); });\n      modalNextBtn.addEventListener('click', (e) =\u003e { e.stopPropagation(); showNextImage(); });\n      modal.addEventListener('touchstart', e =\u003e {\n        if (e.touches.length === 2) {\n          isPinching = true; isDragging = false;\n          initialPinchDistance = getDistance(e.touches);\n          modalImg.style.transition = 'none';\n        } else if (e.touches.length === 1 \u0026\u0026 !isPinching) {\n          isDragging = true; swipeDirection = null;\n          touchStartX = e.touches[0].clientX;\n          touchStartY = e.touches[0].clientY;\n          modalImg.style.transition = 'none';\n        }\n      }, { passive: false });\n      modal.addEventListener('touchmove', e =\u003e {\n        if (isPinching \u0026\u0026 e.touches.length === 2) {\n          e.preventDefault();\n          const currentDistance = getDistance(e.touches);\n          currentScale = Math.max(1, currentDistance \/ initialPinchDistance);\n          modalImg.style.transform = `translate(${currentTranslateX}px, ${currentTranslateY}px) scale(${currentScale})`;\n        } else if (isDragging \u0026\u0026 e.touches.length === 1 \u0026\u0026 currentScale === 1) {\n          const deltaX = e.touches[0].clientX - touchStartX;\n          const deltaY = e.touches[0].clientY - touchStartY;\n          if (!swipeDirection) {\n            if (Math.abs(deltaX) \u003e Math.abs(deltaY) \u0026\u0026 Math.abs(deltaX) \u003e 5) swipeDirection = 'h';\n            else if (Math.abs(deltaY) \u003e Math.abs(deltaX) \u0026\u0026 Math.abs(deltaY) \u003e 5) swipeDirection = 'v';\n          }\n          if (swipeDirection === 'h') {\n            e.preventDefault();\n            currentTranslateX = deltaX;\n            modalImg.style.transform = `translate(${currentTranslateX}px, 0) scale(1)`;\n          } else if (swipeDirection === 'v') {\n            e.preventDefault();\n            currentTranslateY = deltaY;\n            const opacity = Math.max(0, 1 - Math.abs(currentTranslateY) \/ (window.innerHeight \/ 1.5));\n            modalImg.style.transform = `translate(0, ${currentTranslateY}px) scale(1)`;\n            modal.style.backgroundColor = `rgba(0, 0, 0, ${0.85 * opacity})`;\n          }\n        }\n      }, { passive: false });\n      modal.addEventListener('touchend', e =\u003e {\n        if (isPinching \u0026\u0026 e.touches.length \u003c 2) {\n          isPinching = false; currentScale = 1;\n          modalImg.style.transition = 'transform 0.3s ease-out';\n          modalImg.style.transform = `translate(${currentTranslateX}px, ${currentTranslateY}px) scale(1)`;\n        } else if (isDragging) {\n          isDragging = false;\n          if (currentScale \u003e 1) return;\n          modalImg.style.transition = 'transform 0.3s ease-out, opacity 0.3s ease';\n          if (swipeDirection === 'h') {\n            const swipeThreshold = 50;\n            if (currentTranslateX \u003c -swipeThreshold) showNextImageFromSwipe(currentTranslateX);\n            else if (currentTranslateX \u003e swipeThreshold) showPrevImageFromSwipe(currentTranslateX);\n            else { currentTranslateX = 0; modalImg.style.transform = `translate(0, 0) scale(1)`; }\n          } else if (swipeDirection === 'v') {\n            if (currentTranslateY \u003e 100 || currentTranslateY \u003c -100) {\n              closeModal();\n            } else {\n              currentTranslateY = 0;\n              modal.style.transition = 'background-color 0.3s ease';\n              modal.style.backgroundColor = 'rgba(0, 0, 0, 0.85)';\n              modalImg.style.transform = `translate(0, 0) scale(1)`;\n            }\n          }\n          swipeDirection = null;\n        }\n      });\n      document.addEventListener('keydown', e =\u003e {\n        if (!modal.classList.contains('is-open')) return;\n        if (e.key === 'ArrowLeft') showPrevImage();\n        else if (e.key === 'ArrowRight') showNextImage();\n        else if (e.key === 'Escape') closeModal();\n      });\n    });\n  \u003c\/script\u003e\n\u003c\/div\u003e","brand":"EVEN","offers":[{"title":"WHITE \/ S","offer_id":46339702325466,"sku":"E25A0144K-10-03","price":20900.0,"currency_code":"JPY","in_stock":true},{"title":"WHITE \/ M","offer_id":46339697967322,"sku":"E25A0144K-10-04","price":20900.0,"currency_code":"JPY","in_stock":true},{"title":"WHITE \/ L","offer_id":46339698000090,"sku":"E25A0144K-10-05","price":20900.0,"currency_code":"JPY","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0654\/2609\/6346\/files\/15_38_001.png?v=1789459973"},{"product_id":"e25j0145k","title":"［EVEN × SADO 別注］Wリング シュリンクレザーベルト","description":"\u003cp\u003eダブルリングベルトにトレンドのウエスタンタイプの剣先。\u003c\/p\u003e\n\u003cp\u003e色落ちしにくいシュリンクレザーを使用し、遊び心のあるドレスカジュアルをゴルフスタイルにミックス。\u003c\/p\u003e\n\u003cp\u003e明治から続く東京下町の老舗ベルトメーカーと一から開発した、EVEN別注モデル。\u003c\/p\u003e\n\u003cp\u003eあえて長めのデザインにして、剣先は垂らした時に表面が見える仕様にこだわりました。\u003c\/p\u003e\n\u003cp\u003eコーディネートのアクセントになるスタイリングが楽しめます。\u003c\/p\u003e\n\u003cp\u003e\u0026lt;特徴\u0026gt;\u003c\/p\u003e\n\u003cp\u003e・シュリンクソフトレザー\u003cbr\u003e・幅21m\/mのナローベルト\u003cbr\u003e・無骨な金属パーツと組み合わせ（凸凹ダブルリング＆ウエスタンタイプ剣先）\u003c\/p\u003e\n\u003cp\u003e・リング通しでサイズ調整可能\u003c\/p\u003e\n\u003cp\u003eサイズ：全長 125cm　フリーサイズ（ウエスト70cm～105cm）\u003cbr\u003e素材：牛革 ・ 金属\u003cbr\u003e製造国：日本\u003c\/p\u003e\n\u003cp\u003e\u003cspan\u003eモデル身長181㎝\u003c\/span\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0654\/2609\/6346\/files\/03139199.jpg?v=1743491755\" alt=\"\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0654\/2609\/6346\/files\/03138858.jpg?v=1743491755\" alt=\"\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0654\/2609\/6346\/files\/03138867.jpg?v=1743491755\" alt=\"\"\u003e\u003cbr\u003e商品コード｜E25J0145K\u003cbr\u003e購入時納期｜3-4日\u003cbr\u003e\u003c\/p\u003e","brand":"EVEN","offers":[{"title":"BLACK \/ FREE","offer_id":46339703210202,"sku":"E25J0145K-01-00","price":11000.0,"currency_code":"JPY","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0654\/2609\/6346\/files\/even3258.jpg?v=1743491755"},{"product_id":"e25k0147k","title":"［BRIEFING GOLF別注］アジャスタブルキャップ","description":"\u003cdiv class=\"ProductMeta__Specification\"\u003e\n \n\n \u003cstyle\u003e\n    \/* ========== ベーススタイル ========== *\/\n    .ProductMeta__Specification {\n      font-family: \"hiraginoW3\", Arial, sans-serif;\n    }\n    .ProductMeta__Accordion {\n      border-top: 1px solid #e5e5e5;\n    }\n    .ProductMeta__Accordion:last-child {\n      border-bottom: 1px solid #e5e5e5;\n    }\n    .ProductMeta__AccordionHeading {\n      cursor: pointer;\n      padding: 16px 0;\n      font-weight: bold;\n      position: relative;\n      display: flex;\n      justify-content: space-between;\n      align-items: center;\n    }\n    .ProductMeta__AccordionHeading::after {\n      content: \"+\";\n      font-weight: normal;\n      font-size: 16px;\n    }\n    .ProductMeta__AccordionHeading.c-show::after {\n      content: \"−\";\n    }\n    .ProductMeta__AccordionTitle {\n      display: flex;\n      align-items: center;\n      gap: 12px;\n    }\n    .accordion-icon {\n      width: 18px;\n      height: 18px;\n      object-fit: contain;\n      display: block;\n    }\n    .accordion-icon--description {\n      width: 15px;\n      height: 15px;\n    }\n    .ProductMeta__AccordionContent {\n      overflow: hidden;\n      height: 0;\n      transition: height 0.35s ease;\n      padding-bottom: 0;\n    }\n    \/* ========== テーブル共通設定 ========== *\/\n    .ProductMeta__AccordionContent table {\n      width: 100%;\n      border-collapse: collapse;\n      margin-bottom: 16px;\n    }\n    .ProductMeta__AccordionContent th,\n    .ProductMeta__AccordionContent td {\n      border: 1px solid #ddd;\n      padding: 8px;\n      font-size: 11px;\n    }\n    .ProductMeta__AccordionContent table:not(.size-table) td {\n      text-align: left;\n    }\n    .ProductMeta__AccordionContent table:not(.size-table) td:first-child {\n      width: 30%;\n      color: #666;\n      border-right: none;\n    }\n    .ProductMeta__AccordionContent table:not(.size-table) td:last-child {\n      border-left: none;\n    }\n    .size-table {\n      width: 100%;\n      border-collapse: collapse;\n      margin-top: 12px;\n      font-size: 10px;\n    }\n    .size-table thead th {\n      background: #f5f5f5;\n      font-weight: 600;\n      border: 1px solid #ddd;\n      padding: 10px 8px;\n    }\n    .size-table tbody th {\n      background: #fafafa;\n      font-weight: 600;\n      border: 1px solid #ddd;\n      padding: 10px 8px;\n    }\n    .size-table tbody td {\n      border: 1px solid #ddd;\n      padding: 10px 8px;\n    }\n    .size-table th, .size-table td {\n      text-align: center;\n    }\n    .size-note {\n      font-size: 12px;\n      color: #666;\n      margin-top: 8px;\n      line-height: 1.6;\n    }\n    \/* ========== スクロールエリア ========== *\/\n    .accordion-scroll-area {\n      max-height: 160px;\n      overflow-y: auto;\n      padding-right: 8px;\n      margin-bottom: 16px;\n    }\n    .accordion-scroll-area::-webkit-scrollbar { width: 4px; }\n    .accordion-scroll-area::-webkit-scrollbar-track { background: #f5f5f5; border-radius: 4px; }\n    .accordion-scroll-area::-webkit-scrollbar-thumb { background: #ccc; border-radius: 4px; }\n    \/* ========== テキストスタイル ========== *\/\n    .ProductMeta__AccordionContent p,\n    .ProductMeta__AccordionContent li {\n      font-size: 12px;\n      line-height: 1.8;\n    }\n    .accordion-description .ProductMeta__AccordionContent p {\n      font-size: 12px;\n      font-weight: 300;\n      line-height: 2;\n      letter-spacing: 0.06em;\n      text-align: left;\n      margin: 0;\n    }\n    .accordion-description .ProductMeta__AccordionContent p + p {\n      margin-top: 12px;\n    }\n    \/* ========== サイズ視覚イメージ \u0026 スライダー ========== *\/\n    .size-visual {\n      margin-top: 24px;\n      margin-bottom: 24px;\n    }\n    .size-visual__image {\n      max-width: 55%;\n      margin: 0 auto;\n    }\n    .size-visual__image img {\n      width: 100%;\n      height: auto;\n      display: block;\n    }\n    .size-visual__slider-container {\n      position: relative;\n      margin-top: 16px;\n      padding: 0 30px;\n      display: flex;\n      align-items: center;\n    }\n    .size-visual__buttons {\n      display: flex;\n      gap: 8px;\n      overflow-x: auto;\n      scroll-behavior: smooth;\n      width: 100%;\n      -ms-overflow-style: none;\n      scrollbar-width: none;\n    }\n    .size-visual__buttons::-webkit-scrollbar { display: none; }\n    .size-btn {\n      flex: 0 0 28%;\n      padding: 12px 0;\n      font-size: 12px;\n      border: 1px solid #ddd;\n      background: #fff;\n      cursor: pointer;\n      white-space: nowrap;\n      transition: background 0.2s, color 0.2s;\n    }\n    .size-btn.is-active {\n      background: #111;\n      color: #fff;\n      border-color: #111;\n    }\n    .slider-arrow {\n      position: absolute;\n      top: 50%;\n      transform: translateY(-50%);\n      width: 30px;\n      height: 100%;\n      background: transparent;\n      border: none;\n      cursor: pointer;\n      z-index: 2;\n      padding: 0;\n      display: flex;\n      align-items: center;\n      justify-content: center;\n    }\n    .slider-arrow--prev { left: -5px; }\n    .slider-arrow--next { right: -5px; }\n    .slider-arrow::before {\n      content: '';\n      display: block;\n      width: 10px;\n      height: 10px;\n      border-top: 2px solid #333;\n      border-right: 2px solid #333;\n    }\n    .slider-arrow--prev::before { transform: rotate(-135deg); }\n    .slider-arrow--next::before { transform: rotate(45deg); }\n    .slider-arrow:focus { outline: none; }\n    \/* ========== Gallery グリッド設定 ========== *\/\n    .gallery-grid {\n      display: grid;\n      grid-template-columns: repeat(4, 1fr);\n      gap: 8px;\n      margin-bottom: 16px;\n    }\n    .gallery-item-wrapper {\n      width: 100%;\n      display: block;\n      cursor: pointer;\n      transition: opacity 0.2s ease;\n      -webkit-tap-highlight-color: transparent;\n    }\n    .gallery-item-wrapper:hover { opacity: 0.7; }\n    .gallery-item {\n      width: 100%;\n      height: auto;\n      display: block;\n      object-fit: cover;\n      aspect-ratio: 3 \/ 4;\n      pointer-events: none;\n    }\n    \/* ========== ギャラリーモーダル ========== *\/\n    .gallery-modal {\n      display: none;\n      position: fixed;\n      z-index: 999999;\n      left: 0;\n      top: 0;\n      width: 100%;\n      height: 100%;\n      background-color: rgba(0, 0, 0, 0.85);\n      opacity: 0;\n      transition: opacity 0.35s ease, background-color 0.3s ease;\n      touch-action: none;\n    }\n    .gallery-modal.is-open {\n      display: flex;\n      opacity: 1;\n      justify-content: center;\n      align-items: center;\n    }\n    .gallery-modal__content {\n      position: relative;\n      display: inline-flex;\n      justify-content: center;\n      align-items: center;\n      width: auto;\n      height: auto;\n    }\n    #galleryModalImg {\n      max-height: 85vh;\n      max-width: calc(100vw - 160px);\n      width: auto;\n      height: auto;\n      display: block;\n      user-select: none;\n      transform: translate(0, 0) scale(1);\n      transition: transform 0.3s ease-out, opacity 0.3s ease;\n      box-shadow: 0 10px 40px rgba(0,0,0,0.3);\n    }\n    .gallery-modal__indicator {\n      position: absolute;\n      bottom: 20px;\n      left: 50%;\n      transform: translateX(-50%);\n      color: #fff;\n      font-size: 14px;\n      font-family: \"futura\", Arial, sans-serif;\n      letter-spacing: 0.15em;\n      z-index: 1000000;\n      text-shadow: 0 2px 6px rgba(0,0,0,0.8);\n      font-weight: 400;\n      pointer-events: none;\n    }\n    .gallery-modal__thumbnails {\n      position: absolute;\n      bottom: 24px;\n      left: 50%;\n      transform: translateX(-50%);\n      display: flex;\n      gap: 8px;\n      z-index: 1000000;\n    }\n    .gallery-modal__thumb {\n      width: 48px;\n      height: 48px;\n      object-fit: cover;\n      cursor: pointer;\n      border: 2px solid transparent;\n      border-radius: 4px;\n      opacity: 0.5;\n      transition: all 0.2s ease;\n      box-shadow: 0 2px 4px rgba(0,0,0,0.5);\n    }\n    .gallery-modal__thumb:hover { opacity: 0.8; }\n    .gallery-modal__thumb.is-active { border-color: #fff; opacity: 1; }\n    .gallery-modal__close {\n      position: absolute;\n      top: 16px;\n      right: 16px;\n      color: #fff;\n      font-size: 44px;\n      font-weight: 200;\n      cursor: pointer;\n      z-index: 1000000;\n      line-height: 1;\n      user-select: none;\n      transition: opacity 0.2s;\n      text-shadow: 0 2px 6px rgba(0,0,0,0.5);\n    }\n    .gallery-modal__close:hover { opacity: 0.7; }\n    .gallery-modal__arrow {\n      position: absolute;\n      top: 50%;\n      transform: translateY(-50%);\n      background: transparent;\n      border: none;\n      cursor: pointer;\n      padding: 20px;\n      z-index: 1000000;\n      display: flex;\n      align-items: center;\n      justify-content: center;\n      filter: drop-shadow(0 2px 4px rgba(0,0,0,0.5));\n    }\n    .gallery-modal__arrow--prev { left: -70px; }\n    .gallery-modal__arrow--next { right: -70px; }\n    .gallery-modal__arrow::before {\n      content: '';\n      display: block;\n      width: 26px;\n      height: 26px;\n      border-top: 3px solid #fff;\n      border-right: 3px solid #fff;\n    }\n    .gallery-modal__arrow--prev::before { transform: rotate(-135deg); }\n    .gallery-modal__arrow--next::before { transform: rotate(45deg); }\n    \/* ========== SP用調整 ========== *\/\n    @media screen and (max-width: 768px) {\n      .ProductMeta__AccordionContent { padding-bottom: 0 !important; }\n      .size-visual { margin-top: 16px; margin-bottom: 20px; }\n      .size-visual__image { max-width: 100%; }\n      .size-visual__slider-container { padding: 0 24px; }\n      .slider-arrow { width: 24px; }\n      .slider-arrow--prev { left: 0; }\n      .slider-arrow--next { right: 0; }\n      .gallery-grid { grid-template-columns: repeat(2, 1fr); gap: 4px; }\n      #galleryModalImg { max-width: 100vw; max-height: 80vh; }\n      .gallery-modal__thumbnails { bottom: 20px; }\n      .gallery-modal__thumb { width: 40px; height: 40px; }\n      .gallery-modal__close { top: 16px; right: 16px; font-size: 40px; }\n      .gallery-modal__arrow { padding: 15px; }\n      .gallery-modal__arrow--prev { left: 0; }\n      .gallery-modal__arrow--next { right: 0; }\n    }\n  \u003c\/style\u003e\n\n\n\n  \n\n\u003c!-- ============================================================ --\u003e\n  \u003c!-- ▼ [SECTION: DESCRIPTION] アコーディオン「Description」       --\u003e\n  \u003c!-- ============================================================ --\u003e\n  \u003cdiv class=\"ProductMeta__Accordion accordion-description\"\u003e\n    \u003cdiv class=\"ProductMeta__AccordionHeading c-show\"\u003e\n      \u003cdiv class=\"ProductMeta__AccordionTitle\"\u003e\n        \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0654\/2609\/6346\/files\/description.png?v=1775810343\" alt=\"\" class=\"accordion-icon accordion-icon--description\"\u003e\n        \u003cspan\u003eDescription\u003c\/span\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"ProductMeta__AccordionContent\"\u003e\n      \u003cdiv class=\"accordion-scroll-area\"\u003e\n\n        \u003c!-- ▼ [EDIT: 商品説明] ここから〜ここまでが商品説明テキスト --\u003e\n\u003cp\u003eEVEN創刊200号を記念して作成したキャップ。\u003cbr\u003eハイネックシャツとトーンを合わせたグレーのロゴ刺繡を施しました。\u003cbr\u003eダブルネームの特別仕様ピスネームを挟み込み、バックのサイズアジャスター部分にはロゴテープを配しました。\u003c\/p\u003e\n\u003cp\u003eバックに搭載したアジャスターは、フィット感を調整できるベルクロ仕様。　\u003c\/p\u003e\n\u003cbr\u003e\n        \u003c!-- ▲ [EDIT: 商品説明] ここまで --\u003e\n\n        \u003c!-- ▼ [EDIT: ブランド説明] ここから〜ここまでがブランド説明テキスト --\u003e\n          \u003cp\u003e【BRIEFING GOLF】\u003cbr\u003eミリタリズムをベースにした機能美と都会的なデザインを融合させた、人気ラゲッジブランド「BRIEFING」のゴルフラインです。「URBAN GOLF」をコンセプトに、タフな素材や優れた機能性を備えたウェアやキャディバッグを展開しています。\u003c\/p\u003e\n        \n        \u003c!-- ▲ [EDIT: ブランド説明] ここまで --\u003e\n\n      \n\n\u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003c!-- ▲ [SECTION: DESCRIPTION] ここまで --\u003e\n\n  \u003c!-- ============================================================ --\u003e\n  \u003c!-- ▼ [SECTION: SIZE] アコーディオン「Size」                     --\u003e\n  \u003c!-- ============================================================ --\u003e\n  \u003cdiv class=\"ProductMeta__Accordion\"\u003e\n    \u003cdiv class=\"ProductMeta__AccordionHeading\"\u003e\n      \u003cdiv class=\"ProductMeta__AccordionTitle\"\u003e\n        \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0654\/2609\/6346\/files\/size.png?v=1775810343\" alt=\"\" class=\"accordion-icon\"\u003e\n        \u003cspan\u003eSize\u003c\/span\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"ProductMeta__AccordionContent\"\u003e\n      \u003c!-- ▼ [EDIT: サイズテーブル] 採寸表 --\u003e\n\u003ctable class=\"size-table\"\u003e\n  \u003cthead\u003e\n    \u003ctr\u003e\n      \u003cth\u003eSIZE\u003c\/th\u003e\n      \u003cth\u003e頭回り\u003c\/th\u003e\n      \u003cth\u003e高さ\u003c\/th\u003e\n      \u003cth\u003eツバ\u003c\/th\u003e\n    \u003c\/tr\u003e\n  \u003c\/thead\u003e\n  \u003ctbody\u003e\n    \u003ctr\u003e\n      \u003cth\u003eF\u003c\/th\u003e\n      \u003ctd\u003e58～60cm\u003c\/td\u003e\n      \u003ctd\u003e11cm\u003c\/td\u003e\n      \u003ctd\u003e6.5cm\u003c\/td\u003e\n    \u003c\/tr\u003e\n  \u003c\/tbody\u003e\n\u003c\/table\u003e\n      \u003c!-- ▲ [EDIT: サイズテーブル] ここまで --\u003e\n      \u003cp class=\"size-note\"\u003e\n        ※ 表記サイズは目安となります。\u003cbr\u003e\n        ※ 採寸方法により多少の誤差が生じる場合がございます。\n      \u003c\/p\u003e\n    \u003c\/div\u003e\n\n  \u003c!-- ============================================================ --\u003e\n  \u003c!-- ▼ [SECTION: DETAIL] アコーディオン「Detail」                 --\u003e\n  \u003c!-- ============================================================ --\u003e\n  \u003cdiv class=\"ProductMeta__Accordion\"\u003e\n    \u003cdiv class=\"ProductMeta__AccordionHeading\"\u003e\n      \u003cdiv class=\"ProductMeta__AccordionTitle\"\u003e\n        \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0654\/2609\/6346\/files\/detail.png?v=1775810343\" alt=\"\" class=\"accordion-icon\"\u003e\n        \u003cspan\u003eDetail\u003c\/span\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"ProductMeta__AccordionContent\"\u003e\n\n      \u003c!-- ▼ [EDIT: 詳細テーブル] 各行の右側（2列目の\u003ctd\u003e）が編集対象 --\u003e\n      \u003ctable\u003e\n        \u003ctbody\u003e\n          \u003ctr\u003e\n            \u003ctd\u003eブランド名\u003c\/td\u003e\n            \u003ctd\u003eBRIEFING GOLF\u003c\/td\u003e\n\u003c!-- [VAL:ブランド名] --\u003e\n          \u003c\/tr\u003e\n\n\u003c!-- [VAL:品番] --\u003e\n          \u003ctr\u003e\n            \u003ctd\u003e商品コード\u003c\/td\u003e\n            \u003ctd\u003eE25K0147K\u003c\/td\u003e\n\u003c!-- [VAL:商品コード] --\u003e\n          \u003c\/tr\u003e\n          \u003ctr\u003e\n            \u003ctd\u003e原産国\u003c\/td\u003e\n            \u003ctd\u003eベトナム\u003c\/td\u003e\n\u003c!-- [VAL:原産国] --\u003e\n          \u003c\/tr\u003e\n          \u003ctr\u003e\n            \u003ctd\u003e素材\u003c\/td\u003e\n            \u003ctd\u003eポリエステル 65% コットン35%\u003c\/td\u003e\n\u003c!-- [VAL:素材] --\u003e\n          \u003c\/tr\u003e\n\u003c!-- [VAL:モデル] --\u003e\n  \u003ctr\u003e\n            \u003ctd\u003eモデル\u003c\/td\u003e\n            \u003ctd\u003e181cm\u003c\/td\u003e\n          \u003c\/tr\u003e\n\n\n        \u003c\/tbody\u003e\n      \u003c\/table\u003e\n      \u003c!-- ▲ [EDIT: 詳細テーブル] ここまで --\u003e\n\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003c!-- ▲ [SECTION: DETAIL] ここまで --\u003e\n\n  \u003c!-- ============================================================ --\u003e\n  \u003c!-- ▼ [SECTION: GALLERY] アコーディオン「Gallery」               --\u003e\n  \u003c!-- ============================================================ --\u003e\n  \u003cdiv class=\"ProductMeta__Accordion\"\u003e\n    \u003cdiv class=\"ProductMeta__AccordionHeading\"\u003e\n      \u003cdiv class=\"ProductMeta__AccordionTitle\"\u003e\n        \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0654\/2609\/6346\/files\/gallery.svg?v=1775810342\" alt=\"\" class=\"accordion-icon\"\u003e\n        \u003cspan\u003eGallery\u003c\/span\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"ProductMeta__AccordionContent\"\u003e\n\n      \u003c!-- ▼ [EDIT: ギャラリー画像] --\u003e\n      \u003c!-- 画像追加：下記ブロックをコピーして末尾に追加し、URLとalt番号を書き換える --\u003e\n      \u003c!--\n      \u003cdiv class=\"gallery-item-wrapper\" data-src=\"【画像URL】\"\u003e\n        \u003cimg src=\"【画像URL】\" class=\"gallery-item\" alt=\"Gallery 【番号】\"\u003e\n      \u003c\/div\u003e\n      --\u003e\n      \u003cdiv class=\"gallery-grid\"\u003e\n\u003cdiv class=\"gallery-item-wrapper\" data-src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DNP-even3227_k_0327.jpg?v=1743492815\u0026amp;width=700\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DNP-even3227_k_0327.jpg?v=1743492815\u0026amp;width=700\" class=\"gallery-item\" alt=\"Gallery 1\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"gallery-item-wrapper\" data-src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/IMG_0948.jpg?v=1743804880\u0026amp;width=200\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/IMG_0948.jpg?v=1743804880\u0026amp;width=200\" class=\"gallery-item\" alt=\"Gallery 2\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"gallery-item-wrapper\" data-src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DNP-03139064_0327_83fe080a-29c2-4071-bdce-473ef8d5d1c3.jpg?v=1743492815\u0026amp;width=700\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DNP-03139064_0327_83fe080a-29c2-4071-bdce-473ef8d5d1c3.jpg?v=1743492815\u0026amp;width=700\" class=\"gallery-item\" alt=\"Gallery 3\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"gallery-item-wrapper\" data-src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DNP-03139054_0327_5d0ecb45-e897-4546-a017-9ade172524be.jpg?v=1743492814\u0026amp;width=700\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DNP-03139054_0327_5d0ecb45-e897-4546-a017-9ade172524be.jpg?v=1743492814\u0026amp;width=700\" class=\"gallery-item\" alt=\"Gallery 4\"\u003e\u003c\/div\u003e\n\n  \n      \u003c\/div\u003e\n      \u003c!-- ▲ [EDIT: ギャラリー画像] ここまで --\u003e\n\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003c!-- ▲ [SECTION: GALLERY] ここまで --\u003e\n\n  \u003c!-- ============================================================ --\u003e\n  \u003c!-- ▼ [SECTION: SHIPPING] アコーディオン「Shipping」             --\u003e\n  \u003c!-- ============================================================ --\u003e\n  \u003cdiv class=\"ProductMeta__Accordion\"\u003e\n    \u003cdiv class=\"ProductMeta__AccordionHeading\"\u003e\n      \u003cdiv class=\"ProductMeta__AccordionTitle\"\u003e\n        \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0654\/2609\/6346\/files\/Shipping.png?v=1775810343\" alt=\"\" class=\"accordion-icon\"\u003e\n        \u003cspan\u003eShipping\u003c\/span\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"ProductMeta__AccordionContent\"\u003e\n      \u003cul class=\"shipping-list\"\u003e\n        \u003cli\u003e￥11,000以上購入で全国送料無料\u003c\/li\u003e\n        \u003cli\u003e通常3-4営業日以内に出荷いたします。\u003c\/li\u003e\n      \u003c\/ul\u003e\n      \u003cp class=\"shipping-policy\"\u003e\n        \u003ca href=\"https:\/\/addix.co.jp\/ec-help\/\" target=\"_blank\" rel=\"noopener\"\u003e配送ポリシーはこちら\u003c\/a\u003e\n      \u003c\/p\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003c!-- ▲ [SECTION: SHIPPING] ここまで --\u003e\n\n  \u003c!-- ギャラリーモーダル（編集不要） --\u003e\n  \u003cdiv id=\"galleryModal\" class=\"gallery-modal\"\u003e\n    \u003cdiv class=\"gallery-modal__content\"\u003e\n      \u003cspan class=\"gallery-modal__close\" id=\"galleryModalClose\"\u003e×\u003c\/span\u003e\n      \u003cbutton class=\"gallery-modal__arrow gallery-modal__arrow--prev\" id=\"galleryPrevBtn\"\u003e\u003c\/button\u003e\n      \u003cimg id=\"galleryModalImg\" src=\"\" alt=\"Expanded Image\"\u003e\n      \u003cbutton class=\"gallery-modal__arrow gallery-modal__arrow--next\" id=\"galleryNextBtn\"\u003e\u003c\/button\u003e\n      \u003cdiv class=\"gallery-modal__indicator\" id=\"galleryModalIndicator\"\u003e\u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"gallery-modal__thumbnails\" id=\"galleryModalThumbnails\"\u003e\u003c\/div\u003e\n  \u003c\/div\u003e\n\n\n\n  \n\n\u003cscript\u003e\n    document.addEventListener('DOMContentLoaded', function () {\n      \/\/ 1. アコーディオン開閉ロジック\n      document.querySelectorAll('.ProductMeta__Accordion').forEach(function (accordion) {\n        const heading = accordion.querySelector('.ProductMeta__AccordionHeading');\n        const content = accordion.querySelector('.ProductMeta__AccordionContent');\n        if (heading.classList.contains('c-show')) {\n          content.style.height = 'auto';\n        }\n        heading.addEventListener('click', function () {\n          const isOpen = heading.classList.contains('c-show');\n          heading.classList.toggle('c-show');\n          if (isOpen) {\n            content.style.height = content.scrollHeight + 'px';\n            setTimeout(() =\u003e { content.style.height = '0px'; }, 10);\n          } else {\n            content.style.height = content.scrollHeight + 'px';\n            content.addEventListener('transitionend', function onTransitionEnd() {\n              if (heading.classList.contains('c-show')) {\n                content.style.height = 'auto';\n              }\n              content.removeEventListener('transitionend', onTransitionEnd);\n            }, { once: true });\n          }\n        });\n      });\n      \/\/ 2. サイズ視覚イメージ \u0026 スライダー機能\n      const image = document.getElementById('sizeVisualImage');\n      const buttonsContainer = document.getElementById('sizeButtonsContainer');\n      const buttons = document.querySelectorAll('.size-btn');\n      const prevBtn = document.querySelector('.slider-arrow--prev');\n      const nextBtn = document.querySelector('.slider-arrow--next');\n      if (image \u0026\u0026 buttons.length \u003e 0) {\n        image.src = buttons[0].dataset.image;\n        buttons[0].classList.add('is-active');\n        buttons.forEach(btn =\u003e {\n          btn.addEventListener('click', () =\u003e {\n            image.src = btn.dataset.image;\n            buttons.forEach(b =\u003e b.classList.remove('is-active'));\n            btn.classList.add('is-active');\n          });\n        });\n        if (buttonsContainer \u0026\u0026 prevBtn \u0026\u0026 nextBtn) {\n          const scrollAmount = 100;\n          prevBtn.addEventListener('click', (e) =\u003e {\n            e.preventDefault();\n            buttonsContainer.scrollBy({ left: -scrollAmount, behavior: 'smooth' });\n          });\n          nextBtn.addEventListener('click', (e) =\u003e {\n            e.preventDefault();\n            buttonsContainer.scrollBy({ left: scrollAmount, behavior: 'smooth' });\n          });\n        }\n      }\n      \/\/ 3. Gallery モーダル機能\n      const galleryWrappers = document.querySelectorAll('.gallery-item-wrapper');\n      const modal = document.getElementById('galleryModal');\n      const modalImg = document.getElementById('galleryModalImg');\n      const closeBtn = document.getElementById('galleryModalClose');\n      const modalPrevBtn = document.getElementById('galleryPrevBtn');\n      const modalNextBtn = document.getElementById('galleryNextBtn');\n      const indicator = document.getElementById('galleryModalIndicator');\n      const thumbnailsContainer = document.getElementById('galleryModalThumbnails');\n      let currentGalleryIndex = 0;\n      const galleryImages = Array.from(galleryWrappers).map(wrapper =\u003e wrapper.dataset.src);\n      galleryImages.forEach((src, index) =\u003e {\n        const img = document.createElement('img');\n        img.src = src;\n        img.classList.add('gallery-modal__thumb');\n        if (index === 0) img.classList.add('is-active');\n        img.addEventListener('click', (e) =\u003e {\n          e.stopPropagation();\n          if (currentGalleryIndex !== index) {\n            const direction = index \u003e currentGalleryIndex ? 'next' : 'prev';\n            animateImageTransition(index, direction);\n          }\n        });\n        thumbnailsContainer.appendChild(img);\n      });\n      function updateModalImage(index) {\n        modalImg.src = galleryImages[index];\n        currentGalleryIndex = index;\n        if(indicator) indicator.textContent = `${index + 1} \/ ${galleryImages.length}`;\n        const thumbs = thumbnailsContainer.querySelectorAll('.gallery-modal__thumb');\n        thumbs.forEach((t, i) =\u003e {\n          if (i === index) t.classList.add('is-active');\n          else t.classList.remove('is-active');\n        });\n      }\n      let touchStartX = 0, touchStartY = 0, currentTranslateX = 0, currentTranslateY = 0;\n      let isDragging = false, isPinching = false, swipeDirection = null;\n      let initialPinchDistance = 0, currentScale = 1;\n      function getDistance(touches) {\n        return Math.hypot(touches[1].clientX - touches[0].clientX, touches[1].clientY - touches[0].clientY);\n      }\n      function animateImageTransition(newIndex, direction) {\n        const outX = direction === 'next' ? '-50px' : '50px';\n        const inX = direction === 'next' ? '50px' : '-50px';\n        modalImg.style.transform = `translate(${outX}, 0) scale(1)`;\n        modalImg.style.opacity = '0';\n        setTimeout(() =\u003e {\n          updateModalImage(newIndex);\n          modalImg.style.transition = 'none';\n          modalImg.style.transform = `translate(${inX}, 0) scale(1)`;\n          currentTranslateX = 0; currentTranslateY = 0; currentScale = 1;\n          setTimeout(() =\u003e {\n            modalImg.style.transition = 'transform 0.3s ease-out, opacity 0.3s ease';\n            modalImg.style.transform = 'translate(0, 0) scale(1)';\n            modalImg.style.opacity = '1';\n          }, 30);\n        }, 150);\n      }\n      function showNextImageFromSwipe(startX) {\n        let newIndex = currentGalleryIndex + 1;\n        if (newIndex \u003e= galleryImages.length) newIndex = 0;\n        modalImg.style.transform = `translate(${startX - 50}px, 0) scale(1)`;\n        modalImg.style.opacity = '0';\n        setTimeout(() =\u003e {\n          updateModalImage(newIndex);\n          modalImg.style.transition = 'none';\n          modalImg.style.transform = `translate(50px, 0) scale(1)`;\n          currentTranslateX = 0; currentTranslateY = 0; currentScale = 1;\n          setTimeout(() =\u003e {\n            modalImg.style.transition = 'transform 0.3s ease-out, opacity 0.3s ease';\n            modalImg.style.transform = 'translate(0, 0) scale(1)';\n            modalImg.style.opacity = '1';\n          }, 30);\n        }, 150);\n      }\n      function showPrevImageFromSwipe(startX) {\n        let newIndex = currentGalleryIndex - 1;\n        if (newIndex \u003c 0) newIndex = galleryImages.length - 1;\n        modalImg.style.transform = `translate(${startX + 50}px, 0) scale(1)`;\n        modalImg.style.opacity = '0';\n        setTimeout(() =\u003e {\n          updateModalImage(newIndex);\n          modalImg.style.transition = 'none';\n          modalImg.style.transform = `translate(-50px, 0) scale(1)`;\n          currentTranslateX = 0; currentTranslateY = 0; currentScale = 1;\n          setTimeout(() =\u003e {\n            modalImg.style.transition = 'transform 0.3s ease-out, opacity 0.3s ease';\n            modalImg.style.transform = 'translate(0, 0) scale(1)';\n            modalImg.style.opacity = '1';\n          }, 30);\n        }, 150);\n      }\n      function showPrevImage() {\n        let newIndex = currentGalleryIndex - 1;\n        if (newIndex \u003c 0) newIndex = galleryImages.length - 1;\n        animateImageTransition(newIndex, 'prev');\n      }\n      function showNextImage() {\n        let newIndex = currentGalleryIndex + 1;\n        if (newIndex \u003e= galleryImages.length) newIndex = 0;\n        animateImageTransition(newIndex, 'next');\n      }\n      function closeModal() {\n        modal.classList.remove('is-open');\n        modal.style.backgroundColor = 'rgba(0, 0, 0, 0)';\n        modalImg.style.transform = `translate(0, ${currentTranslateY}px) scale(1)`;\n        setTimeout(() =\u003e { modal.style.display = 'none'; }, 350);\n        document.body.style.overflow = '';\n      }\n      galleryWrappers.forEach((wrapper, index) =\u003e {\n        wrapper.addEventListener('click', (e) =\u003e {\n          e.preventDefault();\n          e.stopImmediatePropagation();\n          updateModalImage(index);\n          currentTranslateX = 0; currentTranslateY = 0; currentScale = 1; swipeDirection = null;\n          modal.style.backgroundColor = 'rgba(0, 0, 0, 0.85)';\n          modalImg.style.transition = 'none';\n          modalImg.style.transform = 'translate(0, 0) scale(1)';\n          modalImg.style.opacity = '1';\n          modal.style.display = 'flex';\n          setTimeout(() =\u003e {\n            modal.classList.add('is-open');\n            modalImg.style.transition = 'transform 0.3s ease-out, opacity 0.3s ease';\n          }, 10);\n          document.body.style.overflow = 'hidden';\n        }, { capture: true });\n      });\n      closeBtn.addEventListener('click', closeModal);\n      modal.addEventListener('click', (e) =\u003e {\n        if (e.target === modal || e.target === document.querySelector('.gallery-modal__content')) closeModal();\n      });\n      modalPrevBtn.addEventListener('click', (e) =\u003e { e.stopPropagation(); showPrevImage(); });\n      modalNextBtn.addEventListener('click', (e) =\u003e { e.stopPropagation(); showNextImage(); });\n      modal.addEventListener('touchstart', e =\u003e {\n        if (e.touches.length === 2) {\n          isPinching = true; isDragging = false;\n          initialPinchDistance = getDistance(e.touches);\n          modalImg.style.transition = 'none';\n        } else if (e.touches.length === 1 \u0026\u0026 !isPinching) {\n          isDragging = true; swipeDirection = null;\n          touchStartX = e.touches[0].clientX;\n          touchStartY = e.touches[0].clientY;\n          modalImg.style.transition = 'none';\n        }\n      }, { passive: false });\n      modal.addEventListener('touchmove', e =\u003e {\n        if (isPinching \u0026\u0026 e.touches.length === 2) {\n          e.preventDefault();\n          const currentDistance = getDistance(e.touches);\n          currentScale = Math.max(1, currentDistance \/ initialPinchDistance);\n          modalImg.style.transform = `translate(${currentTranslateX}px, ${currentTranslateY}px) scale(${currentScale})`;\n        } else if (isDragging \u0026\u0026 e.touches.length === 1 \u0026\u0026 currentScale === 1) {\n          const deltaX = e.touches[0].clientX - touchStartX;\n          const deltaY = e.touches[0].clientY - touchStartY;\n          if (!swipeDirection) {\n            if (Math.abs(deltaX) \u003e Math.abs(deltaY) \u0026\u0026 Math.abs(deltaX) \u003e 5) swipeDirection = 'h';\n            else if (Math.abs(deltaY) \u003e Math.abs(deltaX) \u0026\u0026 Math.abs(deltaY) \u003e 5) swipeDirection = 'v';\n          }\n          if (swipeDirection === 'h') {\n            e.preventDefault();\n            currentTranslateX = deltaX;\n            modalImg.style.transform = `translate(${currentTranslateX}px, 0) scale(1)`;\n          } else if (swipeDirection === 'v') {\n            e.preventDefault();\n            currentTranslateY = deltaY;\n            const opacity = Math.max(0, 1 - Math.abs(currentTranslateY) \/ (window.innerHeight \/ 1.5));\n            modalImg.style.transform = `translate(0, ${currentTranslateY}px) scale(1)`;\n            modal.style.backgroundColor = `rgba(0, 0, 0, ${0.85 * opacity})`;\n          }\n        }\n      }, { passive: false });\n      modal.addEventListener('touchend', e =\u003e {\n        if (isPinching \u0026\u0026 e.touches.length \u003c 2) {\n          isPinching = false; currentScale = 1;\n          modalImg.style.transition = 'transform 0.3s ease-out';\n          modalImg.style.transform = `translate(${currentTranslateX}px, ${currentTranslateY}px) scale(1)`;\n        } else if (isDragging) {\n          isDragging = false;\n          if (currentScale \u003e 1) return;\n          modalImg.style.transition = 'transform 0.3s ease-out, opacity 0.3s ease';\n          if (swipeDirection === 'h') {\n            const swipeThreshold = 50;\n            if (currentTranslateX \u003c -swipeThreshold) showNextImageFromSwipe(currentTranslateX);\n            else if (currentTranslateX \u003e swipeThreshold) showPrevImageFromSwipe(currentTranslateX);\n            else { currentTranslateX = 0; modalImg.style.transform = `translate(0, 0) scale(1)`; }\n          } else if (swipeDirection === 'v') {\n            if (currentTranslateY \u003e 100 || currentTranslateY \u003c -100) {\n              closeModal();\n            } else {\n              currentTranslateY = 0;\n              modal.style.transition = 'background-color 0.3s ease';\n              modal.style.backgroundColor = 'rgba(0, 0, 0, 0.85)';\n              modalImg.style.transform = `translate(0, 0) scale(1)`;\n            }\n          }\n          swipeDirection = null;\n        }\n      });\n      document.addEventListener('keydown', e =\u003e {\n        if (!modal.classList.contains('is-open')) return;\n        if (e.key === 'ArrowLeft') showPrevImage();\n        else if (e.key === 'ArrowRight') showNextImage();\n        else if (e.key === 'Escape') closeModal();\n      });\n    });\n  \u003c\/script\u003e\n\n\n\n\n\n\n\n\u003c\/div\u003e\n\u003c\/div\u003e","brand":"EVEN","offers":[{"title":"BLACK \/ FREE","offer_id":46339726115034,"sku":"E25K0147K-01-00","price":7700.0,"currency_code":"JPY","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0654\/2609\/6346\/files\/DNP-even3227_k_0327.jpg?v=1743492815"},{"product_id":"e25h0159k","title":"［rough and swell別注］EVEN200号 コラボカートバッグ","description":"\u003cdiv class=\"ProductMeta__Specification\"\u003e\n \n\n \u003cstyle\u003e\n    \/* ========== ベーススタイル ========== *\/\n    .ProductMeta__Specification {\n      font-family: \"hiraginoW3\", Arial, sans-serif;\n    }\n    .ProductMeta__Accordion {\n      border-top: 1px solid #e5e5e5;\n    }\n    .ProductMeta__Accordion:last-child {\n      border-bottom: 1px solid #e5e5e5;\n    }\n    .ProductMeta__AccordionHeading {\n      cursor: pointer;\n      padding: 16px 0;\n      font-weight: bold;\n      position: relative;\n      display: flex;\n      justify-content: space-between;\n      align-items: center;\n    }\n    .ProductMeta__AccordionHeading::after {\n      content: \"+\";\n      font-weight: normal;\n      font-size: 16px;\n    }\n    .ProductMeta__AccordionHeading.c-show::after {\n      content: \"−\";\n    }\n    .ProductMeta__AccordionTitle {\n      display: flex;\n      align-items: center;\n      gap: 12px;\n    }\n    .accordion-icon {\n      width: 18px;\n      height: 18px;\n      object-fit: contain;\n      display: block;\n    }\n    .accordion-icon--description {\n      width: 15px;\n      height: 15px;\n    }\n    .ProductMeta__AccordionContent {\n      overflow: hidden;\n      height: 0;\n      transition: height 0.35s ease;\n      padding-bottom: 0;\n    }\n    \/* ========== テーブル共通設定 ========== *\/\n    .ProductMeta__AccordionContent table {\n      width: 100%;\n      border-collapse: collapse;\n      margin-bottom: 16px;\n    }\n    .ProductMeta__AccordionContent th,\n    .ProductMeta__AccordionContent td {\n      border: 1px solid #ddd;\n      padding: 8px;\n      font-size: 11px;\n    }\n    .ProductMeta__AccordionContent table:not(.size-table) td {\n      text-align: left;\n    }\n    .ProductMeta__AccordionContent table:not(.size-table) td:first-child {\n      width: 30%;\n      color: #666;\n      border-right: none;\n    }\n    .ProductMeta__AccordionContent table:not(.size-table) td:last-child {\n      border-left: none;\n    }\n    .size-table {\n      width: 100%;\n      border-collapse: collapse;\n      margin-top: 12px;\n      font-size: 10px;\n    }\n    .size-table thead th {\n      background: #f5f5f5;\n      font-weight: 600;\n      border: 1px solid #ddd;\n      padding: 10px 8px;\n    }\n    .size-table tbody th {\n      background: #fafafa;\n      font-weight: 600;\n      border: 1px solid #ddd;\n      padding: 10px 8px;\n    }\n    .size-table tbody td {\n      border: 1px solid #ddd;\n      padding: 10px 8px;\n    }\n    .size-table th, .size-table td {\n      text-align: center;\n    }\n    .size-note {\n      font-size: 12px;\n      color: #666;\n      margin-top: 8px;\n      line-height: 1.6;\n    }\n    \/* ========== スクロールエリア ========== *\/\n    .accordion-scroll-area {\n      max-height: 160px;\n      overflow-y: auto;\n      padding-right: 8px;\n      margin-bottom: 16px;\n    }\n    .accordion-scroll-area::-webkit-scrollbar { width: 4px; }\n    .accordion-scroll-area::-webkit-scrollbar-track { background: #f5f5f5; border-radius: 4px; }\n    .accordion-scroll-area::-webkit-scrollbar-thumb { background: #ccc; border-radius: 4px; }\n    \/* ========== テキストスタイル ========== *\/\n    .ProductMeta__AccordionContent p,\n    .ProductMeta__AccordionContent li {\n      font-size: 12px;\n      line-height: 1.8;\n    }\n    .accordion-description .ProductMeta__AccordionContent p {\n      font-size: 12px;\n      font-weight: 300;\n      line-height: 2;\n      letter-spacing: 0.06em;\n      text-align: left;\n      margin: 0;\n    }\n    .accordion-description .ProductMeta__AccordionContent p + p {\n      margin-top: 12px;\n    }\n    \/* ========== サイズ視覚イメージ \u0026 スライダー ========== *\/\n    .size-visual {\n      margin-top: 24px;\n      margin-bottom: 24px;\n    }\n    .size-visual__image {\n      max-width: 55%;\n      margin: 0 auto;\n    }\n    .size-visual__image img {\n      width: 100%;\n      height: auto;\n      display: block;\n    }\n    .size-visual__slider-container {\n      position: relative;\n      margin-top: 16px;\n      padding: 0 30px;\n      display: flex;\n      align-items: center;\n    }\n    .size-visual__buttons {\n      display: flex;\n      gap: 8px;\n      overflow-x: auto;\n      scroll-behavior: smooth;\n      width: 100%;\n      -ms-overflow-style: none;\n      scrollbar-width: none;\n    }\n    .size-visual__buttons::-webkit-scrollbar { display: none; }\n    .size-btn {\n      flex: 0 0 28%;\n      padding: 12px 0;\n      font-size: 12px;\n      border: 1px solid #ddd;\n      background: #fff;\n      cursor: pointer;\n      white-space: nowrap;\n      transition: background 0.2s, color 0.2s;\n    }\n    .size-btn.is-active {\n      background: #111;\n      color: #fff;\n      border-color: #111;\n    }\n    .slider-arrow {\n      position: absolute;\n      top: 50%;\n      transform: translateY(-50%);\n      width: 30px;\n      height: 100%;\n      background: transparent;\n      border: none;\n      cursor: pointer;\n      z-index: 2;\n      padding: 0;\n      display: flex;\n      align-items: center;\n      justify-content: center;\n    }\n    .slider-arrow--prev { left: -5px; }\n    .slider-arrow--next { right: -5px; }\n    .slider-arrow::before {\n      content: '';\n      display: block;\n      width: 10px;\n      height: 10px;\n      border-top: 2px solid #333;\n      border-right: 2px solid #333;\n    }\n    .slider-arrow--prev::before { transform: rotate(-135deg); }\n    .slider-arrow--next::before { transform: rotate(45deg); }\n    .slider-arrow:focus { outline: none; }\n    \/* ========== Gallery グリッド設定 ========== *\/\n    .gallery-grid {\n      display: grid;\n      grid-template-columns: repeat(4, 1fr);\n      gap: 8px;\n      margin-bottom: 16px;\n    }\n    .gallery-item-wrapper {\n      width: 100%;\n      display: block;\n      cursor: pointer;\n      transition: opacity 0.2s ease;\n      -webkit-tap-highlight-color: transparent;\n    }\n    .gallery-item-wrapper:hover { opacity: 0.7; }\n    .gallery-item {\n      width: 100%;\n      height: auto;\n      display: block;\n      object-fit: cover;\n      aspect-ratio: 3 \/ 4;\n      pointer-events: none;\n    }\n    \/* ========== ギャラリーモーダル ========== *\/\n    .gallery-modal {\n      display: none;\n      position: fixed;\n      z-index: 999999;\n      left: 0;\n      top: 0;\n      width: 100%;\n      height: 100%;\n      background-color: rgba(0, 0, 0, 0.85);\n      opacity: 0;\n      transition: opacity 0.35s ease, background-color 0.3s ease;\n      touch-action: none;\n    }\n    .gallery-modal.is-open {\n      display: flex;\n      opacity: 1;\n      justify-content: center;\n      align-items: center;\n    }\n    .gallery-modal__content {\n      position: relative;\n      display: inline-flex;\n      justify-content: center;\n      align-items: center;\n      width: auto;\n      height: auto;\n    }\n    #galleryModalImg {\n      max-height: 85vh;\n      max-width: calc(100vw - 160px);\n      width: auto;\n      height: auto;\n      display: block;\n      user-select: none;\n      transform: translate(0, 0) scale(1);\n      transition: transform 0.3s ease-out, opacity 0.3s ease;\n      box-shadow: 0 10px 40px rgba(0,0,0,0.3);\n    }\n    .gallery-modal__indicator {\n      position: absolute;\n      bottom: 20px;\n      left: 50%;\n      transform: translateX(-50%);\n      color: #fff;\n      font-size: 14px;\n      font-family: \"futura\", Arial, sans-serif;\n      letter-spacing: 0.15em;\n      z-index: 1000000;\n      text-shadow: 0 2px 6px rgba(0,0,0,0.8);\n      font-weight: 400;\n      pointer-events: none;\n    }\n    .gallery-modal__thumbnails {\n      position: absolute;\n      bottom: 24px;\n      left: 50%;\n      transform: translateX(-50%);\n      display: flex;\n      gap: 8px;\n      z-index: 1000000;\n    }\n    .gallery-modal__thumb {\n      width: 48px;\n      height: 48px;\n      object-fit: cover;\n      cursor: pointer;\n      border: 2px solid transparent;\n      border-radius: 4px;\n      opacity: 0.5;\n      transition: all 0.2s ease;\n      box-shadow: 0 2px 4px rgba(0,0,0,0.5);\n    }\n    .gallery-modal__thumb:hover { opacity: 0.8; }\n    .gallery-modal__thumb.is-active { border-color: #fff; opacity: 1; }\n    .gallery-modal__close {\n      position: absolute;\n      top: 16px;\n      right: 16px;\n      color: #fff;\n      font-size: 44px;\n      font-weight: 200;\n      cursor: pointer;\n      z-index: 1000000;\n      line-height: 1;\n      user-select: none;\n      transition: opacity 0.2s;\n      text-shadow: 0 2px 6px rgba(0,0,0,0.5);\n    }\n    .gallery-modal__close:hover { opacity: 0.7; }\n    .gallery-modal__arrow {\n      position: absolute;\n      top: 50%;\n      transform: translateY(-50%);\n      background: transparent;\n      border: none;\n      cursor: pointer;\n      padding: 20px;\n      z-index: 1000000;\n      display: flex;\n      align-items: center;\n      justify-content: center;\n      filter: drop-shadow(0 2px 4px rgba(0,0,0,0.5));\n    }\n    .gallery-modal__arrow--prev { left: -70px; }\n    .gallery-modal__arrow--next { right: -70px; }\n    .gallery-modal__arrow::before {\n      content: '';\n      display: block;\n      width: 26px;\n      height: 26px;\n      border-top: 3px solid #fff;\n      border-right: 3px solid #fff;\n    }\n    .gallery-modal__arrow--prev::before { transform: rotate(-135deg); }\n    .gallery-modal__arrow--next::before { transform: rotate(45deg); }\n    \/* ========== SP用調整 ========== *\/\n    @media screen and (max-width: 768px) {\n      .ProductMeta__AccordionContent { padding-bottom: 0 !important; }\n      .size-visual { margin-top: 16px; margin-bottom: 20px; }\n      .size-visual__image { max-width: 100%; }\n      .size-visual__slider-container { padding: 0 24px; }\n      .slider-arrow { width: 24px; }\n      .slider-arrow--prev { left: 0; }\n      .slider-arrow--next { right: 0; }\n      .gallery-grid { grid-template-columns: repeat(2, 1fr); gap: 4px; }\n      #galleryModalImg { max-width: 100vw; max-height: 80vh; }\n      .gallery-modal__thumbnails { bottom: 20px; }\n      .gallery-modal__thumb { width: 40px; height: 40px; }\n      .gallery-modal__close { top: 16px; right: 16px; font-size: 40px; }\n      .gallery-modal__arrow { padding: 15px; }\n      .gallery-modal__arrow--prev { left: 0; }\n      .gallery-modal__arrow--next { right: 0; }\n    }\n  \u003c\/style\u003e\n\n\n\n  \n\n\u003c!-- ============================================================ --\u003e\n  \u003c!-- ▼ [SECTION: DESCRIPTION] アコーディオン「Description」       --\u003e\n  \u003c!-- ============================================================ --\u003e\n  \u003cdiv class=\"ProductMeta__Accordion accordion-description\"\u003e\n    \u003cdiv class=\"ProductMeta__AccordionHeading c-show\"\u003e\n      \u003cdiv class=\"ProductMeta__AccordionTitle\"\u003e\n        \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0654\/2609\/6346\/files\/description.png?v=1775810343\" alt=\"\" class=\"accordion-icon accordion-icon--description\"\u003e\n        \u003cspan\u003eDescription\u003c\/span\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"ProductMeta__AccordionContent\"\u003e\n      \u003cdiv class=\"accordion-scroll-area\"\u003e\n\n        \u003c!-- ▼ [EDIT: 商品説明] ここから〜ここまでが商品説明テキスト --\u003e\n\u003cp\u003eコットンキャンパス素材を用いたカートバッグハンドルのストライプが良いアクセントゴルフ以外の日常使いにもちょうどいい大きさお買い物やランチバッグとしても活躍します。\u003c\/p\u003e\n\u003cbr\u003e\u003cbr\u003e\n        \u003c!-- ▲ [EDIT: 商品説明] ここまで --\u003e\n\n        \u003c!-- ▼ [EDIT: ブランド説明] ここから〜ここまでがブランド説明テキスト --\u003e\n        \u003cp\u003e【rough and swell】\u003cbr\u003e\n          ゴルフとサーフィン（波のうねり）をコンセプトに2012年に誕生した日本発のカジュアルゴルフウェア＆デイリーブランドです。カモフラやカレッジ風のポップなグラフィック、ブランドアイコンである「カモノハシ」が特徴で、コースからタウンユースまで幅広く活躍します。\u003c\/p\u003e\n        \n        \u003c!-- ▲ [EDIT: ブランド説明] ここまで --\u003e\n\n      \n\n\u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003c!-- ▲ [SECTION: DESCRIPTION] ここまで --\u003e\n\n  \u003c!-- ============================================================ --\u003e\n  \u003c!-- ▼ [SECTION: SIZE] アコーディオン「Size」                     --\u003e\n  \u003c!-- ============================================================ --\u003e\n  \u003cdiv class=\"ProductMeta__Accordion\"\u003e\n    \u003cdiv class=\"ProductMeta__AccordionHeading\"\u003e\n      \u003cdiv class=\"ProductMeta__AccordionTitle\"\u003e\n        \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0654\/2609\/6346\/files\/size.png?v=1775810343\" alt=\"\" class=\"accordion-icon\"\u003e\n        \u003cspan\u003eSize\u003c\/span\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"ProductMeta__AccordionContent\"\u003e\n\n      \u003c!-- ▼ [EDIT: サイズテーブル] 採寸表 --\u003e\n      \u003c!-- 列の追加：\u003cth\u003e列名\u003c\/th\u003e を theadの\u003ctr\u003eに、\u003ctd\u003e数値\u003c\/td\u003e を各サイズ行に追加 --\u003e\n      \u003c!-- サイズ行の非表示：該当の \u003ctr\u003e〜\u003c\/tr\u003e を丸ごと削除またはコメントアウト --\u003e\n\n\u003ctable class=\"size-table\"\u003e\n  \u003cthead\u003e\n    \u003ctr\u003e\n      \u003cth\u003eSIZE\u003c\/th\u003e\n      \u003cth\u003e幅\u003c\/th\u003e\n      \u003cth\u003e高さ\u003c\/th\u003e\n      \u003cth\u003eマチ\u003c\/th\u003e\n    \u003c\/tr\u003e\n  \u003c\/thead\u003e\n  \u003ctbody\u003e\n    \u003ctr\u003e\n      \u003cth\u003eF\u003c\/th\u003e\n      \u003ctd\u003e23\u003c\/td\u003e\n      \u003ctd\u003e26\u003c\/td\u003e\n      \u003ctd\u003e12\u003c\/td\u003e\n    \u003c\/tr\u003e\n  \u003c\/tbody\u003e\n\u003c\/table\u003e\n\n\n      \u003c!-- ▲ [EDIT: サイズテーブル] ここまで --\u003e\n\n      \u003cp class=\"size-note\"\u003e\n        ※ 表記サイズは目安となります。\u003cbr\u003e\n        ※ 採寸方法により多少の誤差が生じる場合がございます。\n      \u003c\/p\u003e\n\n      \u003c!-- ▼ [EDIT: サイズビジュアル] 寸法イメージ画像 \u0026 サイズボタン --\u003e\n      \u003c!-- ボタン非表示：該当の \u003cbutton class=\"size-btn\"〜\u003e\u003c\/button\u003e を丸ごと削除 --\u003e\n      \u003c!-- 画像URL変更：data-image=\"...\" の中のURLを書き換え --\u003e\n      \u003cdiv class=\"size-visual\"\u003e\n        \u003cdiv class=\"size-visual__image\"\u003e\n          \u003cimg id=\"sizeVisualImage\" src=\"\" alt=\"サイズ寸法イメージ\"\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"size-visual__slider-container\"\u003e\n          \u003cdiv class=\"size-visual__buttons\" id=\"sizeButtonsContainer\"\u003e\n            \u003cbutton class=\"size-btn is-active\" data-size=\"F\" data-image=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0654\/2609\/6346\/files\/size-visualizer-bag_bec757ef-823f-434b-952a-c73d59234772.png?v=1786360099\"\u003eF\u003c\/button\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n      \u003c!-- ▲ [EDIT: サイズビジュアル] ここまで --\u003e\n\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003c!-- ▲ [SECTION: SIZE] ここまで --\u003e\n\n  \u003c!-- ============================================================ --\u003e\n  \u003c!-- ▼ [SECTION: DETAIL] アコーディオン「Detail」                 --\u003e\n  \u003c!-- ============================================================ --\u003e\n  \u003cdiv class=\"ProductMeta__Accordion\"\u003e\n    \u003cdiv class=\"ProductMeta__AccordionHeading\"\u003e\n      \u003cdiv class=\"ProductMeta__AccordionTitle\"\u003e\n        \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0654\/2609\/6346\/files\/detail.png?v=1775810343\" alt=\"\" class=\"accordion-icon\"\u003e\n        \u003cspan\u003eDetail\u003c\/span\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"ProductMeta__AccordionContent\"\u003e\n\n      \u003c!-- ▼ [EDIT: 詳細テーブル] 各行の右側（2列目の\u003ctd\u003e）が編集対象 --\u003e\n      \u003ctable\u003e\n        \u003ctbody\u003e\n          \u003ctr\u003e\n            \u003ctd\u003eブランド名\u003c\/td\u003e\n            \u003ctd\u003erough and swell\u003c\/td\u003e\n\u003c!-- [VAL:ブランド名] --\u003e\n          \u003c\/tr\u003e\n\u003c!-- [VAL:品番] --\u003e\n\n          \u003ctr\u003e\n            \u003ctd\u003e商品コード\u003c\/td\u003e\n            \u003ctd\u003eE25H0159K\u003c\/td\u003e\n\u003c!-- [VAL:商品コード] --\u003e\n          \u003c\/tr\u003e\n          \u003ctr\u003e\n            \u003ctd\u003e原産国\u003c\/td\u003e\n            \u003ctd\u003e日本\u003c\/td\u003e\n\u003c!-- [VAL:原産国] --\u003e\n          \u003c\/tr\u003e\n          \u003ctr\u003e\n            \u003ctd\u003e素材\u003c\/td\u003e\n            \u003ctd\u003e本体：COTTON 100%\u003cbr\u003e\n              持ち手：ACRYLIC 100％\u003c\/td\u003e\n\u003c!-- [VAL:素材] --\u003e\n          \u003c\/tr\u003e\n         \n\u003c!-- [VAL:モデル] --\u003e\n\n\n        \u003c\/tbody\u003e\n      \u003c\/table\u003e\n      \u003c!-- ▲ [EDIT: 詳細テーブル] ここまで --\u003e\n\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003c!-- ▲ [SECTION: DETAIL] ここまで --\u003e\n\n  \u003c!-- ============================================================ --\u003e\n  \u003c!-- ▼ [SECTION: GALLERY] アコーディオン「Gallery」               --\u003e\n  \u003c!-- ============================================================ --\u003e\n  \u003cdiv class=\"ProductMeta__Accordion\"\u003e\n    \u003cdiv class=\"ProductMeta__AccordionHeading\"\u003e\n      \u003cdiv class=\"ProductMeta__AccordionTitle\"\u003e\n        \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0654\/2609\/6346\/files\/gallery.svg?v=1775810342\" alt=\"\" class=\"accordion-icon\"\u003e\n        \u003cspan\u003eGallery\u003c\/span\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"ProductMeta__AccordionContent\"\u003e\n\n      \u003c!-- ▼ [EDIT: ギャラリー画像] --\u003e\n      \u003c!-- 画像追加：下記ブロックをコピーして末尾に追加し、URLとalt番号を書き換える --\u003e\n      \u003c!--\n      \u003cdiv class=\"gallery-item-wrapper\" data-src=\"【画像URL】\"\u003e\n        \u003cimg src=\"【画像URL】\" class=\"gallery-item\" alt=\"Gallery 【番号】\"\u003e\n      \u003c\/div\u003e\n      --\u003e\n      \u003cdiv class=\"gallery-grid\"\u003e\n\u003cdiv class=\"gallery-item-wrapper\" data-src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/even0250.jpg?v=1745408395\u0026amp;width=700\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/even0250.jpg?v=1745408395\u0026amp;width=700\" class=\"gallery-item\" alt=\"Gallery 1\"\u003e\u003c\/div\u003e \u003cdiv class=\"gallery-item-wrapper\" data-src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/even0252.jpg?v=1745408395\u0026amp;width=700\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/even0252.jpg?v=1745408395\u0026amp;width=700\" class=\"gallery-item\" alt=\"Gallery 2\"\u003e\u003c\/div\u003e \u003cdiv class=\"gallery-item-wrapper\" data-src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/even0245.jpg?v=1745408395\u0026amp;width=700\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/even0245.jpg?v=1745408395\u0026amp;width=700\" class=\"gallery-item\" alt=\"Gallery 3\"\u003e\u003c\/div\u003e \u003cdiv class=\"gallery-item-wrapper\" data-src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/even0247.jpg?v=1745408395\u0026amp;width=700\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/even0247.jpg?v=1745408395\u0026amp;width=700\" class=\"gallery-item\" alt=\"Gallery 4\"\u003e\u003c\/div\u003e \u003cdiv class=\"gallery-item-wrapper\" data-src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/even0251.jpg?v=1745408395\u0026amp;width=200\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/even0251.jpg?v=1745408395\u0026amp;width=200\" class=\"gallery-item\" alt=\"Gallery 5\"\u003e\u003c\/div\u003e \u003cdiv class=\"gallery-item-wrapper\" data-src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/even0253.jpg?v=1745408396\u0026amp;width=200\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/even0253.jpg?v=1745408396\u0026amp;width=200\" class=\"gallery-item\" alt=\"Gallery 6\"\u003e\u003c\/div\u003e \u003cdiv class=\"gallery-item-wrapper\" data-src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/even0254.jpg?v=1745408395\u0026amp;width=200\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/even0254.jpg?v=1745408395\u0026amp;width=200\" class=\"gallery-item\" alt=\"Gallery 7\"\u003e\u003c\/div\u003e \u003cdiv class=\"gallery-item-wrapper\" data-src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/even0246.jpg?v=1745408395\u0026amp;width=200\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/even0246.jpg?v=1745408395\u0026amp;width=200\" class=\"gallery-item\" alt=\"Gallery 8\"\u003e\u003c\/div\u003e \u003cdiv class=\"gallery-item-wrapper\" data-src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/even0248.jpg?v=1745408395\u0026amp;width=200\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/even0248.jpg?v=1745408395\u0026amp;width=200\" class=\"gallery-item\" alt=\"Gallery 9\"\u003e\u003c\/div\u003e \u003cdiv class=\"gallery-item-wrapper\" data-src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/even0255.jpg?v=1745408395\u0026amp;width=200\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/even0255.jpg?v=1745408395\u0026amp;width=200\" class=\"gallery-item\" alt=\"Gallery 10\"\u003e\u003c\/div\u003e \u003cdiv class=\"gallery-item-wrapper\" data-src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/even10055.jpg?v=1745408396\u0026amp;width=200\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/even10055.jpg?v=1745408396\u0026amp;width=200\" class=\"gallery-item\" alt=\"Gallery 11\"\u003e\u003c\/div\u003e\n  \n      \u003c\/div\u003e\n      \u003c!-- ▲ [EDIT: ギャラリー画像] ここまで --\u003e\n\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003c!-- ▲ [SECTION: GALLERY] ここまで --\u003e\n\n  \u003c!-- ============================================================ --\u003e\n  \u003c!-- ▼ [SECTION: SHIPPING] アコーディオン「Shipping」             --\u003e\n  \u003c!-- ============================================================ --\u003e\n  \u003cdiv class=\"ProductMeta__Accordion\"\u003e\n    \u003cdiv class=\"ProductMeta__AccordionHeading\"\u003e\n      \u003cdiv class=\"ProductMeta__AccordionTitle\"\u003e\n        \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0654\/2609\/6346\/files\/Shipping.png?v=1775810343\" alt=\"\" class=\"accordion-icon\"\u003e\n        \u003cspan\u003eShipping\u003c\/span\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"ProductMeta__AccordionContent\"\u003e\n      \u003cul class=\"shipping-list\"\u003e\n        \u003cli\u003e￥11,000以上購入で全国送料無料\u003c\/li\u003e\n        \u003cli\u003e通常3-4営業日以内に出荷いたします。\u003c\/li\u003e\n      \u003c\/ul\u003e\n      \u003cp class=\"shipping-policy\"\u003e\n        \u003ca href=\"https:\/\/addix.co.jp\/ec-help\/\" target=\"_blank\" rel=\"noopener\"\u003e配送ポリシーはこちら\u003c\/a\u003e\n      \u003c\/p\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003c!-- ▲ [SECTION: SHIPPING] ここまで --\u003e\n\n  \u003c!-- ギャラリーモーダル（編集不要） --\u003e\n  \u003cdiv id=\"galleryModal\" class=\"gallery-modal\"\u003e\n    \u003cdiv class=\"gallery-modal__content\"\u003e\n      \u003cspan class=\"gallery-modal__close\" id=\"galleryModalClose\"\u003e×\u003c\/span\u003e\n      \u003cbutton class=\"gallery-modal__arrow gallery-modal__arrow--prev\" id=\"galleryPrevBtn\"\u003e\u003c\/button\u003e\n      \u003cimg id=\"galleryModalImg\" src=\"\" alt=\"Expanded Image\"\u003e\n      \u003cbutton class=\"gallery-modal__arrow gallery-modal__arrow--next\" id=\"galleryNextBtn\"\u003e\u003c\/button\u003e\n      \u003cdiv class=\"gallery-modal__indicator\" id=\"galleryModalIndicator\"\u003e\u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"gallery-modal__thumbnails\" id=\"galleryModalThumbnails\"\u003e\u003c\/div\u003e\n  \u003c\/div\u003e\n\n\n\n  \n\n\u003cscript\u003e\n    document.addEventListener('DOMContentLoaded', function () {\n      \/\/ 1. アコーディオン開閉ロジック\n      document.querySelectorAll('.ProductMeta__Accordion').forEach(function (accordion) {\n        const heading = accordion.querySelector('.ProductMeta__AccordionHeading');\n        const content = accordion.querySelector('.ProductMeta__AccordionContent');\n        if (heading.classList.contains('c-show')) {\n          content.style.height = 'auto';\n        }\n        heading.addEventListener('click', function () {\n          const isOpen = heading.classList.contains('c-show');\n          heading.classList.toggle('c-show');\n          if (isOpen) {\n            content.style.height = content.scrollHeight + 'px';\n            setTimeout(() =\u003e { content.style.height = '0px'; }, 10);\n          } else {\n            content.style.height = content.scrollHeight + 'px';\n            content.addEventListener('transitionend', function onTransitionEnd() {\n              if (heading.classList.contains('c-show')) {\n                content.style.height = 'auto';\n              }\n              content.removeEventListener('transitionend', onTransitionEnd);\n            }, { once: true });\n          }\n        });\n      });\n      \/\/ 2. サイズ視覚イメージ \u0026 スライダー機能\n      const image = document.getElementById('sizeVisualImage');\n      const buttonsContainer = document.getElementById('sizeButtonsContainer');\n      const buttons = document.querySelectorAll('.size-btn');\n      const prevBtn = document.querySelector('.slider-arrow--prev');\n      const nextBtn = document.querySelector('.slider-arrow--next');\n      if (image \u0026\u0026 buttons.length \u003e 0) {\n        image.src = buttons[0].dataset.image;\n        buttons[0].classList.add('is-active');\n        buttons.forEach(btn =\u003e {\n          btn.addEventListener('click', () =\u003e {\n            image.src = btn.dataset.image;\n            buttons.forEach(b =\u003e b.classList.remove('is-active'));\n            btn.classList.add('is-active');\n          });\n        });\n        if (buttonsContainer \u0026\u0026 prevBtn \u0026\u0026 nextBtn) {\n          const scrollAmount = 100;\n          prevBtn.addEventListener('click', (e) =\u003e {\n            e.preventDefault();\n            buttonsContainer.scrollBy({ left: -scrollAmount, behavior: 'smooth' });\n          });\n          nextBtn.addEventListener('click', (e) =\u003e {\n            e.preventDefault();\n            buttonsContainer.scrollBy({ left: scrollAmount, behavior: 'smooth' });\n          });\n        }\n      }\n      \/\/ 3. Gallery モーダル機能\n      const galleryWrappers = document.querySelectorAll('.gallery-item-wrapper');\n      const modal = document.getElementById('galleryModal');\n      const modalImg = document.getElementById('galleryModalImg');\n      const closeBtn = document.getElementById('galleryModalClose');\n      const modalPrevBtn = document.getElementById('galleryPrevBtn');\n      const modalNextBtn = document.getElementById('galleryNextBtn');\n      const indicator = document.getElementById('galleryModalIndicator');\n      const thumbnailsContainer = document.getElementById('galleryModalThumbnails');\n      let currentGalleryIndex = 0;\n      const galleryImages = Array.from(galleryWrappers).map(wrapper =\u003e wrapper.dataset.src);\n      galleryImages.forEach((src, index) =\u003e {\n        const img = document.createElement('img');\n        img.src = src;\n        img.classList.add('gallery-modal__thumb');\n        if (index === 0) img.classList.add('is-active');\n        img.addEventListener('click', (e) =\u003e {\n          e.stopPropagation();\n          if (currentGalleryIndex !== index) {\n            const direction = index \u003e currentGalleryIndex ? 'next' : 'prev';\n            animateImageTransition(index, direction);\n          }\n        });\n        thumbnailsContainer.appendChild(img);\n      });\n      function updateModalImage(index) {\n        modalImg.src = galleryImages[index];\n        currentGalleryIndex = index;\n        if(indicator) indicator.textContent = `${index + 1} \/ ${galleryImages.length}`;\n        const thumbs = thumbnailsContainer.querySelectorAll('.gallery-modal__thumb');\n        thumbs.forEach((t, i) =\u003e {\n          if (i === index) t.classList.add('is-active');\n          else t.classList.remove('is-active');\n        });\n      }\n      let touchStartX = 0, touchStartY = 0, currentTranslateX = 0, currentTranslateY = 0;\n      let isDragging = false, isPinching = false, swipeDirection = null;\n      let initialPinchDistance = 0, currentScale = 1;\n      function getDistance(touches) {\n        return Math.hypot(touches[1].clientX - touches[0].clientX, touches[1].clientY - touches[0].clientY);\n      }\n      function animateImageTransition(newIndex, direction) {\n        const outX = direction === 'next' ? '-50px' : '50px';\n        const inX = direction === 'next' ? '50px' : '-50px';\n        modalImg.style.transform = `translate(${outX}, 0) scale(1)`;\n        modalImg.style.opacity = '0';\n        setTimeout(() =\u003e {\n          updateModalImage(newIndex);\n          modalImg.style.transition = 'none';\n          modalImg.style.transform = `translate(${inX}, 0) scale(1)`;\n          currentTranslateX = 0; currentTranslateY = 0; currentScale = 1;\n          setTimeout(() =\u003e {\n            modalImg.style.transition = 'transform 0.3s ease-out, opacity 0.3s ease';\n            modalImg.style.transform = 'translate(0, 0) scale(1)';\n            modalImg.style.opacity = '1';\n          }, 30);\n        }, 150);\n      }\n      function showNextImageFromSwipe(startX) {\n        let newIndex = currentGalleryIndex + 1;\n        if (newIndex \u003e= galleryImages.length) newIndex = 0;\n        modalImg.style.transform = `translate(${startX - 50}px, 0) scale(1)`;\n        modalImg.style.opacity = '0';\n        setTimeout(() =\u003e {\n          updateModalImage(newIndex);\n          modalImg.style.transition = 'none';\n          modalImg.style.transform = `translate(50px, 0) scale(1)`;\n          currentTranslateX = 0; currentTranslateY = 0; currentScale = 1;\n          setTimeout(() =\u003e {\n            modalImg.style.transition = 'transform 0.3s ease-out, opacity 0.3s ease';\n            modalImg.style.transform = 'translate(0, 0) scale(1)';\n            modalImg.style.opacity = '1';\n          }, 30);\n        }, 150);\n      }\n      function showPrevImageFromSwipe(startX) {\n        let newIndex = currentGalleryIndex - 1;\n        if (newIndex \u003c 0) newIndex = galleryImages.length - 1;\n        modalImg.style.transform = `translate(${startX + 50}px, 0) scale(1)`;\n        modalImg.style.opacity = '0';\n        setTimeout(() =\u003e {\n          updateModalImage(newIndex);\n          modalImg.style.transition = 'none';\n          modalImg.style.transform = `translate(-50px, 0) scale(1)`;\n          currentTranslateX = 0; currentTranslateY = 0; currentScale = 1;\n          setTimeout(() =\u003e {\n            modalImg.style.transition = 'transform 0.3s ease-out, opacity 0.3s ease';\n            modalImg.style.transform = 'translate(0, 0) scale(1)';\n            modalImg.style.opacity = '1';\n          }, 30);\n        }, 150);\n      }\n      function showPrevImage() {\n        let newIndex = currentGalleryIndex - 1;\n        if (newIndex \u003c 0) newIndex = galleryImages.length - 1;\n        animateImageTransition(newIndex, 'prev');\n      }\n      function showNextImage() {\n        let newIndex = currentGalleryIndex + 1;\n        if (newIndex \u003e= galleryImages.length) newIndex = 0;\n        animateImageTransition(newIndex, 'next');\n      }\n      function closeModal() {\n        modal.classList.remove('is-open');\n        modal.style.backgroundColor = 'rgba(0, 0, 0, 0)';\n        modalImg.style.transform = `translate(0, ${currentTranslateY}px) scale(1)`;\n        setTimeout(() =\u003e { modal.style.display = 'none'; }, 350);\n        document.body.style.overflow = '';\n      }\n      galleryWrappers.forEach((wrapper, index) =\u003e {\n        wrapper.addEventListener('click', (e) =\u003e {\n          e.preventDefault();\n          e.stopImmediatePropagation();\n          updateModalImage(index);\n          currentTranslateX = 0; currentTranslateY = 0; currentScale = 1; swipeDirection = null;\n          modal.style.backgroundColor = 'rgba(0, 0, 0, 0.85)';\n          modalImg.style.transition = 'none';\n          modalImg.style.transform = 'translate(0, 0) scale(1)';\n          modalImg.style.opacity = '1';\n          modal.style.display = 'flex';\n          setTimeout(() =\u003e {\n            modal.classList.add('is-open');\n            modalImg.style.transition = 'transform 0.3s ease-out, opacity 0.3s ease';\n          }, 10);\n          document.body.style.overflow = 'hidden';\n        }, { capture: true });\n      });\n      closeBtn.addEventListener('click', closeModal);\n      modal.addEventListener('click', (e) =\u003e {\n        if (e.target === modal || e.target === document.querySelector('.gallery-modal__content')) closeModal();\n      });\n      modalPrevBtn.addEventListener('click', (e) =\u003e { e.stopPropagation(); showPrevImage(); });\n      modalNextBtn.addEventListener('click', (e) =\u003e { e.stopPropagation(); showNextImage(); });\n      modal.addEventListener('touchstart', e =\u003e {\n        if (e.touches.length === 2) {\n          isPinching = true; isDragging = false;\n          initialPinchDistance = getDistance(e.touches);\n          modalImg.style.transition = 'none';\n        } else if (e.touches.length === 1 \u0026\u0026 !isPinching) {\n          isDragging = true; swipeDirection = null;\n          touchStartX = e.touches[0].clientX;\n          touchStartY = e.touches[0].clientY;\n          modalImg.style.transition = 'none';\n        }\n      }, { passive: false });\n      modal.addEventListener('touchmove', e =\u003e {\n        if (isPinching \u0026\u0026 e.touches.length === 2) {\n          e.preventDefault();\n          const currentDistance = getDistance(e.touches);\n          currentScale = Math.max(1, currentDistance \/ initialPinchDistance);\n          modalImg.style.transform = `translate(${currentTranslateX}px, ${currentTranslateY}px) scale(${currentScale})`;\n        } else if (isDragging \u0026\u0026 e.touches.length === 1 \u0026\u0026 currentScale === 1) {\n          const deltaX = e.touches[0].clientX - touchStartX;\n          const deltaY = e.touches[0].clientY - touchStartY;\n          if (!swipeDirection) {\n            if (Math.abs(deltaX) \u003e Math.abs(deltaY) \u0026\u0026 Math.abs(deltaX) \u003e 5) swipeDirection = 'h';\n            else if (Math.abs(deltaY) \u003e Math.abs(deltaX) \u0026\u0026 Math.abs(deltaY) \u003e 5) swipeDirection = 'v';\n          }\n          if (swipeDirection === 'h') {\n            e.preventDefault();\n            currentTranslateX = deltaX;\n            modalImg.style.transform = `translate(${currentTranslateX}px, 0) scale(1)`;\n          } else if (swipeDirection === 'v') {\n            e.preventDefault();\n            currentTranslateY = deltaY;\n            const opacity = Math.max(0, 1 - Math.abs(currentTranslateY) \/ (window.innerHeight \/ 1.5));\n            modalImg.style.transform = `translate(0, ${currentTranslateY}px) scale(1)`;\n            modal.style.backgroundColor = `rgba(0, 0, 0, ${0.85 * opacity})`;\n          }\n        }\n      }, { passive: false });\n      modal.addEventListener('touchend', e =\u003e {\n        if (isPinching \u0026\u0026 e.touches.length \u003c 2) {\n          isPinching = false; currentScale = 1;\n          modalImg.style.transition = 'transform 0.3s ease-out';\n          modalImg.style.transform = `translate(${currentTranslateX}px, ${currentTranslateY}px) scale(1)`;\n        } else if (isDragging) {\n          isDragging = false;\n          if (currentScale \u003e 1) return;\n          modalImg.style.transition = 'transform 0.3s ease-out, opacity 0.3s ease';\n          if (swipeDirection === 'h') {\n            const swipeThreshold = 50;\n            if (currentTranslateX \u003c -swipeThreshold) showNextImageFromSwipe(currentTranslateX);\n            else if (currentTranslateX \u003e swipeThreshold) showPrevImageFromSwipe(currentTranslateX);\n            else { currentTranslateX = 0; modalImg.style.transform = `translate(0, 0) scale(1)`; }\n          } else if (swipeDirection === 'v') {\n            if (currentTranslateY \u003e 100 || currentTranslateY \u003c -100) {\n              closeModal();\n            } else {\n              currentTranslateY = 0;\n              modal.style.transition = 'background-color 0.3s ease';\n              modal.style.backgroundColor = 'rgba(0, 0, 0, 0.85)';\n              modalImg.style.transform = `translate(0, 0) scale(1)`;\n            }\n          }\n          swipeDirection = null;\n        }\n      });\n      document.addEventListener('keydown', e =\u003e {\n        if (!modal.classList.contains('is-open')) return;\n        if (e.key === 'ArrowLeft') showPrevImage();\n        else if (e.key === 'ArrowRight') showNextImage();\n        else if (e.key === 'Escape') closeModal();\n      });\n    });\n  \u003c\/script\u003e\n\n\n\n\n\n\n\n\u003c\/div\u003e","brand":"EVEN","offers":[{"title":"ホワイト \/ FREE","offer_id":46406813253850,"sku":"E25H0159K-10-00","price":11000.0,"currency_code":"JPY","in_stock":true},{"title":"ブルー \/ FREE","offer_id":46406813286618,"sku":"E25H0159K-73-00","price":11000.0,"currency_code":"JPY","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0654\/2609\/6346\/files\/even0245.jpg?v=1745408395"},{"product_id":"e25h0160k","title":"［MARK ＆ LONA別注］FER クロスオーバーサコッシュ","description":"\u003cstyle\u003e\n    \/* ========== ベーススタイル ========== *\/\n    .ProductMeta__Specification {\n      font-family: \"hiraginoW3\", Arial, sans-serif;\n    }\n    .ProductMeta__Accordion {\n      border-top: 1px solid #e5e5e5;\n    }\n    .ProductMeta__Accordion:last-child {\n      border-bottom: 1px solid #e5e5e5;\n    }\n    .ProductMeta__AccordionHeading {\n      cursor: pointer;\n      padding: 16px 0;\n      font-weight: bold;\n      position: relative;\n      display: flex;\n      justify-content: space-between;\n      align-items: center;\n    }\n    .ProductMeta__AccordionHeading::after {\n      content: \"+\";\n      font-weight: normal;\n      font-size: 16px;\n    }\n    .ProductMeta__AccordionHeading.c-show::after {\n      content: \"−\";\n    }\n    \/* 見出しアイコンとテキストのレイアウト用 *\/\n    .ProductMeta__AccordionTitle {\n      display: flex;\n      align-items: center;\n      gap: 12px; \/* アイコンとテキストの間隔 *\/\n    }\n    \/* ★ ベースのアイコンスタイル (Size, Detail, Shipping, Gallery) *\/\n    .accordion-icon {\n      width: 18px;\n      height: 18px;\n      object-fit: contain;\n      display: block;\n    }\n    \/* ★ Descriptionアイコン専用の調整 (少し小さくする) *\/\n    .accordion-icon--description {\n      width: 15px; \/* ここでサイズを調整します *\/\n      height: 15px;\n    }\n    .ProductMeta__AccordionContent {\n      overflow: hidden;\n      height: 0;\n      transition: height 0.35s ease;\n      padding-bottom: 0;\n    }\n    \/* ========== テーブル共通設定 ========== *\/\n    .ProductMeta__AccordionContent table {\n      width: 100%;\n      border-collapse: collapse;\n      margin-bottom: 16px;\n    }\n    .ProductMeta__AccordionContent th,\n    .ProductMeta__AccordionContent td {\n      border: 1px solid #ddd;\n      padding: 8px;\n      font-size: 11px;\n    }\n    .ProductMeta__AccordionContent table:not(.size-table) td {\n      text-align: left;\n    }\n    .ProductMeta__AccordionContent table:not(.size-table) td:first-child {\n      width: 30%;\n      color: #666;\n      border-right: none;\n    }\n    .ProductMeta__AccordionContent table:not(.size-table) td:last-child {\n      border-left: none;\n    }\n    \/* サイズテーブルのスタイル *\/\n    .size-table {\n      width: 100%;\n      border-collapse: collapse;\n      margin-top: 12px;\n      font-size: 10px;\n    }\n    .size-table thead th {\n      background: #f5f5f5;\n      font-weight: 600;\n      border: 1px solid #ddd;\n      padding: 10px 8px;\n    }\n    .size-table tbody th {\n      background: #fafafa;\n      font-weight: 600;\n      border: 1px solid #ddd;\n      padding: 10px 8px;\n    }\n    .size-table tbody td {\n      border: 1px solid #ddd;\n      padding: 10px 8px;\n    }\n    .size-table th, .size-table td {\n      text-align: center;\n    }\n    .size-note {\n      font-size: 12px;\n      color: #666;\n      margin-top: 8px;\n      line-height: 1.6;\n    }\n    \/* ========== スクロールエリア（Description等用） ========== *\/\n    .accordion-scroll-area {\n      max-height: 160px; \/* 表示領域の最大高さ *\/\n      overflow-y: auto;\n      padding-right: 8px;\n      margin-bottom: 16px;\n    }\n    .accordion-scroll-area::-webkit-scrollbar {\n      width: 4px;\n    }\n    .accordion-scroll-area::-webkit-scrollbar-track {\n      background: #f5f5f5;\n      border-radius: 4px;\n    }\n    .accordion-scroll-area::-webkit-scrollbar-thumb {\n      background: #ccc;\n      border-radius: 4px;\n    }\n    \/* ========== テキストスタイル ========== *\/\n    .ProductMeta__AccordionContent p,\n    .ProductMeta__AccordionContent li {\n      font-size: 12px;\n      line-height: 1.8;\n    }\n    .accordion-description .ProductMeta__AccordionContent p {\n      font-size: 12px;\n      font-weight: 300;\n      line-height: 2;\n      letter-spacing: 0.06em;\n      text-align: left;\n      margin: 0;\n    }\n    .accordion-description .ProductMeta__AccordionContent p + p {\n      margin-top: 12px;\n    }\n    \/* ========== サイズ視覚イメージ \u0026 スライダー ========== *\/\n    .size-visual {\n      margin-top: 24px;\n      margin-bottom: 24px;\n    }\n    .size-visual__image {\n      max-width: 55%;\n      margin: 0 auto;\n    }\n    .size-visual__image img {\n      width: 100%;\n      height: auto;\n      display: block;\n    }\n    .size-visual__slider-container {\n      position: relative;\n      margin-top: 16px;\n      padding: 0 30px;\n      display: flex;\n      align-items: center;\n    }\n    .size-visual__buttons {\n      display: flex;\n      gap: 8px;\n      overflow-x: auto;\n      scroll-behavior: smooth;\n      width: 100%;\n      -ms-overflow-style: none;\n      scrollbar-width: none;\n    }\n    .size-visual__buttons::-webkit-scrollbar {\n      display: none;\n    }\n    .size-btn {\n      flex: 0 0 28%;\n      padding: 12px 0;\n      font-size: 12px;\n      border: 1px solid #ddd;\n      background: #fff;\n      cursor: pointer;\n      white-space: nowrap;\n      transition: background 0.2s, color 0.2s;\n    }\n    .size-btn.is-active {\n      background: #111;\n      color: #fff;\n      border-color: #111;\n    }\n    .slider-arrow {\n      position: absolute;\n      top: 50%;\n      transform: translateY(-50%);\n      width: 30px;\n      height: 100%;\n      background: transparent;\n      border: none;\n      cursor: pointer;\n      z-index: 2;\n      padding: 0;\n      display: flex;\n      align-items: center;\n      justify-content: center;\n    }\n    .slider-arrow--prev { left: -5px; }\n    .slider-arrow--next { right: -5px; }\n    .slider-arrow::before {\n      content: '';\n      display: block;\n      width: 10px;\n      height: 10px;\n      border-top: 2px solid #333;\n      border-right: 2px solid #333;\n    }\n    .slider-arrow--prev::before { transform: rotate(-135deg); }\n    .slider-arrow--next::before { transform: rotate(45deg); }\n    .slider-arrow:focus { outline: none; }\n    \/* ========== Gallery グリッド設定 ========== *\/\n    .gallery-grid {\n      display: grid;\n      grid-template-columns: repeat(4, 1fr);\n      gap: 8px;\n      margin-bottom: 16px;\n    }\n    .gallery-item-wrapper {\n      width: 100%;\n      display: block;\n      cursor: pointer;\n      transition: opacity 0.2s ease;\n      -webkit-tap-highlight-color: transparent;\n    }\n    .gallery-item-wrapper:hover {\n      opacity: 0.7;\n    }\n    .gallery-item {\n      width: 100%;\n      height: auto;\n      display: block;\n      object-fit: cover;\n      aspect-ratio: 3 \/ 4;\n      pointer-events: none;\n    }\n    \/* ========== ギャラリーモーダル (拡大表示) ========== *\/\n    .gallery-modal {\n      display: none;\n      position: fixed;\n      z-index: 999999;\n      left: 0;\n      top: 0;\n      width: 100%;\n      height: 100%;\n      background-color: rgba(0, 0, 0, 0.85);\n      opacity: 0;\n      transition: opacity 0.35s ease, background-color 0.3s ease;\n      touch-action: none;\n    }\n    .gallery-modal.is-open {\n      display: flex;\n      opacity: 1;\n      justify-content: center;\n      align-items: center;\n    }\n    .gallery-modal__content {\n      position: relative;\n      display: inline-flex;\n      justify-content: center;\n      align-items: center;\n      width: auto;\n      height: auto;\n    }\n    #galleryModalImg {\n      max-height: 85vh;\n      max-width: calc(100vw - 160px);\n      width: auto;\n      height: auto;\n      display: block;\n      user-select: none;\n      transform: translate(0, 0) scale(1);\n      transition: transform 0.3s ease-out, opacity 0.3s ease;\n      box-shadow: 0 10px 40px rgba(0,0,0,0.3);\n    }\n    \/* インジケーター位置調整 *\/\n    .gallery-modal__indicator {\n      position: absolute;\n      bottom: 20px;\n      left: 50%;\n      transform: translateX(-50%);\n      color: #fff;\n      font-size: 14px;\n      font-family: \"futura\", Arial, sans-serif;\n      letter-spacing: 0.15em;\n      z-index: 1000000;\n      text-shadow: 0 2px 6px rgba(0,0,0,0.8);\n      font-weight: 400;\n      pointer-events: none;\n    }\n    \/* サムネイル一覧コンテナ *\/\n    .gallery-modal__thumbnails {\n      position: absolute;\n      bottom: 24px;\n      left: 50%;\n      transform: translateX(-50%);\n      display: flex;\n      gap: 8px;\n      z-index: 1000000;\n    }\n    .gallery-modal__thumb {\n      width: 48px;\n      height: 48px;\n      object-fit: cover;\n      cursor: pointer;\n      border: 2px solid transparent;\n      border-radius: 4px;\n      opacity: 0.5;\n      transition: all 0.2s ease;\n      box-shadow: 0 2px 4px rgba(0,0,0,0.5);\n    }\n    .gallery-modal__thumb:hover {\n      opacity: 0.8;\n    }\n    .gallery-modal__thumb.is-active {\n      border-color: #fff;\n      opacity: 1;\n    }\n    .gallery-modal__close {\n      position: absolute;\n      top: 16px;\n      right: 16px;\n      color: #fff;\n      font-size: 44px;\n      font-weight: 200;\n      cursor: pointer;\n      z-index: 1000000;\n      line-height: 1;\n      user-select: none;\n      transition: opacity 0.2s;\n      text-shadow: 0 2px 6px rgba(0,0,0,0.5);\n    }\n    .gallery-modal__close:hover {\n      opacity: 0.7;\n    }\n    .gallery-modal__arrow {\n      position: absolute;\n      top: 50%;\n      transform: translateY(-50%);\n      background: transparent;\n      border: none;\n      cursor: pointer;\n      padding: 20px;\n      z-index: 1000000;\n      display: flex;\n      align-items: center;\n      justify-content: center;\n      filter: drop-shadow(0 2px 4px rgba(0,0,0,0.5));\n    }\n    .gallery-modal__arrow--prev { left: -70px; }\n    .gallery-modal__arrow--next { right: -70px; }\n    .gallery-modal__arrow::before {\n      content: '';\n      display: block;\n      width: 26px;\n      height: 26px;\n      border-top: 3px solid #fff;\n      border-right: 3px solid #fff;\n    }\n    .gallery-modal__arrow--prev::before { transform: rotate(-135deg); }\n    .gallery-modal__arrow--next::before { transform: rotate(45deg); }\n    \/* ========== SP (スマホ) 用調整 ========== *\/\n    @media screen and (max-width: 768px) {\n      .ProductMeta__AccordionContent {\n        padding-bottom: 0 !important;\n      }\n      .size-visual {\n        margin-top: 16px;\n        margin-bottom: 20px;\n      }\n      .size-visual__image {\n        max-width: 100%;\n      }\n      .size-visual__slider-container {\n        padding: 0 24px;\n      }\n      .slider-arrow {\n        width: 24px;\n      }\n      .slider-arrow--prev { left: 0; }\n      .slider-arrow--next { right: 0; }\n      .gallery-grid {\n        grid-template-columns: repeat(2, 1fr);\n        gap: 4px;\n      }\n      #galleryModalImg {\n        max-width: 100vw;\n        max-height: 80vh;\n      }\n      .gallery-modal__thumbnails {\n        bottom: 20px;\n      }\n      .gallery-modal__thumb {\n        width: 40px;\n        height: 40px;\n      }\n      .gallery-modal__close {\n        top: 16px;\n        right: 16px;\n        font-size: 40px;\n      }\n      .gallery-modal__arrow {\n        padding: 15px;\n      }\n      .gallery-modal__arrow--prev { left: 0; }\n      .gallery-modal__arrow--next { right: 0; }\n    }\n  \u003c\/style\u003e\n\n\u003cdiv class=\"ProductMeta__Specification\"\u003e\n\u003cdiv class=\"ProductMeta__Accordion accordion-description\"\u003e\n\u003cdiv class=\"ProductMeta__AccordionHeading c-show\"\u003e\n\u003cdiv class=\"ProductMeta__AccordionTitle\"\u003e\n\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0654\/2609\/6346\/files\/description.png?v=1775810343\" alt=\"\" class=\"accordion-icon accordion-icon--description\"\u003e \u003cspan\u003eDescription\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"ProductMeta__AccordionContent\"\u003e\n\u003cdiv class=\"accordion-scroll-area\"\u003e\n\u003cp\u003eFERの象徴であるワールドロゴを大胆にプリントした、EVEN × MARK \u0026amp; LONA FER限定ショルダーバッグ。\u003c\/p\u003e\n\u003cp\u003e自転車レースなどでも使用されるショルダーバッグ “サコッシュ” をモチーフに、ゴルフやアウトドアシーンにも適したコンパクトながらも実用性に優れたサイズ感が特徴です。\u003c\/p\u003e\n\u003cp\u003e大きめのフロントポケットにはファスナー付きで、サングラスや日焼け止めなどすぐに取り出したいアイテムの収納にも便利です。\u003c\/p\u003e\n\u003cp\u003e本体メインポケットはボトム部分にマチを設けており、厚みのあるアイテムも収納しやすく、身体にフィットする快適な仕様となっています。\u003cbr\u003e\u003c\/p\u003e\n  \n\u003cp\u003e【MARK \u0026amp; LONA】\u003cbr\u003e100年以上の歴史を持つグローバルスポーツブランドです。2008年にロサンゼルスで誕生し、「ラグジュアリーゴルフ」をコンセプトにしたゴルフアパレルブランドです。\n  ゴルフウェア界にて、アートやパンク、ストリートの要素を取り入れた斬新なデザインを展開しています。\u003c\/p\u003e\n\n\u003c\/div\u003e\n\u003cdiv class=\"ProductMeta__Accordion\"\u003e\n\u003cdiv class=\"ProductMeta__AccordionHeading\"\u003e\n\u003cdiv class=\"ProductMeta__AccordionTitle\"\u003e\n\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0654\/2609\/6346\/files\/size.png?v=1775810343\" alt=\"\" class=\"accordion-icon\"\u003e \u003cspan\u003eSize\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"ProductMeta__AccordionContent\"\u003e\n\n\n\n\u003ctable class=\"size-table\"\u003e\n  \u003cthead\u003e\n    \u003ctr\u003e\n      \u003cth\u003eSIZE\u003c\/th\u003e\n      \u003cth\u003e幅\u003c\/th\u003e\n      \u003cth\u003e高さ\u003c\/th\u003e\n    \u003c\/tr\u003e\n  \u003c\/thead\u003e\n  \u003ctbody\u003e\n    \u003ctr\u003e\n      \u003cth\u003eF\u003c\/th\u003e\n      \u003ctd\u003e30\u003c\/td\u003e\n      \u003ctd\u003e24\u003c\/td\u003e\n    \u003c\/tr\u003e\n  \u003c\/tbody\u003e\n\u003c\/table\u003e\n\n   \u003c!-- ▲ [EDIT: サイズテーブル] ここまで --\u003e\n\n      \u003cp class=\"size-note\"\u003e\n        ※ 表記サイズは目安となります。\u003cbr\u003e\n        ※ 採寸方法により多少の誤差が生じる場合がございます。\n      \u003c\/p\u003e\n\n      \u003c!-- ▼ [EDIT: サイズビジュアル] 寸法イメージ画像 \u0026 サイズボタン --\u003e\n      \u003c!-- ボタン非表示：該当の \u003cbutton class=\"size-btn\"〜\u003e\u003c\/button\u003e を丸ごと削除 --\u003e\n      \u003c!-- 画像URL変更：data-image=\"...\" の中のURLを書き換え --\u003e\n      \u003cdiv class=\"size-visual\"\u003e\n        \u003cdiv class=\"size-visual__image\"\u003e\n          \u003cimg id=\"sizeVisualImage\" src=\"\" alt=\"サイズ寸法イメージ\"\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"size-visual__slider-container\"\u003e\n          \u003cdiv class=\"size-visual__buttons\" id=\"sizeButtonsContainer\"\u003e\n            \u003cbutton class=\"size-btn is-active\" data-size=\"F\" data-image=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0654\/2609\/6346\/files\/size-visualizer-bag_980ab9a7-d631-4338-99c7-a22420a7a3eb.png?v=1785914960\"\u003eF\u003c\/button\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n      \u003c!-- ▲ [EDIT: サイズビジュアル] ここまで --\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"ProductMeta__Accordion\"\u003e\n\u003cdiv class=\"ProductMeta__AccordionHeading\"\u003e\n\u003cdiv class=\"ProductMeta__AccordionTitle\"\u003e\n\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0654\/2609\/6346\/files\/detail.png?v=1775810343\" alt=\"\" class=\"accordion-icon\"\u003e \u003cspan\u003eDetail\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"ProductMeta__AccordionContent\"\u003e\n\u003ctable\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003eブランド名\u003c\/td\u003e\n\u003ctd\u003eMARK ＆ LONA\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e商品コード\u003c\/td\u003e\n\u003ctd\u003eE25H0160K\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e原産国\u003c\/td\u003e\n\u003ctd\u003e台湾\u003c\/td\u003e\n\u003c\/tr\u003e\n\n\u003c\/tbody\u003e\n\u003c\/table\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"ProductMeta__Accordion\"\u003e\n\u003cdiv class=\"ProductMeta__AccordionHeading\"\u003e\n\u003cdiv class=\"ProductMeta__AccordionTitle\"\u003e\n\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0654\/2609\/6346\/files\/gallery.svg?v=1775810342\" alt=\"\" class=\"accordion-icon\"\u003e \u003cspan\u003eGallery\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"ProductMeta__AccordionContent\"\u003e\n\u003cdiv class=\"gallery-grid\"\u003e\n   \u003cdiv class=\"gallery-item-wrapper\" data-src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/even0236.jpg?v=1748586388\u0026amp;width=700\"\u003e\n        \u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/even0236.jpg?v=1748586388\u0026amp;width=700\" class=\"gallery-item\" alt=\"Gallery 1\"\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"gallery-item-wrapper\" data-src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/even0237.jpg?v=1748586388\u0026amp;width=700\"\u003e\n        \u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/even0237.jpg?v=1748586388\u0026amp;width=700\" class=\"gallery-item\" alt=\"Gallery 2\"\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"gallery-item-wrapper\" data-src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/even0242.jpg?v=1748586388\u0026amp;width=700\"\u003e\n        \u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/even0242.jpg?v=1748586388\u0026amp;width=700\" class=\"gallery-item\" alt=\"Gallery 3\"\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"gallery-item-wrapper\" data-src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/even0243.jpg?v=1748586388\u0026amp;width=700\"\u003e\n        \u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/even0243.jpg?v=1748586388\u0026amp;width=700\" class=\"gallery-item\" alt=\"Gallery 4\"\u003e\n      \u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003c!-- ▲ [SECTION: GALLERY] ここまで --\u003e\n\n  \u003c!-- ============================================================ --\u003e\n  \u003c!-- ▼ [SECTION: SHIPPING] アコーディオン「Shipping」             --\u003e\n  \u003c!-- ============================================================ --\u003e\n  \u003cdiv class=\"ProductMeta__Accordion\"\u003e\n    \u003cdiv class=\"ProductMeta__AccordionHeading\"\u003e\n      \u003cdiv class=\"ProductMeta__AccordionTitle\"\u003e\n        \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0654\/2609\/6346\/files\/Shipping.png?v=1775810343\" alt=\"\" class=\"accordion-icon\"\u003e\n        \u003cspan\u003eShipping\u003c\/span\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"ProductMeta__AccordionContent\"\u003e\n      \u003cul class=\"shipping-list\"\u003e\n        \u003cli\u003e￥11,000以上購入で全国送料無料\u003c\/li\u003e\n        \u003cli\u003e通常3-4営業日以内に出荷いたします。\u003c\/li\u003e\n      \u003c\/ul\u003e\n      \u003cp class=\"shipping-policy\"\u003e\n        \u003ca href=\"https:\/\/addix.co.jp\/ec-help\/\" target=\"_blank\" rel=\"noopener\"\u003e配送ポリシーはこちら\u003c\/a\u003e\n      \u003c\/p\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003c!-- ▲ [SECTION: SHIPPING] ここまで --\u003e\n\n  \u003c!-- ギャラリーモーダル（編集不要） --\u003e\n  \u003cdiv id=\"galleryModal\" class=\"gallery-modal\"\u003e\n    \u003cdiv class=\"gallery-modal__content\"\u003e\n      \u003cspan class=\"gallery-modal__close\" id=\"galleryModalClose\"\u003e×\u003c\/span\u003e\n      \u003cbutton class=\"gallery-modal__arrow gallery-modal__arrow--prev\" id=\"galleryPrevBtn\"\u003e\u003c\/button\u003e\n      \u003cimg id=\"galleryModalImg\" src=\"\" alt=\"Expanded Image\"\u003e\n      \u003cbutton class=\"gallery-modal__arrow gallery-modal__arrow--next\" id=\"galleryNextBtn\"\u003e\u003c\/button\u003e\n      \u003cdiv class=\"gallery-modal__indicator\" id=\"galleryModalIndicator\"\u003e\u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"gallery-modal__thumbnails\" id=\"galleryModalThumbnails\"\u003e\u003c\/div\u003e\n  \u003c\/div\u003e\n\n\n\n  \n\n\u003cscript\u003e\n    document.addEventListener('DOMContentLoaded', function () {\n      \/\/ 1. アコーディオン開閉ロジック\n      document.querySelectorAll('.ProductMeta__Accordion').forEach(function (accordion) {\n        const heading = accordion.querySelector('.ProductMeta__AccordionHeading');\n        const content = accordion.querySelector('.ProductMeta__AccordionContent');\n        if (heading.classList.contains('c-show')) {\n          content.style.height = 'auto';\n        }\n        heading.addEventListener('click', function () {\n          const isOpen = heading.classList.contains('c-show');\n          heading.classList.toggle('c-show');\n          if (isOpen) {\n            content.style.height = content.scrollHeight + 'px';\n            setTimeout(() =\u003e { content.style.height = '0px'; }, 10);\n          } else {\n            content.style.height = content.scrollHeight + 'px';\n            content.addEventListener('transitionend', function onTransitionEnd() {\n              if (heading.classList.contains('c-show')) {\n                content.style.height = 'auto';\n              }\n              content.removeEventListener('transitionend', onTransitionEnd);\n            }, { once: true });\n          }\n        });\n      });\n      \/\/ 2. サイズ視覚イメージ \u0026 スライダー機能\n      const image = document.getElementById('sizeVisualImage');\n      const buttonsContainer = document.getElementById('sizeButtonsContainer');\n      const buttons = document.querySelectorAll('.size-btn');\n      const prevBtn = document.querySelector('.slider-arrow--prev');\n      const nextBtn = document.querySelector('.slider-arrow--next');\n      if (image \u0026\u0026 buttons.length \u003e 0) {\n        image.src = buttons[0].dataset.image;\n        buttons[0].classList.add('is-active');\n        buttons.forEach(btn =\u003e {\n          btn.addEventListener('click', () =\u003e {\n            image.src = btn.dataset.image;\n            buttons.forEach(b =\u003e b.classList.remove('is-active'));\n            btn.classList.add('is-active');\n          });\n        });\n        if (buttonsContainer \u0026\u0026 prevBtn \u0026\u0026 nextBtn) {\n          const scrollAmount = 100;\n          prevBtn.addEventListener('click', (e) =\u003e {\n            e.preventDefault();\n            buttonsContainer.scrollBy({ left: -scrollAmount, behavior: 'smooth' });\n          });\n          nextBtn.addEventListener('click', (e) =\u003e {\n            e.preventDefault();\n            buttonsContainer.scrollBy({ left: scrollAmount, behavior: 'smooth' });\n          });\n        }\n      }\n      \/\/ 3. Gallery モーダル機能\n      const galleryWrappers = document.querySelectorAll('.gallery-item-wrapper');\n      const modal = document.getElementById('galleryModal');\n      const modalImg = document.getElementById('galleryModalImg');\n      const closeBtn = document.getElementById('galleryModalClose');\n      const modalPrevBtn = document.getElementById('galleryPrevBtn');\n      const modalNextBtn = document.getElementById('galleryNextBtn');\n      const indicator = document.getElementById('galleryModalIndicator');\n      const thumbnailsContainer = document.getElementById('galleryModalThumbnails');\n      let currentGalleryIndex = 0;\n      const galleryImages = Array.from(galleryWrappers).map(wrapper =\u003e wrapper.dataset.src);\n      galleryImages.forEach((src, index) =\u003e {\n        const img = document.createElement('img');\n        img.src = src;\n        img.classList.add('gallery-modal__thumb');\n        if (index === 0) img.classList.add('is-active');\n        img.addEventListener('click', (e) =\u003e {\n          e.stopPropagation();\n          if (currentGalleryIndex !== index) {\n            const direction = index \u003e currentGalleryIndex ? 'next' : 'prev';\n            animateImageTransition(index, direction);\n          }\n        });\n        thumbnailsContainer.appendChild(img);\n      });\n      function updateModalImage(index) {\n        modalImg.src = galleryImages[index];\n        currentGalleryIndex = index;\n        if(indicator) indicator.textContent = `${index + 1} \/ ${galleryImages.length}`;\n        const thumbs = thumbnailsContainer.querySelectorAll('.gallery-modal__thumb');\n        thumbs.forEach((t, i) =\u003e {\n          if (i === index) t.classList.add('is-active');\n          else t.classList.remove('is-active');\n        });\n      }\n      let touchStartX = 0, touchStartY = 0, currentTranslateX = 0, currentTranslateY = 0;\n      let isDragging = false, isPinching = false, swipeDirection = null;\n      let initialPinchDistance = 0, currentScale = 1;\n      function getDistance(touches) {\n        return Math.hypot(touches[1].clientX - touches[0].clientX, touches[1].clientY - touches[0].clientY);\n      }\n      function animateImageTransition(newIndex, direction) {\n        const outX = direction === 'next' ? '-50px' : '50px';\n        const inX = direction === 'next' ? '50px' : '-50px';\n        modalImg.style.transform = `translate(${outX}, 0) scale(1)`;\n        modalImg.style.opacity = '0';\n        setTimeout(() =\u003e {\n          updateModalImage(newIndex);\n          modalImg.style.transition = 'none';\n          modalImg.style.transform = `translate(${inX}, 0) scale(1)`;\n          currentTranslateX = 0; currentTranslateY = 0; currentScale = 1;\n          setTimeout(() =\u003e {\n            modalImg.style.transition = 'transform 0.3s ease-out, opacity 0.3s ease';\n            modalImg.style.transform = 'translate(0, 0) scale(1)';\n            modalImg.style.opacity = '1';\n          }, 30);\n        }, 150);\n      }\n      function showNextImageFromSwipe(startX) {\n        let newIndex = currentGalleryIndex + 1;\n        if (newIndex \u003e= galleryImages.length) newIndex = 0;\n        modalImg.style.transform = `translate(${startX - 50}px, 0) scale(1)`;\n        modalImg.style.opacity = '0';\n        setTimeout(() =\u003e {\n          updateModalImage(newIndex);\n          modalImg.style.transition = 'none';\n          modalImg.style.transform = `translate(50px, 0) scale(1)`;\n          currentTranslateX = 0; currentTranslateY = 0; currentScale = 1;\n          setTimeout(() =\u003e {\n            modalImg.style.transition = 'transform 0.3s ease-out, opacity 0.3s ease';\n            modalImg.style.transform = 'translate(0, 0) scale(1)';\n            modalImg.style.opacity = '1';\n          }, 30);\n        }, 150);\n      }\n      function showPrevImageFromSwipe(startX) {\n        let newIndex = currentGalleryIndex - 1;\n        if (newIndex \u003c 0) newIndex = galleryImages.length - 1;\n        modalImg.style.transform = `translate(${startX + 50}px, 0) scale(1)`;\n        modalImg.style.opacity = '0';\n        setTimeout(() =\u003e {\n          updateModalImage(newIndex);\n          modalImg.style.transition = 'none';\n          modalImg.style.transform = `translate(-50px, 0) scale(1)`;\n          currentTranslateX = 0; currentTranslateY = 0; currentScale = 1;\n          setTimeout(() =\u003e {\n            modalImg.style.transition = 'transform 0.3s ease-out, opacity 0.3s ease';\n            modalImg.style.transform = 'translate(0, 0) scale(1)';\n            modalImg.style.opacity = '1';\n          }, 30);\n        }, 150);\n      }\n      function showPrevImage() {\n        let newIndex = currentGalleryIndex - 1;\n        if (newIndex \u003c 0) newIndex = galleryImages.length - 1;\n        animateImageTransition(newIndex, 'prev');\n      }\n      function showNextImage() {\n        let newIndex = currentGalleryIndex + 1;\n        if (newIndex \u003e= galleryImages.length) newIndex = 0;\n        animateImageTransition(newIndex, 'next');\n      }\n      function closeModal() {\n        modal.classList.remove('is-open');\n        modal.style.backgroundColor = 'rgba(0, 0, 0, 0)';\n        modalImg.style.transform = `translate(0, ${currentTranslateY}px) scale(1)`;\n        setTimeout(() =\u003e { modal.style.display = 'none'; }, 350);\n        document.body.style.overflow = '';\n      }\n      galleryWrappers.forEach((wrapper, index) =\u003e {\n        wrapper.addEventListener('click', (e) =\u003e {\n          e.preventDefault();\n          e.stopImmediatePropagation();\n          updateModalImage(index);\n          currentTranslateX = 0; currentTranslateY = 0; currentScale = 1; swipeDirection = null;\n          modal.style.backgroundColor = 'rgba(0, 0, 0, 0.85)';\n          modalImg.style.transition = 'none';\n          modalImg.style.transform = 'translate(0, 0) scale(1)';\n          modalImg.style.opacity = '1';\n          modal.style.display = 'flex';\n          setTimeout(() =\u003e {\n            modal.classList.add('is-open');\n            modalImg.style.transition = 'transform 0.3s ease-out, opacity 0.3s ease';\n          }, 10);\n          document.body.style.overflow = 'hidden';\n        }, { capture: true });\n      });\n      closeBtn.addEventListener('click', closeModal);\n      modal.addEventListener('click', (e) =\u003e {\n        if (e.target === modal || e.target === document.querySelector('.gallery-modal__content')) closeModal();\n      });\n      modalPrevBtn.addEventListener('click', (e) =\u003e { e.stopPropagation(); showPrevImage(); });\n      modalNextBtn.addEventListener('click', (e) =\u003e { e.stopPropagation(); showNextImage(); });\n      modal.addEventListener('touchstart', e =\u003e {\n        if (e.touches.length === 2) {\n          isPinching = true; isDragging = false;\n          initialPinchDistance = getDistance(e.touches);\n          modalImg.style.transition = 'none';\n        } else if (e.touches.length === 1 \u0026\u0026 !isPinching) {\n          isDragging = true; swipeDirection = null;\n          touchStartX = e.touches[0].clientX;\n          touchStartY = e.touches[0].clientY;\n          modalImg.style.transition = 'none';\n        }\n      }, { passive: false });\n      modal.addEventListener('touchmove', e =\u003e {\n        if (isPinching \u0026\u0026 e.touches.length === 2) {\n          e.preventDefault();\n          const currentDistance = getDistance(e.touches);\n          currentScale = Math.max(1, currentDistance \/ initialPinchDistance);\n          modalImg.style.transform = `translate(${currentTranslateX}px, ${currentTranslateY}px) scale(${currentScale})`;\n        } else if (isDragging \u0026\u0026 e.touches.length === 1 \u0026\u0026 currentScale === 1) {\n          const deltaX = e.touches[0].clientX - touchStartX;\n          const deltaY = e.touches[0].clientY - touchStartY;\n          if (!swipeDirection) {\n            if (Math.abs(deltaX) \u003e Math.abs(deltaY) \u0026\u0026 Math.abs(deltaX) \u003e 5) swipeDirection = 'h';\n            else if (Math.abs(deltaY) \u003e Math.abs(deltaX) \u0026\u0026 Math.abs(deltaY) \u003e 5) swipeDirection = 'v';\n          }\n          if (swipeDirection === 'h') {\n            e.preventDefault();\n            currentTranslateX = deltaX;\n            modalImg.style.transform = `translate(${currentTranslateX}px, 0) scale(1)`;\n          } else if (swipeDirection === 'v') {\n            e.preventDefault();\n            currentTranslateY = deltaY;\n            const opacity = Math.max(0, 1 - Math.abs(currentTranslateY) \/ (window.innerHeight \/ 1.5));\n            modalImg.style.transform = `translate(0, ${currentTranslateY}px) scale(1)`;\n            modal.style.backgroundColor = `rgba(0, 0, 0, ${0.85 * opacity})`;\n          }\n        }\n      }, { passive: false });\n      modal.addEventListener('touchend', e =\u003e {\n        if (isPinching \u0026\u0026 e.touches.length \u003c 2) {\n          isPinching = false; currentScale = 1;\n          modalImg.style.transition = 'transform 0.3s ease-out';\n          modalImg.style.transform = `translate(${currentTranslateX}px, ${currentTranslateY}px) scale(1)`;\n        } else if (isDragging) {\n          isDragging = false;\n          if (currentScale \u003e 1) return;\n          modalImg.style.transition = 'transform 0.3s ease-out, opacity 0.3s ease';\n          if (swipeDirection === 'h') {\n            const swipeThreshold = 50;\n            if (currentTranslateX \u003c -swipeThreshold) showNextImageFromSwipe(currentTranslateX);\n            else if (currentTranslateX \u003e swipeThreshold) showPrevImageFromSwipe(currentTranslateX);\n            else { currentTranslateX = 0; modalImg.style.transform = `translate(0, 0) scale(1)`; }\n          } else if (swipeDirection === 'v') {\n            if (currentTranslateY \u003e 100 || currentTranslateY \u003c -100) {\n              closeModal();\n            } else {\n              currentTranslateY = 0;\n              modal.style.transition = 'background-color 0.3s ease';\n              modal.style.backgroundColor = 'rgba(0, 0, 0, 0.85)';\n              modalImg.style.transform = `translate(0, 0) scale(1)`;\n            }\n          }\n          swipeDirection = null;\n        }\n      });\n      document.addEventListener('keydown', e =\u003e {\n        if (!modal.classList.contains('is-open')) return;\n        if (e.key === 'ArrowLeft') showPrevImage();\n        else if (e.key === 'ArrowRight') showNextImage();\n        else if (e.key === 'Escape') closeModal();\n      });\n    });\n  \u003c\/script\u003e\n\n\n\n\n\n\n\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e","brand":"EVEN","offers":[{"title":"ブラック \/ FREE","offer_id":46418764497114,"sku":"E25H0160K-01-00","price":16500.0,"currency_code":"JPY","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0654\/2609\/6346\/files\/even0236.jpg?v=1748586388"},{"product_id":"e25z0251k","title":"待望の再入荷！［STYLE EVEN］キャディバッグカバー","description":"\u003c!-- ▼▼ 見出し ▼▼ --\u003e\n\u003cstyle\u003e\n\/* 見出し本体 *\/\n.product__description h2.product-heading-text {\n  position: relative;\n  padding: 0.25em 1em;\n  border-top: solid 2px black;\n  border-bottom: solid 2px black;\n  font-size: 1.4em;\n  font-weight: bold;\n  line-height: 1.5;\n  margin: 1em 0 1em;\n}\n\n  .product-heading-text:before,\n.product-heading-text:after {\n  content: '';\n  position: absolute;\n  top: -7px;\n  width: 2px;\n  height: calc(100% + 14px);\n  background-color: black;\n}\n\n.product-heading-text:before { left: 7px; }\n.product-heading-text:after  { right: 7px; }\n\n\/* SPのみ改行用 *\/\n.sp-only {\n  display: inline;\n}\n\n\/* PC *\/\n@media (min-width: 768px) {\n  .product__description h2.product-heading-text {\n    font-size: 18px;\n  }\n  .sp-only {\n    display: none;\n  }\n}\n\u003c\/style\u003e\n\u003ch2 class=\"product-heading-text\"\u003e旅ゴルファー必携！\u003cbr\u003eストレスフリーなEVEN\u003cbr class=\"sp-only\"\u003eオリジナルキャディバッグカバー\u003c\/h2\u003e\n\u003c!-- ▼▼ 動画（元コード完全踏襲 + トグルUI追加） ▼▼ --\u003e\n\u003cstyle\u003e\n.product-video-wrapper {\n  position: relative;\n  width: 100%;\n  max-width: 100%;\n  overflow: hidden;\n  border-radius: 8px;\n}\n.product-video-wrapper video {\n  width: 100%;\n  height: auto;\n  display: block;\n}\n@media (min-width: 767px) {\n  .product-video-wrapper {\n    max-width: 60%;\n    margin: 0 auto;\n  }\n}\n\n\/* ===== ここからUI追加（レイアウト非干渉） ===== *\/\n.video-sound-toggle {\n  position: absolute;\n  bottom: 12px;\n  right: 12px;\n  z-index: 2;\n  display: flex;\n  align-items: center;\n  gap: 8px;\n  background: rgba(0,0,0,0.45);\n  padding: 6px 10px;\n  border-radius: 999px;\n}\n\n\/* アイコン *\/\n.video-sound-toggle img {\n  width: 22px;\n  height: 22px;\n  display: block;\n}\n\n\/* トグル *\/\n.video-sound-toggle .switch {\n  position: relative;\n  width: 44px;\n  height: 24px;\n}\n\n.video-sound-toggle .switch input {\n  display: none;\n}\n\n.video-sound-toggle .slider {\n  position: absolute;\n  inset: 0;\n  background: #ccc;\n  border-radius: 999px;\n  cursor: pointer;\n  transition: 0.2s;\n}\n\n.video-sound-toggle .slider::before {\n  content: \"\";\n  position: absolute;\n  width: 20px;\n  height: 20px;\n  left: 2px;\n  top: 2px;\n  background: #fff;\n  border-radius: 50%;\n  transition: 0.2s;\n}\n\n.video-sound-toggle input:checked + .slider {\n  background: #4caf50;\n}\n\n.video-sound-toggle input:checked + .slider::before {\n  transform: translateX(20px);\n}\n\n\/* ===== 見出しデザイン ===== *\/\n.product-heading {\n  margin: 32px 0 20px;\n  text-align: center;\n  font-size: 22px;\n  font-weight: 600;\n  line-height: 1.5;\n  letter-spacing: 0.04em;\n}\n\n.product-heading span {\n  display: block;\n  margin-top: 6px;\n  font-size: 15px;\n  font-weight: 400;\n  color: #555;\n}\n\n@media (min-width: 768px) {\n  .product-heading {\n    font-size: 26px;\n  }\n  .product-heading span {\n    font-size: 16px;\n  }\n}\n\n\/* スマホだけ改行 *\/\n.sp-only {\n  display: none;\n}\n@media (max-width: 767px) {\n  .sp-only {\n    display: inline;\n  }\n}\n\u003c\/style\u003e\n\u003cdiv class=\"product-video-wrapper\"\u003e\n\u003cvideo id=\"productVideo\" playsinline=\"\" muted=\"\" loop=\"loop\" autoplay=\"autoplay\" src=\"https:\/\/cdn.shopify.com\/videos\/c\/o\/v\/458dc7a25f144dd0a08b4397c9dbb36f.mp4\"\u003e\n  \u003c\/video\u003e \u003c!-- 音トグルUI（overlay） --\u003e\n\u003cdiv class=\"video-sound-toggle\"\u003e\n\u003cimg id=\"videoSoundIcon\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0654\/2609\/6346\/files\/mute.png?v=1768818958\" alt=\"mute\"\u003e \u003clabel class=\"switch\"\u003e \u003cinput type=\"checkbox\" id=\"videoSoundSwitch\"\u003e \u003cspan class=\"slider\"\u003e\u003c\/span\u003e \u003c\/label\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003c!-- ▲▲ 動画ここまで ▲▲ --\u003e\n\u003cp\u003e\u003cbr\u003e\u003c\/p\u003e\n\u003cp\u003e宅配便でキャディバッグを送る際に面倒なカバーの準備。\u003cbr\u003eそんな悩みを解決してくれる、軽くてかさばらないEVENオリジナルのキャディバッグカバーが登場。\u003cbr\u003eぐーんと伸びる素材だから、力もいらず簡単に装着可能。\u003cbr\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cimg alt=\"\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0654\/2609\/6346\/files\/326A3231.jpg?v=1756353103\"\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cbr\u003eしわになりにくい伸縮素材を採用し、くるっと丸めれば付属の巾着サイズに。\u003cbr\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cimg alt=\"\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0654\/2609\/6346\/files\/326A3238.jpg?v=1756353103\"\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cbr\u003eキャディバッグのポケットに入れておけば、使いたいときにサッと取り出して広げるだけ。\u003cbr\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cimg alt=\"\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0654\/2609\/6346\/files\/326A2483.jpg?v=1756353103\"\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cbr\u003e上部のタグに宅配伝票をつければそのまま配送することも。\u003c\/p\u003e\n\u003cp\u003e\u003cimg alt=\"\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0654\/2609\/6346\/files\/326A2464.jpg?v=1756353103\"\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cbr\u003e\u003c\/p\u003e\n\u003cp\u003e見た目は単色でシンプル仕上がり。\u003cbr\u003e両面にはおなじみのEVENのロゴをさりげなく配置することで、主張しすぎないのに遊び心がある、EVENらしいデザインに。\u003cbr\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cimg alt=\"\" src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/326A2442.jpg?v=1756353103\u0026amp;width=1100\"\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cbr\u003e合わせやすく旅先でも映えるスマートなデザイン。\u003c\/p\u003e\n\u003cp\u003e\u003cimg alt=\"\" src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/326A2436.jpg?v=1756353103\u0026amp;width=1100\"\u003e\u003c\/p\u003e\n\u003cp\u003e＜\u003cspan class=\"Yjhzub\"\u003eAttention\u003c\/span\u003e＞\u003c\/p\u003e\n\u003cp\u003e\u003cspan style=\"font-size: 11.0pt; mso-bidi-font-size: 12.0pt; line-height: 107%; font-family: '游明朝',serif; mso-ascii-theme-font: minor-latin; mso-fareast-theme-font: minor-fareast; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: JA; mso-bidi-language: AR-SA;\"\u003e〇\u003c\/span\u003e\u003cspan style=\"font-size: 11.0pt; mso-bidi-font-size: 12.0pt; line-height: 107%; font-family: '游明朝',serif; mso-ascii-theme-font: minor-latin; mso-fareast-theme-font: minor-fareast; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: JA; mso-bidi-language: AR-SA;\"\u003e伸縮性の高い生地を採用しており、その特性上、縫い目や生地の縁部分に、ベース生地の白地がわずかに見える場合がございます。あらかじめご了承ください。\u003c\/span\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cspan style=\"font-size: 11.0pt; mso-bidi-font-size: 12.0pt; line-height: 107%; font-family: '游明朝',serif; mso-ascii-theme-font: minor-latin; mso-fareast-theme-font: minor-fareast; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: JA; mso-bidi-language: AR-SA;\"\u003e〇\u003cspan\u003e素材の特性上、水分・汗・\u003c\/span\u003e\u003cwbr\u003e\u003cspan\u003e摩擦などによりわずかに色落ちすることがあります。\u003c\/span\u003e\u003c\/span\u003e\u003c\/p\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003cp\u003e\u003cmeta charset=\"utf-8\"\u003e\u003cspan\u003eサイズ：130cm✕57cm\u003c\/span\u003e\u003cbr\u003e\u003cspan\u003e素材：ポリエステル\u003cbr\u003e\u003c\/span\u003e\u003cspan\u003e製造国：中国\u003c\/span\u003e\u003c\/p\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003cp\u003e\u003cspan data-stringify-type=\"paragraph-break\" class=\"c-mrkdwn__br\" aria-label=\"\"\u003e\u003c\/span\u003e\u003cspan\u003e商品コード｜E25Z0251K\u003c\/span\u003e\u003cbr\u003e\u003cspan\u003e購入時納期｜3-4日\u003c\/span\u003e\u003c\/p\u003e","brand":"EVEN","offers":[{"title":"Default Title","offer_id":46778839400666,"sku":"E25Z0251K-74-00","price":9680.0,"currency_code":"JPY","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0654\/2609\/6346\/files\/326A2422.jpg?v=1756353103"},{"product_id":"e25d0266k","title":"［V12別注］EXP JKT (EVEN)-撥水ジャケット","description":"\u003cstyle\u003e\n    \/* ========== ベーススタイル ========== *\/\n    .ProductMeta__Specification {\n      font-family: \"hiraginoW3\", Arial, sans-serif;\n    }\n    .ProductMeta__Accordion {\n      border-top: 1px solid #e5e5e5;\n    }\n    .ProductMeta__Accordion:last-child {\n      border-bottom: 1px solid #e5e5e5;\n    }\n    .ProductMeta__AccordionHeading {\n      cursor: pointer;\n      padding: 16px 0;\n      font-weight: bold;\n      position: relative;\n      display: flex;\n      justify-content: space-between;\n      align-items: center;\n    }\n    .ProductMeta__AccordionHeading::after {\n      content: \"+\";\n      font-weight: normal;\n      font-size: 16px;\n    }\n    .ProductMeta__AccordionHeading.c-show::after {\n      content: \"−\";\n    }\n    \/* 見出しアイコンとテキストのレイアウト用 *\/\n    .ProductMeta__AccordionTitle {\n      display: flex;\n      align-items: center;\n      gap: 12px; \/* アイコンとテキストの間隔 *\/\n    }\n    \/* ★ ベースのアイコンスタイル (Size, Detail, Shipping, Gallery) *\/\n    .accordion-icon {\n      width: 18px;\n      height: 18px;\n      object-fit: contain;\n      display: block;\n    }\n    \/* ★ Descriptionアイコン専用の調整 (少し小さくする) *\/\n    .accordion-icon--description {\n      width: 15px; \/* ここでサイズを調整します *\/\n      height: 15px;\n    }\n    .ProductMeta__AccordionContent {\n      overflow: hidden;\n      height: 0;\n      transition: height 0.35s ease;\n      padding-bottom: 0;\n    }\n    \/* ========== テーブル共通設定 ========== *\/\n    .ProductMeta__AccordionContent table {\n      width: 100%;\n      border-collapse: collapse;\n      margin-bottom: 16px;\n    }\n    .ProductMeta__AccordionContent th,\n    .ProductMeta__AccordionContent td {\n      border: 1px solid #ddd;\n      padding: 8px;\n      font-size: 11px;\n    }\n    .ProductMeta__AccordionContent table:not(.size-table) td {\n      text-align: left;\n    }\n    .ProductMeta__AccordionContent table:not(.size-table) td:first-child {\n      width: 30%;\n      color: #666;\n      border-right: none;\n    }\n    .ProductMeta__AccordionContent table:not(.size-table) td:last-child {\n      border-left: none;\n    }\n    \/* サイズテーブルのスタイル *\/\n    .size-table {\n      width: 100%;\n      border-collapse: collapse;\n      margin-top: 12px;\n      font-size: 10px;\n    }\n    .size-table thead th {\n      background: #f5f5f5;\n      font-weight: 600;\n      border: 1px solid #ddd;\n      padding: 10px 8px;\n    }\n    .size-table tbody th {\n      background: #fafafa;\n      font-weight: 600;\n      border: 1px solid #ddd;\n      padding: 10px 8px;\n    }\n    .size-table tbody td {\n      border: 1px solid #ddd;\n      padding: 10px 8px;\n    }\n    .size-table th, .size-table td {\n      text-align: center;\n    }\n    .size-note {\n      font-size: 12px;\n      color: #666;\n      margin-top: 8px;\n      line-height: 1.6;\n    }\n    \/* ========== スクロールエリア（Description等用） ========== *\/\n    .accordion-scroll-area {\n      max-height: 160px; \/* 表示領域の最大高さ *\/\n      overflow-y: auto;\n      padding-right: 8px;\n      margin-bottom: 16px;\n    }\n    .accordion-scroll-area::-webkit-scrollbar {\n      width: 4px;\n    }\n    .accordion-scroll-area::-webkit-scrollbar-track {\n      background: #f5f5f5;\n      border-radius: 4px;\n    }\n    .accordion-scroll-area::-webkit-scrollbar-thumb {\n      background: #ccc;\n      border-radius: 4px;\n    }\n    \/* ========== テキストスタイル ========== *\/\n    .ProductMeta__AccordionContent p,\n    .ProductMeta__AccordionContent li {\n      font-size: 12px;\n      line-height: 1.8;\n    }\n    .accordion-description .ProductMeta__AccordionContent p {\n      font-size: 12px;\n      font-weight: 300;\n      line-height: 2;\n      letter-spacing: 0.06em;\n      text-align: left;\n      margin: 0;\n    }\n    .accordion-description .ProductMeta__AccordionContent p + p {\n      margin-top: 12px;\n    }\n    \/* ========== サイズ視覚イメージ \u0026 スライダー ========== *\/\n    .size-visual {\n      margin-top: 24px;\n      margin-bottom: 24px;\n    }\n    .size-visual__image {\n      max-width: 55%;\n      margin: 0 auto;\n    }\n    .size-visual__image img {\n      width: 100%;\n      height: auto;\n      display: block;\n    }\n    .size-visual__slider-container {\n      position: relative;\n      margin-top: 16px;\n      padding: 0 30px;\n      display: flex;\n      align-items: center;\n    }\n    .size-visual__buttons {\n      display: flex;\n      gap: 8px;\n      overflow-x: auto;\n      scroll-behavior: smooth;\n      width: 100%;\n      -ms-overflow-style: none;\n      scrollbar-width: none;\n    }\n    .size-visual__buttons::-webkit-scrollbar {\n      display: none;\n    }\n    .size-btn {\n      flex: 0 0 28%;\n      padding: 12px 0;\n      font-size: 12px;\n      border: 1px solid #ddd;\n      background: #fff;\n      cursor: pointer;\n      white-space: nowrap;\n      transition: background 0.2s, color 0.2s;\n    }\n    .size-btn.is-active {\n      background: #111;\n      color: #fff;\n      border-color: #111;\n    }\n    .slider-arrow {\n      position: absolute;\n      top: 50%;\n      transform: translateY(-50%);\n      width: 30px;\n      height: 100%;\n      background: transparent;\n      border: none;\n      cursor: pointer;\n      z-index: 2;\n      padding: 0;\n      display: flex;\n      align-items: center;\n      justify-content: center;\n    }\n    .slider-arrow--prev { left: -5px; }\n    .slider-arrow--next { right: -5px; }\n    .slider-arrow::before {\n      content: '';\n      display: block;\n      width: 10px;\n      height: 10px;\n      border-top: 2px solid #333;\n      border-right: 2px solid #333;\n    }\n    .slider-arrow--prev::before { transform: rotate(-135deg); }\n    .slider-arrow--next::before { transform: rotate(45deg); }\n    .slider-arrow:focus { outline: none; }\n    \/* ========== Gallery グリッド設定 ========== *\/\n    .gallery-grid {\n      display: grid;\n      grid-template-columns: repeat(4, 1fr);\n      gap: 8px;\n      margin-bottom: 16px;\n    }\n    .gallery-item-wrapper {\n      width: 100%;\n      display: block;\n      cursor: pointer;\n      transition: opacity 0.2s ease;\n      -webkit-tap-highlight-color: transparent;\n    }\n    .gallery-item-wrapper:hover {\n      opacity: 0.7;\n    }\n    .gallery-item {\n      width: 100%;\n      height: auto;\n      display: block;\n      object-fit: cover;\n      aspect-ratio: 3 \/ 4;\n      pointer-events: none;\n    }\n    \/* ========== ギャラリーモーダル (拡大表示) ========== *\/\n    .gallery-modal {\n      display: none;\n      position: fixed;\n      z-index: 999999;\n      left: 0;\n      top: 0;\n      width: 100%;\n      height: 100%;\n      background-color: rgba(0, 0, 0, 0.85);\n      opacity: 0;\n      transition: opacity 0.35s ease, background-color 0.3s ease;\n      touch-action: none;\n    }\n    .gallery-modal.is-open {\n      display: flex;\n      opacity: 1;\n      justify-content: center;\n      align-items: center;\n    }\n    .gallery-modal__content {\n      position: relative;\n      display: inline-flex;\n      justify-content: center;\n      align-items: center;\n      width: auto;\n      height: auto;\n    }\n    #galleryModalImg {\n      max-height: 85vh;\n      max-width: calc(100vw - 160px);\n      width: auto;\n      height: auto;\n      display: block;\n      user-select: none;\n      transform: translate(0, 0) scale(1);\n      transition: transform 0.3s ease-out, opacity 0.3s ease;\n      box-shadow: 0 10px 40px rgba(0,0,0,0.3);\n    }\n    \/* インジケーター位置調整 *\/\n    .gallery-modal__indicator {\n      position: absolute;\n      bottom: 20px;\n      left: 50%;\n      transform: translateX(-50%);\n      color: #fff;\n      font-size: 14px;\n      font-family: \"futura\", Arial, sans-serif;\n      letter-spacing: 0.15em;\n      z-index: 1000000;\n      text-shadow: 0 2px 6px rgba(0,0,0,0.8);\n      font-weight: 400;\n      pointer-events: none;\n    }\n    \/* サムネイル一覧コンテナ *\/\n    .gallery-modal__thumbnails {\n      position: absolute;\n      bottom: 24px;\n      left: 50%;\n      transform: translateX(-50%);\n      display: flex;\n      gap: 8px;\n      z-index: 1000000;\n    }\n    .gallery-modal__thumb {\n      width: 48px;\n      height: 48px;\n      object-fit: cover;\n      cursor: pointer;\n      border: 2px solid transparent;\n      border-radius: 4px;\n      opacity: 0.5;\n      transition: all 0.2s ease;\n      box-shadow: 0 2px 4px rgba(0,0,0,0.5);\n    }\n    .gallery-modal__thumb:hover {\n      opacity: 0.8;\n    }\n    .gallery-modal__thumb.is-active {\n      border-color: #fff;\n      opacity: 1;\n    }\n    .gallery-modal__close {\n      position: absolute;\n      top: 16px;\n      right: 16px;\n      color: #fff;\n      font-size: 44px;\n      font-weight: 200;\n      cursor: pointer;\n      z-index: 1000000;\n      line-height: 1;\n      user-select: none;\n      transition: opacity 0.2s;\n      text-shadow: 0 2px 6px rgba(0,0,0,0.5);\n    }\n    .gallery-modal__close:hover {\n      opacity: 0.7;\n    }\n    .gallery-modal__arrow {\n      position: absolute;\n      top: 50%;\n      transform: translateY(-50%);\n      background: transparent;\n      border: none;\n      cursor: pointer;\n      padding: 20px;\n      z-index: 1000000;\n      display: flex;\n      align-items: center;\n      justify-content: center;\n      filter: drop-shadow(0 2px 4px rgba(0,0,0,0.5));\n    }\n    .gallery-modal__arrow--prev { left: -70px; }\n    .gallery-modal__arrow--next { right: -70px; }\n    .gallery-modal__arrow::before {\n      content: '';\n      display: block;\n      width: 26px;\n      height: 26px;\n      border-top: 3px solid #fff;\n      border-right: 3px solid #fff;\n    }\n    .gallery-modal__arrow--prev::before { transform: rotate(-135deg); }\n    .gallery-modal__arrow--next::before { transform: rotate(45deg); }\n    \/* ========== SP (スマホ) 用調整 ========== *\/\n    @media screen and (max-width: 768px) {\n      .ProductMeta__AccordionContent {\n        padding-bottom: 0 !important;\n      }\n      .size-visual {\n        margin-top: 16px;\n        margin-bottom: 20px;\n      }\n      .size-visual__image {\n        max-width: 100%;\n      }\n      .size-visual__slider-container {\n        padding: 0 24px;\n      }\n      .slider-arrow {\n        width: 24px;\n      }\n      .slider-arrow--prev { left: 0; }\n      .slider-arrow--next { right: 0; }\n      .gallery-grid {\n        grid-template-columns: repeat(2, 1fr);\n        gap: 4px;\n      }\n      #galleryModalImg {\n        max-width: 100vw;\n        max-height: 80vh;\n      }\n      .gallery-modal__thumbnails {\n        bottom: 20px;\n      }\n      .gallery-modal__thumb {\n        width: 40px;\n        height: 40px;\n      }\n      .gallery-modal__close {\n        top: 16px;\n        right: 16px;\n        font-size: 40px;\n      }\n      .gallery-modal__arrow {\n        padding: 15px;\n      }\n      .gallery-modal__arrow--prev { left: 0; }\n      .gallery-modal__arrow--next { right: 0; }\n    }\n  \u003c\/style\u003e\n\u003cdiv class=\"ProductMeta__Specification\"\u003e\n\u003cdiv class=\"ProductMeta__Accordion accordion-description\"\u003e\n\u003cdiv class=\"ProductMeta__AccordionHeading c-show\"\u003e\n\u003cdiv class=\"ProductMeta__AccordionTitle\"\u003e\n\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0654\/2609\/6346\/files\/description.png?v=1775810343\" alt=\"\" class=\"accordion-icon accordion-icon--description\"\u003e \u003cspan\u003eDescription\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"ProductMeta__AccordionContent\"\u003e\n\u003cdiv class=\"accordion-scroll-area\"\u003e\n\u003cp\u003e今年10周年を迎えたV12とEVENが特別に別注した、スペシャルなEXPジャケットが登場。\u003c\/p\u003e\n\u003cp\u003eV12で人気のウィンドブレーカーをベースに、メインラインにはない特別なカラーリングに仕上げました。\u003cbr\u003eボディにはシックなブラック、アームにはやわらかなサンドカラーを配した、洗練されたツートーンデザインが特徴。\u003c\/p\u003e\n\u003cp\u003e背中には、V12のロゴで使われる特徴的なカギカッコで「EVEN」のロゴを囲った、遊び心あふれるデザインを採用。\u003cbr\u003eゴルフ場で視線を集めること間違いなしの、別注ならではの特別な一着です。\u003c\/p\u003e\n\u003cp\u003e軽量かつ伸縮性が高く、撥水性に優れた機能的な生地を使用しているため、突然の雨にも対応でき、一日を通して快適なプレーをサポート。\u003c\/p\u003e\n\u003cp\u003eまた、肩回りの動きをスムーズにするラグランスリーブを採用することで、スイングを妨げません。\u003cbr\u003eシンプルで汎用性の高いカラーリングは、どんなコーディネートにも合わせやすく、幅広いシーンで活躍。\u003c\/p\u003e\n\u003cp\u003e機能性とデザイン性を高次元で両立したこの特別なジャケットで、スマートなゴルフスタイルを楽しんでください。\u003c\/p\u003e\n\u003cp\u003e【V12】\u003cbr\u003e「PLAY the FASHION」をコンセプトにした日本のファッションゴルフブランドです。ゴルフを楽しむのと同じようにファッションも楽しむ人をターゲットに、これまでのゴルフ界になかった自由でクリエイティブなデザインや、着せ替えができるオリジナルのキャディバッグなどを展開しています。\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"ProductMeta__Accordion\"\u003e\n\u003cdiv class=\"ProductMeta__AccordionHeading\"\u003e\n\u003cdiv class=\"ProductMeta__AccordionTitle\"\u003e\n\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0654\/2609\/6346\/files\/size.png?v=1775810343\" alt=\"\" class=\"accordion-icon\"\u003e \u003cspan\u003eSize\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"ProductMeta__AccordionContent\"\u003e\n\n\n\n\u003ctable class=\"size-table\"\u003e\n  \u003cthead\u003e\n    \u003ctr\u003e\n      \u003cth\u003eSIZE\u003c\/th\u003e\n      \u003cth\u003e裄丈\u003c\/th\u003e\n      \u003cth\u003e身幅\u003c\/th\u003e\n      \u003cth\u003e着丈\u003c\/th\u003e\n    \u003c\/tr\u003e\n  \u003c\/thead\u003e\n  \u003ctbody\u003e\n    \u003ctr\u003e\n      \u003cth\u003eM\u003c\/th\u003e\n      \u003ctd\u003e87\u003c\/td\u003e\n      \u003ctd\u003e57\u003c\/td\u003e\n      \u003ctd\u003e66\u003c\/td\u003e\n    \u003c\/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003eL\u003c\/th\u003e\n      \u003ctd\u003e90\u003c\/td\u003e\n      \u003ctd\u003e59.5\u003c\/td\u003e\n      \u003ctd\u003e69\u003c\/td\u003e\n    \u003c\/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003eXL\u003c\/th\u003e\n      \u003ctd\u003e93\u003c\/td\u003e\n      \u003ctd\u003e62\u003c\/td\u003e\n      \u003ctd\u003e72\u003c\/td\u003e\n    \u003c\/tr\u003e\n  \u003c\/tbody\u003e\n\u003c\/table\u003e\n\n\n\n\n\u003cp class=\"size-note\"\u003e※ 表記サイズは目安となります。\u003cbr\u003e※ 採寸方法により多少の誤差が生じる場合がございます。\u003c\/p\u003e\n      \u003c!-- ▼ [EDIT: サイズビジュアル] 寸法イメージ画像 \u0026 サイズボタン --\u003e\n      \u003c!-- ボタン非表示：該当の \u003cbutton class=\"size-btn\"〜\u003e\u003c\/button\u003e を丸ごと削除 --\u003e\n      \u003c!-- 画像URL変更：data-image=\"...\" の中のURLを書き換え --\u003e\n      \u003cdiv class=\"size-visual\"\u003e\n        \u003cdiv class=\"size-visual__image\"\u003e\n          \u003cimg id=\"sizeVisualImage\" src=\"\" alt=\"サイズ寸法イメージ\"\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"size-visual__slider-container\"\u003e\n          \u003cbutton class=\"slider-arrow slider-arrow--prev\" aria-label=\"前へ\"\u003e\u003c\/button\u003e\n          \u003cdiv class=\"size-visual__buttons\" id=\"sizeButtonsContainer\"\u003e\n            \u003c!-- [BTN:S] data-image にSサイズの画像URLを入れる --\u003e\n            \u003c!--\u003cbutton class=\"size-btn is-active\" data-size=\"S\" data-image=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0654\/2609\/6346\/files\/ssize-visualizer-ss-tshirt_0a2a9cf0-c136-4884-a558-94d76e511d52.png?v=1784175991\"\u003eS\u003c\/button\u003e --\u003e\n            \u003c!-- [BTN:M] data-image にMサイズの画像URLを入れる --\u003e\n            \u003cbutton class=\"size-btn\" data-size=\"M\" data-image=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0654\/2609\/6346\/files\/msize-visualizer-jacket_40d95e2f-764e-47e0-a8ed-72766cf84d36.png?v=1785992645\"\u003eM\u003c\/button\u003e\n            \u003c!-- [BTN:L] data-image にLサイズの画像URLを入れる --\u003e\n            \u003cbutton class=\"size-btn\" data-size=\"L\" data-image=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0654\/2609\/6346\/files\/lsize-visualizer-jacket_9eb323fc-034f-4024-a861-67875823dc15.png?v=1785992645\"\u003eL\u003c\/button\u003e\n            \u003c!-- [BTN:XL] data-image にXLサイズの画像URLを入れる --\u003e\n            \u003cbutton class=\"size-btn\" data-size=\"XL\" data-image=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0654\/2609\/6346\/files\/xlsize-visualizer-jacket_7345ccf5-437d-41bd-a1e0-0d6ae7e80d65.png?v=1785992645\"\u003eXL\u003c\/button\u003e\n          \u003c\/div\u003e\n          \u003cbutton class=\"slider-arrow slider-arrow--next\" aria-label=\"次へ\"\u003e\u003c\/button\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n      \u003c!-- ▲ [EDIT: サイズビジュアル] ここまで --\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"ProductMeta__Accordion\"\u003e\n\u003cdiv class=\"ProductMeta__AccordionHeading\"\u003e\n\u003cdiv class=\"ProductMeta__AccordionTitle\"\u003e\n\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0654\/2609\/6346\/files\/detail.png?v=1775810343\" alt=\"\" class=\"accordion-icon\"\u003e \u003cspan\u003eDetail\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"ProductMeta__AccordionContent\"\u003e\n\u003ctable\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003eブランド名\u003c\/td\u003e\n\u003ctd\u003eV12\u003c\/td\u003e\n\u003c\/tr\u003e\n\n\u003ctr\u003e\n\u003ctd\u003e商品コード\u003c\/td\u003e\n\u003ctd\u003eE25D0266K\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e原産国\u003c\/td\u003e\n\u003ctd\u003eベトナム\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e素材\u003c\/td\u003e\n\u003ctd\u003e4WAYストレッチリップ ポリエステル100%\u003c\/td\u003e\n\u003c\/tr\u003e\n  \u003ctr\u003e\n            \u003ctd\u003eモデル\u003c\/td\u003e\n            \u003ctd\u003e181cm \/ L着用\u003c\/td\u003e\n          \u003c\/tr\u003e\n\u003c\/tbody\u003e\n\u003c\/table\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"ProductMeta__Accordion\"\u003e\n\u003cdiv class=\"ProductMeta__AccordionHeading\"\u003e\n\u003cdiv class=\"ProductMeta__AccordionTitle\"\u003e\n\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0654\/2609\/6346\/files\/gallery.svg?v=1775810342\" alt=\"\" class=\"accordion-icon\"\u003e \u003cspan\u003eGallery\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"ProductMeta__AccordionContent\"\u003e\n\u003cdiv class=\"gallery-grid\"\u003e\n  \u003cdiv class=\"gallery-item-wrapper\" data-src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/bnb5076.jpg?v=1757319502\u0026amp;width=200\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/bnb5076.jpg?v=1757319502\u0026amp;width=200\" class=\"gallery-item\" alt=\"Gallery 1\"\u003e\u003c\/div\u003e\n      \u003cdiv class=\"gallery-item-wrapper\" data-src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/bnb5078.jpg?v=1757319502\u0026amp;width=200\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/bnb5078.jpg?v=1757319502\u0026amp;width=200\" class=\"gallery-item\" alt=\"Gallery 2\"\u003e\u003c\/div\u003e\n      \u003cdiv class=\"gallery-item-wrapper\" data-src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/bnb5079.jpg?v=1757319502\u0026amp;width=200\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/bnb5079.jpg?v=1757319502\u0026amp;width=200\" class=\"gallery-item\" alt=\"Gallery 3\"\u003e\u003c\/div\u003e\n      \u003cdiv class=\"gallery-item-wrapper\" data-src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/bnb5080.jpg?v=1757319502\u0026amp;width=200\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/bnb5080.jpg?v=1757319502\u0026amp;width=200\" class=\"gallery-item\" alt=\"Gallery 4\"\u003e\u003c\/div\u003e\n      \u003cdiv class=\"gallery-item-wrapper\" data-src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/bnb5081.jpg?v=1757319502\u0026amp;width=200\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/bnb5081.jpg?v=1757319502\u0026amp;width=200\" class=\"gallery-item\" alt=\"Gallery 5\"\u003e\u003c\/div\u003e\n      \u003cdiv class=\"gallery-item-wrapper\" data-src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/bnb5083.jpg?v=1757319502\u0026amp;width=200\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/bnb5083.jpg?v=1757319502\u0026amp;width=200\" class=\"gallery-item\" alt=\"Gallery 6\"\u003e\u003c\/div\u003e\n      \u003cdiv class=\"gallery-item-wrapper\" data-src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/bnb5084.jpg?v=1757319502\u0026amp;width=200\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/bnb5084.jpg?v=1757319502\u0026amp;width=200\" class=\"gallery-item\" alt=\"Gallery 7\"\u003e\u003c\/div\u003e\n      \u003cdiv class=\"gallery-item-wrapper\" data-src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/bnb5085.jpg?v=1757319502\u0026amp;width=200\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/bnb5085.jpg?v=1757319502\u0026amp;width=200\" class=\"gallery-item\" alt=\"Gallery 8\"\u003e\u003c\/div\u003e\n      \u003cdiv class=\"gallery-item-wrapper\" data-src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/326A0242.jpg?v=1758528974\u0026amp;width=200\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/326A0242.jpg?v=1758528974\u0026amp;width=200\" class=\"gallery-item\" alt=\"Gallery 9\"\u003e\u003c\/div\u003e\n      \u003cdiv class=\"gallery-item-wrapper\" data-src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/326A0322.jpg?v=1758528974\u0026amp;width=200\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/326A0322.jpg?v=1758528974\u0026amp;width=200\" class=\"gallery-item\" alt=\"Gallery 10\"\u003e\u003c\/div\u003e\n      \u003cdiv class=\"gallery-item-wrapper\" data-src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/326A0343.jpg?v=1758528974\u0026amp;width=200\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/326A0343.jpg?v=1758528974\u0026amp;width=200\" class=\"gallery-item\" alt=\"Gallery 11\"\u003e\u003c\/div\u003e\n      \u003cdiv class=\"gallery-item-wrapper\" data-src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/326A0377.jpg?v=1758528974\u0026amp;width=200\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/326A0377.jpg?v=1758528974\u0026amp;width=200\" class=\"gallery-item\" alt=\"Gallery 12\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"ProductMeta__Accordion\"\u003e\n\u003cdiv class=\"ProductMeta__AccordionHeading\"\u003e\n\u003cdiv class=\"ProductMeta__AccordionTitle\"\u003e\n\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0654\/2609\/6346\/files\/Shipping.png?v=1775810343\" alt=\"\" class=\"accordion-icon\"\u003e \u003cspan\u003eShipping\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"ProductMeta__AccordionContent\"\u003e\n\u003cul class=\"shipping-list\"\u003e\n\u003cli\u003e￥11,000以上購入で全国送料無料\u003c\/li\u003e\n\u003cli\u003e通常3-4営業日以内に出荷いたします。\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp class=\"shipping-policy\"\u003e\u003ca href=\"https:\/\/addix.co.jp\/ec-help\/\" rel=\"noopener\" target=\"_blank\"\u003e配送ポリシーはこちら\u003c\/a\u003e\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv id=\"galleryModal\" class=\"gallery-modal\"\u003e\n\u003cdiv class=\"gallery-modal__content\"\u003e\n\u003cspan class=\"gallery-modal__close\" id=\"galleryModalClose\"\u003e×\u003c\/span\u003e \u003cbutton class=\"gallery-modal__arrow gallery-modal__arrow--prev\" id=\"galleryPrevBtn\"\u003e\u003c\/button\u003e \u003cimg id=\"galleryModalImg\" alt=\"Expanded Image\"\u003e \u003cbutton class=\"gallery-modal__arrow gallery-modal__arrow--next\" id=\"galleryNextBtn\"\u003e\u003c\/button\u003e\n\u003cdiv class=\"gallery-modal__indicator\" id=\"galleryModalIndicator\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"gallery-modal__thumbnails\" id=\"galleryModalThumbnails\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cscript\u003e\n    document.addEventListener('DOMContentLoaded', function () {\n      \/\/ 1. アコーディオン開閉ロジック\n      document.querySelectorAll('.ProductMeta__Accordion').forEach(function (accordion) {\n        const heading = accordion.querySelector('.ProductMeta__AccordionHeading');\n        const content = accordion.querySelector('.ProductMeta__AccordionContent');\n        if (heading.classList.contains('c-show')) {\n          content.style.height = 'auto';\n        }\n        heading.addEventListener('click', function () {\n          const isOpen = heading.classList.contains('c-show');\n          heading.classList.toggle('c-show');\n          if (isOpen) {\n            content.style.height = content.scrollHeight + 'px';\n            setTimeout(() =\u003e { content.style.height = '0px'; }, 10);\n          } else {\n            content.style.height = content.scrollHeight + 'px';\n            content.addEventListener('transitionend', function onTransitionEnd() {\n              if (heading.classList.contains('c-show')) {\n                content.style.height = 'auto';\n              }\n              content.removeEventListener('transitionend', onTransitionEnd);\n            }, { once: true });\n          }\n        });\n      });\n      \/\/ 2. サイズ視覚イメージ \u0026 スライダー機能\n      const image = document.getElementById('sizeVisualImage');\n      const buttonsContainer = document.getElementById('sizeButtonsContainer');\n      const buttons = document.querySelectorAll('.size-btn');\n      const prevBtn = document.querySelector('.slider-arrow--prev');\n      const nextBtn = document.querySelector('.slider-arrow--next');\n      if (image \u0026\u0026 buttons.length \u003e 0) {\n        image.src = buttons[0].dataset.image;\n        buttons[0].classList.add('is-active');\n        buttons.forEach(btn =\u003e {\n          btn.addEventListener('click', () =\u003e {\n            image.src = btn.dataset.image;\n            buttons.forEach(b =\u003e b.classList.remove('is-active'));\n            btn.classList.add('is-active');\n          });\n        });\n        if (buttonsContainer \u0026\u0026 prevBtn \u0026\u0026 nextBtn) {\n          const scrollAmount = 100;\n          prevBtn.addEventListener('click', (e) =\u003e {\n            e.preventDefault();\n            buttonsContainer.scrollBy({ left: -scrollAmount, behavior: 'smooth' });\n          });\n          nextBtn.addEventListener('click', (e) =\u003e {\n            e.preventDefault();\n            buttonsContainer.scrollBy({ left: scrollAmount, behavior: 'smooth' });\n          });\n        }\n      }\n      \/\/ 3. Gallery モーダル機能 (スワイプダウン閉じる \u0026 サムネイル遷移追加)\n      const galleryWrappers = document.querySelectorAll('.gallery-item-wrapper');\n      const modal = document.getElementById('galleryModal');\n      const modalImg = document.getElementById('galleryModalImg');\n      const closeBtn = document.getElementById('galleryModalClose');\n      const modalPrevBtn = document.getElementById('galleryPrevBtn');\n      const modalNextBtn = document.getElementById('galleryNextBtn');\n      const indicator = document.getElementById('galleryModalIndicator');\n      const thumbnailsContainer = document.getElementById('galleryModalThumbnails');\n      let currentGalleryIndex = 0;\n      const galleryImages = Array.from(galleryWrappers).map(wrapper =\u003e wrapper.dataset.src);\n      \/\/ モーダル内のサムネイル動的生成\n      galleryImages.forEach((src, index) =\u003e {\n        const img = document.createElement('img');\n        img.src = src;\n        img.classList.add('gallery-modal__thumb');\n        if (index === 0) img.classList.add('is-active');\n        \/\/ サムネイルクリック時の直接ジャンプ処理\n        img.addEventListener('click', (e) =\u003e {\n          e.stopPropagation();\n          if (currentGalleryIndex !== index) {\n            const direction = index \u003e currentGalleryIndex ? 'next' : 'prev';\n            animateImageTransition(index, direction);\n          }\n        });\n        thumbnailsContainer.appendChild(img);\n      });\n      function updateModalImage(index) {\n        modalImg.src = galleryImages[index];\n        currentGalleryIndex = index;\n        if(indicator) {\n          indicator.textContent = `${index + 1} \/ ${galleryImages.length}`;\n        }\n        \/\/ サムネイルのアクティブ状態を更新\n        const thumbs = thumbnailsContainer.querySelectorAll('.gallery-modal__thumb');\n        thumbs.forEach((t, i) =\u003e {\n          if (i === index) t.classList.add('is-active');\n          else t.classList.remove('is-active');\n        });\n      }\n      let touchStartX = 0;\n      let touchStartY = 0;\n      let currentTranslateX = 0;\n      let currentTranslateY = 0;\n      let isDragging = false;\n      let isPinching = false;\n      let swipeDirection = null;\n      let initialPinchDistance = 0;\n      let currentScale = 1;\n      function getDistance(touches) {\n        return Math.hypot(touches[1].clientX - touches[0].clientX, touches[1].clientY - touches[0].clientY);\n      }\n      function animateImageTransition(newIndex, direction) {\n        const outX = direction === 'next' ? '-50px' : '50px';\n        const inX = direction === 'next' ? '50px' : '-50px';\n        modalImg.style.transform = `translate(${outX}, 0) scale(1)`;\n        modalImg.style.opacity = '0';\n        setTimeout(() =\u003e {\n          updateModalImage(newIndex);\n          modalImg.style.transition = 'none';\n          modalImg.style.transform = `translate(${inX}, 0) scale(1)`;\n          currentTranslateX = 0;\n          currentTranslateY = 0;\n          currentScale = 1;\n          setTimeout(() =\u003e {\n            modalImg.style.transition = 'transform 0.3s ease-out, opacity 0.3s ease';\n            modalImg.style.transform = 'translate(0, 0) scale(1)';\n            modalImg.style.opacity = '1';\n          }, 30);\n        }, 150);\n      }\n      function showNextImageFromSwipe(startX) {\n        let newIndex = currentGalleryIndex + 1;\n        if (newIndex \u003e= galleryImages.length) newIndex = 0;\n        modalImg.style.transform = `translate(${startX - 50}px, 0) scale(1)`;\n        modalImg.style.opacity = '0';\n        setTimeout(() =\u003e {\n          updateModalImage(newIndex);\n          modalImg.style.transition = 'none';\n          modalImg.style.transform = `translate(50px, 0) scale(1)`;\n          currentTranslateX = 0;\n          currentTranslateY = 0;\n          currentScale = 1;\n          setTimeout(() =\u003e {\n            modalImg.style.transition = 'transform 0.3s ease-out, opacity 0.3s ease';\n            modalImg.style.transform = 'translate(0, 0) scale(1)';\n            modalImg.style.opacity = '1';\n          }, 30);\n        }, 150);\n      }\n      function showPrevImageFromSwipe(startX) {\n        let newIndex = currentGalleryIndex - 1;\n        if (newIndex \u003c 0) newIndex = galleryImages.length - 1;\n        modalImg.style.transform = `translate(${startX + 50}px, 0) scale(1)`;\n        modalImg.style.opacity = '0';\n        setTimeout(() =\u003e {\n          updateModalImage(newIndex);\n          modalImg.style.transition = 'none';\n          modalImg.style.transform = `translate(-50px, 0) scale(1)`;\n          currentTranslateX = 0;\n          currentTranslateY = 0;\n          currentScale = 1;\n          setTimeout(() =\u003e {\n            modalImg.style.transition = 'transform 0.3s ease-out, opacity 0.3s ease';\n            modalImg.style.transform = 'translate(0, 0) scale(1)';\n            modalImg.style.opacity = '1';\n          }, 30);\n        }, 150);\n      }\n      function showPrevImage() {\n        let newIndex = currentGalleryIndex - 1;\n        if (newIndex \u003c 0) newIndex = galleryImages.length - 1;\n        animateImageTransition(newIndex, 'prev');\n      }\n      function showNextImage() {\n        let newIndex = currentGalleryIndex + 1;\n        if (newIndex \u003e= galleryImages.length) newIndex = 0;\n        animateImageTransition(newIndex, 'next');\n      }\n      function closeModal() {\n        modal.classList.remove('is-open');\n        modal.style.backgroundColor = 'rgba(0, 0, 0, 0)';\n        modalImg.style.transform = `translate(0, ${currentTranslateY}px) scale(1)`;\n        setTimeout(() =\u003e {\n          modal.style.display = 'none';\n        }, 350);\n        document.body.style.overflow = '';\n      }\n      galleryWrappers.forEach((wrapper, index) =\u003e {\n        wrapper.addEventListener('click', (e) =\u003e {\n          e.preventDefault();\n          e.stopImmediatePropagation();\n          updateModalImage(index);\n          currentTranslateX = 0;\n          currentTranslateY = 0;\n          currentScale = 1;\n          swipeDirection = null;\n          modal.style.backgroundColor = 'rgba(0, 0, 0, 0.85)';\n          modalImg.style.transition = 'none';\n          modalImg.style.transform = 'translate(0, 0) scale(1)';\n          modalImg.style.opacity = '1';\n          modal.style.display = 'flex';\n          setTimeout(() =\u003e {\n            modal.classList.add('is-open');\n            modalImg.style.transition = 'transform 0.3s ease-out, opacity 0.3s ease';\n          }, 10);\n          document.body.style.overflow = 'hidden';\n        }, { capture: true });\n      });\n      closeBtn.addEventListener('click', closeModal);\n      modal.addEventListener('click', (e) =\u003e {\n        if (e.target === modal || e.target === document.querySelector('.gallery-modal__content')) {\n          closeModal();\n        }\n      });\n      modalPrevBtn.addEventListener('click', (e) =\u003e {\n        e.stopPropagation();\n        showPrevImage();\n      });\n      modalNextBtn.addEventListener('click', (e) =\u003e {\n        e.stopPropagation();\n        showNextImage();\n      });\n      modal.addEventListener('touchstart', e =\u003e {\n        if (e.touches.length === 2) {\n          isPinching = true;\n          isDragging = false;\n          initialPinchDistance = getDistance(e.touches);\n          modalImg.style.transition = 'none';\n        } else if (e.touches.length === 1 \u0026\u0026 !isPinching) {\n          isDragging = true;\n          swipeDirection = null;\n          touchStartX = e.touches[0].clientX;\n          touchStartY = e.touches[0].clientY;\n          modalImg.style.transition = 'none';\n        }\n      }, { passive: false });\n      modal.addEventListener('touchmove', e =\u003e {\n        if (isPinching \u0026\u0026 e.touches.length === 2) {\n          e.preventDefault();\n          const currentDistance = getDistance(e.touches);\n          currentScale = Math.max(1, currentDistance \/ initialPinchDistance);\n          modalImg.style.transform = `translate(${currentTranslateX}px, ${currentTranslateY}px) scale(${currentScale})`;\n        } else if (isDragging \u0026\u0026 e.touches.length === 1 \u0026\u0026 currentScale === 1) {\n          const deltaX = e.touches[0].clientX - touchStartX;\n          const deltaY = e.touches[0].clientY - touchStartY;\n          if (!swipeDirection) {\n            if (Math.abs(deltaX) \u003e Math.abs(deltaY) \u0026\u0026 Math.abs(deltaX) \u003e 5) {\n              swipeDirection = 'h';\n            } else if (Math.abs(deltaY) \u003e Math.abs(deltaX) \u0026\u0026 Math.abs(deltaY) \u003e 5) {\n              swipeDirection = 'v';\n            }\n          }\n          if (swipeDirection === 'h') {\n            e.preventDefault();\n            currentTranslateX = deltaX;\n            modalImg.style.transform = `translate(${currentTranslateX}px, 0) scale(1)`;\n          } else if (swipeDirection === 'v') {\n            e.preventDefault();\n            currentTranslateY = deltaY;\n            const opacity = Math.max(0, 1 - Math.abs(currentTranslateY) \/ (window.innerHeight \/ 1.5));\n            modalImg.style.transform = `translate(0, ${currentTranslateY}px) scale(1)`;\n            modal.style.backgroundColor = `rgba(0, 0, 0, ${0.85 * opacity})`;\n          }\n        }\n      }, { passive: false });\n      modal.addEventListener('touchend', e =\u003e {\n        if (isPinching \u0026\u0026 e.touches.length \u003c 2) {\n          isPinching = false;\n          currentScale = 1;\n          modalImg.style.transition = 'transform 0.3s ease-out';\n          modalImg.style.transform = `translate(${currentTranslateX}px, ${currentTranslateY}px) scale(1)`;\n        } else if (isDragging) {\n          isDragging = false;\n          if (currentScale \u003e 1) return;\n          modalImg.style.transition = 'transform 0.3s ease-out, opacity 0.3s ease';\n          if (swipeDirection === 'h') {\n            const swipeThreshold = 50;\n            if (currentTranslateX \u003c -swipeThreshold) {\n              showNextImageFromSwipe(currentTranslateX);\n            } else if (currentTranslateX \u003e swipeThreshold) {\n              showPrevImageFromSwipe(currentTranslateX);\n            } else {\n              currentTranslateX = 0;\n              modalImg.style.transform = `translate(0, 0) scale(1)`;\n            }\n          } else if (swipeDirection === 'v') {\n            const swipeDownThreshold = 100;\n            if (currentTranslateY \u003e swipeDownThreshold || currentTranslateY \u003c -swipeDownThreshold) {\n              closeModal();\n            } else {\n              currentTranslateY = 0;\n              modal.style.transition = 'background-color 0.3s ease';\n              modal.style.backgroundColor = 'rgba(0, 0, 0, 0.85)';\n              modalImg.style.transform = `translate(0, 0) scale(1)`;\n            }\n          }\n          swipeDirection = null;\n        }\n      });\n      document.addEventListener('keydown', e =\u003e {\n        if (!modal.classList.contains('is-open')) return;\n        if (e.key === 'ArrowLeft') {\n          showPrevImage();\n        } else if (e.key === 'ArrowRight') {\n          showNextImage();\n        } else if (e.key === 'Escape') {\n          closeModal();\n        }\n      });\n    });\n  \u003c\/script\u003e\n\u003c\/div\u003e","brand":"EVEN","offers":[{"title":"BEIGE \/ M","offer_id":46819735240922,"sku":"E25D0266K-27-04","price":38500.0,"currency_code":"JPY","in_stock":true},{"title":"BEIGE \/ L","offer_id":46819735273690,"sku":"E25D0266K-27-05","price":38500.0,"currency_code":"JPY","in_stock":false},{"title":"BEIGE \/ XL","offer_id":46819735306458,"sku":"E25D0266K-27-06","price":38500.0,"currency_code":"JPY","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0654\/2609\/6346\/files\/bnb5076.jpg?v=1757319502"},{"product_id":"e26i0333k","title":"［BEAXIS別注］バランスコアターフ","description":"\u003ch5\u003e\u003cstrong\u003e履くだけで体幹が目覚める。EVEN別注「バランスコアターフ」誕生\u003c\/strong\u003e\u003c\/h5\u003e\n\n\u003cstyle\u003e\n  \/* 動画枠のスタイル *\/\n  .product-video-wrapper {\n    position: relative;\n    width: 100%;\n    max-width: 100%;\n    overflow: hidden;\n    border-radius: 8px;\n    margin-bottom: 20px;\n  }\n  .product-video-wrapper video {\n    width: 100%;\n    height: auto;\n    display: block;\n  }\n  @media (min-width: 1024px) {\n    .product-video-wrapper {\n      max-width: 60%;\n      margin: 0 auto 20px auto;\n    }\n  }\n\n  \/* 音声トグルボタンのスタイル *\/\n  .video-sound-toggle {\n    position: absolute;\n    bottom: 12px;\n    right: 12px;\n    z-index: 2;\n    display: flex;\n    align-items: center;\n    gap: 8px;\n    background: rgba(0,0,0,0.45);\n    padding: 6px 10px;\n    border-radius: 999px;\n  }\n  .video-sound-toggle img {\n    width: 22px;\n    height: 22px;\n    display: block;\n  }\n  .video-sound-toggle .switch {\n    position: relative;\n    width: 44px;\n    height: 24px;\n  }\n  .video-sound-toggle .switch input {\n    display: none;\n  }\n  .video-sound-toggle .slider {\n    position: absolute;\n    inset: 0;\n    background: #ccc;\n    border-radius: 999px;\n    cursor: pointer;\n    transition: 0.2s;\n  }\n  .video-sound-toggle .slider::before {\n    content: \"\";\n    position: absolute;\n    width: 20px;\n    height: 20px;\n    left: 2px;\n    top: 2px;\n    background: #fff;\n    border-radius: 50%;\n    transition: 0.2s;\n  }\n  .video-sound-toggle input:checked + .slider {\n    background: #4caf50;\n  }\n  .video-sound-toggle input:checked + .slider::before {\n    transform: translateX(20px);\n  }\n\u003c\/style\u003e\n\n\u003cdiv class=\"product-video-wrapper\"\u003e\n  \u003cvideo class=\"js-product-video\" src=\"https:\/\/cdn.shopify.com\/videos\/c\/o\/v\/f82d81dc2adb4becbf5e535f9a303cb9.mp4\" playsinline muted loop=\"loop\" autoplay=\"autoplay\"\u003e\u003c\/video\u003e\n  \u003cdiv class=\"video-sound-toggle\"\u003e\n    \u003cimg class=\"js-video-sound-icon\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0654\/2609\/6346\/files\/mute.png?v=1768818958\" alt=\"mute\"\u003e\n    \u003clabel class=\"switch\"\u003e\n      \u003cinput type=\"checkbox\" class=\"js-video-sound-switch\"\u003e\n      \u003cspan class=\"slider\"\u003e\u003c\/span\u003e\n    \u003c\/label\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003cscript\u003e\n(function () {\n  \/\/ ページ内に複数の動画があっても動くように処理します\n  const wrappers = document.querySelectorAll('.product-video-wrapper');\n  wrappers.forEach(function(wrapper) {\n    const video = wrapper.querySelector('.js-product-video');\n    const checkbox = wrapper.querySelector('.js-video-sound-switch');\n    const icon = wrapper.querySelector('.js-video-sound-icon');\n\n    \/\/ エラー防止と重複実行の防止\n    if (!video || !checkbox || !icon || wrapper.dataset.initialized) return;\n    wrapper.dataset.initialized = \"true\";\n\n    \/\/ 初期状態はミュート\n    video.muted = true;\n\n    checkbox.addEventListener('change', function () {\n      if (checkbox.checked) {\n        video.muted = false;\n        video.play();\n        icon.src = 'https:\/\/cdn.shopify.com\/s\/files\/1\/0654\/2609\/6346\/files\/unmute.png?v=1768818958';\n        icon.alt = 'unmute';\n      } else {\n        video.muted = true;\n        icon.src = 'https:\/\/cdn.shopify.com\/s\/files\/1\/0654\/2609\/6346\/files\/mute.png?v=1768818958';\n        icon.alt = 'mute';\n      }\n    });\n  });\n})();\n\u003c\/script\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003cp\u003e「体幹の重要性はわかっているけれど、トレーニングは正直面倒……」 そんなゴルファーの悩みを解決する革新的なゴルフシューズ「バランスコアターフ」に、待望のEVEN別注モデルが登場。\u003c\/p\u003e\n\u003cp\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0654\/2609\/6346\/files\/even6298.jpg?v=1769500052\" alt=\"\" width=\"435\" height=\"435\"\u003e\u003c\/p\u003e\n\u003cp\u003e既存のラインナップにはなかった、洗練されたグレーの別注カラーを採用。レースアップ（紐）式にすることで、最新機能とは裏腹に、クラシックで品格のある足元を演出します。\u003c\/p\u003e\n\u003cp\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0654\/2609\/6346\/files\/even6302.jpg?v=1769500052\" alt=\"\" width=\"426\" height=\"426\"\u003e\u003cbr\u003eまた、 「STYLE EVEN」のロゴをさりげなく印字。\u003cbr\u003e汎用性： 最新機能を搭載しながら、あらゆるゴルフウェアにマッチするデザインへ。\u003c\/p\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003cp\u003e\u003cimg alt=\"\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0654\/2609\/6346\/files\/even6306.jpg?v=1769500052\"\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003e特許技術が実現する「歩くだけ」の体幹トレーニング\u003c\/strong\u003e特許取得済みの「独自インソール」。\u003c\/p\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003cp\u003e\u003cimg alt=\"\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0654\/2609\/6346\/files\/even6305.jpg?v=1769500052\"\u003e\u003c\/p\u003e\n\u003cp\u003eさらに「トゥアップ形状の厚底ソール」が、ゴルフの常識を変えます。\u003cbr\u003e・ 自然と重心が内側にかかる設計で、歩行時の体重移動を最適化。\u003cbr\u003e・土踏まずを強力に支え、常に美しく安定した姿勢へと導きます。\u003c\/p\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003cp\u003e\u003cimg alt=\"\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0654\/2609\/6346\/files\/even0645.jpg?v=1772170931\"\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003e驚異の筋活動量\u003c\/strong\u003e\u003cbr\u003e一般的なスニーカーと比較し、太ももの筋活動量が\u003cspan lang=\"EN-US\"\u003e116\u003c\/span\u003e\u003cspan\u003e％\u003c\/span\u003eに向上。内転筋や大腿四頭筋を効率よく刺激し、ラウンドそのものがトレーニングに変わります。\u003c\/p\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003cp\u003e\u003cimg alt=\"\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0654\/2609\/6346\/files\/even0717.jpg?v=1772170931\"\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003e「低重心」がもたらす圧倒的なスイング安定感\u003c\/strong\u003e\u003cbr\u003eあえて重さを持たせた「ちょい重」仕様が、スイングの質を劇的に高めます。\u003cbr\u003e・シューズ全体の重心を下げることで、アドレスからフィニッシュまで一貫した安定感を提供。\u003cbr\u003e・下半身が安定することで、飛距離アップと正確な方向性をサポートします。\u003c\/p\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003cp\u003e\u003cimg alt=\"\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0654\/2609\/6346\/files\/even0870.jpg?v=1772170930\"\u003e\u003c\/p\u003e\n\u003cp\u003eゴルフも、身体も、歩きながら整える。\u003cbr\u003e履いて歩くだけで体幹を強化し、美しい姿勢をサポートする。ゴルフパフォーマンスの向上はもちろん、日常の歩行におけるシェイプアップ効果まで期待できる、まさに「魔法のシューズ」です。\u003c\/p\u003e\n\u003cp\u003e日々の練習では得られない圧倒的な安定感を、ぜひこの一足で体感してください。\u003c\/p\u003e\n\u003cp\u003e※お取り扱い上の注意：アスファルトやコンクリートなどの硬い地面を歩くと、スパイクの摩耗が早まる可能性があります。\u003c\/p\u003e\n\u003cp\u003e\u003cbr\u003e\u003cstrong\u003e▼サイズ\u003c\/strong\u003e\u003cbr\u003e7US M（25cm） : 足長:26.2\/足幅 : 8.6cm\u003cbr\u003e7.5US M（25.5cm） : 足長:26.4\/足幅 : 8.6cm\u003cbr\u003e8US M（26cm） : 足長:27.2\/足幅 : 8.7cm\u003cbr\u003e8.5US M（26.5cm） : 足長:27.7\/足幅 : 8.8cm\u003cbr\u003e9US M（27cm） : 足長:28.2\/足幅 : 8.9cm\u003cbr\u003e9.5US M（27.5cm） : 足長:28.7\/足幅 : 9cm\u003cbr\u003e10US M（28cm） : 足長:29.2\/足幅 : 9.1cm\u003cbr\u003e(木型による計測)\u003c\/p\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003cp\u003e\u003cbr\u003e\u003cspan\u003e重量：約\u003c\/span\u003e\u003cspan lang=\"EN-US\"\u003e630g (28cm\u003cspan\u003e \u003c\/span\u003e\u003c\/span\u003e\u003cspan\u003e片足で計測\u003c\/span\u003e\u003cspan lang=\"EN-US\"\u003e)\u003c\/span\u003e\u003cbr\u003e素材：アッパー：ポリウレタン \/ ポリエステル \/PVC\u003cbr\u003eアウトソール：合成底\u003cbr\u003e製造国：中国\u003cbr\u003e商品コード｜\u003cmeta charset=\"utf-8\"\u003e\u003cspan\u003ee26i0333k\u003c\/span\u003e\u003cbr\u003e購入時納期｜3-4日\u003c\/p\u003e","brand":"EVEN","offers":[{"title":"グレー \/ 7 US M","offer_id":47538832310490,"sku":"E26I0333K-07-18","price":27500.0,"currency_code":"JPY","in_stock":false},{"title":"グレー \/ 7.5 US M","offer_id":47538832343258,"sku":"E26I0333K-07-19","price":27500.0,"currency_code":"JPY","in_stock":false},{"title":"グレー \/ 8 US M","offer_id":47538832376026,"sku":"E26I0333K-07-20","price":27500.0,"currency_code":"JPY","in_stock":false},{"title":"グレー \/ 8.5 US M","offer_id":47538832408794,"sku":"E26I0333K-07-21","price":27500.0,"currency_code":"JPY","in_stock":true},{"title":"グレー \/ 9 US M","offer_id":47538832441562,"sku":"E26I0333K-07-22","price":27500.0,"currency_code":"JPY","in_stock":true},{"title":"グレー \/ 9.5 US M","offer_id":47538832474330,"sku":"E26I0333K-07-23","price":27500.0,"currency_code":"JPY","in_stock":false},{"title":"グレー \/ 10 US M","offer_id":47538832507098,"sku":"E26I0333K-07-24","price":27500.0,"currency_code":"JPY","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0654\/2609\/6346\/files\/BEAXISexclusive_1080_1350_2.png?v=1782380586"},{"product_id":"e26a0381k","title":"［Kappa別注］GAME POLO SHIRT","description":"\u003cstyle\u003e\n    \/* ========== ベーススタイル ========== *\/\n    .ProductMeta__Specification {\n      font-family: \"hiraginoW3\", Arial, sans-serif;\n    }\n    .ProductMeta__Accordion {\n      border-top: 1px solid #e5e5e5;\n    }\n    .ProductMeta__Accordion:last-child {\n      border-bottom: 1px solid #e5e5e5;\n    }\n    .ProductMeta__AccordionHeading {\n      cursor: pointer;\n      padding: 16px 0;\n      font-weight: bold;\n      position: relative;\n      display: flex;\n      justify-content: space-between;\n      align-items: center;\n    }\n    .ProductMeta__AccordionHeading::after {\n      content: \"+\";\n      font-weight: normal;\n      font-size: 16px;\n    }\n    .ProductMeta__AccordionHeading.c-show::after {\n      content: \"−\";\n    }\n    \/* 見出しアイコンとテキストのレイアウト用 *\/\n    .ProductMeta__AccordionTitle {\n      display: flex;\n      align-items: center;\n      gap: 12px; \/* アイコンとテキストの間隔 *\/\n    }\n    \/* ★ ベースのアイコンスタイル (Size, Detail, Shipping, Gallery) *\/\n    .accordion-icon {\n      width: 18px;\n      height: 18px;\n      object-fit: contain;\n      display: block;\n    }\n    \/* ★ Descriptionアイコン専用の調整 (少し小さくする) *\/\n    .accordion-icon--description {\n      width: 15px; \/* ここでサイズを調整します *\/\n      height: 15px;\n    }\n    .ProductMeta__AccordionContent {\n      overflow: hidden;\n      height: 0;\n      transition: height 0.35s ease;\n      padding-bottom: 0;\n    }\n    \/* ========== テーブル共通設定 ========== *\/\n    .ProductMeta__AccordionContent table {\n      width: 100%;\n      border-collapse: collapse;\n      margin-bottom: 16px;\n    }\n    .ProductMeta__AccordionContent th,\n    .ProductMeta__AccordionContent td {\n      border: 1px solid #ddd;\n      padding: 8px;\n      font-size: 11px;\n    }\n    .ProductMeta__AccordionContent table:not(.size-table) td {\n      text-align: left;\n    }\n    .ProductMeta__AccordionContent table:not(.size-table) td:first-child {\n      width: 30%;\n      color: #666;\n      border-right: none;\n    }\n    .ProductMeta__AccordionContent table:not(.size-table) td:last-child {\n      border-left: none;\n    }\n    \/* サイズテーブルのスタイル *\/\n    .size-table {\n      width: 100%;\n      border-collapse: collapse;\n      margin-top: 12px;\n      font-size: 10px;\n    }\n    .size-table thead th {\n      background: #f5f5f5;\n      font-weight: 600;\n      border: 1px solid #ddd;\n      padding: 10px 8px;\n    }\n    .size-table tbody th {\n      background: #fafafa;\n      font-weight: 600;\n      border: 1px solid #ddd;\n      padding: 10px 8px;\n    }\n    .size-table tbody td {\n      border: 1px solid #ddd;\n      padding: 10px 8px;\n    }\n    .size-table th, .size-table td {\n      text-align: center;\n    }\n    .size-note {\n      font-size: 12px;\n      color: #666;\n      margin-top: 8px;\n      line-height: 1.6;\n    }\n    \/* ========== スクロールエリア（Description等用） ========== *\/\n    .accordion-scroll-area {\n      max-height: 160px; \/* 表示領域の最大高さ *\/\n      overflow-y: auto;\n      padding-right: 8px;\n      margin-bottom: 16px;\n    }\n    .accordion-scroll-area::-webkit-scrollbar {\n      width: 4px;\n    }\n    .accordion-scroll-area::-webkit-scrollbar-track {\n      background: #f5f5f5;\n      border-radius: 4px;\n    }\n    .accordion-scroll-area::-webkit-scrollbar-thumb {\n      background: #ccc;\n      border-radius: 4px;\n    }\n    \/* ========== テキストスタイル ========== *\/\n    .ProductMeta__AccordionContent p,\n    .ProductMeta__AccordionContent li {\n      font-size: 12px;\n      line-height: 1.8;\n    }\n    .accordion-description .ProductMeta__AccordionContent p {\n      font-size: 12px;\n      font-weight: 300;\n      line-height: 2;\n      letter-spacing: 0.06em;\n      text-align: left;\n      margin: 0;\n    }\n    .accordion-description .ProductMeta__AccordionContent p + p {\n      margin-top: 12px;\n    }\n    \/* ========== 動画埋め込み（YouTube等）レスポンシブ対応 ========== *\/\n    .video-container {\n      position: relative;\n      width: 100%;\n      padding-top: 56.25%; \/* 16:9 *\/\n      margin-bottom: 16px;\n    }\n    .video-container iframe {\n      position: absolute;\n      top: 0;\n      left: 0;\n      width: 100%;\n      height: 100%;\n      border: 0;\n    }\n    \/* ========== サイズ視覚イメージ \u0026 スライダー ========== *\/\n    .size-visual {\n      margin-top: 24px;\n      margin-bottom: 24px;\n    }\n    .size-visual__image {\n      max-width: 55%;\n      margin: 0 auto;\n    }\n    .size-visual__image img {\n      width: 100%;\n      height: auto;\n      display: block;\n    }\n    .size-visual__slider-container {\n      position: relative;\n      margin-top: 16px;\n      padding: 0 30px;\n      display: flex;\n      align-items: center;\n    }\n    .size-visual__buttons {\n      display: flex;\n      gap: 8px;\n      overflow-x: auto;\n      scroll-behavior: smooth;\n      width: 100%;\n      -ms-overflow-style: none;\n      scrollbar-width: none;\n    }\n    .size-visual__buttons::-webkit-scrollbar {\n      display: none;\n    }\n    .size-btn {\n      flex: 0 0 28%;\n      padding: 12px 0;\n      font-size: 12px;\n      border: 1px solid #ddd;\n      background: #fff;\n      cursor: pointer;\n      white-space: nowrap;\n      transition: background 0.2s, color 0.2s;\n    }\n    .size-btn.is-active {\n      background: #111;\n      color: #fff;\n      border-color: #111;\n    }\n    .slider-arrow {\n      position: absolute;\n      top: 50%;\n      transform: translateY(-50%);\n      width: 30px;\n      height: 100%;\n      background: transparent;\n      border: none;\n      cursor: pointer;\n      z-index: 2;\n      padding: 0;\n      display: flex;\n      align-items: center;\n      justify-content: center;\n    }\n    .slider-arrow--prev { left: -5px; }\n    .slider-arrow--next { right: -5px; }\n    .slider-arrow::before {\n      content: '';\n      display: block;\n      width: 10px;\n      height: 10px;\n      border-top: 2px solid #333;\n      border-right: 2px solid #333;\n    }\n    .slider-arrow--prev::before { transform: rotate(-135deg); }\n    .slider-arrow--next::before { transform: rotate(45deg); }\n    .slider-arrow:focus { outline: none; }\n    \/* ========== Gallery グリッド設定 ========== *\/\n    .gallery-grid {\n      display: grid;\n      grid-template-columns: repeat(4, 1fr);\n      gap: 8px;\n      margin-bottom: 16px;\n    }\n    .gallery-item-wrapper {\n      width: 100%;\n      display: block;\n      cursor: pointer;\n      transition: opacity 0.2s ease;\n      -webkit-tap-highlight-color: transparent;\n    }\n    .gallery-item-wrapper:hover {\n      opacity: 0.7;\n    }\n    .gallery-item {\n      width: 100%;\n      height: auto;\n      display: block;\n      object-fit: cover;\n      aspect-ratio: 3 \/ 4;\n      pointer-events: none;\n    }\n    \/* ========== ギャラリーモーダル (拡大表示) ========== *\/\n    .gallery-modal {\n      display: none;\n      position: fixed;\n      z-index: 999999;\n      left: 0;\n      top: 0;\n      width: 100%;\n      height: 100%;\n      background-color: rgba(0, 0, 0, 0.85);\n      opacity: 0;\n      transition: opacity 0.35s ease, background-color 0.3s ease;\n      touch-action: none;\n    }\n    .gallery-modal.is-open {\n      display: flex;\n      opacity: 1;\n      justify-content: center;\n      align-items: center;\n    }\n    .gallery-modal__content {\n      position: relative;\n      display: inline-flex;\n      justify-content: center;\n      align-items: center;\n      width: auto;\n      height: auto;\n    }\n    #galleryModalImg {\n      max-height: 85vh;\n      max-width: calc(100vw - 160px);\n      width: auto;\n      height: auto;\n      display: block;\n      user-select: none;\n      transform: translate(0, 0) scale(1);\n      transition: transform 0.3s ease-out, opacity 0.3s ease;\n      box-shadow: 0 10px 40px rgba(0,0,0,0.3);\n    }\n    \/* インジケーター位置調整 *\/\n    .gallery-modal__indicator {\n      position: absolute;\n      bottom: 20px;\n      left: 50%;\n      transform: translateX(-50%);\n      color: #fff;\n      font-size: 14px;\n      font-family: \"futura\", Arial, sans-serif;\n      letter-spacing: 0.15em;\n      z-index: 1000000;\n      text-shadow: 0 2px 6px rgba(0,0,0,0.8);\n      font-weight: 400;\n      pointer-events: none;\n    }\n    \/* サムネイル一覧コンテナ *\/\n    .gallery-modal__thumbnails {\n      position: absolute;\n      bottom: 24px;\n      left: 50%;\n      transform: translateX(-50%);\n      display: flex;\n      gap: 8px;\n      z-index: 1000000;\n    }\n    .gallery-modal__thumb {\n      width: 48px;\n      height: 48px;\n      object-fit: cover;\n      cursor: pointer;\n      border: 2px solid transparent;\n      border-radius: 4px;\n      opacity: 0.5;\n      transition: all 0.2s ease;\n      box-shadow: 0 2px 4px rgba(0,0,0,0.5);\n    }\n    .gallery-modal__thumb:hover {\n      opacity: 0.8;\n    }\n    .gallery-modal__thumb.is-active {\n      border-color: #fff;\n      opacity: 1;\n    }\n    .gallery-modal__close {\n      position: absolute;\n      top: 16px;\n      right: 16px;\n      color: #fff;\n      font-size: 44px;\n      font-weight: 200;\n      cursor: pointer;\n      z-index: 1000000;\n      line-height: 1;\n      user-select: none;\n      transition: opacity 0.2s;\n      text-shadow: 0 2px 6px rgba(0,0,0,0.5);\n    }\n    .gallery-modal__close:hover {\n      opacity: 0.7;\n    }\n    .gallery-modal__arrow {\n      position: absolute;\n      top: 50%;\n      transform: translateY(-50%);\n      background: transparent;\n      border: none;\n      cursor: pointer;\n      padding: 20px;\n      z-index: 1000000;\n      display: flex;\n      align-items: center;\n      justify-content: center;\n      filter: drop-shadow(0 2px 4px rgba(0,0,0,0.5));\n    }\n    .gallery-modal__arrow--prev { left: -70px; }\n    .gallery-modal__arrow--next { right: -70px; }\n    .gallery-modal__arrow::before {\n      content: '';\n      display: block;\n      width: 26px;\n      height: 26px;\n      border-top: 3px solid #fff;\n      border-right: 3px solid #fff;\n    }\n    .gallery-modal__arrow--prev::before { transform: rotate(-135deg); }\n    .gallery-modal__arrow--next::before { transform: rotate(45deg); }\n    \/* ========== SP (スマホ) 用調整 ========== *\/\n    @media screen and (max-width: 768px) {\n      .ProductMeta__AccordionContent {\n        padding-bottom: 0 !important;\n      }\n      .size-visual {\n        margin-top: 16px;\n        margin-bottom: 20px;\n      }\n      .size-visual__image {\n        max-width: 100%;\n      }\n      .size-visual__slider-container {\n        padding: 0 24px;\n      }\n      .slider-arrow {\n        width: 24px;\n      }\n      .slider-arrow--prev { left: 0; }\n      .slider-arrow--next { right: 0; }\n      .gallery-grid {\n        grid-template-columns: repeat(2, 1fr);\n        gap: 4px;\n      }\n      #galleryModalImg {\n        max-width: 100vw;\n        max-height: 80vh;\n      }\n      .gallery-modal__thumbnails {\n        bottom: 20px;\n      }\n      .gallery-modal__thumb {\n        width: 40px;\n        height: 40px;\n      }\n      .gallery-modal__close {\n        top: 16px;\n        right: 16px;\n        font-size: 40px;\n      }\n      .gallery-modal__arrow {\n        padding: 15px;\n      }\n      .gallery-modal__arrow--prev { left: 0; }\n      .gallery-modal__arrow--next { right: 0; }\n    }\n  \u003c\/style\u003e\n\u003cdiv class=\"video-container\"\u003e\n  \u003ciframe src=\"https:\/\/www.youtube.com\/embed\/2rB7hbn2MyM\" title=\"YouTube video player\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" allowfullscreen\u003e\u003c\/iframe\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"ProductMeta__Specification\"\u003e\n\u003cdiv class=\"ProductMeta__Accordion accordion-description\"\u003e\n\u003cdiv class=\"ProductMeta__AccordionHeading c-show\"\u003e\n\u003cdiv class=\"ProductMeta__AccordionTitle\"\u003e\n\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0654\/2609\/6346\/files\/description.png?v=1775810343\" alt=\"\" class=\"accordion-icon accordion-icon--description\"\u003e \u003cspan\u003eDescription\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"ProductMeta__AccordionContent\"\u003e\n\u003cdiv class=\"accordion-scroll-area\"\u003e\n\u003cp\u003e『EVEN』とイタリアのスポーツブランド『Kappa（カッパ）』による、特別な別注ゴルフウェアが登場。\u003cbr\u003e\nクラシックとモダンを融合させた、KAPPAらしいスポーティーな存在感を放つ半袖ゴルフポロシャツ。\u003cbr\u003e深みのあるロイヤルブルーをベースに、幾何学調の総柄をさりげなく表現し、上品さと個性を兼ね備えたデザインに仕上げています。\u003cbr\u003e\n襟元にはイタリアンブランドを象徴するトリコロールカラーのアクセントを配置し、洗練された印象を演出。\u003cbr\u003e\n左胸にはKAPPAの象徴的なロゴ、右胸には縦型のグラフィックパッチを施し、視覚的なポイントを加えています。\u003cbr\u003e\nさらに袖口にもカラーアクセントを取り入れ、全体に統一感のある仕上がりに。\u003cbr\u003e\n素材には軽量かつ通気性に優れた機能性ファブリックを採用し、プレー中も快適な着心地をキープします。\u003cbr\u003e\n程よく身体にフィットするレギュラーシルエットで、スイング時の可動域も確保。ゴルフシーンはもちろん、日常のカジュアルスタイルにも映える一着です。\u003c\/p\u003e\n\n\u003cp\u003e【Kappa（カッパ）】\u003cbr\u003e1967年にイタリア・トリノで誕生した100年以上の歴史を持つグローバルスポーツブランドです。男女が背中合わせに座った「OMINI（オミニ）」ロゴが特徴で、サッカーをはじめとするスポーツウェアのほか、ファッション性の高いBANDA（バンダ）シリーズなど、日常使いできるアイテムを世界中で展開しています。\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"ProductMeta__Accordion\"\u003e\n\u003cdiv class=\"ProductMeta__AccordionHeading\"\u003e\n\u003cdiv class=\"ProductMeta__AccordionTitle\"\u003e\n\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0654\/2609\/6346\/files\/size.png?v=1775810343\" alt=\"\" class=\"accordion-icon\"\u003e \u003cspan\u003eSize\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"ProductMeta__AccordionContent\"\u003e\n\u003ctable class=\"size-table\"\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eSIZE\u003c\/th\u003e\n\u003cth\u003e肩幅\u003c\/th\u003e\n\u003cth\u003e身幅\u003c\/th\u003e\n\u003cth\u003e袖丈\u003c\/th\u003e\n\u003cth\u003e着丈\u003c\/th\u003e\n\u003c\/tr\u003e\n\u003c\/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003cth\u003eM\u003c\/th\u003e\n\u003ctd\u003e48\u003c\/td\u003e\n\u003ctd\u003e52\u003c\/td\u003e\n\u003ctd\u003e23\u003c\/td\u003e\n\u003ctd\u003e66\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eL\u003c\/th\u003e\n\u003ctd\u003e50\u003c\/td\u003e\n\u003ctd\u003e55\u003c\/td\u003e\n\u003ctd\u003e24\u003c\/td\u003e\n\u003ctd\u003e68\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eXL\u003c\/th\u003e\n\u003ctd\u003e52.5\u003c\/td\u003e\n\u003ctd\u003e59\u003c\/td\u003e\n\u003ctd\u003e25\u003c\/td\u003e\n\u003ctd\u003e70\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003e3L\u003c\/th\u003e\n\u003ctd\u003e54.5\u003c\/td\u003e\n\u003ctd\u003e62\u003c\/td\u003e\n\u003ctd\u003e26\u003c\/td\u003e\n\u003ctd\u003e72\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\n\u003c\/table\u003e\n\u003cp class=\"size-note\"\u003e※ 表記サイズは目安となります。\u003cbr\u003e※ 採寸方法により多少の誤差が生じる場合がございます。\u003c\/p\u003e\n      \u003c!-- ▼ [EDIT: サイズビジュアル] 寸法イメージ画像 \u0026 サイズボタン --\u003e\n      \u003c!-- ボタン非表示：該当の \u003cbutton class=\"size-btn\"〜\u003e\u003c\/button\u003e を丸ごと削除 --\u003e\n      \u003c!-- 画像URL変更：data-image=\"...\" の中のURLを書き換え --\u003e\n      \u003cdiv class=\"size-visual\"\u003e\n        \u003cdiv class=\"size-visual__image\"\u003e\n          \u003cimg id=\"sizeVisualImage\" src=\"\" alt=\"サイズ寸法イメージ\"\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"size-visual__slider-container\"\u003e\n          \u003cbutton class=\"slider-arrow slider-arrow--prev\" aria-label=\"前へ\"\u003e\u003c\/button\u003e\n          \u003cdiv class=\"size-visual__buttons\" id=\"sizeButtonsContainer\"\u003e\n            \u003c!-- [BTN:S] data-image にSサイズの画像URLを入れる --\u003e\n\n            \u003c!--\u003cbutton class=\"size-btn is-active\" data-size=\"S\" data-image=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0654\/2609\/6346\/files\/ssize-visualizer-ss-tshirt_f8cb90ac-1a79-4970-8287-ab61e5bdea0b.png?v=1784101364\"\u003eS\u003c\/button\u003e--\u003e\n\n            \u003c!-- [BTN:M] data-image にMサイズの画像URLを入れる --\u003e\n            \u003cbutton class=\"size-btn\" data-size=\"M\" data-image=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0654\/2609\/6346\/files\/msize-visualizer-ss-tshirt_4f263a35-1ccd-4a8a-a20d-e62a589bdf9e.png?v=1785316178\"\u003eM\u003c\/button\u003e\n            \u003c!-- [BTN:L] data-image にLサイズの画像URLを入れる --\u003e\n            \u003cbutton class=\"size-btn\" data-size=\"L\" data-image=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0654\/2609\/6346\/files\/lsize-visualizer-ss-tshirt_12bba320-7bce-469a-91ce-7dd33e53ee82.png?v=1785316178\"\u003eL\u003c\/button\u003e\n            \u003c!-- [BTN:L] data-image にXLサイズの画像URLを入れる --\u003e\n            \u003cbutton class=\"size-btn\" data-size=\"XL\" data-image=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0654\/2609\/6346\/files\/xlsize-visualizer-ss-tshirt_d5ca720c-15aa-49f5-9993-0688dd52a156.png?v=1785316178\"\u003eXL\u003c\/button\u003e\n                        \u003c!-- [BTN:L] data-image に3Lサイズの画像URLを入れる --\u003e\n            \u003cbutton class=\"size-btn\" data-size=\"3L\" data-image=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0654\/2609\/6346\/files\/3lsize-visualizer-ss-tshirt.png?v=1785316178\"\u003e3L\u003c\/button\u003e\n          \u003c\/div\u003e\n          \u003cbutton class=\"slider-arrow slider-arrow--next\" aria-label=\"次へ\"\u003e\u003c\/button\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n      \u003c!-- ▲ [EDIT: サイズビジュアル] ここまで --\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"ProductMeta__Accordion\"\u003e\n\u003cdiv class=\"ProductMeta__AccordionHeading\"\u003e\n\u003cdiv class=\"ProductMeta__AccordionTitle\"\u003e\n\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0654\/2609\/6346\/files\/detail.png?v=1775810343\" alt=\"\" class=\"accordion-icon\"\u003e \u003cspan\u003eDetail\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"ProductMeta__AccordionContent\"\u003e\n\u003ctable\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003eブランド名\u003c\/td\u003e\n\u003ctd\u003eKappa（カッパ）\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e商品コード\u003c\/td\u003e\n\u003ctd\u003ee26a0381k\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e原産国\u003c\/td\u003e\n\u003ctd\u003e中国\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e素材\u003c\/td\u003e\n\u003ctd\u003eポリエステル 100:%（スカイスキン）\u003c\/td\u003e\n\u003c\/tr\u003e\n  \u003ctr\u003e\n            \u003ctd\u003eモデル\u003c\/td\u003e\n            \u003ctd\u003e181cm \/ L着用\u003c\/td\u003e\n          \u003c\/tr\u003e\n\u003c\/tbody\u003e\n\u003c\/table\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"ProductMeta__Accordion\"\u003e\n\u003cdiv class=\"ProductMeta__AccordionHeading\"\u003e\n\u003cdiv class=\"ProductMeta__AccordionTitle\"\u003e\n\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0654\/2609\/6346\/files\/gallery.svg?v=1775810342\" alt=\"\" class=\"accordion-icon\"\u003e \u003cspan\u003eGallery\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"ProductMeta__AccordionContent\"\u003e\n\u003cdiv class=\"gallery-grid\"\u003e\n\u003cdiv class=\"gallery-item-wrapper\" data-src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/even0272.jpg?v=1774932571\u0026amp;width=200\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/even0272.jpg?v=1774932571\u0026amp;width=200\" class=\"gallery-item\" alt=\"Gallery 1\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"gallery-item-wrapper\" data-src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/even0274_66f708ad-f8e2-42de-839e-b501d9b63868.jpg?v=1774932571\u0026amp;width=200\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/even0274_66f708ad-f8e2-42de-839e-b501d9b63868.jpg?v=1774932571\u0026amp;width=200\" class=\"gallery-item\" alt=\"Gallery 2\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"gallery-item-wrapper\" data-src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/even0275_b8708942-862f-446e-a91d-5d27a0b34b58.jpg?v=1774932571\u0026amp;width=200\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/even0275_b8708942-862f-446e-a91d-5d27a0b34b58.jpg?v=1774932571\u0026amp;width=200\" class=\"gallery-item\" alt=\"Gallery 3\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"gallery-item-wrapper\" data-src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/even0276_42abf6d5-a252-48c7-83fc-db555014bc94.jpg?v=1774932571\u0026amp;width=200\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/even0276_42abf6d5-a252-48c7-83fc-db555014bc94.jpg?v=1774932571\u0026amp;width=200\" class=\"gallery-item\" alt=\"Gallery 4\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"gallery-item-wrapper\" data-src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/even0277_0052208b-f7c9-40a8-b684-47411213b4c0.jpg?v=1774932571\u0026amp;width=200\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/even0277_0052208b-f7c9-40a8-b684-47411213b4c0.jpg?v=1774932571\u0026amp;width=200\" class=\"gallery-item\" alt=\"Gallery 5\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"gallery-item-wrapper\" data-src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/326A3691_LOOK-_NG.jpg?v=1774932571\u0026amp;width=700\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/326A3691_LOOK-_NG.jpg?v=1774932571\u0026amp;width=700\" class=\"gallery-item\" alt=\"Gallery 6\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"gallery-item-wrapper\" data-src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/326A3660.jpg?v=1774932571\u0026amp;width=200\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/326A3660.jpg?v=1774932571\u0026amp;width=200\" class=\"gallery-item\" alt=\"Gallery 7\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"gallery-item-wrapper\" data-src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/326A4216.jpg?v=1774932571\u0026amp;width=200\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/326A4216.jpg?v=1774932571\u0026amp;width=200\" class=\"gallery-item\" alt=\"Gallery 8\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"gallery-item-wrapper\" data-src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/326A3745.jpg?v=1774932571\u0026amp;width=200\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/326A3745.jpg?v=1774932571\u0026amp;width=200\" class=\"gallery-item\" alt=\"Gallery 9\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"gallery-item-wrapper\" data-src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/326A4292.jpg?v=1774932571\u0026amp;width=200\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/326A4292.jpg?v=1774932571\u0026amp;width=200\" class=\"gallery-item\" alt=\"Gallery 10\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"gallery-item-wrapper\" data-src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/326A4222.jpg?v=1774932571\u0026amp;width=200\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/326A4222.jpg?v=1774932571\u0026amp;width=200\" class=\"gallery-item\" alt=\"Gallery 11\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"ProductMeta__Accordion\"\u003e\n\u003cdiv class=\"ProductMeta__AccordionHeading\"\u003e\n\u003cdiv class=\"ProductMeta__AccordionTitle\"\u003e\n\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0654\/2609\/6346\/files\/Shipping.png?v=1775810343\" alt=\"\" class=\"accordion-icon\"\u003e \u003cspan\u003eShipping\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"ProductMeta__AccordionContent\"\u003e\n\u003cul class=\"shipping-list\"\u003e\n\u003cli\u003e￥11,000以上購入で全国送料無料\u003c\/li\u003e\n\u003cli\u003e通常3-4営業日以内に出荷いたします。\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp class=\"shipping-policy\"\u003e\u003ca href=\"https:\/\/addix.co.jp\/ec-help\/\" rel=\"noopener\" target=\"_blank\"\u003e配送ポリシーはこちら\u003c\/a\u003e\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv id=\"galleryModal\" class=\"gallery-modal\"\u003e\n\u003cdiv class=\"gallery-modal__content\"\u003e\n\u003cspan class=\"gallery-modal__close\" id=\"galleryModalClose\"\u003e×\u003c\/span\u003e \u003cbutton class=\"gallery-modal__arrow gallery-modal__arrow--prev\" id=\"galleryPrevBtn\"\u003e\u003c\/button\u003e \u003cimg id=\"galleryModalImg\" alt=\"Expanded Image\"\u003e \u003cbutton class=\"gallery-modal__arrow gallery-modal__arrow--next\" id=\"galleryNextBtn\"\u003e\u003c\/button\u003e\n\u003cdiv class=\"gallery-modal__indicator\" id=\"galleryModalIndicator\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"gallery-modal__thumbnails\" id=\"galleryModalThumbnails\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cscript\u003e\n    document.addEventListener('DOMContentLoaded', function () {\n      \/\/ 1. アコーディオン開閉ロジック\n      document.querySelectorAll('.ProductMeta__Accordion').forEach(function (accordion) {\n        const heading = accordion.querySelector('.ProductMeta__AccordionHeading');\n        const content = accordion.querySelector('.ProductMeta__AccordionContent');\n        if (heading.classList.contains('c-show')) {\n          content.style.height = 'auto';\n        }\n        heading.addEventListener('click', function () {\n          const isOpen = heading.classList.contains('c-show');\n          heading.classList.toggle('c-show');\n          if (isOpen) {\n            content.style.height = content.scrollHeight + 'px';\n            setTimeout(() =\u003e { content.style.height = '0px'; }, 10);\n          } else {\n            content.style.height = content.scrollHeight + 'px';\n            content.addEventListener('transitionend', function onTransitionEnd() {\n              if (heading.classList.contains('c-show')) {\n                content.style.height = 'auto';\n              }\n              content.removeEventListener('transitionend', onTransitionEnd);\n            }, { once: true });\n          }\n        });\n      });\n      \/\/ 2. サイズ視覚イメージ \u0026 スライダー機能\n      const image = document.getElementById('sizeVisualImage');\n      const buttonsContainer = document.getElementById('sizeButtonsContainer');\n      const buttons = document.querySelectorAll('.size-btn');\n      const prevBtn = document.querySelector('.slider-arrow--prev');\n      const nextBtn = document.querySelector('.slider-arrow--next');\n      if (image \u0026\u0026 buttons.length \u003e 0) {\n        image.src = buttons[0].dataset.image;\n        buttons[0].classList.add('is-active');\n        buttons.forEach(btn =\u003e {\n          btn.addEventListener('click', () =\u003e {\n            image.src = btn.dataset.image;\n            buttons.forEach(b =\u003e b.classList.remove('is-active'));\n            btn.classList.add('is-active');\n          });\n        });\n        if (buttonsContainer \u0026\u0026 prevBtn \u0026\u0026 nextBtn) {\n          const scrollAmount = 100;\n          prevBtn.addEventListener('click', (e) =\u003e {\n            e.preventDefault();\n            buttonsContainer.scrollBy({ left: -scrollAmount, behavior: 'smooth' });\n          });\n          nextBtn.addEventListener('click', (e) =\u003e {\n            e.preventDefault();\n            buttonsContainer.scrollBy({ left: scrollAmount, behavior: 'smooth' });\n          });\n        }\n      }\n      \/\/ 3. Gallery モーダル機能 (スワイプダウン閉じる \u0026 サムネイル遷移追加)\n      const galleryWrappers = document.querySelectorAll('.gallery-item-wrapper');\n      const modal = document.getElementById('galleryModal');\n      const modalImg = document.getElementById('galleryModalImg');\n      const closeBtn = document.getElementById('galleryModalClose');\n      const modalPrevBtn = document.getElementById('galleryPrevBtn');\n      const modalNextBtn = document.getElementById('galleryNextBtn');\n      const indicator = document.getElementById('galleryModalIndicator');\n      const thumbnailsContainer = document.getElementById('galleryModalThumbnails');\n      let currentGalleryIndex = 0;\n      const galleryImages = Array.from(galleryWrappers).map(wrapper =\u003e wrapper.dataset.src);\n      \/\/ モーダル内のサムネイル動的生成\n      galleryImages.forEach((src, index) =\u003e {\n        const img = document.createElement('img');\n        img.src = src;\n        img.classList.add('gallery-modal__thumb');\n        if (index === 0) img.classList.add('is-active');\n        \/\/ サムネイルクリック時の直接ジャンプ処理\n        img.addEventListener('click', (e) =\u003e {\n          e.stopPropagation();\n          if (currentGalleryIndex !== index) {\n            const direction = index \u003e currentGalleryIndex ? 'next' : 'prev';\n            animateImageTransition(index, direction);\n          }\n        });\n        thumbnailsContainer.appendChild(img);\n      });\n      function updateModalImage(index) {\n        modalImg.src = galleryImages[index];\n        currentGalleryIndex = index;\n        if(indicator) {\n          indicator.textContent = `${index + 1} \/ ${galleryImages.length}`;\n        }\n        \/\/ サムネイルのアクティブ状態を更新\n        const thumbs = thumbnailsContainer.querySelectorAll('.gallery-modal__thumb');\n        thumbs.forEach((t, i) =\u003e {\n          if (i === index) t.classList.add('is-active');\n          else t.classList.remove('is-active');\n        });\n      }\n      let touchStartX = 0;\n      let touchStartY = 0;\n      let currentTranslateX = 0;\n      let currentTranslateY = 0;\n      let isDragging = false;\n      let isPinching = false;\n      let swipeDirection = null;\n      let initialPinchDistance = 0;\n      let currentScale = 1;\n      function getDistance(touches) {\n        return Math.hypot(touches[1].clientX - touches[0].clientX, touches[1].clientY - touches[0].clientY);\n      }\n      function animateImageTransition(newIndex, direction) {\n        const outX = direction === 'next' ? '-50px' : '50px';\n        const inX = direction === 'next' ? '50px' : '-50px';\n        modalImg.style.transform = `translate(${outX}, 0) scale(1)`;\n        modalImg.style.opacity = '0';\n        setTimeout(() =\u003e {\n          updateModalImage(newIndex);\n          modalImg.style.transition = 'none';\n          modalImg.style.transform = `translate(${inX}, 0) scale(1)`;\n          currentTranslateX = 0;\n          currentTranslateY = 0;\n          currentScale = 1;\n          setTimeout(() =\u003e {\n            modalImg.style.transition = 'transform 0.3s ease-out, opacity 0.3s ease';\n            modalImg.style.transform = 'translate(0, 0) scale(1)';\n            modalImg.style.opacity = '1';\n          }, 30);\n        }, 150);\n      }\n      function showNextImageFromSwipe(startX) {\n        let newIndex = currentGalleryIndex + 1;\n        if (newIndex \u003e= galleryImages.length) newIndex = 0;\n        modalImg.style.transform = `translate(${startX - 50}px, 0) scale(1)`;\n        modalImg.style.opacity = '0';\n        setTimeout(() =\u003e {\n          updateModalImage(newIndex);\n          modalImg.style.transition = 'none';\n          modalImg.style.transform = `translate(50px, 0) scale(1)`;\n          currentTranslateX = 0;\n          currentTranslateY = 0;\n          currentScale = 1;\n          setTimeout(() =\u003e {\n            modalImg.style.transition = 'transform 0.3s ease-out, opacity 0.3s ease';\n            modalImg.style.transform = 'translate(0, 0) scale(1)';\n            modalImg.style.opacity = '1';\n          }, 30);\n        }, 150);\n      }\n      function showPrevImageFromSwipe(startX) {\n        let newIndex = currentGalleryIndex - 1;\n        if (newIndex \u003c 0) newIndex = galleryImages.length - 1;\n        modalImg.style.transform = `translate(${startX + 50}px, 0) scale(1)`;\n        modalImg.style.opacity = '0';\n        setTimeout(() =\u003e {\n          updateModalImage(newIndex);\n          modalImg.style.transition = 'none';\n          modalImg.style.transform = `translate(-50px, 0) scale(1)`;\n          currentTranslateX = 0;\n          currentTranslateY = 0;\n          currentScale = 1;\n          setTimeout(() =\u003e {\n            modalImg.style.transition = 'transform 0.3s ease-out, opacity 0.3s ease';\n            modalImg.style.transform = 'translate(0, 0) scale(1)';\n            modalImg.style.opacity = '1';\n          }, 30);\n        }, 150);\n      }\n      function showPrevImage() {\n        let newIndex = currentGalleryIndex - 1;\n        if (newIndex \u003c 0) newIndex = galleryImages.length - 1;\n        animateImageTransition(newIndex, 'prev');\n      }\n      function showNextImage() {\n        let newIndex = currentGalleryIndex + 1;\n        if (newIndex \u003e= galleryImages.length) newIndex = 0;\n        animateImageTransition(newIndex, 'next');\n      }\n      function closeModal() {\n        modal.classList.remove('is-open');\n        modal.style.backgroundColor = 'rgba(0, 0, 0, 0)';\n        modalImg.style.transform = `translate(0, ${currentTranslateY}px) scale(1)`;\n        setTimeout(() =\u003e {\n          modal.style.display = 'none';\n        }, 350);\n        document.body.style.overflow = '';\n      }\n      galleryWrappers.forEach((wrapper, index) =\u003e {\n        wrapper.addEventListener('click', (e) =\u003e {\n          e.preventDefault();\n          e.stopImmediatePropagation();\n          updateModalImage(index);\n          currentTranslateX = 0;\n          currentTranslateY = 0;\n          currentScale = 1;\n          swipeDirection = null;\n          modal.style.backgroundColor = 'rgba(0, 0, 0, 0.85)';\n          modalImg.style.transition = 'none';\n          modalImg.style.transform = 'translate(0, 0) scale(1)';\n          modalImg.style.opacity = '1';\n          modal.style.display = 'flex';\n          setTimeout(() =\u003e {\n            modal.classList.add('is-open');\n            modalImg.style.transition = 'transform 0.3s ease-out, opacity 0.3s ease';\n          }, 10);\n          document.body.style.overflow = 'hidden';\n        }, { capture: true });\n      });\n      closeBtn.addEventListener('click', closeModal);\n      modal.addEventListener('click', (e) =\u003e {\n        if (e.target === modal || e.target === document.querySelector('.gallery-modal__content')) {\n          closeModal();\n        }\n      });\n      modalPrevBtn.addEventListener('click', (e) =\u003e {\n        e.stopPropagation();\n        showPrevImage();\n      });\n      modalNextBtn.addEventListener('click', (e) =\u003e {\n        e.stopPropagation();\n        showNextImage();\n      });\n      modal.addEventListener('touchstart', e =\u003e {\n        if (e.touches.length === 2) {\n          isPinching = true;\n          isDragging = false;\n          initialPinchDistance = getDistance(e.touches);\n          modalImg.style.transition = 'none';\n        } else if (e.touches.length === 1 \u0026\u0026 !isPinching) {\n          isDragging = true;\n          swipeDirection = null;\n          touchStartX = e.touches[0].clientX;\n          touchStartY = e.touches[0].clientY;\n          modalImg.style.transition = 'none';\n        }\n      }, { passive: false });\n      modal.addEventListener('touchmove', e =\u003e {\n        if (isPinching \u0026\u0026 e.touches.length === 2) {\n          e.preventDefault();\n          const currentDistance = getDistance(e.touches);\n          currentScale = Math.max(1, currentDistance \/ initialPinchDistance);\n          modalImg.style.transform = `translate(${currentTranslateX}px, ${currentTranslateY}px) scale(${currentScale})`;\n        } else if (isDragging \u0026\u0026 e.touches.length === 1 \u0026\u0026 currentScale === 1) {\n          const deltaX = e.touches[0].clientX - touchStartX;\n          const deltaY = e.touches[0].clientY - touchStartY;\n          if (!swipeDirection) {\n            if (Math.abs(deltaX) \u003e Math.abs(deltaY) \u0026\u0026 Math.abs(deltaX) \u003e 5) {\n              swipeDirection = 'h';\n            } else if (Math.abs(deltaY) \u003e Math.abs(deltaX) \u0026\u0026 Math.abs(deltaY) \u003e 5) {\n              swipeDirection = 'v';\n            }\n          }\n          if (swipeDirection === 'h') {\n            e.preventDefault();\n            currentTranslateX = deltaX;\n            modalImg.style.transform = `translate(${currentTranslateX}px, 0) scale(1)`;\n          } else if (swipeDirection === 'v') {\n            e.preventDefault();\n            currentTranslateY = deltaY;\n            const opacity = Math.max(0, 1 - Math.abs(currentTranslateY) \/ (window.innerHeight \/ 1.5));\n            modalImg.style.transform = `translate(0, ${currentTranslateY}px) scale(1)`;\n            modal.style.backgroundColor = `rgba(0, 0, 0, ${0.85 * opacity})`;\n          }\n        }\n      }, { passive: false });\n      modal.addEventListener('touchend', e =\u003e {\n        if (isPinching \u0026\u0026 e.touches.length \u003c 2) {\n          isPinching = false;\n          currentScale = 1;\n          modalImg.style.transition = 'transform 0.3s ease-out';\n          modalImg.style.transform = `translate(${currentTranslateX}px, ${currentTranslateY}px) scale(1)`;\n        } else if (isDragging) {\n          isDragging = false;\n          if (currentScale \u003e 1) return;\n          modalImg.style.transition = 'transform 0.3s ease-out, opacity 0.3s ease';\n          if (swipeDirection === 'h') {\n            const swipeThreshold = 50;\n            if (currentTranslateX \u003c -swipeThreshold) {\n              showNextImageFromSwipe(currentTranslateX);\n            } else if (currentTranslateX \u003e swipeThreshold) {\n              showPrevImageFromSwipe(currentTranslateX);\n            } else {\n              currentTranslateX = 0;\n              modalImg.style.transform = `translate(0, 0) scale(1)`;\n            }\n          } else if (swipeDirection === 'v') {\n            const swipeDownThreshold = 100;\n            if (currentTranslateY \u003e swipeDownThreshold || currentTranslateY \u003c -swipeDownThreshold) {\n              closeModal();\n            } else {\n              currentTranslateY = 0;\n              modal.style.transition = 'background-color 0.3s ease';\n              modal.style.backgroundColor = 'rgba(0, 0, 0, 0.85)';\n              modalImg.style.transform = `translate(0, 0) scale(1)`;\n            }\n          }\n          swipeDirection = null;\n        }\n      });\n      document.addEventListener('keydown', e =\u003e {\n        if (!modal.classList.contains('is-open')) return;\n        if (e.key === 'ArrowLeft') {\n          showPrevImage();\n        } else if (e.key === 'ArrowRight') {\n          showNextImage();\n        } else if (e.key === 'Escape') {\n          closeModal();\n        }\n      });\n    });\n  \u003c\/script\u003e","brand":"EVEN","offers":[{"title":"ROYAL BLUE \/ M","offer_id":47717458936026,"sku":"E26A0381K-73-04","price":16500.0,"currency_code":"JPY","in_stock":true},{"title":"ROYAL BLUE \/ L","offer_id":47717458968794,"sku":"E26A0381K-73-05","price":16500.0,"currency_code":"JPY","in_stock":true},{"title":"ROYAL BLUE \/ XL","offer_id":47717459001562,"sku":"E26A0381K-73-06","price":16500.0,"currency_code":"JPY","in_stock":false},{"title":"ROYAL BLUE \/ XXL","offer_id":47717459034330,"sku":"E26A0381K-73-07","price":16500.0,"currency_code":"JPY","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0654\/2609\/6346\/files\/even0272.jpg?v=1774932571"},{"product_id":"e26h0394k","title":"［Admiral GOLF別注］キャンバスミニカートバッグ（撥水加工）","description":"\u003cdiv class=\"ProductMeta__Specification\"\u003e\n \n\n \u003cstyle\u003e\n    \/* ========== ベーススタイル ========== *\/\n    .ProductMeta__Specification {\n      font-family: \"hiraginoW3\", Arial, sans-serif;\n    }\n    .ProductMeta__Accordion {\n      border-top: 1px solid #e5e5e5;\n    }\n    .ProductMeta__Accordion:last-child {\n      border-bottom: 1px solid #e5e5e5;\n    }\n    .ProductMeta__AccordionHeading {\n      cursor: pointer;\n      padding: 16px 0;\n      font-weight: bold;\n      position: relative;\n      display: flex;\n      justify-content: space-between;\n      align-items: center;\n    }\n    .ProductMeta__AccordionHeading::after {\n      content: \"+\";\n      font-weight: normal;\n      font-size: 16px;\n    }\n    .ProductMeta__AccordionHeading.c-show::after {\n      content: \"−\";\n    }\n    .ProductMeta__AccordionTitle {\n      display: flex;\n      align-items: center;\n      gap: 12px;\n    }\n    .accordion-icon {\n      width: 18px;\n      height: 18px;\n      object-fit: contain;\n      display: block;\n    }\n    .accordion-icon--description {\n      width: 15px;\n      height: 15px;\n    }\n    .ProductMeta__AccordionContent {\n      overflow: hidden;\n      height: 0;\n      transition: height 0.35s ease;\n      padding-bottom: 0;\n    }\n    \/* ========== テーブル共通設定 ========== *\/\n    .ProductMeta__AccordionContent table {\n      width: 100%;\n      border-collapse: collapse;\n      margin-bottom: 16px;\n    }\n    .ProductMeta__AccordionContent th,\n    .ProductMeta__AccordionContent td {\n      border: 1px solid #ddd;\n      padding: 8px;\n      font-size: 11px;\n    }\n    .ProductMeta__AccordionContent table:not(.size-table) td {\n      text-align: left;\n    }\n    .ProductMeta__AccordionContent table:not(.size-table) td:first-child {\n      width: 30%;\n      color: #666;\n      border-right: none;\n    }\n    .ProductMeta__AccordionContent table:not(.size-table) td:last-child {\n      border-left: none;\n    }\n    .size-table {\n      width: 100%;\n      border-collapse: collapse;\n      margin-top: 12px;\n      font-size: 10px;\n    }\n    .size-table thead th {\n      background: #f5f5f5;\n      font-weight: 600;\n      border: 1px solid #ddd;\n      padding: 10px 8px;\n    }\n    .size-table tbody th {\n      background: #fafafa;\n      font-weight: 600;\n      border: 1px solid #ddd;\n      padding: 10px 8px;\n    }\n    .size-table tbody td {\n      border: 1px solid #ddd;\n      padding: 10px 8px;\n    }\n    .size-table th, .size-table td {\n      text-align: center;\n    }\n    .size-note {\n      font-size: 12px;\n      color: #666;\n      margin-top: 8px;\n      line-height: 1.6;\n    }\n    \/* ========== スクロールエリア ========== *\/\n    .accordion-scroll-area {\n      max-height: 160px;\n      overflow-y: auto;\n      padding-right: 8px;\n      margin-bottom: 16px;\n    }\n    .accordion-scroll-area::-webkit-scrollbar { width: 4px; }\n    .accordion-scroll-area::-webkit-scrollbar-track { background: #f5f5f5; border-radius: 4px; }\n    .accordion-scroll-area::-webkit-scrollbar-thumb { background: #ccc; border-radius: 4px; }\n    \/* ========== テキストスタイル ========== *\/\n    .ProductMeta__AccordionContent p,\n    .ProductMeta__AccordionContent li {\n      font-size: 12px;\n      line-height: 1.8;\n    }\n    .accordion-description .ProductMeta__AccordionContent p {\n      font-size: 12px;\n      font-weight: 300;\n      line-height: 2;\n      letter-spacing: 0.06em;\n      text-align: left;\n      margin: 0;\n    }\n    .accordion-description .ProductMeta__AccordionContent p + p {\n      margin-top: 12px;\n    }\n    \/* ========== サイズ視覚イメージ \u0026 スライダー ========== *\/\n    .size-visual {\n      margin-top: 24px;\n      margin-bottom: 24px;\n    }\n    .size-visual__image {\n      max-width: 55%;\n      margin: 0 auto;\n    }\n    .size-visual__image img {\n      width: 100%;\n      height: auto;\n      display: block;\n    }\n    .size-visual__slider-container {\n      position: relative;\n      margin-top: 16px;\n      padding: 0 30px;\n      display: flex;\n      align-items: center;\n    }\n    .size-visual__buttons {\n      display: flex;\n      gap: 8px;\n      overflow-x: auto;\n      scroll-behavior: smooth;\n      width: 100%;\n      -ms-overflow-style: none;\n      scrollbar-width: none;\n    }\n    .size-visual__buttons::-webkit-scrollbar { display: none; }\n    .size-btn {\n      flex: 0 0 28%;\n      padding: 12px 0;\n      font-size: 12px;\n      border: 1px solid #ddd;\n      background: #fff;\n      cursor: pointer;\n      white-space: nowrap;\n      transition: background 0.2s, color 0.2s;\n    }\n    .size-btn.is-active {\n      background: #111;\n      color: #fff;\n      border-color: #111;\n    }\n    .slider-arrow {\n      position: absolute;\n      top: 50%;\n      transform: translateY(-50%);\n      width: 30px;\n      height: 100%;\n      background: transparent;\n      border: none;\n      cursor: pointer;\n      z-index: 2;\n      padding: 0;\n      display: flex;\n      align-items: center;\n      justify-content: center;\n    }\n    .slider-arrow--prev { left: -5px; }\n    .slider-arrow--next { right: -5px; }\n    .slider-arrow::before {\n      content: '';\n      display: block;\n      width: 10px;\n      height: 10px;\n      border-top: 2px solid #333;\n      border-right: 2px solid #333;\n    }\n    .slider-arrow--prev::before { transform: rotate(-135deg); }\n    .slider-arrow--next::before { transform: rotate(45deg); }\n    .slider-arrow:focus { outline: none; }\n    \/* ========== Gallery グリッド設定 ========== *\/\n    .gallery-grid {\n      display: grid;\n      grid-template-columns: repeat(4, 1fr);\n      gap: 8px;\n      margin-bottom: 16px;\n    }\n    .gallery-item-wrapper {\n      width: 100%;\n      display: block;\n      cursor: pointer;\n      transition: opacity 0.2s ease;\n      -webkit-tap-highlight-color: transparent;\n    }\n    .gallery-item-wrapper:hover { opacity: 0.7; }\n    .gallery-item {\n      width: 100%;\n      height: auto;\n      display: block;\n      object-fit: cover;\n      aspect-ratio: 3 \/ 4;\n      pointer-events: none;\n    }\n    \/* ========== ギャラリーモーダル ========== *\/\n    .gallery-modal {\n      display: none;\n      position: fixed;\n      z-index: 999999;\n      left: 0;\n      top: 0;\n      width: 100%;\n      height: 100%;\n      background-color: rgba(0, 0, 0, 0.85);\n      opacity: 0;\n      transition: opacity 0.35s ease, background-color 0.3s ease;\n      touch-action: none;\n    }\n    .gallery-modal.is-open {\n      display: flex;\n      opacity: 1;\n      justify-content: center;\n      align-items: center;\n    }\n    .gallery-modal__content {\n      position: relative;\n      display: inline-flex;\n      justify-content: center;\n      align-items: center;\n      width: auto;\n      height: auto;\n    }\n    #galleryModalImg {\n      max-height: 85vh;\n      max-width: calc(100vw - 160px);\n      width: auto;\n      height: auto;\n      display: block;\n      user-select: none;\n      transform: translate(0, 0) scale(1);\n      transition: transform 0.3s ease-out, opacity 0.3s ease;\n      box-shadow: 0 10px 40px rgba(0,0,0,0.3);\n    }\n    .gallery-modal__indicator {\n      position: absolute;\n      bottom: 20px;\n      left: 50%;\n      transform: translateX(-50%);\n      color: #fff;\n      font-size: 14px;\n      font-family: \"futura\", Arial, sans-serif;\n      letter-spacing: 0.15em;\n      z-index: 1000000;\n      text-shadow: 0 2px 6px rgba(0,0,0,0.8);\n      font-weight: 400;\n      pointer-events: none;\n    }\n    .gallery-modal__thumbnails {\n      position: absolute;\n      bottom: 24px;\n      left: 50%;\n      transform: translateX(-50%);\n      display: flex;\n      gap: 8px;\n      z-index: 1000000;\n    }\n    .gallery-modal__thumb {\n      width: 48px;\n      height: 48px;\n      object-fit: cover;\n      cursor: pointer;\n      border: 2px solid transparent;\n      border-radius: 4px;\n      opacity: 0.5;\n      transition: all 0.2s ease;\n      box-shadow: 0 2px 4px rgba(0,0,0,0.5);\n    }\n    .gallery-modal__thumb:hover { opacity: 0.8; }\n    .gallery-modal__thumb.is-active { border-color: #fff; opacity: 1; }\n    .gallery-modal__close {\n      position: absolute;\n      top: 16px;\n      right: 16px;\n      color: #fff;\n      font-size: 44px;\n      font-weight: 200;\n      cursor: pointer;\n      z-index: 1000000;\n      line-height: 1;\n      user-select: none;\n      transition: opacity 0.2s;\n      text-shadow: 0 2px 6px rgba(0,0,0,0.5);\n    }\n    .gallery-modal__close:hover { opacity: 0.7; }\n    .gallery-modal__arrow {\n      position: absolute;\n      top: 50%;\n      transform: translateY(-50%);\n      background: transparent;\n      border: none;\n      cursor: pointer;\n      padding: 20px;\n      z-index: 1000000;\n      display: flex;\n      align-items: center;\n      justify-content: center;\n      filter: drop-shadow(0 2px 4px rgba(0,0,0,0.5));\n    }\n    .gallery-modal__arrow--prev { left: -70px; }\n    .gallery-modal__arrow--next { right: -70px; }\n    .gallery-modal__arrow::before {\n      content: '';\n      display: block;\n      width: 26px;\n      height: 26px;\n      border-top: 3px solid #fff;\n      border-right: 3px solid #fff;\n    }\n    .gallery-modal__arrow--prev::before { transform: rotate(-135deg); }\n    .gallery-modal__arrow--next::before { transform: rotate(45deg); }\n    \/* ========== SP用調整 ========== *\/\n    @media screen and (max-width: 768px) {\n      .ProductMeta__AccordionContent { padding-bottom: 0 !important; }\n      .size-visual { margin-top: 16px; margin-bottom: 20px; }\n      .size-visual__image { max-width: 100%; }\n      .size-visual__slider-container { padding: 0 24px; }\n      .slider-arrow { width: 24px; }\n      .slider-arrow--prev { left: 0; }\n      .slider-arrow--next { right: 0; }\n      .gallery-grid { grid-template-columns: repeat(2, 1fr); gap: 4px; }\n      #galleryModalImg { max-width: 100vw; max-height: 80vh; }\n      .gallery-modal__thumbnails { bottom: 20px; }\n      .gallery-modal__thumb { width: 40px; height: 40px; }\n      .gallery-modal__close { top: 16px; right: 16px; font-size: 40px; }\n      .gallery-modal__arrow { padding: 15px; }\n      .gallery-modal__arrow--prev { left: 0; }\n      .gallery-modal__arrow--next { right: 0; }\n    }\n  \u003c\/style\u003e\n\n\n\n  \n\n\u003c!-- ============================================================ --\u003e\n  \u003c!-- ▼ [SECTION: DESCRIPTION] アコーディオン「Description」       --\u003e\n  \u003c!-- ============================================================ --\u003e\n  \u003cdiv class=\"ProductMeta__Accordion accordion-description\"\u003e\n    \u003cdiv class=\"ProductMeta__AccordionHeading c-show\"\u003e\n      \u003cdiv class=\"ProductMeta__AccordionTitle\"\u003e\n        \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0654\/2609\/6346\/files\/description.png?v=1775810343\" alt=\"\" class=\"accordion-icon accordion-icon--description\"\u003e\n        \u003cspan\u003eDescription\u003c\/span\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"ProductMeta__AccordionContent\"\u003e\n      \u003cdiv class=\"accordion-scroll-area\"\u003e\n\n        \u003c!-- ▼ [EDIT: 商品説明] ここから〜ここまでが商品説明テキスト --\u003e\n\u003ch5\u003e伝統のアドミラルに、遊び心と実用性をプラスした限定モデル\u003c\/h5\u003e\n\u003cp\u003e英国発の世界的スポーツブランド「Admiral GOLF（アドミラル ゴルフ）」に、ゴルフメディア『EVEN』が別注をかけた特別なミニトートバッグが登場しました。\u003c\/p\u003e\n\u003cp\u003e「軽量・撥水・洗練」をキーワードに、ゴルフのラウンド（カートバッグ）からタウンユースまで、シーンを選ばず活躍する万能な一品に仕上がっています。\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003e・驚きの軽さとタフな撥水性\u003c\/strong\u003e\u003cbr\u003eキャンバス地の風合いを活かしつつ、撥水加工を施しているため、急な雨や芝生の上でも安心。汚れに強く、アクティブなゴルフシーンに最適です。\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003e・収納力抜群の黄金サイズ\u003c\/strong\u003e\u003cbr\u003e幅300mm × 高さ210mm × 奥行190mmという、マチを広くとった設計。\u003cbr\u003eスコアカード、ボールポーチ、500mlペットボトル、日焼け止め、スマートフォンなど、ラウンドに必要な小物がこれひとつにスッキリ収まります。\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003e・絶妙なアクセントの「カーキ」ハンドル\u003c\/strong\u003e\u003cbr\u003eボディのクリーンなホワイトに対し、持ち手には深みのあるカーキ（#4 Khaki）を採用。ミリタリーテイストをさりげなく取り入れることで、甘すぎず、大人の男性・女性問わず使いやすい「こなれ感」を演出しました。\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003e・メッセージロゴ「The GAME OF A LIFETIME」\u003c\/strong\u003e\u003cbr\u003eバッグ正面には、EVENらしいメッセージ「The GAME OF A LIFETIME」を控えめなサイズ（約60mm）でプリント。主張しすぎないロゴデザインが、別注ならではの特別感を高めています。\u003c\/p\u003e\n\u003cbr\u003e\u003cbr\u003e\n        \u003c!-- ▲ [EDIT: 商品説明] ここまで --\u003e\n\n        \u003c!-- ▼ [EDIT: ブランド説明] ここから〜ここまでがブランド説明テキスト --\u003e\n        \u003cp\u003e【Admiral GOLF】\u003cbr\u003e\n          1914年にイギリス海軍の制服製造から始まった老舗ブランドAdmiralのゴルフラインです。英国の伝統的なモチーフやカラーを取り入れた「ブリティッシュ・プレッピー」なスタイルを展開し、機能性と高いファッション性を両立しています。\u003c\/p\u003e\n        \n        \u003c!-- ▲ [EDIT: ブランド説明] ここまで --\u003e\n\n      \n\n\u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003c!-- ▲ [SECTION: DESCRIPTION] ここまで --\u003e\n\n  \u003c!-- ============================================================ --\u003e\n  \u003c!-- ▼ [SECTION: SIZE] アコーディオン「Size」                     --\u003e\n  \u003c!-- ============================================================ --\u003e\n  \u003cdiv class=\"ProductMeta__Accordion\"\u003e\n    \u003cdiv class=\"ProductMeta__AccordionHeading\"\u003e\n      \u003cdiv class=\"ProductMeta__AccordionTitle\"\u003e\n        \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0654\/2609\/6346\/files\/size.png?v=1775810343\" alt=\"\" class=\"accordion-icon\"\u003e\n        \u003cspan\u003eSize\u003c\/span\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"ProductMeta__AccordionContent\"\u003e\n\n      \u003c!-- ▼ [EDIT: サイズテーブル] 採寸表 --\u003e\n      \u003c!-- 列の追加：\u003cth\u003e列名\u003c\/th\u003e を theadの\u003ctr\u003eに、\u003ctd\u003e数値\u003c\/td\u003e を各サイズ行に追加 --\u003e\n      \u003c!-- サイズ行の非表示：該当の \u003ctr\u003e〜\u003c\/tr\u003e を丸ごと削除またはコメントアウト --\u003e\n\n\u003ctable class=\"size-table\"\u003e\n  \u003cthead\u003e\n    \u003ctr\u003e\n      \u003cth\u003eSIZE\u003c\/th\u003e\n      \u003cth\u003e幅\u003c\/th\u003e\n      \u003cth\u003e高さ\u003c\/th\u003e\n      \u003cth\u003eマチ\u003c\/th\u003e\n    \u003c\/tr\u003e\n  \u003c\/thead\u003e\n  \u003ctbody\u003e\n    \u003ctr\u003e\n      \u003cth\u003eF\u003c\/th\u003e\n      \u003ctd\u003e19\u003c\/td\u003e\n      \u003ctd\u003e21\u003c\/td\u003e\n      \u003ctd\u003e13\u003c\/td\u003e\n    \u003c\/tr\u003e\n  \u003c\/tbody\u003e\n\u003c\/table\u003e\n\n\n      \u003c!-- ▲ [EDIT: サイズテーブル] ここまで --\u003e\n\n      \u003cp class=\"size-note\"\u003e\n        ※ 表記サイズは目安となります。\u003cbr\u003e\n        ※ 採寸方法により多少の誤差が生じる場合がございます。\n      \u003c\/p\u003e\n\n      \u003c!-- ▼ [EDIT: サイズビジュアル] 寸法イメージ画像 \u0026 サイズボタン --\u003e\n      \u003c!-- ボタン非表示：該当の \u003cbutton class=\"size-btn\"〜\u003e\u003c\/button\u003e を丸ごと削除 --\u003e\n      \u003c!-- 画像URL変更：data-image=\"...\" の中のURLを書き換え --\u003e\n      \u003cdiv class=\"size-visual\"\u003e\n        \u003cdiv class=\"size-visual__image\"\u003e\n          \u003cimg id=\"sizeVisualImage\" src=\"\" alt=\"サイズ寸法イメージ\"\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"size-visual__slider-container\"\u003e\n          \u003cdiv class=\"size-visual__buttons\" id=\"sizeButtonsContainer\"\u003e\n            \u003cbutton class=\"size-btn is-active\" data-size=\"F\" data-image=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0654\/2609\/6346\/files\/size-visualizer-bag_1b72d10b-8314-4f51-99eb-174e96858f8a.png?v=1786360852\"\u003eF\u003c\/button\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n      \u003c!-- ▲ [EDIT: サイズビジュアル] ここまで --\u003e\n\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003c!-- ▲ [SECTION: SIZE] ここまで --\u003e\n\n  \u003c!-- ============================================================ --\u003e\n  \u003c!-- ▼ [SECTION: DETAIL] アコーディオン「Detail」                 --\u003e\n  \u003c!-- ============================================================ --\u003e\n  \u003cdiv class=\"ProductMeta__Accordion\"\u003e\n    \u003cdiv class=\"ProductMeta__AccordionHeading\"\u003e\n      \u003cdiv class=\"ProductMeta__AccordionTitle\"\u003e\n        \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0654\/2609\/6346\/files\/detail.png?v=1775810343\" alt=\"\" class=\"accordion-icon\"\u003e\n        \u003cspan\u003eDetail\u003c\/span\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"ProductMeta__AccordionContent\"\u003e\n\n      \u003c!-- ▼ [EDIT: 詳細テーブル] 各行の右側（2列目の\u003ctd\u003e）が編集対象 --\u003e\n      \u003ctable\u003e\n        \u003ctbody\u003e\n          \u003ctr\u003e\n            \u003ctd\u003eブランド名\u003c\/td\u003e\n            \u003ctd\u003eAdmiral GOLF\u003c\/td\u003e\n\u003c!-- [VAL:ブランド名] --\u003e\n          \u003c\/tr\u003e\n\u003c!-- [VAL:品番] --\u003e\n\n          \u003ctr\u003e\n            \u003ctd\u003e商品コード\u003c\/td\u003e\n            \u003ctd\u003ee26h0394k\u003c\/td\u003e\n\u003c!-- [VAL:商品コード] --\u003e\n          \u003c\/tr\u003e\n          \u003ctr\u003e\n            \u003ctd\u003e原産国\u003c\/td\u003e\n            \u003ctd\u003e中国\u003c\/td\u003e\n\u003c!-- [VAL:原産国] --\u003e\n          \u003c\/tr\u003e\n          \u003ctr\u003e\n            \u003ctd\u003e素材\u003c\/td\u003e\n            \u003ctd\u003e合成繊維(アクリル)\u003c\/td\u003e\n\u003c!-- [VAL:素材] --\u003e\n          \u003c\/tr\u003e\n         \n\u003c!-- [VAL:モデル] --\u003e\n\n\n        \u003c\/tbody\u003e\n      \u003c\/table\u003e\n      \u003c!-- ▲ [EDIT: 詳細テーブル] ここまで --\u003e\n\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003c!-- ▲ [SECTION: DETAIL] ここまで --\u003e\n\n  \u003c!-- ============================================================ --\u003e\n  \u003c!-- ▼ [SECTION: GALLERY] アコーディオン「Gallery」               --\u003e\n  \u003c!-- ============================================================ --\u003e\n  \u003cdiv class=\"ProductMeta__Accordion\"\u003e\n    \u003cdiv class=\"ProductMeta__AccordionHeading\"\u003e\n      \u003cdiv class=\"ProductMeta__AccordionTitle\"\u003e\n        \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0654\/2609\/6346\/files\/gallery.svg?v=1775810342\" alt=\"\" class=\"accordion-icon\"\u003e\n        \u003cspan\u003eGallery\u003c\/span\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"ProductMeta__AccordionContent\"\u003e\n\n      \u003c!-- ▼ [EDIT: ギャラリー画像] --\u003e\n      \u003c!-- 画像追加：下記ブロックをコピーして末尾に追加し、URLとalt番号を書き換える --\u003e\n      \u003c!--\n      \u003cdiv class=\"gallery-item-wrapper\" data-src=\"【画像URL】\"\u003e\n        \u003cimg src=\"【画像URL】\" class=\"gallery-item\" alt=\"Gallery 【番号】\"\u003e\n      \u003c\/div\u003e\n      --\u003e\n      \u003cdiv class=\"gallery-grid\"\u003e\n\u003cdiv class=\"gallery-item-wrapper\" data-src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/even0721_92782911-425c-4d73-84af-1f79f55c4254.jpg?v=1779081180\u0026amp;width=200\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/even0721_92782911-425c-4d73-84af-1f79f55c4254.jpg?v=1779081180\u0026amp;width=200\" class=\"gallery-item\" alt=\"Gallery 1\"\u003e\u003c\/div\u003e \u003cdiv class=\"gallery-item-wrapper\" data-src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/even0722_18c22dc0-03d8-4acf-9fca-78a7f435cd51.jpg?v=1779081179\u0026amp;width=200\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/even0722_18c22dc0-03d8-4acf-9fca-78a7f435cd51.jpg?v=1779081179\u0026amp;width=200\" class=\"gallery-item\" alt=\"Gallery 2\"\u003e\u003c\/div\u003e \u003cdiv class=\"gallery-item-wrapper\" data-src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/even0723_307b953a-efed-46c2-85ad-a5d3caa979d6.jpg?v=1779081179\u0026amp;width=200\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/even0723_307b953a-efed-46c2-85ad-a5d3caa979d6.jpg?v=1779081179\u0026amp;width=200\" class=\"gallery-item\" alt=\"Gallery 3\"\u003e\u003c\/div\u003e \u003cdiv class=\"gallery-item-wrapper\" data-src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/even0726_70f0e4f8-4e7c-469d-ad30-2d62b895ea69.jpg?v=1779081180\u0026amp;width=200\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/even0726_70f0e4f8-4e7c-469d-ad30-2d62b895ea69.jpg?v=1779081180\u0026amp;width=200\" class=\"gallery-item\" alt=\"Gallery 4\"\u003e\u003c\/div\u003e \u003cdiv class=\"gallery-item-wrapper\" data-src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/even0727_421b723b-44c9-46ac-8576-087da0638fa5.jpg?v=1779081179\u0026amp;width=200\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/even0727_421b723b-44c9-46ac-8576-087da0638fa5.jpg?v=1779081179\u0026amp;width=200\" class=\"gallery-item\" alt=\"Gallery 5\"\u003e\u003c\/div\u003e \u003cdiv class=\"gallery-item-wrapper\" data-src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/even0728_82780298-ac10-463a-8b5d-df22ebe89fb1.jpg?v=1779081179\u0026amp;width=200\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/even0728_82780298-ac10-463a-8b5d-df22ebe89fb1.jpg?v=1779081179\u0026amp;width=200\" class=\"gallery-item\" alt=\"Gallery 6\"\u003e\u003c\/div\u003e \u003cdiv class=\"gallery-item-wrapper\" data-src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/even0724_86cc6da2-c4ea-4151-bd73-a05b5e3177a5.jpg?v=1779081180\u0026amp;width=200\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/even0724_86cc6da2-c4ea-4151-bd73-a05b5e3177a5.jpg?v=1779081180\u0026amp;width=200\" class=\"gallery-item\" alt=\"Gallery 7\"\u003e\u003c\/div\u003e \u003cdiv class=\"gallery-item-wrapper\" data-src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/even0725_6ab66e9c-36fc-43cc-9798-cf6476b0551b.jpg?v=1779081179\u0026amp;width=200\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/even0725_6ab66e9c-36fc-43cc-9798-cf6476b0551b.jpg?v=1779081179\u0026amp;width=200\" class=\"gallery-item\" alt=\"Gallery 8\"\u003e\u003c\/div\u003e \u003cdiv class=\"gallery-item-wrapper\" data-src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/MG_2186.jpg?v=1779081179\u0026amp;width=200\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/MG_2186.jpg?v=1779081179\u0026amp;width=200\" class=\"gallery-item\" alt=\"Gallery 9\"\u003e\u003c\/div\u003e\n  \n      \u003c\/div\u003e\n      \u003c!-- ▲ [EDIT: ギャラリー画像] ここまで --\u003e\n\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003c!-- ▲ [SECTION: GALLERY] ここまで --\u003e\n\n  \u003c!-- ============================================================ --\u003e\n  \u003c!-- ▼ [SECTION: SHIPPING] アコーディオン「Shipping」             --\u003e\n  \u003c!-- ============================================================ --\u003e\n  \u003cdiv class=\"ProductMeta__Accordion\"\u003e\n    \u003cdiv class=\"ProductMeta__AccordionHeading\"\u003e\n      \u003cdiv class=\"ProductMeta__AccordionTitle\"\u003e\n        \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0654\/2609\/6346\/files\/Shipping.png?v=1775810343\" alt=\"\" class=\"accordion-icon\"\u003e\n        \u003cspan\u003eShipping\u003c\/span\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"ProductMeta__AccordionContent\"\u003e\n      \u003cul class=\"shipping-list\"\u003e\n        \u003cli\u003e￥11,000以上購入で全国送料無料\u003c\/li\u003e\n        \u003cli\u003e通常3-4営業日以内に出荷いたします。\u003c\/li\u003e\n      \u003c\/ul\u003e\n      \u003cp class=\"shipping-policy\"\u003e\n        \u003ca href=\"https:\/\/addix.co.jp\/ec-help\/\" target=\"_blank\" rel=\"noopener\"\u003e配送ポリシーはこちら\u003c\/a\u003e\n      \u003c\/p\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003c!-- ▲ [SECTION: SHIPPING] ここまで --\u003e\n\n  \u003c!-- ギャラリーモーダル（編集不要） --\u003e\n  \u003cdiv id=\"galleryModal\" class=\"gallery-modal\"\u003e\n    \u003cdiv class=\"gallery-modal__content\"\u003e\n      \u003cspan class=\"gallery-modal__close\" id=\"galleryModalClose\"\u003e×\u003c\/span\u003e\n      \u003cbutton class=\"gallery-modal__arrow gallery-modal__arrow--prev\" id=\"galleryPrevBtn\"\u003e\u003c\/button\u003e\n      \u003cimg id=\"galleryModalImg\" src=\"\" alt=\"Expanded Image\"\u003e\n      \u003cbutton class=\"gallery-modal__arrow gallery-modal__arrow--next\" id=\"galleryNextBtn\"\u003e\u003c\/button\u003e\n      \u003cdiv class=\"gallery-modal__indicator\" id=\"galleryModalIndicator\"\u003e\u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"gallery-modal__thumbnails\" id=\"galleryModalThumbnails\"\u003e\u003c\/div\u003e\n  \u003c\/div\u003e\n\n\n\n  \n\n\u003cscript\u003e\n    document.addEventListener('DOMContentLoaded', function () {\n      \/\/ 1. アコーディオン開閉ロジック\n      document.querySelectorAll('.ProductMeta__Accordion').forEach(function (accordion) {\n        const heading = accordion.querySelector('.ProductMeta__AccordionHeading');\n        const content = accordion.querySelector('.ProductMeta__AccordionContent');\n        if (heading.classList.contains('c-show')) {\n          content.style.height = 'auto';\n        }\n        heading.addEventListener('click', function () {\n          const isOpen = heading.classList.contains('c-show');\n          heading.classList.toggle('c-show');\n          if (isOpen) {\n            content.style.height = content.scrollHeight + 'px';\n            setTimeout(() =\u003e { content.style.height = '0px'; }, 10);\n          } else {\n            content.style.height = content.scrollHeight + 'px';\n            content.addEventListener('transitionend', function onTransitionEnd() {\n              if (heading.classList.contains('c-show')) {\n                content.style.height = 'auto';\n              }\n              content.removeEventListener('transitionend', onTransitionEnd);\n            }, { once: true });\n          }\n        });\n      });\n      \/\/ 2. サイズ視覚イメージ \u0026 スライダー機能\n      const image = document.getElementById('sizeVisualImage');\n      const buttonsContainer = document.getElementById('sizeButtonsContainer');\n      const buttons = document.querySelectorAll('.size-btn');\n      const prevBtn = document.querySelector('.slider-arrow--prev');\n      const nextBtn = document.querySelector('.slider-arrow--next');\n      if (image \u0026\u0026 buttons.length \u003e 0) {\n        image.src = buttons[0].dataset.image;\n        buttons[0].classList.add('is-active');\n        buttons.forEach(btn =\u003e {\n          btn.addEventListener('click', () =\u003e {\n            image.src = btn.dataset.image;\n            buttons.forEach(b =\u003e b.classList.remove('is-active'));\n            btn.classList.add('is-active');\n          });\n        });\n        if (buttonsContainer \u0026\u0026 prevBtn \u0026\u0026 nextBtn) {\n          const scrollAmount = 100;\n          prevBtn.addEventListener('click', (e) =\u003e {\n            e.preventDefault();\n            buttonsContainer.scrollBy({ left: -scrollAmount, behavior: 'smooth' });\n          });\n          nextBtn.addEventListener('click', (e) =\u003e {\n            e.preventDefault();\n            buttonsContainer.scrollBy({ left: scrollAmount, behavior: 'smooth' });\n          });\n        }\n      }\n      \/\/ 3. Gallery モーダル機能\n      const galleryWrappers = document.querySelectorAll('.gallery-item-wrapper');\n      const modal = document.getElementById('galleryModal');\n      const modalImg = document.getElementById('galleryModalImg');\n      const closeBtn = document.getElementById('galleryModalClose');\n      const modalPrevBtn = document.getElementById('galleryPrevBtn');\n      const modalNextBtn = document.getElementById('galleryNextBtn');\n      const indicator = document.getElementById('galleryModalIndicator');\n      const thumbnailsContainer = document.getElementById('galleryModalThumbnails');\n      let currentGalleryIndex = 0;\n      const galleryImages = Array.from(galleryWrappers).map(wrapper =\u003e wrapper.dataset.src);\n      galleryImages.forEach((src, index) =\u003e {\n        const img = document.createElement('img');\n        img.src = src;\n        img.classList.add('gallery-modal__thumb');\n        if (index === 0) img.classList.add('is-active');\n        img.addEventListener('click', (e) =\u003e {\n          e.stopPropagation();\n          if (currentGalleryIndex !== index) {\n            const direction = index \u003e currentGalleryIndex ? 'next' : 'prev';\n            animateImageTransition(index, direction);\n          }\n        });\n        thumbnailsContainer.appendChild(img);\n      });\n      function updateModalImage(index) {\n        modalImg.src = galleryImages[index];\n        currentGalleryIndex = index;\n        if(indicator) indicator.textContent = `${index + 1} \/ ${galleryImages.length}`;\n        const thumbs = thumbnailsContainer.querySelectorAll('.gallery-modal__thumb');\n        thumbs.forEach((t, i) =\u003e {\n          if (i === index) t.classList.add('is-active');\n          else t.classList.remove('is-active');\n        });\n      }\n      let touchStartX = 0, touchStartY = 0, currentTranslateX = 0, currentTranslateY = 0;\n      let isDragging = false, isPinching = false, swipeDirection = null;\n      let initialPinchDistance = 0, currentScale = 1;\n      function getDistance(touches) {\n        return Math.hypot(touches[1].clientX - touches[0].clientX, touches[1].clientY - touches[0].clientY);\n      }\n      function animateImageTransition(newIndex, direction) {\n        const outX = direction === 'next' ? '-50px' : '50px';\n        const inX = direction === 'next' ? '50px' : '-50px';\n        modalImg.style.transform = `translate(${outX}, 0) scale(1)`;\n        modalImg.style.opacity = '0';\n        setTimeout(() =\u003e {\n          updateModalImage(newIndex);\n          modalImg.style.transition = 'none';\n          modalImg.style.transform = `translate(${inX}, 0) scale(1)`;\n          currentTranslateX = 0; currentTranslateY = 0; currentScale = 1;\n          setTimeout(() =\u003e {\n            modalImg.style.transition = 'transform 0.3s ease-out, opacity 0.3s ease';\n            modalImg.style.transform = 'translate(0, 0) scale(1)';\n            modalImg.style.opacity = '1';\n          }, 30);\n        }, 150);\n      }\n      function showNextImageFromSwipe(startX) {\n        let newIndex = currentGalleryIndex + 1;\n        if (newIndex \u003e= galleryImages.length) newIndex = 0;\n        modalImg.style.transform = `translate(${startX - 50}px, 0) scale(1)`;\n        modalImg.style.opacity = '0';\n        setTimeout(() =\u003e {\n          updateModalImage(newIndex);\n          modalImg.style.transition = 'none';\n          modalImg.style.transform = `translate(50px, 0) scale(1)`;\n          currentTranslateX = 0; currentTranslateY = 0; currentScale = 1;\n          setTimeout(() =\u003e {\n            modalImg.style.transition = 'transform 0.3s ease-out, opacity 0.3s ease';\n            modalImg.style.transform = 'translate(0, 0) scale(1)';\n            modalImg.style.opacity = '1';\n          }, 30);\n        }, 150);\n      }\n      function showPrevImageFromSwipe(startX) {\n        let newIndex = currentGalleryIndex - 1;\n        if (newIndex \u003c 0) newIndex = galleryImages.length - 1;\n        modalImg.style.transform = `translate(${startX + 50}px, 0) scale(1)`;\n        modalImg.style.opacity = '0';\n        setTimeout(() =\u003e {\n          updateModalImage(newIndex);\n          modalImg.style.transition = 'none';\n          modalImg.style.transform = `translate(-50px, 0) scale(1)`;\n          currentTranslateX = 0; currentTranslateY = 0; currentScale = 1;\n          setTimeout(() =\u003e {\n            modalImg.style.transition = 'transform 0.3s ease-out, opacity 0.3s ease';\n            modalImg.style.transform = 'translate(0, 0) scale(1)';\n            modalImg.style.opacity = '1';\n          }, 30);\n        }, 150);\n      }\n      function showPrevImage() {\n        let newIndex = currentGalleryIndex - 1;\n        if (newIndex \u003c 0) newIndex = galleryImages.length - 1;\n        animateImageTransition(newIndex, 'prev');\n      }\n      function showNextImage() {\n        let newIndex = currentGalleryIndex + 1;\n        if (newIndex \u003e= galleryImages.length) newIndex = 0;\n        animateImageTransition(newIndex, 'next');\n      }\n      function closeModal() {\n        modal.classList.remove('is-open');\n        modal.style.backgroundColor = 'rgba(0, 0, 0, 0)';\n        modalImg.style.transform = `translate(0, ${currentTranslateY}px) scale(1)`;\n        setTimeout(() =\u003e { modal.style.display = 'none'; }, 350);\n        document.body.style.overflow = '';\n      }\n      galleryWrappers.forEach((wrapper, index) =\u003e {\n        wrapper.addEventListener('click', (e) =\u003e {\n          e.preventDefault();\n          e.stopImmediatePropagation();\n          updateModalImage(index);\n          currentTranslateX = 0; currentTranslateY = 0; currentScale = 1; swipeDirection = null;\n          modal.style.backgroundColor = 'rgba(0, 0, 0, 0.85)';\n          modalImg.style.transition = 'none';\n          modalImg.style.transform = 'translate(0, 0) scale(1)';\n          modalImg.style.opacity = '1';\n          modal.style.display = 'flex';\n          setTimeout(() =\u003e {\n            modal.classList.add('is-open');\n            modalImg.style.transition = 'transform 0.3s ease-out, opacity 0.3s ease';\n          }, 10);\n          document.body.style.overflow = 'hidden';\n        }, { capture: true });\n      });\n      closeBtn.addEventListener('click', closeModal);\n      modal.addEventListener('click', (e) =\u003e {\n        if (e.target === modal || e.target === document.querySelector('.gallery-modal__content')) closeModal();\n      });\n      modalPrevBtn.addEventListener('click', (e) =\u003e { e.stopPropagation(); showPrevImage(); });\n      modalNextBtn.addEventListener('click', (e) =\u003e { e.stopPropagation(); showNextImage(); });\n      modal.addEventListener('touchstart', e =\u003e {\n        if (e.touches.length === 2) {\n          isPinching = true; isDragging = false;\n          initialPinchDistance = getDistance(e.touches);\n          modalImg.style.transition = 'none';\n        } else if (e.touches.length === 1 \u0026\u0026 !isPinching) {\n          isDragging = true; swipeDirection = null;\n          touchStartX = e.touches[0].clientX;\n          touchStartY = e.touches[0].clientY;\n          modalImg.style.transition = 'none';\n        }\n      }, { passive: false });\n      modal.addEventListener('touchmove', e =\u003e {\n        if (isPinching \u0026\u0026 e.touches.length === 2) {\n          e.preventDefault();\n          const currentDistance = getDistance(e.touches);\n          currentScale = Math.max(1, currentDistance \/ initialPinchDistance);\n          modalImg.style.transform = `translate(${currentTranslateX}px, ${currentTranslateY}px) scale(${currentScale})`;\n        } else if (isDragging \u0026\u0026 e.touches.length === 1 \u0026\u0026 currentScale === 1) {\n          const deltaX = e.touches[0].clientX - touchStartX;\n          const deltaY = e.touches[0].clientY - touchStartY;\n          if (!swipeDirection) {\n            if (Math.abs(deltaX) \u003e Math.abs(deltaY) \u0026\u0026 Math.abs(deltaX) \u003e 5) swipeDirection = 'h';\n            else if (Math.abs(deltaY) \u003e Math.abs(deltaX) \u0026\u0026 Math.abs(deltaY) \u003e 5) swipeDirection = 'v';\n          }\n          if (swipeDirection === 'h') {\n            e.preventDefault();\n            currentTranslateX = deltaX;\n            modalImg.style.transform = `translate(${currentTranslateX}px, 0) scale(1)`;\n          } else if (swipeDirection === 'v') {\n            e.preventDefault();\n            currentTranslateY = deltaY;\n            const opacity = Math.max(0, 1 - Math.abs(currentTranslateY) \/ (window.innerHeight \/ 1.5));\n            modalImg.style.transform = `translate(0, ${currentTranslateY}px) scale(1)`;\n            modal.style.backgroundColor = `rgba(0, 0, 0, ${0.85 * opacity})`;\n          }\n        }\n      }, { passive: false });\n      modal.addEventListener('touchend', e =\u003e {\n        if (isPinching \u0026\u0026 e.touches.length \u003c 2) {\n          isPinching = false; currentScale = 1;\n          modalImg.style.transition = 'transform 0.3s ease-out';\n          modalImg.style.transform = `translate(${currentTranslateX}px, ${currentTranslateY}px) scale(1)`;\n        } else if (isDragging) {\n          isDragging = false;\n          if (currentScale \u003e 1) return;\n          modalImg.style.transition = 'transform 0.3s ease-out, opacity 0.3s ease';\n          if (swipeDirection === 'h') {\n            const swipeThreshold = 50;\n            if (currentTranslateX \u003c -swipeThreshold) showNextImageFromSwipe(currentTranslateX);\n            else if (currentTranslateX \u003e swipeThreshold) showPrevImageFromSwipe(currentTranslateX);\n            else { currentTranslateX = 0; modalImg.style.transform = `translate(0, 0) scale(1)`; }\n          } else if (swipeDirection === 'v') {\n            if (currentTranslateY \u003e 100 || currentTranslateY \u003c -100) {\n              closeModal();\n            } else {\n              currentTranslateY = 0;\n              modal.style.transition = 'background-color 0.3s ease';\n              modal.style.backgroundColor = 'rgba(0, 0, 0, 0.85)';\n              modalImg.style.transform = `translate(0, 0) scale(1)`;\n            }\n          }\n          swipeDirection = null;\n        }\n      });\n      document.addEventListener('keydown', e =\u003e {\n        if (!modal.classList.contains('is-open')) return;\n        if (e.key === 'ArrowLeft') showPrevImage();\n        else if (e.key === 'ArrowRight') showNextImage();\n        else if (e.key === 'Escape') closeModal();\n      });\n    });\n  \u003c\/script\u003e\n\n\n\n\n\n\n\n\u003c\/div\u003e","brand":"EVEN","offers":[{"title":"Default Title","offer_id":47788458508506,"sku":"E26H0394K-10-00","price":6820.0,"currency_code":"JPY","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0654\/2609\/6346\/files\/MG_2186.jpg?v=1779081179"},{"product_id":"e26n0416k","title":"［MIZUNO別注］GLOVE DRIVER COVER","description":"\u003ch3\u003eゴルフ雑誌『EVEN』がミズノに別注した、特別なドライバー用ヘッドカバー。\u003c\/h3\u003e\n\u003cp class=\"font-claude-response-body break-words whitespace-normal\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0654\/2609\/6346\/files\/even0284.jpg?v=1782205149\" alt=\"\"\u003e\u003c\/p\u003e\n\u003cp class=\"font-claude-response-body break-words whitespace-normal\"\u003e\u003cimg alt=\"\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0654\/2609\/6346\/files\/D4_2078.jpg?v=1782205292\"\u003e素材に選んだのは、兵庫・波賀の職人工房で生まれる「野球グラブ用皮革の端材」。\u003c\/p\u003e\n\u003cp class=\"font-claude-response-body break-words whitespace-normal\"\u003e\u003cbr\u003e\u003c\/p\u003e\n\u003cp class=\"font-claude-response-body break-words whitespace-normal\"\u003e\u003cimg alt=\"\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0654\/2609\/6346\/files\/D4_3013.jpg?v=1782205292\"\u003e\u003c\/p\u003e\n\u003cp class=\"font-claude-response-body break-words whitespace-normal\"\u003eプロ野球選手やメジャーリーガーのグラブを手がける、あの工房の革を使用しています。\u003c\/p\u003e\n\u003cp class=\"font-claude-response-body break-words whitespace-normal\"\u003e \u003c\/p\u003e\n\u003cp class=\"font-claude-response-body break-words whitespace-normal\"\u003e\u003cimg alt=\"\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0654\/2609\/6346\/files\/D4_2091.jpg?v=1782205292\"\u003e\u003c\/p\u003e\n\u003cp class=\"font-claude-response-body break-words whitespace-normal\"\u003e単にクラブを守る道具ではなく、付属のグラブ用クリームで手入れをしながら、自分だけの味わいに「育てていく」エイジングをお楽しみいただけます。野球少年だったあの頃の感触とワクワク感を、もう一度キャディバッグの中に。\u003c\/p\u003e\n\u003cp class=\"font-claude-response-body break-words whitespace-normal\"\u003e \u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003e■商品の特徴\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp\u003e・グラブを彷彿とさせる意匠\u003cbr\u003e上質なグラブ革と革紐をあしらった遊び心あるデザイン。「D」のロゴは立体刺繍で施し、重厚感を際立たせました。・内側ボアの優しい保護力\u003cbr\u003eタフな外面とは裏腹に、内側は柔らかなボア仕様。大切なクラブヘッドを衝撃から守ります。\u003cbr\u003e・スマートな着脱\u003cbr\u003e上部に指を入れられる特殊構造を採用し、ラウンド中もストレスなくスムーズにはめ外しが可能です。\u003cbr\u003e・誇り高き MADE IN JAPAN\u003cbr\u003e裏側には、熟練の職人技と確かな品質の証である「MADE IN JAPAN」の押し印入り。\u003c\/p\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003e■大人気グラブ用クリーム付き\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp\u003e野球人に愛されるミズノのグラブ用クリームをセットでお届けします。\u003cbr\u003eラウンド後や休日に、ヘッドカバーを優しく磨き上げる贅沢な時間。使い込むほどに深まる色艶と、ギアへの愛着をぜひお楽しみください。\u003c\/p\u003e\n\u003cp\u003e\u003cimg alt=\"\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0654\/2609\/6346\/files\/even0289.jpg?v=1782205149\"\u003e\u003c\/p\u003e\n\u003cp\u003e【ご購入前の注意事項】\u003cbr\u003e・本商品は革の端材を使用しているため、部位により色味、シワ、ロゴ焼印の出方に個体差があります。世界に一つの風合いとしてお楽しみください。\u003cbr\u003e・摩擦・汗・水濡れ等による色落ちで、衣服やキャディバッグ等に色が移る場合がありますのでご注意ください。\u003cbr\u003e・ 濡れた際は陰干しし、高温多湿を避けて保管してください。表面に白い粉（革の油分）が出た場合は、柔らかい布で拭き取ってください。\u003c\/p\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003cp\u003e\u003cmeta charset=\"utf-8\"\u003e\u003cspan\u003eサイズ：ドライバー用\u003c\/span\u003e\u003cspan\u003e\u003cbr\u003e素材：天然皮革（牛革）        \u003cbr\u003e製造国：日本\u003c\/span\u003e\u003c\/p\u003e\n\u003cp\u003e商品コード｜\u003cmeta charset=\"utf-8\"\u003e\u003cspan\u003ee26n0416k\u003c\/span\u003e\u003cbr\u003e購入時納期｜3-4日\u003c\/p\u003e","brand":"EVEN","offers":[{"title":"Default Title","offer_id":47978537550042,"sku":"E26N0416K-74-00","price":24200.0,"currency_code":"JPY","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0654\/2609\/6346\/files\/even0284.jpg?v=1782205149"}],"url":"https:\/\/shop.funq.jp\/collections\/even%e5%88%a5%e6%b3%a8.oembed","provider":"FUNQTEN","version":"1.0","type":"link"}