PageSourceSearch

https://www.bubustore.jp/view/item/000000004802

html bubustore.jp collected 2026-10-08 20:22:03 UTC 267,706 bytes, 4,928 lines download raw bytes

1<!doctype html>
2<html>
3  <head>
4    <meta charset="utf-8">
5    <meta name="viewport" content="width=device-width, initial-scale=1.0">
6    <title>【A倉庫】SALANI オイルバーム(日本製)サラニー オイルバーム 25g アウトバストリートメント 洗い流さないトリートメント スタイリング バーム まとめ髪 天然由来 OIL BALM 自然 ナチュラル ツヤ つや感 つや出し 濡れ髪 | ビューティー,スタイリング剤,バーム |  | 【公式】BUBU STORE |ブブストア  美容・ヘアケア用品・雑貨の通販|ブブストア</title>
7    <meta name="description" content="「【公式】BUBU STORE |ブブストア」で取り扱う商品「【A倉庫】SALANI オイルバーム(日本製)サラニー オイルバーム 25g アウトバストリートメント 洗い流さないトリートメント スタイリング バーム まとめ髪 天然由来 OIL BALM 自然 ナチュラル ツヤ つや感 つや出し 濡れ髪」の紹介・購入ページ">
8    <link rel="canonical" href="https://www.bubustore.jp/view/item/000000004802">
9    <meta property="og:type" content="website">
10    <meta property="og:title" content="【A倉庫】SALANI オイルバーム(日本製)サラニー オイルバーム 25g アウトバストリートメント 洗い流さないトリートメント スタイリング バーム まとめ髪 天然由来 OIL BALM 自然 ナチュラル ツヤ つや感 つや出し 濡れ髪 | ビューティー,スタイリング剤,バーム |  | 【公式】BUBU STORE |ブブストア  美容・ヘアケア用品・雑貨の通販|ブブストア">
11    <meta property="og:description" content="「【公式】BUBU STORE |ブブストア」で取り扱う商品「【A倉庫】SALANI オイルバーム(日本製)サラニー オイルバーム 25g アウトバストリートメント 洗い流さないトリートメント スタイリング バーム まとめ髪 天然由来 OIL BALM 自然 ナチュラル ツヤ つや感 つや出し 濡れ髪」の紹介・購入ページ">
12    <meta property="og:site_name" content="【公式】BUBU STORE |ブブストア">
13    <meta name="twitter:card" content="summary_large_image">
14    <link rel="shortcut icon" type="image/ico" href="/favicon.ico">
15    <!-- Icon -->
16    <link
17      rel="stylesheet"
18      href="https://cdn-uicons.flaticon.com/2.6.0/uicons-regular-rounded/css/uicons-regular-rounded.css"
19      media="print"
20      onload="this.media='all'"
21    >
22    <link rel="stylesheet" href="https://cdn-uicons.flaticon.com/2.6.0/uicons-brands/css/uicons-brands.css" media="print" onload="this.media='all'">
23    <link href="https://use.fontawesome.com/releases/v5.6.1/css/all.css" rel="stylesheet" media="print" onload="this.media='all'">
24    <noscript>
25      <link rel="stylesheet" href="https://cdn-uicons.flaticon.com/2.6.0/uicons-regular-rounded/css/uicons-regular-rounded.css">
26      <link rel="stylesheet" href="https://cdn-uicons.flaticon.com/2.6.0/uicons-brands/css/uicons-brands.css">
27      <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.6.1/css/all.css">
28    </noscript>
29    <link href="https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100;300;400;500;700;900&family=Noto+Serif+JP:wght@200;300;400;500;600;700;900&display=swap" rel="stylesheet">
30    <!-- Alpine.js -->
31    
31<script defer src="https://cdn.jsdelivr.net/npm/[email protected]/dist/cdn.min.js"></script>
31
32    <!-- Anime.js -->
33    
33<script src="https://cdnjs.cloudflare.com/ajax/libs/animejs/3.2.1/anime.min.js"></script>
33
34    <!-- Swiper -->
35    <link rel="stylesheet" href="https://unpkg.com/swiper/swiper-bundle.min.css">
36    
36<script src="https://unpkg.com/swiper/swiper-bundle.min.js"></script>
36
37    <!-- GLightbox -->
38    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/glightbox.min.css" media="print" onload="this.media='all'">
39    <noscript><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/glightbox.min.css"></noscript>
40    
40<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/glightbox.min.js"></script>
40
41
42    <link rel="stylesheet" href="/js/jqueryplugin/remodal/1.1.1/remodal.css">
43<link rel="stylesheet" href="/js/jqueryplugin/remodal/1.1.1/remodal-default-theme.css">
44<link rel="stylesheet" href="/js/jqueryplugin/makeshop_bxslider/4.2.14/jquery.bxslider.min.css">
45<link rel="stylesheet" href="/view/asset/system-99999-1-3-78e567dc05121ea6e0c5107158f4037f.css">
46<script>(function u(){var u=document.createElement("script");u.type="text/javascript",u.async=true,u.src="//api.u-komi.com/c2f857bfb732ff43ca1f7fc17a17b6036f20a61a1ade18706bec4c833bb68fae/widget.js";var k=document.getElementsByTagName("script")[0];k.parentNode.insertBefore(u,k)})();</script>
46
47
48
49    <style>
50      [x-cloak] {
51        display: none !important;
52      }
53      .common-item-swiper {
54        overflow: visible !important;
55        position: relative;
56        padding-bottom: 80px !important;
57      }
58      /* カルーセルがコンテナ幅を超えて横にはみ出すのを防ぐ。
59         左右ナビ矢印はラッパーの左右余白(padding)内に配置されるためクリップされない。 */
60      div:has(> .common-item-swiper) {
61        overflow-x: clip;
62      }
63      .common-item-swiper .swiper-pagination-progressbar.swiper-pagination-horizontal {
64        top: auto !important;
65        bottom: 0 !important;
66        left: 0 !important;
67        width: 100% !important;
68        height: 2px !important;
69        background: rgba(0, 0, 0, 0.1) !important;
70        position: absolute !important;
71      }
72      .common-item-swiper .swiper-pagination-progressbar-fill {
73        background: #000 !important;
74        height: 2px !important;
75      }
76      .common-item-swiper .custom-arrow {
77        width: 44px !important;
78        height: 44px !important;
79        position: absolute !important;
80        top: 40% !important;
81        z-index: 20 !important;
82        background: #fff !important;
83        border: 1px solid #e5e7eb !important;
84        color: transparent !important;
85        display: flex !important;
86        align-items: center !important;
87        justify-content: center !important;
88        transition: all 0.3s ease !important;
89      }
90      .common-item-swiper .custom-arrow::after {
91        display: none !important;
92        content: none !important;
93      }
94      .common-item-swiper .custom-arrow::before {
95        content: '';
96        display: block;
97        width: 10px;
98        height: 10px;
99        border-top: 1.5px solid #333;
100        border-right: 1.5px solid #333;
101        position: absolute;
102      }
103      .swiper-button-prev.custom-arrow {
104        left: -22px !important;
105      }
106      .swiper-button-prev.custom-arrow::before {
107        transform: rotate(-135deg);
108        left: 18px;
109      }
110      .swiper-button-next.custom-arrow {
111        right: -22px !important;
112      }
113      .swiper-button-next.custom-arrow::before {
114        transform: rotate(45deg);
115        right: 18px;
116      }
117      .common-item-swiper .custom-arrow:hover {
118        border-color: #000 !important;
119        background: #f9f9f9 !important;
120      }
121      .common-item-swiper .swiper-button-disabled {
122        opacity: 0 !important;
123        cursor: default;
124      }
125      @media (max-width: 767px) {
126        .relative.px-12 {
127          padding-left: 0 !important;
128          padding-right: 0 !important;
129        }
130        .common-item-swiper {
131          overflow: hidden !important;
132          padding-left: 15px !important;
133          padding-right: 15px !important;
134          padding-bottom: 50px !important;
135        }
136        .common-item-swiper .custom-arrow {
137          display: none !important;
138        }
139        .common-item-swiper .swiper-pagination-progressbar.swiper-pagination-horizontal {
140          bottom: 15px !important;
141          width: calc(100% - 40px) !important;
142          left: 20px !important;
143        }
144      }
145      /*
146        position: sticky の containing block 制約を回避するため、
147        sticky 要素を直接子に持つセクションラッパー div を display: contents にして、
148        スクロール文脈の祖先(body の直下 div)まで containing block を引き上げる。
149        ヘッダー固定表示などのために必要
150      */
151      body > div > div:has(> .sticky) {
152        display: contents;
153      }
154    </style>
155    <!-- Theme CSS Custom Properties -->
156    <style>
157      :root {
158        --theme-bg: #FFFFFF;
159        --theme-heading-size: 20px;
160        --theme-body-size: 12px;
161        --theme-text: #424242;
162        --theme-normal-button: #757575;
163        --theme-normal-button-text: #FFFFFF;
164        --theme-normal-button-border: 0 solid transparent;
165        --theme-cart-button: #1565C0;
166        --theme-cart-button-text: #FFFFFF;
167        --theme-cart-button-border: 0 solid transparent;
168        --theme-icon: #616161;
169        --theme-horizontal-padding: 16px;
170        --theme-border-radius: 8px;
171        --theme-product-card-bg: transparent;
172        --theme-product-card-border: 0 solid transparent;
173        --theme-product-card-shadow: none;
174        --theme-point-color: #EC407A;
175        --theme-anim-distance: 32px;
176        --theme-anim-duration: 700ms;
177        --theme-anim-easing: cubic-bezier(0.33, 1, 0.68, 1);
178        --theme-anim-image-duration: 300ms;
179      }
180
181      body {
182        background-color: var(--theme-bg);
183        font-size: var(--theme-body-size);
184        color: var(--theme-text);
185      }
186
187      /* U-KOMI の入力欄の文字色を黒に固定する */
188      .review-container input:not([type="submit"]):not([type="button"]):not([type="reset"]),
189      .review-container textarea {
190        color: #000;
191      }
192
193      .theme-heading {
194        font-size: var(--theme-heading-size);
195      }
196
197      .theme-container {
198        padding-left: var(--theme-horizontal-padding);
199        padding-right: var(--theme-horizontal-padding);
200      }
201
202      .theme-rounded {
203        border-radius: var(--theme-border-radius);
204      }
205
206      .theme-icon-color {
207        color: var(--theme-icon);
208      }
209
210      .theme-button-normal {
211        background-color: var(--theme-normal-button);
212        color: var(--theme-normal-button-text);
213        border: var(--theme-normal-button-border);
214      }
215
216      .theme-button-cart {
217        background-color: var(--theme-cart-button);
218        color: var(--theme-cart-button-text);
219        border: var(--theme-cart-button-border);
220      }
221
222      .theme-product-card {
223        background-color: var(--theme-product-card-bg);
224        border: var(--theme-product-card-border);
225        box-shadow: var(--theme-product-card-shadow);
226        border-radius: var(--theme-border-radius);
227      }
228
229      /*
230        スクロールイン。
231        JS が html に scroll-in-enabled を付けたときだけ隠す。こうしないと JavaScript 無効時に
232        コンテンツが永久に見えなくなる(opacity: 0 のまま解除されない)。
233      */
234      .scroll-in-enabled [data-scroll-in] {
235        opacity: 0;
236        transform: translateY(var(--theme-anim-distance));
237        transition:
238          opacity var(--theme-anim-duration) var(--theme-anim-easing),
239          transform var(--theme-anim-duration) var(--theme-anim-easing);
240      }
241
242      /* 完了状態は transform: none。translateY(0) を残すと position: fixed の containing block になる */
243      .scroll-in-enabled [data-scroll-in].is-visible {
244        opacity: 1;
245        transform: none;
246      }
247
248      /* 読み込み時点で画面内にあるセクション用。LCP を落とさないようアニメーションさせず即表示する */
249      .scroll-in-enabled [data-scroll-in].is-instant {
250        transition: none;
251      }
252
253      @media (prefers-reduced-motion: reduce) {
254        .scroll-in-enabled [data-scroll-in] {
255          opacity: 1;
256          transform: none;
257          transition: none;
258        }
259      }
260
261      /*
262        画像の遅延読み込みフェード。
263        JS が読み込み完了を検知して is-loaded を付けるまで透明にする。門番クラスの配下だけに
264        効かせるので、JavaScript 無効なら画像は最初から見える。
265        読み込みに失敗した場合は is-loaded が付かず、透明のままになる。プレースホルダの単色は
266        画像自身ではなく枠側に持たせる(opacity: 0 は自身の背景色ごと透明にするため)。
267      */
268      .img-fade-enabled img[data-img-fade] {
269        opacity: 0;
270      }
271
272      /*
273        transition ではなく animation でフェードさせる。transition ショートハンドはこのセレクタの
274        詳細度が Tailwind ユーティリティより高く、商品カードや関連商品の transition-transform を
275        opacity だけに上書きしてしまい、ホバー拡大がアニメーションしなくなる。
276      */
277      .img-fade-enabled img[data-img-fade].is-loaded {
278        opacity: 1;
279        animation: img-fade-in var(--theme-anim-image-duration) ease;
280      }
281
282      @keyframes img-fade-in {
283        from {
284          opacity: 0;
285        }
286      }
287
288      @media (prefers-reduced-motion: reduce) {
289        .img-fade-enabled img[data-img-fade] {
290          opacity: 1;
291          animation: none;
292        }
293      }
294
295      /*
296        上部へ戻る追従ボタン(全ページ共通・#37283)。
297        Tailwind ユーティリティではなく手書き CSS にしているのは、JS でクラス名を組み立てる形にすると
298        補間付きの arbitrary value が本番のスキャンで拾われないため(text-typing.js が踏んでいた罠)。
299
300        --back-to-top-offset は #37284(商品詳細の追従カートボタン=画面下端)と重なったときに
301        ボタンを持ち上げるための余地。既定は 0 で、干渉する画面側から上書きする想定。
302      */
303      .back-to-top {
304        --back-to-top-offset: 0px;
305        position: fixed;
306        right: 16px;
307        bottom: calc(16px + env(safe-area-inset-bottom, 0px) + var(--back-to-top-offset));
308        z-index: 40;
309        display: none;
310        align-items: center;
311        justify-content: center;
312        width: 44px;
313        height: 44px;
314        padding: 0;
315        border-radius: 9999px;
316        background-color: var(--theme-normal-button);
317        color: var(--theme-normal-button-text);
318        border: var(--theme-normal-button-border);
319        box-shadow: 0 2px 8px 0 rgba(0, 0, 0, 0.15);
320        cursor: pointer;
321      }
322
323      @media (min-width: 768px) {
324        .back-to-top {
325          right: 24px;
326          bottom: calc(24px + env(safe-area-inset-bottom, 0px) + var(--back-to-top-offset));
327        }
328      }
329
330      .back-to-top.is-shown {
331        display: inline-flex;
332      }
333    </style>
334
335    
335<script>
336      document.documentElement.classList.add('scroll-in-enabled', 'img-fade-enabled');
337      // scroll-effect.js が common.js に含まれなかった場合の保険。
338      // 隠したまま解除されない事故を防ぐため、読み込み完了時に未初期化なら門番クラスを外す。
339      window.addEventListener('load', function () {
340        if (!window.__scrollInReady) {
341          document.documentElement.classList.remove('scroll-in-enabled', 'img-fade-enabled');
342        }
343      });
344    </script>
344
345
346    <link rel="stylesheet" href="/view/asset/user-99999-1-3-e28c56d41a2ea8db7fd1d51327966b0f.css">
347  </head>
348
349
350  <body x-data class="font-sans">
351    
352
353    <div class="flex flex-col min-h-screen" style="min-height: 100dvh;">
354      <!-- nocode:module:header -->
355        <div >
356          <header
357            class="bg-[#FFFFFF] text-[#424242] shadow-md sticky top-0 z-50"
358            x-data="{
359              searchOpen: false,
360              logoIsCenter: false,
361              navOverflow: false,
362              init() {
363                this.$nextTick(() => this.measureNavOverflow());
364                window.addEventListener('load', () => this.measureNavOverflow());
365                const ro = new ResizeObserver(() => this.measureNavOverflow());
366                ro.observe(document.body);
367              },
368              measureNavOverflow() {
369                // 中央配置は常に 2 行レイアウト(CSS 側で完結)
370                if (this.logoIsCenter) return;
371                // モバイル(< md)は nav 非表示のため 1 行扱い
372                if (window.innerWidth < 768) {
373                  this.navOverflow = false;
374                  return;
375                }
376                const row = this.$refs.headerRow;
377                const logo = this.$refs.headerLogo;
378                const nav = this.$refs.headerNav;
379                const icons = this.$refs.headerIcons;
380                if (!row || !logo || !nav || !icons) return;
381                // 子要素の自然幅を合計して nav とアイコン群の真の必要幅を求める
382                const sumChildren = (parent, gapPx) => {
383                  let total = 0;
384                  let count = 0;
385                  for (const child of parent.children) {
386                    const w = child.offsetWidth;
387                    if (w > 0) { total += w; count++; }
388                  }
389                  if (count > 1) total += (count - 1) * gapPx;
390                  return total;
391                };
392                const navWidth = sumChildren(nav, 32);   // gap-x-8 = 32px
393                const iconsWidth = sumChildren(icons, 20); // space-x-5 = 20px
394                const minGap = 32; // logo&#8596;nav, nav&#8596;icons の最小余白
395                const required = logo.offsetWidth + navWidth + iconsWidth + minGap * 2;
396                this.navOverflow = required > row.clientWidth;
397              }
398            }"
399            @keydown.escape.window="searchOpen = false"
400          >
401            <div class="container mx-auto px-4 max-w-[1240px]">
402              <span class="hidden !order-4 md:!min-h-16" aria-hidden="true"></span>
403              <div
404                x-ref="headerRow"
405                class="flex items-center min-h-16 justify-between md:min-h-24"
406                :class="navOverflow ? 'flex-wrap md:pt-3 md:!min-h-16' : ''"
407              >
408                <div
409                  x-ref="headerLogo"
410                  class="flex-shrink-0 order-1"
411                >
412                  <a href="/" class="block">
413                                        <img
414                      src="https://shop14-makeshop.akamaized.net/shopimages/animd/logo.png"
415                      alt="【公式】BUBU STORE |ブブストアロゴ"
416                      class="h-8 md:h-12 w-auto object-contain"
417                    >
418                                      </a>
419                </div>
420
421                <nav
422                  x-ref="headerNav"
423                  class="hidden md:flex flex-wrap items-center gap-x-8 gap-y-2 text-[14px] font-bold tracking-widest uppercase order-2"
424                  :class="navOverflow ? '!order-4 md:w-full md:justify-center md:pt-2 md:pb-3' : ''"
425                >
426                                        <div
427                      x-data="{ open: false }"
428                      class="relative whitespace-nowrap"
429                      @mouseenter="open = true"
430                      @mouseleave="open = false"
431                      @keydown.escape.window="open = false"
432                    >
433                      <button
434                        type="button"
435                        class="hover:opacity-60 transition-opacity flex items-center gap-1"
436                        @click="open = !open"
437                        :aria-expanded="open"
438                        aria-haspopup="true"
439                      >
440                        カテゴリから選ぶ
441                        <i class="fi fi-rr-angle-small-down text-xs transition-transform" :class="open ? 'rotate-180' : ''"></i>
442                      </button>
443                      <div
444                        x-show="open"
445                        @click.outside="open = false"
446                        x-transition:enter="transition ease-out duration-150"
447                        x-transition:enter-start="opacity-0 translate-y-1"
448                        x-transition:enter-end="opacity-100 translate-y-0"
449                        x-transition:leave="transition ease-in duration-100"
450                        x-transition:leave-start="opacity-100 translate-y-0"
451                        x-transition:leave-end="opacity-0 translate-y-1"
452                        class="absolute top-full left-0 mt-2 bg-white text-[#333] rounded-lg shadow-xl min-w-[200px] py-2 z-50"
453                        role="menu"
454                        x-cloak
455                      >
456                                                <div class="group">
457                          <a
458                            href="/view/category/ct140"
459                            class="block px-4 py-2 text-xs font-semibold hover:bg-black/5 transition-colors normal-case tracking-normal"
460                            role="menuitem"
461                          >
462                            ビューティー
463                          </a>
464                                                    <div class="pl-4">
465                                                        <a
466                              href="/view/category/ct141"
467                              class="block px-4 py-1.5 text-[10px] opacity-80 hover:opacity-100 hover:bg-black/5 transition-[opacity,background-color] normal-case tracking-normal"
468                              role="menuitem"
469                            >
470                              ヘアケア
471                            </a>
472                                                        <a
473                              href="/view/category/ct160"
474                              class="block px-4 py-1.5 text-[10px] opacity-80 hover:opacity-100 hover:bg-black/5 transition-[opacity,background-color] normal-case tracking-normal"
475                              role="menuitem"
476                            >
477                              ヘアメイク
478                            </a>
479                                                        <a
480                              href="/view/category/ct162"
481                              class="block px-4 py-1.5 text-[10px] opacity-80 hover:opacity-100 hover:bg-black/5 transition-[opacity,background-color] normal-case tracking-normal"
482                              role="menuitem"
483                            >
484                              スタイリング剤
485                            </a>
486                                                        <a
487                              href="/view/category/ct181"
488                              class="block px-4 py-1.5 text-[10px] opacity-80 hover:opacity-100 hover:bg-black/5 transition-[opacity,background-color] normal-case tracking-normal"
489                              role="menuitem"
490                            >
491                              スキンケア
492                            </a>
493                                                        <a
494                              href="/view/category/ct195"
495                              class="block px-4 py-1.5 text-[10px] opacity-80 hover:opacity-100 hover:bg-black/5 transition-[opacity,background-color] normal-case tracking-normal"
496                              role="menuitem"
497                            >
498                              ボディケア
499                            </a>
500                                                        <a
501                              href="/view/category/ct306"
502                              class="block px-4 py-1.5 text-[10px] opacity-80 hover:opacity-100 hover:bg-black/5 transition-[opacity,background-color] normal-case tracking-normal"
503                              role="menuitem"
504                            >
505                              美容家電・器具
506                            </a>
507                                                        <a
508                              href="/view/category/ct314"
509                              class="block px-4 py-1.5 text-[10px] opacity-80 hover:opacity-100 hover:bg-black/5 transition-[opacity,background-color] normal-case tracking-normal"
510                              role="menuitem"
511                            >
512                              プロ美容用品
513                            </a>
514                                                        <a
515                              href="/view/category/ct315"
516                              class="block px-4 py-1.5 text-[10px] opacity-80 hover:opacity-100 hover:bg-black/5 transition-[opacity,background-color] normal-case tracking-normal"
517                              role="menuitem"
518                            >
519                              健康食品
520                            </a>
521                                                        <a
522                              href="/view/category/ct316"
523                              class="block px-4 py-1.5 text-[10px] opacity-80 hover:opacity-100 hover:bg-black/5 transition-[opacity,background-color] normal-case tracking-normal"
524                              role="menuitem"
525                            >
526                              コスメティック・香水
527                            </a>
528                                                        <a
529                              href="/view/category/I210546"
530                              class="block px-4 py-1.5 text-[10px] opacity-80 hover:opacity-100 hover:bg-black/5 transition-[opacity,background-color] normal-case tracking-normal"
531                              role="menuitem"
532                            >
533                              男性用(メンズ)
534                            </a>
535                                                        <a
536                              href="/view/category/I224307"
537                              class="block px-4 py-1.5 text-[10px] opacity-80 hover:opacity-100 hover:bg-black/5 transition-[opacity,background-color] normal-case tracking-normal"
538                              role="menuitem"
539                            >
540                              メイク用品・香水
541                            </a>
542                                                        <a
543                              href="/view/category/I234815"
544                              class="block px-4 py-1.5 text-[10px] opacity-80 hover:opacity-100 hover:bg-black/5 transition-[opacity,background-color] normal-case tracking-normal"
545                              role="menuitem"
546                            >
547                              【特集】髪質改善・ダメージケア
548                            </a>
549                                                        <a
550                              href="/view/category/I241028"
551                              class="block px-4 py-1.5 text-[10px] opacity-80 hover:opacity-100 hover:bg-black/5 transition-[opacity,background-color] normal-case tracking-normal"
552                              role="menuitem"
553                            >
554                              歯ブラシ・オーラルケア
555                            </a>
556                                                      </div>
557                                                  </div>
558                                                <div class="group">
559                          <a
560                            href="/view/category/ct247"
561                            class="block px-4 py-2 text-xs font-semibold hover:bg-black/5 transition-colors normal-case tracking-normal"
562                            role="menuitem"
563                          >
564                            生活雑貨
565                          </a>
566                                                    <div class="pl-4">
567                                                        <a
568                              href="/view/category/ct248"
569                              class="block px-4 py-1.5 text-[10px] opacity-80 hover:opacity-100 hover:bg-black/5 transition-[opacity,background-color] normal-case tracking-normal"
570                              role="menuitem"
571                            >
572                              便利グッズ
573                            </a>
574                                                        <a
575                              href="/view/category/ct249"
576                              class="block px-4 py-1.5 text-[10px] opacity-80 hover:opacity-100 hover:bg-black/5 transition-[opacity,background-color] normal-case tracking-normal"
577                              role="menuitem"
578                            >
579                              キッズ・ベビー
580                            </a>
581                                                        <a
582                              href="/view/category/ct258"
583                              class="block px-4 py-1.5 text-[10px] opacity-80 hover:opacity-100 hover:bg-black/5 transition-[opacity,background-color] normal-case tracking-normal"
584                              role="menuitem"
585                            >
586                              インテリア雑貨
587                            </a>
588                                                        <a
589                              href="/view/category/ct348"
590                              class="block px-4 py-1.5 text-[10px] opacity-80 hover:opacity-100 hover:bg-black/5 transition-[opacity,background-color] normal-case tracking-normal"
591                              role="menuitem"
592                            >
593                              キッチン
594                            </a>
595                                                        <a
596                              href="/view/category/ct349"
597                              class="block px-4 py-1.5 text-[10px] opacity-80 hover:opacity-100 hover:bg-black/5 transition-[opacity,background-color] normal-case tracking-normal"
598                              role="menuitem"
599                            >
600                              バスグッズ
601                            </a>
602                                                        <a
603                              href="/view/category/ct350"
604                              class="block px-4 py-1.5 text-[10px] opacity-80 hover:opacity-100 hover:bg-black/5 transition-[opacity,background-color] normal-case tracking-normal"
605                              role="menuitem"
606                            >
607                              洗濯
608                            </a>
609                                                        <a
610                              href="/view/category/ct351"
611                              class="block px-4 py-1.5 text-[10px] opacity-80 hover:opacity-100 hover:bg-black/5 transition-[opacity,background-color] normal-case tracking-normal"
612                              role="menuitem"
613                            >
614                              掃除
615                            </a>
616                                                        <a
617                              href="/view/category/ct352"
618                              class="block px-4 py-1.5 text-[10px] opacity-80 hover:opacity-100 hover:bg-black/5 transition-[opacity,background-color] normal-case tracking-normal"
619                              role="menuitem"
620                            >
621                              フード
622                            </a>
623                                                        <a
624                              href="/view/category/ct353"
625                              class="block px-4 py-1.5 text-[10px] opacity-80 hover:opacity-100 hover:bg-black/5 transition-[opacity,background-color] normal-case tracking-normal"
626                              role="menuitem"
627                            >
628                              収納
629                            </a>
630                                                        <a
631                              href="/view/category/ct354"
632                              class="block px-4 py-1.5 text-[10px] opacity-80 hover:opacity-100 hover:bg-black/5 transition-[opacity,background-color] normal-case tracking-normal"
633                              role="menuitem"
634                            >
635                              傘
636                            </a>
637                                                        <a
638                              href="/view/category/ct355"
639                              class="block px-4 py-1.5 text-[10px] opacity-80 hover:opacity-100 hover:bg-black/5 transition-[opacity,background-color] normal-case tracking-normal"
640                              role="menuitem"
641                            >
642                              アウトドア
643                            </a>
644                                                        <a
645                              href="/view/category/ct356"
646                              class="block px-4 py-1.5 text-[10px] opacity-80 hover:opacity-100 hover:bg-black/5 transition-[opacity,background-color] normal-case tracking-normal"
647                              role="menuitem"
648                            >
649                              寝具
650                            </a>
651                                                        <a
652                              href="/view/category/ct357"
653                              class="block px-4 py-1.5 text-[10px] opacity-80 hover:opacity-100 hover:bg-black/5 transition-[opacity,background-color] normal-case tracking-normal"
654                              role="menuitem"
655                            >
656                              衛生日用品
657                            </a>
658                                                        <a
659                              href="/view/category/I210467"
660                              class="block px-4 py-1.5 text-[10px] opacity-80 hover:opacity-100 hover:bg-black/5 transition-[opacity,background-color] normal-case tracking-normal"
661                              role="menuitem"
662                            >
663                              超便利グッズ
664                            </a>
665                                                        <a
666                              href="/view/category/I210507"
667                              class="block px-4 py-1.5 text-[10px] opacity-80 hover:opacity-100 hover:bg-black/5 transition-[opacity,background-color] normal-case tracking-normal"
668                              role="menuitem"
669                            >
670                              キッチン(調理器具・食器・お箸)
671                            </a>
672                                                        <a
673                              href="/view/category/I210508"
674                              class="block px-4 py-1.5 text-[10px] opacity-80 hover:opacity-100 hover:bg-black/5 transition-[opacity,background-color] normal-case tracking-normal"
675                              role="menuitem"
676                            >
677                              食品
678                            </a>
679                                                        <a
680                              href="/view/category/I210618"
681                              class="block px-4 py-1.5 text-[10px] opacity-80 hover:opacity-100 hover:bg-black/5 transition-[opacity,background-color] normal-case tracking-normal"
682                              role="menuitem"
683                            >
684                              健康グッズ
685                            </a>
686                                                      </div>
687                                                  </div>
688                                                <div class="group">
689                          <a
690                            href="/view/category/ct263"
691                            class="block px-4 py-2 text-xs font-semibold hover:bg-black/5 transition-colors normal-case tracking-normal"
692                            role="menuitem"
693                          >
694                            ファッション
695                          </a>
696                                                    <div class="pl-4">
697                                                        <a
698                              href="/view/category/ct264"
699                              class="block px-4 py-1.5 text-[10px] opacity-80 hover:opacity-100 hover:bg-black/5 transition-[opacity,background-color] normal-case tracking-normal"
700                              role="menuitem"
701                            >
702                              トップス
703                            </a>
704                                                        <a
705                              href="/view/category/ct265"
706                              class="block px-4 py-1.5 text-[10px] opacity-80 hover:opacity-100 hover:bg-black/5 transition-[opacity,background-color] normal-case tracking-normal"
707                              role="menuitem"
708                            >
709                              ワンピース
710                            </a>
711                                                        <a
712                              href="/view/category/ct266"
713                              class="block px-4 py-1.5 text-[10px] opacity-80 hover:opacity-100 hover:bg-black/5 transition-[opacity,background-color] normal-case tracking-normal"
714                              role="menuitem"
715                            >
716                              アウター・コート
717                            </a>
718                                                        <a
719                              href="/view/category/ct267"
720                              class="block px-4 py-1.5 text-[10px] opacity-80 hover:opacity-100 hover:bg-black/5 transition-[opacity,background-color] normal-case tracking-normal"
721                              role="menuitem"
722                            >
723                              ボトムス
724                            </a>
725                                                        <a
726                              href="/view/category/ct268"
727                              class="block px-4 py-1.5 text-[10px] opacity-80 hover:opacity-100 hover:bg-black/5 transition-[opacity,background-color] normal-case tracking-normal"
728                              role="menuitem"
729                            >
730                              シューズ・ブーツ
731                            </a>
732                                                        <a
733                              href="/view/category/ct269"
734                              class="block px-4 py-1.5 text-[10px] opacity-80 hover:opacity-100 hover:bg-black/5 transition-[opacity,background-color] normal-case tracking-normal"
735                              role="menuitem"
736                            >
737                              バッグ
738                            </a>
739                                                        <a
740                              href="/view/category/ct270"
741                              class="block px-4 py-1.5 text-[10px] opacity-80 hover:opacity-100 hover:bg-black/5 transition-[opacity,background-color] normal-case tracking-normal"
742                              role="menuitem"
743                            >
744                              ファッション小物
745                            </a>
746                                                        <a
747                              href="/view/category/ct365"
748                              class="block px-4 py-1.5 text-[10px] opacity-80 hover:opacity-100 hover:bg-black/5 transition-[opacity,background-color] normal-case tracking-normal"
749                              role="menuitem"
750                            >
751                              アクセサリー
752                            </a>
753                                                        <a
754                              href="/view/category/ct366"
755                              class="block px-4 py-1.5 text-[10px] opacity-80 hover:opacity-100 hover:bg-black/5 transition-[opacity,background-color] normal-case tracking-normal"
756                              role="menuitem"
757                            >
758                              BUBU SELECT
759                            </a>
760                                                        <a
761                              href="/view/category/I210581"
762                              class="block px-4 py-1.5 text-[10px] opacity-80 hover:opacity-100 hover:bg-black/5 transition-[opacity,background-color] normal-case tracking-normal"
763                              role="menuitem"
764                            >
765                              お財布
766                            </a>
767                                                        <a
768                              href="/view/category/I210611"
769                              class="block px-4 py-1.5 text-[10px] opacity-80 hover:opacity-100 hover:bg-black/5 transition-[opacity,background-color] normal-case tracking-normal"
770                              role="menuitem"
771                            >
772                              シューズ・サンダル
773                            </a>
774                                                        <a
775                              href="/view/category/I210638"
776                              class="block px-4 py-1.5 text-[10px] opacity-80 hover:opacity-100 hover:bg-black/5 transition-[opacity,background-color] normal-case tracking-normal"
777                              role="menuitem"
778                            >
779                              ボトムス(パンツ・スカート)
780                            </a>
781                                                      </div>
782                                                  </div>
783                                                <div class="group">
784                          <a
785                            href="/view/category/ct132"
786                            class="block px-4 py-2 text-xs font-semibold hover:bg-black/5 transition-colors normal-case tracking-normal"
787                            role="menuitem"
788                          >
789                            ブランド別検索
790                          </a>
791                                                    <div class="pl-4">
792                                                        <a
793                              href="/view/category/ct368"
794                              class="block px-4 py-1.5 text-[10px] opacity-80 hover:opacity-100 hover:bg-black/5 transition-[opacity,background-color] normal-case tracking-normal"
795                              role="menuitem"
796                            >
797                              ブランド名:ア行
798                            </a>
799                                                        <a
800                              href="/view/category/ct369"
801                              class="block px-4 py-1.5 text-[10px] opacity-80 hover:opacity-100 hover:bg-black/5 transition-[opacity,background-color] normal-case tracking-normal"
802                              role="menuitem"
803                            >
804                              ブランド名:カ行
805                            </a>
806                                                        <a
807                              href="/view/category/ct370"
808                              class="block px-4 py-1.5 text-[10px] opacity-80 hover:opacity-100 hover:bg-black/5 transition-[opacity,background-color] normal-case tracking-normal"
809                              role="menuitem"
810                            >
811                              ブランド名:サ行
812                            </a>
813                                                        <a
814                              href="/view/category/ct371"
815                              class="block px-4 py-1.5 text-[10px] opacity-80 hover:opacity-100 hover:bg-black/5 transition-[opacity,background-color] normal-case tracking-normal"
816                              role="menuitem"
817                            >
818                              ブランド名:タ行
819                            </a>
820                                                        <a
821                              href="/view/category/ct372"
822                              class="block px-4 py-1.5 text-[10px] opacity-80 hover:opacity-100 hover:bg-black/5 transition-[opacity,background-color] normal-case tracking-normal"
823                              role="menuitem"
824                            >
825                              ブランド名:ナ行
826                            </a>
827                                                        <a
828                              href="/view/category/ct373"
829                              class="block px-4 py-1.5 text-[10px] opacity-80 hover:opacity-100 hover:bg-black/5 transition-[opacity,background-color] normal-case tracking-normal"
830                              role="menuitem"
831                            >
832                              ブランド名:ハ行
833                            </a>
834                                                        <a
835                              href="/view/category/ct374"
836                              class="block px-4 py-1.5 text-[10px] opacity-80 hover:opacity-100 hover:bg-black/5 transition-[opacity,background-color] normal-case tracking-normal"
837                              role="menuitem"
838                            >
839                              ブランド名:マ行
840                            </a>
841                                                        <a
842                              href="/view/category/ct375"
843                              class="block px-4 py-1.5 text-[10px] opacity-80 hover:opacity-100 hover:bg-black/5 transition-[opacity,background-color] normal-case tracking-normal"
844                              role="menuitem"
845                            >
846                              ブランド名:ヤ行
847                            </a>
848                                                        <a
849                              href="/view/category/ct376"
850                              class="block px-4 py-1.5 text-[10px] opacity-80 hover:opacity-100 hover:bg-black/5 transition-[opacity,background-color] normal-case tracking-normal"
851                              role="menuitem"
852                            >
853                              ブランド名:ラ行
854                            </a>
855                                                        <a
856                              href="/view/category/ct377"
857                              class="block px-4 py-1.5 text-[10px] opacity-80 hover:opacity-100 hover:bg-black/5 transition-[opacity,background-color] normal-case tracking-normal"
858                              role="menuitem"
859                            >
860                              ブランド名:ワ行
861                            </a>
862                                                        <a
863                              href="/view/category/ct378"
864                              class="block px-4 py-1.5 text-[10px] opacity-80 hover:opacity-100 hover:bg-black/5 transition-[opacity,background-color] normal-case tracking-normal"
865                              role="menuitem"
866                            >
867                              ブランド名:その他
868                            </a>
869                                                      </div>
870                                                  </div>
871                                                <div class="group">
872                          <a
873                            href="/view/category/I210459"
874                            class="block px-4 py-2 text-xs font-semibold hover:bg-black/5 transition-colors normal-case tracking-normal"
875                            role="menuitem"
876                          >
877                            イベント
878                          </a>
879                                                    <div class="pl-4">
880                                                        <a
881                              href="/view/category/I210460"
882                              class="block px-4 py-1.5 text-[10px] opacity-80 hover:opacity-100 hover:bg-black/5 transition-[opacity,background-color] normal-case tracking-normal"
883                              role="menuitem"
884                            >
885                              クーポン特設会場
886                            </a>
887                                                        <a
888                              href="/view/category/I210461"
889                              class="block px-4 py-1.5 text-[10px] opacity-80 hover:opacity-100 hover:bg-black/5 transition-[opacity,background-color] normal-case tracking-normal"
890                              role="menuitem"
891                            >
892                              UV・熱中症対策特集
893                            </a>
894                                                        <a
895                              href="/view/category/I210486"
896                              class="block px-4 py-1.5 text-[10px] opacity-80 hover:opacity-100 hover:bg-black/5 transition-[opacity,background-color] normal-case tracking-normal"
897                              role="menuitem"
898                            >
899                              朝の時短アイテム特集
900                            </a>
901                                                        <a
902                              href="/view/category/I210505"
903                              class="block px-4 py-1.5 text-[10px] opacity-80 hover:opacity-100 hover:bg-black/5 transition-[opacity,background-color] normal-case tracking-normal"
904                              role="menuitem"
905                            >
906                              ハンドクリーム特集
907                            </a>
908                                                        <a
909                              href="/view/category/I210510"
910                              class="block px-4 py-1.5 text-[10px] opacity-80 hover:opacity-100 hover:bg-black/5 transition-[opacity,background-color] normal-case tracking-normal"
911                              role="menuitem"
912                            >
913                              クリスマスギフト
914                            </a>
915                                                        <a
916                              href="/view/category/I210522"
917                              class="block px-4 py-1.5 text-[10px] opacity-80 hover:opacity-100 hover:bg-black/5 transition-[opacity,background-color] normal-case tracking-normal"
918                              role="menuitem"
919                            >
920                              年末大掃除特集
921                            </a>
922                                                        <a
923                              href="/view/category/I210553"
924                              class="block px-4 py-1.5 text-[10px] opacity-80 hover:opacity-100 hover:bg-black/5 transition-[opacity,background-color] normal-case tracking-normal"
925                              role="menuitem"
926                            >
927                              ゲリラクーポン会場
928                            </a>
929                                                        <a
930                              href="/view/category/I210560"
931                              class="block px-4 py-1.5 text-[10px] opacity-80 hover:opacity-100 hover:bg-black/5 transition-[opacity,background-color] normal-case tracking-normal"
932                              role="menuitem"
933                            >
934                              サウナで使えるおすすめアイテム
935                            </a>
936                                                        <a
937                              href="/view/category/I210567"
938                              class="block px-4 py-1.5 text-[10px] opacity-80 hover:opacity-100 hover:bg-black/5 transition-[opacity,background-color] normal-case tracking-normal"
939                              role="menuitem"
940                            >
941                              バレンタイン特集
942                            </a>
943                                                        <a
944                              href="/view/category/I210575"
945                              class="block px-4 py-1.5 text-[10px] opacity-80 hover:opacity-100 hover:bg-black/5 transition-[opacity,background-color] normal-case tracking-normal"
946                              role="menuitem"
947                            >
948                              在庫限りのお買い得商品!
949                            </a>
950                                                        <a
951                              href="/view/category/I210608"
952                              class="block px-4 py-1.5 text-[10px] opacity-80 hover:opacity-100 hover:bg-black/5 transition-[opacity,background-color] normal-case tracking-normal"
953                              role="menuitem"
954                            >
955                              クーポン配布中!夏フェスタ!
956                            </a>
957                                                        <a
958                              href="/view/category/I210678"
959                              class="block px-4 py-1.5 text-[10px] opacity-80 hover:opacity-100 hover:bg-black/5 transition-[opacity,background-color] normal-case tracking-normal"
960                              role="menuitem"
961                            >
962                              全額キャッシュバックキャンペーン
963                            </a>
964                                                        <a
965                              href="/view/category/I210719"
966                              class="block px-4 py-1.5 text-[10px] opacity-80 hover:opacity-100 hover:bg-black/5 transition-[opacity,background-color] normal-case tracking-normal"
967                              role="menuitem"
968                            >
969                              ホワイトデー特集
970                            </a>
971                                                        <a
972                              href="/view/category/I224311"
973                              class="block px-4 py-1.5 text-[10px] opacity-80 hover:opacity-100 hover:bg-black/5 transition-[opacity,background-color] normal-case tracking-normal"
974                              role="menuitem"
975                            >
976                              便利な掃除アイテム特集
977                            </a>
978                                                        <a
979                              href="/view/category/I224312"
980                              class="block px-4 py-1.5 text-[10px] opacity-80 hover:opacity-100 hover:bg-black/5 transition-[opacity,background-color] normal-case tracking-normal"
981                              role="menuitem"
982                            >
983                              I LOVE Miffyフェア
984                            </a>
985                                                        <a
986                              href="/view/category/I224313"
987                              class="block px-4 py-1.5 text-[10px] opacity-80 hover:opacity-100 hover:bg-black/5 transition-[opacity,background-color] normal-case tracking-normal"
988                              role="menuitem"
989                            >
990                              春財布★2024★
991                            </a>
992                                                        <a
993                              href="/view/category/I234816"
994                              class="block px-4 py-1.5 text-[10px] opacity-80 hover:opacity-100 hover:bg-black/5 transition-[opacity,background-color] normal-case tracking-normal"
995                              role="menuitem"
996                            >
997                              春財布★2025★
998                            </a>
999                                                        <a
1000                              href="/view/category/I234817"
1001                              class="block px-4 py-1.5 text-[10px] opacity-80 hover:opacity-100 hover:bg-black/5 transition-[opacity,background-color] normal-case tracking-normal"
1002                              role="menuitem"
1003                            >
1004                              2025年初売り!特設会場
1005                            </a>
1006                                                        <a
1007                              href="/view/category/I241029"
1008                              class="block px-4 py-1.5 text-[10px] opacity-80 hover:opacity-100 hover:bg-black/5 transition-[opacity,background-color] normal-case tracking-normal"
1009                              role="menuitem"
1010                            >
1011                              2026春の超お得クーポン!
1012                            </a>
1013                                                        <a
1014                              href="/view/category/I241020"
1015                              class="block px-4 py-1.5 text-[10px] opacity-80 hover:opacity-100 hover:bg-black/5 transition-[opacity,background-color] normal-case tracking-normal"
1016                              role="menuitem"
1017                            >
1018                              夏アイテム特集
1019                            </a>
1020                                                        <a
1021                              href="/view/category/I241019"
1022                              class="block px-4 py-1.5 text-[10px] opacity-80 hover:opacity-100 hover:bg-black/5 transition-[opacity,background-color] normal-case tracking-normal"
1023                              role="menuitem"
1024                            >
1025                              【期間終了】2026年初売り!特設会場
1026                            </a>
1027                                                      </div>
1028                                                  </div>
1029                                                <div class="group">
1030                          <a
1031                            href="/view/category/I210503"
1032                            class="block px-4 py-2 text-xs font-semibold hover:bg-black/5 transition-colors normal-case tracking-normal"
1033                            role="menuitem"
1034                          >
1035                            ギフト商品
1036                          </a>
1037                                                    <div class="pl-4">
1038                                                        <a
1039                              href="/view/category/I210504"
1040                              class="block px-4 py-1.5 text-[10px] opacity-80 hover:opacity-100 hover:bg-black/5 transition-[opacity,background-color] normal-case tracking-normal"
1041                              role="menuitem"
1042                            >
1043                              美容・コスメ
1044                            </a>
1045                                                        <a
1046                              href="/view/category/I210509"
1047                              class="block px-4 py-1.5 text-[10px] opacity-80 hover:opacity-100 hover:bg-black/5 transition-[opacity,background-color] normal-case tracking-normal"
1048                              role="menuitem"
1049                            >
1050                              キッチン雑貨・食器
1051                            </a>
1052                                                        <a
1053                              href="/view/category/I210556"
1054                              class="block px-4 py-1.5 text-[10px] opacity-80 hover:opacity-100 hover:bg-black/5 transition-[opacity,background-color] normal-case tracking-normal"
1055                              role="menuitem"
1056                            >
1057                              花・ソープフラワー
1058                            </a>
1059                                                        <a
1060                              href="/view/category/I210617"
1061                              class="block px-4 py-1.5 text-[10px] opacity-80 hover:opacity-100 hover:bg-black/5 transition-[opacity,background-color] normal-case tracking-normal"
1062                              role="menuitem"
1063                            >
1064                              生活雑貨・アクセサリー
1065                            </a>
1066                                                      </div>
1067                                                  </div>
1068                                                <div class="group">
1069                          <a
1070                            href="/view/category/I210527"
1071                            class="block px-4 py-2 text-xs font-semibold hover:bg-black/5 transition-colors normal-case tracking-normal"
1072                            role="menuitem"
1073                          >
1074                            ギフトラッピング
1075                          </a>
1076                                                  </div>
1077                                                <div class="group">
1078                          <a
1079                            href="/view/category/I210733"
1080                            class="block px-4 py-2 text-xs font-semibold hover:bg-black/5 transition-colors normal-case tracking-normal"
1081                            role="menuitem"
1082                          >
1083                            その他
1084                          </a>
1085                                                  </div>
1086                                                <div class="group">
1087                          <a
1088                            href="/view/category/I224310"
1089                            class="block px-4 py-2 text-xs font-semibold hover:bg-black/5 transition-colors normal-case tracking-normal"
1090                            role="menuitem"
1091                          >
1092                            食品・調味料
1093                          </a>
1094                                                  </div>
1095                                                <div class="group">
1096                          <a
1097                            href="/view/category/I224314"
1098                            class="block px-4 py-2 text-xs font-semibold hover:bg-black/5 transition-colors normal-case tracking-normal"
1099                            role="menuitem"
1100                          >
1101                            季節
1102                          </a>
1103                                                    <div class="pl-4">
1104                                                        <a
1105                              href="/view/category/I224315"
1106                              class="block px-4 py-1.5 text-[10px] opacity-80 hover:opacity-100 hover:bg-black/5 transition-[opacity,background-color] normal-case tracking-normal"
1107                              role="menuitem"
1108                            >
1109                              秋・冬
1110                            </a>
1111                                                        <a
1112                              href="/view/category/I241022"
1113                              class="block px-4 py-1.5 text-[10px] opacity-80 hover:opacity-100 hover:bg-black/5 transition-[opacity,background-color] normal-case tracking-normal"
1114                              role="menuitem"
1115                            >
1116                              春・夏
1117                            </a>
1118                                                      </div>
1119                                                  </div>
1120                                              </div>
1121                    </div>
1122                                        <a href="/view/guide" class="hover:opacity-60 transition-opacity whitespace-nowrap">ご利用ガイド</a>
1123                  <div class="flex items-center gap-x-2 whitespace-nowrap">
1124                                            <a href="/view/member/login" class="hover:opacity-60 transition-opacity">ログイン</a>
1125                                                                                  <sp
1125an class="opacity-50">/</span>
1126                                            <a href="/shop/idinfo.html" class="hover:opacity-60 transition-opacity">新規登録</a>
1127                                                            </div>
1128                </nav>
1129
1130                <div
1131                  x-ref="headerIcons"
1132                  class="flex items-center space-x-5 order-3 "
1133                  :class="navOverflow ? 'flex-1 justify-end' : ''"
1134                >
1135                  <button
1136                    type="button"
1137                    class="hover:opacity-60 transition-opacity"
1138                    aria-label="検索"
1139                    @click="searchOpen = !searchOpen"
1140                    :aria-expanded="searchOpen"
1141                    aria-controls="header-search-panel"
1142                  >
1143                    <i class="fi fi-rr-search text-lg" aria-hidden="true"></i>
1144                  </button>
1145
1146                  <div
1147                    x-data="
1148                      {
1149                        cartQuantity: 0,
1150                        updateCartQuantity(detail) {
1151                          if (!detail) return;
1152                          if (typeof detail.totalQuantity === 'number' && !isNaN(detail.totalQuantity)) {
1153                            this.cartQuantity = detail.totalQuantity;
1154                            return;
1155                          }
1156                          if (typeof detail.addedQuantity === 'number' && !isNaN(detail.addedQuantity)) {
1157                            this.cartQuantity = this.cartQuantity + detail.addedQuantity;
1158                          }
1159                        }
1160                      }
1161                    "
1162                    x-init="window.addEventListener('makeshop:cart-entry', (e) => updateCartQuantity(e.detail))"
1163                    class="relative"
1164                  >
1165                    <a
1166                      href="/view/cart"
1167                      class="relative hover:opacity-60 transition-opacity block"
1168                      :aria-label="cartQuantity > 0 ? 'カート ' + cartQuantity + '件' : 'カート'"
1169                    >
1170                      <i class="fi fi-rr-shopping-cart text-lg" aria-hidden="true"></i>
1171                      <span
1172                        class="absolute -top-2 -right-2 bg-[#000000] text-white text-[9px] font-bold rounded-full h-4 w-4 flex items-center justify-center"
1173                        x-show="cartQuantity > 0"
1174                        x-text="cartQuantity"
1175                        aria-hidden="true"
1176                        x-cloak
1177                      ></span>
1178                    </a>
1179                  </div>
1180
1181                  <div x-data="{ menuOpen: false }" class="md:hidden">
1182                    <button
1183                      type="button"
1184                      class="hover:opacity-60"
1185                      @click="menuOpen = true"
1186                      :aria-expanded="menuOpen"
1187                      aria-controls="mobile-menu-drawer"
1188                      aria-label="メニューを開く"
1189                    >
1190                      <i class="fi fi-rr-menu-burger text-xl" aria-hidden="true"></i>
1191                    </button>
1192
1193                    <div
1194                      x-show="menuOpen"
1195                      @click="menuOpen = false"
1196                      @keydown.escape.window="menuOpen = false"
1197                      x-transition:enter="transition ease-out duration-200"
1198                      x-transition:enter-start="opacity-0"
1199                      x-transition:enter-end="opacity-100"
1200                      x-transition:leave="transition ease-in duration-150"
1201                      x-transition:leave-start="opacity-100"
1202                      x-transition:leave-end="opacity-0"
1203                      class="fixed inset-0 bg-black/50 z-[60]"
1204                      aria-hidden="true"
1205                      x-cloak
1206                    ></div>
1207
1208                    <aside
1209                      id="mobile-menu-drawer"
1210                      x-show="menuOpen"
1211                      x-transition:enter="transition ease-out duration-200"
1212                      x-transition:enter-start="translate-x-full"
1213                      x-transition:enter-end="translate-x-0"
1214                      x-transition:leave="transition ease-in duration-150"
1215                      x-transition:leave-start="translate-x-0"
1216                      x-transition:leave-end="translate-x-full"
1217                      class="fixed top-0 right-0 h-full w-72 max-w-[80%] bg-[#FFFFFF] text-[#424242] shadow-xl z-[60] flex flex-col overflow-y-auto"
1218                      role="dialog"
1219                      aria-modal="true"
1220                      aria-label="メニュー"
1221                      x-cloak
1222                    >
1223                      <div class="flex justify-end p-4">
1224                        <button
1225                          type="button"
1226                          class="hover:opacity-60"
1227                          @click="menuOpen = false"
1228                          aria-label="メニューを閉じる"
1229                        >
1230                          <i class="fi fi-rr-cross text-xl" aria-hidden="true"></i>
1231                        </button>
1232                      </div>
1233
1234                      <nav
1235                        class="flex flex-col px-6 pb-6 space-y-4 text-[14px] font-bold tracking-widest uppercase"
1236                        aria-label="モバイルメニュー"
1237                      >
1238                                                    <div x-data="{ subOpen: false }">
1239                            <button
1240                              type="button"
1241                              class="w-full flex items-center justify-between hover:opacity-60 transition-opacity"
1242                              @click="subOpen = !subOpen"
1243                              :aria-expanded="subOpen"
1244                              aria-haspopup="true"
1245                            >
1246                              <span>カテゴリから選ぶ</span>
1247                              <i
1248                                class="fi fi-rr-angle-small-down text-xs transition-transform"
1249                                :class="subOpen ? 'rotate-180' : ''"
1250                                aria-hidden="true"
1251                              ></i>
1252                            </button>
1253                            <div x-show="subOpen" class="mt-2 pl-4 space-y-2" x-cloak>
1254                                                            <div>
1255                                <a
1256                                  href="/view/category/ct140"
1257                                  class="block py-1 text-xs font-semibold normal-case tracking-normal hover:opacity-60 transition-opacity"
1258                                >
1259                                  ビューティー
1260                                </a>
1261                                                                <div class="pl-3 mt-1 space-y-1">
1262                                                                    <a
1263                                    href="/view/category/ct141"
1264                                    class="block py-1 text-[10px] normal-case tracking-normal opacity-80 hover:opacity-100 transition-opacity"
1265                                  >
1266                                    ヘアケア
1267                                  </a>
1268                                                                    <a
1269                                    href="/view/category/ct160"
1270                                    class="block py-1 text-[10px] normal-case tracking-normal opacity-80 hover:opacity-100 transition-opacity"
1271                                  >
1272                                    ヘアメイク
1273                                  </a>
1274                                                                    <a
1275                                    href="/view/category/ct162"
1276                                    class="block py-1 text-[10px] normal-case tracking-normal opacity-80 hover:opacity-100 transition-opacity"
1277                                  >
1278                                    スタイリング剤
1279                                  </a>
1280                                                                    <a
1281                                    href="/view/category/ct181"
1282                                    class="block py-1 text-[10px] normal-case tracking-normal opacity-80 hover:opacity-100 transition-opacity"
1283                                  >
1284                                    スキンケア
1285                                  </a>
1286                                                                    <a
1287                                    href="/view/category/ct195"
1288                                    class="block py-1 text-[10px] normal-case tracking-normal opacity-80 hover:opacity-100 transition-opacity"
1289                                  >
1290                                    ボディケア
1291                                  </a>
1292                                                                    <a
1293                                    href="/view/category/ct306"
1294                                    class="block py-1 text-[10px] normal-case tracking-normal opacity-80 hover:opacity-100 transition-opacity"
1295                                  >
1296                                    美容家電・器具
1297                                  </a>
1298                                                                    <a
1299                                    href="/view/category/ct314"
1300                                    class="block py-1 text-[10px] normal-case tracking-normal opacity-80 hover:opacity-100 transition-opacity"
1301                                  >
1302                                    プロ美容用品
1303                                  </a>
1304                                                                    <a
1305                                    href="/view/category/ct315"
1306                                    class="block py-1 text-[10px] normal-case tracking-normal opacity-80 hover:opacity-100 transition-opacity"
1307                                  >
1308                                    健康食品
1309                                  </a>
1310                                                                    <a
1311                                    href="/view/category/ct316"
1312                                    class="block py-1 text-[10px] normal-case tracking-normal opacity-80 hover:opacity-100 transition-opacity"
1313                                  >
1314                                    コスメティック・香水
1315                                  </a>
1316                                                                    <a
1317                                    href="/view/category/I210546"
1318                                    class="block py-1 text-[10px] normal-case tracking-normal opacity-80 hover:opacity-100 transition-opacity"
1319                                  >
1320                                    男性用(メンズ)
1321                                  </a>
1322                                                                    <a
1323                                    href="/view/category/I224307"
1324                                    class="block py-1 text-[10px] normal-case tracking-normal opacity-80 hover:opacity-100 transition-opacity"
1325                                  >
1326                                    メイク用品・香水
1327                                  </a>
1328                                                                    <a
1329                                    href="/view/category/I234815"
1330                                    class="block py-1 text-[10px] normal-case tracking-normal opacity-80 hover:opacity-100 transition-opacity"
1331                                  >
1332                                    【特集】髪質改善・ダメージケア
1333                                  </a>
1334                                                                    <a
1335                                    href="/view/category/I241028"
1336                                    class="block py-1 text-[10px] normal-case tracking-normal opacity-80 hover:opacity-100 transition-opacity"
1337                                  >
1338                                    歯ブラシ・オーラルケア
1339                                  </a>
1340                                                                  </div>
1341                                                              </div>
1342                                                            <div>
1343                                <a
1344                                  href="/view/category/ct247"
1345                                  class="block py-1 text-xs font-semibold normal-case tracking-normal hover:opacity-60 transition-opacity"
1346                                >
1347                                  生活雑貨
1348                                </a>
1349                                                                <div class="pl-3 mt-1 space-y-1">
1350                                                                    <a
1351                                    href="/view/category/ct248"
1352                                    class="block py-1 text-[10px] normal-case tracking-normal opacity-80 hover:opacity-100 transition-opacity"
1353                                  >
1354                                    便利グッズ
1355                                  </a>
1356                                                                    <a
1357                                    href="/view/category/ct249"
1358                                    class="block py-1 text-[10px] normal-case tracking-normal opacity-80 hover:opacity-100 transition-opacity"
1359                                  >
1360                                    キッズ・ベビー
1361                                  </a>
1362                                                                    <a
1363                                    href="/view/category/ct258"
1364                                    class="block py-1 text-[10px] normal-case tracking-normal opacity-80 hover:opacity-100 transition-opacity"
1365                                  >
1366                                    インテリア雑貨
1367                                  </a>
1368                                                                    <a
1369                                    href="/view/category/ct348"
1370                                    class="block py-1 text-[10px] normal-case tracking-normal opacity-80 hover:opacity-100 transition-opacity"
1371                                  >
1372                                    キッチン
1373                                  </a>
1374                                                                    <a
1375                                    href="/view/category/ct349"
1376                                    class="block py-1 text-[10px] normal-case tracking-normal opacity-80 hover:opacity-100 transition-opacity"
1377                                  >
1378                                    バスグッズ
1379                                  </a>
1380                                                                    <a
1381                                    href="/view/category/ct350"
1382                                    class="block py-1 text-[10px] normal-case tracking-normal opacity-80 hover:opacity-100 transition-opacity"
1383                                  >
1384                                    洗濯
1385                                  </a>
1386                                                                    <a
1387                                    href="/view/category/ct351"
1388                                    class="block py-1 text-[10px] normal-case tracking-normal opacity-80 hover:opacity-100 transition-opacity"
1389                                  >
1390                                    掃除
1391                                  </a>
1392                                                                    <a
1393                                    href="/view/category/ct352"
1394                                    class="block py-1 text-[10px] normal-case tracking-normal opacity-80 hover:opacity-100 transition-opacity"
1395                                  >
1396                                    フード
1397                                  </a>
1398                                                                    <a
1399                                    href="/view/category/ct353"
1400                                    class="block py-1 text-[10px] normal-case tracking-normal opacity-80 hover:opacity-100 transition-opacity"
1401                                  >
1402                                    収納
1403                                  </a>
1404                                                                    <a
1405                                    href="/view/category/ct354"
1406                                    class="block py-1 text-[10px] normal-case tracking-normal opacity-80 hover:opacity-100 transition-opacity"
1407                                  >
1408                                    傘
1409                                  </a>
1410                                                                    <a
1411                                    href="/view/category/ct355"
1412                                    class="block py-1 text-[10px] normal-case tracking-normal opacity-80 hover:opacity-100 transition-opacity"
1413                                  >
1414                                    アウトドア
1415                                  </a>
1416                                                                    <a
1417                                    href="/view/category/ct356"
1418                                    class="block py-1 text-[10px] normal-case tracking-normal opacity-80 hover:opacity-100 transition-opacity"
1419                                  >
1420                                    寝具
1421                                  </a>
1422                                                                    <a
1423                                    href="/view/category/ct357"
1424                                    class="block py-1 text-[10px] normal-case tracking-normal opacity-80 hover:opacity-100 transition-opacity"
1425                                  >
1426                                    衛生日用品
1427                                  </a>
1428                                                                    <a
1429                                    href="/view/category/I210467"
1430                                    class="block py-1 text-[10px] normal-case tracking-normal opacity-80 hover:opacity-100 transition-opacity"
1431                                  >
1432                                    超便利グッズ
1433                                  </a>
1434                                                                    <a
1435                                    href="/view/category/I210507"
1436                                    class="block py-1 text-[10px] normal-case tracking-normal opacity-80 hover:opacity-100 transition-opacity"
1437                                  >
1438                                    キッチン(調理器具・食器・お箸)
1439                                  </a>
1440                                                                    <a
1441                                    href="/view/category/I210508"
1442                                    class="block py-1 text-[10px] normal-case tracking-normal opacity-80 hover:opacity-100 transition-opacity"
1443                                  >
1444                                    食品
1445                                  </a>
1446                                                                    <a
1447                                    href="/view/category/I210618"
1448                                    class="block py-1 text-[10px] normal-case tracking-normal opacity-80 hover:opacity-100 transition-opacity"
1449                                  >
1450                                    健康グッズ
1451                                  </a>
1452                                                                  </div>
1453                                                              </div>
1454                                                            <div>
1455                                <a
1456                                  href="/view/category/ct263"
1457                                  class="block py-1 text-xs font-semibold normal-case tracking-normal hover:opacity-60 transition-opacity"
1458                                >
1459                                  ファッション
1460                                </a>
1461                                                                <div class="pl-3 mt-1 space-y-1">
1462                                                                    <a
1463                                    href="/view/category/ct264"
1464                                    class="block py-1 text-[10px] normal-case tracking-normal opacity-80 hover:opacity-100 transition-opacity"
1465                                  >
1466                                    トップス
1467                                  </a>
1468                                                                    <a
1469                                    href="/view/category/ct265"
1470                                    class="block py-1 text-[10px] normal-case tracking-normal opacity-80 hover:opacity-100 transition-opacity"
1471                                  >
1472                                    ワンピース
1473                                  </a>
1474                                                                    <a
1475                                    href="/view/category/ct266"
1476                                    class="block py-1 text-[10px] normal-case tracking-normal opacity-80 hover:opacity-100 transition-opacity"
1477                                  >
1478                                    アウター・コート
1479                                  </a>
1480                                                                    <a
1481                                    href="/view/category/ct267"
1482                                    class="block py-1 text-[10px] normal-case tracking-normal opacity-80 hover:opacity-100 transition-opacity"
1483                                  >
1484                                    ボトムス
1485                                  </a>
1486                                                                    <a
1487                                    href="/view/category/ct268"
1488                                    class="block py-1 text-[10px] normal-case tracking-normal opacity-80 hover:opacity-100 transition-opacity"
1489                                  >
1490                                    シューズ・ブーツ
1491                                  </a>
1492                                                                    <a
1493                                    href="/view/category/ct269"
1494                                    class="block py-1 text-[10px] normal-case tracking-normal opacity-80 hover:opacity-100 transition-opacity"
1495                                  >
1496                                    バッグ
1497                                  </a>
1498                                                                    <a
1499                                    href="/view/category/ct270"
1500                                    class="block py-1 text-[10px] normal-case tracking-normal opacity-80 hover:opacity-100 transition-opacity"
1501                                  >
1502                                    ファッション小物
1503                                  </a>
1504                                                                    <a
1505                                    href="/view/category/ct365"
1506                                    class="block py-1 text-[10px] normal-case tracking-normal opacity-80 hover:opacity-100 transition-opacity"
1507                                  >
1508                                    アクセサリー
1509                                  </a>
1510                                                                    <a
1511                                    href="/view/category/ct366"
1512                                    class="block py-1 text-[10px] normal-case tracking-normal opacity-80 hover:opacity-100 transition-opacity"
1513                                  >
1514                                    BUBU SELECT
1515                                  </a>
1516                                                                    <a
1517                                    href="/view/category/I210581"
1518                                    class="block py-1 text-[10px] normal-case tracking-normal opacity-80 hover:opacity-100 transition-opacity"
1519                                  >
1520                                    お財布
1521                                  </a>
1522                                                                    <a
1523                                    href="/view/category/I210611"
1524                                    class="block py-1 text-[10px] normal-case tracking-normal opacity-80 hover:opacity-100 transition-opacity"
1525                                  >
1526                                    シューズ・サンダル
1527                                  </a>
1528                                                                    <a
1529                                    href="/view/category/I210638"
1530                                    class="block py-1 text-[10px] normal-case tracking-normal opacity-80 hover:opacity-100 transition-opacity"
1531                                  >
1532                                    ボトムス(パンツ・スカート)
1533                                  </a>
1534                                                                  </div>
1535                                                              </div>
1536                                                            <div>
1537                                <a
1538                                  href="/view/category/ct132"
1539                                  class="block py-1 text-xs font-semibold normal-case tracking-normal hover:opacity-60 transition-opacity"
1540                                >
1541                                  ブランド別検索
1542                                </a>
1543                                                                <div class="pl-3 mt-1 space-y-1">
1544                                                                    <a
1545                                    href="/view/category/ct368"
1546                                    class="block py-1 text-[10px] normal-case tracking-normal opacity-80 hover:opacity-100 transition-opacity"
1547                                  >
1548                                    ブランド名:ア行
1549                                  </a>
1550                                                                    <a
1551                                    href="/view/category/ct369"
1552                                    class="block py-1 text-[10px] normal-case tracking-normal opacity-80 hover:opacity-100 transition-opacity"
1553                                  >
1554                                    ブランド名:カ行
1555                                  </a>
1556                                                                    <a
1557                                    href="/view/category/ct370"
1558                                    class="block py-1 text-[10px] normal-case tracking-normal opacity-80 hover:opacity-100 transition-opacity"
1559                                  >
1560                                    ブランド名:サ行
1561                                  </a>
1562                                                                    <a
1563                                    href="/view/category/ct371"
1564                                    class="block py-1 text-[10px] normal-case tracking-normal opacity-80 hover:opacity-100 transition-opacity"
1565                                  >
1566                                    ブランド名:タ行
1567                                  </a>
1568                                                                    <a
1569                                    href="/view/category/ct372"
1570                                    class="block py-1 text-[10px] normal-case tracking-normal opacity-80 hover:opacity-100 transition-opacity"
1571                                  >
1572                                    ブランド名:ナ行
1573                                  </a>
1574                                                                    <a
1575                                    href="/view/category/ct373"
1576                                    class="block py-1 text-[10px] normal-case tracking-normal opacity-80 hover:opacity-100 transition-opacity"
1577                                  >
1578                                    ブランド名:ハ行
1579                                  </a>
1580                                                                    <a
1581                                    href="/view/category/ct374"
1582                                    class="block py-1 text-[10px] normal-case tracking-normal opacity-80 hover:opacity-100 transition-opacity"
1583                                  >
1584                                    ブランド名:マ行
1585                                  </a>
1586                                                                    <a
1587                                    href="/view/category/ct375"
1588                                    class="block py-1 text-[10px] normal-case tracking-normal opacity-80 hover:opacity-100 transition-opacity"
1589                                  >
1590                                    ブランド名:ヤ行
1591                                  </a>
1592                                                                    <a
1593                                    href="/view/category/ct376"
1594                                    class="block py-1 text-[10px] normal-case tracking-normal opacity-80 hover:opacity-100 transition-opacity"
1595                                  >
1596                                    ブランド名:ラ行
1597                                  </a>
1598                                                                    <a
1599                                    href="/view/category/ct377"
1600                                    class="block py-1 text-[10px] normal-case tracking-normal opacity-80 hover:opacity-100 transition-opacity"
1601                                  >
1602                                    ブランド名:ワ行
1603                                  </a>
1604                                                                    <a
1605                                    href="/view/category/ct378"
1606                                    class="block py-1 text-[10px] normal-case tracking-normal opacity-80 hover:opacity-100 transition-opacity"
1607                                  >
1608                                    ブランド名:その他
1609                                  </a>
1610                                                                  </div>
1611                                                              </div>
1612                                                            <div>
1613                                <a
1614                                  href="/view/category/I210459"
1615                                  class="block py-1 text-xs font-semibold normal-case tracking-normal hover:opacity-60 transition-opacity"
1616                                >
1617                                  イベント
1618                                </a>
1619                                                                <div class="pl-3 mt-1 space-y-1">
1620                                                                    <a
1621                                    href="/view/category/I210460"
1622                                    class="block py-1 text-[10px] normal-case tracking-normal opacity-80 hover:opacity-100 transition-opacity"
1623                                  >
1624                                    クーポン特設会場
1625                                  </a>
1626                                                                    <a
1627                                    href="/view/category/I210461"
1628                                    class="block py-1 text-[10px] normal-case tracking-normal opacity-80 hover:opacity-100 transition-opacity"
1629                                  >
1630                                    UV・熱中症対策特集
1631                                  </a>
1632                                                                    <a
1633                                    href="/view/category/I210486"
1634                                    class="block py-1 text-[10px] normal-case tracking-normal opacity-80 hover:opacity-100 transition-opacity"
1635                                  >
1636                                    朝の時短アイテム特集
1637                                  </a>
1638                                                                    <a
1639                                    href="/view/category/I210505"
1640                                    class="block py-1 text-[10px] normal-case tracking-normal opacity-80 hover:opacity-100 transition-opacity"
1641                                  >
1642                                    ハンドクリーム特集
1643                                  </a>
1644                                                                    <a
1645                                    href="/view/category/I210510"
1646                                    class="block py-1 text-[10px] normal-case tracking-normal opacity-80 hover:opacity-100 transition-opacity"
1647                                  >
1648                                    クリスマスギフト
1649                                  </a>
1650                                                                    <a
1651                                    href="/view/category/I210522"
1652                                    class="block py-1 text-[10px] normal-case tracking-normal opacity-80 hover:opacity-100 transition-opacity"
1653                                  >
1654                                    年末大掃除特集
1655                                  </a>
1656                                                                    <a
1657                                    href="/view/category/I210553"
1658                                    class="block py-1 text-[10px] normal-case tracking-normal opacity-80 hover:opacity-100 transition-opacity"
1659                                  >
1660                                    ゲリラクーポン会場
1661                                  </a>
1662                                                                    <a
1663                                    href="/view/category/I210560"
1664                                    class="block py-1 text-[10px] normal-case tracking-normal opacity-80 hover:opacity-100 transition-opacity"
1665                                  >
1666                                    サウナで使えるおすすめアイテム
1667                                  </a>
1668                                                                    <a
1669                                    href="/view/category/I210567"
1670                                    class="block py-1 text-[10px] normal-case tracking-normal opacity-80 hover:opacity-100 transition-opacity"
1671                                  >
1672                                    バレンタイン特集
1673                                  </a>
1674                                                                    <a
1675                                    href="/view/category/I210575"
1676                                    class="block py-1 text-[10px] normal-case tracking-normal opacity-80 hover:opacity-100 transition-opacity"
1677                                  >
1678                                    在庫限りのお買い得商品!
1679                                  </a>
1680                                                                    <a
1681                                    href="/view/category/I210608"
1682                                    class="block py-1 text-[10px] normal-case tracking-normal opacity-80 hover:opacity-100 transition-opacity"
1683                                  >
1684                                    クーポン配布中!夏フェスタ!
1685                                  </a>
1686                                                                    <a
1687                                    href="/view/category/I210678"
1688                                    class="block py-1 text-[10px] normal-case tracking-normal opacity-80 hover:opacity-100 transition-opacity"
1689                                  >
1690                                    全額キャッシュバックキャンペーン
1691                                  </a>
1692                                                                    <a
1693                                    href="/view/category/I210719"
1694                                    class="block py-1 text-[10px] normal-case tracking-normal opacity-80 hover:opacity-100 transition-opacity"
1695                                  >
1696                                    ホワイトデー特集
1697                                  </a>
1698                                                                    <a
1699                                    href="/view/category/I224311"
1700                                    class="block py-1 text-[10px] normal-case tracking-normal opacity-80 hover:opacity-100 transition-opacity"
1701                                  >
1702                                    便利な掃除アイテム特集
1703                                  </a>
1704                                                                    <a
1705                                    href="/view/category/I224312"
1706                                    class="block py-1 text-[10px] normal-case tracking-normal opacity-80 hover:opacity-100 transition-opacity"
1707                                  >
1708                                    I LOVE Miffyフェア
1709                                  </a>
1710                                                                    <a
1711                                    href="/view/category/I224313"
1712                                    class="block py-1 text-[10px] normal-case tracking-normal opacity-80 hover:opacity-100 transition-opacity"
1713                                  >
1714                                    春財布★2024★
1715                                  </a>
1716                                                                    <a
1717                                    href="/view/category/I234816"
1718                                    class="block py-1 text-[10px] normal-case tracking-normal opacity-80 hover:opacity-100 transition-opacity"
1719                                  >
1720                                    春財布★2025★
1721                                  </a>
1722                                                                    <a
1723                                    href="/view/category/I234817"
1724                                    class="block py-1 text-[10px] normal-case tracking-normal opacity-80 hover:opacity-100 transition-opacity"
1725                                  >
1726                                    2025年初売り!特設会場
1727                                  </a>
1728                                                                    <a
1729                                    href="/view/category/I241029"
1730                                    class="block py-1 text-[10px] normal-case tracking-normal opacity-80 hover:opacity-100 transition-opacity"
1731                                  >
1732                                    2026春の超お得クーポン!
1733                                  </a>
1734                                                                    <a
1735                                    href="/view/category/I241020"
1736                                    class="block py-1 text-[10px] normal-case tracking-normal opacity-80 hover:opacity-100 transition-opacity"
1737                                  >
1738                                    夏アイテム特集
1739                                  </a>
1740                                                                    <a
1741                                    href="/view/category/I241019"
1742                                    class="block py-1 text-[10px] normal-case tracking-normal opacity-80 hover:opacity-100 transition-opacity"
1743                                  >
1744                                    【期間終了】2026年初売り!特設会場
1745                                  </a>
1746                                                                  </div>
1747                                                              </div>
1748                                                            <div>
1749                                <a
1750                                  href="/view/category/I210503"
1751                                  class="block py-1 text-xs font-semibold normal-case tracking-normal hover:opacity-60 transition-opacity"
1752                                >
1753                                  ギフト商品
1754                                </a>
1755                                                                <div class="pl-3 mt-1 space-y-1">
1756                                                                    <a
1757                                    href="/view/category/I210504"
1758                                    class="block py-1 text-[10px] normal-case tracking-normal opacity-80 hover:opacity-100 transition-opacity"
1759                                  >
1760                                    美容・コスメ
1761                                  </a>
1762                                                                    <a
1763                                    href="/view/category/I210509"
1764                                    class="block py-1 text-[10px] normal-case tracking-normal opacity-80 hover:opacity-100 transition-opacity"
1765                                  >
1766                                    キッチン雑貨・食器
1767                                  </a>
1768                                                                    <a
1769                                    href="/view/category/I210556"
1770                                    class="block py-1 text-[10px] normal-case tracking-normal opacity-80 hover:opacity-100 transition-opacity"
1771                                  >
1772                                    花・ソープフラワー
1773                                  </a>
1774                                                                    <a
1775                                    href="/view/category/I210617"
1776                                    class="block py-1 text-[10px] normal-case tracking-normal opacity-80 hover:opacity-100 transition-opacity"
1777                                  >
1778                                    生活雑貨・アクセサリー
1779                                  </a>
1780                                                                  </div>
1781                                                              </div>
1782                                                            <div>
1783                                <a
1784                                  href="/view/category/I210527"
1785                                  class="block py-1 text-xs font-semibold normal-case tracking-normal hover:opacity-60 transition-opacity"
1786                                >
1787                                  ギフトラッピング
1788                                </a>
1789                                                              </div>
1790                                                            <div>
1791                                <a
1792                                  href="/view/category/I210733"
1793                                  class="block py-1 text-xs font-semibold normal-case tracking-normal hover:opacity-60 transition-opacity"
1794                                >
1795                                  その他
1796                                </a>
1797                                                              </div>
1798                                                            <div>
1799                                <a
1800                                  href="/view/category/I224310"
1801                                  class="block py-1 text-xs font-semibold normal-case tracking-normal hover:opacity-60 transition-opacity"
1802                                >
1803                                  食品・調味料
1804                                </a>
1805                                                              </div>
1806                                                            <div>
1807                                <a
1808                                  href="/view/category/I224314"
1809                                  class="block py-1 text-xs font-semibold normal-case tracking-normal hover:opacity-60 transition-opacity"
1810                                >
1811                                  季節
1812                                </a>
1813                                                                <div class="pl-3 mt-1 space-y-1">
1814                                                                    <a
1815                                    href="/view/category/I224315"
1816                                    class="block py-1 text-[10px] normal-case tracking-normal opacity-80 hover:opacity-100 transition-opacity"
1817                                  >
1818                                    秋・冬
1819                                  </a>
1820                                                                    <a
1821                                    href="/view/category/I241022"
1822                                    class="block py-1 text-[10px] normal-case tracking-normal opacity-80 hover:opacity-100 transition-opacity"
1823                                  >
1824                                    春・夏
1825                                  </a>
1826                                                                  </div>
1827                                                              </div>
1828                                                          </div>
1829                          </div>
1830                                                    <a href="/view/guide" class="hover:opacity-60 transition-opacity">ご利用ガイド</a>
1831                                                    <a href="/view/member/login" class="hover:opacity-60 transition-opacity">ログイン</a>
1832                                                                                                      <a href="/shop/idinfo.html" class="hover:opacity-60 transition-opacity">新規登録</a>
1833                                                                        </nav>
1834                    </aside>
1835                  </div>
1836                </div>
1837              </div>
1838            </div>
1839
1840            <div
1841              id="header-search-panel"
1842              x-show="searchOpen"
1843              @click.outside="searchOpen = false"
1844              x-transition:enter="transition ease-out duration-200"
1845              x-transition:enter-start="opacity-0 -translate-y-2"
1846              x-transition:enter-end="opacity-100 translate-y-0"
1847              x-transition:leave="transition ease-in duration-150"
1848              x-transition:leave-start="opacity-100 translate-y-0"
1849              x-transition:leave-end="opacity-0 -translate-y-2"
1850              class="absolute top-full left-0 right-0 bg-white text-[#333] shadow-xl border-t border-black/10 z-40"
1851              role="dialog"
1852              aria-label="商品検索"
1853              x-cloak
1854            >
1855              <div class="container mx-auto px-4 max-w-[1240px] py-4 md:py-6">
1856                <div class="flex items-center gap-2 md:gap-3">
1857                  <input
1858                    type="text"
1859                    data-id="makeshop-search-keyword"
1860                    placeholder="キーワードで検索"
1861                    class="flex-1 min-w-0 py-2 md:py-3 px-3 md:px-4 border border-[#ddd] text-sm text-[#333] outline-none focus:border-black transition-colors normal-case tracking-normal"
1862                    @keydown.enter.prevent="$refs.searchSubmit.click()"
1863                  >
1864                  <a
1865                    x-ref="searchSubmit"
1866                    href="#makeshop-common-search-url"
1867                    class="theme-button-normal theme-rounded inline-flex items-center justify-center gap-1.5 py-2 md:py-3 px-4 md:px-6 text-xs hover:opacity-80 transition-opacity shrink-0 normal-case tracking-normal"
1868                    aria-label="検索"
1869                  >
1870                    <i class="fi fi-rr-search" aria-hidden="true"></i>
1871                    <span class="hidden md:inline">検索</span>
1872                  </a>
1873                </div>
1874              </div>
1875            </div>
1876          </header>
1877
1878        </div>
1879
1880<!-- /nocode:module:header -->
1881      <!-- nocode:module:body -->
1882        <div data-scroll-in>
1883          <style>
1884              .pd-breadcrumb {
1885                padding: 16px 0;
1886                font-size: 12px;
1887                display: flex;
1888                align-items: center;
1889                flex-wrap: wrap;
1890                gap: 6px;
1891                color: var(--theme-text);
1892              }
1893              .pd-breadcrumb a,
1894              .pd-breadcrumb span {
1895                opacity: 0.6;
1896              }
1897              .pd-breadcrumb a {
1898                color: inherit;
1899                transition: opacity 0.2s;
1900              }
1901              .pd-breadcrumb a:hover { opacity: 1; }
1902              .pd-container {
1903                max-width: 1240px;
1904                margin: 0 auto;
1905                padding: 0 24px;
1906              }
1907              .pd-main {
1908                margin-bottom: 80px;
1909              }
1910              @media (min-width: 768px) {
1911                .pd-main {
1912                  display: grid;
1913                  grid-template-columns: 1fr 1fr;
1914                  gap: 48px;
1915                  align-items: start;
1916                }
1917              }
1918
1919              /* 画像エリア */
1920              .pd-image-wrap { margin-bottom: 24px; min-width: 0; }
1921              @media (min-width: 768px) { .pd-image-wrap { margin-bottom: 0; } }
1922              .pd-image-main { position: relative; overflow: hidden; border-radius: 12px; margin-bottom: 16px; width: 100%; max-width: 100%; }
1923              .pd-image-main img { width: 100%; height: auto; display: block; }
1924
1925              /*
1926                インナーズーム(PC のホバー拡大)。
1927                倍率はここ 1 箇所で持つ。実機で測った大サイズ画像の実寸次第で見直す前提のため、
1928                liquid や JS に散らさない。
1929                有効化は JS が is-zoomable を付けたときだけ。タッチ端末や設定 OFF では付かず、
1930                クリックでの全画面拡大(GLightbox)は従来どおり動く。
1931              */
1932              .pd-image-main { --pd-zoom-scale: 2; }
1933              /* メイン画像は a.glightbox に包まれており、UA の a:any-link{cursor:pointer} が
1934                 枠からの継承より優先されるため、アンカーと画像にそれぞれ指定する。
1935                 枠自体には付けない。縦横比の違うスライドが混ざったときの余白部分は
1936                 ホバーしても拡大しないため、そこは既定のカーソルのままにする。 */
1937              .pd-image-main.is-zoomable a,
1938              .pd-image-main.is-zoomable img { cursor: zoom-in; }
1939              .pd-image-main.is-zoomable img { transition: transform 0.18s ease-out; }
1940              .pd-image-main.is-zoomable img.is-zooming {
1941                transform: scale(var(--pd-zoom-scale));
1942                transition: transform 0.12s linear;
1943              }
1944              @media (prefers-reduced-motion: reduce) {
1945                .pd-image-main.is-zoomable img,
1946                .pd-image-main.is-zoomable img.is-zooming { transition: none; }
1947              }
1948              .pd-slider-prev, .pd-slider-next {
1949                color: #000 !important;
1950                width: 48px !important;
1951                height: 48px !important;
1952              }
1953              .pd-slider-prev::after, .pd-slider-next::after { font-size: 28px !important; }
1954              .pd-thumbnails { display: flex; gap: 12px; overflow: hidden; padding-bottom: 4px; }
1955              .pd-thumbnails .swiper-slide {
1956                width: 66px !important;
1957                height: 66px;
1958                flex-shrink: 0;
1959                border-radius: 8px;
1960                overflow: hidden;
1961                opacity: 0.5;
1962                cursor: pointer;
1963                transition: opacity 0.2s;
1964              }
1965              .pd-thumbnails .swiper-slide-thumb-active { opacity: 1; }
1966              .pd-thumbnails .swiper-slide img { width: 100%; height: 100%; object-fit: cover; }
1967
1968              /* 商品情報 */
1969              .pd-info { padding: 0; }
1970              .pd-category {
1971                font-size: 12px;
1972                color: var(--theme-text);
1973                margin-bottom: 4px;
1974                letter-spacing: 0.05em;
1975              }
1976              .pd-category a { color: var(--theme-text); }
1977              .pd-category a:hover { opacity: 0.7; }
1978              .pd-badge {
1979                display: inline-flex;
1980                align-items: center;
1981                padding: 4px 12px;
1982                border-radius: 20px;
1983                font-size: 11px;
1984                font-weight: 700;
1985                letter-spacing: 0.05em;
1986                margin-bottom: 12px;
1987                margin-right: 6px;
1988              }
1989              .pd-badge-sale { background: #FFB969; color: #fff; }
1990              .pd-badge-soldout { background: #eee; color: #999; }
1991              .pd-badge-preorder { background: #FF6B00; color: #fff; }
1992              .pd-badge-subscription { background: #E0F2FE; color: #333; }
1993              .pd-badge-reduced-tax { background: #333; color: #fff; }
1994              .pd-badge-member { background: #F3E8FF; color: #6B21A8; }
1995              .pd-name {
1996                font-size: 20px;
1997                font-weight: 700;
1998                line-height: 1.4;
1999                margin-bottom: 8px;
2000                color: var(--theme-text);
2001              }
2002              @media (min-width: 768px) { .pd-name { font-size: 24px; } }
2003              .pd-price-area { margin-bottom: 16px; }
2004              .pd-price-original {
2005                font-size: 14px;
2006                color: var(--theme-text);
2007                opacity: 0.5;
2008                text-decoration: line-through;
2009                margin-bottom: 2px;
2010              }
2011              .pd-price {
2012                font-size: 24px;
2013                font-weight: 700;
2014                color: var(--theme-text);
2015              }
2016              .pd-price-sale-rate {
2017                font-size: 12px;
2018                font-weight: 700;
2019                color: #FF5050;
2020                margin-left: 6px;
2021              }
2022              .pd-price-subscription {
2023                font-size: 14px;
2024                color: var(--theme-text);
2025                opacity: 0.6;
2026                margin-top: 4px;
2027              }
2028              .pd-point {
2029                display: inline-flex;
2030                align-items: center;
2031                gap: 4px;
2032                font-size: 12px;
2033                color: var(--theme-point-color);
2034                margin-top: 4px;
2035              }
2036              .pd-point-badge {
2037                display: inline-flex;
2038                align-items: center;
2039                justify-content: center;
2040                width: 16px;
2041                height: 16px;
2042                border-radius: 50%;
2043                background: var(--theme-point-color);
2044                color: #fff;
2045                font-size: 9px;
2046                font-weight: 700;
2047              }
2048
2049              /* バリエーション専用画像UI */
2050              .option-image-wrap { margin: 16px 0; }
2051              .pd-option-label { font-size: 13px; font-weight: 700; margin: 16px 0 8px; color: var(--theme-text); }
2052              .option-image-option1 { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 16px; }
2053              .option-image-option1-item img {
2054                width: 40px; height: 40px; object-fit: cover; border-radius: 50%;
2055                border: solid 2px rgba(128,128,128,0.4); cursor: pointer; display: block;
2056              }
2057              .option-image-option1-item.active img { border: solid 3px var(--theme-text); }
2058              .option-image-option2 { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 16px; }
2059              .option-image-option2-item {
2060                display: none; border: solid 2px rgba(128,128,128,0.4); padding: 8px 12px;
2061                cursor: pointer; min-width: 80px; font-size: 12px; border-radius: 4px;
2062                color: var(--theme-text);
2063                flex-direction: column; gap: 8px;
2064              }
2065              .option-image-option2-item.active { border-color: var(--theme-text); }
2066              .option-image-option2-item.option-image-soldout {
2067                background-color: #f3f4f6;
2068                background-image: linear-gradient(
2069                  to top right,
2070                  transparent calc(50% - 1px),
2071                  #ccc calc(50% - 1px),
2072                  #ccc calc(50% + 1px),
2073                  transparent calc(50% + 1px)
2074                );
2075                color: #999;
2076              }
2077              .option-image-option2-item.option-image-soldout::after {
2078                content: " 品切れ"; font-size: 10px; color: #bbb;
2079              }
2080              .option-image-checkout-wrap { margin-top: 16px; display: flex; flex-direction: column; gap: 8px; }
2081
2082              /* オプション */
2083              .pd-options { margin: 20px 0; }
2084              .pd-options .makeshop-option-wrap { margin-bottom: 16px; }
2085              .pd-options .makeshop-option-label {
2086                font-size: 13px;
2087                font-weight: 600;
2088                color: var(--theme-text);
2089                margin-bottom: 8px;
2090              }
2091              /* テキストカード形式(input_type=1): ラッパーが白背景のため見出しは濃色固定 */
2092              .pd-options .makeshop-custom-select-wrap.makeshop-custom-select-button > .makeshop-option-label {
2093                color: #333;
2094              }
2095              .pd-options .makeshop-option-select-wrap { display: inline-flex; align-items: center; position: relative; }
2096              .pd-options .makeshop-option-select-wrap::after {
2097                content: '';
2098                position: absolute;
2099                right: 14px;
2100                width: 8px;
2101                height: 6px;
2102                background: #333;
2103                clip-path: polygon(0 0, 100% 0, 50% 100%);
2104                pointer-events: none;
2105              }
2106              .pd-options .makeshop-option-select-wrap select {
2107                appearance: none;
2108                min-width: 180px;
2109                height: 40px;
2110                padding: 0 36px 0 14px;
2111                border: 1px solid #ddd;
2112                border-radius: 8px;
2113                background: #fff;
2114                color: #333;
2115                font-size: 14px;
2116                cursor: pointer;
2117                transition: border-color 0.2s;
2118              }
2119              .pd-options .makeshop-option-select-wrap select:focus { border-color: #111; outline: none; }
2120              .pd-options .makeshop-option-select-wrap select option {
2121                color: #333;
2122                background: #fff;
2123              }
2124
2125              /* カスタムセレクト(input_type=1/2: カード形式・画像付きカード形式) */
2126              .pd-options .makeshop-custom-select-button-wrap {
2127                display: flex;
2128                gap: 12px;
2129                flex-wrap: wrap;
2130              }
2131              .pd-options .makeshop-custom-select-button {
2132                appearance: none;
2133                background: #fff;
2134                border: 2px solid #ddd;
2135                border-radius: 8px;
2136                padding: 8px 12px;
2137                cursor: pointer;
2138                text-align: center;
2139                display: inline-flex;
2140                flex-direction: column;
2141                align-items: center;
2142                gap: 4px;
2143                transition: border-color 0.2s;
2144                color: #333;
2145                font-size: 12px;
2146              }
2147              .pd-options .makeshop-custom-select-button:hover { border-color: #999; }
2148              .pd-options .makeshop-custom-select-button.selected { border-color: #111; }
2149              .pd-options .makeshop-custom-select-image {
2150                width: 80px;
2151                height: 80px;
2152                object-fit: cover;
2153                border-radius: 4px;
2154                display: block;
2155              }
2156              .pd-options .makeshop-custom-select-button-text { font-weight: 500; }
2157              .pd-options .makeshop-custom-select-price { color: #666; font-size: 11px; } /* 白ボタン内のため濃色固定 */
2158
2159              /* カスタムセレクト(input_type=4: 数値入力形式)
2160                  注意: クラス `makeshop-custom-select-text` はラッパー div と input の両方に付与されるため、
2161                  幅・枠線等の指定は input 要素にスコープを限定する。 */
2162              .pd-options .makeshop-custom-select-text-wrap {
2163                display: inline-flex;
2164                align-items: center;
2165                gap: 8px;
2166              }
2167              .pd-options input.makeshop-custom-select-text {
2168                width: 120px;
2169                height: 40px;
2170                padding: 0 14px;
2171                border: 1px solid #ddd;
2172                border-radius: 8px;
2173                background: #fff;
2174                color: #333;
2175                font-size: 14px;
2176                -moz-appearance: textfield;
2177              }
2178              .pd-options input.makeshop-custom-select-text::-webkit-inner-spin-button,
2179              .pd-options input.makeshop-custom-select-text::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }
2180              .pd-options .makeshop-custom-select-text-unit {
2181                font-size: 13px;
2182                color: var(--theme-text);
2183                opacity: 0.6;
2184                white-space: nowrap;
2185              }
2186
2187              /* SKU(バリエーションごとにカートボタン)表示時:
2188                  option_html にはバリエーションselect(makeshop-option-wrap)とカスタムセレクト
2189                  (makeshop-custom-select-wrap)が結合されて入る。バリエーションはSKUテーブルで表示済みのã
2189Ÿã‚ã€
2190                  カスタムセレクト以外(= makeshop-custom-select-wrap を持たない makeshop-option-wrap)を非表示にする。 */
2191              .pd-options-custom-only .makeshop-option-wrap:not(.makeshop-custom-select-wrap) { display: none; }
2192
2193              /* 数量 */
2194              .pd-quantity {
2195                display: flex;
2196                align-items: center;
2197                gap: 0;
2198                margin: 20px 0;
2199              }
2200              .pd-quantity-label { font-size: 13px; font-weight: 600; margin-right: 12px; }
2201              .pd-quantity-btn {
2202                width: 36px;
2203                height: 36px;
2204                display: flex;
2205                align-items: center;
2206                justify-content: center;
2207                border: 1px solid #ddd;
2208                background: #fff;
2209                cursor: pointer;
2210                transition: background 0.2s;
2211                font-size: 18px;
2212                color: #333;
2213              }
2214              .pd-quantity-btn:hover { background: #f5f5f5; }
2215              .pd-quantity-btn:first-of-type { border-radius: 8px 0 0 8px; }
2216              .pd-quantity-btn:last-of-type { border-radius: 0 8px 8px 0; }
2217              .pd-quantity-input {
2218                width: 48px;
2219                height: 36px;
2220                text-align: center;
2221                border-top: 1px solid #ddd;
2222                border-bottom: 1px solid #ddd;
2223                border-left: none;
2224                border-right: none;
2225                font-size: 14px;
2226                background-color: #fff;
2227                color: #333;
2228                -moz-appearance: textfield;
2229              }
2230              .pd-quantity-input::-webkit-inner-spin-button,
2231              .pd-quantity-input::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }
2232
2233              /* 在庫 */
2234              .pd-stock { font-size: 12px; color: #039BE5; margin-bottom: 8px; }
2235              .pd-stock-warning { color: #757575; }
2236
2237              /* カートエリア */
2238              .pd-cart-area { margin-top: 24px; }
2239              .pd-cart-row {
2240                display: flex;
2241                align-items: center;
2242                gap: 12px;
2243                margin-bottom: 12px;
2244              }
2245              .pd-cart-btn {
2246                flex: 1;
2247                height: 52px;
2248                display: flex;
2249                align-items: center;
2250                justify-content: center;
2251                gap: 10px;
2252                border-radius: 8px;
2253                font-size: 14px;
2254                font-weight: 600;
2255                letter-spacing: 0.03em;
2256                text-decoration: none;
2257                transition: opacity 0.2s;
2258                cursor: pointer;
2259              }
2260              .pd-cart-btn:hover { opacity: 0.8; }
2261              .pd-cart-btn i { line-height: 0.5; font-size: 18px; }
2262              .pd-cart-btn-soldout {
2263                background: #f3f4f6;
2264                color: #9ca3af;
2265                border-radius: 8px;
2266                cursor: default;
2267              }
2268              .pd-cart-btn-soldout:hover { opacity: 1; }
2269              .pd-cart-btn-restock {
2270                background: #fff;
2271                color: #333;
2272                border: 1px solid #ddd;
2273              }
2274            /* バリエーション選択時の在庫切れ表示切り替え(instock/outstock) */
2275            .pd-cart-area.instock.off { display: none; }
2276            .pd-outstock-area { display: none; }
2277            .pd-outstock-area.outstock.on { display: block; }
2278            .pd-outstock-area.outstock.off { display: none; }
2279              .amazon-buynow-description {
2280                margin-top: 12px;
2281              }
2282              .amazon-buynow-description__label {
2283                margin: 0 0 8px;
2284                font-size: 14px;
2285                font-weight: 600;
2286                color: var(--theme-text);
2287              }
2288              .amazon-buynow-description #AmazonBuyNowButton,
2289              .amazon-buynow-description .amazon-buynow-preview {
2290                max-width: 100%;
2291              }
2292              .pd-favorite-btn {
2293                width: 52px;
2294                height: 52px;
2295                border: none;
2296                background: none;
2297                color: var(--theme-icon);
2298                opacity: 0.55;
2299                font-size: 24px;
2300                cursor: pointer;
2301                transition: color 0.2s, opacity 0.2s;
2302                text-decoration: none;
2303              }
2304              .pd-favorite-btn:hover {
2305                color: #FFA726;
2306                opacity: 1;
2307              }
2308              .pd-favorite-btn-active {
2309                color: #FFA726;
2310                opacity: 1;
2311              }
2312
2313              /* 商品問い合わせ */
2314              .pd-contact {
2315                margin-top: 16px;
2316                text-align: right;
2317              }
2318              .pd-contact a {
2319                font-size: 12px;
2320                color: var(--theme-text);
2321                opacity: 0.6;
2322                display: inline-flex;
2323                align-items: center;
2324                gap: 2px;
2325              }
2326              .pd-contact a:hover { opacity: 0.8; }
2327
2328              /* 商品説明 */
2329              .pd-description {
2330                margin-top: 32px;
2331                color: var(--theme-text);
2332              }
2333              /* 商品説明はショップが入力した HTML をそのまま出す。店頭 CSS の preflight が ol / ul の
2334                 list-style と padding を 0 にするため、箇条書き・番号付きリストのマーカーとイãƒ
2334³ãƒ‡ãƒ³ãƒˆã‚’戻す。
2335                 .pd-description の中にだけ効かせ、セクション側の ul / ol(preflight 前提)には波及させない */
2336              .pd-description ul { list-style: disc; padding-left: 1.5em; }
2337              .pd-description ol { list-style: decimal; padding-left: 1.5em; }
2338
2339
2340              /* 商品詳細情報 */
2341              .pd-details {
2342                padding: 24px 0;
2343                margin-top: 32px;
2344              }
2345              .pd-details dl {
2346                display: flex;
2347                align-items: baseline;
2348                font-size: 12px;
2349                color: var(--theme-text);
2350                margin-bottom: 8px;
2351              }
2352              .pd-details dl:last-child { margin-bottom: 0; }
2353              .pd-details dt { font-weight: 600; white-space: nowrap; }
2354              .pd-details dd { margin-left: 4px; }
2355              .pd-special-display {
2356                margin-top: 1.5em;
2357                font-size: 12px;
2358                color: var(--theme-text);
2359              }
2360
2361              /* SNS */
2362              .pd-sns {
2363                display: flex;
2364                align-items: center;
2365                justify-content: center;
2366                gap: 8px;
2367                margin-top: 24px;
2368              }
2369
2370
2371              /* セール期間 */
2372              .pd-sale-period {
2373                margin-top: 8px;
2374                padding: 8px 12px;
2375                background: #FFF5F5;
2376                border-radius: 8px;
2377                font-size: 12px;
2378                color: #FF5050;
2379              }
2380              .pd-sale-period-title { font-weight: 700; margin-bottom: 2px; }
2381
2382              /* 販売期間 */
2383              .pd-sell-period {
2384                margin-top: 8px;
2385                padding: 8px 12px;
2386                background: #F0F4FF;
2387                border-radius: 8px;
2388                font-size: 12px;
2389                color: #2563EB;
2390              }
2391
2392              /* 予約販売 */
2393              .pd-reservation {
2394                margin-top: 8px;
2395                font-size: 12px;
2396              }
2397              .pd-reservation-note { color: #FF6B00; margin-bottom: 4px; }
2398              .pd-release-date {
2399                display: inline-block;
2400                padding: 4px 12px;
2401                border: 1px solid #ddd;
2402                border-radius: 6px;
2403                font-size: 12px;
2404                margin-top: 4px;
2405              }
2406
2407              /* 定期購入割引 */
2408              .pd-subscription-discount { margin: 12px 0; }
2409              .pd-subscription-discount li {
2410                display: flex;
2411                align-items: center;
2412                font-size: 13px;
2413                margin-bottom: 6px;
2414              }
2415              .pd-subscription-discount-time {
2416                background: #E0F2FE;
2417                color: #333;
2418                border: 1px solid #ddd;
2419                text-align: center;
2420                padding: 6px 0;
2421                width: 40%;
2422                border-radius: 6px 0 0 6px;
2423              }
2424              .pd-subscription-discount-price {
2425                border: 1px solid #ddd;
2426                border-left: none;
2427                padding: 6px 12px;
2428                width: 60%;
2429                border-radius: 0 6px 6px 0;
2430              }
2431
2432              /* 定期購入特典 */
2433              .pd-subscription-gift { margin: 12px 0; }
2434              .pd-subscription-gift li {
2435                display: flex;
2436                border: 1px solid #ddd;
2437                border-radius: 8px;
2438                overflow: hidden;
2439                margin-bottom: 8px;
2440              }
2441              .pd-subscription-gift-image { width: 40%; padding: 12px; }
2442              .pd-subscription-gift-image img { width: 100%; height: 80px; object-fit: contain; }
2443              .pd-subscription-gift-text { width: 60%; padding: 12px; }
2444              .pd-subscription-gift-name { font-size: 13px; font-weight: 700; }
2445              .pd-subscription-gift-description {
2446                font-size: 12px;
2447                color: var(--theme-text);
2448                opacity: 0.6;
2449                margin-top: 4px;
2450              }
2451
2452              /* Coming Soon */
2453              .pd-coming-soon {
2454                height: 48px;
2455                display: flex;
2456                align-items: center;
2457                justify-content: center;
2458                background: #2563EB;
2459                color: #fff;
2460                font-size: 13px;
2461                font-weight: 700;
2462                margin-top: 24px;
2463              }
2464
2465              /* 送料 */
2466              .pd-delivery {
2467                font-size: 11px;
2468                color: var(--theme-text);
2469                opacity: 0.5;
2470                margin-top: 2px;
2471              }
2472
2473              /* レビュー */
2474              .pd-review-summary { margin-top: 8px; }
2475
2476              /* 名入れ */
2477              .nameprint-area {
2478                margin-top: 20px;
2479              }
2480              .nameprint-area .nameprint-title-wrap {
2481                margin: 18px 0 8px;
2482                font-size: 12px;
2483              }
2484              .nameprint-area .nameprint-text-wrap p {
2485                margin-bottom: 4px;
2486                font-size: 12px;
2487              }
2488              .nameprint-area .nameprint-title {
2489                font-size: 14px;
2490                font-weight: bold;
2491                margin-top: 10px;
2492              }
2493              .nameprint-area .nameprint-title span {
2494                color: #FF5050;
2495                font-size: 12px;
2496                font-weight: normal;
2497                margin-left: 6px;
2498              }
2499              .nameprint-area .nameprint-text input,
2500              .nameprint-area .nameprint-text textarea {
2501                width: 75%;
2502                padding: 6px;
2503                border: 1px solid #333333;
2504                border-radius: 4px;
2505                background: #fff;
2506                color: #333;
2507              }
2508
2509              /* まとめ買い */
2510              .pd-bulk {
2511                font-size: 12px;
2512                color: var(--theme-text);
2513                opacity: 0.6;
2514                margin-top: 4px;
2515              }
2516              .pd-bulk a { text-decoration: underline; }
2517
2518              /* グループ商品(メインレイアウト下部に全幅表示) */
2519              .pd-group { margin-top: 24px; }
2520              @media (min-width: 768px) { .pd-group { margin-top: 40px; } }
2521              /*
2522                追従型購入バー。購入エリアが画面外に出ているあいだだけ JS が is-shown を付ける。
2523                配色は受領デザインの固定色。背景を固定する以上、その上に乗る文字色もペアで固定する(theme-color.md)。
2524                通常購入・定期購入のボタンだけはショップ設定に追従させたいので theme-button-cart を併用する。
2525              */
2526              .pd-sticky-cart {
2527                /* お気に入りの当たり判定と、その中に置くアイコンの字面。
2528                   隙間の打ち消し量をこの 2 つから導くため変数にしている */
2529                --pd-sticky-fav-hit: 44px;
2530                --pd-sticky-fav-icon: 20px;
2531                position: fixed;
2532                left: 0;
2533                right: 0;
2534                bottom: 0;
2535                z-index: 45;
2536                display: none;
2537                width: 100%;
2538                background: #FAFAFA;
2539                color: #333333;
2540                box-shadow: 0 -2px 8px 0 rgba(0, 0, 0, 0.08);
2541                padding-bottom: env(safe-area-inset-bottom, 0px);
2542              }
2543              .pd-sticky-cart.is-shown { display: block; }
2544              .pd-sticky-cart-inner {
2545                max-width: 1240px;
2546                margin: 0 auto;
2547                padding: 14px 24px;
2548                display: flex;
2549                align-items: center;
2550                gap: 12px;
2551              }
2552              /* 商品名は PC のみ。SP はボタンの幅を確保するため出さない */
2553              .pd-sticky-cart-name {
2554                display: none;
2555                flex: 1 1 auto;
2556                min-width: 0;
2557                max-width: 500px;
2558                margin: 0;
2559                font-size: 13px;
2560                font-weight: 700;
2561                overflow: hidden;
2562                white-space: nowrap;
2563                text-overflow: ellipsis;
2564              }
2565              .pd-sticky-cart-quantity {
2566                flex-shrink: 0;
2567                font-size: 12px;
2568                white-space: nowrap;
2569              }
2570              .pd-sticky-cart-actions {
2571                display: flex;
2572                align-items: center;
2573                gap: 12px;
2574                flex: 1 1 auto;
2575                min-width: 0;
2576                justify-content: flex-end;
2577              }
2578              .pd-sticky-cart-buttons {
2579                display: flex;
2580                align-items: center;
2581                gap: 12px;
2582                flex: 1 1 auto;
2583                /* 伸びるのはここまで。余った幅は actions に残し、justify-content で
2584                   数量ごと右へ寄せる。上限が無いとボタンの左だけに隙間が溜まる */
2585                max-width: 300px;
2586                min-width: 0;
2587                justify-content: flex-end;
2588              }
2589              .pd-sticky-cart-btn {
2590                /* 伸ばして buttons を埋める。伸ばさないと 2 ボタン時に buttons の中で
2591                   余りが出て、数量との隙間が gap より広く見える */
2592                flex: 1 1 300px;
2593                min-width: 0;
2594                display: flex;
2595                align-items: center;
2596                justify-content: center;
2597                gap: 10px;
2598                min-height: 44px;
2599                padding: 8px 10px;
2600                border: none;
2601                border-radius: 8px;
2602                font-family: inherit;
2603                font-size: 12px;
2604                font-weight: 700;
2605                line-height: 1.4;
2606                text-align: center;
2607                text-decoration: none;
2608                cursor: pointer;
2609                transition: opacity 0.2s;
2610              }
2611              .pd-sticky-cart-btn:hover { opacity: 0.8; }
2612              .pd-sticky-cart-btn i { font-size: 16px; line-height: 0; }
2613              .pd-sticky-cart-buttons.is-double .pd-sticky-cart-btn { flex-basis: 140px; }
2614              .pd-sticky-cart-btn-outline {
2615                background: #FFFFFF;
2616                color: #333333;
2617                border: 1px solid #DDDDDD;
2618              }
2619              .pd-sticky-cart-btn-disabled {
2620                background: #E9E9E9;
2621                color: #787878;
2622                cursor: default;
2623              }
2624              .pd-sticky-cart-btn-disabled:hover { opacity: 1; }
2625              .pd-sticky-cart-favorite {
2626                display: flex;
2627                align-items: center;
2628                flex-shrink: 0;
2629                /* 当たり判定とアイコンの差が左右に入るぶん、見た目の隙間が gap に上乗せされる。
2630                   左側の余白を打ち消して gap どおりにする。
2631                   右側は打ち消さない。アイコンの字面はボタン右端より内側に入るが、
2632                   当たり判定を inner の padding (24px) の内側に収めるためそのままにしている */
2633                margin-left: calc((var(--pd-sticky-fav-icon) - var(--pd-sticky-fav-hit)) / 2);
2634              }
2635              /* display はここで宣言しない。セクションの style は Tailwind より後に読まれるため、
2636                 同じ詳細度の .hidden(display: none)を打ち消してお気に入りが 2 つ出る。
2637                 並べ方は本体のお気に入りと同じくユーティリティクラス側で指定する。 */
2638              .pd-sticky-cart-favorite-btn {
2639                width: var(--pd-sticky-fav-hit);
2640                height: var(--pd-sticky-fav-hit);
2641                color: #333333;
2642                opacity: 0.55;
2643                font-size: var(--pd-sticky-fav-icon);
2644                text-decoration: none;
2645                transition: color 0.2s, opacity 0.2s;
2646              }
2647              .pd-sticky-cart-favorite-btn:hover {
2648                color: #FFA726;
2649                opacity: 1;
2650              }
2651              .pd-sticky-cart-favorite-active {
2652                color: #FFA726;
2653                opacity: 1;
2654              }
2655              @media (min-width: 768px) {
2656                .pd-sticky-cart-inner { padding: 20px 24px; }
2657                .pd-sticky-cart-name { display: block; }
2658                /* 縮ませない。中のボタンは shrink: 0 なので縮めても溢れ、商品名に重なる。
2659                   幅が足りないときは省略記号を持つ商品名だけを縮める */
2660                .pd-sticky-cart-actions { flex-shrink: 0; }
2661                .pd-sticky-cart-buttons { flex: 0 0 auto; gap: 24px; max-width: none; }
2662                .pd-sticky-cart-btn { flex: 0 0 240px; }
2663                .pd-sticky-cart-buttons.is-double .pd-sticky-cart-btn { flex: 0 0 160px; }
2664              }
2665          </style>
2666          <div class="py-[32px]">
2667                                                <nav aria-label="パンくずリスト" class="pd-container">
2668              <div class="pd-breadcrumb">
2669                <a href="/">ホーム</a>
2670                                <span><i class="fi fi-rr-angle-small-right" aria-hidden="true"></i></span>
2671                <a href="/view/category/ct140">
2672                  ビューティー
2673                </a>
2674                                <span><i class="fi fi-rr-angle-small-right" aria-hidden="true"></i></span>
2675                <a href="/view/category/ct162">
2676                  スタイリング剤
2677                </a>
2678                                <span><i class="fi fi-rr-angle-small-right" aria-hidden="true"></i></span>
2679                <a href="/view/category/ct294">
2680                  バーム
2681                </a>
2682                              </div>
2683            </nav>
2684                                    
2685            <div class="pd-container">
2686              <div class="pd-main">
2687                <div class="pd-image-wrap">
2688                                    <div class="pd-image-main product-detail-slider swiper" data-zoom-enabled="0">
2689                    <div class="swiper-wrapper">
2690                                                                  <div class="swiper-slide">
2691                        <a
2692                          href="https://makeshop-multi-images.akamaized.net/animd/shopimages/02/48/1_000000004802.jpg?1789545563"
2693                          class="glightbox"
2694                          data-caption="【A倉庫】SALANI オイルバーム(日本製)サラニー オイルバーム 25g アウトバストリートメント 洗い流さないトリートメント スタイリング バーム まとめ髪 天然由来 OIL BALM 自然 ナチュラル ツヤ つや感 つや出し 濡れ髪"
2695                        >
2696                          <img src="https://makeshop-multi-images.akamaized.net/animd/shopimages/02/48/1_000000004802.jpg?1789545563" alt="【A倉庫】SALANI オイルバーム(日本製)サラニー オイルバーム 25g アウトバストリートメント 洗い流さないトリートメント スタイリング バーム まとめ髪 天然由来 OIL BALM 自然 ナチュラル ツヤ つや感 つや出し 濡れ髪">
2697                        </a>
2698                      </div>
2699                                            <div class="swiper-slide">
2700                        <a
2701                          href="https://makeshop-multi-images.akamaized.net/animd/shopimages/02/48/2_000000004802.jpg?1789545563"
2702                          class="glightbox"
2703                          data-caption="【A倉庫】SALANI オイルバーム(日本製)サラニー オイルバーム 25g アウトバストリートメント 洗い流さないトリートメント スタイリング バーム まとめ髪 天然由来 OIL BALM 自然 ナチュラル ツヤ つや感 つや出し 濡れ髪"
2704                        >
2705                          <img src="https://makeshop-multi-images.akamaized.net/animd/shopimages/02/48/2_000000004802.jpg?1789545563" alt="【A倉庫】SALANI オイルバーム(日本製)サラニー オイルバーム 25g アウトバストリートメント 洗い流さないトリートメント スタイリング バーム まとめ髪 天然由来 OIL BALM 自然 ナチュラル ツヤ つや感 つや出し 濡れ髪">
2706                        </a>
2707                      </div>
2708                                            <div class="swiper-slide">
2709                        <a
2710                          href="https://makeshop-multi-images.akamaized.net/animd/shopimages/02/48/3_000000004802.jpg?1789545563"
2711                          class="glightbox"
2712                          data-caption="【A倉庫】SALANI オイルバーム(日本製)サラニー オイルバーム 25g アウトバストリートメント 洗い流さないトリートメント スタイリング バーム まとめ髪 天然由来 OIL BALM 自然 ナチュラル ツヤ つや感 つや出し 濡れ髪"
2713                        >
2714                          <img src="https://makeshop-multi-images.akamaized.net/animd/shopimages/02/48/3_000000004802.jpg?1789545563" alt="【A倉庫】SALANI オイルバーム(日本製)サラニー オイルバーム 25g アウトバストリートメント 洗い流さないトリートメント スタイリング バーム まとめ髪 天然由来 OIL BALM 自然 ナチュラル ツヤ つや感 つや出し 濡れ髪">
2715                        </a>
2716                      </div>
2717                                            <div class="swiper-slide">
2718                        <a
2719                          href="https://makeshop-multi-images.akamaized.net/animd/shopimages/02/48/4_000000004802.jpg?1789545563"
2720                          class="glightbox"
2721                          data-caption="【A倉庫】SALANI オイルバーム(日本製)サラニー オイルバーム 25g アウトバストリートメント 洗い流さないトリートメント スタイリング バーム まとめ髪 天然由来 OIL BALM 自然 ナチュラル ツヤ つや感 つや出し 濡れ髪"
2722                        >
2723                          <img src="https://makeshop-multi-images.akamaized.net/animd/shopimages/02/48/4_000000004802.jpg?1789545563" alt="【A倉庫】SALANI オイルバーム(日本製)サラニー オイルバーム 25g アウトバストリートメント 洗い流さないトリートメント スタイリング バーム まとめ髪 天然由来 OIL BALM 自然 ナチュラル ツヤ つや感 つや出し 濡れ髪">
2724                        </a>
2725                      </div>
2726                                            <div class="swiper-slide">
2727                        <a
2728                          href="https://makeshop-multi-images.akamaized.net/animd/shopimages/02/48/5_000000004802.jpg?1789545563"
2729                          class="glightbox"
2730                          data-caption="【A倉庫】SALANI オイルバーム(日本製)サラニー オイルバーム 25g アウトバストリートメント 洗い流さないトリートメント スタイリング バーム まとめ髪 天然由来 OIL BALM 自然 ナチュラル ツヤ つや感 つや出し 濡れ髪"
2731                        >
2732                          <img src="https://makeshop-multi-images.akamaized.net/animd/shopimages/02/48/5_000000004802.jpg?1789545563" alt="【A倉庫】SALANI オイルバーム(日本製)サラニー オイルバーム 25g アウトバストリートメント 洗い流さないトリートメント スタイリング バーム まとめ髪 天然由来 OIL BALM 自然 ナチュラル ツヤ つや感 つや出し 濡れ髪">
2733                        </a>
2734                      </div>
2735                                            <div class="swiper-slide">
2736                        <a
2737                          href="https://makeshop-multi-images.akamaized.net/animd/shopimages/02/48/6_000000004802.jpg?1789545563"
2738                          class="glightbox"
2739                          data-caption="【A倉庫】SALANI オイルバーム(日本製)サラニー オイルバーム 25g アウトバストリートメント 洗い流さないトリートメント スタイリング バーム まとめ髪 天然由来 OIL BALM 自然 ナチュラル ツヤ つや感 つや出し 濡れ髪"
2740                        >
2741                          <img src="https://makeshop-multi-images.akamaized.net/animd/shopimages/02/48/6_000000004802.jpg?1789545563" alt="【A倉庫】SALANI オイルバーム(日本製)サラニー オイルバーム 25g アウトバストリートメント 洗い流さないトリートメント スタイリング バーム まとめ髪 天然由来 OIL BALM 自然 ナチュラル ツヤ つや感 つや出し 濡れ髪">
2742                        </a>
2743                      </div>
2744                                            <div class="swiper-slide">
2745                        <a
2746                          href="https://makeshop-multi-images.akamaized.net/animd/shopimages/02/48/7_000000004802.jpg?1789545563"
2747                          class="glightbox"
2748                          data-caption="【A倉庫】SALANI オイルバーム(日本製)サラニー オイルバーム 25g アウトバストリートメント 洗い流さないトリートメント スタイリング バーム まとめ髪 天然由来 OIL BALM 自然 ナチュラル ツヤ つや感 つや出し 濡れ髪"
2749                        >
2750                          <img src="https://makeshop-multi-images.akamaized.net/animd/shopimages/02/48/7_000000004802.jpg?1789545563" alt="【A倉庫】SALANI オイルバーム(日本製)サラニー オイルバーム 25g アウトバストリートメント 洗い流さないトリートメント スタイリング バーム まとめ髪 天然由来 OIL BALM 自然 ナチュラル ツヤ つや感 つや出し 濡れ髪">
2751                        </a>
2752                      </div>
2753                                            <div class="swiper-slide">
2754                        <a
2755                          href="https://makeshop-multi-images.akamaized.net/animd/shopimages/02/48/8_000000004802.jpg?1789545563"
2756                          class="glightbox"
2757                          data-caption="【A倉庫】SALANI オイルバーム(日本製)サラニー オイルバーム 25g アウトバストリートメント 洗い流さないトリートメント スタイリング バーム まとめ髪 天然由来 OIL BALM 自然 ナチュラル ツヤ つや感 つや出し 濡れ髪"
2758                        >
2759                          <img src="https://makeshop-multi-images.akamaized.net/animd/shopimages/02/48/8_000000004802.jpg?1789545563" alt="【A倉庫】SALANI オイルバーム(日本製)サラニー オイルバーム 25g アウトバストリートメント 洗い流さないトリートメント スタイリング バーム まとめ髪 天然由来 OIL BALM 自然 ナチュラル ツヤ つや感 つや出し 濡れ髪">
2760                        </a>
2761                      </div>
2762                                            <div class="swiper-slide">
2763                        <a
2764                          href="https://makeshop-multi-images.akamaized.net/animd/shopimages/02/48/9_000000004802.jpg?1789545563"
2765                          class="glightbox"
2766                          data-caption="【A倉庫】SALANI オイルバーム(日本製)サラニー オイルバーム 25g アウトバストリートメント 洗い流さないトリートメント スタイリング バーム まとめ髪 天然由来 OIL BALM 自然 ナチュラル ツヤ つや感 つや出し 濡れ髪"
2767                        >
2768                          <img src="https://makeshop-multi-images.akamaized.net/animd/shopimages/02/48/9_000000004802.jpg?1789545563" alt="【A倉庫】SALANI オイルバーム(日本製)サラニー オイルバーム 25g アウトバストリートメント 洗い流さないトリートメント スタイリング バーム まとめ髪 天然由来 OIL BALM 自然 ナチュラル ツヤ つや感 つや出し 濡れ髪">
2769                        </a>
2770                      </div>
2771                                                                </div>
2772                    <div class="pd-slider-prev swiper-button-prev" aria-label="前の画像"></div>
2773                    <div class="pd-slider-next swiper-button-next" aria-label="次の画像"></div>
2774                  </div>
2775                  <div class="pd-thumbnails product-detail-thumbnail swiper">
2776                    <div class="swiper-wrapper">
2777                                                                  <div class="swiper-slide">
2778                        <img data-img-fade loading="lazy" src="https://makeshop-multi-images.akamaized.net/animd/shopimages/02/48/1_000000004802.jpg?1789545563" alt="【A倉庫】SALANI オイルバーム(日本製)サラニー オイルバーム 25g アウトバストリートメント 洗い流さないトリートメント スタイリング バーム まとめ髪 天然由来 OIL BALM 自然 ナチュラル ツヤ つや感 つや出し 濡れ髪">
2779                      </div>
2780                                            <div class="swiper-slide">
2781                        <img data-img-fade loading="lazy" src="https://makeshop-multi-images.akamaized.net/animd/shopimages/02/48/2_000000004802.jpg?1789545563" alt="【A倉庫】SALANI オイルバーム(日本製)サラニー オイルバーム 25g アウトバストリートメント 洗い流さないトリートメント スタイリング バーム まとめ髪 天然由来 OIL BALM 自然 ナチュラル ツヤ つや感 つや出し 濡れ髪">
2782                      </div>
2783                                            <div class="swiper-slide">
2784                        <img data-img-fade loading="lazy" src="https://makeshop-multi-images.akamaized.net/animd/shopimages/02/48/3_000000004802.jpg?1789545563" alt="【A倉庫】SALANI オイルバーム(日本製)サラニー オイルバーム 25g アウトバストリートメント 洗い流さないトリートメント スタイリング バーム まとめ髪 天然由来 OIL BALM 自然 ナチュラル ツヤ つや感 つや出し 濡れ髪">
2785                      </div>
2786                                            <div class="swiper-slide">
2787                        <img data-img-fade loading="lazy" src="https://makeshop-multi-images.akamaized.net/animd/shopimages/02/48/4_000000004802.jpg?1789545563" alt="【A倉庫】SALANI オイルバーム(日本製)サラニー オイルバーム 25g アウトバストリートメント 洗い流さないトリートメント スタイリング バーム まとめ髪 天然由来 OIL BALM 自然 ナチュラル ツヤ つや感 つや出し 濡れ髪">
2788                      </div>
2789                                            <div class="swiper-slide">
2790                        <img data-img-fade loading="lazy" src="https://makeshop-multi-images.akamaized.net/animd/shopimages/02/48/5_000000004802.jpg?1789545563" alt="【A倉庫】SALANI オイルバーム(日本製)サラニー オイルバーム 25g アウトバストリートメント 洗い流さないトリートメント スタイリング バーム まとめ髪 天然由来 OIL BALM 自然 ナチュラル ツヤ つや感 つや出し 濡れ髪">
2791                      </div>
2792                                            <div class="swiper-slide">
2793                        <img data-img-fade loading="lazy" src="https://makeshop-multi-images.akamaized.net/animd/shopimages/02/48/6_000000004802.jpg?1789545563" alt="【A倉庫】SALANI オイルバーム(日本製)サラニー オイルバーム 25g アウトバストリートメント 洗い流さないトリートメント スタイリング バーム まとめ髪 天然由来 OIL BALM 自然 ナチュラル ツヤ つや感 つや出し 濡れ髪">
2794                      </div>
2795                                            <div class="swiper-slide">
2796                        <img data-img-fade loading="lazy" src="https://makeshop-multi-images.akamaized.net/animd/shopimages/02/48/7_000000004802.jpg?1789545563" alt="【A倉庫】SALANI オイルバーム(日本製)サラニー オイルバーム 25g アウトバストリートメント 洗い流さないトリートメント スタイリング バーム まとめ髪 天然由来 OIL BALM 自然 ナチュラル ツヤ つや感 つや出し 濡れ髪">
2797                      </div>
2798                                            <div class="swiper-slide">
2799                        <img data-img-fade loading="lazy" src="https://makeshop-multi-images.akamaized.net/animd/shopimages/02/48/8_000000004802.jpg?1789545563" alt="【A倉庫】SALANI オイルバーム(日本製)サラニー オイルバーム 25g アウトバストリートメント 洗い流さないトリートメント スタイリング バーム まとめ髪 天然由来 OIL BALM 自然 ナチュラル ツヤ つや感 つや出し 濡れ髪">
2800                      </div>
2801                                            <div class="swiper-slide">
2802                        <img data-img-fade loading="lazy" src="https://makeshop-multi-images.akamaized.net/animd/shopimages/02/48/9_000000004802.jpg?1789545563" alt="【A倉庫】SALANI オイルバーム(日本製)サラニー オイルバーム 25g アウトバストリートメント 洗い流さないトリートメント スタイリング バーム まとめ髪 天然由来 OIL BALM 自然 ナチュラル ツヤ つや感 つや出し 濡れ髪">
2803                      </div>
2804                                                                </div>
2805                    <div class="swiper-scrollbar"></div>
2806                  </div>
2807                                    
2808                </div>
2809
2810                <div class="pd-info">
2811                  <div>
2812                                                                                                                                            </div>
2813
2814                  
2815                                        <p class="pd-category">
2816                      <a href="/view/category/ct294">バーム</a>
2817                    </p>
2818                    
2819                  <h2 class="pd-name">【A倉庫】SALANI オイルバーム(日本製)サラニー オイルバーム 25g アウトバストリートメント 洗い流さないトリートメント スタイリング バーム まとめ髪 天然由来 OIL BALM 自然 ナチュラル ツヤ つや感 つや出し 濡れ髪</h2>
2820
2821                  <div class="pd-price-area">
2822                                                            <p class="pd-price">
2823                      <span id="pd-price-value">ï¿¥<span data-id="makeshop-item-price:1">3,300</span></span>
2824                        <span class="text-[10px] ml-1 opacity-70">(税込)</span>
2825                    </p>
2826                                                                                                    </div>
2827
2828                  
2829                  
2830                  
2831                                    <p class="pd-delivery">送料:¥200~</p>
2832                                                      
2833                                        <div
2834                      class="pd-review-summary review-summary-container"
2835                      data-gname="000000004802"
2836                      data-pid="000000004802"
2837                      data-group="true"
2838                      data-action="summary"
2839                    ></div>
2840
2841                  
2842                  <div class="pd-quantity">
2843                    <button type="button" id="item-quantity-down" class="pd-quantity-btn" aria-label="数量を減らす">
2844                      <i class="fi fi-rr-minus-small" aria-hidden="true"></i>
2845                    </button>
2846                    <input
2847                      id="item-quantity-input"
2848                      class="pd-quantity-input"
2849                      type="number"
2850                      name="quantity"
2851                      data-id="makeshop-item-quantity"
2852                      min="1"
2853                      value="1"
2854                      aria-label="数量"
2855                    >
2856                    <button type="button" id="item-quantity-up" class="pd-quantity-btn" aria-label="数量を増やす">
2857                      <i class="fi fi-rr-plus-small" aria-hidden="true"></i>
2858                    </button>
2859                  </div>
2860
2861                  
2862                  
2863                  
2864                  
2865                    
2866                  <div
2867                    class="pd-cart-area instock on">
2868                                                            <div class="pd-cart-row">
2869                      <a href="#makeshop-item-cart-entry-url:1" class="pd-cart-btn pd-cart-btn-primary theme-button-cart">
2870                        <i class="fi fi-rr-shopping-cart" aria-hidden="true"></i>カートに入れる
2871                      </a>
2872                      <a
2873                        href="/view/member/login"
2874                        class="pd-favorite-btn pd-favorite-off item-favorite-off flex items-center justify-center shrink-0 "
2875                        aria-label="お気に入りに追加"
2876                      >
2877                        <i class="fi fi-rr-heart" aria-hidden="true"></i>
2878                      </a>
2879                      <a
2880                        href="/view/member/login"
2881                        class="pd-favorite-btn pd-favorite-btn-active pd-favorite-on item-favorite-on flex items-center justify-center shrink-0 hidden"
2882                        aria-label="お気に入りから削除"
2883                      >
2884                        <i class="fi fi-rr-heart" aria-hidden="true"></i>
2885                      </a>
2886                    </div>
2887                                                            
2888                                        </div>
2889                  <div
2890                    class="pd-outstock-area outstock off">
2891                                        <div class="pd-cart-row"><div class="pd-cart-btn pd-cart-btn-soldout">売り切れ</div></div>
2892                                      </div>
2893                  
2894                  <p class="pd-contact">
2895                    <a href="#makeshop-item-contact-url">
2896                      <i class="fi fi-rr-angle-small-right" aria-hidden="true"></i>この商品について問い合わせる
2897                    </a>
2898                  </p>
2899
2900                    <div class="pd-description">
2901                      
2902
2903<img src="http://gigaplus.makeshop.jp/animd/bubustore/shouhin/salani/oil_02.jpg" width="100%">
2904<br>
2905
2906
2907
2908
2909
2910<font size="4"><b>SALANI</b></font><br>
2911<font size="3"><b>OIL BALM</b></font><br>
2912<font size="1">サラニー オイルバーム</font><br><br>
2913<font size="2" color="#555555">
2914</font><br><br>
2915
2916<font size="2">
2917
2918<b>◆Natural<br>
2919天然由来を生かす</b><br>
2920オイルとバターを混ぜ合わせたような質感で
2921柔らかく溶け、伸びが良く髪・肌に馴染ませやすい。<br><br>
2922	
2923
2924<b>◆Styling<br>
2925自然な艶感・束感を実現</b><br>
2926ほどよいウェット感
2927自然なツヤ・束感が簡単に<br><br>
2928
2929	
2930	
2931<b>
2931◆Multi-use<br>
2932マルチに活躍</b><br>
2933マルチユースに使えて
2934すベてのシーンにフィットして心地いい。<br><br>
2935
2936・スタイリング<br>
2937ほどよいウェット感、自然なツヤ・束感が簡単に<br><br>
2938	
2939・アウトバス<br>
2940髪に潤いを与え、パサつきを抑えます
2941<br><br>
2942	
2943・ボディ&ハンド<br>
2944手や脚の乾燥が気になる箇所に
2945<br><br>
2946	
2947<b>◆Fragrance<br>
2948芳醇な梨とフリージア</b><br>
2949凛としながらも柔らかく、<br>}
2950女性のしなやかさと透明感が溶け合う香り。<br><br>
2951
2952<b>◆Ingredients
2953<br>
2954天然由来成分</b><br>
2955カメリアバター<br>
2956・シアバターより酸化安定性が高い<br>
2957・40℃でとろけるなめらかな質感<br>
2958・髪にツヤとまとまりを与える<br><br>
29599つの高機能エモリエント成分<br>
2960ムルムルバター、カカオ脂、スクワラン、バオバブ種子油、アルガニアスピノサ核油、マカデミア種子油、ホホバ種子油、アボカド油、メドã
2960‚¦ãƒ•ォーム油<br><br>
2961<b>◆How to use
2962<br>
2963使用方法</b><br>
2964・Styling
2965適量を指先で取り、手のひらで温めて柔らかくする。<br>
2966髪全体に馴染ませて、スタイリングする。<br>
2967残ったバームはそのままハンドケアに。<br><br>
2968
2969・Body&Hand
2970手や腕、脚の乾燥が気になる箇所に馴染ませる。
2971伸びがいいので少量でも充分です。
2972
2973・Treatment
2974	ドライヤー前に適量を髪全体に馴染ませる。
2975毛先や乾燥部分に特に馴染ませる。
2976
2977	
2978
2979
2980</font><br>
2981
2982
2983<table width="100%" cellpadding="5" cellspacing = "1" border="0" bgcolor="#999">
2984
2985
2986
2987<tr>
2988<th bgcolor="#F5F5F5"><font size="2">内容量</font></th><td colspan="6" align="left" bgcolor="#FFFFFF"><font size="2">
298925g
2990
2991<br>
2992</font></td></tr>
2993	
2994<tr>
2995<th bgcolor="#F5F5F5"><font size="2">製造国</font></th><td colspan="6" align="left" bgcolor="#FFFFFF"><font size="2">
2996日本製(MADE IN JAPAN)
2997</font></td></tr>
2998	
2999	
3000
3001<tr>
3002<th bgcolor="#F5F5F5"><font size="2">ご注意</font></th><td colspan="6" align="left" bgcolor="#FFFFFF"><font size="2">
3003●使用中や使用後に日光にあたって、赤み、はれ、かゆみ、刺激、色抜け(白斑等)や黒ずみ等の異常が現れた時は使用を中止してください。そのまま使用を続けると悪化することがありますので医師にご相談ください。<br>
3004●直射日光、低温及び高温多湿、乳幼児の手の届く場所を避けしっかりフタをして保管してください。
3005<br>
3006</font></td></tr>
3007	
3008
3009<tr>
3010<th bgcolor="#F5F5F5"><font size="2">販売元</font></th><td colspan="6" align="left" bgcolor="#FFFFFF"><font size="2">
3011アニマルデザイン株式会社<br>
3012TEL:092-204-0808
3013<br>
3014</font></td></tr>
3015	
3016
3017</table>
3018<br><br><br>
3019<font size="1" color="#838383">
3020■KEY WORD:
3021</font>
3022<font size="1" color="#838383"> くせ毛対策 洗い流さないトリートメント アウトバストリートメント 人気 おすすめ ヘアケア 美容室 サロン専売 くせ うねり プレゼント ギフト ミエル オイルクリーム ヘアワックス バーム スタイリング剤 オイルバーム <mielオイルクリーム/28g> ヘアオイル ヘアバーム ワックス ヘアバター 【公式】ヘアワックス 2個セット product(ザ プロダクト) スタイリングバーム レディース 髪の毛 髪 束感 美容室 美容院 濡れ髪 ヘアサロン 香り 天然由来成分 ヘアバーム DestinOffrir サボン/ホワイト/アンバーバニラ 70g 濡れ髪 スタイリング リンク オリジナル メーカーズ ヘアバーム 993 997 ブロッシュ 121 70g スタイリング LINC ORIGINAL MAKERS brosh オルナオーガニック ヘアバーム 【 シアバター 配合 保湿 ヘア バーム 】 「 ヘア ケア スタイリング が同時に可能 」「 レディース メンズ でも使える 」30g ミリバーム mm
3023  縮毛矯正 ジェル ロックオイルl pluseau 送料無料 MORE CHANGE 200m l送料無料 即納 数秒チェンジ モアチェンジ ブローローション ローショLANI モアチェンジ サラニー More change 洗い流さないトリートメント ミスト ヘアミスト トリートメントミスト ヘアスプレー 寝癖直し ウォーE ハニーク ディープリペア 2WAY ヘアミスト モイスト 導入保水液ヘアミスト マヌカハニー はちみつ 蜜髪 プロテイン アミノ酸 キューティクル補修 ディアテック デザインフリーフィン RM リペアミスト 200mL ミスト 浸透 補修 アウトバストリートメント 洗い流さない deartech うねり 湿気 保水 広がり パサつき 200mL  Johns Blend John's Blend ヘアケア トラDESIGN 縮毛矯正ケア 痛み ヘアケア 感動的な違い  日焼け止め モチモチシリーズ 時短 もちもち モチモチシャンプー ダメージヘア ヘアスプレー 自担 ラッピング プレゼント ギフトボックス ギフトBOX ギフト プチギフト おもたせ 贈り物 お祝い 誕生日 バースデー クリスマ バレンタインデー ホワイトデー 母の日 父の日 敬老の日 入学 入社 卒業 結婚 出産 内祝 引越し 就職 転職 開店 口コミ クチコミ 話題 大反響 大好評 大人気 大評判 ネット通販 テレビ通販 TV通販 ヒット商品 正規品 正規販売店モチモチシャンプー いい香り いい 良い香り 良い匂い いい匂い ドライヤー 香水代わり ヘアフレグランス
3024</font><br>
3025
3026                      
3027                      
3028                      
3029                    </div>
3030
3031                  <div class="pd-details">
3032                      <dl>
3033                        <dt>システム商品コード</dt>
3034                        <dd>:000000004802</dd>
3035                      </dl>
3036                                        </div>
3037
3038                  <div class="pd-sns">
3039                    <span>
3040      <a href="//twitter.com/share" class="twitter-share-button"
3041        data-count="horizontal"
3042        data-text="【A倉庫】SALANI オイルバーム(日本製)サラニー オイルバーム 25g アウトバストリートメント 洗い流さないトリートメント スタイリング バーム まとめ髪 天然由来 OIL BALM 自然 ナチュラル ツヤ つや感 つや出し 濡れ髪 【公式】BUBU STORE |ブブストア #通販サイト BUBUSTORE"
3043        data-lang="ja">【A倉庫】SALANI オイルバーム(日本製)サラニー オイルバーム 25g アウトバストリートメント 洗い流さないトリートメント スタイリング バーム まとめ髪 天然由来 OIL BALM 自然 ナチュラル ツヤ つや感 つや出し 濡れ髪についてつぶやく</a>
3044      
3044<script type="text/javascript" src="//platform.twitter.com/widgets.js" charset="utf-8"></script>
3044
3045    </span>                    <span><div class="line-it-button" data-lang="ja" data-type="share-a" data-url="https://www.bubustore.jp/view/item/000000004802" style="display: none;"></div>
3045<script src="https://d.line-scdn.net/r/web/social-plugin/js/thirdparty/loader.min.js" async="async" defer="defer"></script>
3045</span>                                      </div>
3046
3047                    
3048                    <div
3049                      class="review-container"
3050                      data-gname="000000004802"
3051                      data-pid="000000004802"
3052                      data-group="true"
3053                      data-action="widget"
3054                      data-review-count="5"
3055                      data-sort="rate"
3056                      data-sort-order="desc"
3057                      data-hide-response="0"
3058                      data-summary-detail="0"
3059                      data-readmore="0"
3060                    ></div>
3061                </div>
3062              </div>
3063
3064
3065                                <div class="pd-group">
3066                  <div class="mb-6 text-center">
3067                    <p class="text-[10px] md:text-[11px] font-bold tracking-[0.3em] uppercase opacity-60 mb-2">
3068                      Related Products
3069                    </p>
3070                    <h2 class="text-xl md:text-2xl font-bold tracking-tight">関連商品</h2>
3071                  </div>
3072
3073                  <ul class="grid grid-cols-2 md:grid-cols-4 gap-4 md:gap-6">
3074                                        <li class="group flex flex-col">
3075                      <a
3076                        href="/view/item/000000001352"
3077                        class="relative block aspect-square overflow-hidden theme-rounded bg-current/10 mb-3"
3078                      >
3079                        <img data-img-fade
3080                          class="w-full h-full object-cover transition-transform duration-300 group-hover:scale-105"
3081                          src="https://makeshop-multi-images.akamaized.net/animd/itemimages/000000001352_Y5Eaq5s.jpg"
3082                          alt=""
3083                          loading="lazy"
3084                        >
3085                                              </a>
3086
3087                      <div class="flex flex-col flex-1">
3088                        <a
3089                          href="/view/item/000000001352"
3090                          class="text-sm font-medium text-[var(--theme-text)] hover:opacity-70 mb-2"
3091                        >
3092                          【A倉庫】【うねり・パサつきに】SALANI モアチェンジ  200ml (日本製) more change | サラニー 洗い流さないトリートメント ミストタイプ トリートメントミスト スタイリング  サラつる  トリプルケラチン ヘアミスト いい香り ヘアミスト ドライヤー前
3093                        </a>
3094
3095                        <div class="mb-3">
3096                                                    <p class="text-base font-bold text-[var(--theme-text)] leading-tight">
3097                            ¥3,300                    <span class="text-[10px] ml-1 opacity-70">(税込)</span>
3098                          </p>
3099                                                  </div>
3100
3101                        <div class="mt-auto">
3102                                                                              <a
3103                            href="#makeshop-common-cart-entry-url:000000001352"
3104                            class="theme-button-cart theme-rounded w-full h-10 flex items-center justify-center text-[11px] font-bold uppercase tracking-wider transition-opacity hover:opacity-80"
3105                          >
3106                            カートに入れる
3107                          </a>
3108                                                  </div>
3109                      </div>
3110                    </li>
3111                                        <li class="group flex flex-col">
3112                      <a
3113                        href="/view/item/000000004800"
3114                        class="relative block aspect-square overflow-hidden theme-rounded bg-current/10 mb-3"
3115                      >
3116                        <img data-img-fade
3117                          class="w-full h-full object-cover transition-transform duration-300 group-hover:scale-105"
3118                          src="https://makeshop-multi-images.akamaized.net/animd/itemimages/000000004800_y1Ga0HO.jpg"
3119                          alt=""
3120                          loading="lazy"
3121                        >
3122                                              </a>
3123
3124                      <div class="flex flex-col flex-1">
3125                        <a
3126                          href="/view/item/000000004800"
3127                          class="text-sm font-medium text-[var(--theme-text)] hover:opacity-70 mb-2"
3128                        >
3129                          【A倉庫】 SALANI トリートメント 300ml サラニー シャンプー ヘマチン 加水分解ケラチン 加水分解シルク 植物エキス 植物オイル ケラチン ダメージケア ダメージリペア 補修 ブリーチヘア ストレートヘア 香り 天然由来成分 美容室 サロン プロ愛用
3130                        </a>
3131
3132                        <div class="mb-3">
3133                                                    <p class="text-base font-bold text-[var(--theme-text)] leading-tight">
3134                            ¥4,400                    <span class="text-[10px] ml-1 opacity-70">(税込)</span>
3135                          </p>
3136                                                  </div>
3137
3138                        <div class="mt-auto">
3139                                                                              <a
3140                            href="#makeshop-common-cart-entry-url:000000004800"
3141                            class="theme-button-cart theme-rounded w-full h-10 flex items-center justify-center text-[11px] font-bold uppercase tracking-wider transition-opacity hover:opacity-80"
3142                          >
3143                            カートに入れる
3144                          </a>
3145                                                  </div>
3146                      </div>
3147                    </li>
3148                                        <li class="group flex flex-col">
3149                      <a
3150                        href="/view/item/000000004801"
3151                        class="relative block aspect-square overflow-hidden theme-rounded bg-current/10 mb-3"
3152                      >
3153                        <img data-img-fade
3154                          class="w-full h-full object-cover transition-transform duration-300 group-hover:scale-105"
3155                          src="https://makeshop-multi-images.akamaized.net/animd/itemimages/000000004801_aIa09q5.jpg"
3156                          alt=""
3157                          loading="lazy"
3158                        >
3159                                              </a>
3160
3161                      <div class="flex flex-col flex-1">
3162                        <a
3163                          href="/view/item/000000004801"
3164                          class="text-sm font-medium text-[var(--theme-text)] hover:opacity-70 mb-2"
3165                        >
3166                          【A倉庫】 SALANI シャンプー 300ml サラニー シャンプー ヘマチン 加水分解ケラチン 加水分解シルク 天然マイクロクレイ ケラチン ダメージケア ダメージリペア 補修 ブリーチヘア ストレートヘア 香り 天然由来成分 美容室 サロン プロ愛用
3167                        </a>
3168
3169                        <div class="mb-3">
3170                                                    <p class="text-base font-bold text-[var(--theme-text)] leading-tight">
3171                            ¥4,400                    <span class="text-[10px] ml-1 opacity-70">(税込)</span>
3172                          </p>
3173                                                  </div>
3174
3175                        <div class="mt-auto">
3176                                                                              <a
3177                            href="#makeshop-common-cart-entry-url:000000004801"
3178                            class="theme-button-cart theme-rounded w-full h-10 flex items-center justify-center text-[11px] font-bold uppercase tracking-wider transition-opacity hover:opacity-80"
3179                          >
3180                            カートに入れる
3181                          </a>
3182                                                  </div>
3183                      </div>
3184                    </li>
3185                                      </ul>
3186                </div>
3187                            </div>
3188          </div>
3189
3190          <div class="pd-sticky-cart" data-sticky-cart>
3191            <div class="pd-sticky-cart-inner">
3192              <p class="pd-sticky-cart-name">【A倉庫】SALANI オイルバーム(日本製)サラニー オイルバーム 25g アウトバストリートメント 洗い流さないトリートメント スタイリング バーム まとめ髪 天然由来 OIL BALM 自然 ナチュラル ツヤ つや感 つや出し 濡れ髪</p>
3193              <div class="pd-sticky-cart-actions">
3194                <span class="pd-sticky-cart-quantity">数量 <span data-sticky-cart-quantity>1</span></span>
3195                <div class="pd-sticky-cart-buttons" data-sticky-cart-buttons></div>
3196                <div class="pd-sticky-cart-favorite">
3197                  <a
3198                    href="/view/member/login"
3199                    class="pd-sticky-cart-favorite-btn item-favorite-off flex items-center justify-center shrink-0 "
3200                    aria-label="お気に入りに追加"
3201                  >
3202                    <i class="fi fi-rr-heart" aria-hidden="true"></i>
3203                  </a>
3204                  <a
3205                    href="/view/member/login"
3206                    class="pd-sticky-cart-favorite-btn pd-sticky-cart-favorite-active item-favorite-on flex items-center justify-center shrink-0 hidden"
3207                    aria-label="お気に入りから削除"
3208                  >
3209                    <i class="fi fi-rr-heart" aria-hidden="true"></i>
3210                  </a>
3211                </div>
3212              </div>
3213            </div>
3214          </div>
3215
3216          
3216<script>
3217            (function () {
3218              var slider;
3219              var thumbnail;
3220
3221              function initSlider() {
3222                var thumbnailEl = document.querySelector('.product-detail-thumbnail');
3223                var sliderEl = document.querySelector('.product-detail-slider');
3224                if (!thumbnailEl || !sliderEl) return;
3225
3226                thumbnail = new Swiper('.product-detail-thumbnail', {
3227                  slidesPerView: 'auto',
3228                  spaceBetween: 12,
3229                  watchSlidesProgress: true,
3230                  loop: false,
3231                  freeMode: true,
3232                  scrollbar: {
3233                    el: '.swiper-scrollbar',
3234                    draggable: true,
3235                  },
3236                });
3237
3238                slider = new Swiper('.product-detail-slider', {
3239                  slidesPerView: 1,
3240                  loop: true,
3241                  thumbs: {
3242                    swiper: thumbnail,
3243                  },
3244                  navigation: {
3245                    nextEl: '.swiper-button-next',
3246                    prevEl: '.swiper-button-prev',
3247                  },
3248                });
3249              }
3250
3251              // インナーズーム(PC のホバー拡大)。
3252              // 個々の img ではなく .pd-image-main にイベントを委譲する。こうするとスライドを切り替えても、
3253              // バリエーション選択で画像が差し替わっても、その時点で表示中の画像に対して効く。
3254              // クリックでの全画面拡大(GLightbox)とは扱うイベントが違うため干渉しない。
3255              function initImageZoom() {
3256                var canHover =
3257                  window.matchMedia && window.matchMedia('(hover: hover) and (pointer: fine)').matches;
3258
3259                document.querySelectorAll('.pd-image-main').forEach(function (frame) {
3260                  // 設定 OFF・タッチ端末では is-zoomable を付けない(CSS 側が一切効かなくなる)
3261                  if (frame.getAttribute('data-zoom-enabled') !== '1' || !canHover) return;
3262                  frame.classList.add('is-zoomable');
3263
3264                  // getBoundingClientRect() は transform 適用後の矩形を返す。拡大中に測り直すと
3265                  // 基準が拡大後の矩形になり、拡大部分がカーソルからずれた位置に張り付く
3266                  // (倍率2倍では画像幅の 1/8 手前で頭打ちになる)。拡大前に一度だけ測って保持する。
3267                  // 枠(frame)の矩形で代用しないのは、複数画像モードの枠が Swiper コンテナで、
3268                  // 縦横比の違う画像が混ざると枠の高さと画像の高さが一致しないため。
3269                  var baseImg = null;
3270                  var baseRect = null;
3271
3272                  function clearZoom() {
3273                    baseImg = null;
3274                    baseRect = null;
3275                    frame.querySelectorAll('img.is-zooming').forEach(function (img) {
3276                      img.classList.remove('is-zooming');
3277                      img.style.transformOrigin = '';
3278                    });
3279                  }
3280
3281                  frame.addEventListener('mousemove', function (e) {
3282                    var img = e.target && e.target.closest ? e.target.closest('img') : null;
3283                    // 画像の外(スライダーの矢印など)へ出たら解除する
3284                    if (!img || !frame.contains(img)) {
3285                      clearZoom();
3286                      return;
3287                    }
3288
3289                    // 別の画像へ移ったときだけ測り直す。拡大前の値を得るため clearZoom() が先。
3290                    if (img !== baseImg) {
3291                      clearZoom();
3292                      var measured = img.getBoundingClientRect();
3293                      if (!measured.width || !measured.height) return;
3294                      // is-zooming を外しても scale(1) へ戻る transition が残っている間は、
3295                      // getBoundingClientRect() がまだ拡大途中の矩形を返す(矢印へ出てすぐ画像へ戻った場合など)。
3296                      // offsetWidth / offsetHeight は transform の影響を受けないので、ずれている間は
3297                      // 「中心が動かない」ことを使って拡大前の矩形に直す。
3298                      // (解除時に transformOrigin を既定の 50% 50% へ戻しているため中心が不変になる)
3299                      // 取得できない環境では補正せず、測った値をそのまま使う。
3300                      var w = img.offsetWidth;
3301                      var h = img.offsetHeight;
3302                      if (w && h && (Math.abs(measured.width - w) > 1 || Math.abs(measured.height - h) > 1)) {
3303                        measured = {
3304                          left: measured.left + (measured.width - w) / 2,
3305                          top: measured.top + (measured.height - h) / 2,
3306                          width: w,
3307                          height: h,
3308                        };
3309                      }
3310                      baseImg = img;
3311                      baseRect = measured;
3312                    }
3313
3314                    // カーソル位置を transform-origin にして、枠内で拡大部分が追随するようにする
3315                    var x = Math.min(100, Math.max(0, ((e.clientX - baseRect.left) / baseRect.width) * 100));
3316                    var y = Math.min(100, Math.max(0, ((e.clientY - baseRect.top) / baseRect.height) * 100));
3317                    img.style.transformOrigin = x + '% ' + y + '%';
3318                    img.classList.add('is-zooming');
3319                  });
3320
3321                  frame.addEventListener('mouseleave', clearZoom);
3322
3323                  // 保持した矩形はビューポート基準なので、スクロールやリサイズで陳腐化する。
3324                  // 測り直すには拡大を解く必要があるため、いったん解除して次の mousemove に任せる。
3325                  function resetOnViewportChange() {
3326                    if (baseImg) clearZoom();
3327                  }
3328                  window.addEventListener('scroll', resetOnViewportChange, { passive: true });
3329                  window.addEventListener('resize', resetOnViewportChange, { passive: true });
3330                });
3331              }
3332
3333              function showOptionImage(url) {
3334                if (!url) return;
3335
3336                if (slider) {
3337                  var allImgs = document.querySelectorAll('.product-detail-slider .swiper-slide img');
3338                  for (var i = 0; i < allImgs.length; i++) {
3339                    var src = allImgs[i].getAttribute('src');
3340                    if (src && src.indexOf(url) !== -1) {
3341                      var slide = allImgs[i].closest('.swiper-slide');
3342                      if (slide) {
3343                        var index = slide.getAttribute('data-swiper-slide-index') || slide.dataset.swiperSlideIndex;
3344                        if (index != null) {
3345                          slider.slideToLoop(parseInt(index, 10));
3346                          return;
3347                        }
3348                      }
3349                    }
3350                  }
3351
3352                  // ギャラリーに無い選択画像(バリエーション画像連動ONのサンプル画像なã
3352©)は、
3353                  // 現在表示中のスライドの画像を直接差し替える。
3354                  // loop:true では複製クローンが表示されるため .swiper-slide-active を対象にする
3355                  // (.pd-image-main img の先頭=クローンを書き換えても表示は変わらない)。
3356                  var activeSlide = document.querySelector('.product-detail-slider .swiper-slide-active');
3357                  if (activeSlide) {
3358                    var activeImg = activeSlide.querySelector('img');
3359                    if (activeImg) {
3360                      activeImg.setAttribute('src', url);
3361                    }
3362                    var activeAnchor = activeSlide.querySelector('a.glightbox');
3363                    if (activeAnchor) {
3364                      activeAnchor.setAttribute('href', url);
3365                    }
3366                    return;
3367                  }
3368                }
3369
3370                var singleImg = document.querySelector('.pd-image-main img');
3371                if (singleImg) singleImg.setAttribute('src', url);
3372                var singleAnchor = document.querySelector('.pd-image-main a.glightbox');
3373                if (singleAnchor) singleAnchor.setAttribute('href', url);
3374              }
3375
3376              // バリエーション専用画像モード: MakeShopがオプション選択時に画像リストを渡すコールバック
3377              window.MakeShop_afterItemOptionInformation = function (data) {
3378                var sliderEl = document.querySelector('.product-detail-slider');
3379                if (!sliderEl) return;
3380
3381                var images = (data && data.optionRelatedImageList) || [];
3382                var placeholderSrc = '/view/images/common/noimage.png';
3383                var itemName = '';
3384                var nameEl = document.querySelector('.pd-name');
3385                if (nameEl) itemName = nameEl.textContent.trim();
3386
3387                if (slider) {
3388                  slider.destroy(true, true);
3389                  slider = null;
3390                }
3391                if (thumbnail) {
3392                  thumbnail.destroy(true, true);
3393                  thumbnail = null;
3394                }
3395
3396                var srcList = images.length
3397                  ? images.map(function (img) {
3398                      return img.imageL || placeholderSrc;
3399                    })
3400                  : [placeholderSrc];
3401
3402                var mainWrapper = sliderEl.querySelector('.swiper-wrapper');
3403                if (mainWrapper) {
3404                  mainWrapper.textContent = '';
3405                  srcList.forEach(function (url) {
3406                    var slide = document.createElement('div');
3407                    slide.className = 'swiper-slide';
3408                    var anchor = document.createElement('a');
3409                    anchor.className = 'glightbox';
3410                    anchor.setAttribute('href', url);
3411                    anchor.setAttribute('data-caption', '');
3412                    var img = document.createElement('img');
3413                    img.setAttribute('src', url);
3414                    img.setAttribute('alt', itemName);
3415                    anchor.appendChild(img);
3416                    slide.appendChild(anchor);
3417                    mainWrapper.appendChild(slide);
3418                  });
3419                }
3420
3421                var thumbnailEl = document.querySelector('.product-detail-thumbnail');
3422                if (thumbnailEl) {
3423                  var thumbWrapper = thumbnailEl.querySelector('.swiper-wrapper');
3424                  if (thumbWrapper) {
3425                    thumbWrapper.textContent = '';
3426                    srcList.forEach(function (url) {
3427                      var slide = document.createElement('div');
3428                      slide.className = 'swiper-slide';
3429                      var img = document.createElement('img');
3430                      img.setAttribute('src', url);
3431                      img.setAttribute('alt', '');
3432                      slide.appendChild(img);
3433                      thumbWrapper.appendChild(slide);
3434                    });
3435                  }
3436                }
3437
3438                initSlider();
3439
3440                if (typeof GLightbox !== 'undefined') {
3441                  GLightbox({ loop: true, touchNavigation: true, draggable: true });
3442                }
3443              };
3444
3445              // MakeShop フック関数: オプション変更時の在庫切れ表示切替・
3445通常画像切替
3446              window.MakeShop_afterItemOptionChange = function (data) {
3447                if (data.isSoldout) {
3448                  document.querySelectorAll('.instock').forEach(function (el) {
3449                    el.classList.remove('on');
3450                    el.classList.add('off');
3451                  });
3452                  document.querySelectorAll('.outstock').forEach(function (el) {
3453                    el.classList.remove('off');
3454                    el.classList.add('on');
3455                  });
3456                } else {
3457                  document.querySelectorAll('.instock').forEach(function (el) {
3458                    el.classList.remove('off');
3459                    el.classList.add('on');
3460                  });
3461                  document.querySelectorAll('.outstock').forEach(function (el) {
3462                    el.classList.remove('on');
3463                    el.classList.add('off');
3464                  });
3465                }
3466
3467                showOptionImage(data.imageL);
3468              };
3469
3470              function initOptionImage(
3470option1El) {
3471                document.querySelectorAll('.option-image-option1-item').forEach(function (el) {
3472                  el.classList.remove('active');
3473                });
3474                option1El.classList.add('active');
3475
3476                var selectedName1 = option1El.getAttribute('data-option-image-name1');
3477                document.querySelectorAll('.option-image-option2-item').forEach(function (item) {
3478                  if (item.getAttribute('data-option-image-name1') === selectedName1) {
3479                    item.style.display = 'flex';
3480                  } else {
3481                    item.style.display = 'none';
3482                    item.classList.remove('active');
3483                  }
3484                });
3485
3486                var prompt = document.querySelector('.option-image-select-prompt');
3487                if (prompt) prompt.style.display = 'flex';
3488                var checkoutWrap = document.querySelector('.option-image-checkout-wrap');
3489                if (checkoutWrap) checkoutWrap.style.display = 'none';
3490
3491                // option1(カラー等)を切り替えるとoption2が未選択に戻るため、隠しselectも未選択へ戻して
3492                // プラットフォーム標準処理に価格・ポイント表示を基準値へ戻させる
3493                var optionSelects = document.querySelectorAll(
3494                  '.pd-options-custom-only .makeshop-option-wrap:not(.makeshop-custom-select-wrap) select'
3495                );
3496                optionSelects.forEach(function (sel) {
3497                  sel.selectedIndex = 0;
3498                });
3499                if (optionSelects.length) {
3500                  optionSelects[0].dispatchEvent(new Event('change', { bubbles: true }));
3501                }
3502              }
3503
3504              function initOptionImageUI() {
3505                var option2Items = document.querySelectorAll('.option-image-option2-item');
3506                if (!option2Items.length) return;
3507
3508                var option1Container = document.querySelector('.option-image-option1');
3509                if (!option1Container) return;
3510
3511                // option2のdata属性からoption1リンクを重複なく構築
3512                var seenName1 = {};
3513                option2Items.forEach(function (item2) {
3514                  var name1 = item2.getAttribute('data-option-image-name1');
3515                  if (name1 && !seenName1[name1]) {
3516                    seenName1[name1] = true;
3517                    var imgSrc = item2.getAttribute('data-image-s') || '/view/images/common/noimage.png';
3518                    var infoUrl = item2.getAttribute('data-information-url') || '#';
3519                    var a = document.createElement('a');
3520                    a.href = infoUrl;
3521                    a.className = 'option-image-option1-item';
3522                    a.setAttribute('data-option-image-name1', name1);
3523                    var img = document.createElement('img');
3524                    img.src = imgSrc;
3525                    img.alt = name1;
3526                    img.className = 'option-image';
3527                    a.appendChild(img);
3528                    option1Container.appendChild(a);
3529                    a.addEventListener('click', function (e) {
3530                      e.preventDefault();
3531                      initOptionImage(this);
3532                    });
3533                  }
3534                });
3535
3536                // option2クリックハンドラ
3537                option2Items.forEach(function (item) {
3538                  item.addEventListener('click', function () {
3539                    var isSoldout = this.classList.contains('option-image-soldout');
3540                    // 売り切れでも再入荷 URL があれば再入荷導線へ進めるよう選択を許可する。
3541                    if (isSoldout && !this.getAttribute('data-restock-url')) return;
3542                    document.querySelectorAll('.option-image-option2-item').forEach(function (el) {
3543                      el.classList.remove('active');
3544                    });
3545                    this.classList.add('active');
3546                    var prompt = document.querySelector('.option-image-select-prompt');
3547                    if (prompt) prompt.style.display = 'none';
3548                    var checkoutWrap = document.querySelector('.option-image-checkout-wrap');
3549                    if (checkoutWrap) checkoutWrap.style.display = 'flex';
3550                    // 通常在庫はカゴ入れ/定期購入行を、売り切れ(再入荷あり)は再入荷行のみを表示する。
3551                    document
3552                      .querySelectorAll('.option-image-checkout-wrap .pd-cart-row:not(.option-image-restock-row)')
3553                      .forEach(function (row) {
3554                        row.style.display = isSoldout ? 'none' : 'flex';
3555                      });
3556                    var restockRow = document.querySelector('.option-image-restock-row');
3557                    if (restockRow) restockRow.style.display = isSoldout ? 'flex' : 'none';
3558                  });
3559                });
3560
3561                // checkoutボタンクリックハンドラ
3562                document.querySelectorAll('a[href="#option-image-checkout"]').forEach(function (btn) {
3563                  btn.addEventListener('click', function (e) {
3564                    e.preventDefault();
3565                    var selectedItem = document.querySelector('.option-image-option2-item.active');
3566                    if (!selectedItem) {
3567                      alert('バリエーションを選択してください');
3568                      return;
3569                    }
3570                    // 再入荷お知らせも、カゴ入れと同様にサーバ描画済みの非表示アンカーをクリックする。
3571                    // window.location や動的生成アンカーでは MakeShop のフックがバインドされず
3572                    // クリックしても何も起きないため、必ず事前描画済みアンカーを使う。
3573                    if (this.classList.contains('option-image-restock-button')) {
3574                      var restockLink = selectedItem.querySelector('.option-image-restock-link');
3575                      if (restockLink) restockLink.click();
3576                      return;
3577                    }
3578
3579                    // カゴ入れ/定期購入は、サーバ描画済みの非表示アンカーをクリックして
3580                    // MakeShop の Ajax カゴ入れフックを発火させる(画面遷移せず makeshop:cart-entry が飛ぶ)。
3581                    // 動的生成したアンカーだとフックがバインドされず素のページ遷移になるため、必ず事前描画済みを使う。
3582                    var linkSelector = this.classList.contains('option-image-checkout-button-subscription')
3583                      ? '.option-image-subscription-link'
3584                      : '.option-image-cart-link';
3585                    var link = selectedItem.querySelector(linkSelector);
3586                    if (link) link.click();
3587                  });
3588                });
3589
3590                // 最初のoption1を選択状態にする
3591                var firstOption1 = option1Container.querySelector('.option-image-option1-item');
3592                if (firstOption1) initOptionImage(firstOption1);
3593              }
3594
3595              // 追従型購入バー。本体の購入エリアが画面外に出ているあいだだけ画面下部に出す。
3596              function initStickyCart() {
3597                var bars = document.querySelectorAll('[data-sticky-cart]');
3598                if (bars.length === 0) return;
3599
3600                // 編集画面側で商品詳細セクションは 1 ページ 1 つに制限しているが、
3601                // 制限前に複数配置されたページではバーが重なるため 2 つ目以降を取り除く。
3602                for (var i = 1; i < bars.length; i++) {
3603                  bars[i].remove();
3604                }
3605                var bar = bars[0];
3606                // 制限前に複数配置されたページでは各セクションの script が初期化を呼ぶため、
3607                // リスナーと MutationObserver が多重登録される。印を付けて 2 回目以降は抜ける。
3608                if (bar.hasAttribute('data-sticky-cart-initialized')) return;
3609                bar.setAttribute('data-sticky-cart-initialized', '');
3610
3611                // セクションのラッパーにはスクロールインの transform が掛かる。transform は
3612                // position: fixed の基準になってしまうため、body 直下へ出して影響から外す。
3613                if (bar.parentElement !== document.body) {
3614                  document.body.appendChild(bar);
3615                }
3616
3617                var buttonsEl = bar.querySelector('[data-sticky-cart-buttons]');
3618                var quantityEl = bar.querySelector('[data-sticky-cart-quantity]');
3619                var backToTop = document.querySelector('[data-back-to-top]');
3620                var currentArea = null;
3621                var pending = false;
3622                var needsFullUpdate = false;
3623
3624                // 品切れや未選択のとき、購入エリアは DOM に残ったまま display: none になる。
3625                // このため「存在するか」ではなく「見えているか」で判定する。
3626                function isVisible(el) {
3627                  if (!el) return false;
3628                  if (el.offsetParent === null) return false;
3629                  return el.getBoundingClientRect().height > 0;
3630                }
3631
3632                function firstVisible(selectors) {
3633                  for (var i = 0; i < selectors.length; i++) {
3634                    var el = document.querySelector(selectors[i]);
3635                    if (isVisible(el)) return el;
3636                  }
3637                  return null;
3638                }
3639
3640                // バリエーション select が未選択かどうかを見る。MakeShop の option_html は
3641                // 先頭に「--選択してください」の option を value="0" で置き、必須のときだけ
3642                // その文字列に(必須)を付ける。実際の選択肢は 1 以降なので 0 と衝突しない。
3643                // 3 条件すべてを満たすときだけ未選択とみなす:
3644                //   - 見えている(バリエーション専用画像モードでは同期用の隠し select が残る)
3645                //   - 必須(任意オプションは選ばなくても購入できる)
3646                //   - 値が空か 0
3647                function isUnselectedRequiredSelect(select) {
3648                  if (!isVisible(select)) return false;
3649                  var title = select.querySelector('.makeshop-option-select-title');
3650                  if (!title || title.textContent.indexOf('(必須)') < 0) return false;
3651                  return select.value === '' || select.value === '0';
3652                }
3653
3654                // ボタン型カスタムセレクトが未選択かどうかを見る。select 版と判定材料が違い、
3655                // 必須マークは選択肢ではなくラベル(.makeshop-option-label)側に付く。
3656                // 必須を見ないと、任意のカード型オプション(ギフト包装など)を持つ商品で
3657                // 購入できるのに「条件を選択」へ誘導してしまう。
3658                function isUnselectedRequiredCustomSelect(wrap) {
3659                  if (!isVisible(wrap)) return false;
3660                  if (wrap.querySelectorAll('.makeshop-custom-select-button').length === 0) return false;
3661                  var label = wrap.querySelector('.makeshop-option-label');
3662                  if (!label || label.textContent.indexOf('(必須)') < 0) return false;
3663                  return !wrap.querySelector('.makeshop-custom-select-button.selected');
3664                }
3665
3666                // オプション・名入れの未入力を見る。MakeShop が描画する HTML を読むため厳密ではなく、
3667                // 取りこぼしても本体のアンカーを押すので MakeShop 側の検証でエラーになる。
3668                function findUnselectedTarget() {
3669                  var optionRoot = document.querySelector('.pd-options');
3670                  if (optionRoot) {
3671                    var selects = optionRoot.querySelectorAll('select');
3672                    for (var i = 0; i < selects.length; i++) {
3673                      if (isUnselectedRequiredSelect(selects[i])) return '.pd-options';
3674                    }
3675                    var customWraps = optionRoot.querySelectorAll('.makeshop-custom-select-wrap');
3676                    for (var j = 0; j < customWraps.length; j++) {
3677                      if (isUnselectedRequiredCustomSelect(customWraps[j])) return '.pd-options';
3678                    }
3679                  }
3680
3681                  var namePrintArea = document.querySelector('.nameprint-area');
3682                  if (namePrintArea) {
3683                    var titles = namePrintArea.querySelectorAll('.nameprint-title-wrap');
3684                    for (var k = 0; k < titles.length; k++) {
3685                      // 必須の項目にだけ ※必須 の span が付く。任意の項目は空でも購入できる
3686                      if (!titles[k].querySelector('span')) continue;
3687                      var textWrap = titles[k].nextElementSibling;
3688                      var field = textWrap ? textWrap.querySelector('input, textarea') : null;
3689                      if (field && field.value.trim() === '') return '.nameprint-area';
3690                    }
3691                  }
3692
3693                  return null;
3694                }
3695
3696                // 本体で今見えている購入導線から、バーに出すボタンを決める。
3697                function resolveState() {
3698                  var comingSoon = document.querySelector('.pd-coming-soon');
3699                  if (isVisible(comingSoon)) {
3700                    return { area: comingSoon, buttons: [{ kind: 'disabled', label: '販売期間外の商品' }] };
3701                  }
3702
3703                  // バリエーション専用画像モードは、未選択のあいだ本体も選択を促している
3704                  var selectPrompt = document.querySelector('.option-image-select-prompt');
3705                  if (isVisible(selectPrompt)) {
3706                    return { area: selectPrompt, buttons: [{ kind: 'select', label: '条件を選択', target: '.option-image-wrap' }] };
3707                  }
3708
3709                  // SKU 一覧モードは行ごとにボタンがあり 1 つに決められないため、選択へ誘導する
3710                  var skuList = document.querySelector('.pd-sku-list');
3711                  if (isVisible(skuList)) {
3712                    return { area: skuList, buttons: [{ kind: 'select', label: '条件を選択', target: '.pd-sku-list' }] };
3713                  }
3714
3715                  var area = firstVisible(['.option-image-checkout-wrap', '.pd-cart-area', '.pd-outstock-area']);
3716                  if (!area) return null;
3717
3718                  // Amazon Pay の購入ボタンが出る商品はバーを出さない。ボタンは MakeShop が描画するため
3719                  // バー側に写せず、カゴ入れだけ写すと本体と導線が食い違う。
3720                  if (area.querySelector('.amazon-buynow-description')) return null;
3721
3722                  var buttons = [];
3723                  var cartButtons = area.querySelectorAll('.pd-cart-btn');
3724                  for (var i = 0; i < cartButtons.length; i++) {
3725                    var el = cartButtons[i];
3726                    if (!isVisible(el)) continue;
3727                    if (el.classList.contains('pd-cart-btn-soldout')) {
3728                      buttons.push({ kind: 'disabled', label: 'Sold Out' });
3729                    } else if (el.classList.contains('pd-cart-btn-restock')) {
3730                      buttons.push({ kind: 'restock', label: '再入荷お知らせ', source: el });
3731                    } else if (el.classList.contains('pd-cart-btn-subscription')) {
3732                      buttons.push({ kind: 'subscription', label: '定期購入', source: el });
3733                    } else {
3734                      buttons.push({ kind: 'primary', label: 'カートに入れる', source: el });
3735                    }
3736                  }
3737                  if (buttons.length === 0) return null;
3738
3739                  // カゴに入れられる状態のときだけ、未入力なら条件選択へ誘導する。
3740                  // 品切れ・再入荷はそもそも入れられないため、購入不可のまま追従させる。
3741                  var canAddToCart = buttons.some(function (button) {
3742                    return button.kind === 'primary' || button.kind === 'subscription';
3743                  });
3744                  if (canAddToCart) {
3745                    var unselectedTarget = findUnselectedTarget();
3746                    if (unselectedTarget) {
3747                      return { area: area, buttons: [{ kind: 'select', label: '条件を選択', target: unselectedTarget }] };
3748                    }
3749                  }
3750
3751                  // 2 つ出す場合は定期購入を左に置く(受領デザインの並び)
3752                  buttons.sort(function (a, b) {
3753                    return (a.kind === 'subscription' ? 0 : 1) - (b.kind === 'subscription' ? 0 : 1);
3754                  });
3755
3756                  return { area: area, buttons: buttons };
3757                }
3758
3759                function scrollToTarget(selector) {
3760                  var target = document.querySelector(selector);
3761                  if (!target) return;
3762                  var header = document.querySelector('header.sticky');
3763                  var headerHeight = header ? header.offsetHeight : 0;
3764                  var top = target.getBoundingClientRect().top + (window.scrollY || window.pageYOffset || 0) - headerHeight - 12;
3765                  var reduceMotion = !!(window.matchMedia && window.matchMedia('(prefers-reduced-motion: reduce)').matches);
3766                  window.scrollTo({ top: Math.max(0, top), behavior: reduceMotion ? 'auto' : 'smooth' });
3767                }
3768
3769                function createButton(item) {
3770                  var isStatic = item.kind === 'disabled';
3771                  var el = document.createElement(isStatic ? 'span' : 'button');
3772                  el.className = 'pd-sticky-cart-btn';
3773                  if (!isStatic) el.type = 'button';
3774
3775                  if (item.kind === 'primary' || item.kind === 'subscription') {
3776                    el.classList.add('theme-button-cart');
3777                    var icon = document.createElement('i');
3778                    icon.className = 'fi fi-rr-shopping-cart';
3779                    icon.setAttribute('aria-hidden', 'true');
3780                    el.appendChild(icon);
3781                  } else if (item.kind === 'restock') {
3782                    el.classList.add('pd-sticky-cart-btn-outline');
3783                    var mailIcon = document.createElement('i');
3784                    mailIcon.className = 'fi fi-rr-envelope';
3785                    mailIcon.setAttribute('aria-hidden', 'true');
3786                    el.appendChild(mailIcon);
3787                  } else if (item.kind === 'select') {
3788                    el.classList.add('pd-sticky-cart-btn-outline');
3789                  } else {
3790                    el.classList.add('pd-sticky-cart-btn-disabled');
3791                    el.setAttribute('aria-disabled', 'true');
3792                  }
3793
3794                  el.appendChild(document.createTextNode(item.label));
3795
3796                  if (item.kind === 'select') {
3797                    el.addEventListener('click', function () {
3798                      scrollToTarget(item.target);
3799                    });
3800                  } else if (item.source) {
3801                    // 本体のアンカーを押す。カゴ入れ・再入荷のフックはサーバ描画のアンカーにしか付かない
3802                    el.addEventListener('click', function () {
3803                      item.source.click();
3804                    });
3805                  }
3806
3807                  return el;
3808                }
3809
3810                function renderButtons(state) {
3811                  buttonsEl.textContent = '';
3812                  buttonsEl.classList.toggle('is-double', state.buttons.length > 1);
3813                  state.buttons.forEach(function (item) {
3814                    buttonsEl.appendChild(createButton(item));
3815                  });
3816                }
3817
3818                function setShown(shown) {
3819                  bar.classList.toggle('is-shown', shown);
3820                  // 上部へ戻る追従ボタンと重ならないよう持ち上げる(#37283 が用意している変数)
3821                  if (backToTop) {
3822                    backToTop.style.setProperty('--back-to-top-offset', shown ? bar.offsetHeight + 'px' : '0px');
3823                  }
3824                }
3825
3826                function stickyHeaderHeight() {
3827                  var header = document.querySelector('header.sticky');
3828                  return header ? header.offsetHeight : 0;
3829                }
3830
3831                function isAreaOutOfView(area) {
3832                  var rect = area.getBoundingClientRect();
3833                  var viewportHeight = window.innerHeight || document.documentElement.clientHeight;
3834                  // 固定ヘッダーの裏は見えていないため画面外として扱う(scrollToTarget と同じ扱い)
3835                  return rect.bottom <= stickyHeaderHeight() || rect.top >= viewportHeight;
3836                }
3837
3838                // 数量欄は本体の DOM 差し替えで作り直されるため、保持せず毎回引き直す
3839                function syncQuantity() {
3840                  if (!quantityEl) return;
3841                  var quantityInput = document.getElementById('item-quantity-input');
3842                  if (!quantityInput) return;
3843                  var value = parseInt(quantityInput.value, 10);
3844                  quantityEl.textContent = value > 0 ? String(value) : '1';
3845                }
3846
3847                function update() {
3848                  var state = resolveState();
3849                  if (!state) {
3850                    currentArea = null;
3851                    setShown(false);
3852                    return;
3853                  }
3854                  renderButtons(state);
3855                  currentArea = state.area;
3856                  syncQuantity();
3857                  setShown(isAreaOutOfView(currentArea));
3858                }
3859
3860                function flush() {
3861                  pending = false;
3862                  var full = needsFullUpdate;
3863                  needsFullUpdate = false;
3864                  // 購入エリアが差し替わっていたら組み立て直す。見えない要素の座標は 0 になり、
3865                  // そのまま判定すると画面外とみなしてバーを出してしまう
3866                  if (full || !currentArea || !isVisible(currentArea)) {
3867                    update();
3868                    return;
3869                  }
3870                  setShown(isAreaOutOfView(currentArea));
3871                }
3872
3873                // フル更新の要求は、予約済みの可視判定フレームを update() へ格上げする。
3874                // 同じ pending を共有したまま捨てると、スクロール中の選択・数量の変更が反映されない。
3875                function requestUpdate() {
3876                  needsFullUpdate = true;
3877                  if (pending) return;
3878                  pending = true;
3879                  window.requestAnimationFrame(flush);
3880                }
3881
3882                // スクロール位置の判定だけは毎回 update() を通さず、組み立て済みのボタンを使い回す
3883                function requestVisibilityUpdate() {
3884                  if (pending) return;
3885                  pending = true;
3886                  window.requestAnimationFrame(flush);
3887                }
3888
3889                window.addEventListener('scroll', requestVisibilityUpdate, { passive: true });
3890                window.addEventListener('resize', requestUpdate, { passive: true });
3891
3892                // オプション選択・在庫切れ表示の切り替えは本体側の class / style 変更として現れる
3893                var info = document.querySelector('.pd-info');
3894                if (info && typeof MutationObserver !== 'undefined') {
3895                  new MutationObserver(requestUpdate).observe(info, {
3896                    attributes: true,
3897                    attributeFilter: ['class', 'style'],
3898                    childList: true,
3899                    subtree: true,
3900                  });
3901                }
3902                document.addEventListener('change', requestUpdate);
3903                document.addEventListener('input', requestUpdate);
3904                // 数量の &#8722;/+ は値を直接書き換えるだけでイベントを出さないため、押された後に読み直す
3905                ['item-quantity-up', 'item-quantity-down'].forEach(function (id) {
3906                  var button = document.getElementById(id);
3907                  if (button) button.addEventListener('click', requestUpdate);
3908                });
3909
3910                update();
3911              }
3912
3913              document.addEventListener('DOMContentLoaded', function () {
3914                initSlider();
3915                initImageZoom();
3916
3917                // 数量コントロール
3918                var quantityInput = document.getElementById('item-quantity-input');
3919                var quantityUp = document.getElementById('item-quantity-up');
3920                var quantityDown = document.getElementById('item-quantity-down');
3921
3922                if (quantityInput && quantityUp) {
3923                  quantityUp.addEventListener('click', function () {
3924                    var currentValue = parseInt(quantityInput.value, 10) || 1;
3925                    var max = parseInt(quantityInput.getAttribute('max'), 10);
3926                    if (!max || currentValue < max) {
3927                      quantityInput.value = currentValue + 1;
3928                    }
3929                  });
3930                }
3931
3932                if (quantityInput && quantityDown) {
3933                  quantityDown.addEventListener('click', function () {
3934                    var currentValue = parseInt(quantityInput.value, 10) || 1;
3935                    if (currentValue > 1) {
3936                      quantityInput.value = currentValue - 1;
3937                    }
3938                  });
3939                }
3940
3941                // GLightbox
3942                if (typeof GLightbox !== 'undefined') {
3943                  var lightbox = GLightbox({
3944                    loop: true,
3945                    touchNavigation: true,
3946                    draggable: true,
3947                  });
3948
3949                  if (slider) {
3950                    slider.on('observerUpdate', function () {
3951                      lightbox.reload();
3952                    });
3953                    slider.on('slideChangeTransitionEnd', function () {
3954                      lightbox.reload();
3955                    });
3956                  }
3957                }
3958
3959                // SKUパネル開閉
3960                var addToCartBtns = document.querySelectorAll('.add-to-cart-btn');
3961                var skuPanel = document.querySelector('.sku-panel');
3962                var closePanelBtn = document.querySelector('.close-panel');
3963
3964                if (skuPanel && addToCartBtns.length > 0) {
3965                  var skuOverlay = document.querySelector('.sku-overlay');
3966                  if (!skuOverlay) {
3967                    skuOverlay = document.createElement('div');
3968                    skuOverlay.classList.add('sku-overlay');
3969                    document.body.appendChild(skuOverlay);
3970                  }
3971
3972                  var previousBodyOverflow = null;
3973
3974                  addToCartBtns.forEach(function (btn) {
3975                    btn.addEventListener('click', function () {
3976                      skuPanel.classList.add('sku-show');
3977                      skuOverlay.classList.add('sku-show');
3978                      if (previousBodyOverflow === null) {
3979                        previousBodyOverflow = document.body.style.overflow;
3980                      }
3981                      document.body.style.overflow = 'hidden';
3982                    });
3983                  });
3984
3985                  if (closePanelBtn) {
3986                    closePanelBtn.addEventListener('click', function () {
3987                      skuPanel.classList.remove('sku-show');
3988                      skuOverlay.classList.remove('sku-show');
3989                      document.body.style.overflow = previousBodyOverflow !== null ? previousBodyOverflow : '';
3990                      previousBodyOverflow = null;
3991                    });
3992                  }
3993
3994                  skuOverlay.addEventListener('click', function () {
3995                    skuPanel.classList.remove('sku-show');
3996                    skuOverlay.classList.remove('sku-show');
3997                    document.body.style.overflow = previousBodyOverflow !== null ? previousBodyOverflow : '';
3998                    previousBodyOverflow = null;
3999                  });
4000                }
4001
4002                // オプション画像切り替え
4003                document.querySelectorAll('img.option-image').forEach(function (img) {
4004                  img.addEventListener('click', function () {
4005                    showOptionImage(this.getAttribute('data-option-image'));
4006                  });
4007                });
4008
4009                // SKU画像カラム表示
4010                var skuImgs = document.querySelectorAll('.sku-img img');
4011                if (skuImgs.length > 0) {
4012                  document.querySelectorAll('.sku-img-top, .sku-img').forEach(function (el) {
4013                    el.style.display = 'block';
4014                  });
4015                }
4016
4017                // バリエーション専用画像UI初期化
4018                initOptionImageUI();
4019
4020                // 追従型購入バー(バーが無い=設定 OFF のときは何もしない)
4021                initStickyCart();
4022              });
4023            })();
4024          </script>
4024
4025
4026
4027
4028        </div>
4029
4030        <div data-scroll-in>
4031          
4032        </div>
4033
4034<!-- /nocode:module:body -->
4035      <!-- nocode:module:footer -->
4036        <div class="mt-auto" data-scroll-in>
4037          <footer class="bg-[#000000] text-[#FFFFFF] py-12">
4038            <div class="container mx-auto px-4 flex flex-col gap-10">
4039              <div class="flex flex-col items-center gap-6">
4040
4041                <div class="flex flex-col items-center gap-6 w-full">
4042                  <div class="flex flex-wrap justify-center gap-x-10 gap-y-5 text-[11px] tracking-[0.05em] font-medium">
4043                      <a href="/view/company" class="hover:opacity-70 transition-opacity">会社情報</a>
4044                    <a href="/view/contract" class="hover:opacity-70 transition-opacity">特定商取引法</a>
4045                    <a href="/view/policy" class="hover:opacity-70 transition-opacity">プライバシーポリシー</a>
4046                      <a href="/view/guide" class="hover:opacity-70 transition-opacity">ご利用ガイド</a>
4047                      <a href="#makeshop-common-contact-url" class="hover:opacity-70 transition-opacity">お問い合わせ</a>
4048                  </div>
4049
4050
4051                    <p class="text-[12px] opacity-80 whitespace-pre-line text-left max-w-2xl">
4052                      アニマルデザイン株式会社
4053          郵便番号810-0023
4054          福岡県福岡市中央区警固2丁目13番地7号 ランドマークタワー1-3F
4055                    </p>
4056                </div>
4057              </div>
4058
4059              <div class="text-center">
4060                <p class="text-[10px] tracking-[0.2em] text-[#FFFFFF]">
4061                  Copyright &#169; 【公式】BUBU STORE |ブブストア All Rights Reserved.
4062                </p>
4063              </div>
4064            </div>
4065          </footer>
4066
4067        </div>
4068
4069        <div data-scroll-in>
4070          <div class="flex flex-wrap items-center gap-[16px] justify-center py-[24px] bg-[#FFFFFF] px-4">
4071
4072
4073              <a href="https://www.instagram.com/bubustore.official/" target="_blank" rel="noopener noreferrer" aria-label="Instagram">
4074                <i
4075                  class="fi fi-brands-instagram text-[48px] transition-opacity hover:opacity-60 bg-gradient-to-tr from-[#f9ce34] via-[#ee2a7b] to-[#6228d7] bg-clip-text text-transparent"
4076                  aria-hidden="true"
4077                ></i>
4078              </a>
4079
4080              <a href="https://www.youtube.com/@animaldesign_channel/videos" target="_blank" rel="noopener noreferrer" aria-label="YouTube">
4081                <i class="fi fi-brands-youtube text-[48px] transition-opacity hover:opacity-60 text-[#FF0000]" aria-hidden="true"></i>
4082              </a>
4083
4084              <a href="https://ec.line.me/shop/ms-1-animd/" target="_blank" rel="noopener noreferrer" aria-label="LINE">
4085                <i class="fi fi-brands-line text-[48px] transition-opacity hover:opacity-60 text-[#06C755]" aria-hidden="true"></i>
4086              </a>
4087          </div>
4088
4089        </div>
4090
4091<!-- /nocode:module:footer -->
4092    </div>
4093
4094    <!-- nocode:module:javascript -->
4095    
4095<script>
4096      document.addEventListener('DOMContentLoaded', () => {
4097  document.querySelectorAll('.day-list').forEach((el) => {
4098    const month = el.getAttribute('data-month');
4099    const day = el.getAttribute('data-day');
4100    const color = el.getAttribute('data-color');
4101
4102    const section = el.closest('section');
4103    if (!section) return;
4104    const cell = section.querySelector(`.makeshop-calendar${month} td.day${day}`);
4105    if (!cell) return;
4106
4107    cell.style.backgroundColor = color;
4108    cell.style.color = '#fff';
4109    cell.style.fontWeight = 'bold';
4110  });
4111});
4112
4113      (function () {
4114  // 買い物かご画面の数量ステッパー(&#8722;/+)。
4115  //
4116  // MakeShop は数量変更URL(quantity_url)のアンカークリックを検知し、同一商品の
4117  // data-id を持つ入力欄の値を読んで数量を更新する。そのため &#8722;/+ 押下時に入力欄の
4118  // 値を先に書き換えてから、非表示アンカーをプログラム的にクリックして数量変更を確定する。
4119  // (確定後は MakeShop 側でカート画面が再表示される)
4120  document.addEventListener("DOMContentLoaded", function () {
4121    var steppers = document.querySelectorAll("[data-cart-quantity]");
4122
4123    steppers.forEach(function (stepper) {
4124      var input = stepper.querySelector("[data-cart-quantity-input]");
4125      var applyAnchor = stepper.querySelector("[data-cart-quantity-apply]");
4126      var decreaseBtn = stepper.querySelector("[data-cart-quantity-decrease]");
4127      var increaseBtn = stepper.querySelector("[data-cart-quantity-increase]");
4128      var isApplying = false;
4129
4130      if (!input || !applyAnchor) return;
4131
4132      function applyQuantity(nextQuantity) {
4133        if (isApplying) return;
4134        // 0以下は不可(数量0での削除はゴミ箱ボタンから行う)
4135        if (nextQuantity < 1) return;
4136        var current = parseInt(input.value, 10) || 1;
4137        if (nextQuantity === current) return;
4138
4139        // MakeShop が data-id の入力値を読むため、先に値を書き換える
4140        isApplying = true;
4141        input.value = nextQuantity;
4142        applyAnchor.click();
4143
4144        // リロードが発生しない場合のフォールバック(pagehide 時はタイマーを破棄)
4145        var resetTimer = setTimeout(function () {
4146          isApplying = false;
4147        }, 2000);
4148        window.addEventListener(
4149          "pagehide",
4150          function () {
4151            clearTimeout(resetTimer);
4152          },
4153          { once: true }
4154        );
4155      }
4156
4157      if (decreaseBtn) {
4158        decreaseBtn.addEventListener("click", function () {
4159          applyQuantity((parseInt(input.value, 10) || 1) - 1);
4160        });
4161      }
4162
4163      if (increaseBtn) {
4164        increaseBtn.addEventListener("click", function () {
4165          applyQuantity((parseInt(input.value, 10) || 1) + 1);
4166        });
4167      }
4168    });
4169  });
4170})();
4171
4172(function () {
4173  function toFiniteNumberOrUndefined(value) {
4174    if (value === undefined || value === null || value === '') {
4175      return undefined;
4176    }
4177    var n = Number(value);
4178    return isFinite(n) ? n : undefined;
4179  }
4180  // 一覧で最後にクリックされた「カートに入れる」ボタンの商品詳細URL。
4181  // オプション/カスタムセレクト/定期購入商品などはそのままカゴに入らず MakeShop が
4182  // エラーを返すため、エラー時のモーダルOKでこのURL(商品詳細)へ遷移させる。
4183  var lastListCartProductUrl = '';
4184  document.addEventListener('click', function (e) {
4185    var link = e.target.closest('a[data-product-url]');
4186    if (!link) return;
4187    lastListCartProductUrl = link.getAttribute('data-product-url') || '';
4188  }, true);
4189
4190  function dispatchCartEntry(data, redirectUrl) {
4191    var isError = !!(data && data.result === false);
4192    var detail = {
4193      isError: isError,
4194      message: isError
4195        ? (data && data.error && data.error.message) || 'カートに追加できませんでした'
4196        : '商品が追加されました',
4197      // 商品詳細/一覧はカゴ追加後の合計数(totalQuantity)を持つため、ヘッダーはこの値で上書きする。
4198      totalQuantity: toFiniteNumberOrUndefined(data && data.totalQuantity),
4199      // カタログ注文は合計数を取得できないため、追加した数量(addedQuantity)を渡し、
4200      // ヘッダー側で現在のカート数へ加算してもらう。
4201      addedQuantity: toFiniteNumberOrUndefined(data && data.addedQuantity),
4202      // エラー時にモーダルのOKから遷移する商品詳細URL(一覧からの追加時のã
4202¿ï¼‰ã€‚
4203      redirectUrl: isError ? (redirectUrl || '') : '',
4204    };
4205    window.dispatchEvent(new CustomEvent('makeshop:cart-entry', { detail: detail }));
4206  }
4207  // 商品詳細画面からカゴに入れた直後
4208  window.MakeShop_afterCartEntry = function (data) {
4209    dispatchCartEntry(data);
4210    return false;
4211  };
4212  // 一覧画面(商品カード等)からカゴに入れた直後
4213  window.MakeShop_afterListCartEntry = function (data) {
4214    dispatchCartEntry(data, lastListCartProductUrl);
4215    return false;
4216  };
4217
4218  // カタログ注文のかご入れは MakeShop_afterCartEntry / MakeShop_afterListCartEntry を発火しない。
4219  // また、追加処理は MakeShop 側 JS が画面遷移なし(同一ページ内)で行うが、その通信手段は
4220  // fetch / XMLHttpRequest ではない(hidden iframe への form 送信とみられる)ため、
4221  // それらをフックしても応答を捕捉できない。
4222  // 通信手段に依存せず確実にフィードバックを返すため、クリック時に楽観的にモーダルを表示する。
4223  // 加えて、合計数が取得できない代わりに、追加される数量の合計(addedQuantity)を算出して
4224  // ヘッダーのカート数へ楽観的に加算する。
4225  document.addEventListener('click', function (e) {
4226    var link = e.target.closest('[data-catalog-cart-entry]');
4227    if (!link) return;
4228    var section = link.closest('[data-catalog-section]');
4229    if (!section) return;
4230    // 「カタログ番号が入力済み かつ 数量が 1 以上」の行のみが実際にカゴへ追加される。
4231    // 番号と数量は行(id 末尾の連番)でペアとして判定する。
4232    // ただし MakeShop バックエンドは同一カタログ番号(同一 data-id)を重複とみなã
4232—
4233    // 1 件分しかカゴに追加しないため、フロントの楽観的加算もカタログ番号で重複排除する。
4234    // 同一番号が複数行にある場合は後勝ち(最後の行の数量)で上書きしてバックエンドに揃える。
4235    // カタログ番号はユーザー入力なので、プロトタイプ汚染を避けるためプロトタイプを持たない
4236    // オブジェクトをキーストアとして使う。
4237    var quantityByCatalogNumber = Array.from(section.querySelectorAll('[id^=catalog-number-]'))
4238        .reduce(function (acc, numberEl) {
4239          var catalogNumber = numberEl.value.trim();
4240          if (catalogNumber === '') return acc;
4241          var index = numberEl.id.replace('catalog-number-', '');
4242          var qtyEl = section.querySelector('#catalog-qty-' + index);
4243          if (!qtyEl) return acc;
4244          var qty = qtyEl.value.trim();
4245          if (/^\d+$/.test(qty) && Number(qty) > 0) {
4246            acc[catalogNumber] = Number(qty);
4247          }
4248          return acc;
4249        }, Object.create(null));
4250    var addedQuantity = Object.keys(quantityByCatalogNumber)
4251        .reduce(function (sum, key) { return sum + quantityByCatalogNumber[key]; }, 0);
4252    // 有効な行が 1 つも無ければ実際の追加は起きないため発火しない。
4253    if (addedQuantity <= 0) return;
4254    dispatchCartEntry({ result: true, addedQuantity: addedQuantity });
4255  }, true);
4256})();
4257
4258      (function () {
4259  // 同じ href のアンカーは 1 ページに複数ある(商品詳細の購入エリアと追従型購入バー、
4260  // SKU 一覧の各行)。最初の 1 つだけ切り替えると他が古い状態のまま残るため、すべて切り替える。
4261  function findAnchorsByHref(href) {
4262    var anchors = document.querySelectorAll('a[href]');
4263    var matched = [];
4264    for (var i = 0; i < anchors.length; i++) {
4265      if (anchors[i].getAttribute('href') === href) {
4266        matched.push(anchors[i]);
4267      }
4268    }
4269    return matched;
4270  }
4271
4272  function toggleFavoriteAnchors(href, counterpartSelector) {
4273    findAnchorsByHref(href).forEach(function (source) {
4274      source.classList.add("hidden");
4275      var parent = source.parentElement;
4276      if (!parent) return;
4277      var counterpart = parent.querySelector(counterpartSelector);
4278      if (counterpart) counterpart.classList.remove("hidden");
4279    });
4280  }
4281
4282  window.MakeShop_afterFavoriteEntry = function (data) {
4283    if (!data.result) {
4284      data.method.modal((data.error && data.error.message) || "");
4285      return false;
4286    }
4287
4288    toggleFavoriteAnchors(data.source, ".item-favorite-on, .item-sku-favorite-on");
4289
4290    return false;
4291  };
4292
4293  window.MakeShop_afterFavoriteRemove = function (data) {
4294    if (!data.result) {
4295      data.method.modal((data.error && data.error.message) || "");
4296      return false;
4297    }
4298
4299    toggleFavoriteAnchors(data.source, ".item-favorite-off, .item-sku-favorite-off");
4300
4301    return false;
4302  };
4303})();
4304
4305      // スクロールインと画像フェード、「上部へ戻る」追従ボタン。
4306//
4307// どちらもテーマ全体設定の「アニメーション」(theme.animation_level) に連動する。
4308// このファイルが common.js に含まれなかった場合にコンテンツが隠れたままにならないよう、
4309// 読み込まれたことを同期的に知らせる(layout.liquid 側の load ハンドラと対)。
4310window.__scrollInReady = true;
4311
4312(function () {
4313  const root = document.documentElement;
4314
4315  function prefersReducedMotion() {
4316    return !!(window.matchMedia && window.matchMedia("(prefers-reduced-motion: reduce)").matches);
4317  }
4318
4319  // 隠す指定を解除して全セクションを見えるようにする。初期化できないときの最終防衛線。
4320  function disableScrollIn() {
4321    root.classList.remove("scroll-in-enabled");
4322  }
4323
4324  // ---------------------------------------------------------------------------
4325  // ① スクロールイン
4326  // ---------------------------------------------------------------------------
4327  function initScrollIn() {
4328    // 門番クラスが無い = アニメーション「なし」。CSS 側で隠れていないので何もしない。
4329    if (!root.classList.contains("scroll-in-enabled")) return;
4330
4331    // OS 設定で動きを減らす指定があるときは、設定値によらず即表示に倒す。
4332    // 未対応ブラウザでも隠したままにしないよう、IntersectionObserver が無ければ解除する。
4333    if (prefersReducedMotion() || typeof IntersectionObserver === "undefined") {
4334      disableScrollIn();
4335      return;
4336    }
4337
4338    const targets = document.querySelectorAll("[data-scroll-in]");
4339    if (!targets.length) return;
4340
4341    // 読み込み時点で画面内にあるセクションは、アニメーションさせず即表示する(LCP を落とさない)。
4342    // 初回コールバックに入ってくるのが「最初から交差していた要素」なので、それだけ別扱いにする。
4343    // is-instant は解除しない。解除を次フレームに回すと、スタイルが確定する前に transition が
4344    // 戻ってしまい結局フェードが再生される。表示後は監視も外すので付けたままで実害がない。
4345    let isFirstCallback = true;
4346
4347    function reveal(el, instant) {
4348      if (instant) el.classList.add("is-instant");
4349      el.classList.add("is-visible");
4350      // observer は下で const 宣言しているが、この関数が呼ばれるのは初期化後(IntersectionObserver の
4351      // コールバック内、または末尾の checkBottomReached から)なので、一時的死角には入らない。
4352      // これより前で reveal を同期的に呼ぶ処理を追加すると ReferenceError になる点に注意。
4353      observer.unobserve(el);
4354    }
4355
4356    const observer = new IntersectionObserver(
4357      function (entries) {
4358        entries.forEach(function (entry) {
4359          if (!entry.isIntersecting) return;
4360          reveal(entry.target, isFirstCallback);
4361        });
4362        isFirstCallback = false;
4363      },
4364      // セクション上端が画面下端から 10% 入った時点で再生する。
4365      { threshold: 0, rootMargin: "0px 0px -10% 0px" }
4366    );
4367
4368    targets.forEach(function (el) {
4369      observer.observe(el);
4370    });
4371
4372    // 上の rootMargin は画面下端を 10% 詰めているため、ページ最下部まで来ても
4373    // その線を越えられない末尾セクションが残りうる。最下部に到達したら取りこぼしを表示する。
4374    // スクロールが発生しない短いページも初回評価でここに入る。
4375    function revealRemaining(instant) {
4376      const remaining = document.querySelectorAll("[data-scroll-in]:not(.is-visible)");
4377      remaining.forEach(function (el) {
4378        reveal(el, instant);
4379      });
4380    }
4381
4382    // scroll / resize から呼ばれるときは第1引数に Event が入るため、厳密比較で初回だけを instant にする。
4383    // 初回はこの関数が IntersectionObserver の初回コールバック(非同期)より先に同期実行されるので、
4384    // ここを instant にしないと、スクロールが発生しない短いページで読み込み直後にフェードが再生される。
4385    function checkBottomReached(instant) {
4386      const scrolled = window.scrollY || window.pageYOffset || 0;
4387      if (window.innerHeight + scrolled >= root.scrollHeight - 2) revealRemaining(instant === true);
4388
4389      // 出し切ったら監視をやめる
4390      if (!document.querySelector("[data-scroll-in]:not(.is-visible)")) {
4391        window.removeEventListener("scroll", checkBottomReached);
4392        window.removeEventListener("resize", checkBottomReached);
4393      }
4394    }
4395
4396    window.addEventListener("scroll", checkBottomReached, { passive: true });
4397    window.addEventListener("resize", checkBottomReached, { passive: true });
4398    checkBottomReached(true);
4399  }
4400
4401  // ---------------------------------------------------------------------------
4402  // ② 画像の遅延読み込みフェード
4403  // ---------------------------------------------------------------------------
4404  function initImageFade() {
4405    // 門番クラスが無い = アニメーション「なし」。CSS 側で透明になっていないので何もしない。
4406    // 遅延読み込み自体は loading="lazy" 任せなので、ここを抜けても効いたままになる。
4407    if (!root.classList.contains("img-fade-enabled")) return;
4408
4409    // 実行時点の DOM を1回だけ走査する。これ以降に動的挿入された img に data-img-fade を
4410    // 付けると、is-loaded が付かず永久に透明になる点に注意(商品詳細のオプション変更で
4411    // 再生成されるサムネイルは、あえて属性を付けずに即時表示させている)。
4412    const images = document.querySelectorAll("img[data-img-fade]");
4413
4414    images.forEach(function (img) {
4415      // キャッシュ済みなどで既に読み終わっている場合は load が飛ばないため、先に判定する。
4416      if (img.complete && img.naturalWidth > 0) {
4417        img.classList.add("is-loaded");
4418        return;
4419      }
4420      img.addEventListener(
4421        "load",
4422        function () {
4423          img.classList.add("is-loaded");
4424        },
4425        { once: true }
4426      );
4427      // 失敗時は is-loaded を付けない。プレースホルダの単色が残り、壊れた表示にならない。
4428    });
4429  }
4430
4431  // ---------------------------------------------------------------------------
4432  // ③ 上部へ戻る追従ボタン
4433  // ---------------------------------------------------------------------------
4434  // 全ページ共通の単一デザイン。ページ種別による出し分けはしない(#37283)。
4435  // 商品詳細の購入導線へ戻す機能は #37284 の追従カートボタンとして別に作るため、
4436  // ここでは扱わない。
4437
4438  // キーボードのフォーカスもページ先頭へ送る。スクロールしただけではフォーカスはボタンに
4439  // 残り、ボタンが非表示になると元の位置(フッターの後ろ)を見失う。
4440  // 移動先は header ではなく body にする。header だと、その前にあるアナウンスバーのリンクが
4441  // 次の Tab で飛ばされる(#37840)。
4442  // 付けた tabindex はフォーカスが離れた時点で外す。残すと body がクリックでフォーカスされる
4443  // 要素のままになる。元から tabindex を持っていた場合は触らない。
4444  function moveFocusToTop() {
4445    const body = document.body;
4446    if (!body.hasAttribute("tabindex")) {
4447      body.setAttribute("tabindex", "-1");
4448      body.addEventListener(
4449        "blur",
4450        function () {
4451          body.removeAttribute("tabindex");
4452        },
4453        { once: true }
4454      );
4455    }
4456    body.focus({ preventScroll: true });
4457  }
4458
4459  function initBackToTop() {
4460    const button = document.querySelector("[data-back-to-top]");
4461    if (!button) return;
4462
4463    const level = button.getAttribute("data-animation-level");
4464    let ticking = false;
4465
4466    function scrollBehavior() {
4467      return level === "none" || prefersReducedMotion() ? "auto" : "smooth";
4468    }
4469
4470    function pageOffsetY() {
4471      return window.scrollY || window.pageYOffset || 0;
4472    }
4473
4474    function update() {
4475      // 600px 以上スクロールしたら表示する。ページ種別によらず同じ条件。
4476      button.classList.toggle("is-shown", pageOffsetY() >= 600);
4477    }
4478
4479    function requestUpdate() {
4480      if (ticking) return;
4481      ticking = true;
4482      window.requestAnimationFrame(function () {
4483        ticking = false;
4484        update();
4485      });
4486    }
4487
4488    button.addEventListener("click", function () {
4489      window.scrollTo({ top: 0, behavior: scrollBehavior() });
4490      moveFocusToTop();
4491    });
4492
4493    // scroll イベントを待たずに一度評価する。編集画面プレビューは iframe を差し替えたあと
4494    // スクロール位置を復元するため、イベント待ちだと初期状態がずれる。
4495    update();
4496
4497    window.addEventListener("scroll", requestUpdate, { passive: true });
4498    window.addEventListener("resize", requestUpdate, { passive: true });
4499  }
4500
4501  // スクロールインは DOMContentLoaded を待たずに初期化する。アセットはセクションより後ろに
4502  // 展開されるため対象要素は既に存在しており、待つと head の同期スクリプト(CDN)が詰まった間
4503  // 本文が opacity: 0 のまま真っ白になる。
4504  // 初期化に失敗しても、隠したままにだけはしない。
4505  try {
4506    initScrollIn();
4507  } catch (e) {
4508    disableScrollIn();
4509  }
4510
4511  try {
4512    initImageFade();
4513  } catch (e) {
4514    root.classList.remove("img-fade-enabled");
4515  }
4516
4517  // 追従ボタンはアセットより後ろに描画されるため、DOM の構築完了を待つ。
4518  document.addEventListener("DOMContentLoaded", function () {
4519    try {
4520      initBackToTop();
4521    } catch (e) {
4522      /* 追従ボタンが出ないだけで、閲覧は妨げない */
4523    }
4524  });
4525})();
4526
4527      document.addEventListener('DOMContentLoaded', () => {
4528  const target = document.querySelectorAll('.common-item-swiper');
4529  if (target.length > 0) {
4530    target.forEach((el) => {
4531      const slidesPerViewDesktop = Number(el.dataset.slidesPerView) || 3;
4532      new Swiper(el, {
4533        slidesPerView: 1.5,
4534        spaceBetween: 10,
4535        loop: false,
4536        mousewheel: {
4537          forceToAxis: true,
4538        },
4539        pagination: {
4540          el: el.querySelector('.swiper-pagination'),
4541          type: 'progressbar',
4542        },
4543        navigation: {
4544          nextEl: el.querySelector('.swiper-button-next'),
4545          prevEl: el.querySelector('.swiper-button-prev'),
4546        },
4547        breakpoints: {
4548          768: {
4549            slidesPerView: slidesPerViewDesktop,
4550            spaceBetween: 12,
4551          },
4552        },
4553      });
4554    });
4555  }
4556
4557  const calendarTarget = document.querySelector('.calendar-swiper-container');
4558  if (calendarTarget) {
4559    new Swiper('.calendar-swiper-container', {
4560      slidesPerView: 1,
4561      centeredSlides: true,
4562      autoHeight: true,
4563      navigation: {
4564        nextEl: '.calendar-swiper-button-next',
4565        prevEl: '.calendar-swiper-button-prev',
4566      },
4567    });
4568  }
4569
4570  // スクロールインはテーマ設定「アニメーション」に連動するセクション単位(scroll-effect.js)に
4571  // 一本化した。かつてここにあった .observe-item を要素単位でフェードさせる処理は、
4572  // どの設定でも再生しないため削除している。
4573  //   なし      : スクロールインを行わない
4574  //   弱 / 標準 : セクション単位で1回だけ再生する(要素単位と二重に再生させない)
4575  // .observe-item クラスは各セクションの markup に残っているが、参照する処理は無く無効。
4576});
4577
4578    </script>
4578
4579    <!-- /nocode:module:javascript -->
4580
4581
4582    <button
4583      type="button"
4584      class="back-to-top"
4585      data-back-to-top
4586      data-animation-level="normal"
4587    >
4588      <span class="sr-only">ページの先頭へ戻る</span>
4589      <i class="fi fi-rr-angle-small-up" aria-hidden="true"></i>
4590    </button>
4591
4592    <div
4593      x-data="
4594        {
4595          open: false,
4596          isError: false,
4597          message: '',
4598          redirectUrl: '',
4599          previousActiveElement: null,
4600          show(detail) {
4601            this.isError = !!(detail && detail.isError);
4602            this.redirectUrl = (detail && detail.redirectUrl) || '';
4603            const nextMessage = (detail && detail.message)
4604              ? detail.message
4605              : (this.isError ? 'カートに追加できませんでした' : '商品が追加されました');
4606            // 同一メッセージを連続表示しても DOM 変化が起きるよう、一度空文字にしてから次 tick で再設定する
4607            this.message = '';
4608            this.previousActiveElement = document.activeElement;
4609            this.open = true;
4610            this.$nextTick(() => {
4611              this.message = nextMessage;
4612              if (this.$refs.closeButton) this.$refs.closeButton.focus();
4613            });
4614          },
4615          // エラー時に商品詳細URLが渡されていれば、その商品ページへ遷移する(オプション選択等のため)
4616          confirm() {
4617            if (this.redirectUrl) {
4618              window.location.href = this.redirectUrl;
4619              return;
4620            }
4621            this.close();
4622          },
4623          close() {
4624            this.open = false;
4625            this.$nextTick(() => {
4626              if (this.previousActiveElement && this.previousActiveElement.focus) {
4627                this.previousActiveElement.focus();
4628              }
4629            });
4630          }
4631        }
4632      "
4633      x-init="window.addEventListener('makeshop:cart-entry', (e) => show(e.detail))"
4634      x-show="open"
4635      x-transition:enter="transition ease-out duration-200"
4636      x-transition:enter-start="opacity-0"
4637      x-transition:enter-end="opacity-100"
4638      x-transition:leave="transition ease-in duration-150"
4639      x-transition:leave-start="opacity-100"
4640      x-transition:leave-end="opacity-0"
4641      class="fixed inset-0 z-[100] flex items-center justify-center px-4 py-6"
4642      @keydown.escape.window="open && close()"
4643      x-cloak
4644    >
4645      <div class="absolute inset-0 bg-black/40" aria-hidden="true" @click="close()"></div>
4646      <div
4647        class="relative w-full max-w-[420px] bg-white text-[#333] theme-rounded shadow-2xl px-6 py-7 text-center"
4648        :role="isError ? 'alertdialog' : 'dialog'"
4649        aria-modal="true"
4650        aria-labelledby="cart-entry-modal-title"
4651        aria-describedby="cart-entry-modal-description"
4652      >
4653        <button
4654          type="button"
4655          x-ref="closeButton"
4656          @click="close()"
4657          class="absolute right-4 top-4 flex h-8 w-8 items-center justify-center rounded-full text-[#333]/70 transition-colors hover:bg-black/5 hover:text-[#333] focus:outline-none focus:ring-2 focus:ring-black/50"
4658        >
4659          <span class="sr-only">閉じる</span>
4660          <span aria-hidden="true" class="text-xl leading-none">&times;</span>
4661        </button>
4662        <div
4663          class="mx-auto mb-4 flex h-12 w-12 items-center justify-center rounded-full text-2xl"
4664          :class="isError ? 'bg-red-50 text-red-500' : 'bg-green-50 text-green-600'"
4665          aria-hidden="true"
4666        >
4667          <i class="fi" :class="isError ? 'fi-rr-cross-circle' : 'fi-rr-check-circle'"></i>
4668        </div>
4669        <h2 id="cart-entry-modal-title" class="text-lg font-bold tracking-[0.05em]" x-text="message"></h2>
4670        <p
4671          id="cart-entry-modal-description"
4672          class="mt-3 text-sm leading-6 text-[#333]/80"
4673          x-text="isError ? (redirectUrl ? 'オプションの選択などが必要な商品です。商品ページで内容をご確認ください。' : '内容をご確認のうえ、もう一度お試しください。') : 'カートに商品が追加されました。内容を確認するか、購入手続きへお進みください。'"
4674        ></p>
4675        <div class="mt-6 grid gap-3 sm:grid-cols-2" x-show="!isError">
4676          <a
4677            href="/view/cart"
4678            class="theme-button-normal theme-rounded flex h-11 items-center justify-center px-4 text-sm font-bold transition-opacity hover:opacity-80"
4679          >
4680            カートを見る
4681          </a>
4682          <a
4683            href="#makeshop-common-order-url"
4684            class="theme-button-cart theme-rounded flex h-11 items-center justify-center px-4 text-sm font-bold transition-opacity hover:opacity-80"
4685          >
4686            ご購入手続きへ進む
4687          </a>
4688        </div>
4689        <div class="mt-6" x-show="isError && redirectUrl">
4690          <button
4691            type="button"
4692            @click="confirm()"
4693            class="theme-button-cart theme-rounded flex h-11 w-full items-center justify-center px-4 text-sm font-bold transition-opacity hover:opacity-80"
4694          >
4695            商品ページへ進む
4696          </button>
4697        </div>
4698        <div class="mt-4" x-show="!(isError && redirectUrl)">
4699          <button
4700            type="button"
4701            @click="confirm()"
4702            class="inline-flex h-10 items-center justify-center px-5 text-sm text-[#333]/80 transition-colors hover:text-[#333] focus:outline-none focus:ring-2 focus:ring-black/50"
4703            x-text="isError ? 'OK' : '買い物を続ける'"
4704          ></button>
4705        </div>
4706      </div>
4707    </div>
4708
4709    
4709<script src="/view/asset/user-99999-1-3-d41d8cd98f00b204e9800998ecf8427e.js"></script>
4709
4710
4711        <form name="ssl_login_form" method="post" action="https://www.bubustore.jp/ssl/slogin/" target="_top" style="margin:0;padding:0;">
4712        <input type="hidden" name="db" value="animd">
4713        <input type="hidden" name="type" value="">
4714        <input type="hidden" name="opt" value="">
4715        <input type="hidden" name="ssl_login_return_url" value="%2Fview%2Fitem%2F000000004802">
4716        <input type="hidden" name="user_id" value="">
4717        <input type="hidden" name="ssl_tempid" value="142e995ae771bcc5318d08066fcf920e">
4718    </form>
4719
4720    
4720<script language="JavaScript">
4721    function ssl_login(type, etc, user_id){
4722        var etc = (typeof(etc) != "undefined") ? etc : '';
4723        var user_id = (typeof(user_id) != "undefined") ? user_id : '';
4724
4725        document.ssl_login_form.type.value = type;
4726        document.ssl_login_form.opt.value = etc;
4727        document.ssl_login_form.user_id.value = user_id;
4728        document.ssl_login_form.submit();
4729    }
4730    </script>
4730
4731    <form name="ssl_idinfo_form" style="margin:0;padding:0;" method="post" action="https://www.bubustore.jp/ssl/ssl_idinfo/ssl_idinfo.html">
4732        <input type="hidden" name="db" value="animd">
4733        <input type="hidden" name="login_id" value="">
4734        <input type="hidden" name="ssl_tempid" value="142e995ae771bcc5318d08066fcf920e">
4735    </form>
4736    
4736<script>
4737    function ssl_idinfo() {
4738        document.ssl_idinfo_form.submit();
4739    }
4740    </script>
4740
4741    <form name="ssl_confirm_form" style="margin:0;padding:0;" method="post" action="https://www.bubustore.jp/ssl/ssl_confirm/confirm.html">
4742        <input type="hidden" name="db" value="animd">
4743        <input type="hidden" name="login_id" value="">
4744        <input type="hidden" name="type" value="confirm">
4745        <input type="hidden" name="ssl_tempid" value="142e995ae771bcc5318d08066fcf920e">
4746    </form>
4747    
4747<script>
4748    function ssl_confirm(){
4749        document.ssl_confirm_form.submit();
4750    }
4751    </script>
4751
4752    <form name="ssl_point_form" style="margin:0;padding:0;" method="post" action="https://www.bubustore.jp/ssl/mypage/point.html">
4753        <input type="hidden" name="db" value="animd">
4754        <input type="hidden" name="login_id" value="">
4755        <input type="hidden" name="ssl_tempid" value="142e995ae771bcc5318d08066fcf920e">
4756    </form>
4757    
4757<script>
4758    function ssl_point(){
4759        document.ssl_point_form.submit();
4760    }
4761    </script>
4761
4762    <form name="ssl_favorite_form" style="margin:0;padding:0;" method="post" action="https://www.bubustore.jp/ssl/mypage/favorite.html">
4763        <input type="hidden" name="db" value="animd">
4764        <input type="hidden" name="login_id" value="">
4765        <input type="hidden" name="ssl_tempid" value="142e995ae771bcc5318d08066fcf920e">
4766    </form>
4767    
4767<script>
4768    function ssl_favorite(){
4769        document.ssl_favorite_form.submit();
4770    }
4771    </script>
4771
4772    <form name="ssl_external_login_form" style="margin:0;padding:0;" method="post" action="https://www.bubustore.jp/ssl/mypage/external_login.html">
4773        <input type="hidden" name="db" value="animd">
4774        <input type="hidden" name="login_id" value="">
4775        <input type="hidden" name="ssl_tempid" value="142e995ae771bcc5318d08066fcf920e">
4776    </form>
4777    
4777<script>
4778    function ssl_external_login() {
4779        document.ssl_external_login_form.submit();
4780    }
4781    </script>
4781
4782    <form name="ssl_address_book" style="margin:0;padding:0;" method="post" action="https://www.bubustore.jp/ssl/mypage/address_book.html">
4783        <input type="hidden" name="db" value="animd">
4784        <input type="hidden" name="login_id" value="">
4785        <input type="hidden" name="ssl_tempid" value="142e995ae771bcc5318d08066fcf920e">
4786    </form>
4787    
4787<script>
4788    function ssl_address_book() {
4789        document.ssl_address_book.submit();
4790    }
4791    </script>
4791
4792<div class="makeshop-modal-window" data-remodal-id="makeshop-common-modal">
4793    <button data-remodal-action="close" class="remodal-close"></button>
4794    <p class="error-text"></p>
4795    <button data-remodal-action="confirm" class="remodal-confirm">OK</button>
4796</div>
4797
4798<input type="hidden" id="makeshop-page-common-cart-data"
4799    data-cart-url="/view/cart"
4800    data-cart-entry-url-prefix="#makeshop-common-cart-entry-url:"
4801    data-cart-remove-url-prefix="#makeshop-common-cart-remove-url:"
4802    data-cart-quantity-url-prefix="#makeshop-common-cart-quantity-url:"
4803    data-id-quantity-prefix="makeshop-common-cart-quantity:"
4804>
4805
4806<form id="makeshop-form-common-order" method="post" action="">
4807    <input type="hidden" name="ssl_login_id" value="">
4808    <input type="hidden" name="ssl_tempid" value="142e995ae771bcc5318d08066fcf920e">
4809</form>
4810<input type="hidden" id="makeshop-page-common-order-data"
4811    data-order-url="#makeshop-common-order-url"
4812>
4813
4814<input type="hidden" id="makeshop-page-common-favorite-data"
4815    data-favorite-entry-url-prefix="#makeshop-common-favorite-entry-url:"
4816    data-favorite-remove-url-prefix="#makeshop-common-favorite-remove-url:"
4817>
4818
4819<input type="hidden" id="makeshop-page-common-search-data"
4820    data-id-keyword="makeshop-search-keyword"
4821    data-id-name="makeshop-search-name"
4822    data-id-price-low="makeshop-search-price-low"
4823    data-id-price-high="makeshop-search-price-high"
4824    data-id-category="makeshop-search-category"
4825    data-id-original-code="makeshop-search-original-code"
4826    data-search-url="#makeshop-common-search-url"
4827>
4828
4829<form id="makeshop-form-common-contact" method="post" action="https://www.bubustore.jp/ssl/contact/">
4830    <input type="hidden" name="admin_id" value="animd">
4831    <input type="hidden" name="login_id" value="">
4832    <input type="hidden" name="return_path" value="/view/item/000000004802">
4833</form>
4834<input type="hidden" id="makeshop-page-common-contact-data"
4835    data-contact-url="#makeshop-common-contact-url"
4836>
4837
4838<input type="hidden" id="makeshop-page-common-slideshow-data"
4839    data-enabled="Y"
4840    data-pause="4000"
4841    data-speed="1300"
4842    data-controls="N"
4843    data-captions="N"
4844    data-mode="horizontal"
4845>
4846
4847<form id="makeshop-form-item-contact" method="post" action="https://www.bubustore.jp/ssl/contact/">
4848    <input type="hidden" name="admin_id" value="animd">
4849    <input type="hidden" name="login_id" value="">
4850    <input type="hidden" name="return_path" value="/view/item/000000004802">
4851    <input type="hidden" name="brandcode" value="000000004802">
4852</form>
4853<input type="hidden" id="makeshop-page-item-contact-data"
4854    data-contact-url="#makeshop-item-contact-url"
4855>
4856
4857<form id="makeshop-form-item-restock" method="post" action="https://www.bubustore.jp/ssl/restock/request_mail.html" target="itemRestockWindow">
4858    <input type="hidden" name="db" value="animd">
4859    <input type="hidden" name="login_id" value="">
4860    <input type="hidden" name="brand_id" value="4802">
4861    <input type="hidden" name="restock_option" value="">
4862</form>
4863<input type="hidden" id="makeshop-page-item-restock-data"
4864    data-restock-url="#makeshop-item-restock-url"
4865    data-sku-restock-url-prefix="#makeshop-item-sku-restock-url:"
4866    data-has-option="N"
4867    data-id-option-prefix="makeshop-item-option"
4868>
4869
4870<input type="hidden" id="makeshop-page-item-information-data"
4871    data-brandcode="000000004802"
4872    data-sku-information-url-prefix="#makeshop-item-sku-information-url:"
4873>
4874
4875<input type="hidden" id="makeshop-page-item-favorite-data"
4876    data-brandcode="000000004802"
4877    data-favorite-entry-url-prefix="#makeshop-item-favorite-entry-url:"
4878    data-favorite-remove-url-prefix="#makeshop-item-favorite-remove-url:"
4879>
4880
4881<input type="hidden" id="makeshop-page-item-cart-data"
4882    data-brandcode="000000004802"
4883    data-cart-url="/view/cart"
4884    data-cart-entry-url-prefix="#makeshop-item-cart-entry-url:"
4885    data-sku-cart-entry-url-prefix="#makeshop-item-sku-cart-entry-url:"
4886    data-purchase-type-normal="1"
4887    data-purchase-type-subscription="2"
4888    data-id-quantity="makeshop-item-quantity"
4889    data-id-option-prefix="makeshop-item-option"
4890    data-id-name-print-prefix="makeshop-item-name-print"
4891>
4892
4893<input type="hidden" id="makeshop-page-item-option-data"
4894    data-brandcode="000000004802"
4895    data-purchase-type-normal="1"
4896    data-purchase-type-subscription="2"
4897    data-id-option-prefix="makeshop-item-option"
4898    data-id-price-prefix="makeshop-item-price:"
4899    data-id-price-excluded-tax-prefix="makeshop-item-price-excluded-tax:"
4900    data-id-tax-prefix="makeshop-item-tax:"
4901    data-id-point-prefix="makeshop-item-point:"
4902    data-is-excluding-tax-calc="N"
4903>
4904
4905<input type="hidden" id="makeshop-page-item-metafield-data"
4906    data-id-option-prefix="makeshop-item-option"
4907    data-id-metafield-prefix="makeshop-item-metafield:"
4908    data-sku-values=""
4909>
4910
4911<script src="/js/jquery/3.7.1/jquery.min.js" defer></script>
vendor: 1 bytes, line 4911
4911
4912<script src="/js/jqueryplugin/remodal/1.1.1/remodal.min.js" defer></script>
vendor: 1 bytes, line 4912
4912
4913<script src="/js/jqueryplugin/makeshop_bxslider/4.2.14/jquery.bxslider.min.js" defer></script>
vendor: 1 bytes, line 4913
4913
4914<script src="/view/asset/system-99999-1-3-f5970b24939c8ae0c21a7388c7d5b152.js" defer></script>
vendor: 1 bytes, line 4914
4914
4915<script type='text/javascript' charset='UTF-8' src='https://checkout-api.worldshopping.jp/v1/script?token=makeshop__animd'></script>
4915
4916<!--066ce38edf588d3c211f89287269d95d0a4555412349cac35d48334c711a1bea3832404f98a7faf4ed7d4d66456ace1679b5d62b7a376f-->
4917<script type="text/javascript" src="//static.criteo.net/js/ld/ld.js" async="true"></script>
vendor: 1 bytes, line 4917
4917
4918<script type="text/javascript">
4919window.criteo_q = window.criteo_q || [];
4920window.criteo_q.push(
4921    { event: "setAccount", account: 11525 },
4922    { event: "setSiteType", type: "d" },
4923    { event: "viewItem", item: "MS1hbmltZC00ODAy" }
4924);
4925
4926</script>
4926
4927  </body>
4928</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.