        /* ==========================================================================
           Base / Reset
        ========================================================================== */
        *, ::before, ::after { box-sizing: border-box; border-width: 0; }
        html { font-size: 62.5%; background: var(--bodyBgColor); line-height: 1.15; overflow-x: hidden; -webkit-text-size-adjust: 100%; -webkit-tap-highlight-color: transparent; }
        {block:if-smoothScrollView}
        html { scroll-behavior: smooth; }
        {/block:if-smoothScrollView}
        body { margin: 0; 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; 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; }
        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; }

        /* 初期表示に不要な下層セクションは、近づくまで描画コストを払わない */
        .pickup-section,
        .first-guide-section,
        .concept-section,
        .feature-section,
        .quality-section,
        .styling-section,
        .voice-section,
        .journal-section,
        .mailmagazine-wrap,
        .site-footer,
        .related-items,
        .item-custom-detail {
            content-visibility: auto;
            contain-intrinsic-size: 1px 720px;
        }

        /* 共通アニメーション */
        .js-fadein { opacity: 0; transform: translateY(30px); transition: opacity 0.8s ease-out, transform 0.8s ease-out; }
        .js-fadein.visible { opacity: 1; transform: translateY(0); }
        .item.js-fadein,
        .item.js-fadein.visible { transform: none; }
        @media (min-width: 769px) {
            .item { gap: clamp(34px, 4vw, 64px); max-width: min(1600px, calc(100vw - (var(--content-gutter) * 2))); }
            .item .item-image { position: relative !important; align-self: flex-start; }
            .item .item-image { width: 64%; }
            .item .item-image-slick { position: relative !important; top: auto !important; }
            .item-image-pin { position: relative; width: 100%; }
            .item .item-detail { align-self: flex-start; }
            .item .item-detail { width: 36%; }
            .item-detail-pin { position: relative; width: 100%; }
            .item-custom-detail { margin-top: 56px; }
            .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 { position: absolute; top: -10px; left: -10px; width: 65px; z-index: 6; pointer-events: none; }
        }
        @media (max-width: 768px) {
            .item .item-image { position: relative !important; width: 100%; }
            .item .item-image-slick { position: relative !important; top: auto !important; }
            .item-image-pin { position: relative !important; left: auto !important; top: auto !important; width: 100% !important; }
            .item .item-detail { position: static !important; 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-social-share,
            .item-share-actions { justify-content: flex-start; }
            .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; }
            .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(--textColorHead); 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"] { 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(--textColorMain) !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 input[type="text"],
            .purchase-panel input[type="number"],
            .purchase-panel input[type="tel"] { display: block !important; }
            .purchase-panel select { padding-right: 42px !important; }
            .purchase-panel .purchaseButton { margin-top: 20px; }
        }
        .clearfix:after { content: ""; display: table; clear: both; }
        .content:has(.item) { max-width: min(calc(1600px + (var(--content-gutter) * 2)), 100%); }
        .item-bnpl-banner { margin-top: 10px; }
        .price { font-family: var(--price-font-family, var(--base-font-family)); }
        .item-sticky-purchase { position: fixed; right: max(22px, calc((100vw - 1600px) / 2 + 22px)); top: 112px; z-index: 45; display: grid; gap: 14px; width: min(320px, calc(100vw - 44px)); padding: 18px; border: 1px solid rgba(28,25,23,0.12); border-radius: 18px; background: rgba(255,255,255,0.96); color: var(--textColorMain); box-shadow: 0 24px 64px rgba(28,25,23,0.16); opacity: 0; visibility: hidden; transform: translateY(-10px); transition: opacity 0.25s ease, visibility 0.25s ease, transform 0.25s ease; pointer-events: none; backdrop-filter: blur(14px); box-sizing: border-box; }
        .item-sticky-purchase.is-visible { opacity: 1; visibility: visible; transform: translateY(0); pointer-events: auto; }
        .item-sticky-purchase-summary { min-width: 0; }
        .item-sticky-purchase-label { display: inline-flex; align-items: center; min-height: 22px; padding: 0 9px; margin-bottom: 8px; border-radius: 999px; background: rgba(28,25,23,0.07); color: var(--color-stone-600); font-family: var(--label-font-family); font-size: 1rem; font-weight: 800; line-height: 1; letter-spacing: 0.12em; text-transform: uppercase; }
        .item-sticky-purchase-title { display: -webkit-box; margin: 0 0 6px; overflow: hidden; color: var(--textColorHead); font-family: var(--heading-font-family); font-size: 1.45rem; font-weight: 700; line-height: 1.45; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
        .item-sticky-purchase-price { margin: 0; color: var(--priceColor, var(--noticeColor)); font-family: var(--price-font-family, var(--base-font-family)); font-size: 1.65rem; font-weight: 800; line-height: 1.35; overflow-wrap: anywhere; }
        .item-sticky-purchase-button { display: inline-flex; align-items: center; justify-content: center; width: 100%; min-height: 50px; padding: 0 18px; border: 1px solid var(--btnBgColor); border-radius: 999px; background: var(--btnBgColor); color: #fff; font-family: var(--label-font-family); font-size: 1.2rem; font-weight: 800; line-height: 1.35; letter-spacing: 0.07em; text-align: center; cursor: pointer; box-shadow: 0 14px 36px rgba(28,25,23,0.14); transition: transform 0.25s ease, box-shadow 0.25s ease, opacity 0.25s ease; appearance: none; }
        .item-sticky-purchase-button::after { content: "→"; margin-left: 10px; font-size: 1.08em; line-height: 1; transition: transform 0.25s ease; }
        .item-sticky-purchase-button:hover { transform: translateY(-1px); opacity: 1; box-shadow: 0 18px 42px rgba(28,25,23,0.18); }
        .item-sticky-purchase-button:hover::after { transform: translateX(3px); }
        @media (min-width: 769px) {
            .item-sticky-purchase { right: max(24px, calc((100vw - 1600px) / 2 + 24px)); top: auto; bottom: 32px; gap: 0; width: auto; max-width: min(360px, calc(100vw - 48px)); padding: 0; border: 0; border-radius: 999px; background: transparent; box-shadow: none; overflow: visible; transform: translateY(12px); backdrop-filter: none; }
            .item-sticky-purchase::before { content: ""; position: absolute; right: 0; bottom: 100%; width: 100%; height: 12px; }
            .item-sticky-purchase.is-visible { transform: translateY(0); }
            .item-sticky-purchase-summary { position: absolute; right: 0; bottom: calc(100% + 12px); width: min(320px, calc(100vw - 48px)); padding: 16px 18px; border: 1px solid rgba(28,25,23,0.12); border-radius: 16px; background: rgba(255,255,255,0.96); box-shadow: 0 18px 48px rgba(28,25,23,0.14); opacity: 0; visibility: hidden; transform: translateY(8px); transition: opacity 0.22s ease, visibility 0.22s ease, transform 0.22s ease; pointer-events: none; backdrop-filter: blur(14px); box-sizing: border-box; }
            .item-sticky-purchase:hover .item-sticky-purchase-summary,
            .item-sticky-purchase:focus-within .item-sticky-purchase-summary { opacity: 1; visibility: visible; transform: translateY(0); }
            .item-sticky-purchase-label { min-height: 20px; margin-bottom: 7px; font-size: 0.95rem; }
            .item-sticky-purchase-title { font-size: 1.32rem; line-height: 1.45; }
            .item-sticky-purchase-price { font-size: 1.48rem; }
            .item-sticky-purchase-button { width: auto; min-width: 154px; min-height: 48px; padding: 0 22px; border-radius: 999px; box-shadow: 0 12px 32px rgba(28,25,23,0.16); }
        }
        .item-info-tabs { margin-top: 30px; border-top: 1px solid rgba(28,25,23,0.12); }
        .item-info-tab-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-bottom: 1px solid rgba(28,25,23,0.12); }
        .item-info-tab { position: relative; display: inline-flex; align-items: center; justify-content: center; min-height: 54px; padding: 0 14px; border: 0; border-radius: 0; background: transparent; color: var(--color-stone-500); font-family: var(--label-font-family); font-size: 1.25rem; font-weight: 700; line-height: 1.35; letter-spacing: 0.08em; cursor: pointer; transition: color 0.25s ease, background 0.25s ease; appearance: none; }
        .item-info-tab::after { content: ""; position: absolute; left: 18px; right: 18px; bottom: -1px; height: 2px; background: transparent; transition: background 0.25s ease; }
        .item-info-tab:hover,
        .item-info-tab.is-active { color: var(--textColorHead); background: rgba(28,25,23,0.025); }
        .item-info-tab.is-active::after { background: var(--btnBgColor); }
        .item-info-panel { padding-top: 26px; }
        .item-info-panel[hidden] { display: none !important; }
        .item-description,
        .item-shopping-guide { color: var(--color-stone-700); font-size: 1.5rem; line-height: 2.05; overflow-wrap: anywhere; }
        .item-description > *:first-child,
        .item-shopping-guide > *:first-child { margin-top: 0; }
        .item-description > *:last-child,
        .item-shopping-guide > *:last-child { margin-bottom: 0; }
        .item-description p,
        .item-shopping-guide p { margin: 0 0 1.35em; color: var(--color-stone-700); font-size: 1.5rem; line-height: 2.05; }
        .item-description h2,
        .item-description h3,
        .item-description h4,
        .item-shopping-guide h2,
        .item-shopping-guide h3,
        .item-shopping-guide 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,
        .item-shopping-guide h2 { font-size: clamp(2rem, 2vw, 2.8rem); }
        .item-description h3,
        .item-shopping-guide h3 { font-size: clamp(1.8rem, 1.7vw, 2.3rem); }
        .item-description h4,
        .item-shopping-guide h4 { font-size: 1.6rem; }
        .item-description ul,
        .item-description ol,
        .item-shopping-guide ul,
        .item-shopping-guide ol { margin: 0 0 1.5em; padding-left: 1.4em; color: var(--color-stone-700); }
        .item-description ul,
        .item-shopping-guide ul { list-style: disc; }
        .item-description ol,
        .item-shopping-guide ol { list-style: decimal; }
        .item-description li,
        .item-shopping-guide li { margin-bottom: 0.55em; line-height: 1.9; }
        .item-description img,
        .item-shopping-guide img { display: block; width: auto; max-width: 100%; height: auto; margin: 2em auto; border-radius: var(--radius-md); }
        .item-description table,
        .item-shopping-guide table { width: 100%; margin: 2em 0; border-collapse: collapse; font-size: 1.35rem; line-height: 1.75; }
        .item-description th,
        .item-description td,
        .item-shopping-guide th,
        .item-shopping-guide td { padding: 12px 0; border-bottom: 1px solid rgba(28,25,23,0.12); text-align: left; vertical-align: top; }
        .item-description th,
        .item-shopping-guide th { width: 32%; color: var(--textColorHead); font-family: var(--label-font-family); font-weight: 700; }
        @media (max-width: 768px) {
            .item-info-tabs { margin-top: 26px; }
            .item-info-tab { min-height: 50px; padding: 0 10px; font-size: 1.15rem; letter-spacing: 0.06em; }
            .item-info-tab::after { left: 12px; right: 12px; }
            .item-info-panel { padding-top: 22px; }
            .item-description,
            .item-shopping-guide { font-size: 1.4rem; line-height: 1.95; }
            .item-description p,
            .item-shopping-guide p { font-size: 1.4rem; line-height: 1.95; }
            .item-description img,
            .item-shopping-guide img { margin: 1.6em auto; }
            .item-description table,
            .item-shopping-guide table { display: block; overflow-x: auto; white-space: nowrap; }
        }
        .item-social-share { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 10px; margin-top: 18px; }
        .item-share-actions { display: inline-flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 10px; }
        .item-share-button { display: inline-flex; align-items: center; justify-content: center; min-height: 34px; padding: 0 14px; border: 1px solid rgba(28,25,23,0.16); border-radius: 999px; background: #fff; color: var(--textColorMain); font-family: var(--label-font-family); font-size: 1.1rem; font-weight: 700; line-height: 1; letter-spacing: 0.08em; text-decoration: none; box-shadow: 0 8px 24px rgba(28,25,23,0.06); 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; }
        .item-share-button:hover { transform: translateY(-1px); opacity: 1; border-color: var(--btnBgColor); box-shadow: 0 12px 28px rgba(28,25,23,0.1); }
        .item-share-button.twitter { color: #111; }
        .item-share-button.facebook { color: #1877f2; }
        .item-share-button.line { color: #06c755; }

        /* 外部CSSのヘッダー検索指定より後に読み込まれるため、ドロワー幅ではメニュー内検索だけを残す */
        @media (max-width: 1180px) {
            .header .header-search { display: none !important; }
        }
        .social-links { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 20px; }
        .social-links a { display: inline-flex; align-items: center; justify-content: center; width: 24px; height: 24px; color: rgba(255,255,255,0.68); }
        .social-links a:hover { color: #fff; opacity: 1; }
        .social-links svg { width: 24px; height: 24px; transition: color 0.25s ease, transform 0.25s ease; }
        .social-links a:hover svg { transform: translateY(-1px); }

        /* ==========================================================================
           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; }

        /* ボタン・フォーム */
        button, input, select, textarea { outline: none; font-family: inherit; }
        .btnt a, .hero-cta a, .purchaseButton button, .purchaseButton a, .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 a::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 a::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 a: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 a: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 a: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); 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 rgba(28,25,23,0.08) !important; border-radius: 999px !important; background: var(--textColorMain10); 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 rgba(28,25,23,0.18); border-radius: 999px; background: rgba(255,255,255,0.9); color: var(--textColorMain); 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: inherit; 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: #fff; }
        .drawer-open span, .drawer-open span::before, .drawer-open span::after { content: ""; position: absolute; width: 100%; height: 2px; background: currentColor; 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: rgba(255,255,255,0.98); 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 { background-size: cover; background-position: center; }
        .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; }

        /* 汎用コンテナ */
        .content { margin: 64px auto; padding: 0 var(--content-gutter); max-width: var(--container-width); }
        .content:has(.item) { max-width: min(calc(1600px + (var(--content-gutter) * 2)), 100%); }
        .home .content { margin-top: 0; max-width: 100%; padding: 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; }
        .contact-page-body { max-width: min(800px, 100%); margin: 0 auto; padding: clamp(30px, 4vw, 46px); border: 1px solid rgba(28,25,23,0.1); border-radius: var(--radius-md); background: linear-gradient(145deg, rgba(255,253,249,0.98) 0%, rgba(255,255,255,0.96) 64%, rgba(245,238,226,0.72) 100%); 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(--textColorHead); 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(--color-stone-600); 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(--textColorMain); 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; }
        .home .item-list-item .name { display: -webkit-box; min-height: 3.1em; overflow: hidden; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
        .price { 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; z-index: 2; 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 { padding: clamp(64px, 8vw, 104px) var(--content-gutter); max-width: none; margin: 0 auto; display: none; background: linear-gradient(180deg, var(--color-stone-50) 0%, #fff 100%); overflow: hidden; }
        .category-item-list-wrap .section-lead { margin-bottom: clamp(30px, 3.5vw, 46px); }
        .category-item-list { 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: visible; 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 rgba(28,25,23,0.08); border-radius: var(--radius-md); background: rgba(255,255,255,0.94); 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; 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; }
        .home .pickup-text h3 { display: -webkit-box; overflow: hidden; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
        .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; }
        }
        /* firstGuide セクション */
        .first-guide-section { padding: var(--section-space) var(--content-gutter); max-width: calc(var(--container-width) + (var(--content-gutter) * 2)); margin: 0 auto; background: var(--color-white); }
        .first-guide-list { max-width: var(--container-width); margin: 0 auto; }
        .first-guide-item .guide-title { margin: 0 0 12px; color: var(--textColorHead); font-family: var(--heading-font-family); font-size: 1.8rem; font-weight: 600; line-height: 1.55; overflow-wrap: anywhere; }
        .first-guide-item .price .current { color: var(--priceColor); font-weight: 700; }
        /* ABOUT セクション */
        .concept-section { padding: var(--section-space) var(--content-gutter); background: var(--color-stone-50); }
        .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(--color-white); }
        .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(--color-stone-50); }
        .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; }

        /* Blog detail */
        .blog-page-shell { max-width: calc(980px + (var(--content-gutter) * 2)); margin: 0 auto; padding: clamp(58px, 7vw, 104px) var(--content-gutter) var(--section-space); }
        .blog-page-shell .section_title { margin-bottom: clamp(28px, 4vw, 48px); }
        .blog-page-contents { max-width: 860px; margin: 0 auto; }
        .blog-page-contents .main,
        .blog-page-contents .blogDetail,
        .blog-page-contents .blogListMain { width: 100%; max-width: none; margin: 0 auto; }
        .blog-page-contents .blog_inner { margin: 0 !important; padding: 0 !important; border: 0 !important; background: transparent !important; }
        .blog-page-contents .blog_contents { height: auto !important; overflow: visible !important; color: var(--textColorMain); }
        .blog-page-contents .blog_title { margin: 0 0 14px; text-align: center; }
        .blog-page-contents .blog_title h2 { margin: 0 !important; color: var(--textColorHead); font-family: var(--heading-font-family); font-size: clamp(2.8rem, 4vw, 4.6rem); font-weight: 600; line-height: 1.34 !important; letter-spacing: 0.03em; overflow-wrap: anywhere; }
        .blog-page-contents .blog_title h2 a { color: inherit; text-decoration: none; }
        .blog-page-contents .blog_publish { display: flex; justify-content: center; margin: 0 0 clamp(34px, 5vw, 56px) !important; color: var(--color-stone-500); font-family: var(--label-font-family); font-size: 1.15rem !important; font-weight: 700; line-height: 1.4; letter-spacing: 0.1em; }
        .blog-page-contents .blog_publish .publish_date { margin: 0; color: inherit; font-size: inherit !important; line-height: inherit; }
        .blog-page-contents .blog_body { color: var(--color-stone-700); font-size: 1.58rem; line-height: 2.08; letter-spacing: 0.035em; overflow-wrap: anywhere; }
        .blog-page-contents .blog_body > p,
        .blog-page-contents .blog_body > div { margin: 0 0 1.55em; color: inherit; font-size: inherit; line-height: inherit; }
        .blog-page-contents .blog_body > *:first-child { margin-top: 0; }
        .blog-page-contents .blog_body > *:last-child { margin-bottom: 0; }
        .blog-page-contents .blog_body h3 { position: relative; margin: clamp(46px, 6vw, 72px) 0 20px !important; padding: 17px 0 17px 24px; border-left: 3px solid var(--btnBgColor); color: var(--textColorHead); font-family: var(--heading-font-family); font-size: clamp(2rem, 2.3vw, 2.7rem); font-weight: 600; line-height: 1.52; letter-spacing: 0.02em; background: linear-gradient(90deg, rgba(231,192,72,0.12), rgba(231,192,72,0)); overflow-wrap: anywhere; }
        .blog-page-contents .blog_body h3:first-child { margin-top: 0 !important; }
        .blog-page-contents .blog_body h3 span { color: inherit !important; font-family: inherit !important; font-size: inherit !important; font-weight: inherit !important; line-height: inherit !important; letter-spacing: inherit !important; background: transparent !important; }
        .blog-page-contents .blog_body strong,
        .blog-page-contents .blog_body b { color: var(--textColorHead); font-weight: 700; background: linear-gradient(transparent 64%, rgba(231,192,72,0.28) 0); }
        .blog-page-contents .blog_body img { display: block; width: 100%; max-width: 100% !important; height: auto; margin: clamp(24px, 4vw, 42px) auto !important; border-radius: var(--radius-md); box-shadow: 0 18px 46px rgba(28,25,23,0.1); }
        .blog-page-contents .blog_body a { color: var(--textColorHead); text-decoration: underline; text-decoration-color: rgba(231,192,72,0.74); text-underline-offset: 0.18em; }
        .blog-page-contents .blog_body .youtube,
        .blog-page-contents .blog_body .vimeo,
        .blog-page-contents .blog_body iframe { display: block; width: 100%; max-width: 100%; aspect-ratio: 16 / 9; height: auto; margin: clamp(24px, 4vw, 42px) auto; border-radius: var(--radius-md); overflow: hidden; }
        .blog-page-contents .social { display: flex; justify-content: center; gap: 12px; margin: clamp(46px, 6vw, 72px) 0 0 !important; padding-top: 28px; border-top: 1px solid rgba(28,25,23,0.12); }
        .blog-page-contents .social ul,
        .blog-page-contents .social li { display: flex; align-items: center; gap: 12px; margin: 0; padding: 0; list-style: none; }
        .blog-page-contents .social a { display: inline-flex; align-items: center; justify-content: center; width: 42px; height: 42px; border: 1px solid rgba(28,25,23,0.14); border-radius: 50%; background: #fff; box-shadow: 0 10px 26px rgba(28,25,23,0.06); }
        .blog-page-contents .social img { width: 20px; height: 20px; margin: 0 !important; border-radius: 0; box-shadow: none; }
        .blog-page-contents .paginate-wrp { margin: clamp(46px, 6vw, 72px) 0 0 !important; }

        /* Information セクション */
        .information-section { padding: var(--section-space-compact) var(--content-gutter); background: var(--color-white); }
        .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(--color-white); }
        .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; }

        /* 商品ページ Quality / Aging セクション */
        .item-quality-section { padding: var(--section-space) var(--content-gutter); margin-top: var(--section-space-compact); background: var(--color-white); border-top: 1px solid rgba(28,25,23,0.12); }
        .item-quality-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(36px, 5vw, 72px); align-items: center; max-width: var(--container-width); margin: 0 auto; }
        .item-quality-image-wrapper { position: relative; }
        .item-quality-main-image { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--radius-md); box-shadow: var(--shadow-lift); }
        .item-quality-badge { position: absolute; right: 18px; bottom: 18px; padding: 18px 22px; background: rgba(28,25,23,0.9); color: #fff; border-radius: var(--radius-sm); backdrop-filter: blur(10px); }
        .item-quality-badge p { margin: 0; color: inherit; font-family: var(--heading-font-family); font-size: 1.35rem; font-weight: 600; line-height: 1.35; }
        .item-quality-heading { margin-bottom: 32px; }
        .item-quality-heading h2 { font-family: var(--heading-font-family); font-size: clamp(2.6rem, 3.1vw, 4rem); line-height: 1.25; margin-bottom: 10px; color: var(--textColorHead); }
        .item-quality-heading .subtitle { margin: 0; color: var(--color-amber-600); font-family: var(--label-font-family); font-size: 1.2rem; font-weight: 700; letter-spacing: var(--label-letter-spacing); }
        .item-quality-heading .divider { width: 64px; height: 1px; margin-top: 18px; background: var(--btnBgColor); }
        .item-quality-feature-list { display: grid; gap: 26px; }
        .item-quality-feature { display: flex; gap: 18px; align-items: flex-start; }
        .item-quality-icon-box { flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center; width: 50px; height: 50px; border-radius: 999px; background: var(--color-stone-100); color: var(--color-stone-700); }
        .item-quality-icon-svg { width: 24px; height: 24px; }
        .item-quality-feature-content h3 { margin: 0 0 8px; color: var(--textColorHead); font-family: var(--heading-font-family); font-size: 1.85rem; line-height: 1.45; }
        .item-quality-feature-content p { margin: 0; color: var(--color-stone-600); font-size: 1.35rem; line-height: 1.8; }
        .item-aging-section { position: relative; overflow: hidden; padding: var(--section-space) var(--content-gutter); background: var(--color-stone-900); color: #fff; }
        .item-aging-bg-texture { position: absolute; inset: 0; opacity: 0.1; background-image: url("https://www.transparenttextures.com/patterns/leather.png"); pointer-events: none; }
        .item-aging-content { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(36px, 5vw, 72px); align-items: center; max-width: var(--container-width); margin: 0 auto; }
        .item-aging-text h2 { margin: 0 0 24px; color: #fff; font-family: var(--heading-font-family); font-size: clamp(2.8rem, 4vw, 5.2rem); line-height: 1.22; }
        .text-highlight { color: var(--color-amber-500); }
        .item-aging-description { margin: 0 0 34px; color: var(--color-stone-300); font-size: 1.5rem; line-height: 1.95; }
        .item-aging-timeline { display: flex; gap: clamp(18px, 2.6vw, 34px); border-top: 1px solid rgba(255,255,255,0.18); padding-top: 28px; }
        .item-aging-timeline-item { min-width: 0; }
        .item-aging-timeline-item .year { margin: 0; color: var(--color-amber-500); font-family: var(--heading-font-family); font-size: 2rem; font-weight: 700; line-height: 1.25; }
        .item-aging-timeline-item .desc { margin: 6px 0 0; color: var(--color-stone-400); font-size: 1.35rem; line-height: 1.65; }
        .item-aging-images { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(14px, 2vw, 24px); }
        .item-aging-img-card { display: grid; gap: 10px; }
        .item-aging-img-card img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; border-radius: var(--radius-sm); box-shadow: 0 18px 48px rgba(0,0,0,0.24); }
        .item-aging-img-card .caption { margin: 0; color: var(--color-stone-400); font-family: var(--label-font-family); font-size: 1.15rem; font-weight: 700; letter-spacing: var(--label-letter-spacing); line-height: 1.45; text-align: center; }
        .item-aging-img-card.offset { margin-top: 44px; }
        .item-aging-img-card.offset img { border: 2px solid rgba(217,119,6,0.5); }
        .item-aging-img-card.offset .caption { color: var(--color-amber-500); }

        /* 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: #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: linear-gradient(145deg, rgba(255,253,249,0.98) 0%, rgba(255,255,255,0.92) 58%, rgba(245,238,226,0.76) 100%); padding: clamp(30px, 3vw, 42px); border: 1px solid rgba(155,106,59,0.14); 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: rgba(28,25,23,0.18); font-family: var(--label-font-family); font-size: 1rem; font-weight: 800; letter-spacing: 0.28em; line-height: 1; 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 rgba(155,106,59,0.18); border-radius: 999px; background: rgba(255,255,255,0.74); 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(--color-stone-900); 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(--color-stone-600); 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(--color-stone-50); 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(--textColorMain); 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: 14px; margin-top: 20px; }
        .social-links a { display: inline-flex; align-items: center; justify-content: center; width: 24px; height: 24px; color: rgba(255,255,255,0.68); }
        .social-links a:hover { color: #fff; opacity: 1; }
        .social-links img,
        .social-links svg { width: 24px; height: 24px; transition: color 0.25s ease, filter 0.3s ease, transform 0.25s ease; }
        .social-links img { filter: brightness(0) invert(0.7); }
        .social-links a:hover img { filter: brightness(0) invert(1); }
        .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); width: 100%; max-width: min(1600px, 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-family: var(--price-font-family, var(--base-font-family)); 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-family: var(--price-font-family, var(--base-font-family)); font-size: 1.25rem; text-decoration: line-through; }
        .item-detail .item-status-tags { margin: 0 0 20px; }
        .purchaseButton button,
        .purchaseButton a { display: inline-flex; align-items: center; justify-content: center; width: 100%; min-height: 56px; padding: 0 22px; 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; color: #fff; background: var(--btnBgColor); border-radius: 999px; border: 1px solid var(--btnBgColor); margin-top: 20px; cursor: pointer; box-sizing: border-box; appearance: none; }
        .purchaseButton button::before,
        .purchaseButton a::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,
        .item-detail .purchaseButton a { 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 .purchaseButton a[href*="restock"],
        .item-detail .purchaseButton a[href*="restock_mail"],
        .item-detail .purchaseButton a[href*="restockMail"],
        .item-detail .purchaseButton a[href*="mail"],
        .item-detail .purchaseButton button[class*="restock"],
        .item-detail .purchaseButton button[class*="Restock"] { min-height: 62px; padding: 0 24px; border-color: rgba(245,158,11,0.72); background: linear-gradient(135deg, var(--btnBgColor), #d97706); color: #fff; box-shadow: 0 18px 44px rgba(217,119,6,0.2); }
        .item-detail .purchaseButton a[href*="restock"]::before,
        .item-detail .purchaseButton a[href*="restock_mail"]::before,
        .item-detail .purchaseButton a[href*="restockMail"]::before,
        .item-detail .purchaseButton a[href*="mail"]::before,
        .item-detail .purchaseButton button[class*="restock"]::before,
        .item-detail .purchaseButton button[class*="Restock"]::before { background: #fff; }
        .item-detail .purchaseButton a[href*="restock"]::after,
        .item-detail .purchaseButton a[href*="restock_mail"]::after,
        .item-detail .purchaseButton a[href*="restockMail"]::after,
        .item-detail .purchaseButton a[href*="mail"]::after,
        .item-detail .purchaseButton button[class*="restock"]::after,
        .item-detail .purchaseButton button[class*="Restock"]::after { content: "✉"; font-size: 1em; transform: none; }
        .item-detail .purchaseButton a[href*="restock"]:hover,
        .item-detail .purchaseButton a[href*="restock_mail"]:hover,
        .item-detail .purchaseButton a[href*="restockMail"]:hover,
        .item-detail .purchaseButton a[href*="mail"]:hover,
        .item-detail .purchaseButton button[class*="restock"]:hover,
        .item-detail .purchaseButton button[class*="Restock"]:hover { border-color: #d97706; box-shadow: 0 20px 48px rgba(217,119,6,0.24); }
        .item-detail .purchase-panel [class*="restock"],
        .item-detail .purchase-panel [class*="Restock"],
        .item-detail .purchase-panel [id*="restock"],
        .item-detail .purchase-panel [id*="Restock"],
        .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: inline-flex; align-items: center; justify-content: center; width: 100%; min-height: 60px; margin-top: 16px; padding: 0 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; 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; }
        .item-detail .purchase-panel [class*="restock"]::before,
        .item-detail .purchase-panel [class*="Restock"]::before,
        .item-detail .purchase-panel [id*="restock"]::before,
        .item-detail .purchase-panel [id*="Restock"]::before { content: "✉"; display: inline-flex; align-items: center; justify-content: center; width: 1.1em; margin-right: 10px; font-size: 1em; line-height: 1; }
        .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 [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 [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-sticky-purchase { position: fixed; right: max(22px, calc((100vw - 1600px) / 2 + 22px)); top: 112px; z-index: 45; display: grid; gap: 14px; width: min(320px, calc(100vw - 44px)); padding: 18px; border: 1px solid rgba(28,25,23,0.12); border-radius: 18px; background: rgba(255,255,255,0.96); color: var(--textColorMain); box-shadow: 0 24px 64px rgba(28,25,23,0.16); opacity: 0; visibility: hidden; transform: translateY(-10px); transition: opacity 0.25s ease, visibility 0.25s ease, transform 0.25s ease; pointer-events: none; backdrop-filter: blur(14px); box-sizing: border-box; }
        .item-sticky-purchase.is-visible { opacity: 1; visibility: visible; transform: translateY(0); pointer-events: auto; }
        .item-sticky-purchase-summary { min-width: 0; }
        .item-sticky-purchase-label { display: inline-flex; align-items: center; min-height: 22px; padding: 0 9px; margin-bottom: 8px; border-radius: 999px; background: rgba(28,25,23,0.07); color: var(--color-stone-600); font-family: var(--label-font-family); font-size: 1rem; font-weight: 800; line-height: 1; letter-spacing: 0.12em; text-transform: uppercase; }
        .item-sticky-purchase-title { display: -webkit-box; margin: 0 0 6px; overflow: hidden; color: var(--textColorHead); font-family: var(--heading-font-family); font-size: 1.45rem; font-weight: 700; line-height: 1.45; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
        .item-sticky-purchase-price { margin: 0; color: var(--priceColor, var(--noticeColor)); font-family: var(--price-font-family, var(--base-font-family)); font-size: 1.65rem; font-weight: 800; line-height: 1.35; overflow-wrap: anywhere; }
        .item-sticky-purchase-button { display: inline-flex; align-items: center; justify-content: center; width: 100%; min-height: 50px; padding: 0 18px; border: 1px solid var(--btnBgColor); border-radius: 999px; background: var(--btnBgColor); color: #fff; font-family: var(--label-font-family); font-size: 1.2rem; font-weight: 800; line-height: 1.35; letter-spacing: 0.07em; text-align: center; cursor: pointer; box-shadow: 0 14px 36px rgba(28,25,23,0.14); transition: transform 0.25s ease, box-shadow 0.25s ease, opacity 0.25s ease; appearance: none; }
        .item-sticky-purchase-button::after { content: "→"; margin-left: 10px; font-size: 1.08em; line-height: 1; transition: transform 0.25s ease; }
        .item-sticky-purchase-button:hover { transform: translateY(-1px); opacity: 1; box-shadow: 0 18px 42px rgba(28,25,23,0.18); }
        .item-sticky-purchase-button:hover::after { transform: translateX(3px); }
        @media (min-width: 769px) {
            .item-sticky-purchase { right: max(24px, calc((100vw - 1600px) / 2 + 24px)); top: auto; bottom: 32px; gap: 0; width: auto; max-width: min(360px, calc(100vw - 48px)); padding: 0; border: 0; border-radius: 999px; background: transparent; box-shadow: none; overflow: visible; transform: translateY(12px); backdrop-filter: none; }
            .item-sticky-purchase::before { content: ""; position: absolute; right: 0; bottom: 100%; width: 100%; height: 12px; }
            .item-sticky-purchase.is-visible { transform: translateY(0); }
            .item-sticky-purchase-summary { position: absolute; right: 0; bottom: calc(100% + 12px); width: min(320px, calc(100vw - 48px)); padding: 16px 18px; border: 1px solid rgba(28,25,23,0.12); border-radius: 16px; background: rgba(255,255,255,0.96); box-shadow: 0 18px 48px rgba(28,25,23,0.14); opacity: 0; visibility: hidden; transform: translateY(8px); transition: opacity 0.22s ease, visibility 0.22s ease, transform 0.22s ease; pointer-events: none; backdrop-filter: blur(14px); box-sizing: border-box; }
            .item-sticky-purchase:hover .item-sticky-purchase-summary,
            .item-sticky-purchase:focus-within .item-sticky-purchase-summary { opacity: 1; visibility: visible; transform: translateY(0); }
            .item-sticky-purchase-label { min-height: 20px; margin-bottom: 7px; font-size: 0.95rem; }
            .item-sticky-purchase-title { font-size: 1.32rem; line-height: 1.45; }
            .item-sticky-purchase-price { font-size: 1.48rem; }
            .item-sticky-purchase-button { width: auto; min-width: 154px; min-height: 48px; padding: 0 22px; border-radius: 999px; box-shadow: 0 12px 32px rgba(28,25,23,0.16); }
        }
        .item-info-tabs { margin-top: 30px; border-top: 1px solid rgba(28,25,23,0.12); }
        .item-info-tab-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-bottom: 1px solid rgba(28,25,23,0.12); }
        .item-info-tab { position: relative; display: inline-flex; align-items: center; justify-content: center; min-height: 54px; padding: 0 14px; border: 0; border-radius: 0; background: transparent; color: var(--color-stone-500); font-family: var(--label-font-family); font-size: 1.25rem; font-weight: 700; line-height: 1.35; letter-spacing: 0.08em; cursor: pointer; transition: color 0.25s ease, background 0.25s ease; appearance: none; }
        .item-info-tab::after { content: ""; position: absolute; left: 18px; right: 18px; bottom: -1px; height: 2px; background: transparent; transition: background 0.25s ease; }
        .item-info-tab:hover,
        .item-info-tab.is-active { color: var(--textColorHead); background: rgba(28,25,23,0.025); }
        .item-info-tab.is-active::after { background: var(--btnBgColor); }
        .item-info-panel { padding-top: 26px; }
        .item-info-panel[hidden] { display: none !important; }
        .item-description,
        .item-shopping-guide { color: var(--color-stone-700); font-size: 1.5rem; line-height: 2.05; overflow-wrap: anywhere; }
        .item-description > *:first-child,
        .item-shopping-guide > *:first-child { margin-top: 0; }
        .item-description > *:last-child,
        .item-shopping-guide > *:last-child { margin-bottom: 0; }
        .item-description p,
        .item-shopping-guide p { margin: 0 0 1.35em; color: var(--color-stone-700); font-size: 1.5rem; line-height: 2.05; }
        .item-description h2,
        .item-description h3,
        .item-description h4,
        .item-shopping-guide h2,
        .item-shopping-guide h3,
        .item-shopping-guide 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,
        .item-shopping-guide h2 { font-size: clamp(2rem, 2vw, 2.8rem); }
        .item-description h3,
        .item-shopping-guide h3 { font-size: clamp(1.8rem, 1.7vw, 2.3rem); }
        .item-description h4,
        .item-shopping-guide h4 { font-size: 1.6rem; }
        .item-description ul,
        .item-description ol,
        .item-shopping-guide ul,
        .item-shopping-guide ol { margin: 0 0 1.5em; padding-left: 1.4em; color: var(--color-stone-700); }
        .item-description ul,
        .item-shopping-guide ul { list-style: disc; }
        .item-description ol,
        .item-shopping-guide ol { list-style: decimal; }
        .item-description li,
        .item-shopping-guide li { margin-bottom: 0.55em; line-height: 1.9; }
        .item-description img,
        .item-shopping-guide img { display: block; width: auto; max-width: 100%; height: auto; margin: 2em auto; border-radius: var(--radius-md); }
        .item-description table,
        .item-shopping-guide table { width: 100%; margin: 2em 0; border-collapse: collapse; font-size: 1.35rem; line-height: 1.75; }
        .item-description th,
        .item-description td,
        .item-shopping-guide th,
        .item-shopping-guide td { padding: 12px 0; border-bottom: 1px solid rgba(28,25,23,0.12); text-align: left; vertical-align: top; }
        .item-description th,
        .item-shopping-guide th { width: 32%; color: var(--textColorHead); font-family: var(--label-font-family); font-weight: 700; }
        .item-social-share { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 10px; margin-top: 18px; }
        .item-share-actions { display: inline-flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 10px; }
        .item-share-button { display: inline-flex; align-items: center; justify-content: center; min-height: 34px; padding: 0 14px; border: 1px solid rgba(28,25,23,0.16); border-radius: 999px; background: #fff; color: var(--textColorMain); font-family: var(--label-font-family); font-size: 1.1rem; font-weight: 700; line-height: 1; letter-spacing: 0.08em; text-decoration: none; box-shadow: 0 8px 24px rgba(28,25,23,0.06); 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; }
        .item-share-button:hover { transform: translateY(-1px); opacity: 1; border-color: var(--btnBgColor); box-shadow: 0 12px 28px rgba(28,25,23,0.1); }
        .item-share-button.twitter { color: #111; }
        .item-share-button.facebook { color: #1877f2; }
        .item-share-button.line { color: #06c755; }
        .purchase-panel { background:#fafafa; padding:24px; margin:30px 0; border: 1px solid rgba(28,25,23,0.08); border-radius: var(--radius-md); box-shadow: 0 18px 48px rgba(28,25,23,0.06); }
        .ageVerificationWarning { margin: 18px 0; color: var(--noticeColor); font-size: 3.2rem; font-weight: 700; line-height: 1.45; overflow-wrap: anywhere; }
        .itemOptionElement { margin: 0 0 18px; }
        .itemOption__name { display: block; margin-bottom: 8px; 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(--textColorMain); font-family: var(--base-font-family); }
        @media (min-width: 769px) {
            .purchase-panel { padding: 32px 38px 34px; border-color: rgba(28,25,23,0.1); border-radius: 20px; background: linear-gradient(145deg, rgba(255,255,255,0.98) 0%, rgba(250,250,249,0.96) 58%, rgba(245,238,226,0.68) 100%); box-shadow: 0 24px 60px rgba(28,25,23,0.1); }
            .purchase-panel table { width: 100%; border-collapse: separate; border-spacing: 0; }
            .purchase-panel tbody,
            .purchase-panel tr,
            .purchase-panel th,
            .purchase-panel td { border: 0; }
            .purchase-panel tr,
            .purchase-panel .itemOptionElement { position: relative; display: block; margin: 0 0 12px; padding: 14px 18px; border: 1px solid rgba(28,25,23,0.08); border-radius: 16px; background: rgba(255,255,255,0.82); box-shadow: 0 12px 32px rgba(28,25,23,0.045); box-sizing: border-box; transition: border-color 0.25s ease, box-shadow 0.25s ease, background 0.25s ease; }
            .purchase-panel tr + tr,
            .purchase-panel .itemOptionElement + .itemOptionElement { margin-top: 22px; }
            .purchase-panel tr:focus-within,
            .purchase-panel .itemOptionElement:focus-within { border-color: rgba(245,158,11,0.52); background: #fff; box-shadow: 0 0 0 4px rgba(245,158,11,0.12), 0 18px 42px rgba(28,25,23,0.08); }
            .purchase-panel th,
            .purchase-panel td { display: block; width: 100% !important; padding: 0 !important; text-align: left; vertical-align: middle; }
            .purchase-panel label,
            .purchase-panel th,
            .purchase-panel .itemOption__name { display: block; margin: 0 0 10px !important; color: var(--textColorHead); font-family: var(--label-font-family); font-size: 1.2rem; font-weight: 800; line-height: 1.55; letter-spacing: 0.11em; text-transform: uppercase; overflow-wrap: anywhere; }
            .purchase-panel td,
            .purchase-panel .itemOption__body { min-width: 0; }
            .purchase-panel select,
            .purchase-panel input[type="text"],
            .purchase-panel input[type="number"],
            .purchase-panel input[type="tel"],
            .itemOption__select,
            .itemOption__input { width: 100% !important; min-width: 0 !important; max-width: none !important; min-height: 48px !important; height: 48px !important; margin: 0 0 8px !important; padding: 0 46px 0 18px !important; border: 1px solid rgba(28,25,23,0.12) !important; border-radius: 12px !important; background-color: rgba(255,255,255,0.96) !important; color: var(--textColorMain) !important; font-family: var(--base-font-family) !important; font-size: 1.48rem !important; font-weight: 600; line-height: 48px !important; box-shadow: inset 0 1px 0 rgba(255,255,255,0.86), 0 10px 24px rgba(28,25,23,0.04) !important; box-sizing: border-box !important; appearance: none; transition: border-color 0.22s ease, box-shadow 0.22s ease, background 0.22s ease, transform 0.22s ease; }
            .purchase-panel .purchaseButton { margin: 22px 0 18px; }
            .purchase-panel .purchaseButton button,
            .purchase-panel .purchaseButton a { margin-top: 0; }
            .purchase-panel select,
            .itemOption__select { cursor: pointer; background-image: linear-gradient(45deg, transparent 50%, var(--textColorHead) 50%), linear-gradient(135deg, var(--textColorHead) 50%, transparent 50%), linear-gradient(180deg, rgba(28,25,23,0.06), rgba(28,25,23,0.06)); background-position: calc(100% - 24px) 50%, calc(100% - 18px) 50%, calc(100% - 40px) 50%; background-size: 6px 6px, 6px 6px, 1px 26px; background-repeat: no-repeat; }
            .purchase-panel input[type="number"] { max-width: 148px !important; padding-right: 16px !important; text-align: center; font-family: var(--price-font-family, var(--base-font-family)) !important; font-size: 1.62rem !important; letter-spacing: 0.03em; }
            .purchase-panel select:hover,
            .purchase-panel input:hover,
            .itemOption__select:hover,
            .itemOption__input:hover { border-color: rgba(28,25,23,0.24) !important; background-color: #fff !important; transform: translateY(-1px); }
            .purchase-panel select:focus,
            .purchase-panel input:focus,
            .itemOption__select:focus,
            .itemOption__input:focus { border-color: rgba(245,158,11,0.76) !important; background-color: #fff !important; box-shadow: 0 0 0 4px rgba(245,158,11,0.14), 0 12px 28px rgba(28,25,23,0.08) !important; }
            .purchase-panel input[type="number"]::-webkit-outer-spin-button,
            .purchase-panel input[type="number"]::-webkit-inner-spin-button { opacity: 0.6; cursor: pointer; }
        }
        .itemOption__caption { margin: 8px 0; color: var(--color-stone-500); 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 rgba(28,25,23,0.1); border-radius: 8px; background: #fff; 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(--color-stone-600); 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(--textColorMain); overflow-wrap: anywhere; }

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

        /* レスポンシブ (モバイル) */
        @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: #fff; }
            .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; }
            .mainvisual-content .title { font-size: clamp(2.35rem, 6.8vw, 2.9rem); line-height: 1.24; margin-bottom: 16px; }
            .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, .first-guide-section, .concept-section, .feature-section, .information-section, .quality-section, .item-quality-section, .item-aging-section, .styling-section, .voice-section { padding-left: 20px; padding-right: 20px; }
            .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; }
            .blog-page-shell { padding: 50px 20px 76px; }
            .blog-page-shell .section_title { margin-bottom: 26px; }
            .blog-page-contents .blog_title { text-align: left; }
            .blog-page-contents .blog_title h2 { font-size: 2.55rem; line-height: 1.42 !important; }
            .blog-page-contents .blog_publish { justify-content: flex-start; margin-bottom: 34px !important; font-size: 1.08rem !important; }
            .blog-page-contents .blog_body { font-size: 1.45rem; line-height: 1.98; }
            .blog-page-contents .blog_body > p,
            .blog-page-contents .blog_body > div { margin-bottom: 1.35em; }
            .blog-page-contents .blog_body h3 { margin: 40px 0 17px !important; padding: 14px 0 14px 18px; font-size: 2rem; line-height: 1.55; }
            .blog-page-contents .blog_body img { margin: 22px auto 30px !important; border-radius: 8px; }
            .blog-page-contents .social { justify-content: flex-start; margin-top: 42px !important; padding-top: 24px; }
            .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-row { margin-bottom: 50px; }
            .quality-grid, .item-quality-grid, .item-aging-content, .styling-content, .voice-grid, .footer-grid, .item { grid-template-columns: 1fr; gap: 40px; }
            .item-quality-section { margin-top: 64px; }
            .item-quality-badge { right: 12px; bottom: 12px; padding: 14px 18px; }
            .item-quality-heading h2 { font-size: 2.6rem; }
            .item-quality-feature { gap: 14px; }
            .item-quality-icon-box { width: 44px; height: 44px; }
            .item-aging-section { padding-top: 72px; padding-bottom: 72px; }
            .item-aging-text h2 { font-size: 3rem; }
            .item-aging-description { font-size: 1.4rem; line-height: 1.9; }
            .item-aging-timeline { flex-direction: column; gap: 18px; }
            .item-aging-img-card.offset { margin-top: 0; }
            .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; }
            body.has-sticky-purchase { padding-bottom: 94px; }
            .item-sticky-purchase { left: 12px; right: 12px; top: auto; bottom: 12px; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 12px; width: auto; padding: 12px; border-radius: 14px; transform: translateY(16px); }
            .item-sticky-purchase.is-visible { transform: translateY(0); }
            .item-sticky-purchase-label { display: none; }
            .item-sticky-purchase-title { margin-bottom: 2px; font-size: 1.15rem; line-height: 1.35; -webkit-line-clamp: 1; }
            .item-sticky-purchase-price { font-size: 1.25rem; line-height: 1.25; }
            .item-sticky-purchase-button { width: auto; min-width: 132px; min-height: 48px; padding: 0 16px; font-size: 1.05rem; letter-spacing: 0.04em; white-space: nowrap; }
            .item-info-tabs { margin-top: 26px; }
            .item-info-tab { min-height: 50px; padding: 0 10px; font-size: 1.15rem; letter-spacing: 0.06em; }
            .item-info-tab::after { left: 12px; right: 12px; }
            .item-info-panel { padding-top: 22px; }
            .item-description,
            .item-shopping-guide { font-size: 1.4rem; line-height: 1.95; }
            .item-description p,
            .item-shopping-guide p { font-size: 1.4rem; line-height: 1.95; }
            .item-description img,
            .item-shopping-guide img { margin: 1.6em auto; }
            .item-description table,
            .item-shopping-guide table { display: block; overflow-x: auto; white-space: nowrap; }
            .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(--textColorHead); 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"] { 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(--textColorMain) !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 input[type="text"],
            .purchase-panel input[type="number"],
            .purchase-panel input[type="tel"] { display: block !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,
        .load-more-btn.is-loading { position: relative; width: auto; height: auto; background: transparent; z-index: auto; }
        .load-more-btn.loading::after,
        .load-more-btn.is-loading::after { content: " ..."; transform: none; }
