{"title":"2buy10%OFF対象","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":"GRAY \/ 7 US M","offer_id":47538832310490,"sku":"E26I0333K-07-18","price":27500.0,"currency_code":"JPY","in_stock":false},{"title":"GRAY \/ 7.5 US M","offer_id":47538832343258,"sku":"E26I0333K-07-19","price":27500.0,"currency_code":"JPY","in_stock":false},{"title":"GRAY \/ 8 US M","offer_id":47538832376026,"sku":"E26I0333K-07-20","price":27500.0,"currency_code":"JPY","in_stock":false},{"title":"GRAY \/ 8.5 US M","offer_id":47538832408794,"sku":"E26I0333K-07-21","price":27500.0,"currency_code":"JPY","in_stock":true},{"title":"GRAY \/ 9 US M","offer_id":47538832441562,"sku":"E26I0333K-07-22","price":27500.0,"currency_code":"JPY","in_stock":true},{"title":"GRAY \/ 9.5 US M","offer_id":47538832474330,"sku":"E26I0333K-07-23","price":27500.0,"currency_code":"JPY","in_stock":false},{"title":"GRAY \/ 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":"e26g0397k","title":"【1点限定】REMAKE CADDY BAG（vintage flight jacket)","description":"\u003ch6\u003eヴィンテージの魂を再構築。スタイリスト尾後啓太氏が手掛ける、世界に一つの傑作。\u003c\/h6\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003cp\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0654\/2609\/6346\/files\/even0573.jpg?v=1777010724\" alt=\"\"\u003e\u003c\/p\u003e\n\u003cp\u003eスタイリスト界きってのゴルフ愛好家として知られる尾後啓太氏が手掛ける「FLOG GOLF CLUB」より、希少なヴィンテージのフライトジャケットを解体し、複数のパーツを組み合わせて再構築したリメイクキャディバッグが登場。\u003c\/p\u003e\n\u003cp\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0654\/2609\/6346\/files\/even0580.jpg?v=1777010724\" alt=\"\"\u003e\u003cbr\u003e\u003cstrong\u003e唯一無二の存在感\u003c\/strong\u003e\u003cbr\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\/even0578.jpg?v=1777010724\" alt=\"\"\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0654\/2609\/6346\/files\/even0579.jpg?v=1777010723\" alt=\"\"\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eこだわりのディテール\u003c\/strong\u003e\u003cbr\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\/even0572.jpg?v=1777010724\" alt=\"\"\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eスタイルを語る道具\u003c\/strong\u003e\u003cbr\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\/2026-04-24_161723.png?v=1777015089\" alt=\"\"\u003e\u003c\/p\u003e\n\u003cp\u003e古着を継ぎ接ぎして作られた、まさに世界に一つだけのキャディバッグです。\u003cbr\u003eリメイクシリーズは非常に人気が高く、毎回すぐに売り切れてしまう争奪戦必至のアイテム。是非尾後啓太氏の世界観を手に入れてみては。\u003c\/p\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003cmeta charset=\"utf-8\"\u003e\n\u003cp\u003e\u003cspan\u003eサイズ：9.0型\u003c\/span\u003e\u003cbr\u003e\u003cspan\u003e素材：MIX\u003cbr\u003e\u003c\/span\u003e\u003cspan\u003e製造国：中国\u003c\/span\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商品コード｜\u003c\/span\u003e\u003c\/p\u003e\n\u003cmeta charset=\"utf-8\"\u003e\n\u003cp\u003e\u003cspan\u003ee26g0397k\u003c\/span\u003e\u003cbr\u003e\u003cspan\u003e購入時納期｜7-10日\u003c\/span\u003e\u003c\/p\u003e","brand":"EVEN","offers":[{"title":"Default Title","offer_id":47791406088410,"sku":"E26G0397K-74-00","price":385000.0,"currency_code":"JPY","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0654\/2609\/6346\/files\/even0571.jpg?v=1777010724"},{"product_id":"s26a0343k","title":"PĀLULU MOCKNECK S\/S（TEAM KOLEPA）","description":"\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: 16px;\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 16px;\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  .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\u003cdiv class=\"product-video-wrapper\"\u003e\n  \u003cvideo class=\"product-video\" src=\"https:\/\/cdn.shopify.com\/videos\/c\/o\/v\/e7d6aac4e145492694ec470741861be1.mp4\" playsinline muted loop=\"loop\" autoplay=\"autoplay\"\u003e\u003c\/video\u003e\n  \u003cdiv class=\"video-sound-toggle\"\u003e\n    \u003cimg class=\"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=\"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\u003cscript\u003e\n(function () {\n  document.querySelectorAll('.product-video-wrapper').forEach(function (wrapper) {\n    const video = wrapper.querySelector('.product-video');\n    const checkbox = wrapper.querySelector('.video-sound-switch');\n    const icon = wrapper.querySelector('.video-sound-icon');\n    if (!video || !checkbox || !icon) return;\n    video.muted = true;\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\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ブランドを象徴するアイテムともいえるSURF Mockneckをベースに夏場に嬉しい遮熱性に特化した新素材を採用した1着。\u003c\/p\u003e\n\u003cp\u003e特殊形状のフィラメントにより高い遮熱性を発揮し夏の強い日差しの下でも衣服内の温度上昇を抑え高いUVカット性も併せ持つ。\u003c\/p\u003e\n\u003cp\u003eP_luluとはShield（盾）を意味するハワイ語で太陽光から身体を守る意味からネーミングされました。\u003c\/p\u003e\n\u003cp\u003eプレー中の体の動きを考えて作られたオリジナルパターンのKolepaスリーブは肩回りの動きを妨げない。\u003c\/p\u003e\n\u003cp\u003eまた肩周りや脇ハギはフラットシーマにて縫製する事で肌触りもなめらかでプレー中のわずかなストレスも解消してくれます。\u003c\/p\u003e\n\u003cp\u003e右前裾にはThe Game of a Lifetime（ゴルフは一生のゲーム）サテンテープが付きアクセントになっている。\u003c\/p\u003e\n\u003cp\u003eフロントにはSALVEGE PUBLIC Kolepaチームロゴがスポーティでインパクトある仕上がり。\u003c\/p\u003e\n\u003cp\u003e【SALVAGE PUBLIC Kolepa】\u003cbr\u003eEVENが監修するハワイで人気の「サルベージ パブリック」のゴルフライン「サルベージ パブリック コレパ」\u003cbr\u003e\"Kolepa\"とはハワイの言葉でゴルフを意味し、リラックス感と都会的なモダンテイストが融合する機能性を備えたゴルファー目線たっぷりなコレクションを展開する。\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\u003c\/tr\u003e\n\u003c\/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003cth\u003eS\u003c\/th\u003e\n\u003ctd\u003e53.5\u003c\/td\u003e\n\u003ctd\u003e52\u003c\/td\u003e\n\u003ctd\u003e70\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eM\u003c\/th\u003e\n\u003ctd\u003e55.5\u003c\/td\u003e\n\u003ctd\u003e55\u003c\/td\u003e\n\u003ctd\u003e72\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eL\u003c\/th\u003e\n\u003ctd\u003e57.6\u003c\/td\u003e\n\u003ctd\u003e58\u003c\/td\u003e\n\u003ctd\u003e74\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eXL\u003c\/th\u003e\n\u003ctd\u003e59.6\u003c\/td\u003e\n\u003ctd\u003e61\u003c\/td\u003e\n\u003ctd\u003e76\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            \u003cbutton class=\"size-btn is-active\" data-size=\"S\" data-image=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0654\/2609\/6346\/files\/S-size-visualizer-ss-tshirt_e213ef5a-755d-4866-891c-3a646b926717.png?v=1782794983\"\u003eS\u003c\/button\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\/M-size-visualizer-ss-tshirt_07a9cedc-6c56-47ee-9ca7-c002c98a216b.png?v=1782794982\"\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\/L-size-visualizer-ss-tshirt_972a421a-96b7-480f-98b3-4a9758c6227e.png?v=1782794983\"\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\/XL-size-visualizer-ss-tshirt.png?v=1782794983\"\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\u003eSALVAGE PUBLIC Kolepa\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e品番\u003c\/td\u003e\n\u003ctd\u003eSVKA6001\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e商品コード\u003c\/td\u003e\n\u003ctd\u003es26a0343k\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\/DSC3451.jpg?v=1778571229\u0026amp;width=200\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC3451.jpg?v=1778571229\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\/DSC3454.jpg?v=1778571229\u0026amp;width=700\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC3454.jpg?v=1778571229\u0026amp;width=700\" 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\/DSC3459.jpg?v=1778571229\u0026amp;width=700\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC3459.jpg?v=1778571229\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\/DSC3460.jpg?v=1778571229\u0026amp;width=700\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC3460.jpg?v=1778571229\u0026amp;width=700\" 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\/DSC3453.jpg?v=1778571229\u0026amp;width=700\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC3453.jpg?v=1778571229\u0026amp;width=700\" 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\/DSC3452.jpg?v=1778571229\u0026amp;width=700\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC3452.jpg?v=1778571229\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\/DSC3455.jpg?v=1778571229\u0026amp;width=700\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC3455.jpg?v=1778571229\u0026amp;width=700\" 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\/DSC3456.jpg?v=1778571229\u0026amp;width=700\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC3456.jpg?v=1778571229\u0026amp;width=700\" 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\/DSC2925_24d76e2c-e3f0-48b0-8aaa-f64941435471.jpg?v=1782207524\u0026amp;width=700\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC2925_24d76e2c-e3f0-48b0-8aaa-f64941435471.jpg?v=1782207524\u0026amp;width=700\" 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\/DSC2916_9c194755-86c9-4fa5-b162-790c2594ec90.jpg?v=1782207524\u0026amp;width=700\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC2916_9c194755-86c9-4fa5-b162-790c2594ec90.jpg?v=1782207524\u0026amp;width=700\" class=\"gallery-item\" alt=\"Gallery 10\"\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":"WHITE \/ S","offer_id":47851425923290,"sku":"S26A0343K-10-03","price":13200.0,"currency_code":"JPY","in_stock":false},{"title":"WHITE \/ M","offer_id":47851425956058,"sku":"S26A0343K-10-04","price":13200.0,"currency_code":"JPY","in_stock":true},{"title":"WHITE \/ L","offer_id":47851425988826,"sku":"S26A0343K-10-05","price":13200.0,"currency_code":"JPY","in_stock":true},{"title":"WHITE \/ XL","offer_id":47851426021594,"sku":"S26A0343K-10-06","price":13200.0,"currency_code":"JPY","in_stock":true},{"title":"NAVY \/ S","offer_id":47851426054362,"sku":"S26A0343K-40-03","price":13200.0,"currency_code":"JPY","in_stock":true},{"title":"NAVY \/ M","offer_id":47851426087130,"sku":"S26A0343K-40-04","price":13200.0,"currency_code":"JPY","in_stock":true},{"title":"NAVY \/ L","offer_id":47851426119898,"sku":"S26A0343K-40-05","price":13200.0,"currency_code":"JPY","in_stock":true},{"title":"NAVY \/ XL","offer_id":47851426152666,"sku":"S26A0343K-40-06","price":13200.0,"currency_code":"JPY","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0654\/2609\/6346\/files\/DSC3451.jpg?v=1778571229"},{"product_id":"s26a0344k","title":"PĀLULU MOCKNECK（LOCAL GOLFERS UNION）","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ブランドを象徴するアイテムともいえるSURF Mockneckをベースに夏場に嬉しい遮熱性に特化した新素材を採用した1着。\u003c\/p\u003e\n\u003cp\u003e特殊形状のフィラメントにより高い遮熱性を発揮し夏の強い日差しの下でも衣服内の温度上昇を抑え高いUVカット性も併せ持つ。\u003c\/p\u003e\n\u003cp\u003eP_luluとはShield（盾）を意味するハワイ語で太陽光から身体を守る意味からネーミングされました。\u003c\/p\u003e\n\u003cp\u003eプレー中の体の動きを考えて作られたオリジナルパターンのKolepaスリーブは肩回りの動きを妨げない。\u003c\/p\u003e\n\u003cp\u003eまた肩周りや脇ハギはフラットシーマにて縫製する事で肌触りもなめらかでプレー中のわずかなストレスも解消してくれます。\u003c\/p\u003e\n\u003cp\u003e右前裾にはThe Game of a Lifetime（ゴルフは一生のゲーム）サテンテープが付きアクセントになっている。\u003c\/p\u003e\n\u003cp\u003eフロント左胸にはブランドのシンボルマークでもあるダイアモンドヘッドロゴがタータンチェック生地を使いアップリケ刺繍で表現している。\u003c\/p\u003e\n\u003cp\u003e背中にはLOCAL GOLFERS UNIONのプリント入り。\u003c\/p\u003e\n\u003cp\u003e特別なメンバーに加わった仲間意識を与えてくれる。気の合う仲間達とお揃いでもスタイリッシュな印象で良い。\u003c\/p\u003e\n\u003cp\u003e【SALVAGE PUBLIC Kolepa】\u003cbr\u003eEVENが監修するハワイで人気の「サルベージ パブリック」のゴルフライン「サルベージ パブリック コレパ」\u003cbr\u003e\"Kolepa\"とはハワイの言葉でゴルフを意味し、リラックス感と都会的なモダンテイストが融合する機能性を備えたゴルファー目線たっぷりなコレクションを展開する。\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\u003c\/tr\u003e\n\u003c\/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003cth\u003eS\u003c\/th\u003e\n\u003ctd\u003e53.5\u003c\/td\u003e\n\u003ctd\u003e52\u003c\/td\u003e\n\u003ctd\u003e70\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eM\u003c\/th\u003e\n\u003ctd\u003e55.5\u003c\/td\u003e\n\u003ctd\u003e55\u003c\/td\u003e\n\u003ctd\u003e72\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eL\u003c\/th\u003e\n\u003ctd\u003e57.6\u003c\/td\u003e\n\u003ctd\u003e58\u003c\/td\u003e\n\u003ctd\u003e74\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eXL\u003c\/th\u003e\n\u003ctd\u003e59.6\u003c\/td\u003e\n\u003ctd\u003e61\u003c\/td\u003e\n\u003ctd\u003e76\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            \u003cbutton class=\"size-btn is-active\" data-size=\"S\" data-image=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0654\/2609\/6346\/files\/S-size-visualizer-ss-tshirt_e213ef5a-755d-4866-891c-3a646b926717.png?v=1782794983\"\u003eS\u003c\/button\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\/M-size-visualizer-ss-tshirt_07a9cedc-6c56-47ee-9ca7-c002c98a216b.png?v=1782794982\"\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\/L-size-visualizer-ss-tshirt_972a421a-96b7-480f-98b3-4a9758c6227e.png?v=1782794983\"\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\/XL-size-visualizer-ss-tshirt.png?v=1782794983\"\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\u003eSALVAGE PUBLIC Kolepa\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e品番\u003c\/td\u003e\n\u003ctd\u003eSVKA6002\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e商品コード\u003c\/td\u003e\n\u003ctd\u003es26a0344k\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\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\/DSC3462.jpg?v=1778571324\u0026amp;width=700\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC3462.jpg?v=1778571324\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\/DSC3469.jpg?v=1778571324\u0026amp;width=700\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC3469.jpg?v=1778571324\u0026amp;width=700\" 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\/DSC3475.jpg?v=1778571324\u0026amp;width=700\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC3475.jpg?v=1778571324\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\/DSC3477.jpg?v=1778571324\u0026amp;width=700\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC3477.jpg?v=1778571324\u0026amp;width=700\" 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\/DSC3465.jpg?v=1778571324\u0026amp;width=700\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC3465.jpg?v=1778571324\u0026amp;width=700\" 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\/DSC3464.jpg?v=1778571324\u0026amp;width=700\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC3464.jpg?v=1778571324\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\/DSC3467.jpg?v=1778571324\u0026amp;width=700\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC3467.jpg?v=1778571324\u0026amp;width=700\" 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\/DSC3472.jpg?v=1778571324\u0026amp;width=700\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC3472.jpg?v=1778571324\u0026amp;width=700\" class=\"gallery-item\" alt=\"Gallery 8\"\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":"WHITE \/ S","offer_id":47851426185434,"sku":"S26A0344K-10-03","price":13200.0,"currency_code":"JPY","in_stock":true},{"title":"WHITE \/ M","offer_id":47851426218202,"sku":"S26A0344K-10-04","price":13200.0,"currency_code":"JPY","in_stock":true},{"title":"WHITE \/ L","offer_id":47851426250970,"sku":"S26A0344K-10-05","price":13200.0,"currency_code":"JPY","in_stock":true},{"title":"WHITE \/ XL","offer_id":47851426283738,"sku":"S26A0344K-10-06","price":13200.0,"currency_code":"JPY","in_stock":true},{"title":"SAND \/ S","offer_id":47851426316506,"sku":"S26A0344K-28-03","price":13200.0,"currency_code":"JPY","in_stock":true},{"title":"SAND \/ M","offer_id":47851426349274,"sku":"S26A0344K-28-04","price":13200.0,"currency_code":"JPY","in_stock":true},{"title":"SAND \/ L","offer_id":47851426382042,"sku":"S26A0344K-28-05","price":13200.0,"currency_code":"JPY","in_stock":true},{"title":"SAND \/ XL","offer_id":47851426414810,"sku":"S26A0344K-28-06","price":13200.0,"currency_code":"JPY","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0654\/2609\/6346\/files\/DSC3475.jpg?v=1778571324"},{"product_id":"s26a0345k","title":"KONA POLO S\/S","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超軽量、吸水速乾、遮熱、UVカットを兼ね合わせたハイブリッドなポロシャツ。\n『DRY FEEL_（ドライフィール）AS』は2種類の特殊な糸を複合する事で高い吸水速乾性、遮熱性を誇りハニカム編みでサラッとドライタッチで軽量な仕上がりを実現している\nルーズ過ぎず、程よいゆとりを持たせたシルエットのポロシャツは優しいフィット感で快適なプレーをサポートします。\n襟と袖口にピンストライプの配色を入れて上品な印象に仕上がっている。 両裾にはスリット入り。\nメッセージはジャック・ニクラスの名言をスタイリッシュに表現。\n\u003c\/p\u003e\n\u003cp\u003eGolf is game of respect and sportsmanship. We have to respect its traditions and its rules.\u003c\/p\u003e\nゴルフは敬意とスポーツマンシップのゲームだ。\n私たちはその伝統と慣習を尊重しなければならない。\n\u003cp\u003e【SALVAGE PUBLIC Kolepa】\u003cbr\u003eEVENが監修するハワイで人気の「サルベージ パブリック」のゴルフライン「サルベージ パブリック コレパ」\u003cbr\u003e\"Kolepa\"とはハワイの言葉でゴルフを意味し、リラックス感と都会的なモダンテイストが融合する機能性を備えたゴルファー目線たっぷりなコレクションを展開する。\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\u003eS\u003c\/th\u003e\n\u003ctd\u003e45.3\u003c\/td\u003e\n\u003ctd\u003e51\u003c\/td\u003e\n\u003ctd\u003e23\u003c\/td\u003e\n\u003ctd\u003e68\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eM\u003c\/th\u003e\n\u003ctd\u003e47.3\u003c\/td\u003e\n\u003ctd\u003e54\u003c\/td\u003e\n\u003ctd\u003e24\u003c\/td\u003e\n\u003ctd\u003e71\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eL\u003c\/th\u003e\n\u003ctd\u003e49.3\u003c\/td\u003e\n\u003ctd\u003e57\u003c\/td\u003e\n\u003ctd\u003e25\u003c\/td\u003e\n\u003ctd\u003e74\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            \u003cbutton class=\"size-btn is-active\" data-size=\"S\" data-image=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0654\/2609\/6346\/files\/S-size-visualizer-ss-tshirt.png?v=1782701868\"\u003eS\u003c\/button\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\/M-size-visualizer-ss-tshirt.png?v=1782701868\"\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\/L-size-visualizer-ss-tshirt.png?v=1782701868\"\u003eL\u003c\/button\u003e\n\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\u003eSALVAGE PUBLIC Kolepa\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e品番\u003c\/td\u003e\n\u003ctd\u003eSVKA6003\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e商品コード\u003c\/td\u003e\n\u003ctd\u003es26a0345k\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\/A7R0730.jpg?v=1778571452\u0026amp;width=700\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/A7R0730.jpg?v=1778571452\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\/A7R0730b.jpg?v=1778571452\u0026amp;width=700\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/A7R0730b.jpg?v=1778571452\u0026amp;width=700\" 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\/A7R0723.jpg?v=1778571452\u0026amp;width=700\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/A7R0723.jpg?v=1778571452\u0026amp;width=700\" 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\/A7R0723b.jpg?v=1778571452\u0026amp;width=700\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/A7R0723b.jpg?v=1778571452\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\/A7R0731.jpg?v=1778571452\u0026amp;width=700\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/A7R0731.jpg?v=1778571452\u0026amp;width=700\" 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\/A7R0731b.jpg?v=1778571452\u0026amp;width=700\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/A7R0731b.jpg?v=1778571452\u0026amp;width=700\" 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\/A7R0724.jpg?v=1778571452\u0026amp;width=700\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/A7R0724.jpg?v=1778571452\u0026amp;width=700\" 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\/A7R0726.jpg?v=1778571452\u0026amp;width=700\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/A7R0726.jpg?v=1778571452\u0026amp;width=700\" 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\/A7R0727.jpg?v=1778571452\u0026amp;width=700\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/A7R0727.jpg?v=1778571452\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\/A7R0728.jpg?v=1778571453\u0026amp;width=700\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/A7R0728.jpg?v=1778571453\u0026amp;width=700\" 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\/DSC3023.jpg?v=1782205646\u0026amp;width=700\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC3023.jpg?v=1782205646\u0026amp;width=700\" class=\"gallery-item\" alt=\"Gallery 12\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"gallery-item-wrapper\" data-src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC3030.jpg?v=1782205647\u0026amp;width=700\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC3030.jpg?v=1782205647\u0026amp;width=700\" class=\"gallery-item\" alt=\"Gallery 13\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"gallery-item-wrapper\" data-src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC3034.jpg?v=1782205646\u0026amp;width=700\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC3034.jpg?v=1782205646\u0026amp;width=700\" class=\"gallery-item\" alt=\"Gallery 14\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"gallery-item-wrapper\" data-src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC3037-2.jpg?v=1782205646\u0026amp;width=700\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC3037-2.jpg?v=1782205646\u0026amp;width=700\" class=\"gallery-item\" alt=\"Gallery 15\"\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":"CHARCOAL GRAY \/ S","offer_id":47851426447578,"sku":"S26A0345K-09-03","price":19800.0,"currency_code":"JPY","in_stock":true},{"title":"CHARCOAL GRAY \/ M","offer_id":47851426480346,"sku":"S26A0345K-09-04","price":19800.0,"currency_code":"JPY","in_stock":true},{"title":"CHARCOAL GRAY \/ L","offer_id":47851426513114,"sku":"S26A0345K-09-05","price":19800.0,"currency_code":"JPY","in_stock":true},{"title":"WHITE \/ S","offer_id":47851426545882,"sku":"S26A0345K-10-03","price":19800.0,"currency_code":"JPY","in_stock":true},{"title":"WHITE \/ M","offer_id":47851426578650,"sku":"S26A0345K-10-04","price":19800.0,"currency_code":"JPY","in_stock":true},{"title":"WHITE \/ L","offer_id":47851426611418,"sku":"S26A0345K-10-05","price":19800.0,"currency_code":"JPY","in_stock":true},{"title":"NAVY \/ S","offer_id":47851426644186,"sku":"S26A0345K-40-03","price":19800.0,"currency_code":"JPY","in_stock":true},{"title":"NAVY \/ M","offer_id":47851426676954,"sku":"S26A0345K-40-04","price":19800.0,"currency_code":"JPY","in_stock":true},{"title":"NAVY \/ L","offer_id":47851426709722,"sku":"S26A0345K-40-05","price":19800.0,"currency_code":"JPY","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0654\/2609\/6346\/files\/A7R0723.jpg?v=1778571452"},{"product_id":"s26a0346k","title":"AMPHIBIOUS S\/S（TEE STAMP）","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ラッシュガードとしても着用出来る抜群のストレッチ性と吸水速乾性、UVカットが特徴の水陸両用Teeシャツ。\u003c\/p\u003e\n\u003cp\u003eボックスフィットのリラックスした雰囲気がハワイらしい仕上がり。\u003c\/p\u003e\n\u003cp\u003e右前裾にはThe Game of a Lifetime（ゴルフは一生のゲーム）サテンテープが付きアクセントになっている。\u003c\/p\u003e\n\u003cp\u003eフロントにはSALVAGE PUBLIC Kolepaティースタンプのプリント入り。\u003c\/p\u003e\n\u003cp\u003e【SALVAGE PUBLIC Kolepa】\u003cbr\u003eEVENが監修するハワイで人気の「サルベージ パブリック」のゴルフライン「サルベージ パブリック コレパ」\u003cbr\u003e\"Kolepa\"とはハワイの言葉でゴルフを意味し、リラックス感と都会的なモダンテイストが融合する機能性を備えたゴルファー目線たっぷりなコレクションを展開する。\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\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\u003e50\u003c\/td\u003e\n      \u003ctd\u003e52.5\u003c\/td\u003e\n      \u003ctd\u003e22.5\u003c\/td\u003e\n      \u003ctd\u003e64\u003c\/td\u003e\n    \u003c\/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003eM\u003c\/th\u003e\n      \u003ctd\u003e52\u003c\/td\u003e\n      \u003ctd\u003e56\u003c\/td\u003e\n      \u003ctd\u003e23.5\u003c\/td\u003e\n      \u003ctd\u003e67.5\u003c\/td\u003e\n    \u003c\/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003eL\u003c\/th\u003e\n      \u003ctd\u003e54.5\u003c\/td\u003e\n      \u003ctd\u003e56\u003c\/td\u003e\n      \u003ctd\u003e24\u003c\/td\u003e\n      \u003ctd\u003e67.5\u003c\/td\u003e\n    \u003c\/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003eXL\u003c\/th\u003e\n      \u003ctd\u003e56\u003c\/td\u003e\n      \u003ctd\u003e59.5\u003c\/td\u003e\n      \u003ctd\u003e25.5\u003c\/td\u003e\n      \u003ctd\u003e71\u003c\/td\u003e\n    \u003c\/tr\u003e\n  \u003c\/tbody\u003e\n\u003c\/table\u003e\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            \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\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_2d47572a-7c30-427d-b4b9-0225e4670549.png?v=1784175991\"\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_d98b6bfb-0404-4c6e-b3ae-c65b1d1b194a.png?v=1784175991\"\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\/size-visualizer-ss-tshirt.png?v=1784175991\"\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\u003eSALVAGE PUBLIC Kolepa\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e品番\u003c\/td\u003e\n\u003ctd\u003eSVKA6004\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e商品コード\u003c\/td\u003e\n\u003ctd\u003es26a0346k\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\/A7R0734.jpg?v=1778571544\u0026amp;width=700\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/A7R0734.jpg?v=1778571544\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\/A7R0734b.jpg?v=1778571544\u0026amp;width=700\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/A7R0734b.jpg?v=1778571544\u0026amp;width=700\" 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\/A7R0741.jpg?v=1778571544\u0026amp;width=700\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/A7R0741.jpg?v=1778571544\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\/A7R0741b.jpg?v=1778571544\u0026amp;width=700\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/A7R0741b.jpg?v=1778571544\u0026amp;width=700\" 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\/A7R0735.jpg?v=1778571544\u0026amp;width=700\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/A7R0735.jpg?v=1778571544\u0026amp;width=700\" 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\/A7R0736.jpg?v=1778571544\u0026amp;width=700\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/A7R0736.jpg?v=1778571544\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\/A7R0738.jpg?v=1778571544\u0026amp;width=700\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/A7R0738.jpg?v=1778571544\u0026amp;width=700\" 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\/A7R0739.jpg?v=1778571544\u0026amp;width=700\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/A7R0739.jpg?v=1778571544\u0026amp;width=700\" 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\/DSC3055_3e37d330-c497-4aad-835b-1c86c7770a51.jpg?v=1783583172\u0026amp;width=700\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC3055_3e37d330-c497-4aad-835b-1c86c7770a51.jpg?v=1783583172\u0026amp;width=700\" 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\/DSC3069_cd72a09b-fcc7-46d3-bde8-d7c0ef4d2eef.jpg?v=1783583173\u0026amp;width=700\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC3069_cd72a09b-fcc7-46d3-bde8-d7c0ef4d2eef.jpg?v=1783583173\u0026amp;width=700\" 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\/DSC3071_a2433103-0cb4-4c8f-9c6b-e5d3b17f8ada.jpg?v=1783583173\u0026amp;width=700\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC3071_a2433103-0cb4-4c8f-9c6b-e5d3b17f8ada.jpg?v=1783583173\u0026amp;width=700\" 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\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":"BLACK \/ S","offer_id":47851426742490,"sku":"S26A0346K-01-03","price":9680.0,"currency_code":"JPY","in_stock":true},{"title":"BLACK \/ M","offer_id":47851426775258,"sku":"S26A0346K-01-04","price":9680.0,"currency_code":"JPY","in_stock":true},{"title":"BLACK \/ L","offer_id":47851426808026,"sku":"S26A0346K-01-05","price":9680.0,"currency_code":"JPY","in_stock":true},{"title":"BLACK \/ XL","offer_id":47851426840794,"sku":"S26A0346K-01-06","price":9680.0,"currency_code":"JPY","in_stock":false},{"title":"WHITE \/ S","offer_id":47851426873562,"sku":"S26A0346K-10-03","price":9680.0,"currency_code":"JPY","in_stock":true},{"title":"WHITE \/ M","offer_id":47851426906330,"sku":"S26A0346K-10-04","price":9680.0,"currency_code":"JPY","in_stock":true},{"title":"WHITE \/ L","offer_id":47851426939098,"sku":"S26A0346K-10-05","price":9680.0,"currency_code":"JPY","in_stock":true},{"title":"WHITE \/ XL","offer_id":47851426971866,"sku":"S26A0346K-10-06","price":9680.0,"currency_code":"JPY","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0654\/2609\/6346\/files\/A7R0734.jpg?v=1778571544"},{"product_id":"s26a0347k","title":"AMPHIBIOUS S\/S（HAWAII STATE）","description":"\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: 16px;\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 16px;\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  .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\u003cdiv class=\"product-video-wrapper\"\u003e\n  \u003cvideo class=\"product-video\" src=\"https:\/\/cdn.shopify.com\/videos\/c\/o\/v\/f4e0efd8b4144ebd8269f2855f922524.mp4\" playsinline muted loop=\"loop\" autoplay=\"autoplay\"\u003e\u003c\/video\u003e\n  \u003cdiv class=\"video-sound-toggle\"\u003e\n    \u003cimg class=\"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=\"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\u003cscript\u003e\n(function () {\n  document.querySelectorAll('.product-video-wrapper').forEach(function (wrapper) {\n    const video = wrapper.querySelector('.product-video');\n    const checkbox = wrapper.querySelector('.video-sound-switch');\n    const icon = wrapper.querySelector('.video-sound-icon');\n    if (!video || !checkbox || !icon) return;\n    video.muted = true;\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\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ラッシュガードとしても着用出来る抜群のストレッチ性と吸水速乾性、UVカットが特徴の水陸両用Teeシャツ。\u003c\/p\u003e\n\u003cp\u003eボックスフィットのリラックスした雰囲気がハワイらしい仕上がり。\u003c\/p\u003e\n\u003cp\u003e右前裾にはThe Game of a Lifetime（ゴルフは一生のゲーム）サテンテープが付きアクセントになっている。\u003c\/p\u003e\n\u003cp\u003eフロントにはカレッジスタイルでHAWAII STATEのプリント入り。\u003c\/p\u003e\n\u003cp\u003e背面右肩にはSPKハングルースロゴのアイコニックなプリントが入る。\u003c\/p\u003e\n\u003cp\u003e「ありがとう」「気楽にいこう」などの意味を込めたハワイらしいリラックスしたデザインが印象的。\u003c\/p\u003e\n  \n\u003cp\u003e【SALVAGE PUBLIC Kolepa】\u003cbr\u003eEVENが監修するハワイで人気の「サルベージ パブリック」のゴルフライン「サルベージ パブリック コレパ」\u003cbr\u003e\n\"Kolepa\"とはハワイの言葉でゴルフを意味し、リラックス感と都会的なモダンテイストが融合する機能性を備えたゴルファー目線たっぷりなコレクションを展開する。\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\u003eS\u003c\/th\u003e\n      \u003ctd\u003e53\u003c\/td\u003e\n      \u003ctd\u003e56\u003c\/td\u003e\n      \u003ctd\u003e25.5\u003c\/td\u003e\n      \u003ctd\u003e72.5\u003c\/td\u003e\n    \u003c\/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003eM\u003c\/th\u003e\n      \u003ctd\u003e55\u003c\/td\u003e\n      \u003ctd\u003e59\u003c\/td\u003e\n      \u003ctd\u003e26.5\u003c\/td\u003e\n      \u003ctd\u003e75\u003c\/td\u003e\n    \u003c\/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003eL\u003c\/th\u003e\n      \u003ctd\u003e57\u003c\/td\u003e\n      \u003ctd\u003e62\u003c\/td\u003e\n      \u003ctd\u003e27.5\u003c\/td\u003e\n      \u003ctd\u003e77\u003c\/td\u003e\n    \u003c\/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003eXL\u003c\/th\u003e\n      \u003ctd\u003e59\u003c\/td\u003e\n      \u003ctd\u003e65\u003c\/td\u003e\n      \u003ctd\u003e28.5\u003c\/td\u003e\n      \u003ctd\u003e80\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            \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\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_d5be76f8-782a-4428-aaca-9e0c1745d5ea.png?v=1784101364\"\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_2cb2aebd-d055-4cbb-87f7-76f5494cfad6.png?v=1784101364\"\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_df5a64be-1c15-479b-adc0-484f69661329.png?v=1784101364\"\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\u003eSALVAGE PUBLIC Kolepa\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n            \u003ctd\u003e品番\u003c\/td\u003e\n            \u003ctd\u003eSVKA6005\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e商品コード\u003c\/td\u003e\n\u003ctd\u003es26a0347k\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\/A7R0743.jpg?v=1778571682\u0026amp;width=700\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/A7R0743.jpg?v=1778571682\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\/A7R0743b.jpg?v=1778571682\u0026amp;width=700\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/A7R0743b.jpg?v=1778571682\u0026amp;width=700\" 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\/A7R0752.jpg?v=1778571682\u0026amp;width=700\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/A7R0752.jpg?v=1778571682\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\/A7R0752b.jpg?v=1778571682\u0026amp;width=700\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/A7R0752b.jpg?v=1778571682\u0026amp;width=700\" 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\/A7R0745-2.jpg?v=1778571682\u0026amp;width=700\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/A7R0745-2.jpg?v=1778571682\u0026amp;width=700\" 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\/A7R0748.jpg?v=1778571682\u0026amp;width=700\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/A7R0748.jpg?v=1778571682\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\/A7R0749.jpg?v=1778571682\u0026amp;width=700\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/A7R0749.jpg?v=1778571682\u0026amp;width=700\" 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\/DSC2969_a1722f44-6f66-4278-8824-e71733557fd2.jpg?v=1783583207\u0026amp;width=700\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC2969_a1722f44-6f66-4278-8824-e71733557fd2.jpg?v=1783583207\u0026amp;width=700\" 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\/DSC2975_abc3b002-129a-41b7-ba36-e625b9056c3f.jpg?v=1783583207\u0026amp;width=700\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC2975_abc3b002-129a-41b7-ba36-e625b9056c3f.jpg?v=1783583207\u0026amp;width=700\" 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\/DSC2980_eea4b0c8-b7b3-410d-9fa3-a0491287d02b.jpg?v=1783583207\u0026amp;width=700\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC2980_eea4b0c8-b7b3-410d-9fa3-a0491287d02b.jpg?v=1783583207\u0026amp;width=700\" 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\/DSC2985_7a0f1f31-4157-44f2-a2bb-3a7a9eb9cf97.jpg?v=1783583207\u0026amp;width=700\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC2985_7a0f1f31-4157-44f2-a2bb-3a7a9eb9cf97.jpg?v=1783583207\u0026amp;width=700\" 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\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":"WHITE \/ S","offer_id":47851427004634,"sku":"S26A0347K-10-03","price":9680.0,"currency_code":"JPY","in_stock":false},{"title":"WHITE \/ M","offer_id":47851427037402,"sku":"S26A0347K-10-04","price":9680.0,"currency_code":"JPY","in_stock":true},{"title":"WHITE \/ L","offer_id":47851427070170,"sku":"S26A0347K-10-05","price":9680.0,"currency_code":"JPY","in_stock":true},{"title":"WHITE \/ XL","offer_id":47851427102938,"sku":"S26A0347K-10-06","price":9680.0,"currency_code":"JPY","in_stock":false},{"title":"NAVY \/ S","offer_id":47851427135706,"sku":"S26A0347K-40-03","price":9680.0,"currency_code":"JPY","in_stock":false},{"title":"NAVY \/ M","offer_id":47851427168474,"sku":"S26A0347K-40-04","price":9680.0,"currency_code":"JPY","in_stock":true},{"title":"NAVY \/ L","offer_id":47851427201242,"sku":"S26A0347K-40-05","price":9680.0,"currency_code":"JPY","in_stock":true},{"title":"NAVY \/ XL","offer_id":47851427234010,"sku":"S26A0347K-40-06","price":9680.0,"currency_code":"JPY","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0654\/2609\/6346\/files\/A7R0743.jpg?v=1778571682"},{"product_id":"s26a0353k","title":"SVKA6011［サルベージパブリックコレパ］アラパイナポロL\/S（SPK\/Laua_e）","description":"\u003cp\u003eオールシーズンで快適さを保つ為に開発された長袖ポロシャツ。\u003c\/p\u003e\n\u003cp\u003e特殊糸を用いた生地は肌面をドライに保ち夏はサラっと涼しく、冬は冷え感がなく温かさを感じる１着。\u003c\/p\u003e\n\u003cp\u003e肩回りの切り替えや脇下ガセットなどは動きを妨げずプレーに集中できる。\u003c\/p\u003e\n\u003cp\u003eフロント前立て下にはSPKモノグラム刺繍入り。\u003c\/p\u003e\n\u003cp\u003e背面にはアイコニックなLaua'e（ラウアエ）と呼ばれるハワイでお祝い事や装飾で使われる伝統的な植物をモチーフにしたハワイアンキルト柄がプリントされたインパクトある仕上がり。\u003c\/p\u003e\n\u003cp\u003e左裾にはブラックラバーパッチ付き。\u003c\/p\u003e\n\u003cp\u003e襟にジャガードで入れられた2本ラインもアクセントになっている。\u003c\/p\u003e\n\u003ctable style=\"border-collapse: collapse; width: 402px; height: 259px;\" width=\"356\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\"\u003e\n\u003ctbody\u003e\n\u003ctr style=\"height: 25.3281px;\" height=\"25\"\u003e\n\u003ctd height=\"25\" class=\"xl72\" style=\"height: 25.3281px; width: 117.75px;\"\u003eサイズ　　　　\u003c\/td\u003e\n\u003ctd class=\"xl70\" style=\"width: 94.6094px; height: 25.3281px;\"\u003eS\u003c\/td\u003e\n\u003ctd class=\"xl69\" style=\"border-left-width: medium; border-left-style: none; border-left-color: currentcolor; width: 98.2188px; height: 25.3281px;\"\u003eM\u003c\/td\u003e\n\u003ctd class=\"xl69\" style=\"border-left-width: medium; border-left-style: none; border-left-color: currentcolor; width: 86.4219px; height: 25.3281px;\"\u003eL\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr style=\"height: 27px;\" height=\"28\"\u003e\n\u003ctd height=\"25\" class=\"xl74\" style=\"height: 27px; width: 117.75px;\"\u003e着丈\u003c\/td\u003e\n\u003ctd style=\"height: 27px; width: 94.6094px;\" class=\"xl74\"\u003e69\u003c\/td\u003e\n\u003ctd class=\"xl78\" style=\"border-left-width: medium; border-left-style: none; border-left-color: currentcolor; height: 27px; width: 98.2188px;\"\u003e72\u003c\/td\u003e\n\u003ctd class=\"xl78\" style=\"border-left-width: medium; border-left-style: none; border-left-color: currentcolor; height: 27px; width: 86.4219px;\"\u003e75\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr style=\"height: 25.6641px;\" height=\"27\"\u003e\n\u003ctd height=\"24\" class=\"xl79\" style=\"height: 25.6641px; border-top-width: medium; border-top-style: none; border-top-color: currentcolor; width: 117.75px;\"\u003e身幅\u003c\/td\u003e\n\u003ctd class=\"xl79\" style=\"border-top-width: medium; border-top-style: none; border-top-color: currentcolor; height: 25.6641px; width: 94.6094px;\"\u003e50\u003c\/td\u003e\n\u003ctd class=\"xl77\" style=\"border-top-width: medium; border-top-style: none; border-top-color: currentcolor; border-left-width: medium; border-left-style: none; border-left-color: currentcolor; height: 25.6641px; width: 98.2188px;\"\u003e53\u003c\/td\u003e\n\u003ctd class=\"xl77\" style=\"border-top-width: medium; border-top-style: none; border-top-color: currentcolor; border-left-width: medium; border-left-style: none; border-left-color: currentcolor; height: 25.6641px; width: 86.4219px;\"\u003e56\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr style=\"height: 25.6641px;\" height=\"27\"\u003e\n\u003ctd height=\"24\" class=\"xl79\" style=\"height: 25.6641px; border-top-width: medium; border-top-style: none; border-top-color: currentcolor; width: 117.75px;\"\u003e裾幅\u003c\/td\u003e\n\u003ctd class=\"xl79\" style=\"border-top-width: medium; border-top-style: none; border-top-color: currentcolor; height: 25.6641px; width: 94.6094px;\"\u003e50\u003c\/td\u003e\n\u003ctd class=\"xl77\" style=\"border-top-width: medium; border-top-style: none; border-top-color: currentcolor; border-left-width: medium; border-left-style: none; border-left-color: currentcolor; height: 25.6641px; width: 98.2188px;\"\u003e53\u003c\/td\u003e\n\u003ctd class=\"xl77\" style=\"border-top-width: medium; border-top-style: none; border-top-color: currentcolor; border-left-width: medium; border-left-style: none; border-left-color: currentcolor; height: 25.6641px; width: 86.4219px;\"\u003e56\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr style=\"height: 25.6641px;\" height=\"27\"\u003e\n\u003ctd height=\"24\" class=\"xl79\" style=\"height: 25.6641px; border-top-width: medium; border-top-style: none; border-top-color: currentcolor; width: 117.75px;\"\u003e裄丈\u003c\/td\u003e\n\u003ctd class=\"xl79\" style=\"border-top-width: medium; border-top-style: none; border-top-color: currentcolor; height: 25.6641px; width: 94.6094px;\"\u003e85\u003c\/td\u003e\n\u003ctd class=\"xl77\" style=\"border-top-width: medium; border-top-style: none; border-top-color: currentcolor; border-left-width: medium; border-left-style: none; border-left-color: currentcolor; height: 25.6641px; width: 98.2188px;\"\u003e87\u003c\/td\u003e\n\u003ctd class=\"xl77\" style=\"border-top-width: medium; border-top-style: none; border-top-color: currentcolor; border-left-width: medium; border-left-style: none; border-left-color: currentcolor; height: 25.6641px; width: 86.4219px;\"\u003e89\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr style=\"height: 26.6641px;\"\u003e\n\u003ctd height=\"27\" class=\"xl79\" style=\"height: 26.6641px; border-top-width: medium; border-top-style: none; border-top-color: currentcolor; width: 117.75px;\"\u003e袖幅\u003c\/td\u003e\n\u003ctd class=\"xl79\" style=\"border-top-width: medium; border-top-style: none; border-top-color: currentcolor; height: 26.6641px; width: 94.6094px;\"\u003e24\u003c\/td\u003e\n\u003ctd class=\"xl77\" style=\"border-top-width: medium; border-top-style: none; border-top-color: currentcolor; border-left-width: medium; border-left-style: none; border-left-color: currentcolor; height: 26.6641px; width: 98.2188px;\"\u003e25\u003c\/td\u003e\n\u003ctd class=\"xl77\" style=\"border-top-width: medium; border-top-style: none; border-top-color: currentcolor; border-left-width: medium; border-left-style: none; border-left-color: currentcolor; height: 26.6641px; width: 86.4219px;\"\u003e26\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\n\u003c\/table\u003e\n\u003cp\u003e※数値はセンチ、多少の誤差がございます\u003cbr\u003e※光や角度により、実物と色味が異なる場合がございます\u003c\/p\u003e\n\u003cp\u003e\u003cmeta charset=\"utf-8\"\u003e\u003cspan\u003e素材：ポリエステル100％\u003cbr\u003e製造国：中国\u003c\/span\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cmeta charset=\"utf-8\"\u003e商品コード｜\u003cmeta charset=\"utf-8\"\u003e\u003cspan\u003es26a0353k\u003c\/span\u003e\u003cbr\u003e購入時納期｜3-4日\u003c\/p\u003e","brand":"EVEN","offers":[{"title":"ブラック \/ S","offer_id":47851427561690,"sku":"S26A0353K-01-03","price":20900.0,"currency_code":"JPY","in_stock":true},{"title":"ブラック \/ M","offer_id":47851427594458,"sku":"S26A0353K-01-04","price":20900.0,"currency_code":"JPY","in_stock":true},{"title":"ブラック \/ L","offer_id":47851427627226,"sku":"S26A0353K-01-05","price":20900.0,"currency_code":"JPY","in_stock":true},{"title":"ホワイト \/ S","offer_id":47851427659994,"sku":"S26A0353K-10-03","price":20900.0,"currency_code":"JPY","in_stock":false},{"title":"ホワイト \/ M","offer_id":47851427692762,"sku":"S26A0353K-10-04","price":20900.0,"currency_code":"JPY","in_stock":true},{"title":"ホワイト \/ L","offer_id":47851427725530,"sku":"S26A0353K-10-05","price":20900.0,"currency_code":"JPY","in_stock":true},{"title":"カーキ \/ S","offer_id":47851427758298,"sku":"S26A0353K-35-03","price":20900.0,"currency_code":"JPY","in_stock":true},{"title":"カーキ \/ M","offer_id":47851427791066,"sku":"S26A0353K-35-04","price":20900.0,"currency_code":"JPY","in_stock":true},{"title":"カーキ \/ L","offer_id":47851427823834,"sku":"S26A0353K-35-05","price":20900.0,"currency_code":"JPY","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0654\/2609\/6346\/files\/DSC3535.jpg?v=1778747227"},{"product_id":"s26d0350k","title":"HULI HALF-ZIP JACKET","description":"\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: 16px;\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 16px;\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  .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\u003cdiv class=\"product-video-wrapper\"\u003e\n  \u003cvideo class=\"product-video\" src=\"https:\/\/cdn.shopify.com\/videos\/c\/o\/v\/7e3dbb15439c4f4ba2e0c310280c12c2.mp4\" playsinline muted loop=\"loop\" autoplay=\"autoplay\"\u003e\u003c\/video\u003e\n  \u003cdiv class=\"video-sound-toggle\"\u003e\n    \u003cimg class=\"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=\"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\u003cscript\u003e\n(function () {\n  document.querySelectorAll('.product-video-wrapper').forEach(function (wrapper) {\n    const video = wrapper.querySelector('.product-video');\n    const checkbox = wrapper.querySelector('.video-sound-switch');\n    const icon = wrapper.querySelector('.video-sound-icon');\n    if (!video || !checkbox || !icon) return;\n    video.muted = true;\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\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    \/* サイズテーブルのスクロールラッパー（列が増えても5列時の見た目を保ち、はみ出した分は横スクロール） *\/\n    .size-table-wrapper {\n      overflow-x: auto;\n      margin-top: 12px;\n      -webkit-overflow-scrolling: touch;\n      scrollbar-width: thin;\n      scrollbar-color: #ccc #f5f5f5;\n    }\n    .size-table-wrapper::-webkit-scrollbar {\n      height: 4px;\n    }\n    .size-table-wrapper::-webkit-scrollbar-track {\n      background: #f5f5f5;\n      border-radius: 4px;\n    }\n    .size-table-wrapper::-webkit-scrollbar-thumb {\n      background: #ccc;\n      border-radius: 4px;\n    }\n    \/* サイズテーブルのスタイル *\/\n    .size-table {\n      width: auto;\n      border-collapse: collapse;\n      font-size: 10px;\n      table-layout: fixed;\n    }\n    .size-table thead th {\n      background: #f5f5f5;\n      font-weight: 600;\n      border: 1px solid #ddd;\n      padding: 10px 8px;\n      width: 72px;\n    }\n    .size-table thead th:first-child {\n      width: 56px;\n    }\n    .size-table tbody th {\n      background: #fafafa;\n      font-weight: 600;\n      border: 1px solid #ddd;\n      padding: 10px 8px;\n      width: 56px;\n    }\n    .size-table tbody td {\n      border: 1px solid #ddd;\n      padding: 10px 8px;\n      width: 72px;\n    }\n    .size-table th, .size-table td {\n      text-align: center;\n      white-space: nowrap;\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ハワイ語でチェンジ／変化するという意味を持つHuliは両袖を取り外す事のできる汎用性の高い1着。\u003c\/p\u003e\n\u003cp\u003e20デニールの極細ナイロン糸で織られたシェルは滑らかで軽くストレッチに長け、防風性、撥水性、透湿性も兼ね備えている。\u003c\/p\u003e\n\u003cp\u003eまたコンパクトに収納可能なパッカブル仕様のため、キャディバッグに備えておけば急な雨風も助けてくれる。\u003c\/p\u003e\n\u003cp\u003e襟付きのハーフZIPにカンガルーポケットを備えたユニークなデザインも◎\u003c\/p\u003e\n\u003cp\u003e袖口＆裾はブランドロゴのジャガードゴムが付きフィット感を高めている。\u003c\/p\u003e\n\u003cp\u003e左袖にはブラックラバーパッチ付き。\u003c\/p\u003e\n\u003cp\u003eポケットのフラップにシンプルに小さくSALVAGE PUBLIC Kolepaスタンプロゴ。\u003c\/p\u003e\n\u003cp\u003e背面にはスポーティで躍動感のあるPitch＆Runロゴのプリント入り。\u003c\/p\u003e\n\u003cp\u003e【SALVAGE PUBLIC Kolepa】\u003cbr\u003eEVENが監修するハワイで人気の「サルベージ パブリック」のゴルフライン「サルベージ パブリック コレパ」\u003cbr\u003e\"Kolepa\"とはハワイの言葉でゴルフを意味し、リラックス感と都会的なモダンテイストが融合する機能性を備えたゴルファー目線たっぷりなコレクションを展開する。\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\u003cdiv class=\"size-table-wrapper\"\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      \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\u003e54\u003c\/td\u003e\n      \u003ctd\u003e60\u003c\/td\u003e\n      \u003ctd\u003e34\u003c\/td\u003e\n      \u003ctd\u003e60\u003c\/td\u003e\n      \u003ctd\u003e71\u003c\/td\u003e\n    \u003c\/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003eM\u003c\/th\u003e\n      \u003ctd\u003e56\u003c\/td\u003e\n      \u003ctd\u003e63\u003c\/td\u003e\n      \u003ctd\u003e35\u003c\/td\u003e\n      \u003ctd\u003e61\u003c\/td\u003e\n      \u003ctd\u003e74\u003c\/td\u003e\n    \u003c\/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003eL\u003c\/th\u003e\n      \u003ctd\u003e58\u003c\/td\u003e\n      \u003ctd\u003e66\u003c\/td\u003e\n      \u003ctd\u003e36\u003c\/td\u003e\n      \u003ctd\u003e64\u003c\/td\u003e\n      \u003ctd\u003e77\u003c\/td\u003e\n    \u003c\/tr\u003e\n  \u003c\/tbody\u003e\n\u003c\/table\u003e\n\u003c\/div\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            \u003cbutton class=\"size-btn is-active\" data-size=\"S\" data-image=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0654\/2609\/6346\/files\/ssize-visualizer-jacket.png?v=1787049908\"\u003eS\u003c\/button\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_7f03d8df-5e09-4148-98a9-66cfd8ed237d.png?v=1787049908\"\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_745add0e-a4e6-4c18-a4f0-58e61c64da7c.png?v=1787049908\"\u003eL\u003c\/button\u003e\n            \u003c!-- [BTN:XL] data-image にXLサイズの画像URLを入れる --\u003e\n            \u003c!--\u003cbutton class=\"size-btn\" data-size=\"XL\" data-image=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0654\/2609\/6346\/files\/XL-size-visualizer-ss-tshirt.png?v=1782794983\"\u003eXL\u003c\/button\u003e --\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\u003eSALVAGE PUBLIC Kolepa\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e品番\u003c\/td\u003e\n\u003ctd\u003eSVKA6008\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e商品コード\u003c\/td\u003e\n\u003ctd\u003es26d0350k\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ナイロン80％ ポリウレタン20％\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\/A7R0760.jpg?v=1778749005\u0026amp;width=200\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/A7R0760.jpg?v=1778749005\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\/A7R0760b.jpg?v=1778749005\u0026amp;width=200\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/A7R0760b.jpg?v=1778749005\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\/A7R0773.jpg?v=1778749005\u0026amp;width=200\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/A7R0773.jpg?v=1778749005\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\/A7R0773b.jpg?v=1778749006\u0026amp;width=200\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/A7R0773b.jpg?v=1778749006\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\/A7R0775.jpg?v=1778749005\u0026amp;width=200\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/A7R0775.jpg?v=1778749005\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\/A7R0775b.jpg?v=1778749005\u0026amp;width=200\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/A7R0775b.jpg?v=1778749005\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\/A7R0770.jpg?v=1778749006\u0026amp;width=200\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/A7R0770.jpg?v=1778749006\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\/A7R0764.jpg?v=1778749006\u0026amp;width=200\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/A7R0764.jpg?v=1778749006\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\/A7R0766.jpg?v=1778749005\u0026amp;width=200\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/A7R0766.jpg?v=1778749005\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\/A7R0767.jpg?v=1778749005\u0026amp;width=200\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/A7R0767.jpg?v=1778749005\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\/A7R0768.jpg?v=1778749005\u0026amp;width=200\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/A7R0768.jpg?v=1778749005\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\/A7R0778.jpg?v=1778749005\u0026amp;width=200\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/A7R0778.jpg?v=1778749005\u0026amp;width=200\" class=\"gallery-item\" alt=\"Gallery 12\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"gallery-item-wrapper\" data-src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/A7R0779.jpg?v=1778749006\u0026amp;width=200\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/A7R0779.jpg?v=1778749006\u0026amp;width=200\" class=\"gallery-item\" alt=\"Gallery 13\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"gallery-item-wrapper\" data-src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/A7R0791.jpg?v=1778749006\u0026amp;width=200\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/A7R0791.jpg?v=1778749006\u0026amp;width=200\" class=\"gallery-item\" alt=\"Gallery 14\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"gallery-item-wrapper\" data-src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC3124.jpg?v=1782206025\u0026amp;width=200\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC3124.jpg?v=1782206025\u0026amp;width=200\" class=\"gallery-item\" alt=\"Gallery 15\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"gallery-item-wrapper\" data-src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC3127.jpg?v=1782206025\u0026amp;width=200\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC3127.jpg?v=1782206025\u0026amp;width=200\" class=\"gallery-item\" alt=\"Gallery 16\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"gallery-item-wrapper\" data-src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC3129.jpg?v=1782206025\u0026amp;width=200\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC3129.jpg?v=1782206025\u0026amp;width=200\" class=\"gallery-item\" alt=\"Gallery 17\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"gallery-item-wrapper\" data-src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC3135.jpg?v=1782206089\u0026amp;width=200\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC3135.jpg?v=1782206089\u0026amp;width=200\" class=\"gallery-item\" alt=\"Gallery 18\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"gallery-item-wrapper\" data-src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC3140.jpg?v=1782206025\u0026amp;width=200\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC3140.jpg?v=1782206025\u0026amp;width=200\" class=\"gallery-item\" alt=\"Gallery 19\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"gallery-item-wrapper\" data-src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC3142.jpg?v=1782206025\u0026amp;width=200\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC3142.jpg?v=1782206025\u0026amp;width=200\" class=\"gallery-item\" alt=\"Gallery 20\"\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":"BLACK \/ S","offer_id":47851429265626,"sku":"S26D0350K-01-03","price":29700.0,"currency_code":"JPY","in_stock":true},{"title":"BLACK \/ M","offer_id":47851429298394,"sku":"S26D0350K-01-04","price":29700.0,"currency_code":"JPY","in_stock":true},{"title":"BLACK \/ L","offer_id":47851429331162,"sku":"S26D0350K-01-05","price":29700.0,"currency_code":"JPY","in_stock":true},{"title":"GREEN \/ S","offer_id":47851429363930,"sku":"S26D0350K-30-03","price":29700.0,"currency_code":"JPY","in_stock":true},{"title":"GREEN \/ M","offer_id":47851429396698,"sku":"S26D0350K-30-04","price":29700.0,"currency_code":"JPY","in_stock":true},{"title":"GREEN \/ L","offer_id":47851429429466,"sku":"S26D0350K-30-05","price":29700.0,"currency_code":"JPY","in_stock":true},{"title":"NAVY \/ S","offer_id":47851429462234,"sku":"S26D0350K-40-03","price":29700.0,"currency_code":"JPY","in_stock":true},{"title":"NAVY \/ M","offer_id":47851429495002,"sku":"S26D0350K-40-04","price":29700.0,"currency_code":"JPY","in_stock":true},{"title":"NAVY \/ L","offer_id":47851429527770,"sku":"S26D0350K-40-05","price":29700.0,"currency_code":"JPY","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0654\/2609\/6346\/files\/A7R0775.jpg?v=1778749005"},{"product_id":"s26d0351k","title":"SVKA6009［サルベージパブリックコレパ］カハラシアサッカージャケット","description":"\u003cp\u003e上品でリゾート感の漂うシアサッカー素材を使ったドリズラージャケット。\u003c\/p\u003e\n\u003cp\u003eトラディショナルなブルゾンの代表格ともいえるドリズラージャケットは汎用性の高いデザインで1着あると様々なスタイリングに重宝する。\u003c\/p\u003e\n\u003cp\u003eフロントZIPは逆開のダブルジッパー仕様でスタイリングの幅を広げ、ベンチレーション効果も期待できる。\u003c\/p\u003e\n\u003cp\u003e袖口はブランドロゴのジャガードゴムが付き、裾もゴム入りでフィット感を高めている。\u003c\/p\u003e\n\u003cp\u003e左袖にはブラックラバーパッチ付き。\u003c\/p\u003e\n\u003cp\u003eフロント左胸にはブランドのシンボルマークでもあるダイアモンドヘッドロゴがタータンチェック生地を使いアップリケ刺繍で表現している。\u003c\/p\u003e\n\u003cp\u003e背中には独特なレイアウトで入れられたSTRIVE FOR EXCELLENCE／卓越するため（上手くなるため）に努力する が秀逸な仕上がり。\u003c\/p\u003e\n\u003ctable style=\"border-collapse: collapse; width: 357px; height: 258.977px;\" width=\"356\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\"\u003e\n\u003ctbody\u003e\n\u003ctr style=\"height: 25.3281px;\" height=\"25\"\u003e\n\u003ctd height=\"25\" class=\"xl72\" width=\"89\" style=\"height: 25.3281px; width: 88.8281px;\"\u003eサイズ　　　　\u003c\/td\u003e\n\u003ctd class=\"xl70\" width=\"89\" style=\"width: 87.7969px; height: 25.3281px;\"\u003eS\u003c\/td\u003e\n\u003ctd class=\"xl69\" width=\"89\" style=\"border-left-width: medium; border-left-style: none; border-left-color: currentcolor; width: 87.7969px; height: 25.3281px;\"\u003eM\u003c\/td\u003e\n\u003ctd class=\"xl69\" width=\"89\" style=\"border-left-width: medium; border-left-style: none; border-left-color: currentcolor; width: 87.5781px; height: 25.3281px;\"\u003eL\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr style=\"height: 27px;\" height=\"28\"\u003e\n\u003ctd height=\"25\" class=\"xl74\" style=\"height: 27px; width: 88.8281px;\"\u003e着丈\u003c\/td\u003e\n\u003ctd style=\"height: 27px; width: 87.7969px;\" class=\"xl74\"\u003e65\u003c\/td\u003e\n\u003ctd class=\"xl78\" style=\"border-left-width: medium; border-left-style: none; border-left-color: currentcolor; height: 27px; width: 87.7969px;\"\u003e68\u003c\/td\u003e\n\u003ctd class=\"xl78\" style=\"border-left-width: medium; border-left-style: none; border-left-color: currentcolor; height: 27px; width: 87.5781px;\"\u003e71\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr style=\"height: 25.6641px;\" height=\"27\"\u003e\n\u003ctd height=\"24\" class=\"xl79\" style=\"height: 25.6641px; border-top-width: medium; border-top-style: none; border-top-color: currentcolor; width: 88.8281px;\"\u003e身幅\u003c\/td\u003e\n\u003ctd class=\"xl79\" style=\"border-top-width: medium; border-top-style: none; border-top-color: currentcolor; height: 25.6641px; width: 87.7969px;\"\u003e65\u003c\/td\u003e\n\u003ctd class=\"xl77\" style=\"border-top-width: medium; border-top-style: none; border-top-color: currentcolor; border-left-width: medium; border-left-style: none; border-left-color: currentcolor; height: 25.6641px; width: 87.7969px;\"\u003e68\u003c\/td\u003e\n\u003ctd class=\"xl77\" style=\"border-top-width: medium; border-top-style: none; border-top-color: currentcolor; border-left-width: medium; border-left-style: none; border-left-color: currentcolor; height: 25.6641px; width: 87.5781px;\"\u003e71\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr style=\"height: 25.6641px;\" height=\"27\"\u003e\n\u003ctd height=\"24\" class=\"xl79\" style=\"height: 25.6641px; border-top-width: medium; border-top-style: none; border-top-color: currentcolor; width: 88.8281px;\"\u003e肩幅\u003c\/td\u003e\n\u003ctd class=\"xl79\" style=\"border-top-width: medium; border-top-style: none; border-top-color: currentcolor; height: 25.6641px; width: 87.7969px;\"\u003e\n\u003cmeta charset=\"utf-8\"\u003e53\u003c\/td\u003e\n\u003ctd class=\"xl77\" style=\"border-top-width: medium; border-top-style: none; border-top-color: currentcolor; border-left-width: medium; border-left-style: none; border-left-color: currentcolor; height: 25.6641px; width: 87.7969px;\"\u003e\n\u003cmeta charset=\"utf-8\"\u003e55\u003c\/td\u003e\n\u003ctd class=\"xl77\" style=\"border-top-width: medium; border-top-style: none; border-top-color: currentcolor; border-left-width: medium; border-left-style: none; border-left-color: currentcolor; height: 25.6641px; width: 87.5781px;\"\u003e\n\u003cmeta charset=\"utf-8\"\u003e57\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr style=\"height: 25.6641px;\" height=\"27\"\u003e\n\u003ctd height=\"24\" class=\"xl79\" style=\"height: 25.6641px; border-top-width: medium; border-top-style: none; border-top-color: currentcolor; width: 88.8281px;\"\u003e袖丈\u003c\/td\u003e\n\u003ctd class=\"xl79\" style=\"border-top-width: medium; border-top-style: none; border-top-color: currentcolor; height: 25.6641px; width: 87.7969px;\"\u003e60.5\u003c\/td\u003e\n\u003ctd class=\"xl77\" style=\"border-top-width: medium; border-top-style: none; border-top-color: currentcolor; border-left-width: medium; border-left-style: none; border-left-color: currentcolor; height: 25.6641px; width: 87.7969px;\"\u003e62\u003c\/td\u003e\n\u003ctd class=\"xl77\" style=\"border-top-width: medium; border-top-style: none; border-top-color: currentcolor; border-left-width: medium; border-left-style: none; border-left-color: currentcolor; height: 25.6641px; width: 87.5781px;\"\u003e63.5\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\n\u003c\/table\u003e\n\u003cp\u003e※数値はセンチ、多少の誤差がございます\u003cbr\u003e※光や角度により、実物と色味が異なる場合がございます\u003c\/p\u003e\n\u003cp\u003e\u003cmeta charset=\"utf-8\"\u003e\u003cspan\u003e素材：ポリエステル71％ 綿29％\u003cbr\u003e製造国：中国\u003c\/span\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cmeta charset=\"utf-8\"\u003e商品コード｜\u003cmeta charset=\"utf-8\"\u003e\u003cspan\u003es26d0351k\u003c\/span\u003e\u003cbr\u003e購入時納期｜3-4日\u003c\/p\u003e","brand":"EVEN","offers":[{"title":"ブラックウォッチ \/ S","offer_id":47851429560538,"sku":"S26D0351K-211-03","price":30800.0,"currency_code":"JPY","in_stock":true},{"title":"ブラックウォッチ \/ M","offer_id":47851429593306,"sku":"S26D0351K-211-04","price":30800.0,"currency_code":"JPY","in_stock":true},{"title":"ブラックウォッチ \/ L","offer_id":47851429626074,"sku":"S26D0351K-211-05","price":30800.0,"currency_code":"JPY","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0654\/2609\/6346\/files\/A7R0797.jpg?v=1778749117"},{"product_id":"s26d0364k","title":"SVKS6001［サルベージパブリックコレパ］パリエアシャットジャケット","description":"\u003cp\u003eトラディショナルなドリズラータイプの高機能ジャケット。\u003c\/p\u003e\n\u003cp\u003e裏表に特殊ポリマーで薄膜コーティング加工を施し、防風性、撥水性、ストレッチ性を併せ持った『Airshut_NT（エアシャット）』を用いて作られたライトウェイトな1着。\u003c\/p\u003e\n\u003cp\u003e昨今のファッショントレンドでも注目を集めるトラディショナルなブルゾンの代表格ともいえるドリズラージャケットをベースに高機能素材を用いてスマートでモダンにアレンジしており汎用性の高さも特徴です。\u003c\/p\u003e\n\u003cp\u003e撥水性があり軽量でコンパクトに収納する事も可能なのでキャディバッグに常備しておくと便利です。\u003c\/p\u003e\n\u003cp\u003eフロントZIPは逆開のダブルジッパー仕様でスタイリングの幅を広げ、ベンチレーション効果も期待できる。\u003c\/p\u003e\n\u003cp\u003e袖口はブランドロゴのジャガードゴムが付き、裾もゴム入りでフット感を高めている。\u003c\/p\u003e\n\u003cp\u003e左胸にSALVAGE PUBLIC Kolepaスタンプロゴ、背中にはPARADISE NOWのプリント入り。\u003c\/p\u003e\n\u003ctable style=\"border-collapse: collapse; width: 357px; height: 258.977px;\" width=\"356\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\"\u003e\n\u003ctbody\u003e\n\u003ctr style=\"height: 25.3281px;\" height=\"25\"\u003e\n\u003ctd height=\"25\" class=\"xl72\" width=\"89\" style=\"height: 25.3281px; width: 88.8281px;\"\u003eサイズ　　　　\u003c\/td\u003e\n\u003ctd class=\"xl70\" width=\"89\" style=\"width: 87.7969px; height: 25.3281px;\"\u003eS\u003c\/td\u003e\n\u003ctd class=\"xl69\" width=\"89\" style=\"border-left-width: medium; border-left-style: none; border-left-color: currentcolor; width: 87.7969px; height: 25.3281px;\"\u003eM\u003c\/td\u003e\n\u003ctd class=\"xl69\" width=\"89\" style=\"border-left-width: medium; border-left-style: none; border-left-color: currentcolor; width: 87.5781px; height: 25.3281px;\"\u003eL\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr style=\"height: 27px;\" height=\"28\"\u003e\n\u003ctd height=\"25\" class=\"xl74\" style=\"height: 27px; width: 88.8281px;\"\u003e着丈\u003c\/td\u003e\n\u003ctd style=\"height: 27px; width: 87.7969px;\" class=\"xl74\"\u003e65\u003c\/td\u003e\n\u003ctd class=\"xl78\" style=\"border-left-width: medium; border-left-style: none; border-left-color: currentcolor; height: 27px; width: 87.7969px;\"\u003e68\u003c\/td\u003e\n\u003ctd class=\"xl78\" style=\"border-left-width: medium; border-left-style: none; border-left-color: currentcolor; height: 27px; width: 87.5781px;\"\u003e71\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr style=\"height: 25.6641px;\" height=\"27\"\u003e\n\u003ctd height=\"24\" class=\"xl79\" style=\"height: 25.6641px; border-top-width: medium; border-top-style: none; border-top-color: currentcolor; width: 88.8281px;\"\u003e身幅\u003c\/td\u003e\n\u003ctd class=\"xl79\" style=\"border-top-width: medium; border-top-style: none; border-top-color: currentcolor; height: 25.6641px; width: 87.7969px;\"\u003e65\u003c\/td\u003e\n\u003ctd class=\"xl77\" style=\"border-top-width: medium; border-top-style: none; border-top-color: currentcolor; border-left-width: medium; border-left-style: none; border-left-color: currentcolor; height: 25.6641px; width: 87.7969px;\"\u003e68\u003c\/td\u003e\n\u003ctd class=\"xl77\" style=\"border-top-width: medium; border-top-style: none; border-top-color: currentcolor; border-left-width: medium; border-left-style: none; border-left-color: currentcolor; height: 25.6641px; width: 87.5781px;\"\u003e71\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr style=\"height: 25.6641px;\" height=\"27\"\u003e\n\u003ctd height=\"24\" class=\"xl79\" style=\"height: 25.6641px; border-top-width: medium; border-top-style: none; border-top-color: currentcolor; width: 88.8281px;\"\u003e肩幅\u003c\/td\u003e\n\u003ctd class=\"xl79\" style=\"border-top-width: medium; border-top-style: none; border-top-color: currentcolor; height: 25.6641px; width: 87.7969px;\"\u003e\n\u003cmeta charset=\"utf-8\"\u003e53\u003c\/td\u003e\n\u003ctd class=\"xl77\" style=\"border-top-width: medium; border-top-style: none; border-top-color: currentcolor; border-left-width: medium; border-left-style: none; border-left-color: currentcolor; height: 25.6641px; width: 87.7969px;\"\u003e\n\u003cmeta charset=\"utf-8\"\u003e55\u003c\/td\u003e\n\u003ctd class=\"xl77\" style=\"border-top-width: medium; border-top-style: none; border-top-color: currentcolor; border-left-width: medium; border-left-style: none; border-left-color: currentcolor; height: 25.6641px; width: 87.5781px;\"\u003e\n\u003cmeta charset=\"utf-8\"\u003e57\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr style=\"height: 25.6641px;\" height=\"27\"\u003e\n\u003ctd height=\"24\" class=\"xl79\" style=\"height: 25.6641px; border-top-width: medium; border-top-style: none; border-top-color: currentcolor; width: 88.8281px;\"\u003e袖丈\u003c\/td\u003e\n\u003ctd class=\"xl79\" style=\"border-top-width: medium; border-top-style: none; border-top-color: currentcolor; height: 25.6641px; width: 87.7969px;\"\u003e60.5\u003c\/td\u003e\n\u003ctd class=\"xl77\" style=\"border-top-width: medium; border-top-style: none; border-top-color: currentcolor; border-left-width: medium; border-left-style: none; border-left-color: currentcolor; height: 25.6641px; width: 87.7969px;\"\u003e62\u003c\/td\u003e\n\u003ctd class=\"xl77\" style=\"border-top-width: medium; border-top-style: none; border-top-color: currentcolor; border-left-width: medium; border-left-style: none; border-left-color: currentcolor; height: 25.6641px; width: 87.5781px;\"\u003e63.5\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\n\u003c\/table\u003e\n\u003cp\u003e※数値はセンチ、多少の誤差がございます\u003cbr\u003e※光や角度により、実物と色味が異なる場合がございます\u003c\/p\u003e\n\u003cp\u003e\u003cmeta charset=\"utf-8\"\u003e\u003cspan\u003e素材：ポリエステル100% (裏面：アクリルコーテイング)\u003cbr\u003e製造国：中国\u003c\/span\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cmeta charset=\"utf-8\"\u003e商品コード｜\u003cmeta charset=\"utf-8\"\u003e\u003cspan\u003es26d0364k\u003c\/span\u003e\u003cbr\u003e購入時納期｜3-4日\u003c\/p\u003e","brand":"EVEN","offers":[{"title":"ブラック \/ S","offer_id":47851429855450,"sku":"S26D0364K-01-03","price":26400.0,"currency_code":"JPY","in_stock":true},{"title":"ブラック \/ M","offer_id":47851429888218,"sku":"S26D0364K-01-04","price":26400.0,"currency_code":"JPY","in_stock":true},{"title":"ブラック \/ L","offer_id":47851429920986,"sku":"S26D0364K-01-05","price":26400.0,"currency_code":"JPY","in_stock":true},{"title":"グレー \/ S","offer_id":47851429953754,"sku":"S26D0364K-07-03","price":26400.0,"currency_code":"JPY","in_stock":true},{"title":"グレー \/ M","offer_id":47851429986522,"sku":"S26D0364K-07-04","price":26400.0,"currency_code":"JPY","in_stock":true},{"title":"グレー \/ L","offer_id":47851430019290,"sku":"S26D0364K-07-05","price":26400.0,"currency_code":"JPY","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0654\/2609\/6346\/files\/A7R0815.jpg?v=1778750564"},{"product_id":"s26d0365k","title":"MAKANI 4WAY SNEED JACKET","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ヴィンテージスウェットなどにみられる汗止めVガセットをデザインモチーフにしつつ、スポーティにアレンジした襟ジャガードリブが特徴のスニードジャック。\u003c\/p\u003e\n\u003cp\u003e程よくゆったりとリラックスしたシルエットで春先から初冬までインナーとのレイヤードで様々なシーズンで活躍する。\u003c\/p\u003e\n\u003cp\u003e4WAYストレッチの心地良い着心地、接触冷感、撥水性も兼ね備えたナイロン素材を採用している。\u003c\/p\u003e\n\u003cp\u003e両脇にはアイコニックな圧着ZIPポケットを備えティーやマーカーなどを収めておくのに重宝する。\u003c\/p\u003e\n\u003cp\u003e袖口＆裾はブランドロゴのジャガードゴムが付きフィット感を高めている。\u003c\/p\u003e\n\u003cp\u003eフロントにはシンプルに小さくSALVAGE PUBLIC Kolepaスタンプロゴ。\u003c\/p\u003e\n\u003cp\u003e背面にはダイアモンドヘッドロゴがリフレクタープリントで入る。\u003c\/p\u003e\n\n\u003cp\u003e【SALVAGE PUBLIC Kolepa】\u003cbr\u003eEVENが監修するハワイで人気の「サルベージ パブリック」のゴルフライン「サルベージ パブリック コレパ」\u003cbr\u003e\"Kolepa\"とはハワイの言葉でゴルフを意味し、リラックス感と都会的なモダンテイストが融合する機能性を備えたゴルファー目線たっぷりなコレクションを展開する。\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\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\u003eS\u003c\/th\u003e\n      \u003ctd\u003e82.5\u003c\/td\u003e\n      \u003ctd\u003e61\u003c\/td\u003e\n      \u003ctd\u003e68\u003c\/td\u003e\n    \u003c\/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003eM\u003c\/th\u003e\n      \u003ctd\u003e85\u003c\/td\u003e\n      \u003ctd\u003e64\u003c\/td\u003e\n      \u003ctd\u003e71\u003c\/td\u003e\n    \u003c\/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003eL\u003c\/th\u003e\n      \u003ctd\u003e87.5\u003c\/td\u003e\n      \u003ctd\u003e67\u003c\/td\u003e\n      \u003ctd\u003e74\u003c\/td\u003e\n    \u003c\/tr\u003e\n  \u003c\/tbody\u003e\n\u003c\/table\u003e\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            \u003cbutton class=\"size-btn is-active\" data-size=\"S\" data-image=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0654\/2609\/6346\/files\/ssize-visualizer-jacket_4d5f1f92-e37a-4719-a109-878cd4562ab6.png?v=1787051432\"\u003eS\u003c\/button\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_62fc50c8-28a6-431c-bc2f-d2927aeacf26.png?v=1787051431\"\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_8e4ae8a3-0fd8-4325-94ef-69b6e64eaae7.png?v=1787051431\"\u003eL\u003c\/button\u003e\n            \u003c!-- [BTN:XL] data-image にXLサイズの画像URLを入れる --\u003e\n            \u003c!--\u003cbutton class=\"size-btn\" data-size=\"XL\" data-image=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0654\/2609\/6346\/files\/XL-size-visualizer-ss-tshirt.png?v=1782794983\"\u003eXL\u003c\/button\u003e --\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\u003eSALVAGE PUBLIC Kolepa\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e品番\u003c\/td\u003e\n\u003ctd\u003eSVKS6004\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e商品コード\u003c\/td\u003e\n\u003ctd\u003es26d0365k\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本体\/ナイロン88% ポリウレタン12%\u003cbr\u003e\n  ポケット袋布\/ポリエステル100%\u003cbr\u003e\n  衿\/ポリエステル98％ ポリウレタン2%\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\/DSC3509.jpg?v=1778750671\u0026amp;width=200\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC3509.jpg?v=1778750671\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\/DSC3511.jpg?v=1778750671\u0026amp;width=200\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC3511.jpg?v=1778750671\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\/DSC3499.jpg?v=1778750672\u0026amp;width=200\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC3499.jpg?v=1778750672\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\/DSC3505.jpg?v=1778750671\u0026amp;width=200\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC3505.jpg?v=1778750671\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\/DSC3515.jpg?v=1778750671\u0026amp;width=200\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC3515.jpg?v=1778750671\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\/DSC3516.jpg?v=1778750671\u0026amp;width=200\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC3516.jpg?v=1778750671\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\/DSC3500.jpg?v=1778750672\u0026amp;width=200\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC3500.jpg?v=1778750672\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\/DSC3502.jpg?v=1778750671\u0026amp;width=200\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC3502.jpg?v=1778750671\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\/DSC3503.jpg?v=1778750672\u0026amp;width=200\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC3503.jpg?v=1778750672\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\/DSC3504.jpg?v=1778750672\u0026amp;width=200\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC3504.jpg?v=1778750672\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\/DSC3505.jpg?v=1778750671\u0026amp;width=200\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC3505.jpg?v=1778750671\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\/DSC3506.jpg?v=1778750671\u0026amp;width=200\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC3506.jpg?v=1778750671\u0026amp;width=200\" class=\"gallery-item\" alt=\"Gallery 12\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"gallery-item-wrapper\" data-src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC3507.jpg?v=1778750671\u0026amp;width=200\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC3507.jpg?v=1778750671\u0026amp;width=200\" class=\"gallery-item\" alt=\"Gallery 13\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"gallery-item-wrapper\" data-src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC3147.jpg?v=1782206296\u0026amp;width=200\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC3147.jpg?v=1782206296\u0026amp;width=200\" class=\"gallery-item\" alt=\"Gallery 14\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"gallery-item-wrapper\" data-src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC3164.jpg?v=1782206296\u0026amp;width=200\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC3164.jpg?v=1782206296\u0026amp;width=200\" class=\"gallery-item\" alt=\"Gallery 15\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"gallery-item-wrapper\" data-src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC3167.jpg?v=1782206296\u0026amp;width=200\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC3167.jpg?v=1782206296\u0026amp;width=200\" class=\"gallery-item\" alt=\"Gallery 16\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"gallery-item-wrapper\" data-src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC3169.jpg?v=1782206296\u0026amp;width=200\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC3169.jpg?v=1782206296\u0026amp;width=200\" class=\"gallery-item\" alt=\"Gallery 17\"\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":"BLACK \/ S","offer_id":47851430052058,"sku":"S26D0365K-01-03","price":29700.0,"currency_code":"JPY","in_stock":false},{"title":"BLACK \/ M","offer_id":47851430084826,"sku":"S26D0365K-01-04","price":29700.0,"currency_code":"JPY","in_stock":true},{"title":"BLACK \/ L","offer_id":47851430117594,"sku":"S26D0365K-01-05","price":29700.0,"currency_code":"JPY","in_stock":true},{"title":"CHARCOAL GRAY \/ S","offer_id":47851430150362,"sku":"S26D0365K-09-03","price":29700.0,"currency_code":"JPY","in_stock":false},{"title":"CHARCOAL GRAY \/ M","offer_id":47851430183130,"sku":"S26D0365K-09-04","price":29700.0,"currency_code":"JPY","in_stock":true},{"title":"CHARCOAL GRAY \/ L","offer_id":47851430215898,"sku":"S26D0365K-09-05","price":29700.0,"currency_code":"JPY","in_stock":true},{"title":"SAND \/ S","offer_id":47851430248666,"sku":"S26D0365K-28-03","price":29700.0,"currency_code":"JPY","in_stock":false},{"title":"SAND \/ M","offer_id":47851430281434,"sku":"S26D0365K-28-04","price":29700.0,"currency_code":"JPY","in_stock":true},{"title":"SAND \/ L","offer_id":47851430314202,"sku":"S26D0365K-28-05","price":29700.0,"currency_code":"JPY","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0654\/2609\/6346\/files\/DSC3499.jpg?v=1778750672"},{"product_id":"s26f0337k","title":"AMPHIBIOUS SHORTS","description":"\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: 16px;\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 16px;\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  .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\u003cdiv class=\"product-video-wrapper\"\u003e\n  \u003cvideo class=\"product-video\" src=\"https:\/\/cdn.shopify.com\/videos\/c\/o\/v\/d23292b8d3fa4a54978043c86d7495df.mp4\" playsinline muted loop=\"loop\" autoplay=\"autoplay\"\u003e\u003c\/video\u003e\n  \u003cdiv class=\"video-sound-toggle\"\u003e\n    \u003cimg class=\"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=\"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\u003cscript\u003e\n(function () {\n  document.querySelectorAll('.product-video-wrapper').forEach(function (wrapper) {\n    const video = wrapper.querySelector('.product-video');\n    const checkbox = wrapper.querySelector('.video-sound-switch');\n    const icon = wrapper.querySelector('.video-sound-icon');\n    if (!video || !checkbox || !icon) return;\n    video.muted = true;\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\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シンメトリーに配置されたポケットがアクセントになっている水陸両用ショーツ。\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左ポケット前後にSALVEGE PUBLIC HONOLULUの刺繍が入る。\u003c\/p\u003e\n\u003cp\u003e背面のハイビスカスタグもデザインのアクセントになっている。\u003c\/p\u003e\n  \n\u003cp\u003e【SALVAGE PUBLIC Kolepa】\u003cbr\u003eEVENが監修するハワイで人気の「サルベージ パブリック」のゴルフライン「サルベージ パブリック コレパ」\u003cbr\u003e\n\"Kolepa\"とはハワイの言葉でゴルフを意味し、リラックス感と都会的なモダンテイストが融合する機能性を備えたゴルファー目線たっぷりなコレクションを展開する。\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\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\u003e72\u003c\/td\u003e\n\u003ctd\u003e27\u003c\/td\u003e\n\u003ctd\u003e20.5\u003c\/td\u003e\n\u003ctd\u003e35\u003c\/td\u003e\n\u003ctd\u003e29\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eM\u003c\/th\u003e\n\u003ctd\u003e75\u003c\/td\u003e\n\u003ctd\u003e28\u003c\/td\u003e\n\u003ctd\u003e21.5\u003c\/td\u003e\n\u003ctd\u003e36.3\u003c\/td\u003e\n\u003ctd\u003e30\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eL\u003c\/th\u003e\n\u003ctd\u003e78\u003c\/td\u003e\n\u003ctd\u003e29\u003c\/td\u003e\n\u003ctd\u003e22.5\u003c\/td\u003e\n\u003ctd\u003e37.6\u003c\/td\u003e\n\u003ctd\u003e31\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eXL\u003c\/th\u003e\n\u003ctd\u003e81\u003c\/td\u003e\n\u003ctd\u003e30\u003c\/td\u003e\n\u003ctd\u003e23.5\u003c\/td\u003e\n\u003ctd\u003e38.9\u003c\/td\u003e\n\u003ctd\u003e32\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            \u003cbutton class=\"size-btn is-active\" data-size=\"S\" data-image=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0654\/2609\/6346\/files\/ssize-visualizer-shorts_db1b9d86-9cdf-42c1-aa7c-71c95fd21487.png?v=1784102695\"\u003eS\u003c\/button\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-shorts_16163f64-9cde-4913-a162-08a0b85a28c9.png?v=1784102695\"\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-shorts_1a291a22-342f-4679-a104-c68b3d5e6b53.png?v=1784102695\"\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-shorts_5b0ba47b-c501-447b-9860-b297ee5956e3.png?v=1784102695\"\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\u003eSALVAGE PUBLIC Kolepa\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n            \u003ctd\u003e品番\u003c\/td\u003e\n            \u003ctd\u003eSVCA6001\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e商品コード\u003c\/td\u003e\n\u003ctd\u003es26f0337k\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ナイロン95％ ポリウレタン5％\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\/DSC3478.jpg?v=1778750736\u0026amp;width=700\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC3478.jpg?v=1778750736\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\/DSC3480.jpg?v=1778750736\u0026amp;width=700\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC3480.jpg?v=1778750736\u0026amp;width=700\" 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\/DSC3494.jpg?v=1778750736\u0026amp;width=700\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC3494.jpg?v=1778750736\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\/DSC3495.jpg?v=1778750736\u0026amp;width=700\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC3495.jpg?v=1778750736\u0026amp;width=700\" 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\/DSC3479.jpg?v=1778750736\u0026amp;width=700\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC3479.jpg?v=1778750736\u0026amp;width=700\" 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\/DSC3482.jpg?v=1778750736\u0026amp;width=700\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC3482.jpg?v=1778750736\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\/DSC3491.jpg?v=1778750736\u0026amp;width=700\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC3491.jpg?v=1778750736\u0026amp;width=700\" 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\/DSC3493.jpg?v=1778750736\u0026amp;width=700\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC3493.jpg?v=1778750736\u0026amp;width=700\" 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\/DSC2916_6de9afd9-d1e6-4dad-ad08-1a4e4be37508.jpg?v=1782206346\u0026amp;width=700\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC2916_6de9afd9-d1e6-4dad-ad08-1a4e4be37508.jpg?v=1782206346\u0026amp;width=700\" 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\/DSC2928.jpg?v=1782206346\u0026amp;width=700\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC2928.jpg?v=1782206346\u0026amp;width=700\" 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\/DSC2929.jpg?v=1782206347\u0026amp;width=700\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC2929.jpg?v=1782206347\u0026amp;width=700\" 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\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":"BLACK \/ S","offer_id":47851430346970,"sku":"S26F0337K-01-03","price":17600.0,"currency_code":"JPY","in_stock":false},{"title":"BLACK \/ M","offer_id":47851430379738,"sku":"S26F0337K-01-04","price":17600.0,"currency_code":"JPY","in_stock":true},{"title":"BLACK \/ L","offer_id":47851430412506,"sku":"S26F0337K-01-05","price":17600.0,"currency_code":"JPY","in_stock":true},{"title":"BLACK \/ XL","offer_id":47851430445274,"sku":"S26F0337K-01-06","price":17600.0,"currency_code":"JPY","in_stock":false},{"title":"SAND \/ S","offer_id":47851430478042,"sku":"S26F0337K-28-03","price":17600.0,"currency_code":"JPY","in_stock":false},{"title":"SAND \/ M","offer_id":47851430510810,"sku":"S26F0337K-28-04","price":17600.0,"currency_code":"JPY","in_stock":true},{"title":"SAND \/ L","offer_id":47851430543578,"sku":"S26F0337K-28-05","price":17600.0,"currency_code":"JPY","in_stock":true},{"title":"SAND \/ XL","offer_id":47851430576346,"sku":"S26F0337K-28-06","price":17600.0,"currency_code":"JPY","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0654\/2609\/6346\/files\/DSC3478.jpg?v=1778750736"},{"product_id":"s26f0342k","title":"MAKANI TROUSERS","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“美脚”の名を欲しいままに手に入れる人気の1タックトラウザーズ。\u003c\/p\u003e\n\u003cp\u003e程よくゆとりのある腰回りとワタリから綺麗なテーパードを掛けたシルエットは珠玉な1本。\u003c\/p\u003e\n\u003cp\u003e4WAYストレッチの心地良い着心地、接触冷感、撥水性も兼ね備えたナイロン素材を採用している。\u003c\/p\u003e\n\u003cp\u003eウエスト内側に滑り止めテープ＆INOUT仕様のスピンドルなども使い勝手を考慮した作りです。\u003c\/p\u003e\n\u003cp\u003e右側面の圧着ZIPポケットはボールやティーなどを収めておくのに重宝する。\u003c\/p\u003e\n\u003cp\u003eフラップ付きの右バックポケットにはスコアカードなどを収め、左バックポケットにはグローブを収める事を想定した仕様にしている。\u003c\/p\u003e\n\u003cp\u003e左腿に小さくSALVAGE PUBLIC Kolepaスタンプロゴのリフレクタープリント入り。\u003c\/p\u003e\n\u003cp\u003e右バックポケット上にリフレクターパッチ付き。\u003c\/p\u003e\n\n\u003cp\u003e【SALVAGE PUBLIC Kolepa】\u003cbr\u003eEVENが監修するハワイで人気の「サルベージ パブリック」のゴルフライン「サルベージ パブリック コレパ」\u003cbr\u003e\"Kolepa\"とはハワイの言葉でゴルフを意味し、リラックス感と都会的なモダンテイストが融合する機能性を備えたゴルファー目線たっぷりなコレクションを展開する。\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      \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\u003e82\u003c\/td\u003e\n      \u003ctd\u003e25\u003c\/td\u003e\n      \u003ctd\u003e68\u003c\/td\u003e\n      \u003ctd\u003e34.2\u003c\/td\u003e\n      \u003ctd\u003e17.5\u003c\/td\u003e\n    \u003c\/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003eM\u003c\/th\u003e\n      \u003ctd\u003e86\u003c\/td\u003e\n      \u003ctd\u003e25.5\u003c\/td\u003e\n      \u003ctd\u003e71\u003c\/td\u003e\n      \u003ctd\u003e35.5\u003c\/td\u003e\n      \u003ctd\u003e18\u003c\/td\u003e\n    \u003c\/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003eL\u003c\/th\u003e\n      \u003ctd\u003e90\u003c\/td\u003e\n      \u003ctd\u003e26\u003c\/td\u003e\n      \u003ctd\u003e74\u003c\/td\u003e\n      \u003ctd\u003e36.8\u003c\/td\u003e\n      \u003ctd\u003e18.5\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            \u003cbutton class=\"size-btn is-active\" data-size=\"S\" data-image=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0654\/2609\/6346\/files\/ssize-visualizer-pants_b1401d10-dba0-42b0-8d3b-f11e2c7e6269.png?v=1787052552\"\u003eS\u003c\/button\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-pants_57274779-424d-4927-bfd0-7fe9d5cd8514.png?v=1787052551\"\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-pants_d18a3d60-9b94-4c86-899b-a3e16376618d.png?v=1787052552\"\u003eL\u003c\/button\u003e\n            \u003c!-- [BTN:XL] data-image にXLサイズの画像URLを入れる --\u003e\n            \u003c!--\u003cbutton class=\"size-btn\" data-size=\"XL\" data-image=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0654\/2609\/6346\/files\/XL-size-visualizer-ss-tshirt.png?v=1782794983\"\u003eXL\u003c\/button\u003e --\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\u003eSALVAGE PUBLIC Kolepa\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e品番\u003c\/td\u003e\n\u003ctd\u003eSVKA5016\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e商品コード\u003c\/td\u003e\n\u003ctd\u003es26f0342k\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本体\/ナイロン88％ ポリウレタン12％\u003cbr\u003e\n  ポケット袋布\/ポリエステル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\/A7R0793.jpg?v=1778750804\u0026amp;width=200\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/A7R0793.jpg?v=1778750804\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\/A7R0787b.jpg?v=1778750803\u0026amp;width=200\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/A7R0787b.jpg?v=1778750803\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\/A7R0787.jpg?v=1778750804\u0026amp;width=200\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/A7R0787.jpg?v=1778750804\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\/A7R0794.jpg?v=1778750804\u0026amp;width=200\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/A7R0794.jpg?v=1778750804\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\/A7R0784.jpg?v=1778750803\u0026amp;width=200\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/A7R0784.jpg?v=1778750803\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\/A7R0785.jpg?v=1778750804\u0026amp;width=200\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/A7R0785.jpg?v=1778750804\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\/A7R0786.jpg?v=1778750804\u0026amp;width=200\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/A7R0786.jpg?v=1778750804\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\/A7R0788.jpg?v=1778750804\u0026amp;width=200\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/A7R0788.jpg?v=1778750804\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\/A7R0795.jpg?v=1778750804\u0026amp;width=200\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/A7R0795.jpg?v=1778750804\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\/DSC3124_94b3d103-3322-41c5-8363-1cb90abccb19.jpg?v=1782206457\u0026amp;width=200\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC3124_94b3d103-3322-41c5-8363-1cb90abccb19.jpg?v=1782206457\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\/DSC3135_55da74f0-0832-4a84-bb94-7aef3dc37094.jpg?v=1782206457\u0026amp;width=200\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC3135_55da74f0-0832-4a84-bb94-7aef3dc37094.jpg?v=1782206457\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\/DSC3147_46c5d7d6-8f11-417a-8ed4-83c75e99a86a.jpg?v=1782206457\u0026amp;width=200\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC3147_46c5d7d6-8f11-417a-8ed4-83c75e99a86a.jpg?v=1782206457\u0026amp;width=200\" class=\"gallery-item\" alt=\"Gallery 12\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"gallery-item-wrapper\" data-src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC3176_78a7cf54-4cb1-4063-9a97-cdbe8f20b5dd.jpg?v=1782206457\u0026amp;width=200\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC3176_78a7cf54-4cb1-4063-9a97-cdbe8f20b5dd.jpg?v=1782206457\u0026amp;width=200\" class=\"gallery-item\" alt=\"Gallery 13\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"gallery-item-wrapper\" data-src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC3185_cb926116-533b-4f35-9df2-eabdbed9647b.jpg?v=1782206457\u0026amp;width=200\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC3185_cb926116-533b-4f35-9df2-eabdbed9647b.jpg?v=1782206457\u0026amp;width=200\" class=\"gallery-item\" alt=\"Gallery 14\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"gallery-item-wrapper\" data-src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC3209_e9168b53-5b34-4666-8611-3f101482bd99.jpg?v=1782206457\u0026amp;width=200\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC3209_e9168b53-5b34-4666-8611-3f101482bd99.jpg?v=1782206457\u0026amp;width=200\" class=\"gallery-item\" alt=\"Gallery 15\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"gallery-item-wrapper\" data-src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC3220_f306dc28-cae4-493d-a08c-e32f4a380042.jpg?v=1782206457\u0026amp;width=200\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC3220_f306dc28-cae4-493d-a08c-e32f4a380042.jpg?v=1782206457\u0026amp;width=200\" class=\"gallery-item\" alt=\"Gallery 16\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"gallery-item-wrapper\" data-src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC3254_0348a47b-5559-4c26-80d9-542cc5d23ec6.jpg?v=1782206467\u0026amp;width=200\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC3254_0348a47b-5559-4c26-80d9-542cc5d23ec6.jpg?v=1782206467\u0026amp;width=200\" class=\"gallery-item\" alt=\"Gallery 17\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"gallery-item-wrapper\" data-src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC3270_fce701f2-859c-416b-b144-c9d59c3294af.jpg?v=1782206467\u0026amp;width=200\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC3270_fce701f2-859c-416b-b144-c9d59c3294af.jpg?v=1782206467\u0026amp;width=200\" class=\"gallery-item\" alt=\"Gallery 18\"\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":"BLACK \/ S","offer_id":47851430609114,"sku":"S26F0342K-01-03","price":27500.0,"currency_code":"JPY","in_stock":false},{"title":"BLACK \/ M","offer_id":47851430641882,"sku":"S26F0342K-01-04","price":27500.0,"currency_code":"JPY","in_stock":true},{"title":"BLACK \/ L","offer_id":47851430674650,"sku":"S26F0342K-01-05","price":27500.0,"currency_code":"JPY","in_stock":true},{"title":"CHARCOAL GRAY \/ S","offer_id":47851430707418,"sku":"S26F0342K-09-03","price":27500.0,"currency_code":"JPY","in_stock":false},{"title":"CHARCOAL GRAY \/ M","offer_id":47851430740186,"sku":"S26F0342K-09-04","price":27500.0,"currency_code":"JPY","in_stock":true},{"title":"CHARCOAL GRAY \/ L","offer_id":47851430772954,"sku":"S26F0342K-09-05","price":27500.0,"currency_code":"JPY","in_stock":true},{"title":"SAND \/ S","offer_id":47851430805722,"sku":"S26F0342K-28-03","price":27500.0,"currency_code":"JPY","in_stock":false},{"title":"SAND \/ M","offer_id":47851430838490,"sku":"S26F0342K-28-04","price":27500.0,"currency_code":"JPY","in_stock":true},{"title":"SAND \/ L","offer_id":47851430871258,"sku":"S26F0342K-28-05","price":27500.0,"currency_code":"JPY","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0654\/2609\/6346\/files\/A7R0787b.jpg?v=1778750803"},{"product_id":"s26f0348k","title":"KAHALA SEERSUCKER SHORTS","description":"\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: 16px;\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 16px;\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  .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\u003cdiv class=\"product-video-wrapper\"\u003e\n  \u003cvideo class=\"product-video\" src=\"https:\/\/cdn.shopify.com\/videos\/c\/o\/v\/2942269a88414dc182c1cc73a5beba32.mp4\" playsinline muted loop=\"loop\" autoplay=\"autoplay\"\u003e\u003c\/video\u003e\n  \u003cdiv class=\"video-sound-toggle\"\u003e\n    \u003cimg class=\"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=\"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\u003cscript\u003e\n(function () {\n  document.querySelectorAll('.product-video-wrapper').forEach(function (wrapper) {\n    const video = wrapper.querySelector('.product-video');\n    const checkbox = wrapper.querySelector('.video-sound-switch');\n    const icon = wrapper.querySelector('.video-sound-icon');\n    if (!video || !checkbox || !icon) return;\n    video.muted = true;\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\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上品でリゾート感の漂うシアサッカー素材を使ったショーツはリラックスしつつもトラディショナルな印象を与える。\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左裾にはTi Leaf＆Laua‘eのダブルキルト柄がプリントされたSALVAGE PUBLICならではのデザインが特徴的な1本。\u003c\/p\u003e\n\u003cp\u003e【SALVAGE PUBLIC Kolepa】\u003cbr\u003eEVENが監修するハワイで人気の「サルベージ パブリック」のゴルフライン「サルベージ パブリック コレパ」\u003cbr\u003e\"Kolepa\"とはハワイの言葉でゴルフを意味し、リラックス感と都会的なモダンテイストが融合する機能性を備えたゴルファー目線たっぷりなコレクションを展開する。\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      \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\u003e75\u003c\/td\u003e\n      \u003ctd\u003e28.3\u003c\/td\u003e\n      \u003ctd\u003e16.5\u003c\/td\u003e\n      \u003ctd\u003e35\u003c\/td\u003e\n      \u003ctd\u003e29.7\u003c\/td\u003e\n    \u003c\/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003eM\u003c\/th\u003e\n      \u003ctd\u003e79\u003c\/td\u003e\n      \u003ctd\u003e28.8\u003c\/td\u003e\n      \u003ctd\u003e18.5\u003c\/td\u003e\n      \u003ctd\u003e35.5\u003c\/td\u003e\n      \u003ctd\u003e30.1\u003c\/td\u003e\n    \u003c\/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003eL\u003c\/th\u003e\n      \u003ctd\u003e83\u003c\/td\u003e\n      \u003ctd\u003e29.3\u003c\/td\u003e\n      \u003ctd\u003e20.5\u003c\/td\u003e\n      \u003ctd\u003e37\u003c\/td\u003e\n      \u003ctd\u003e30.5\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            \u003cbutton class=\"size-btn is-active\" data-size=\"S\" data-image=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0654\/2609\/6346\/files\/ssize-visualizer-shorts_7e354944-b929-4412-a01f-75721944f360.png?v=1787058110\"\u003eS\u003c\/button\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-shorts_1f29d9b9-064a-4cec-a2b4-89ee3fdef11e.png?v=1787058110\"\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-shorts_3f1e23de-af42-475a-a6ee-a7609ec5f0b1.png?v=1787058110\"\u003eL\u003c\/button\u003e\n            \u003c!-- [BTN:XL] data-image にXLサイズの画像URLを入れる --\u003e\n            \u003c!--\u003cbutton class=\"size-btn\" data-size=\"XL\" data-image=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0654\/2609\/6346\/files\/XL-size-visualizer-ss-tshirt.png?v=1782794983\"\u003eXL\u003c\/button\u003e --\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\u003eSALVAGE PUBLIC Kolepa\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e品番\u003c\/td\u003e\n\u003ctd\u003eSVKA6006\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e商品コード\u003c\/td\u003e\n\u003ctd\u003es26f0348k\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ネイビーチェック：ポリエステル71％ 綿29％\u003cbr\u003e\n  ブラックウォッチ：ポリエステル56％ 綿44％\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\/A7R0754.jpg?v=1778750874\u0026amp;width=200\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/A7R0754.jpg?v=1778750874\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\/A7R0754b.jpg?v=1778750874\u0026amp;width=200\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/A7R0754b.jpg?v=1778750874\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\/A7R0759.jpg?v=1778750874\u0026amp;width=200\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/A7R0759.jpg?v=1778750874\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\/A7R0759b.jpg?v=1778750874\u0026amp;width=200\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/A7R0759b.jpg?v=1778750874\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\/A7R0755.jpg?v=1778750874\u0026amp;width=200\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/A7R0755.jpg?v=1778750874\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\/A7R0756.jpg?v=1778750874\u0026amp;width=200\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/A7R0756.jpg?v=1778750874\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\/A7R0757.jpg?v=1778750874\u0026amp;width=200\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/A7R0757.jpg?v=1778750874\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\/DSC2960.jpg?v=1782206518\u0026amp;width=200\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC2960.jpg?v=1782206518\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\/DSC2963.jpg?v=1782206518\u0026amp;width=200\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC2963.jpg?v=1782206518\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\/DSC2969_4377e5dd-3f46-4f85-898e-d5010693536a.jpg?v=1782206518\u0026amp;width=200\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC2969_4377e5dd-3f46-4f85-898e-d5010693536a.jpg?v=1782206518\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\/DSC2975_d0f80dfe-a25a-4646-84e0-19c6fb883426.jpg?v=1782206518\u0026amp;width=200\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC2975_d0f80dfe-a25a-4646-84e0-19c6fb883426.jpg?v=1782206518\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\/DSC2997_c3280caa-8c17-4fee-83ab-34c0dfd4cd1f.jpg?v=1782206518\u0026amp;width=200\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC2997_c3280caa-8c17-4fee-83ab-34c0dfd4cd1f.jpg?v=1782206518\u0026amp;width=200\" class=\"gallery-item\" alt=\"Gallery 12\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"gallery-item-wrapper\" data-src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC3010.jpg?v=1782206518\u0026amp;width=200\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC3010.jpg?v=1782206518\u0026amp;width=200\" class=\"gallery-item\" alt=\"Gallery 13\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"gallery-item-wrapper\" data-src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC3012.jpg?v=1782206518\u0026amp;width=200\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC3012.jpg?v=1782206518\u0026amp;width=200\" class=\"gallery-item\" alt=\"Gallery 14\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"gallery-item-wrapper\" data-src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC3023_d8733d4a-66cc-4ec1-9bce-a3ca74799e5b.jpg?v=1782206518\u0026amp;width=200\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC3023_d8733d4a-66cc-4ec1-9bce-a3ca74799e5b.jpg?v=1782206518\u0026amp;width=200\" class=\"gallery-item\" alt=\"Gallery 15\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"gallery-item-wrapper\" data-src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC3034_ecc082c5-dccb-4fb8-b091-d22b44c7ef2f.jpg?v=1782206518\u0026amp;width=200\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC3034_ecc082c5-dccb-4fb8-b091-d22b44c7ef2f.jpg?v=1782206518\u0026amp;width=200\" class=\"gallery-item\" alt=\"Gallery 16\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"gallery-item-wrapper\" data-src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC3042-2.jpg?v=1782206518\u0026amp;width=200\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC3042-2.jpg?v=1782206518\u0026amp;width=200\" class=\"gallery-item\" alt=\"Gallery 17\"\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":"BLACK WATCH \/ S","offer_id":47851430904026,"sku":"S26F0348K-211-03","price":24200.0,"currency_code":"JPY","in_stock":true},{"title":"BLACK WATCH \/ M","offer_id":47851430936794,"sku":"S26F0348K-211-04","price":24200.0,"currency_code":"JPY","in_stock":true},{"title":"BLACK WATCH \/ L","offer_id":47851430969562,"sku":"S26F0348K-211-05","price":24200.0,"currency_code":"JPY","in_stock":true},{"title":"NAVY PLAID \/ S","offer_id":47851431002330,"sku":"S26F0348K-213-03","price":24200.0,"currency_code":"JPY","in_stock":true},{"title":"NAVY PLAID \/ M","offer_id":47851431035098,"sku":"S26F0348K-213-04","price":24200.0,"currency_code":"JPY","in_stock":true},{"title":"NAVY PLAID \/ L","offer_id":47851431067866,"sku":"S26F0348K-213-05","price":24200.0,"currency_code":"JPY","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0654\/2609\/6346\/files\/A7R0754.jpg?v=1778750874"},{"product_id":"s26h0366k","title":"JACQUARD CART BAG","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\u003cp\u003eトラディショナルなボートトートをラウンドに最適なサイズ、ディティールにアレンジしました。\u003c\/p\u003e\n\u003cp\u003e650㎜相当のペットボトルや水筒を縦置きに納めながら、そこにボールや氷嚢、スナックなどのアイテムもしっかり入るサイズ感。\u003c\/p\u003e\n\u003cp\u003eまた開閉部にはZIPを付けているので、カラスなどの対策も万全です。\u003c\/p\u003e\n\u003cp\u003e釣り下げ式の内ポケットも付いているのでカードや貴重品などコンパクトサイズなら収納可能です。\u003c\/p\u003e\n\u003cp\u003e外側ハンドル間にも小さなポケットが付いているのでティーやマーカーの予備を入れておくのも良いでしょう。\u003c\/p\u003e\n\u003cp\u003e前胴にはダイアモンドヘッドのレザーパッチ付き。\u003c\/p\u003e\n\u003cp\u003e側面にはPARADISE NOWのジャガード入り。\u003c\/p\u003e\n\u003cbr\u003e\u003cbr\u003e\n        \u003c!-- ▲ [EDIT: 商品説明] ここまで --\u003e\n\n        \u003c!-- ▼ [EDIT: ブランド説明] ここから〜ここまでがブランド説明テキスト --\u003e\n          【SALVAGE PUBLIC Kolepa】\u003cbr\u003e\n          EVENが監修するハワイで人気の「サルベージ パブリック」のゴルフライン「サルベージ パブリック コレパ」\u003cbr\u003e\n          \"Kolepa\"とはハワイの言葉でゴルフを意味し、リラックス感と都会的なモダンテイストが融合する機能性を備えたゴルファー目線たっぷりなコレクションを展開する。\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\u003e28\u003c\/td\u003e\n      \u003ctd\u003e23.5\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.png?v=1783494679\"\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\u003eSALVAGE PUBLIC Kolepa\u003c\/td\u003e\n\u003c!-- [VAL:ブランド名] --\u003e\n          \u003c\/tr\u003e\n\n         \u003ctr\u003e\n            \u003ctd\u003e品番\u003c\/td\u003e\n            \u003ctd\u003eSVKS6017\u003c\/td\u003e\n          \u003c\/tr\u003e\n\u003c!-- [VAL:品番] --\u003e\n\n          \u003ctr\u003e\n            \u003ctd\u003e商品コード\u003c\/td\u003e\n            \u003ctd\u003es26h0366k\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         \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\/DSC3363.jpg?v=1778751138\u0026amp;width=700\"\u003e\n        \u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC3363.jpg?v=1778751138\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\/DSC3367.jpg?v=1778751138\u0026amp;width=700\"\u003e\n        \u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC3367.jpg?v=1778751138\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\/DSC3371.jpg?v=1778751138\u0026amp;width=700\"\u003e\n        \u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC3371.jpg?v=1778751138\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\/DSC3372.jpg?v=1778751138\u0026amp;width=700\"\u003e\n        \u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC3372.jpg?v=1778751138\u0026amp;width=700\" class=\"gallery-item\" alt=\"Gallery 4\"\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"gallery-item-wrapper\" data-src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC3373.jpg?v=1778751138\u0026amp;width=700\"\u003e\n        \u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC3373.jpg?v=1778751138\u0026amp;width=700\" class=\"gallery-item\" alt=\"Gallery 5\"\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"gallery-item-wrapper\" data-src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC3374.jpg?v=1778751138\u0026amp;width=700\"\u003e\n        \u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC3374.jpg?v=1778751138\u0026amp;width=700\" class=\"gallery-item\" alt=\"Gallery 6\"\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"gallery-item-wrapper\" data-src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC3365.jpg?v=1778751139\u0026amp;width=700\"\u003e\n        \u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC3365.jpg?v=1778751139\u0026amp;width=700\" class=\"gallery-item\" alt=\"Gallery 7\"\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"gallery-item-wrapper\" data-src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC3366.jpg?v=1778751138\u0026amp;width=700\"\u003e\n        \u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC3366.jpg?v=1778751138\u0026amp;width=700\" class=\"gallery-item\" alt=\"Gallery 8\"\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"gallery-item-wrapper\" data-src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC3369.jpg?v=1778751138\u0026amp;width=700\"\u003e\n        \u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC3369.jpg?v=1778751138\u0026amp;width=700\" class=\"gallery-item\" alt=\"Gallery 9\"\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"gallery-item-wrapper\" data-src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC3370.jpg?v=1778751138\u0026amp;width=700\"\u003e\n        \u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC3370.jpg?v=1778751138\u0026amp;width=700\" class=\"gallery-item\" alt=\"Gallery 10\"\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"gallery-item-wrapper\" data-src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC2949_5e4a8132-b0f9-45b2-b7b4-baf9822ff089.jpg?v=1782206629\u0026amp;width=700\"\u003e\n        \u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC2949_5e4a8132-b0f9-45b2-b7b4-baf9822ff089.jpg?v=1782206629\u0026amp;width=700\" class=\"gallery-item\" alt=\"Gallery 11\"\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"gallery-item-wrapper\" data-src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC2954_c64587cb-4036-4189-97c1-8da3e7c5ac12.jpg?v=1782206629\u0026amp;width=700\"\u003e\n        \u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC2954_c64587cb-4036-4189-97c1-8da3e7c5ac12.jpg?v=1782206629\u0026amp;width=700\" class=\"gallery-item\" alt=\"Gallery 12\"\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"gallery-item-wrapper\" data-src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC2960_8e2d5da3-992c-49e2-9d2c-02a0094636f0.jpg?v=1782206629\u0026amp;width=700\"\u003e\n        \u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC2960_8e2d5da3-992c-49e2-9d2c-02a0094636f0.jpg?v=1782206629\u0026amp;width=700\" class=\"gallery-item\" alt=\"Gallery 13\"\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"gallery-item-wrapper\" data-src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC3055_f8226a0a-f309-4995-9240-090c2794dc69.jpg?v=1782206629\u0026amp;width=700\"\u003e\n        \u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC3055_f8226a0a-f309-4995-9240-090c2794dc69.jpg?v=1782206629\u0026amp;width=700\" class=\"gallery-item\" alt=\"Gallery 14\"\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"gallery-item-wrapper\" data-src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC3074-2.jpg?v=1782206629\u0026amp;width=700\"\u003e\n        \u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC3074-2.jpg?v=1782206629\u0026amp;width=700\" class=\"gallery-item\" alt=\"Gallery 15\"\u003e\n      \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","brand":"EVEN","offers":[{"title":"BLACK \/ F","offer_id":47851431395546,"sku":"S26H0366K-01-00","price":16500.0,"currency_code":"JPY","in_stock":true},{"title":"NAVY \/ F","offer_id":47851431461082,"sku":"S26H0366K-40-00","price":16500.0,"currency_code":"JPY","in_stock":true},{"title":"BROWN \/ F","offer_id":47851431428314,"sku":"S26H0366K-20-00","price":16500.0,"currency_code":"JPY","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0654\/2609\/6346\/files\/DSC3371.jpg?v=1778751138"},{"product_id":"s26k0338k","title":"TIE-DYE SOCKS（LEI）","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愛情・歓迎・絆を象徴するアロハスピリットが宿るLEI（レイ）柄をジャガード織りで表現したSALVEGE PUBLICならではのソックス。\u003c\/p\u003e\n\u003cp\u003eタイダイ染めで1つ1つの表情が変わり自分だけのオンリーワンを楽しむ事ができる。\u003c\/p\u003e\n\u003cp\u003e双糸を２本取りではなく単糸を５本取りし、程よく度詰めで編み立てており耐久性も抜群。\u003c\/p\u003e\n\u003cbr\u003e\u003cbr\u003e\n        \u003c!-- ▲ [EDIT: 商品説明] ここまで --\u003e\n\n        \u003c!-- ▼ [EDIT: ブランド説明] ここから〜ここまでがブランド説明テキスト --\u003e\n          【SALVAGE PUBLIC Kolepa】\u003cbr\u003e\n          EVENが監修するハワイで人気の「サルベージ パブリック」のゴルフライン「サルベージ パブリック コレパ」\u003cbr\u003e\n          \"Kolepa\"とはハワイの言葉でゴルフを意味し、リラックス感と都会的なモダンテイストが融合する機能性を備えたゴルファー目線たっぷりなコレクションを展開する。\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          \u003c\/tr\u003e\n        \u003c\/thead\u003e\n        \u003ctbody\u003e\n          \u003ctr\u003e\n            \u003cth\u003eF\u003c\/th\u003e\n            \u003ctd\u003e25cm～27cm\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\u003eSALVAGE PUBLIC Kolepa\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\u003eSVCA6002\u003c\/td\u003e\n          \u003c\/tr\u003e\n\n\n          \u003ctr\u003e\n            \u003ctd\u003e商品コード\u003c\/td\u003e\n            \u003ctd\u003es26k0338k\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\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\/A7R0686.jpg?v=1778751198\u0026amp;width=700\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/A7R0686.jpg?v=1778751198\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\/A7R0685.jpg?v=1778751198\u0026amp;width=700\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/A7R0685.jpg?v=1778751198\u0026amp;width=700\" 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\/A7R0687.jpg?v=1778751198\u0026amp;width=700\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/A7R0687.jpg?v=1778751198\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\/A7R0688.jpg?v=1778751198\u0026amp;width=700\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/A7R0688.jpg?v=1778751198\u0026amp;width=700\" 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\/DSC2916_22fa58ee-eb57-4e13-8fbd-b828d4045e0c.jpg?v=1782206724\u0026amp;width=700\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC2916_22fa58ee-eb57-4e13-8fbd-b828d4045e0c.jpg?v=1782206724\u0026amp;width=700\" 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\/DSC2929_3e8bb218-3a85-4b2f-8a67-2262424deb72.jpg?v=1782206724\u0026amp;width=700\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC2929_3e8bb218-3a85-4b2f-8a67-2262424deb72.jpg?v=1782206724\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\/DSC3086_c1e84d65-66e8-4e58-b1e3-510981520bbd.jpg?v=1782206724\u0026amp;width=700\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC3086_c1e84d65-66e8-4e58-b1e3-510981520bbd.jpg?v=1782206724\u0026amp;width=700\" 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\/DSC3095_b02b07b0-6e38-4a08-bfd8-3e658e4da84c.jpg?v=1782206724\u0026amp;width=700\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC3095_b02b07b0-6e38-4a08-bfd8-3e658e4da84c.jpg?v=1782206724\u0026amp;width=700\" class=\"gallery-item\" alt=\"Gallery 8\"\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 \/ F","offer_id":47851431493850,"sku":"S26K0338K-01-00","price":4180.0,"currency_code":"JPY","in_stock":true},{"title":"NAVY \/ F","offer_id":47851431526618,"sku":"S26K0338K-40-00","price":4180.0,"currency_code":"JPY","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0654\/2609\/6346\/files\/A7R0685.jpg?v=1778751198"},{"product_id":"s26k0339k","title":"TRADEWINDS JET CAP","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\u003cp\u003eそんな意味が込められた５パネルCap。\u003c\/p\u003e\n\u003cp\u003e20デニールの極細ナイロン糸で織られた生地は滑らかで軽くストレッチに長け、防風性、撥水性、透湿性も兼ね備えている。\u003c\/p\u003e\n\u003cp\u003e程よいかぶりの深さとカーブバイザーでバランスも良く、しっかりしたフィット感と共に日差しを避けてくれる。\u003c\/p\u003e\n\u003cp\u003eフロントにはブランドスタンプロゴ、バイザーにはHONOLULUのシリコンプリントが入る。\u003c\/p\u003e\n\u003cbr\u003e\u003cbr\u003e\n        \u003c!-- ▲ [EDIT: 商品説明] ここまで --\u003e\n\n        \u003c!-- ▼ [EDIT: ブランド説明] ここから〜ここまでがブランド説明テキスト --\u003e\n        \u003cp\u003e【SALVAGE PUBLIC Kolepa】\u003cbr\u003e\nEVENが監修するハワイで人気の「サルベージ パブリック」のゴルフライン「サルベージ パブリック コレパ」\u003cbr\u003e\n\"Kolepa\"とはハワイの言葉でゴルフを意味し、リラックス感と都会的なモダンテイストが融合する機能性を備えたゴルファー目線たっぷりなコレクションを展開する。\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\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\u003e58cm\u003c\/td\u003e\n            \u003ctd\u003e8.5cm\u003c\/td\u003e\n          \u003c\/tr\u003e\n        \u003c\/tbody\u003e\n      \u003c\/table\u003e\n\n\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\u003eSALVAGE PUBLIC Kolepa\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\u003eSVCA6003\u003c\/td\u003e\n\u003c\/tr\u003e\n          \u003ctr\u003e\n            \u003ctd\u003e商品コード\u003c\/td\u003e\n            \u003ctd\u003es26k0339k\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ナイロン80％ ポリウレタン20％\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\u003e181cm\u003c\/td\u003e\n          \u003c\/tr\u003e\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\/A7R0701.jpg?v=1778751251\u0026amp;width=700\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/A7R0701.jpg?v=1778751251\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\/A7R0702.jpg?v=1778751251\u0026amp;width=200\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/A7R0702.jpg?v=1778751251\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\/A7R0690.jpg?v=1778751251\u0026amp;width=200\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/A7R0690.jpg?v=1778751251\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\/A7R0693.jpg?v=1778751251\u0026amp;width=200\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/A7R0693.jpg?v=1778751251\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\/A7R0699.jpg?v=1778751252\u0026amp;width=200\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/A7R0699.jpg?v=1778751252\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\/A7R0700.jpg?v=1778751251\u0026amp;width=200\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/A7R0700.jpg?v=1778751251\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\/DSC2916_39b30f2b-8ea9-47bb-8da2-70fc9670bd53.jpg?v=1782206807\u0026amp;width=200\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC2916_39b30f2b-8ea9-47bb-8da2-70fc9670bd53.jpg?v=1782206807\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\/DSC2925_5a546e0c-008b-45c4-b322-331406294240.jpg?v=1782206807\u0026amp;width=200\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC2925_5a546e0c-008b-45c4-b322-331406294240.jpg?v=1782206807\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\/DSC3023_ed4bd22a-6f00-49b0-94f3-e30ab8a023a2.jpg?v=1782206807\u0026amp;width=200\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC3023_ed4bd22a-6f00-49b0-94f3-e30ab8a023a2.jpg?v=1782206807\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\/DSC3030_d94e7cf3-f4a6-4ed5-9eee-30e9bc061848.jpg?v=1782206807\u0026amp;width=200\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC3030_d94e7cf3-f4a6-4ed5-9eee-30e9bc061848.jpg?v=1782206807\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\/DSC3034_4591c282-65f2-4801-bfaa-2db68ce58f83.jpg?v=1782206807\u0026amp;width=200\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC3034_4591c282-65f2-4801-bfaa-2db68ce58f83.jpg?v=1782206807\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\/DSC3124_7a92a80c-2cff-491e-8071-094678a44696.jpg?v=1782206807\u0026amp;width=200\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC3124_7a92a80c-2cff-491e-8071-094678a44696.jpg?v=1782206807\u0026amp;width=200\" class=\"gallery-item\" alt=\"Gallery 12\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"gallery-item-wrapper\" data-src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC3127_94bc0734-8e69-48af-94b5-49b1428ab0b9.jpg?v=1782206807\u0026amp;width=200\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC3127_94bc0734-8e69-48af-94b5-49b1428ab0b9.jpg?v=1782206807\u0026amp;width=200\" class=\"gallery-item\" alt=\"Gallery 13\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"gallery-item-wrapper\" data-src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC3129_92dad2e6-6491-4eb5-8d7c-26cddce6310f.jpg?v=1782206807\u0026amp;width=200\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC3129_92dad2e6-6491-4eb5-8d7c-26cddce6310f.jpg?v=1782206807\u0026amp;width=200\" class=\"gallery-item\" alt=\"Gallery 14\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"gallery-item-wrapper\" data-src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC3135_8a44f1b3-62be-4ff3-9e5e-50a43090ebb1.jpg?v=1782206807\u0026amp;width=200\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC3135_8a44f1b3-62be-4ff3-9e5e-50a43090ebb1.jpg?v=1782206807\u0026amp;width=200\" class=\"gallery-item\" alt=\"Gallery 15\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"gallery-item-wrapper\" data-src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC3140_26478ab0-93ac-48fd-b549-a125caf01e88.jpg?v=1782206807\u0026amp;width=200\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC3140_26478ab0-93ac-48fd-b549-a125caf01e88.jpg?v=1782206807\u0026amp;width=200\" class=\"gallery-item\" alt=\"Gallery 16\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"gallery-item-wrapper\" data-src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC3176_3dd7ff25-656a-49ac-a874-b06b9bb86f00.jpg?v=1782206807\u0026amp;width=200\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC3176_3dd7ff25-656a-49ac-a874-b06b9bb86f00.jpg?v=1782206807\u0026amp;width=200\" class=\"gallery-item\" alt=\"Gallery 17\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"gallery-item-wrapper\" data-src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC3185_2be18872-3312-4468-b132-15a84236be82.jpg?v=1782206807\u0026amp;width=200\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC3185_2be18872-3312-4468-b132-15a84236be82.jpg?v=1782206807\u0026amp;width=200\" class=\"gallery-item\" alt=\"Gallery 18\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"gallery-item-wrapper\" data-src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC3190_b187fe00-a7e2-4607-ba0c-76ee76967988.jpg?v=1782206807\u0026amp;width=200\"\u003e\u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC3190_b187fe00-a7e2-4607-ba0c-76ee76967988.jpg?v=1782206807\u0026amp;width=200\" class=\"gallery-item\" alt=\"Gallery 19\"\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\n\u003c\/div\u003e","brand":"EVEN","offers":[{"title":"BLACK \/ F","offer_id":47851431559386,"sku":"S26K0339K-01-00","price":7480.0,"currency_code":"JPY","in_stock":true},{"title":"GREEN \/ F","offer_id":47851431592154,"sku":"S26K0339K-30-00","price":7480.0,"currency_code":"JPY","in_stock":true},{"title":"NAVY \/ F","offer_id":47851431624922,"sku":"S26K0339K-40-00","price":7480.0,"currency_code":"JPY","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0654\/2609\/6346\/files\/A7R0690.jpg?v=1778751251"},{"product_id":"s26k0340k","title":"SVCA6004［サルベージパブリックコレパ］クラブキャップ","description":"\u003cp\u003eオーセンティックな雰囲気の漂う6パネルボールCap。\u003c\/p\u003e\n\u003cp\u003e美しいシルエットに絶妙なフィット感は流行りすたりの無いデザインに仕上がっている。\u003c\/p\u003e\n\u003cp\u003e安定感のあるしっかりとした厚みと表情のあるウール・アクリル ツイル生地を使用。\u003c\/p\u003e\n\u003cp\u003e汚れにも強く、経年変化も楽しめるところも◎\u003c\/p\u003e\n\u003cp\u003eフロントにはSPモノグラムの3D刺繍入り。\u003c\/p\u003e\n\u003cp\u003e※数値はセンチ、多少の誤差がございます\u003cbr\u003e※光や角度により、実物と色味が異なる場合がございます\u003c\/p\u003e\n\u003cp\u003e\u003cmeta charset=\"utf-8\"\u003e\u003cspan\u003e素材：アクリル85％ ウール15%\u003cbr\u003e製造国：中国\u003c\/span\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cmeta charset=\"utf-8\"\u003e商品コード｜\u003cmeta charset=\"utf-8\"\u003e\u003cspan\u003es26k0340k\u003c\/span\u003e\u003cbr\u003e購入時納期｜3-4日\u003c\/p\u003e","brand":"EVEN","offers":[{"title":"ブラック \/ F","offer_id":47851431657690,"sku":"S26K0340K-01-00","price":7480.0,"currency_code":"JPY","in_stock":true},{"title":"フォレスト \/ F","offer_id":47851431690458,"sku":"S26K0340K-212-00","price":7480.0,"currency_code":"JPY","in_stock":true},{"title":"ネイビー \/ F","offer_id":47851431723226,"sku":"S26K0340K-40-00","price":7480.0,"currency_code":"JPY","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0654\/2609\/6346\/files\/DSC3393.jpg?v=1778751329"},{"product_id":"s26k0341k","title":"ANKLE SOCKS（LAUA’E）","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\u003cp\u003e特殊ファイバーの“ドロラン_”糸で吸水性を向上させ、抗菌防臭加工”ロンフレッシュ_”により､吸収した汗が原因で発生する臭いを抑えることができる。\u003c\/p\u003e\n\u003cp\u003e足底面はパイル編みになっているので優しく包み込む快適な履き心地。\u003c\/p\u003e\n\u003cp\u003e甲部分にはLaua'e（ラウアエ）と呼ばれるハワイでお祝い事や装飾で使われる伝統的な植物をモチーフにしたハワイアンキルト柄がジャガードされている。\u003c\/p\u003e\n\u003cp\u003e踵部分にはダイアモンドヘッドロゴのジャガード入り。\u003c\/p\u003e\n\u003cbr\u003e\u003cbr\u003e\n        \u003c!-- ▲ [EDIT: 商品説明] ここまで --\u003e\n\n        \u003c!-- ▼ [EDIT: ブランド説明] ここから〜ここまでがブランド説明テキスト --\u003e\n          【SALVAGE PUBLIC Kolepa】\u003cbr\u003e\n          EVENが監修するハワイで人気の「サルベージ パブリック」のゴルフライン「サルベージ パブリック コレパ」\u003cbr\u003e\n          \"Kolepa\"とはハワイの言葉でゴルフを意味し、リラックス感と都会的なモダンテイストが融合する機能性を備えたゴルファー目線たっぷりなコレクションを展開する。\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          \u003c\/tr\u003e\n        \u003c\/thead\u003e\n        \u003ctbody\u003e\n          \u003ctr\u003e\n            \u003cth\u003eF\u003c\/th\u003e\n            \u003ctd\u003e25cm～27cm\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\u003eSALVAGE PUBLIC Kolepa\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\u003eSVKA5007\u003c\/td\u003e\n          \u003c\/tr\u003e\n\n\n          \u003ctr\u003e\n            \u003ctd\u003e商品コード\u003c\/td\u003e\n            \u003ctd\u003es26k0341k\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\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\/A7R0684.jpg?v=1778751383\"\u003e\n        \u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/A7R0684.jpg?v=1778751383\" 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\/A7R0679.jpg?v=1778751383\u0026amp;width=700\"\u003e\n        \u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/A7R0679.jpg?v=1778751383\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\/A7R0680.jpg?v=1778751383\u0026amp;width=700\"\u003e\n        \u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/A7R0680.jpg?v=1778751383\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\/A7R0681.jpg?v=1778751383\u0026amp;width=700\"\u003e\n        \u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/A7R0681.jpg?v=1778751383\u0026amp;width=700\" class=\"gallery-item\" alt=\"Gallery 4\"\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"gallery-item-wrapper\" data-src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/A7R0683.jpg?v=1778751383\u0026amp;width=700\"\u003e\n        \u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/A7R0683.jpg?v=1778751383\u0026amp;width=700\" class=\"gallery-item\" alt=\"Gallery 5\"\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"gallery-item-wrapper\" data-src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC2949_f83641ec-97f7-491b-8fbc-9dce58de3709.jpg?v=1782206938\u0026amp;width=700\"\u003e\n        \u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC2949_f83641ec-97f7-491b-8fbc-9dce58de3709.jpg?v=1782206938\u0026amp;width=700\" class=\"gallery-item\" alt=\"Gallery 6\"\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"gallery-item-wrapper\" data-src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC2963_bb4c67b3-631f-434a-b26c-db564bc858c4.jpg?v=1782206938\u0026amp;width=700\"\u003e\n        \u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC2963_bb4c67b3-631f-434a-b26c-db564bc858c4.jpg?v=1782206938\u0026amp;width=700\" class=\"gallery-item\" alt=\"Gallery 7\"\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"gallery-item-wrapper\" data-src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC2969_142ca0af-2cfb-472f-988a-37c1a62b39ad.jpg?v=1782206938\u0026amp;width=700\"\u003e\n        \u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC2969_142ca0af-2cfb-472f-988a-37c1a62b39ad.jpg?v=1782206938\u0026amp;width=700\" class=\"gallery-item\" alt=\"Gallery 8\"\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"gallery-item-wrapper\" data-src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC2975_9a6f8b44-4856-49ed-a19b-8eb78754435b.jpg?v=1782206939\u0026amp;width=700\"\u003e\n        \u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC2975_9a6f8b44-4856-49ed-a19b-8eb78754435b.jpg?v=1782206939\u0026amp;width=700\" class=\"gallery-item\" alt=\"Gallery 9\"\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"gallery-item-wrapper\" data-src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC2997_53c09c5a-c523-4d0c-afdf-2bae44c83799.jpg?v=1782206938\u0026amp;width=700\"\u003e\n        \u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC2997_53c09c5a-c523-4d0c-afdf-2bae44c83799.jpg?v=1782206938\u0026amp;width=700\" class=\"gallery-item\" alt=\"Gallery 10\"\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"gallery-item-wrapper\" data-src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC3023_a1b20e89-75bd-4156-82a5-1d9af0217657.jpg?v=1782206938\u0026amp;width=700\"\u003e\n        \u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC3023_a1b20e89-75bd-4156-82a5-1d9af0217657.jpg?v=1782206938\u0026amp;width=700\" class=\"gallery-item\" alt=\"Gallery 11\"\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"gallery-item-wrapper\" data-src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC3055_82b6454a-1e0f-48a3-932a-087dfbbefc8f.jpg?v=1782206938\u0026amp;width=700\"\u003e\n        \u003cimg src=\"https:\/\/shop.funq.jp\/cdn\/shop\/files\/DSC3055_82b6454a-1e0f-48a3-932a-087dfbbefc8f.jpg?v=1782206938\u0026amp;width=700\" class=\"gallery-item\" alt=\"Gallery 12\"\u003e\n      \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 \/ F","offer_id":47851431755994,"sku":"S26K0341K-01-00","price":3080.0,"currency_code":"JPY","in_stock":true},{"title":"WHITE \/ F","offer_id":47851431788762,"sku":"S26K0341K-10-00","price":3080.0,"currency_code":"JPY","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0654\/2609\/6346\/files\/A7R0679.jpg?v=1778751383"},{"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"},{"product_id":"e26g0460k","title":"［SUN MOUNTAIN別注］CADDIE BAG【C-130JC】","description":"\u003ch3\u003eEVENが別注で手がけた、Sun Mountain（サンマウンテン）のキャディバッグが登場！\u003c\/h3\u003e\n\u003cp\u003e1981年、アメリカ・ユタ州で創業した老舗ゴルフメーカー「Sun Mountain（サンマウンテン）」。スタンドキャディバッグを最初に開発したパイオニアブランドとして、本国アメリカでも非常に高い人気を誇ります。\u003c\/p\u003e\n\u003cp\u003e本国ベストセラーモデル「C130」をベースに、日本人の体格や使い勝手に合わせてアジアンフィット仕様へと開発。ラウンドでの実用性とデザイン性を両立させた、カート用キャディバッグです。\u003c\/p\u003e\n\u003cp\u003eフロントパネルには「GAME OF A LIFETIME」のメッセージを縦組みで刺繍し、サイドポケットにはブランドシンボルの「e」ロゴを配置。さらにフロントの小物ポケットには手書き風の「EVEN」ロゴを刺繍で添え、随所にブランドらしい遊び心を効かせました。\u003c\/p\u003e\n\u003cp\u003eスタンドタイプで自立が可能。複数ポケット仕様で収納力も十分に確保し、普段使いからコースでの使用まで、シーンを選ばず活躍します。人と差がつく唯一無二のデザインは、コースでもひときわ目を引く存在感を放ちます。\u003c\/p\u003e\n\u003cp\u003e鮮やかな紫に、フロントパネルのライトグリーンを効かせた高コントラストな配色のものと、漆黒のボディに白のロゴ刺繍が映える、シックながらも個性の光る配色。2色展開でのご用意です。\u003c\/p\u003e\n\u003cp\u003e▼機能詳細\u003cbr\u003e・EASY VIEW®口枠：番手が一目で認識しやすい設計で、クラブの出し入れがスムーズ\u003cbr\u003e・グローブホルダー：グローブの収納・乾燥に便利な専用ホルダーを搭載\u003cbr\u003e・マグネット開口ポケット：片手でも開閉しやすいマグネット式ポケットを採用\u003cbr\u003e・驚きの軽量設計：9.5型のボリュームでありながら、本体重量はわずか3.5kg\u003cbr\u003e・編集部こだわりのデザイン：ブランドの世界観を細部まで落とし込んだ、唯一無二の一本\u003cbr\u003e\u003c\/p\u003e\n\u003cp\u003e※数値はセンチ、多少の誤差がございます\u003cbr\u003e※光や角度により、実物と色味が異なる場合がございます\u003c\/p\u003e\n\u003cp\u003e\u003cmeta charset=\"utf-8\"\u003e\u003cspan\u003e\u003cmeta charset=\"utf-8\"\u003eサイズ： 9.5 型 \/ 46インチ対応 \/ 6分割 \/ 3.5kg \/ 14本\u003cbr\u003e\u003c\/span\u003e\u003cspan\u003e素材：合成繊維（ナイロン）\u003cbr\u003e製造国：インドネシア\u003c\/span\u003e\u003cspan\u003e\u003cbr\u003e\u003c\/span\u003e\u003cspan\u003e\u003c\/span\u003e\u003cspan\u003e\u003c\/span\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cmeta charset=\"utf-8\"\u003e商品コード｜\u003cmeta charset=\"utf-8\"\u003e\u003cspan\u003ee26g0460k\u003c\/span\u003e\u003cbr\u003e購入時納期｜3-4日\u003c\/p\u003e","brand":"EVEN","offers":[{"title":"BLACK","offer_id":48485094392026,"sku":"E26G0460K-01-00","price":74800.0,"currency_code":"JPY","in_stock":true},{"title":"PURPLE","offer_id":48485094424794,"sku":"E26G0460K-50-00","price":74800.0,"currency_code":"JPY","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0654\/2609\/6346\/files\/even7455_2d64ef27-43db-4aa6-b14d-69c615d08400.jpg?v=1787554408"},{"product_id":"e26d0466k","title":"［Hurley別注］日本オープン記念 PHANTOM ZIP UP BLOUSON","description":"\u003cp\u003e日本ゴルフ最高峰の舞台「日本オープン」と、Hurley、そしてEVENがタッグを組んだスペシャルな一着。\u003c\/p\u003e\n\u003cp\u003eスポーティなジップアップブルゾンを、落ち着いたカラーリングと上品なロゴでクラシックに仕上げました。\u003c\/p\u003e\n\u003cp\u003e大会の記念品然としたアイテムに留まらず、コースはもちろん普段の街着としても活躍する一枚。\u003cbr\u003e三者の個性をきりりと束ねた、数量限定のブルゾンです。\u003c\/p\u003e\n\u003cp\u003e進化した軽量ダンボールニットを採用し、ストレッチ・保温・吸水速乾の3拍子で快適さをキープ。肌寒い季節のラウンドを支える一枚です。\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\u003ctable style=\"border-collapse: collapse; width: 408px; height: 261px;\" width=\"356\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\"\u003e\n\u003ctbody\u003e\n\u003ctr style=\"height: 25.3281px;\" height=\"25\"\u003e\n\u003ctd height=\"25\" class=\"xl72\" style=\"height: 25.3281px; width: 98.7969px;\"\u003eサイズ　　　　\u003c\/td\u003e\n\u003ctd class=\"xl70\" style=\"width: 64.4375px; height: 25.3281px;\"\u003eS\u003c\/td\u003e\n\u003ctd class=\"xl69\" style=\"border-left-width: medium; border-left-style: none; border-left-color: currentcolor; width: 65.4766px; height: 25.3281px;\"\u003eM\u003c\/td\u003e\n\u003ctd class=\"xl69\" style=\"border-left-width: medium; border-left-style: none; border-left-color: currentcolor; width: 60.625px; height: 25.3281px;\"\u003eL\u003c\/td\u003e\n\u003ctd style=\"border-left-width: medium; border-left-style: none; border-left-color: currentcolor; width: 57.375px;\"\u003eXL\u003c\/td\u003e\n\u003ctd style=\"border-left-width: medium; border-left-style: none; border-left-color: currentcolor; width: 54.2891px;\"\u003eXXL\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr style=\"height: 27px;\" height=\"28\"\u003e\n\u003ctd height=\"25\" class=\"xl74\" style=\"height: 27px; width: 98.7969px;\"\u003e裄丈\u003c\/td\u003e\n\u003ctd style=\"height: 27px; width: 64.4375px;\" class=\"xl74\"\u003e84\u003c\/td\u003e\n\u003ctd class=\"xl78\" style=\"border-left-width: medium; border-left-style: none; border-left-color: currentcolor; height: 27px; width: 65.4766px;\"\u003e86\u003c\/td\u003e\n\u003ctd class=\"xl78\" style=\"border-left-width: medium; border-left-style: none; border-left-color: currentcolor; height: 27px; width: 60.625px;\"\u003e88\u003c\/td\u003e\n\u003ctd style=\"border-left-width: medium; border-left-style: none; border-left-color: currentcolor; width: 57.375px;\"\u003e90\u003c\/td\u003e\n\u003ctd style=\"border-left-width: medium; border-left-style: none; border-left-color: currentcolor; width: 54.2891px;\"\u003e92\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr style=\"height: 25.6641px;\" height=\"27\"\u003e\n\u003ctd height=\"24\" class=\"xl79\" style=\"height: 25.6641px; border-top-width: medium; border-top-style: none; border-top-color: currentcolor; width: 98.7969px;\"\u003e身幅\u003c\/td\u003e\n\u003ctd class=\"xl79\" style=\"border-top-width: medium; border-top-style: none; border-top-color: currentcolor; height: 25.6641px; width: 64.4375px;\"\u003e55\u003c\/td\u003e\n\u003ctd class=\"xl77\" style=\"border-top-width: medium; border-top-style: none; border-top-color: currentcolor; border-left-width: medium; border-left-style: none; border-left-color: currentcolor; height: 25.6641px; width: 65.4766px;\"\u003e58\u003c\/td\u003e\n\u003ctd class=\"xl77\" style=\"border-top-width: medium; border-top-style: none; border-top-color: currentcolor; border-left-width: medium; border-left-style: none; border-left-color: currentcolor; height: 25.6641px; width: 60.625px;\"\u003e61\u003c\/td\u003e\n\u003ctd style=\"border-top-width: medium; border-top-style: none; border-top-color: currentcolor; border-left-width: medium; border-left-style: none; border-left-color: currentcolor; width: 57.375px;\"\u003e64\u003c\/td\u003e\n\u003ctd style=\"border-top-width: medium; border-top-style: none; border-top-color: currentcolor; border-left-width: medium; border-left-style: none; border-left-color: currentcolor; width: 54.2891px;\"\u003e67\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr style=\"height: 25.6641px;\" height=\"27\"\u003e\n\u003ctd height=\"24\" class=\"xl79\" style=\"height: 25.6641px; border-top-width: medium; border-top-style: none; border-top-color: currentcolor; width: 98.7969px;\"\u003e身丈\u003c\/td\u003e\n\u003ctd class=\"xl79\" style=\"border-top-width: medium; border-top-style: none; border-top-color: currentcolor; height: 25.6641px; width: 64.4375px;\"\u003e\n\u003cmeta charset=\"utf-8\"\u003e66\u003c\/td\u003e\n\u003ctd class=\"xl77\" style=\"border-top-width: medium; border-top-style: none; border-top-color: currentcolor; border-left-width: medium; border-left-style: none; border-left-color: currentcolor; height: 25.6641px; width: 65.4766px;\"\u003e\n\u003cmeta charset=\"utf-8\"\u003e69\u003c\/td\u003e\n\u003ctd class=\"xl77\" style=\"border-top-width: medium; border-top-style: none; border-top-color: currentcolor; border-left-width: medium; border-left-style: none; border-left-color: currentcolor; height: 25.6641px; width: 60.625px;\"\u003e\n\u003cmeta charset=\"utf-8\"\u003e72\u003c\/td\u003e\n\u003ctd style=\"border-top-width: medium; border-top-style: none; border-top-color: currentcolor; border-left-width: medium; border-left-style: none; border-left-color: currentcolor; width: 57.375px;\"\u003e75\u003c\/td\u003e\n\u003ctd style=\"border-top-width: medium; border-top-style: none; border-top-color: currentcolor; border-left-width: medium; border-left-style: none; border-left-color: currentcolor; width: 54.2891px;\"\u003e78\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\n\u003c\/table\u003e\n\u003cp\u003e※数値はセンチ、多少の誤差がございます\u003cbr\u003e※光や角度により、実物と色味が異なる場合がございます\u003c\/p\u003e\n\u003cp\u003e\u003cmeta charset=\"utf-8\"\u003e\u003cspan\u003e素材：ポリエステル80% ポリウレタン20％\u003cbr\u003e製造国：中国\u003c\/span\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cmeta charset=\"utf-8\"\u003e商品コード｜\u003cmeta charset=\"utf-8\"\u003e\u003cspan\u003ee26d0466k\u003c\/span\u003e\u003cbr\u003e購入時納期｜3-4日\u003c\/p\u003e","brand":"EVEN","offers":[{"title":"BLACK \/ S","offer_id":48603908341978,"sku":"E26D0466K-01-03","price":20900.0,"currency_code":"JPY","in_stock":false},{"title":"BLACK \/ M","offer_id":48603908374746,"sku":"E26D0466K-01-04","price":20900.0,"currency_code":"JPY","in_stock":true},{"title":"BLACK \/ L","offer_id":48603908407514,"sku":"E26D0466K-01-05","price":20900.0,"currency_code":"JPY","in_stock":true},{"title":"BLACK \/ XL","offer_id":48603908440282,"sku":"E26D0466K-01-06","price":20900.0,"currency_code":"JPY","in_stock":true},{"title":"BLACK \/ XXL","offer_id":48603908473050,"sku":"E26D0466K-01-07","price":20900.0,"currency_code":"JPY","in_stock":false},{"title":"KHAKI \/ S","offer_id":48603908505818,"sku":"E26D0466K-35-03","price":20900.0,"currency_code":"JPY","in_stock":true},{"title":"KHAKI \/ M","offer_id":48603908538586,"sku":"E26D0466K-35-04","price":20900.0,"currency_code":"JPY","in_stock":true},{"title":"KHAKI \/ L","offer_id":48603908571354,"sku":"E26D0466K-35-05","price":20900.0,"currency_code":"JPY","in_stock":true},{"title":"KHAKI \/ XL","offer_id":48603908604122,"sku":"E26D0466K-35-06","price":20900.0,"currency_code":"JPY","in_stock":true},{"title":"KHAKI \/ XXL","offer_id":48603908636890,"sku":"E26D0466K-35-07","price":20900.0,"currency_code":"JPY","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0654\/2609\/6346\/files\/even9430.jpg?v=1789454630"},{"product_id":"e26a0469k","title":"［Hurley別注］日本オープン記念 PHANTOM MOCK NECK PULLOVER","description":"\u003cp\u003e日本ゴルフ最高峰の舞台「日本オープン」と、Hurley、そしてEVENがタッグを組んだスペシャルな一着。\u003c\/p\u003e\n\u003cp\u003eスポーティなモックネックを、落ち着いたカラーリングと上品なロゴでクラシックに仕上げました。\u003c\/p\u003e\n\u003cp\u003e大会の記念品然としたアイテムに留まらず、コースはもちろん普段の街着としても活躍する一枚。\u003cbr\u003e三者の個性をきりりと束ねた、数量限定のモックネックです。\u003c\/p\u003e\n\u003cp\u003e進化した軽量ダンボールニットを採用し、ストレッチ・保温・吸水速乾の3拍子で快適さをキープ。肌寒い季節のラウンドを支える一枚です。\u003c\/p\u003e\n\u003cp\u003e高い吸水速乾性が汗を素早く拡散してプレー中もドライな状態を保ちながら、ダンボールニット特有の断熱性が冷気を和らげ、肌寒いコンディションでも快適なプレーをサポートします。\u003c\/p\u003e\n\u003cp\u003e軽量でストレッチ性にも優れているため、スイングの動きに自然に追従。ポロシャツの上から重ねても動きを妨げにくく、軽快な着心地を実現します。\u003c\/p\u003e\n\u003cp\u003e秋口や春先など、寒暖差のあるラウンドに活躍。軽く、暖かく、自在に動く一枚で、季節の変わり目も快適なラウンドへ。\u003c\/p\u003e\n\u003ctable style=\"border-collapse: collapse; width: 408px; height: 261px;\" width=\"356\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\"\u003e\n\u003ctbody\u003e\n\u003ctr style=\"height: 25.3281px;\" height=\"25\"\u003e\n\u003ctd height=\"25\" class=\"xl72\" style=\"height: 25.3281px; width: 98.7969px;\"\u003eサイズ　　　　\u003c\/td\u003e\n\u003ctd class=\"xl70\" style=\"width: 64.4375px; height: 25.3281px;\"\u003eS\u003c\/td\u003e\n\u003ctd class=\"xl69\" style=\"border-left-width: medium; border-left-style: none; border-left-color: currentcolor; width: 65.4766px; height: 25.3281px;\"\u003eM\u003c\/td\u003e\n\u003ctd class=\"xl69\" style=\"border-left-width: medium; border-left-style: none; border-left-color: currentcolor; width: 60.625px; height: 25.3281px;\"\u003eL\u003c\/td\u003e\n\u003ctd style=\"border-left-width: medium; border-left-style: none; border-left-color: currentcolor; width: 57.375px;\"\u003eXL\u003c\/td\u003e\n\u003ctd style=\"border-left-width: medium; border-left-style: none; border-left-color: currentcolor; width: 54.2891px;\"\u003eXXL\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr style=\"height: 27px;\" height=\"28\"\u003e\n\u003ctd height=\"25\" class=\"xl74\" style=\"height: 27px; width: 98.7969px;\"\u003e裄丈\u003c\/td\u003e\n\u003ctd style=\"height: 27px; width: 64.4375px;\" class=\"xl74\"\u003e83\u003c\/td\u003e\n\u003ctd class=\"xl78\" style=\"border-left-width: medium; border-left-style: none; border-left-color: currentcolor; height: 27px; width: 65.4766px;\"\u003e85\u003c\/td\u003e\n\u003ctd class=\"xl78\" style=\"border-left-width: medium; border-left-style: none; border-left-color: currentcolor; height: 27px; width: 60.625px;\"\u003e87\u003c\/td\u003e\n\u003ctd style=\"border-left-width: medium; border-left-style: none; border-left-color: currentcolor; width: 57.375px;\"\u003e89\u003c\/td\u003e\n\u003ctd style=\"border-left-width: medium; border-left-style: none; border-left-color: currentcolor; width: 54.2891px;\"\u003e91\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr style=\"height: 25.6641px;\" height=\"27\"\u003e\n\u003ctd height=\"24\" class=\"xl79\" style=\"height: 25.6641px; border-top-width: medium; border-top-style: none; border-top-color: currentcolor; width: 98.7969px;\"\u003e身幅\u003c\/td\u003e\n\u003ctd class=\"xl79\" style=\"border-top-width: medium; border-top-style: none; border-top-color: currentcolor; height: 25.6641px; width: 64.4375px;\"\u003e52\u003c\/td\u003e\n\u003ctd class=\"xl77\" style=\"border-top-width: medium; border-top-style: none; border-top-color: currentcolor; border-left-width: medium; border-left-style: none; border-left-color: currentcolor; height: 25.6641px; width: 65.4766px;\"\u003e55\u003c\/td\u003e\n\u003ctd class=\"xl77\" style=\"border-top-width: medium; border-top-style: none; border-top-color: currentcolor; border-left-width: medium; border-left-style: none; border-left-color: currentcolor; height: 25.6641px; width: 60.625px;\"\u003e58\u003c\/td\u003e\n\u003ctd style=\"border-top-width: medium; border-top-style: none; border-top-color: currentcolor; border-left-width: medium; border-left-style: none; border-left-color: currentcolor; width: 57.375px;\"\u003e61\u003c\/td\u003e\n\u003ctd style=\"border-top-width: medium; border-top-style: none; border-top-color: currentcolor; border-left-width: medium; border-left-style: none; border-left-color: currentcolor; width: 54.2891px;\"\u003e64\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr style=\"height: 25.6641px;\" height=\"27\"\u003e\n\u003ctd height=\"24\" class=\"xl79\" style=\"height: 25.6641px; border-top-width: medium; border-top-style: none; border-top-color: currentcolor; width: 98.7969px;\"\u003e身丈\u003c\/td\u003e\n\u003ctd class=\"xl79\" style=\"border-top-width: medium; border-top-style: none; border-top-color: currentcolor; height: 25.6641px; width: 64.4375px;\"\u003e\n\u003cmeta charset=\"utf-8\"\u003e69\u003c\/td\u003e\n\u003ctd class=\"xl77\" style=\"border-top-width: medium; border-top-style: none; border-top-color: currentcolor; border-left-width: medium; border-left-style: none; border-left-color: currentcolor; height: 25.6641px; width: 65.4766px;\"\u003e\n\u003cmeta charset=\"utf-8\"\u003e72\u003c\/td\u003e\n\u003ctd class=\"xl77\" style=\"border-top-width: medium; border-top-style: none; border-top-color: currentcolor; border-left-width: medium; border-left-style: none; border-left-color: currentcolor; height: 25.6641px; width: 60.625px;\"\u003e\n\u003cmeta charset=\"utf-8\"\u003e75\u003c\/td\u003e\n\u003ctd style=\"border-top-width: medium; border-top-style: none; border-top-color: currentcolor; border-left-width: medium; border-left-style: none; border-left-color: currentcolor; width: 57.375px;\"\u003e78\u003c\/td\u003e\n\u003ctd style=\"border-top-width: medium; border-top-style: none; border-top-color: currentcolor; border-left-width: medium; border-left-style: none; border-left-color: currentcolor; width: 54.2891px;\"\u003e81\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\n\u003c\/table\u003e\n\u003cp\u003e※数値はセンチ、多少の誤差がございます\u003cbr\u003e※光や角度により、実物と色味が異なる場合がございます\u003c\/p\u003e\n\u003cp\u003e\u003cmeta charset=\"utf-8\"\u003e\u003cspan\u003e素材：ポリエステル80% ポリウレタン20％\u003cbr\u003e製造国：中国\u003c\/span\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cmeta charset=\"utf-8\"\u003e商品コード｜\u003cmeta charset=\"utf-8\"\u003e\u003cspan\u003ee26a0469k\u003c\/span\u003e\u003cbr\u003e購入時納期｜3-4日\u003c\/p\u003e","brand":"EVEN","offers":[{"title":"BLACK \/ S","offer_id":48605883465946,"sku":"E26A0469K-01-03","price":17000.0,"currency_code":"JPY","in_stock":true},{"title":"BLACK \/ M","offer_id":48605883498714,"sku":"E26A0469K-01-04","price":17000.0,"currency_code":"JPY","in_stock":true},{"title":"BLACK \/ L","offer_id":48605883531482,"sku":"E26A0469K-01-05","price":17000.0,"currency_code":"JPY","in_stock":true},{"title":"BLACK \/ XL","offer_id":48605883564250,"sku":"E26A0469K-01-06","price":17000.0,"currency_code":"JPY","in_stock":true},{"title":"BLACK \/ XXL","offer_id":48605883597018,"sku":"E26A0469K-01-07","price":17000.0,"currency_code":"JPY","in_stock":true},{"title":"KHAKI \/ S","offer_id":48605883629786,"sku":"E26A0469K-35-03","price":17000.0,"currency_code":"JPY","in_stock":true},{"title":"KHAKI \/ M","offer_id":48605883662554,"sku":"E26A0469K-35-04","price":17000.0,"currency_code":"JPY","in_stock":true},{"title":"KHAKI \/ L","offer_id":48605883695322,"sku":"E26A0469K-35-05","price":17000.0,"currency_code":"JPY","in_stock":true},{"title":"KHAKI \/ XL","offer_id":48605883728090,"sku":"E26A0469K-35-06","price":17000.0,"currency_code":"JPY","in_stock":true},{"title":"KHAKI \/ XXL","offer_id":48605883760858,"sku":"E26A0469K-35-07","price":17000.0,"currency_code":"JPY","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0654\/2609\/6346\/files\/even9423_607ab2a2-0e2e-4db2-a87a-9d40062034fc.jpg?v=1789473158"},{"product_id":"e26k0468k","title":"［Hurley別注］日本オープン記念 PHANTOM BUCKET HAT","description":"\u003cp\u003e日本ゴルフ最高峰の舞台「日本オープン」と、Hurley、そしてEVENがタッグを組んだスペシャルな一品。\u003c\/p\u003e\n\u003cp\u003e雨の日でもスコアを諦めたくないゴルファーへおくるバケットハット。\u003cbr\u003e快適な被り心地はもちろん、ハイスペック機能で天候に左右されないラウンドをサポート。\u003c\/p\u003e\n\u003cp\u003e■襟足からの雨を防ぐ\u003cbr\u003eまず、アドレス時の姿勢を想定し、襟足からの雨の侵入を防ぐツバ後方が長めの設計を採用。\u003cbr\u003eさらにワイヤーを内蔵することで形状を自在にキープでき、視界を確保しながら雨を防ぎます。\u003c\/p\u003e\n\u003cp\u003e■ストレスフリーな被り心地\u003cbr\u003e撚りを掛けた特殊糸を使用し、縦横4方向へ伸びるストレッチ性を実現。ストレスフリーな着心地を叶えます。\u003cbr\u003e生地は仕上がり目付100g\/㎡以下の軽量設計。長時間のラウンドでも疲労感を軽減します。\u003c\/p\u003e\n\u003cp\u003eさらに、なめらかでやわらかい表地により、生地同士の摩擦を軽減。\u003cbr\u003eシャカシャカ音を抑え、集中力を妨げません。\u003c\/p\u003e\n\u003cp\u003e構造は、裏面にプリント加工を施した2.5層ラミネート仕様。\u003cbr\u003e一般的な3層構造に比べ、軽量で肌触りが良く、快適性を高めています。\u003c\/p\u003e\n\u003cp\u003e■荒天下でゴルフをする上で求められる最高クラスの機能性を搭載\u003cbr\u003eスペック面では、耐水圧30,000mm、透湿性30,000g\/㎡\/24hという最高クラスの性能を搭載。\u003cbr\u003e強い雨をしっかり防ぎながら、衣服内の蒸れを外へ逃がします。\u003cbr\u003eさらにラミネート加工により通気度ほぼ0の高い防風性を確保し、風による体温低下も防ぎます。\u003c\/p\u003e\n\u003cp\u003e■100回洗っても続く撥水性\u003cbr\u003e100回洗濯しても撥水機能が持続（100洗3級クリア）する洗濯耐久性。一時的な撥水ではなく、長く信頼できる性能です。\u003c\/p\u003e\n\u003cp\u003e雨の日は、プレーの質が試されるからこそ、レインアクセサリーも妥協しないで欲しい。\u003cbr\u003e本気でラウンドを続けるなら、この一着を相棒に。\u003c\/p\u003e\n\u003cp\u003e※数値はセンチ、多少の誤差がございます\u003cbr\u003e※光や角度により、実物と色味が異なる場合がございます\u003c\/p\u003e\n\u003cp\u003e頭周り: 61cm\u003c\/p\u003e\n\u003cp\u003e\u003cmeta charset=\"utf-8\"\u003e\u003cspan\u003e素材：表地：ナイロン100%　裏地：ポリエステル100%\u003cbr\u003e製造国：中国\u003c\/span\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cmeta charset=\"utf-8\"\u003e商品コード｜\u003cmeta charset=\"utf-8\"\u003e\u003cspan\u003ee26k0468k\u003c\/span\u003e\u003cbr\u003e購入時納期｜3-4日\u003c\/p\u003e","brand":"EVEN","offers":[{"title":"Default Title","offer_id":48605883891930,"sku":"E26K0468K-01-00","price":8800.0,"currency_code":"JPY","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0654\/2609\/6346\/files\/even9432_888bd73a-423a-464d-9c73-2e4ffff9a93e.jpg?v=1789472807"}],"url":"https:\/\/shop.funq.jp\/collections\/2buy10-off.oembed?page=2","provider":"FUNQTEN","version":"1.0","type":"link"}