        /* ==========================================================================
           Components
        ========================================================================== */
        /* ローディング */
        .loading { display: flex; justify-content: center; align-items: center; position: fixed; width: 100%; height: 100vh; background: var(--bodyBgColor); z-index: var(--z-loading); transition: opacity 0.3s; }
        .loading.hide { opacity: 0; pointer-events: none; }
        .loading .loader span { display:inline-block; width: 8px; height: 8px; margin:0 3px; background: var(--textColorMain); border-radius:50%; animation: loader-bounce 0.9s infinite alternate; opacity: 0.5; }
        .loading .loader span:nth-child(2) { animation-delay: 0.3s; }
        .loading .loader span:nth-child(3) { animation-delay: 0.6s; }
        @keyframes loader-bounce { to { opacity: 0.2; transform: translateY(-5px); } }
        .item.js-fadein,
        .item.js-fadein.visible { transform: none; }
        *, ::before, ::after { box-sizing: border-box; border-width: 0; }
        html { width: 100%; min-height: 100%; font-size: 62.5%; background-color: var(--bodyBgColor) !important; line-height: 1.15; overflow-x: hidden; overflow-y: auto; -webkit-text-size-adjust: 100%; -webkit-tap-highlight-color: transparent; }
        body { width: 100%; min-height: 100%; margin: 0; background-color: var(--bodyBgColor) !important; color: var(--textColorMain); font-size: 1.5rem; font-family: var(--base-font-family); line-height: 1.75; letter-spacing: var(--body-letter-spacing); overflow-x: hidden; overflow-y: visible; word-wrap: break-word; -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
        h1, h2, h3, h4, h5, h6 { color: var(--textColorHead); font-family: var(--heading-font-family); letter-spacing: 0.03em; line-height: 1.35; margin: 0; padding: 0; }
        p { line-height: 1.95; font-size: 1.5rem; margin: 0; padding: 0; }
        .price,
        .subscription-price-current,
        .subscription-price-proper { font-family: var(--price-font-family, var(--base-font-family)); }
        a { text-decoration: none; color: inherit; transition: color 0.25s ease, opacity 0.25s ease, transform 0.25s ease; }
        a:hover, a:active { opacity: 0.78; }
        ul, ol { list-style: none; margin: 0; padding: 0; }
        img { max-width: 100%; vertical-align: bottom; }
        .top-section-order-wrap { display: flex; flex-direction: column; background: var(--bodyBgColor); }
        .theme-page-body { color: var(--textColorMain); background: var(--bodyBgColor); }

        /* ボタン・フォーム */
        button, input, select, textarea { outline: none; font-family: inherit; }
        .btnt a, .hero-cta a, .purchaseButton button, .purchaseButton .purchaseButton__btn--requestRestockMail, .load-more-btn { position: relative; overflow: hidden; isolation: isolate; transition: border-color 0.25s ease, box-shadow 0.25s ease, color 0.25s ease, background 0.25s ease, opacity 0.25s ease, transform 0.25s ease; box-shadow: none; }
        .btnt a::before, .hero-cta a::before, .purchaseButton button::before, .purchaseButton .purchaseButton__btn--requestRestockMail::before, .load-more-btn::before { content: ""; position: absolute; inset: 0; z-index: -1; background: currentColor; opacity: 0; transform: translateX(-102%); transition: transform 0.42s cubic-bezier(0.22, 1, 0.36, 1), opacity 0.25s ease; }
        .btnt a::after, .hero-cta a::after, .purchaseButton button::after, .purchaseButton .purchaseButton__btn--requestRestockMail::after, .load-more-btn::after { content: "→"; display: inline-flex; align-items: center; justify-content: center; margin-left: 12px; font-size: 1.15em; line-height: 1; transition: transform 0.25s ease; }
        .btnt a:hover, .hero-cta a:hover, .purchaseButton button:hover, .purchaseButton .purchaseButton__btn--requestRestockMail:hover, .load-more-btn:hover { transform: translateY(-1px); opacity: 1; box-shadow: 0 16px 42px rgba(28,25,23,0.14); }
        .btnt a:hover::before, .hero-cta a:hover::before, .purchaseButton button:hover::before, .purchaseButton .purchaseButton__btn--requestRestockMail:hover::before, .load-more-btn:hover::before { opacity: 0.08; transform: translateX(0); }
        .btnt a:hover::after, .hero-cta a:hover::after, .purchaseButton button:hover::after, .purchaseButton .purchaseButton__btn--requestRestockMail:hover::after, .load-more-btn:hover::after { transform: translateX(4px); }

        /* ヘッダー */
        .header { display: flex; justify-content: flex-start; align-items: center; gap: 14px; position: fixed; top: 0; width: 100%; z-index: var(--z-header); padding: 14px var(--content-gutter); background: rgba(255, 255, 255, 0.9); color: var(--cardHeadingColor); backdrop-filter: blur(16px); box-shadow: 0 1px 0 rgba(28,25,23,0.08); transition: background 0.4s, padding 0.4s, box-shadow 0.4s; }
        .header.header-transparent { background: transparent; box-shadow: none; padding: 24px var(--content-gutter); color: #fff; }
        .header h1 { flex: 0 0 auto; margin: 0 auto 0 0; font-size: 0; font-weight: 400 !important; line-height: 0; }
        .header h1 a { display: inline-flex; align-items: center; color: inherit; font-family: var(--heading-font-family); font-size: 2.35rem !important; font-weight: 400 !important; line-height: 1 !important; letter-spacing: 0 !important; }
        .header h1 a * { font-weight: 400 !important; letter-spacing: 0 !important; }
        .header h1 img { max-width: 180px; max-height: 35px; transition: filter 0.4s; }
        .header.header-transparent h1 img { filter: brightness(0) invert(1); }
        .header-nav { display: none; }
        .header-nav ul { display: flex; align-items: center; gap: 28px; }
        .header-nav ul li { margin: 0; font-family: var(--label-font-family); font-size: 1.1rem; font-weight: 500; letter-spacing: var(--label-letter-spacing); text-transform: uppercase; }
        .header-nav ul li a { display: block; padding: 8px 0; position: relative; }
        .header-nav ul li a::after { content: ""; position: absolute; bottom: 0; left: 0; width: 0; height: 1px; background: currentColor; transition: width 0.3s; }
        .header-nav ul li a:hover::after { width: 100%; }
        .header-nav-category > span { font-family: var(--label-font-family); }

        /* 検索・メニューアイコン */
        .header-search { flex: 0 0 136px !important; display: flex !important; align-items: center !important; gap: 8px; width: 136px !important; height: 34px !important; min-height: 34px !important; margin: 0 14px !important; padding: 0 12px 0 14px !important; border: 1px solid var(--cardBorderColor) !important; border-radius: 999px !important; background: var(--cardBgColor); color: var(--cardTextColor); box-sizing: border-box !important; overflow: hidden; }
        .header.header-transparent .header-search { background: rgba(255,255,255,0.2); color:#fff; }
        .header-search input,
        .header-search input[type="text"] { flex: 1 1 auto !important; min-width: 0 !important; width: auto !important; max-width: none !important; height: 32px !important; min-height: 0 !important; margin: 0 !important; padding: 0 !important; border: 0 !important; border-radius: 0 !important; background: transparent !important; color: inherit !important; font-size: 1.1rem !important; line-height: 32px !important; box-shadow: none !important; box-sizing: border-box !important; appearance: none !important; }
        .header-search input::placeholder { color: currentColor; opacity: 0.55; }
        .header-search button { flex: 0 0 18px !important; display: inline-flex !important; align-items: center !important; justify-content: center !important; width: 18px !important; height: 32px !important; min-height: 0 !important; margin: 0 !important; padding: 0 !important; border: 0 !important; border-radius: 0 !important; background: transparent !important; color: inherit; cursor: pointer; fill: currentColor; box-shadow: none !important; appearance: none !important; }
        .header-search button svg { display: block; width: 15px; height: 15px; fill: currentColor; }
        .header-i18n { min-width: 112px; margin-right: 14px; font-size: 1.1rem; }
        .drawer-i18n { width: 100%; max-width: 320px; margin: 0 auto 18px; text-align: center; }
        .header-i18n .x_i18nSelectBox,
        .drawer-i18n .x_i18nSelectBox { width: 100%; max-width: 180px; min-height: 34px; border: 1px solid var(--cardBorderColor); border-radius: 999px; background: var(--cardBgColor); color: var(--cardTextColor); font-family: var(--base-font-family); font-size: 1.1rem; }

        .base-menu { flex: 0 0 auto; }
        .base-menu ul { display: flex; align-items: center; }
        .base-menu ul li { margin-left: 10px; }
        .base-menu img { height: 20px; }
        .header.header-transparent .base-menu img { filter: brightness(0) invert(1); }

        .drawer-open { display: block; width: 40px; height: 40px; position: relative; cursor: pointer; color: #666; border: 1px solid rgba(28,25,23,0.14); border-radius: 50%; }
        .header.header-transparent .drawer-open { border-color: rgba(255,255,255,0.34); color: #666; }
        .drawer-open span, .drawer-open span::before, .drawer-open span::after { content: ""; position: absolute; width: 100%; height: 2px; background: #666; transition: 0.3s; }
        .drawer-open span { top: 19px; left: 10px; width: 18px; }
        .drawer-open span::before { top: -6px; left: 0; }
        .drawer-open span::after { top: 6px; left: 0; }

        /* ドロワー(PC/モバイル共通メニュー) */
        body.drawer-lock { overflow: hidden; }
        .drawer-bg { position: fixed; inset: 0; background: rgba(28,25,23,0.52); opacity: 0; visibility: hidden; z-index: var(--z-drawer-bg); transition: 0.3s; backdrop-filter: blur(6px); }
        .drawer-bg.open { opacity: 1; visibility: visible; }
        .drawer { position: fixed; right: 0; top: 0; width: min(760px, 92vw); height: 100vh; background: var(--bodyBgColor); z-index: var(--z-drawer); transform: translateX(100%); transition: 0.38s cubic-bezier(0.22, 1, 0.36, 1); padding: clamp(70px, 8vw, 96px) clamp(26px, 5vw, 64px) 48px; display: block; overflow-y: auto; box-shadow: -26px 0 70px rgba(28,25,23,0.18); }
        .drawer.open { transform: translateX(0); }
        .drawer-close { position: absolute; top: 20px; right: 20px; width: 40px; height: 40px; cursor: pointer; }
        .drawer-close::before, .drawer-close::after { content:""; position:absolute; top: 20px; left: 5px; width: 30px; height: 2px; background: var(--textColorMain); }
        .drawer-close::before { transform: rotate(45deg); }
        .drawer-close::after { transform: rotate(-45deg); }
        .drawer-layout { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(220px, 0.85fr); gap: clamp(32px, 5vw, 64px); align-items: start; }
        .drawer-section { padding-bottom: 30px; border-bottom: 1px solid rgba(28,25,23,0.1); }
        .drawer-section + .drawer-section { margin-top: 30px; }
        .drawer-section-title { display: block; margin-bottom: 16px; color: var(--color-amber-600); font-family: var(--label-font-family); font-size: 1.1rem; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; }
        .drawer-category-list ul,
        .drawer-link-list,
        .drawer-nav { display: grid; gap: 10px; }
        .drawer-category-list li,
        .drawer-link-list li,
        .drawer-nav li { margin: 0; }
        .drawer-category-list a,
        .drawer-link-list a,
        .drawer-nav a { display: inline-flex; align-items: center; min-height: 34px; color: var(--textColorHead); font-family: var(--heading-font-family); font-size: clamp(1.8rem, 2vw, 2.6rem); font-weight: 600; line-height: 1.4; overflow-wrap: anywhere; }
        .drawer-category-list ul ul { margin: 6px 0 10px 18px; gap: 4px; }
        .drawer-category-list ul ul a,
        .drawer-link-list.is-sub a { color: var(--color-stone-600); font-family: var(--label-font-family); font-size: 1.25rem; font-weight: 700; letter-spacing: 0.04em; }
        .drawer-search { width: 100%; margin-bottom: 24px; display: flex; align-items: center; gap: 8px; padding: 0 14px; border: 1px solid rgba(28,25,23,0.14); border-radius: 999px; min-height: 44px; }
        .drawer-search input { flex: 1; min-width: 0; border: 0; background: transparent; color: var(--textColorMain); font-size: 1.4rem; }
        .drawer-search button { width: 20px; padding: 0; background: transparent; color: var(--textColorMain); cursor: pointer; }
        .drawer-search svg { width: 18px; fill: currentColor; }
        .drawer-i18n { max-width: none; margin: 0 0 24px; text-align: left; }

        /* ヒーロー (メインビジュアル) */
        .mainvisual { position: relative; height: 100svh; min-height: 620px; overflow: hidden; }
        .video-background, .image-background { position: absolute; inset: 0; z-index: var(--z-background); background-color: #333; }
        .video-background { overflow: hidden; }
        .video-background iframe { position: absolute; top: 50%; left: 50%; width: 100vw; height: 56.25vw; min-height: 100vh; min-width: 177.78vh; transform: translate(-50%, -50%); pointer-events: none; }
        .image-background { overflow: hidden; background-size: cover; background-position: center; }
        .hero-background-slide { position: absolute; inset: 0; background-size: cover; background-position: center; opacity: 0; transform: scale(1.04); transition: opacity 1800ms ease, transform 7200ms ease; will-change: opacity, transform; }
        .hero-background-slide.is-active { opacity: 1; transform: scale(1); }
        .video-overlay { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(0,0,0,0.62) 0%, rgba(0,0,0,0.34) 42%, rgba(0,0,0,0.18) 100%); z-index: var(--z-content); }
        .mainvisual-content { position: relative; z-index: 2; height: 100%; display: flex; flex-direction: column; justify-content: flex-end; padding: 0 var(--content-gutter) clamp(64px, 9vw, 112px); color: #fff; }
        .mainvisual-content .text { max-width: min(720px, 88vw); }
        .hero-eyebrow { font-family: var(--label-font-family); font-size: 1.2rem; font-weight: 700; letter-spacing: var(--label-letter-spacing); line-height: 1.5; margin-bottom: 16px; text-transform: uppercase; }
        .mainvisual-content .title { color: #fff; font-family: var(--heading-font-family); font-size: clamp(3.2rem, 4vw, 5.2rem); font-weight: 700; line-height: 1.18; letter-spacing: 0.04em; margin-bottom: 22px; }
        .hero-description { max-width: 560px; font-size: clamp(1.5rem, 1.4vw, 1.8rem); line-height: 2; opacity: 0.92; margin-bottom: 34px; }
        .hero-cta { display: flex; gap: 12px; flex-wrap: wrap; margin-bottom: 0; }
        .hero-cta a { display: inline-flex; align-items: center; justify-content: center; min-height: 54px; padding: 0 24px 0 28px; border-radius: 999px; font-family: var(--label-font-family); font-weight: 700; font-size: 1.25rem; letter-spacing: 0.08em; }
        .hero-cta-primary { background: var(--btnBgColor); color: #fff; border: 1px solid rgba(255,255,255,0.18); box-shadow: 0 18px 46px rgba(0,0,0,0.18); }
        .hero-cta-primary::before { background: #fff; }
        .hero-cta-secondary { border: 1px solid rgba(255,255,255,0.58); background: rgba(255,255,255,0.06); color: #fff; backdrop-filter: blur(14px); }
        .hero-cta-secondary::before { background: #fff; }
        .hero-cta-secondary:hover { border-color: rgba(255,255,255,0.9); color: #fff; }
        .side-promo-banner { position: fixed; left: 0; top: 50%; z-index: calc(var(--z-header) - 1); transform: translateY(-50%); display: grid; gap: 8px; width: 184px; padding: 18px 18px 18px 16px; background: rgba(28,25,23,0.92); color: #fff; border: 1px solid rgba(255,255,255,0.14); border-left: 0; border-radius: 0 8px 8px 0; box-shadow: 0 18px 44px rgba(28,25,23,0.22); backdrop-filter: blur(14px); }
        .side-promo-banner:hover { opacity: 1; transform: translateY(-50%) translateX(4px); }
        .side-promo-label { color: var(--salepriceColor, var(--noticeColor)); font-family: var(--label-font-family); font-size: 1rem; font-weight: 700; letter-spacing: 0.14em; line-height: 1.2; }
        .side-promo-body { color: #fff; font-family: var(--heading-font-family); font-size: 1.45rem; font-weight: 700; line-height: 1.55; overflow-wrap: anywhere; }
        .side-promo-link { display: inline-flex; align-items: center; gap: 8px; color: rgba(255,255,255,0.78); font-family: var(--label-font-family); font-size: 1.05rem; font-weight: 700; letter-spacing: 0.08em; }
        .side-promo-link::after { content: ""; width: 18px; height: 1px; background: currentColor; transition: width 0.25s ease; }
        .side-promo-banner:hover .side-promo-link::after { width: 28px; }
        .template-feature-strip { padding: 22px var(--content-gutter); background: var(--color-stone-900); color: #fff; }
        .template-feature-list { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 10px; max-width: var(--container-width); margin: 0 auto; }
        .template-feature-list span { display: inline-flex; align-items: center; min-height: 30px; padding: 0 14px; border: 1px solid rgba(255,255,255,0.18); border-radius: 999px; color: var(--color-stone-300); font-family: var(--label-font-family); font-size: 1rem; font-weight: 700; letter-spacing: var(--label-letter-spacing); text-transform: uppercase; }
        @media (prefers-reduced-motion: reduce) {
            .hero-background-slide { transform: none; transition: none; }
        }

        /* 汎用コンテナ */
        /* 固定ヘッダーの実測値を使い、ロゴや翻訳UIの高さが変わっても下層タイトルを隠さない。 */
        .content { margin: calc(var(--header-height, 72px) + clamp(32px, 4vw, 64px)) auto 64px; padding: 0 var(--content-gutter); max-width: var(--container-width); }
        .content.item-content { max-width: min(1400px, calc(100vw - (var(--content-gutter) * 2))); }
        .home .content { margin-top: 0; max-width: 100%; padding: 0; }
        .top-section-order-wrap > * { min-width: 0; }
        .section_title { text-align: center; margin: 0 0 clamp(34px, 4vw, 56px); position: relative; padding-bottom: 18px; }
        .section_title.section_title_with_lead { margin-bottom: 18px; }
        .section_title::after { content: ""; position: absolute; bottom: 0; left: 50%; transform: translateX(-50%); width: 72px; height: 1px; background: var(--btnBgColor); }
        .secTitleEn { display: block; color: var(--textColorHead); font-family: var(--heading-font-family); font-size: clamp(2.6rem, 2.8vw, 3.6rem); font-weight: 700; letter-spacing: 0.03em; line-height: 1.2; }
        .secTitleJp { display: block; font-family: var(--label-font-family); font-size: 1.2rem; font-weight: 600; letter-spacing: var(--label-letter-spacing); color: var(--color-stone-500); margin-top: 10px; }
        .section-lead { max-width: 680px; margin: 0 auto clamp(34px, 4vw, 56px); color: var(--color-stone-600); text-align: center; font-size: 1.45rem; line-height: 1.95; }
        .section-lead.is-left { max-width: 560px; margin-left: 0; text-align: left; }
        .about-page-body a,
        .theme-page-body #privacy a { color: var(--theme-link-color) !important; text-decoration-line: underline !important; text-decoration-color: var(--theme-link-underline) !important; text-decoration-thickness: 1px; text-underline-offset: 0.22em; transition: color 0.25s ease, text-decoration-color 0.25s ease, opacity 0.25s ease; }
        .about-page-body a:hover,
        .about-page-body a:focus-visible,
        .theme-page-body #privacy a:hover,
        .theme-page-body #privacy a:focus-visible { color: var(--theme-link-color) !important; text-decoration-color: currentColor !important; opacity: 0.82; }
        .community-page-body a:not([class*="Button"]):not([class*="button"]),
        .membership-page-body a:not(.link):not([class*="Button"]):not([class*="button"]) { color: var(--theme-link-color) !important; text-decoration-color: var(--theme-link-underline) !important; transition: color 0.25s ease, text-decoration-color 0.25s ease, opacity 0.25s ease; }
        .community-page-body a:not([class*="Button"]):not([class*="button"]):hover,
        .community-page-body a:not([class*="Button"]):not([class*="button"]):focus-visible,
        .membership-page-body a:not(.link):not([class*="Button"]):not([class*="button"]):hover,
        .membership-page-body a:not(.link):not([class*="Button"]):not([class*="button"]):focus-visible { color: var(--theme-link-color) !important; text-decoration-color: currentColor !important; opacity: 0.82; }
        .contact-page-body { max-width: min(800px, 100%); margin: 0 auto; padding: clamp(30px, 4vw, 46px); border: 1px solid var(--cardBorderColor); border-radius: var(--radius-md); background: var(--cardBgColor); color: var(--cardTextColor); box-shadow: var(--shadow-soft); text-align: left; }
        .contact-page-body form { display: grid; gap: 22px; margin: 0; }
        .contact-page-body table,
        .contact-page-body tbody { display: block; width: 100%; border-collapse: collapse; }
        .contact-page-body tr { display: grid; grid-template-columns: minmax(140px, 180px) minmax(0, 1fr); gap: 18px; align-items: start; padding: 0 0 22px; }
        .contact-page-body tr:last-child { padding-bottom: 0; }
        .contact-page-body th,
        .contact-page-body td { display: block; padding: 0; border: 0; text-align: left; vertical-align: top; }
        .contact-page-body td[colspan] { grid-column: 1 / -1; text-align: center; }
        .contact-page-body th,
        .contact-page-body label { color: var(--cardHeadingColor); font-family: var(--label-font-family); font-size: 1.2rem; font-weight: 700; letter-spacing: var(--label-letter-spacing); line-height: 1.55; }
        .contact-page-body th { padding-top: 14px; }
        .contact-page-body p { color: var(--cardSubTextColor); font-size: 1.35rem; line-height: 1.8; }
        .contact-page-body input:not([type]),
        .contact-page-body input[type="text"],
        .contact-page-body input[type="email"],
        .contact-page-body input[type="tel"],
        .contact-page-body select,
        .contact-page-body textarea { display: block; width: 100%; min-width: 0; min-height: 54px; margin: 0; padding: 0 18px; border: 1px solid rgba(28,25,23,0.16); border-radius: 10px; background: #fff; color: var(--cardTextColor); font-family: var(--base-font-family); font-size: 1.45rem; line-height: 54px; box-shadow: none; box-sizing: border-box; appearance: none; transition: border-color 0.25s ease, box-shadow 0.25s ease, background 0.25s ease; }
        .contact-page-body textarea { min-height: 150px; padding-top: 15px; padding-bottom: 15px; line-height: 1.75; resize: vertical; }
        .contact-page-body input:focus,
        .contact-page-body select:focus,
        .contact-page-body textarea:focus { border-color: var(--btnBgColor); box-shadow: 0 0 0 4px rgba(245,158,11,0.12); background: #fff; }
        .contact-page-body input[type="hidden"] { display: none; }
        .contact-page-body button,
        .contact-page-body input[type="submit"],
        .contact-page-body input[type="button"] { display: inline-flex; align-items: center; justify-content: center; width: auto; min-width: 220px; min-height: 54px; margin: 6px 0 0; padding: 0 28px; border: 1px solid var(--btnBgColor); border-radius: 999px; background: var(--btnBgColor); color: #fff; cursor: pointer; font-family: var(--label-font-family); font-size: 1.3rem; font-weight: 700; line-height: 1; letter-spacing: 0.08em; text-align: center; transition: opacity 0.25s ease, transform 0.25s ease, box-shadow 0.25s ease; appearance: none; }
        .contact-page-body button:hover,
        .contact-page-body input[type="submit"]:hover,
        .contact-page-body input[type="button"]:hover { opacity: 1; transform: translateY(-1px); box-shadow: 0 16px 42px rgba(28,25,23,0.14); }

        /* 商品一覧 (Grid) */
        .item-list-wrap { padding: var(--section-space) var(--content-gutter); max-width: calc(var(--container-width) + (var(--content-gutter) * 2)); margin: 0 auto; }
        .item-list { display: grid; grid-template-columns: repeat(var(--itemListItemNum), minmax(0, 1fr)); gap: var(--grid-gap); }
        .item-list-item { min-width: 0; position: relative; }
        .item-list-item .label_image.list { position: absolute; top: -10px; left: -10px; width: 65px; z-index: 5; pointer-events: none; }
        .item-list-item .image { position: relative; overflow: hidden; border-radius: var(--radius-md); background: var(--color-stone-100); }
        .item-list-item .image a { display: block; position: relative; }
        .item-list-item .image img { width: 100%; aspect-ratio: var(--itemListItemAspect); object-fit: cover; border-radius: 0; transition: transform 0.55s ease, filter 0.55s ease; }
        .item-list-item:hover .image img { transform: scale(1.035); filter: saturate(1.04) contrast(1.02); }
        .item-list-item .text { margin-top: 18px; }
        .item-list-item .name { font-size: 1.45rem; font-weight: 600; line-height: 1.55; letter-spacing: 0.02em; margin-bottom: 7px; overflow-wrap: anywhere; }
        .price,
        .subscription-price-current,
        .subscription-price-proper { font-family: var(--price-font-family, var(--base-font-family)); }
        .item-list-item .price { color: var(--priceColor, var(--color-stone-700)); font-size: 1.35rem; font-weight: 600; letter-spacing: 0.03em; overflow-wrap: anywhere; }
        .price .rate,
        .subscription-price .rate { display: inline-flex; align-items: center; justify-content: center; min-height: 22px; margin-right: 8px; padding: 0 7px; border: 1px solid var(--salepriceColor, var(--noticeColor)); border-radius: 0; background: var(--salepriceColor, var(--noticeColor)); color: #fff; font-family: var(--label-font-family); font-size: 1rem; font-weight: 800; line-height: 1; letter-spacing: 0.04em; vertical-align: middle; white-space: nowrap; }
        .soldout { position: absolute; inset: 0; background: rgba(28,25,23,0.58); color: #fff; display: flex; align-items: center; justify-content: center; font-weight: 700; letter-spacing: var(--label-letter-spacing); border-radius: inherit; backdrop-filter: blur(2px); }
        .item-status-tags { display: flex; flex-wrap: wrap; gap: 8px; margin: 10px 0 0; }
        .item-status-tag { display: inline-flex; align-items: center; min-height: 26px; padding: 0 10px; border-radius: 999px; background: var(--color-stone-100); color: var(--color-stone-700); font-family: var(--label-font-family); font-size: 1rem; font-weight: 700; line-height: 1.3; letter-spacing: 0.06em; overflow-wrap: anywhere; }
        .item-status-tag.is-notice { background: rgba(199,77,65,0.1); color: var(--noticeColor); }
        .category-breadcrumb { margin: -16px auto 28px; text-align: center; font-size: 1.2rem; color: var(--color-stone-500); }
        .category-breadcrumb ul { display: inline-flex; flex-wrap: wrap; justify-content: center; gap: 8px; }
        .category-child-list { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin: -18px auto 42px; }
        .category-child-list a { display: inline-flex; align-items: center; min-height: 34px; padding: 0 14px; border: 1px solid rgba(28,25,23,0.14); border-radius: 999px; font-family: var(--label-font-family); font-size: 1.1rem; font-weight: 700; }

        /* バッジ */
        .badge { position: absolute; top: 14px; left: 14px; width: auto; min-width: 58px; height: 30px; padding: 0 12px; border-radius: 999px; display: inline-flex; align-items: center; justify-content: center; color: #fff; font-family: var(--label-font-family); font-weight: 700; font-style: normal; z-index: 10; font-size: 1.1rem; letter-spacing: 0.08em; box-shadow: 0 10px 24px rgba(0,0,0,0.16); }
        .badge_gold { background: #dab300; }
        .badge_silver { background: #c0c0c0; }
        .badge_copper { background: #C47222; }

        /* カテゴリ商品一覧 (Slider) */
        .category-item-list-wrap { width: 100%; min-width: 0; padding: clamp(64px, 8vw, 104px) var(--content-gutter); max-width: none; margin: 0 auto; display: none; background: var(--bodyBgColor); overflow: hidden; }
        .category-item-list-wrap .section-lead { margin-bottom: clamp(30px, 3.5vw, 46px); }
        .category-item-list { width: 100%; min-width: 0; max-width: var(--container-width); margin: 0 auto; }
        .category-item-list:not(.slick-initialized) { display: flex; overflow-x: auto; padding-bottom: 18px; scroll-snap-type: x mandatory; }
        .category-item-list:not(.slick-initialized) .category-item-slide { flex: 0 0 calc(100% / 3); padding: 4px 14px 18px; scroll-snap-align: start; box-sizing: border-box; }
        .category-item-list.slick-initialized { display: block; position: relative; }
        .category-item-list .slick-list { overflow: hidden; margin: 0 -14px; }
        .category-item-list.slick-initialized .slick-track { display: flex !important; align-items: stretch; }
        .category-item-list.slick-initialized .slick-slide { display: flex !important; float: none !important; height: auto; box-sizing: border-box; }
        .category-item-list.slick-initialized .slick-slide > .category-item-slide,
        .category-item-list.slick-initialized .slick-slide > div > .category-item-slide,
        .category-item-slide { display: flex !important; width: 100%; height: auto; box-sizing: border-box; }
        .category-item-list .slick-slide { padding: 4px 14px 18px; }
        .category-item-list .item-list-item { display: block !important; width: 100%; height: 100%; padding: 14px; border: 1px solid var(--cardBorderColor); border-radius: var(--radius-md); background: var(--cardBgColor); color: var(--cardTextColor); box-shadow: 0 18px 46px rgba(28,25,23,0.08); transition: transform 0.32s ease, box-shadow 0.32s ease, border-color 0.32s ease; box-sizing: border-box; }
        .category-item-list .item-list-item:hover { transform: translateY(-4px); border-color: rgba(28,25,23,0.14); box-shadow: 0 24px 58px rgba(28,25,23,0.12); }
        .category-item-list .item-list-item .label_image.list { top: 4px; left: 4px; width: 54px; }
        .category-item-list .item-list-item .image { display: block !important; width: 100%; border-radius: calc(var(--radius-md) - 2px); background: var(--color-stone-100); }
        .category-item-list .item-list-item .image a { display: block !important; position: relative; width: 100%; }
        .category-item-list .item-list-item .image img { display: block; width: 100%; aspect-ratio: 1 / 1.12; object-fit: cover; }
        .category-item-list .item-list-item .text { display: block !important; width: 100%; margin-top: 16px; padding: 0 2px 3px; box-sizing: border-box; }
        .category-item-list .item-list-item .name { display: -webkit-box; min-height: 3.1em; margin-bottom: 8px; overflow: hidden; -webkit-line-clamp: 2; -webkit-box-orient: vertical; color: var(--cardHeadingColor); font-size: 1.28rem; line-height: 1.55; }
        .category-item-list .item-list-item .price { color: var(--priceColor, var(--textColorHead)); font-size: 1.28rem; font-weight: 700; }
        .category-item-list .item-status-tags { margin-top: 9px; }
        .category-item-list .item-status-tag { min-height: 24px; padding: 0 9px; font-size: 0.95rem; }
        .category-item-list .slick-prev, .category-item-list .slick-next { position: absolute; top: -68px; right: 0; width: 42px; height: 42px; background: rgba(255,255,255,0.9); border: 1px solid rgba(28,25,23,0.12); border-radius: 50%; display: flex; align-items: center; justify-content: center; cursor: pointer; z-index: 10; font-size: 0; color: transparent; box-shadow: 0 12px 28px rgba(28,25,23,0.1); transition: background 0.25s ease, transform 0.25s ease, border-color 0.25s ease; }
        .category-item-list .slick-prev { right: 54px; }
        .category-item-list .slick-prev:hover, .category-item-list .slick-next:hover { transform: translateY(-2px); border-color: rgba(28,25,23,0.22); background: #fff; }
        .category-item-list .slick-prev::before, .category-item-list .slick-next::before { content: ""; display: block; width: 9px; height: 9px; border-top: 2px solid var(--textColorHead); border-left: 2px solid var(--textColorHead); }
        .category-item-list .slick-prev::before { transform: rotate(-45deg); margin-left: 4px; }
        .category-item-list .slick-next::before { transform: rotate(135deg); margin-right: 4px; }
        .category-item-fail { text-align: center; padding: 20px; color: var(--color-stone-500); font-size: 1.4rem; }
        @media (max-width: 768px) { .category-item-list-wrap { padding: 62px 20px; } .category-item-list { max-width: none; } .category-item-list:not(.slick-initialized) { padding-right: 18%; } .category-item-list:not(.slick-initialized) .category-item-slide { flex-basis: 78%; padding: 4px 8px 16px; } .category-item-list .slick-list { margin: 0 -8px; padding-right: 18%; } .category-item-list .slick-slide { padding: 4px 8px 16px; } .category-item-list .slick-prev, .category-item-list .slick-next { top: -54px; width: 36px; height: 36px; } .category-item-list .slick-prev { right: 46px; } .category-item-list .item-list-item { padding: 11px; } .category-item-list .item-list-item .name { font-size: 1.2rem; } .category-item-list .item-list-item .price { font-size: 1.18rem; } }

        /* PickUp セクション */
        .pickup-section { padding: var(--section-space) var(--content-gutter); max-width: calc(var(--container-width) + (var(--content-gutter) * 2)); margin: 0 auto; }
        .pickup-main { display: flex; gap: clamp(34px, 5vw, 72px); align-items: center; margin-bottom: clamp(46px, 6vw, 76px); }
        .pickup-image { width: 60%; position: relative; }
        .pickup-image img { width: 100%; border-radius: var(--radius-lg); box-shadow: var(--shadow-soft); }
        .js-pickup-item:not(.is-loaded) .js-pickup-image { opacity: 0; }
        .pickup-text { width: 40%; }
        .pickup-text h3 { font-family: var(--heading-font-family); font-size: clamp(2.1rem, 2.4vw, 3.2rem); margin-bottom: 14px; }
        .pickup-text .price { font-size: 2rem; font-weight: 700; color: var(--priceColor, var(--noticeColor)); margin-bottom: 22px; }
        .pickup-text p { font-size: 1.5rem; margin-bottom: 32px; line-height: 1.95; color: var(--color-stone-600); }
        .pickup-count-desktop-1 .pickup-sub-list { display: none; }
        .pickup-count-desktop-2 .pickup-list-item-3,
        .pickup-count-desktop-2 .pickup-list-item-4,
        .pickup-count-desktop-2 .pickup-list-item-5,
        .pickup-count-desktop-3 .pickup-list-item-4,
        .pickup-count-desktop-3 .pickup-list-item-5,
        .pickup-count-desktop-4 .pickup-list-item-5 { display: none; }
        @media (max-width: 768px) {
            .pickup-main { flex-direction: column; gap: 30px; }
            .pickup-image,
            .pickup-text { width: 100%; }
            .pickup-section .pickup-sub-list { display: grid; }
            .pickup-section .pickup-list-item { display: block; }
            .pickup-section .purchaseButton,
            .concept-section .purchaseButton { margin-left: auto; margin-right: auto; text-align: center; }
            .pickup-count-mobile-1 .pickup-sub-list { display: none; }
            .pickup-count-mobile-2 .pickup-list-item-3,
            .pickup-count-mobile-2 .pickup-list-item-4,
            .pickup-count-mobile-2 .pickup-list-item-5,
            .pickup-count-mobile-3 .pickup-list-item-4,
            .pickup-count-mobile-3 .pickup-list-item-5,
            .pickup-count-mobile-4 .pickup-list-item-5 { display: none; }
        }
        /* ABOUT セクション */
        .concept-section { padding: var(--section-space) var(--content-gutter); background: var(--conceptSectionBgColor, #fafaf9); }
        .concept-inner { display: flex; gap: clamp(36px, 5vw, 72px); align-items: center; max-width: var(--container-width); margin: 0 auto; }
        .concept-image { width: 50%; }
        .concept-image img { width: 100%; border-radius: var(--radius-lg); box-shadow: var(--shadow-soft); }
        .concept-text-area { width: 50%; }
        .concept-text-area h3 { font-family: var(--heading-font-family); font-size: clamp(2.3rem, 2.7vw, 3.6rem); margin-bottom: 22px; line-height: 1.45; }
        .concept-text-area p { font-size: 1.5rem; margin-bottom: 34px; line-height: 2; color: var(--color-stone-600); }

        /* FEATURE セクション */
        .feature-section { padding: var(--section-space) var(--content-gutter); background: var(--bodyBgColor); }
        .feature-list-wrap { max-width: var(--container-width); margin: 0 auto; }
        .feature-row { display: flex; gap: clamp(36px, 5vw, 72px); align-items: center; margin-bottom: clamp(62px, 8vw, 104px); }
        .feature-row:nth-child(even) { flex-direction: row-reverse; }
        .feature-row:last-child { margin-bottom: 0; }
        .feature-row-img { width: 55%; }
        .feature-row-img img { width: 100%; border-radius: var(--radius-lg); box-shadow: var(--shadow-soft); }
        .feature-row-text { width: 45%; }
        .feature-num { font-size: 1.2rem; font-weight: 700; color: var(--btnBgColor); font-family: var(--label-font-family); margin-bottom: 18px; display: inline-flex; align-items: center; min-height: 30px; padding: 0 13px; border: 1px solid currentColor; border-radius: 999px; line-height: 1; letter-spacing: 0.08em; }
        .feature-row-text h3 { font-family: var(--heading-font-family); font-size: clamp(2.2rem, 2.4vw, 3.2rem); margin-bottom: 10px; }
        .feature-row-text .sub { font-family: var(--label-font-family); font-size: 1.2rem; color: var(--color-amber-600); margin-bottom: 22px; display: block; letter-spacing: var(--label-letter-spacing); font-weight: 700; text-transform: uppercase;}
        .feature-row-text p { font-size: 1.5rem; line-height: 2; color: var(--color-stone-600); }

        .blog-pinned-section { padding: 34px var(--content-gutter); background: var(--bodyBgColor); }
        .blog-pinned-inner { display: flex; align-items: center; justify-content: center; gap: 14px; max-width: var(--container-width); margin: 0 auto; text-align: center; }
        .blog-pinned-label { color: var(--color-amber-600); font-family: var(--label-font-family); font-size: 1.1rem; font-weight: 700; letter-spacing: var(--label-letter-spacing); }
        .blog-pinned-title { font-family: var(--heading-font-family); font-size: clamp(1.7rem, 1.7vw, 2.2rem); line-height: 1.5; overflow-wrap: anywhere; }

        /* Information セクション */
        .information-section { padding: var(--section-space-compact) var(--content-gutter); background: var(--bodyBgColor); }
        .information-inner { max-width: 980px; margin: 0 auto; display: grid; grid-template-columns: 260px minmax(0, 1fr); gap: clamp(28px, 5vw, 72px); align-items: start; }
        .information-heading { position: sticky; top: 104px; }
        .information-heading .section_title { margin: 0; padding-bottom: 0; text-align: left; }
        .information-heading .section_title::after { display: none; }
        .information-heading .secTitleEn { font-size: clamp(2.7rem, 3vw, 4rem); }
        .information-heading .secTitleJp { color: var(--color-amber-600); text-align: left; }
        .information-list { border-top: 1px solid rgba(28,25,23,0.14); }
        .information-item { display: grid; grid-template-columns: 116px minmax(0, 1fr) 34px; gap: 22px; align-items: center; padding: 22px 0; border-bottom: 1px solid rgba(28,25,23,0.14); color: var(--textColorMain); }
        .information-item:hover { opacity: 1; }
        .information-date { color: var(--color-stone-500); font-family: var(--label-font-family); font-size: 1.15rem; font-weight: 700; letter-spacing: 0.08em; }
        .information-text { color: var(--textColorHead); font-family: var(--heading-font-family); font-size: clamp(1.55rem, 1.45vw, 1.9rem); line-height: 1.65; overflow-wrap: anywhere; }
        .information-arrow { width: 34px; height: 34px; border: 1px solid rgba(28,25,23,0.16); border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; color: var(--color-amber-600); font-family: var(--label-font-family); transition: transform 0.25s ease, border-color 0.25s ease, background 0.25s ease; }
        .information-arrow::before { content: "→"; line-height: 1; }
        .information-item:hover .information-arrow { transform: translateX(4px); border-color: var(--btnBgColor); background: rgba(245,158,11,0.08); }

        /* Quality セクション */
        .quality-section { padding: var(--section-space) var(--content-gutter); background: var(--bodyBgColor); }
        .quality-section .section_title::after { left: 0; transform: none; }
        .quality-grid { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(36px, 5vw, 72px); align-items: center; max-width: var(--container-width); margin: 0 auto; }
        .quality-image-wrapper { position: relative; }
        .quality-main-image { width: 100%; border-radius: var(--radius-lg); box-shadow: var(--shadow-lift); }
        .quality-badge { position: absolute; bottom: 22px; right: 22px; background: rgba(28,25,23,0.9); color: #fff; padding: 18px 22px; font-family: var(--label-font-family); font-size: 1.35rem; border-radius: var(--radius-md); backdrop-filter: blur(10px); }
        .feature-item { display: flex; gap: 20px; margin-bottom: 30px; }
        .feature-icon-box { background: var(--color-stone-100); padding: 15px; border-radius: 50%; height: fit-content; color: var(--btnBgColor); }
        .feature-content h3 { font-family: var(--label-font-family); font-size: 1.8rem; margin-bottom: 10px; }

        /* STYLING セクション */
        .styling-section { padding: var(--section-space) var(--content-gutter); background: var(--color-stone-900); color: #fff; position: relative; }
        .styling-content { display: grid; grid-template-columns: 0.9fr 1.1fr; gap: clamp(36px, 5vw, 72px); max-width: var(--container-width); margin: 0 auto; position: relative; z-index: 2; align-items: center; }
        .styling-text h2 { color: #fff; font-family: var(--heading-font-family); font-size: clamp(3rem, 4vw, 5.2rem); line-height: 1.28; margin-bottom: 24px; }
        .styling-description { color: var(--color-stone-300); max-width: 480px; }
        .styling-images { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(16px, 2vw, 28px); }
        .styling-img-card img { width: 100%; border-radius: var(--radius-md); box-shadow: 0 18px 48px rgba(0,0,0,0.24); }
        .styling-img-card.offset { margin-top: 44px; }
        .styling-img-card .caption { text-align: center; margin-top: 12px; font-family: var(--label-font-family); font-size: 1.2rem; font-weight: 700; letter-spacing: var(--label-letter-spacing); color: var(--color-stone-400); }

        /* Voice (レビュー) セクション */
        .voice-section { padding: var(--section-space) var(--content-gutter); background: var(--voiceSectionBgColor, #efebe4); }
        .voice-grid { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(24px, 3vw, 42px); max-width: 1120px; margin: 0 auto; }
        .voice-count-1 .voice-grid { grid-template-columns: minmax(0, 680px); justify-content: center; }
        .voice-count-1 .review-card:nth-child(n+2),
        .voice-count-2 .review-card:nth-child(n+3),
        .voice-count-3 .review-card:nth-child(n+4),
        .voice-count-4 .review-card:nth-child(n+5) { display: none; }
        .voice-grid.slick-initialized { display: block; position: relative; width: min(100%, 1120px); max-width: 1120px; padding: 0 58px; box-sizing: border-box; }
        .voice-grid.slick-initialized .slick-list { overflow: hidden; margin: 0; padding: 6px 0 18px; }
        .voice-grid.slick-initialized .slick-track { display: flex !important; align-items: stretch; }
        .voice-grid.slick-initialized .slick-slide { display: flex !important; height: auto; padding: 0; box-sizing: border-box; }
        .voice-grid.slick-initialized .slick-slide > div,
        .voice-grid.slick-initialized .voice-card-frame { display: flex !important; width: 100%; height: auto; box-sizing: border-box; }
        .voice-grid.slick-initialized .voice-card-frame { padding: 0 18px; }
        .voice-grid.slick-initialized .review-card { width: 100%; height: 100%; min-height: 230px; margin: 0; padding: clamp(24px, 2.4vw, 32px); box-sizing: border-box; }
        .voice-grid.slick-initialized .review-card::before { top: 24px; right: 28px; }
        .voice-grid.slick-initialized .star-rating { min-height: 24px; padding: 0 10px; font-size: 0.98rem; margin-bottom: 14px; }
        .voice-grid.slick-initialized .review-text { font-size: clamp(1.38rem, 1.2vw, 1.58rem); line-height: 1.76; }
        .voice-grid.slick-initialized .review-text::before { font-size: 4.1rem; line-height: 0.52; margin-bottom: 8px; }
        .voice-grid.slick-initialized .reviewer-name { padding-top: 16px; font-size: 1.08rem; }
        .voice-grid.slick-initialized .reviewer-name::before { top: calc(50% + 10px); }
        .voice-grid.slick-initialized .reviewer-name::after { top: 12px; }
        .voice-grid .slick-prev,
        .voice-grid .slick-next { position: absolute; top: 50%; width: 42px; height: 42px; border: 1px solid rgba(28,25,23,0.16); border-radius: 50%; background: #fffdf9; color: transparent; font-size: 0; cursor: pointer; z-index: 5; transform: translateY(-50%); box-shadow: 0 14px 34px rgba(28,25,23,0.08); transition: border-color 0.25s ease, transform 0.25s ease, opacity 0.25s ease; }
        .voice-grid .slick-prev { left: 0; }
        .voice-grid .slick-next { right: 0; }
        .voice-grid .slick-prev::before,
        .voice-grid .slick-next::before { content: ""; position: absolute; top: 50%; left: 50%; width: 10px; height: 10px; border-top: 2px solid var(--btnBgColor); border-left: 2px solid var(--btnBgColor); }
        .voice-grid .slick-prev::before { transform: translate(-35%, -50%) rotate(-45deg); }
        .voice-grid .slick-next::before { transform: translate(-65%, -50%) rotate(135deg); }
        .voice-grid .slick-prev:hover,
        .voice-grid .slick-next:hover { border-color: var(--btnBgColor); transform: translateY(-50%) scale(1.04); }
        .voice-grid .slick-disabled { opacity: 0.35; cursor: default; }
        .review-card { min-height: 220px; display: flex; flex-direction: column; background: var(--cardBgColor); color: var(--cardTextColor); padding: clamp(30px, 3vw, 42px); border: 1px solid var(--cardBorderColor); border-radius: 20px; box-shadow: 0 24px 60px rgba(28,25,23,0.08); position: relative; overflow: hidden; }
        .review-card::before { content: "VOICE"; position: absolute; top: 30px; right: 34px; color: var(--cardSubTextColor); font-family: var(--label-font-family); font-size: 1rem; font-weight: 800; letter-spacing: 0.28em; line-height: 1; opacity: 0.28; pointer-events: none; }
        .review-card::after { content: ""; position: absolute; top: 0; left: 0; width: 4px; height: 100%; background: linear-gradient(180deg, var(--btnBgColor), rgba(155,106,59,0.08)); pointer-events: none; }
        .star-rating { position: relative; z-index: 1; align-self: flex-start; display: inline-flex; align-items: center; min-height: 28px; padding: 0 12px; border: 1px solid var(--cardBorderColor); border-radius: 999px; background: var(--cardBgColor); color: var(--btnBgColor); font-family: var(--label-font-family); font-size: 1.05rem; font-weight: 800; letter-spacing: 0.18em; line-height: 1; margin-bottom: 22px; }
        .review-text { position: relative; z-index: 1; max-width: 90%; color: var(--cardHeadingColor); font-family: var(--heading-font-family); font-size: clamp(1.5rem, 1.34vw, 1.82rem); line-height: 1.95; letter-spacing: 0.02em; }
        .review-text::before { content: "“"; display: block; color: rgba(155,106,59,0.22); font-family: var(--heading-font-family); font-size: 5.2rem; line-height: 0.58; margin-bottom: 14px; }
        .reviewer-name { position: relative; z-index: 1; display: inline-flex; align-items: center; gap: 12px; align-self: flex-start; color: var(--cardSubTextColor); margin-top: auto; padding: 24px 14px 0 76px; font-family: var(--label-font-family); font-size: 1.16rem; font-weight: 800; letter-spacing: 0.1em; }
        .reviewer-name::before { content: ""; position: absolute; left: 0; top: calc(50% + 14px); width: 52px; height: 1px; background: currentColor; opacity: 0.42; }
        .reviewer-name::after { content: ""; position: absolute; left: 76px; right: 0; top: 18px; height: 1px; background: linear-gradient(90deg, var(--btnBgColor), transparent); opacity: 0.7; }

        /* メルマガApp */
        .mail-magazine-section { position: relative; overflow: hidden; padding: var(--section-space-compact) var(--content-gutter); background: var(--bodyBgColor); text-align: center; }
        .mail-magazine-section.has-background-image { min-height: clamp(360px, 36vw, 520px); display: flex; align-items: center; background-size: cover; background-position: center; color: #fff; }
        .mail-magazine-section.has-background-image::before { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(28,25,23,0.78) 0%, rgba(28,25,23,0.48) 48%, rgba(28,25,23,0.22) 100%); pointer-events: none; }
        .mail-magazine-inner { position: relative; z-index: 1; width: 100%; max-width: var(--container-width); margin: 0 auto; display: grid; grid-template-columns: minmax(0, 1fr) minmax(300px, 420px); align-items: center; gap: clamp(28px, 5vw, 72px); text-align: left; }
        .mail-magazine-section:not(.has-background-image) .mail-magazine-inner { max-width: 640px; display: block; text-align: center; }
        .mail-magazine-title { font-family: var(--heading-font-family); font-size: clamp(2.4rem, 2.6vw, 3.4rem); letter-spacing: 0.04em; margin-bottom: 14px; }
        .mail-magazine-section.has-background-image .mail-magazine-title { color: #fff; font-size: clamp(2.8rem, 4vw, 4.8rem); line-height: 1.18; }
        .mail-magazine-text { color: var(--color-stone-500); margin-bottom: 28px; line-height: 1.8; }
        .mail-magazine-section.has-background-image .mail-magazine-text { max-width: 520px; margin-bottom: 0; color: rgba(255,255,255,0.86); font-size: clamp(1.45rem, 1.4vw, 1.7rem); }
        .mail-magazine-form { display: flex; justify-content: center; width: 100%; min-width: 0; }
        .mail-magazine-section.has-background-image .mail-magazine-form { justify-content: flex-end; }
        .mail-magazine-form form { display: grid; grid-template-columns: minmax(0, 1fr) minmax(96px, 116px); align-items: stretch; justify-content: center; width: min(100%, 500px); max-width: 500px; }
        .mail-magazine-section.has-background-image .mail-magazine-form form { margin-left: auto; }
        .mail-magazine-form form > p,
        .mail-magazine-form form > div,
        .mail-magazine-form form > span { display: contents; }
        .mail-magazine-form input[type="email"],
        .mail-magazine-form input[type="text"] { min-width: 0; width: 100%; max-width: none; height: 54px; margin: 0; padding: 0 22px; border: 1px solid var(--color-stone-300); border-right: 0; border-radius: 999px 0 0 999px; background: #fff; color: var(--cardTextColor); font-family: var(--base-font-family); font-size: 1.45rem; line-height: 54px; box-sizing: border-box; appearance: none; }
        .mail-magazine-form button,
        .mail-magazine-form input[type="submit"] { display: inline-flex; align-items: center; justify-content: center; width: 100%; height: 54px; min-height: 0; margin: 0; padding: 0 18px; border: 1px solid var(--btnBgColor); border-radius: 0 999px 999px 0; background: var(--btnBgColor); color: #fff; cursor: pointer; font-family: var(--label-font-family); font-size: 1.25rem; font-weight: 700; line-height: 1; letter-spacing: 0.06em; white-space: nowrap; transition: opacity 0.3s ease, transform 0.25s ease; box-sizing: border-box; appearance: none; }
        .mail-magazine-form button:hover,
        .mail-magazine-form input[type="submit"]:hover { opacity: 0.75; }

        /* フッター */
        .site-footer { background: var(--color-stone-900); color: var(--color-stone-400); padding: 72px var(--content-gutter) 32px; }
        .footer-grid { display: grid; grid-template-columns: 2fr 1fr 1fr; gap: var(--grid-gap); max-width: var(--container-width); margin: 0 auto; }
        .footer-brand h2 { color: #fff; font-size: 2rem; margin-bottom: 20px; }
        .footer-column h3 { color: #fff; font-family: var(--label-font-family); font-size: 1.2rem; margin-bottom: 20px; text-transform: uppercase; letter-spacing: var(--label-letter-spacing); }
        .footer-links li { margin-bottom: 12px; }
        .footer-category-link { padding-left: 12px; }
        .footer-category-link a { color: var(--color-stone-500); font-size: 1.2rem; }
        .footer-category-link.is-medium { padding-left: 24px; }
        .footer-links a:hover { color: var(--color-amber-500); }
        .social-links { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 20px; }
        .social-links a { display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px; color: inherit; text-decoration: none; }
        .social-links a:hover { opacity: 0.82; }
        .social-links img,
        .social-links svg { width: 28px; height: 28px; transition: transform 0.25s ease; }
        .social-links a:hover svg { transform: translateY(-1px); }
        .footer-copyright { text-align: center; margin-top: 50px; border-top: 1px solid rgba(255,255,255,0.1); padding-top: 20px; font-size: 1.2rem; }

        /* 商品詳細ページ (Item) */
        .item { display: flex; align-items: flex-start; gap: clamp(34px, 4vw, 64px); max-width: min(1400px, calc(100vw - (var(--content-gutter) * 2))); margin: 0 auto; padding-top: var(--section-space-compact); }
        .item-image { position: relative; width: 64%; min-width: 0; }
        .item-image > .label_image,
        .item-image > img.label_image,
        .item-image-pin > .label_image,
        .item-image-pin > img.label_image,
        .item-image-slick > .label_image,
        .item-image-slick > img.label_image { position: absolute; top: -10px; left: -10px; width: 65px; z-index: 6; pointer-events: none; }
        .item-image-pin { position: relative; width: 100%; }
        .item-detail { position: relative; width: 36%; min-width: 0; align-self: flex-start; }
        .item-detail-pin { position: relative; width: 100%; }
        .item-image-slick { position: relative; overflow: hidden; border-radius: var(--radius-md); background: var(--color-stone-100); }
        .item-image-slick > div { display: none; }
        .item-image-slick > div:first-child,
        .item-image-slick > div.is-active { display: block; }
        .item-image-slick.is-ready > div:first-child { display: none; }
        .item-image-slick.is-ready > div.is-active { display: block; }
        .item-image-slick a { display: block; }
        .item-image-slick img { display: block; width: 100%; aspect-ratio: 4 / 5; object-fit: cover; }
        .item-image-slick-thumbnail { display: flex; gap: 10px; margin-top: 14px; overflow-x: auto; }
        .item-image-slick-thumbnail > div { flex: 0 0 88px; cursor: pointer; opacity: 0.42; transition: opacity 0.25s ease, transform 0.25s ease; }
        .item-image-slick-thumbnail > div.is-active,
        .item-image-slick-thumbnail > div:hover { opacity: 1; }
        .item-image-slick-thumbnail > div.is-active { transform: translateY(-2px); }
        .item-image-slick-thumbnail img { display: block; width: 100%; aspect-ratio: 1 / 1; object-fit: cover; border-radius: var(--radius-sm); border: 1px solid rgba(28,25,23,0.08); box-sizing: border-box; }
        .item-detail h1 { font-family: var(--heading-font-family); font-size: clamp(2.2rem, 2.45vw, 3.4rem); margin-bottom: 18px; }
        .item-detail .price .current { font-size: 2.55rem; font-weight: bold; color: var(--priceColor, var(--noticeColor)); }
        .item-detail .price .rate { min-height: 26px; padding: 0 9px; font-size: 1.15rem; }
        .item-detail .price .rate + .current,
        .item-detail .price .is-sale-price { color: var(--salepriceColor, var(--noticeColor)); }
        .item-bnpl-banner { margin-top: 10px; }
        .subscription-price { display: grid; gap: 10px; margin-bottom: 18px; }
        .subscription-price-row { display: flex; flex-wrap: wrap; align-items: baseline; gap: 8px; color: var(--color-stone-700); overflow-wrap: anywhere; }
        .subscription-price-label { font-family: var(--label-font-family); font-size: 1.15rem; font-weight: 700; letter-spacing: 0.06em; color: var(--color-stone-500); }
        .subscription-price-current { color: var(--priceColor, var(--noticeColor)); font-size: 1.9rem; font-weight: 700; }
        .subscription-price-current.is-sale-price { color: var(--salepriceColor, var(--noticeColor)); font-weight: 700; }
        .subscription-price-proper { color: var(--color-stone-500); font-size: 1.25rem; text-decoration: line-through; }
        .item-detail .item-status-tags { margin: 0 0 20px; }
        .purchaseButton button { width: 100%; min-height: 56px; padding: 0 22px; font-family: var(--label-font-family); font-size: 1.35rem; font-weight: 700; letter-spacing: 0.09em; color: #fff; background: var(--btnBgColor); border-radius: 999px; border: 1px solid var(--btnBgColor); margin-top: 20px; cursor: pointer; }
        .purchaseButton button::before { background: #fff; }
        .pickup-section .purchaseButton button,
        .concept-section .purchaseButton button { min-height: 50px; padding: 0 18px 0 24px; color: var(--textColorMain); background: transparent; border-color: rgba(28,25,23,0.28); box-shadow: none; }
        .pickup-section .purchaseButton button::before,
        .concept-section .purchaseButton button::before { background: var(--btnBgColor); }
        .pickup-section .purchaseButton button:hover,
        .concept-section .purchaseButton button:hover { border-color: var(--btnBgColor); color: var(--textColorMain); box-shadow: 0 14px 34px rgba(28,25,23,0.1); }
        .item-detail .purchaseButton button { min-height: 60px; box-shadow: 0 18px 46px rgba(28,25,23,0.12); }
        .item-detail .purchaseButton button:disabled,
        .item-detail .purchaseButton button[disabled] { cursor: not-allowed; opacity: 0.48; box-shadow: none; transform: none; }
        .item-detail .purchase-panel a.purchaseButton__btn--requestRestockMail,
        .item-detail .purchase-panel a.x_restockMailNotificationModalOpen,
        .item-detail .purchase-panel a[class*="restock"],
        .item-detail .purchase-panel button[class*="restock"],
        .item-detail .purchase-panel input[class*="restock"][type="button"],
        .item-detail .purchase-panel input[class*="restock"][type="submit"],
        .item-detail .purchase-panel a[class*="Restock"],
        .item-detail .purchase-panel button[class*="Restock"],
        .item-detail .purchase-panel input[class*="Restock"][type="button"],
        .item-detail .purchase-panel input[class*="Restock"][type="submit"],
        .item-detail .purchase-panel [class*="restock"] a,
        .item-detail .purchase-panel [class*="restock"] button,
        .item-detail .purchase-panel [class*="restock"] input[type="button"],
        .item-detail .purchase-panel [class*="restock"] input[type="submit"],
        .item-detail .purchase-panel [class*="Restock"] a,
        .item-detail .purchase-panel [class*="Restock"] button,
        .item-detail .purchase-panel [class*="Restock"] input[type="button"],
        .item-detail .purchase-panel [class*="Restock"] input[type="submit"] { display: grid; grid-auto-flow: column; align-items: center; justify-content: center; width: 100% !important; min-height: 60px; margin-top: 16px; margin-bottom: 18px; padding: 14px 22px; border: 1px solid var(--btnBgColor) !important; border-radius: 999px; background: var(--btnBgColor) !important; color: #fff !important; font-family: var(--label-font-family); font-size: 1.35rem; font-weight: 700; line-height: 1.35; letter-spacing: 0.09em; text-align: center; text-decoration: none !important; cursor: pointer; box-shadow: 0 18px 46px rgba(28,25,23,0.12); transition: border-color 0.25s ease, box-shadow 0.25s ease, color 0.25s ease, background 0.25s ease, opacity 0.25s ease, transform 0.25s ease; box-sizing: border-box; appearance: none; white-space: normal; }
        .item-detail .purchase-panel a.purchaseButton__btn--requestRestockMail::before,
        .item-detail .purchase-panel a.x_restockMailNotificationModalOpen::before,
        .item-detail .purchase-panel a[class*="restock"]::before,
        .item-detail .purchase-panel button[class*="restock"]::before,
        .item-detail .purchase-panel a[class*="Restock"]::before,
        .item-detail .purchase-panel button[class*="Restock"]::before { background: #fff; }
        .item-detail .purchase-panel a.purchaseButton__btn--requestRestockMail::after,
        .item-detail .purchase-panel a.x_restockMailNotificationModalOpen::after,
        .item-detail .purchase-panel a[class*="restock"]::after,
        .item-detail .purchase-panel button[class*="restock"]::after,
        .item-detail .purchase-panel a[class*="Restock"]::after,
        .item-detail .purchase-panel button[class*="Restock"]::after,
        .item-detail .purchase-panel [class*="restock"] a::after,
        .item-detail .purchase-panel [class*="restock"] button::after,
        .item-detail .purchase-panel [class*="Restock"] a::after,
        .item-detail .purchase-panel [class*="Restock"] button::after { content: "→"; display: inline-flex; align-items: center; justify-content: center; margin-left: 12px; font-size: 1.15em; line-height: 1; transition: transform 0.25s ease; }
        .item-detail .purchase-panel a.purchaseButton__btn--requestRestockMail:hover,
        .item-detail .purchase-panel a.x_restockMailNotificationModalOpen:hover,
        .item-detail .purchase-panel a[class*="restock"]:hover,
        .item-detail .purchase-panel button[class*="restock"]:hover,
        .item-detail .purchase-panel a[class*="Restock"]:hover,
        .item-detail .purchase-panel button[class*="Restock"]:hover,
        .item-detail .purchase-panel [class*="restock"] a:hover,
        .item-detail .purchase-panel [class*="restock"] button:hover,
        .item-detail .purchase-panel [class*="Restock"] a:hover,
        .item-detail .purchase-panel [class*="Restock"] button:hover { transform: translateY(-1px); opacity: 1; box-shadow: 0 16px 42px rgba(28,25,23,0.14); }
        .item-detail .purchase-panel a.purchaseButton__btn--requestRestockMail:hover::after,
        .item-detail .purchase-panel a.x_restockMailNotificationModalOpen:hover::after,
        .item-detail .purchase-panel a[class*="restock"]:hover::after,
        .item-detail .purchase-panel button[class*="restock"]:hover::after,
        .item-detail .purchase-panel a[class*="Restock"]:hover::after,
        .item-detail .purchase-panel button[class*="Restock"]:hover::after,
        .item-detail .purchase-panel [class*="restock"] a:hover::after,
        .item-detail .purchase-panel [class*="restock"] button:hover::after,
        .item-detail .purchase-panel [class*="Restock"] a:hover::after,
        .item-detail .purchase-panel [class*="Restock"] button:hover::after { transform: translateX(4px); }
        .item-detail .purchase-panel a.purchaseButton__btn--requestRestockMail:focus-visible,
        .item-detail .purchase-panel a.x_restockMailNotificationModalOpen:focus-visible,
        .item-detail .purchase-panel a[class*="restock"]:focus-visible,
        .item-detail .purchase-panel button[class*="restock"]:focus-visible,
        .item-detail .purchase-panel a[class*="Restock"]:focus-visible,
        .item-detail .purchase-panel button[class*="Restock"]:focus-visible { outline: 2px solid rgba(220,181,59,0.45); outline-offset: 3px; }
        .item-description { margin-top: 34px; padding-top: 30px; border-top: 1px solid rgba(28,25,23,0.12); color: var(--textColorMain); font-size: 1.5rem; line-height: 2.05; }
        .item-description > *:first-child { margin-top: 0; }
        .item-description > *:last-child { margin-bottom: 0; }
        .item-description p { margin: 0 0 1.35em; color: var(--textColorMain); font-size: 1.5rem; line-height: 2.05; }
        .item-description h2,
        .item-description h3,
        .item-description h4 { margin: 2em 0 0.8em; color: var(--textColorHead); font-family: var(--heading-font-family); line-height: 1.45; letter-spacing: 0.02em; }
        .item-description h2 { font-size: clamp(2rem, 2vw, 2.8rem); }
        .item-description h3 { font-size: clamp(1.8rem, 1.7vw, 2.3rem); }
        .item-description h4 { font-size: 1.6rem; }
        .item-description ul,
        .item-description ol { margin: 0 0 1.5em; padding-left: 1.4em; color: var(--textColorMain); }
        .item-description ul { list-style: disc; }
        .item-description ol { list-style: decimal; }
        .item-description li { margin-bottom: 0.55em; line-height: 1.9; }
        .item-description img { display: block; width: auto; max-width: 100%; height: auto; margin: 2em auto; border-radius: var(--radius-md); }
        .item-description table { width: 100%; margin: 2em 0; border-collapse: collapse; font-size: 1.35rem; line-height: 1.75; }
        .item-description th,
        .item-description td { padding: 12px 0; border-bottom: 1px solid rgba(28,25,23,0.12); text-align: left; vertical-align: top; }
        .item-description th { width: 32%; color: var(--textColorHead); font-family: var(--label-font-family); font-weight: 700; }
        .blog-page-body { max-width: 880px; margin: 0 auto; }
        .blog-page-body .blogDetail,
        .blog-page-body .blog_inner,
        .blog-page-body .blog_contents { width: 100% !important; max-width: none !important; margin: 0 !important; padding: 0 !important; }
        .blog-page-body .main { width: 100% !important; margin: 0 !important; padding: 0 !important; }
        .blog-page-body .blog_title { margin: 0 0 18px !important; padding: 0 !important; text-align: left; }
        .blog-page-body .blog_title h2 { font-size: clamp(2.8rem, 4vw, 4.6rem) !important; line-height: 1.45 !important; letter-spacing: 0.02em !important; }
        .blog-page-body .blog_title h2 a { color: var(--textColorHead) !important; }
        .blog-page-body .blog_publish { margin: 0 0 36px !important; color: var(--color-stone-500) !important; font-family: var(--label-font-family); font-size: 1.15rem !important; letter-spacing: 0.08em; }
        .blog-page-body .blog_body { color: var(--textColorMain); font-size: 1.56rem; line-height: 2.1; }
        .blog-page-body .blog_body > div,
        .blog-page-body .blog_body p { margin: 0 0 1.45em; color: var(--textColorMain); font-size: 1.56rem; line-height: 2.1; }
        .blog-page-body .blog_body b,
        .blog-page-body .blog_body strong { color: var(--textColorHead); font-weight: 700; background: linear-gradient(transparent 62%, rgba(220,181,59,0.24) 0); }
        .blog-page-body .blog_body a { color: var(--textColorHead); border-bottom: 1px solid rgba(220,181,59,0.55); font-weight: 700; }
        .blog-page-body .blog_body img { display: block; width: 100% !important; height: auto !important; margin: 30px auto 36px !important; border-radius: var(--radius-md); box-shadow: 0 18px 48px rgba(28,25,23,0.08); }
        .blog-page-body .blog_body h2,
        .blog-page-body .blog_body h3,
        .blog-page-body .blog_body h4 { color: var(--textColorHead); font-family: var(--heading-font-family); letter-spacing: 0.02em; }
        .blog-page-body .blog_body h3 { position: relative; margin: 58px 0 24px; padding: 18px 22px 18px 26px; border-left: 4px solid var(--btnBgColor); border-radius: 0 var(--radius-md) var(--radius-md) 0; background: linear-gradient(90deg, rgba(220,181,59,0.16), rgba(250,250,249,0.82)); font-size: clamp(2.1rem, 2.4vw, 2.9rem); line-height: 1.45; box-shadow: 0 14px 36px rgba(28,25,23,0.06); }
        .blog-page-body .blog_body h3 span { color: inherit !important; font-family: inherit !important; font-size: inherit !important; line-height: inherit !important; letter-spacing: inherit !important; }
        .blog-page-body .blog_body iframe { max-width: 100%; margin: 18px 10px 0 0; border: 1px solid rgba(28,25,23,0.1); border-radius: var(--radius-md); background: #fff; box-shadow: 0 14px 36px rgba(28,25,23,0.06); }
        .blog-page-body .social { margin-top: 42px !important; padding-top: 24px; border-top: 1px solid rgba(28,25,23,0.12); }
        .item-info-tabs { margin-top: 30px; border: 1px solid var(--cardBorderColor); border-radius: var(--radius-md); background: var(--cardBgColor); color: var(--cardTextColor); box-shadow: 0 18px 48px rgba(28,25,23,0.05); overflow: hidden; }
        .item-info-tab-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-bottom: 1px solid var(--cardBorderColor); background: var(--cardBgColor); }
        .item-info-tab { display: inline-flex; align-items: center; justify-content: center; min-width: 0; min-height: 52px; padding: 0 14px; border: 0; border-right: 1px solid var(--cardBorderColor); background: transparent; color: var(--cardSubTextColor); cursor: pointer; font-family: var(--label-font-family); font-size: 1.15rem; font-weight: 700; letter-spacing: 0.08em; line-height: 1.35; text-align: center; transition: color 0.25s ease, background 0.25s ease; appearance: none; }
        .item-info-tab:last-child { border-right: 0; }
        .item-info-tab.is-active { background: var(--cardBgColor); color: var(--cardHeadingColor); }
        .item-info-tab:hover { color: var(--btnBgColor); }
        .item-info-panel { padding: 26px 24px 30px; color: var(--cardTextColor); font-size: 1.45rem; line-height: 2; overflow-wrap: anywhere; }
        .item-info-panel[hidden] { display: none; }
        .item-info-tabs .item-description { margin-top: 0; padding-top: 26px; border-top: 0; }
        .item-guide { white-space: pre-line; }
        .item-sticky-purchase { position: fixed; left: 50%; bottom: max(14px, env(safe-area-inset-bottom)); z-index: 90; width: min(420px, calc(100% - 28px)); opacity: 0; visibility: hidden; pointer-events: none; transform: translate(-50%, 14px); transition: opacity 0.32s ease, visibility 0.32s ease, transform 0.32s ease; }
        .item-sticky-purchase.is-visible { opacity: 1; visibility: visible; pointer-events: auto; transform: translate(-50%, 0); }
        .item-sticky-purchase-button { display: inline-flex; align-items: center; justify-content: center; width: 100%; min-height: 54px; padding: 0 22px; border: 1px solid var(--btnBgColor); border-radius: 999px; background: var(--btnBgColor); color: #fff; cursor: pointer; font-family: var(--label-font-family); font-size: 1.22rem; font-weight: 700; letter-spacing: 0.08em; box-shadow: 0 18px 46px rgba(28,25,23,0.2); transition: box-shadow 0.25s ease, transform 0.25s ease; appearance: none; }
        .item-sticky-purchase-button:hover { transform: translateY(-2px); box-shadow: 0 22px 54px rgba(28,25,23,0.24); }
        .item-social-share { display: flex; flex-wrap: wrap; justify-content: flex-end; align-items: center; gap: 8px; margin-top: 18px; }
        .item-social-share .item-share-button { display: inline-flex; align-items: center; justify-content: center; min-height: 30px; padding: 0 11px; border: 1px solid rgba(28,25,23,0.14); border-radius: 999px; background: #fff; color: var(--cardHeadingColor); font-family: var(--label-font-family); font-size: 1rem; font-weight: 700; line-height: 1; letter-spacing: 0.06em; text-decoration: none; transition: border-color 0.25s ease, color 0.25s ease, transform 0.25s ease; }
        .item-social-share .item-share-button:hover { border-color: var(--btnBgColor); color: var(--btnBgColor); transform: translateY(-1px); }
        .purchase-panel { background: var(--cardBgColor); color: var(--cardTextColor); padding:24px; margin:30px 0; border: 1px solid var(--cardBorderColor); border-radius: var(--radius-md); box-shadow: 0 18px 48px rgba(28,25,23,0.06); }
        .ageVerificationWarning,
        [class*="ageVerification"] [class*="Warning"],
        [class*="AgeVerification"] [class*="Warning"],
        .purchase-panel [class*="age"] { margin: 18px 0; color: var(--noticeColor); font-size: 3.2rem; font-weight: 800; line-height: 1.45; overflow-wrap: anywhere; }
        .purchase-panel a[class*="postage"],
        .purchase-panel a[class*="Postage"],
        .purchase-panel a[class*="shipping"],
        .purchase-panel a[class*="Shipping"],
        .purchase-panel [class*="postage"] a,
        .purchase-panel [class*="Postage"] a,
        .purchase-panel [class*="shipping"] a,
        .purchase-panel [class*="Shipping"] a { font-size: 1.45rem; }
        .itemOptionElement { margin: 0 0 18px; }
        .itemOption__name { display: block; margin-bottom: 8px; color: var(--cardHeadingColor); font-weight: 700; overflow-wrap: anywhere; }
        .itemOption__select,
        .itemOption__input { width: 100%; min-height: 48px; padding: 0 14px; border: 1px solid var(--color-stone-300); border-radius: 4px; background: #fff; color: var(--cardTextColor); font-family: var(--base-font-family); }
        .itemOption__caption { margin: 8px 0; color: var(--cardSubTextColor); font-size: 1.2rem; overflow-wrap: anywhere; }
        .itemOption__bottomCaptionBlock { display: flex; justify-content: space-between; gap: 12px; margin-top: 6px; font-size: 1.15rem; }
        .itemOption__caption--error,
        .itemOption__count--error { color: var(--noticeColor); }
        .preOrder,
        .lottery,
        .takeout,
        .communityLabel,
        .membershipPoint { margin: 18px 0; padding: 16px; border: 1px solid var(--cardBorderColor); border-radius: 8px; background: var(--cardBgColor); color: var(--cardTextColor); overflow-wrap: anywhere; }
        .preOrder__label,
        .lottery__label,
        .takeout__label,
        .communityLabel__title { font-family: var(--label-font-family); font-weight: 700; color: var(--noticeColor); letter-spacing: 0.06em; }
        .takeout__data,
        .preOrder__data,
        .lottery__data,
        .communityLabel__note,
        .membershipPoint__amountWrapper,
        .membershipPoint__attention { color: var(--cardSubTextColor); line-height: 1.75; }
        .item-custom-detail { margin-top: 56px; }
        .item-image #appsItemDetailCustom { max-width: none; margin: 0; padding: 0; }
        #appsItemDetailCustom { max-width: var(--container-width); margin: 50px auto 0; padding: 0 var(--content-gutter); }
        #appsItemDetailCustomTag { display: grid; gap: 22px; overflow-wrap: anywhere; }
        #appsItemDetailCustomTag img,
        #appsItemDetailCustomTag iframe { max-width: 100%; }
        .salesPeriodModal__container,
        .restockMailNotificationModal__container,
        .ageVerificationModal__container { max-width: min(92vw, 520px); color: var(--cardTextColor); overflow-wrap: anywhere; }
        .apps-information-banner { position: relative; z-index: calc(var(--z-header) + 2); }
        body.has-information-banner { --information-banner-height: 0px; --information-banner-offset: 0px; }
        body.has-information-banner .header { top: var(--information-banner-offset); }
        body.has-information-banner .drawer,
        body.has-information-banner .drawer-bg { top: var(--information-banner-offset); height: calc(100vh - var(--information-banner-offset)); }
        .fancybox-container { z-index: 100000 !important; }
        .fancybox-slide { padding: 24px !important; }
        .fancybox-content,
        .fancybox-image { max-width: calc(100vw - 48px) !important; max-height: calc(100svh - 48px) !important; }
        .salesPeriodModal__container,
        .restockMailNotificationModal__container,
        .ageVerificationModal__container,
        [class*="report"][class*="Modal"],
        [class*="Report"][class*="Modal"],
        [id*="report"][id*="Modal"] {
            max-width: min(92vw, 560px) !important;
            max-height: calc(100svh - 32px) !important;
            overflow-y: auto !important;
            overscroll-behavior: contain;
            color: var(--cardTextColor);
            -webkit-overflow-scrolling: touch;
        }
        .shippingModal,
        .salesPeriodModal__container,
        .restockMailNotificationModal__container,
        .ageVerificationModal__container { color: var(--cardTextColor) !important; }
        .shippingModal .shippingInfo__title,
        .shippingModal h1,
        .shippingModal h2,
        .shippingModal h3,
        .salesPeriodModal__container h1,
        .salesPeriodModal__container h2,
        .salesPeriodModal__container h3,
        .restockMailNotificationModal__container h1,
        .restockMailNotificationModal__container h2,
        .restockMailNotificationModal__container h3,
        .ageVerificationModal__container h1,
        .ageVerificationModal__container h2,
        .ageVerificationModal__container h3 { color: var(--cardHeadingColor) !important; }
        .ageVerificationModal__container label,
        .ageVerificationModal__container span,
        .ageVerificationModal__container p,
        .restockMailNotificationModal__container label,
        .restockMailNotificationModal__container span,
        .restockMailNotificationModal__container p { color: inherit; }
        .ageVerificationModal__container [class*="warning" i],
        .ageVerificationModal__container [class*="attention" i],
        .restockMailNotificationModal__container [class*="ageVerification"],
        .restockMailNotificationModal__container [class*="AgeVerification"] { color: var(--noticeColor) !important; }
        .salesPeriodModal__container input,
        .salesPeriodModal__container select,
        .restockMailNotificationModal__container input,
        .restockMailNotificationModal__container select,
        .ageVerificationModal__container input,
        .ageVerificationModal__container select { background: #fff; color: var(--cardTextColor) !important; }
        .law-page-body .telnumValid,
        .law-page-body .telnumValid__txt { color: var(--cardTextColor) !important; }
        .community-page-body .communityMain { width: 100% !important; max-width: 100%; padding-left: 0 !important; padding-right: 0 !important; box-sizing: border-box; }
        .community-page-body .communityMain #limitedItem,
        .community-page-body .communityMain #limitedUrl { width: 100% !important; max-width: 100%; }
        .community-page-body .communityMain #productsLimitedUrl { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
        .community-page-body .communityMain #productsLimitedUrl .urlBox { width: auto !important; min-width: 0; margin: 0 !important; padding: 24px 20px; border-color: var(--cardBorderColor); background: var(--cardBgColor); color: var(--cardTextColor); box-sizing: border-box; }
        .community-page-body .communityMain #productsLimitedUrl .urlBox .title { color: var(--cardHeadingColor); overflow-wrap: anywhere; }
        .community-page-body .communityMain #productsLimitedUrl .urlBox .url { color: var(--cardTextColor); }
        .community-page-body .communityMain #productsLimitedUrl .urlBox .url a { color: var(--theme-link-color) !important; }
        .membership-page-body #membership { width: 100%; max-width: 100%; box-sizing: border-box; }
        .membership-page-body .membership .guide .register { background: var(--cardBgColor); color: var(--cardTextColor) !important; }
        .membership-page-body .membership .guide .register .heading { color: var(--cardHeadingColor) !important; }
        .membership-page-body .membership .guide .register .description,
        .membership-page-body .membership .guide .register .login { color: var(--cardTextColor) !important; }
        #irContainer.irContainer {
            position: fixed !important;
            top: 50% !important;
            right: auto !important;
            bottom: auto !important;
            left: 50% !important;
            width: min(92vw, 360px) !important;
            max-height: calc(100svh - 32px) !important;
            overflow-y: auto !important;
            z-index: 20000 !important;
            transform: translate(-50%, -50%) !important;
            color: var(--cardTextColor);
            box-sizing: border-box;
            -webkit-overflow-scrolling: touch;
        }
        #irContainer #inline_content,
        #irContainer #x_illegalReportForm,
        #irContainer #x_illegalReportMessage {
            max-width: 100%;
            box-sizing: border-box;
        }
        .apps-review-block,
        .apps-review-block * { max-width: 100%; box-sizing: border-box; overflow-wrap: anywhere; }
        .apps-review-block iframe { width: 100% !important; max-width: 100% !important; }
        .apps-review-block .review01__tab--all { width: 100% !important; table-layout: fixed; }
        .apps-review-block .review01__tabChild { min-width: 0 !important; padding-left: 4px !important; padding-right: 4px !important; white-space: normal !important; overflow-wrap: anywhere !important; word-break: break-word; }
        .apps-review-block .review01__tabChild label { display: inline-block; max-width: 100%; white-space: normal !important; overflow-wrap: anywhere !important; }
        /* 商品説明は白いカード内にあるため、ショップ全体の配色から独立して可読性を保つ。 */
        .item-info-tabs .item-description,
        .item-info-tabs .item-description p,
        .item-info-tabs .item-description ul,
        .item-info-tabs .item-description ol,
        .item-info-tabs .item-description li,
        .item-info-tabs .item-description td { color: var(--cardTextColor); }
        .item-info-tabs .item-description h2,
        .item-info-tabs .item-description h3,
        .item-info-tabs .item-description h4,
        .item-info-tabs .item-description th { color: var(--cardHeadingColor); }
        @media (max-width: 768px) {
            .fancybox-slide { padding: 14px !important; }
            .fancybox-content,
            .fancybox-image { max-width: calc(100vw - 28px) !important; max-height: calc(100svh - 28px) !important; }
            .apps-review-block { overflow-x: hidden; }
            .apps-review-block .review01__tabChild { font-size: 12px !important; line-height: 1.25; }
            .community-page-body .communityMain { padding-top: 24px !important; padding-bottom: 24px !important; }
            .community-page-body .communityMain .communityContent { flex-direction: column; padding: 18px 16px; }
            .community-page-body .communityMain .communityOverview,
            .community-page-body .communityMain .communityNav { width: 100% !important; margin-left: 0 !important; }
            .community-page-body .communityMain #productsLimitedUrl { grid-template-columns: 1fr; gap: 16px; }
        }

        @media (max-width: 1180px) {
            .header-nav, .header-search, .header-i18n { display: none !important; }
            .drawer-open { display: block; color: #666; }
            .header.header-transparent .drawer-open { color: #666; }
        }

        /* レスポンシブ (モバイル) */
        @media (max-width: 768px) {
            body { font-size: 1.4rem; letter-spacing: var(--body-letter-spacing); }
            p { font-size: 1.4rem; line-height: 1.9; }
            .header { padding: 12px 20px; }
            .header.header-transparent { padding: 18px 20px; }
            .header-nav, .header-search, .header-i18n { display: none !important; }
            .header.header-transparent .drawer-open { color: #666; }
            .drawer { width: 100%; padding: 78px 24px 42px; }
            .drawer-layout { grid-template-columns: 1fr; gap: 0; }
            .drawer-category-list a,
            .drawer-link-list a,
            .drawer-nav a { font-size: 1.8rem; }
            .drawer-category-list ul ul a,
            .drawer-link-list.is-sub a { font-size: 1.2rem; }
            .side-promo-banner { display: none; }
            .mainvisual { min-height: 560px; }
            .mainvisual-content { padding: 0 20px 56px; }
            .hero-cta { display: grid; grid-template-columns: 1fr; justify-items: center; width: 100%; max-width: 420px; margin-left: auto; margin-right: auto; }
            .hero-cta a { width: 100%; min-height: 50px; }
            .template-feature-strip { padding: 18px 20px; }
            .template-feature-list { justify-content: center; gap: 8px; text-align: center; }
            .template-feature-list span { justify-content: center; font-size: 0.95rem; text-align: center; }
            .section_title { margin-bottom: 32px; }
            .section_title.section_title_with_lead { margin-bottom: 16px; }
            .section-lead { margin-bottom: 32px; font-size: 1.35rem; text-align: left; }
            .contact-page-body { padding: 24px 18px 28px; border-radius: 10px; }
            .contact-page-body form { gap: 18px; }
            .contact-page-body tr { grid-template-columns: 1fr; gap: 9px; padding-bottom: 18px; }
            .contact-page-body th { padding-top: 0; }
            .contact-page-body th,
            .contact-page-body label { font-size: 1.12rem; }
            .contact-page-body input:not([type]),
            .contact-page-body input[type="text"],
            .contact-page-body input[type="email"],
            .contact-page-body input[type="tel"],
            .contact-page-body select,
            .contact-page-body textarea { min-height: 52px; padding-left: 16px; padding-right: 16px; font-size: 16px; line-height: 52px; }
            .contact-page-body textarea { min-height: 138px; line-height: 1.75; }
            .contact-page-body button,
            .contact-page-body input[type="submit"],
            .contact-page-body input[type="button"] { width: 100%; min-width: 0; min-height: 52px; margin-top: 4px; }
            .item-list-wrap, .pickup-section, .concept-section, .feature-section, .information-section, .quality-section, .styling-section, .voice-section { padding-left: 20px; padding-right: 20px; }
            .item-list-item .image,
            .category-item-list .item-list-item,
            .category-item-list .item-list-item .image,
            .item-image-slick,
            .item-description img { border-radius: 10px; }
            .pickup-image img,
            .concept-image img,
            .feature-row-img img,
            .quality-main-image,
            .styling-img-card img { border-radius: 12px; }
            .item-image-slick-thumbnail img { border-radius: 6px; }
            .item-list { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 26px 16px; }
            .item-list-item .text { margin-top: 12px; }
            .item-list-item .name { font-size: 1.25rem; line-height: 1.5; }
            .item-list-item .price { font-size: 1.2rem; }
            .category-breadcrumb { margin-top: -8px; text-align: left; }
            .category-breadcrumb ul,
            .category-child-list { justify-content: flex-start; }
            .blog-pinned-inner { align-items: flex-start; flex-direction: column; text-align: left; }
            .information-inner { grid-template-columns: 1fr; gap: 26px; }
            .information-heading { position: static; }
            .information-item { grid-template-columns: 1fr 30px; gap: 10px 14px; padding: 20px 0; }
            .information-date { grid-column: 1 / -1; }
            .information-arrow { width: 30px; height: 30px; }
            .concept-inner,
            .feature-row,
            .feature-row:nth-child(even) { flex-direction: column; gap: 30px; }
            .concept-image,
            .concept-text-area,
            .feature-row-img,
            .feature-row-text { width: 100%; }
            .feature-list-wrap { overflow: hidden; }
            .feature-row { align-items: flex-start; gap: 18px; margin-bottom: 58px; }
            .feature-row:nth-child(even) { align-items: flex-end; }
            .feature-row-img,
            .feature-row-text { width: min(88%, 360px); }
            .feature-row-text { padding-right: 8px; }
            .feature-row:nth-child(even) .feature-row-text { padding-right: 0; padding-left: 8px; }
            .feature-row-text h3 { font-size: 2rem; line-height: 1.55; }
            .feature-row-text p { font-size: 1.35rem; line-height: 1.9; }
            .quality-grid, .styling-content, .voice-grid, .footer-grid, .item { grid-template-columns: 1fr; gap: 40px; }
            .item { flex-direction: column; }
            .item-image { position: relative; width: 100%; }
            .item-image-slick { position: relative; top: auto; }
            .item-image-pin { position: relative !important; left: auto !important; top: auto !important; width: 100% !important; }
            .item-detail { position: static; width: 100%; }
            .item-detail-pin { position: relative !important; left: auto !important; top: auto !important; width: 100% !important; }
            .item-custom-detail { margin-top: 36px; }
            .item-image #appsItemDetailCustom { max-width: none; margin: 0; padding: 0; }
            .item-image > .label_image,
            .item-image > img.label_image,
            .item-image-pin > .label_image,
            .item-image-pin > img.label_image,
            .item-image-slick > .label_image,
            .item-image-slick > img.label_image { width: 50px; top: -5px; left: -5px; }
            .item-image-slick img { aspect-ratio: 1 / 1.15; }
            .item-image-slick-thumbnail { margin-top: 10px; }
            .item-image-slick-thumbnail .slick-slide { padding-right: 8px; }
            .item-description { margin-top: 28px; padding-top: 26px; font-size: 1.4rem; line-height: 1.95; }
            .item-description p { font-size: 1.4rem; line-height: 1.95; }
            .item-description img { margin: 1.6em auto; }
            .item-description table { display: block; overflow-x: auto; white-space: nowrap; }
            .item-info-tabs { margin-top: 26px; border-radius: 10px; }
            .item-info-tab { min-height: 50px; padding: 0 10px; font-size: 1.08rem; letter-spacing: 0.04em; }
            .item-info-panel { padding: 22px 18px 26px; font-size: 1.36rem; line-height: 1.95; }
            .item-info-tabs .item-description { margin-top: 0; padding-top: 22px; }
            .purchase-panel { padding: 22px 18px; border-radius: 12px; }
            .purchase-panel table,
            .purchase-panel tbody,
            .purchase-panel tr,
            .purchase-panel th,
            .purchase-panel td { display: block; width: 100% !important; }
            .purchase-panel tr,
            .purchase-panel .itemOptionElement { margin: 0 0 18px; }
            .purchase-panel th,
            .purchase-panel td { padding: 0 !important; border: 0 !important; text-align: left; }
            .purchase-panel label,
            .purchase-panel th,
            .purchase-panel .itemOption__name { display: block; margin: 0 0 10px; color: var(--cardHeadingColor); font-size: 1.45rem; font-weight: 700; line-height: 1.45; }
            .purchase-panel select,
            .purchase-panel input[type="text"],
            .purchase-panel input[type="number"],
            .purchase-panel input[type="tel"] { display: block; width: 100% !important; min-width: 0 !important; max-width: none !important; height: 52px !important; min-height: 52px !important; padding: 0 16px !important; border: 1px solid rgba(28,25,23,0.18) !important; border-radius: 8px !important; background-color: #fff !important; color: var(--cardTextColor) !important; font-family: var(--base-font-family) !important; font-size: 16px !important; line-height: 52px !important; box-shadow: none !important; box-sizing: border-box !important; }
            .purchase-panel [hidden],
            .purchase-panel [style*="display: none"],
            .purchase-panel [style*="display:none"] { display: none !important; }
            .purchase-panel select { padding-right: 42px !important; }
            .purchase-panel .purchaseButton { margin-top: 20px; }
            .ageVerificationWarning { font-size: 3.1rem; }
            .quality-badge { display: none; }
            .review-card { min-height: auto; padding: 30px 24px 34px; }
            .review-card::before { top: 24px; right: 24px; }
            .star-rating { min-height: 26px; padding: 0 10px; font-size: 1rem; margin-bottom: 18px; }
            .review-text { max-width: 100%; font-size: 1.5rem; line-height: 1.9; }
            .review-text::before { font-size: 4rem; margin-bottom: 10px; }
            .reviewer-name { padding: 22px 10px 0 62px; font-size: 1.08rem; }
            .reviewer-name::before { width: 38px; }
            .reviewer-name::after { left: 62px; top: 16px; }
            .voice-grid.slick-initialized { width: 100%; max-width: 520px; padding: 0 36px; }
            .voice-grid.slick-initialized .slick-list { margin: 0; padding: 4px 0 12px; }
            .voice-grid.slick-initialized .slick-slide { padding: 0; }
            .voice-grid.slick-initialized .voice-card-frame { padding: 0 8px; }
            .voice-grid.slick-initialized .review-card { min-height: 230px; padding: 24px 20px 26px; }
            .voice-grid.slick-initialized .star-rating { margin-bottom: 12px; }
            .voice-grid.slick-initialized .review-text { font-size: 1.36rem; line-height: 1.74; }
            .voice-grid.slick-initialized .review-text::before { font-size: 3.5rem; margin-bottom: 7px; }
            .voice-grid.slick-initialized .reviewer-name { padding-top: 14px; }
            .voice-grid .slick-prev,
            .voice-grid .slick-next { width: 34px; height: 34px; }
            .voice-grid .slick-prev { left: 0; }
            .voice-grid .slick-next { right: 0; }
            .styling-img-card.offset { margin-top: 0; }
            .item-list-item .label_image.list { width: 50px; top: -5px; left: -5px; }
            .badge { top: 10px; left: 10px; min-width: 48px; height: 26px; padding: 0 10px; font-size: 1rem; }
            .mail-magazine-section.has-background-image { min-height: auto; padding-top: 72px; padding-bottom: 72px; }
            .mail-magazine-section.has-background-image::before { background: linear-gradient(180deg, rgba(28,25,23,0.78) 0%, rgba(28,25,23,0.58) 100%); }
            .mail-magazine-inner { grid-template-columns: 1fr; text-align: left; }
            .mail-magazine-section.has-background-image .mail-magazine-form { justify-content: center; }
            .mail-magazine-section.has-background-image .mail-magazine-text { margin-bottom: 0; }
            .mail-magazine-form form { display: grid; grid-template-columns: 1fr; gap: 12px; justify-items: center; width: 100%; max-width: 420px; }
            .mail-magazine-section.has-background-image .mail-magazine-form form { margin-left: auto; margin-right: auto; }
            .mail-magazine-form input[type="email"],
            .mail-magazine-form input[type="text"],
            .mail-magazine-form button,
            .mail-magazine-form input[type="submit"] { width: 100%; max-width: 420px; border-radius: 999px; border-right: 1px solid var(--color-stone-300); }
            .mail-magazine-form button,
            .mail-magazine-form input[type="submit"] { border-color: var(--btnBgColor); }
        }

        /* 「もっと見る」ボタン */
        .load-more-wrap { display: none; text-align: center; padding: 40px 0 60px; }
        .load-more-btn { min-height: 52px; padding: 0 22px 0 34px; border: 1px solid rgba(28,25,23,0.32); background: transparent; color: var(--textColorMain); font-family: var(--label-font-family); font-size: 1.2rem; font-weight: 700; letter-spacing: var(--label-letter-spacing); cursor: pointer; border-radius: 999px; }
        .load-more-btn::before { background: var(--textColorMain); }
        .load-more-btn:hover { border-color: var(--textColorMain); color: var(--textColorMain); }
        .load-more-btn:disabled { opacity: 0.4; cursor: wait; }
        .load-more-btn.loading::after { content: " ..."; transform: none; }
