/**
 * StoreLab - Frontend Styles
 * Version: 1.10.0
 * 
 * v1.10.0 変更点:
 * - 旧テンプレートCSS（compact/rich/horizontal/vertical）削除
 * - 旧ボタン幅CSS（btnw-text/col3/col2）削除
 * - 旧モバイルレイアウトCSS（mobile-side, btnw-mobile-col2）削除
 * - 新: 統一レイアウトシステム（image_size ベース）
 * - 新: スキンクラス（.storelab-skin-*）
 * - Breakpoint: 560px → 768px
 */

/* ============================================
   CSS Variables
   ============================================ */
:root {
    --storelab-amazon: #ff9900;
    --storelab-rakuten: #bf0000;
    --storelab-yahoo: #4c8bf5;
    --storelab-mercari: #ff0211;
    --storelab-radius: 14px;
    --storelab-shadow: 0 1px 4px rgba(0, 0, 0, 0.06);
    --storelab-font: -apple-system, BlinkMacSystemFont, "Segoe UI", "Hiragino Sans", "Noto Sans JP", sans-serif;
    --storelab-bg: #fff;
    --storelab-border: #e8e8ed;
    --storelab-text: #333;
    --storelab-text-heading: #1a202c;
    --storelab-text-sub: #666;
    --storelab-text-muted: #999;
}

/* ============================================
   Base
   ============================================ */
.storelab-box {
    max-width: none;
    margin: 1.5em auto;
    padding: 0;
    font-family: var(--storelab-font);
    font-size: 14px;
    line-height: 1.6;
    color: var(--storelab-text);
    position: relative;
    overflow: hidden;
    box-sizing: border-box;
}
.storelab-box *, .storelab-box *::before, .storelab-box *::after { box-sizing: border-box; }

/* ============================================
   v1.10.0 Unified Layout System
   テンプレート = 装飾スキン（CSS のみ）
   画像サイズ = レイアウト構造（ボタン配置）
   ============================================ */

/* ── PC: normal 画像（180px）──
   横並び: 画像左 + テキスト右
   ボタン: テキスト列内 底揃え
   ※ !important: WordPressテーマCSS（.entry-content 等）による上書き防止
   ──────────────────────────── */
.storelab-img-normal .storelab-inner {
    display: flex !important;
    flex-direction: row !important;
    gap: 16px !important;
    padding: 20px !important;
    align-items: stretch !important;
}
.storelab-img-normal .storelab-image {
    flex-shrink: 0 !important;
    width: 180px !important;
}
.storelab-img-normal .storelab-image img {
    width: 100% !important;
    height: auto !important;
    max-height: 180px !important;
    border-radius: 10px !important;
    display: block !important;
    object-fit: contain !important;
}
.storelab-img-normal .storelab-image--svg svg {
    width: 100% !important;
    height: auto !important;
    max-height: 180px !important;
    border-radius: 10px !important;
    display: block !important;
}
.storelab-img-normal .storelab-content {
    flex: 1 !important;
    min-width: 0 !important;
    display: flex !important;
    flex-direction: column !important;
}
/* ボタンをコンテンツ列の底に揃える */
.storelab-img-normal .storelab-buttons {
    margin-top: auto !important;
    display: flex !important;
    flex-direction: row !important;
    gap: 6px !important;
    flex-wrap: wrap !important;
}
.storelab-img-normal .storelab-btn-wrap {
    flex: 1 1 0 !important;
    min-width: 0 !important;
}

/* ── PC: large 画像（220px）──
   横並び: 画像左 + テキスト右
   ボタン: 外側下に横並び
   ※ !important: WordPressテーマCSS上書き防止
   ──────────────────────────── */
.storelab-img-large .storelab-inner {
    display: flex !important;
    flex-direction: row !important;
    gap: 16px !important;
    padding: 20px 20px 0 !important;
    align-items: flex-start !important;
}
.storelab-img-large .storelab-image {
    flex-shrink: 0 !important;
    width: 220px !important;
}
.storelab-img-large .storelab-image img {
    width: 100% !important;
    height: auto !important;
    max-height: 220px !important;
    border-radius: 10px !important;
    display: block !important;
    object-fit: contain !important;
}
.storelab-img-large .storelab-image--svg svg {
    width: 100% !important;
    height: auto !important;
    max-height: 220px !important;
    border-radius: 10px !important;
    display: block !important;
}
.storelab-img-large .storelab-content {
    flex: 1 !important;
    min-width: 0 !important;
}
/* ボタンは .storelab-box の直下（PHP側で .storelab-inner の外に配置） */
.storelab-img-large > .storelab-buttons {
    display: flex !important;
    flex-direction: row !important;
    gap: 6px !important;
    flex-wrap: wrap !important;
    padding: 0 20px 20px !important;
    margin-top: 12px !important;
}
.storelab-img-large > .storelab-buttons .storelab-btn-wrap {
    flex: 1 1 0 !important;
    min-width: 0 !important;
}

/* ── 画像配置: 右寄せ（PC のみ）── */
.storelab-img-right .storelab-inner {
    flex-direction: row-reverse !important;
}

/* ============================================
   Typography
   ============================================ */
.storelab-title { font-size: 20px; font-weight: 800; color: var(--storelab-text-heading); margin: 0 0 4px; line-height: 1.35; }
.storelab-subtitle { font-size: 14px; color: var(--storelab-text-sub); margin: 0 0 4px; line-height: 1.4; }
.storelab-review-link { font-size: 11px; color: var(--storelab-text-sub); text-decoration: none; display: inline-block; margin-bottom: 4px; }
.storelab-review-link:hover { color: var(--storelab-amazon); text-decoration: underline; }
.storelab-desc { font-size: 13px; color: var(--storelab-text-sub); margin-bottom: 8px; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }

/* ============================================
   Price
   ============================================ */
.storelab-price-area { display: flex; align-items: baseline; gap: 6px; flex-wrap: wrap; margin-bottom: 12px; line-height: 1.3; }
.storelab-discount { display: inline-block; background: #cc0c39; color: #fff; font-size: 13px; font-weight: 700; padding: 2px 7px; border-radius: 4px; letter-spacing: -0.02em; }
.storelab-sale-price { font-size: 20px; font-weight: 800; color: #cc0c39; letter-spacing: -0.02em; }
.storelab-original-price { font-size: 13px; color: #86868b; text-decoration: line-through; }
.storelab-current-price { font-size: 19px; font-weight: 900; color: var(--storelab-text-heading); }
.storelab-price-note { display: block; width: 100%; font-size: 10px; color: var(--storelab-text-muted); margin-top: 2px; }

/* 価格変動インジケーター */
.storelab-price-change { display: inline-block; font-size: 12px; font-weight: 700; padding: 2px 8px; border-radius: 4px; line-height: 1.4; animation: storelab-price-pulse 2s ease-in-out infinite; }
.storelab-price-down { color: #fff; background: linear-gradient(135deg, #0c8a0c, #10b010); }
.storelab-price-up { color: #cc0c39; background: rgba(204,12,57,0.1); animation: none; }
@keyframes storelab-price-pulse { 0%,100% { opacity: 1; } 50% { opacity: .75; } }

/* ============================================
   Coupon
   ============================================ */
.storelab-coupon { margin-bottom: 12px; }
.storelab-coupon-note { display: block; font-size: 12px; color: var(--storelab-text-sub); margin-bottom: 4px; }
.storelab-coupon-code { display: inline-flex; align-items: center; gap: 6px; background: #fef9e7; border: 1px dashed #e6c200; border-radius: 6px; padding: 6px 10px; font-size: 13px; max-width: 100%; }
.storelab-coupon-label { font-weight: 600; color: #b08c00; white-space: nowrap; }
.storelab-coupon-value { font-weight: 700; color: #1a202c; letter-spacing: 0.06em; font-size: 14px; background: none; padding: 0; }
.storelab-coupon-copy { display: inline-block; background: #ff9900; color: #fff; border: none; border-radius: 4px; padding: 3px 10px; font-size: 11px; font-weight: 700; cursor: pointer; transition: background 0.2s; white-space: nowrap; font-family: inherit; line-height: 1.4; }
.storelab-coupon-copy:hover { background: #e08800; }
.storelab-coupon-copy.is-copied { background: #0c8a0c; }

/* クーポンボタン */
.storelab-btn-coupon { position: relative; border: 2px dashed rgba(255,255,255,0.5) !important; }
.storelab-btn-coupon .storelab-btn-coupon-icon { margin-right: 4px; font-size: 15px; }
.storelab-btn-coupon .storelab-btn-coupon-label { display: inline; }
.storelab-btn-coupon.is-copied { background-color: #0c8a0c !important; border-style: solid !important; border-color: rgba(255,255,255,0.4) !important; }
.storelab-btn-coupon.is-copied .storelab-btn-coupon-icon { display: none; }
.storelab-btn-coupon.is-copied .storelab-btn-coupon-label { display: none; }
.storelab-btn-coupon.is-copied::after { content: 'コピー済み ✓'; font-size: 13px; font-weight: 700; }

/* ============================================
   セール表示
   ============================================ */
.storelab-sale { background: linear-gradient(135deg, #cc0c39, #e8244a); color: #fff; text-align: center; padding: 7px 16px; font-size: 13px; font-weight: 700; letter-spacing: 0.04em; position: relative; overflow: hidden; }
@keyframes storelab-shine { from { transform: translateX(-200%); } to { transform: translateX(200%); } }

.storelab-btn-sale-wrap { position: relative; }
.storelab-btn-sale-badge { position: absolute; top: -8px; right: -6px; background: #cc0c39; color: #fff; font-size: 10px; font-weight: 700; padding: 2px 6px; border-radius: 3px; z-index: 1; }

.storelab-btn-cheapest-wrap { position: relative; }
.storelab-btn-cheapest-badge { position: absolute; top: -8px; left: -6px; background: #0c8a0c; color: #fff; font-size: 10px; font-weight: 700; padding: 2px 6px; border-radius: 3px; z-index: 1; }

/* ============================================
   Buttons
   ============================================ */
.storelab-buttons { display: flex !important; flex-direction: column !important; gap: 8px !important; }
.storelab-btn-wrap { display: flex !important; flex-direction: column !important; }

/* ── ボタン基本（テーマ上書き完全防止） ── */
.storelab-box .storelab-buttons a.storelab-btn,
.storelab-box .storelab-buttons a.storelab-btn:link,
.storelab-box .storelab-buttons a.storelab-btn:visited,
.storelab-box .storelab-buttons a.storelab-btn:hover,
.storelab-box .storelab-buttons a.storelab-btn:active,
a.storelab-btn,
a.storelab-btn:link,
a.storelab-btn:visited,
a.storelab-btn:hover {
    display: block !important;
    text-align: center !important;
    padding: 10px 8px !important;
    border-radius: var(--storelab-btn-radius, 6px) !important;
    color: #fff !important;
    font-size: 12px !important;
    font-weight: 700 !important;
    text-decoration: none !important;
    transition: opacity 0.2s, transform 0.15s, box-shadow 0.2s !important;
    cursor: pointer !important;
    border: none !important;
    line-height: 1.4 !important;
    position: relative !important;
    overflow: hidden !important;
    background-image: none !important;
    box-shadow: 0 2px 4px rgba(0,0,0,.1) !important;
    letter-spacing: normal !important;
    text-indent: 0 !important;
    text-transform: none !important;
}
.storelab-box a.storelab-btn:hover { opacity: 1 !important; transform: translateY(-2px) !important; box-shadow: 0 4px 12px rgba(0,0,0,.18) !important; }
.storelab-box a.storelab-btn:active { transform: scale(0.98) translateY(0) !important; box-shadow: 0 1px 3px rgba(0,0,0,.1) !important; }

/* ボタンテキスト */
.storelab-btn .storelab-btn-text {
    color: #fff !important;
    display: inline !important;
    font-size: 12px !important;
    font-weight: 700 !important;
    text-decoration: none !important;
    visibility: visible !important;
    opacity: 1 !important;
}

/* ショップ別デフォルトカラー（CSS変数フォールバック）
   ユーザーカスタム色は inline style="--slb-color:#xxx" で上書きされる */
.storelab-box a.storelab-btn-amazon  { --slb-color: #f59300; }
.storelab-box a.storelab-btn-rakuten { --slb-color: #cc0000; }
.storelab-box a.storelab-btn-yahoo   { --slb-color: #3d7af5; }
.storelab-box a.storelab-btn-mercari { --slb-color: #e50211; }

/* Filled — CSS変数ベースでカラー適用 */
.storelab-box a.storelab-btn { background-color: var(--slb-color, #999) !important; }

/* Outline — border + text を CSS変数で着色 */
.storelab-box a.storelab-btn.storelab-btn-outline {
    background: transparent !important;
    border: 2px solid var(--slb-color, #999) !important;
    color: var(--slb-color, #999) !important;
    box-shadow: none !important;
}
.storelab-box a.storelab-btn.storelab-btn-outline:hover { opacity: 1 !important; background: rgba(0,0,0,.04) !important; box-shadow: none !important; }
.storelab-box a.storelab-btn.storelab-btn-outline .storelab-btn-text { color: inherit !important; }

/* Gradient — グラデーション背景 + 光沢 + 色付きシャドウ */
.storelab-box a.storelab-btn.storelab-btn-gradient {
    position: relative !important;
    overflow: hidden !important;
    transition: all 0.3s cubic-bezier(.22,1,.36,1) !important;
}
.storelab-box a.storelab-btn.storelab-btn-gradient::before {
    content: '' !important;
    position: absolute !important;
    inset: 0 !important;
    background: linear-gradient(180deg, rgba(255,255,255,.2) 0%, transparent 40%) !important;
    pointer-events: none !important;
    z-index: 1 !important;
}
.storelab-box a.storelab-btn.storelab-btn-gradient:hover {
    transform: translateY(-2px) !important;
    filter: brightness(1.05) !important;
}
.storelab-box a.storelab-btn.storelab-btn-gradient .storelab-btn-text {
    position: relative !important;
    z-index: 2 !important;
}
/* 透かしアイコン */
.storelab-btn-watermark {
    position: absolute !important;
    right: 12px !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    width: 28px !important;
    height: 28px !important;
    opacity: 0.2 !important;
    pointer-events: none !important;
    z-index: 0 !important;
    color: #fff !important;
}
.storelab-btn-watermark svg { width: 100% !important; height: 100% !important; display: block !important; }

/* マイクロコピー */
.storelab-microcopy { display: block; text-align: center; font-size: 10px; color: var(--storelab-text-sub); margin-top: 3px; line-height: 1.3; }

/* Out of Stock */
.storelab-box a.storelab-btn.storelab-btn-oos { background-color: #b0b8c1 !important; cursor: not-allowed; position: relative; opacity: 0.75; }
.storelab-box a.storelab-btn.storelab-btn-oos:hover { opacity: 0.75; transform: none; }
.storelab-btn-oos::before { content: ""; }

/* Credit */

/* ============================================
   Inline Shortcodes ([storelab-btn], [storelab-img], [storelab-link])
   ============================================ */

/* ── Inline Button ── */
.storelab-inline-btn { display: inline-block; vertical-align: middle; }
.storelab-inline-btn__link {
    display: inline-block; padding: 6px 16px; border-radius: 6px;
    color: #fff; font-size: inherit; font-weight: 700; line-height: 1.4;
    text-decoration: none; cursor: pointer;
    transition: opacity .2s, filter .2s;
}
.storelab-inline-btn__link:hover { opacity: .85; filter: brightness(1.08); text-decoration: none; }

/* ── Inline Image ── */
.storelab-inline-img { display: inline-block; vertical-align: middle; }
.storelab-inline-img__link { display: inline-block; line-height: 0; cursor: pointer; transition: opacity .2s; }
.storelab-inline-img__link:hover { opacity: .8; }
.storelab-inline-img__image { border-radius: 4px; vertical-align: middle; }

/* ── Inline Text Link ── */
.storelab-inline-link { /* wrapper: 継承に影響しない */ }
.storelab-inline-link__anchor {
    text-decoration: underline; text-underline-offset: 2px;
    cursor: pointer; transition: opacity .2s;
}
.storelab-inline-link__anchor:hover { opacity: .7; text-decoration: underline; }

/* Glass Chip D credit */
.storelab-credit { display: flex; align-items: center; justify-content: flex-end; gap: 5px; margin-top: 8px; padding: 0 20px 12px; }
.storelab-credit-pb { font-size: 6px; font-weight: 500; letter-spacing: 0.08em; text-transform: uppercase; line-height: 1; color: #999; opacity: .45; }
.storelab-credit a { display: inline-flex; align-items: center; gap: 5px; padding: 4px 10px 4px 5px; border-radius: 20px; background: rgba(139,92,246,.06); border: 1px solid rgba(139,92,246,.1); color: #8b8ba0; text-decoration: none; transition: all .3s; line-height: 1; }
.storelab-credit a:hover { background: rgba(139,92,246,.1); border-color: rgba(139,92,246,.2); color: #6d28d9; text-decoration: none; }
.storelab-credit-icon-wrap { width: 18px; height: 18px; border-radius: 50%; background: rgba(139,92,246,.1); display: flex; align-items: center; justify-content: center; flex-shrink: 0; transition: background .3s; }
.storelab-credit a:hover .storelab-credit-icon-wrap { background: rgba(139,92,246,.18); }
.storelab-credit-icon { width: 11px; height: 11px; color: #8b5cf6; flex-shrink: 0; display: block; }
.storelab-credit-name { font-size: 11px; font-weight: 700; letter-spacing: 0.02em; line-height: 1; }

/* ============================================
   イベントバナー
   ============================================ */
.storelab-event-banner { position: relative; padding: 12px 16px; text-align: center; font-weight: 700; letter-spacing: 0.04em; overflow: hidden; }
.storelab-event-banner::before { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg, transparent 0%, rgba(255,255,255,0.2) 50%, transparent 100%); animation: storelab-shine 3s ease-in-out infinite; }
.storelab-event-name { font-size: 16px; font-weight: 800; position: relative; z-index: 1; }
.storelab-event-sub { font-size: 11px; opacity: 0.9; margin-top: 2px; position: relative; z-index: 1; font-weight: 600; }
.is-event { border-style: solid; }

.storelab-event-prime-day { background: linear-gradient(135deg, #00a4e4, #004f9a); color: #fff; }
.storelab-event-prime-day .storelab-event-name::before { content: '⚡ '; }
.storelab-event-prime-day .storelab-event-name::after { content: ' ⚡'; }
.storelab-event-black-friday { background: linear-gradient(135deg, #1a1a1a, #333); color: #fff; }
.storelab-event-black-friday .storelab-event-name::before { content: '🏷️ '; }
.storelab-event-new-life { background: linear-gradient(135deg, #ff9900, #ff6f00); color: #fff; }
.storelab-event-new-life .storelab-event-name::before { content: '🌸 '; }
.storelab-event-new-life .storelab-event-name::after { content: ' 🌸'; }
.storelab-event-rakuten-super { background: linear-gradient(135deg, #bf0000, #e50012); color: #fff; }
.storelab-event-rakuten-super .storelab-event-name::before { content: '🔥 '; }
.storelab-event-rakuten-super .storelab-event-name::after { content: ' 🔥'; }
.storelab-event-rakuten-marathon { background: linear-gradient(135deg, #e50012, #ff4466); color: #fff; }
.storelab-event-rakuten-marathon .storelab-event-name::before { content: '🏃 '; }
.storelab-event-rakuten-marathon .storelab-event-name::after { content: ' 🏃'; }
.storelab-event-paypay { background: linear-gradient(135deg, #ff0033, #ff4466); color: #fff; }
.storelab-event-paypay .storelab-event-name::before { content: '🎉 '; }
.storelab-event-paypay .storelab-event-name::after { content: ' 🎉'; }
.storelab-event-custom { background: linear-gradient(135deg, #6c5ce7, #a855f7); color: #fff; }
.storelab-event-custom .storelab-event-name::before { content: '✨ '; }
.storelab-event-custom .storelab-event-name::after { content: ' ✨'; }

/* ============================================
   Skin: Standard（デフォルト）
   ============================================ */
.storelab-skin-standard {
    background: var(--storelab-bg);
    border: 1px solid var(--storelab-border);
    border-radius: var(--storelab-radius);
    box-shadow: var(--storelab-shadow);
}

/* ============================================
   Skin: Floating
   グラデーションボーダー + 浮遊シャドウ + ガラス反射ボタン
   ============================================ */
.storelab-skin-floating {
    position: relative;
    background: linear-gradient(145deg, #fff, #f8f9fc);
    border-radius: 14px;
    box-shadow: 0 4px 24px rgba(0, 0, 0, .08);
    border: none;
    z-index: 0;
}
.storelab-skin-floating::before {
    content: '';
    position: absolute;
    inset: -1.5px;
    border-radius: 16px;
    background: linear-gradient(135deg, rgba(108,92,231,.2), rgba(59,130,246,.14), rgba(52,211,153,.14));
    z-index: -1;
}
.storelab-skin-floating .storelab-review-link { color: #6c5ce7; }
.storelab-skin-floating .storelab-current-price { color: #6c5ce7; }
.storelab-skin-floating .storelab-image img { border-radius: 14px; }
/* Floating: Filled */
.storelab-box.storelab-skin-floating a.storelab-btn { position: relative; overflow: hidden; }
.storelab-box.storelab-skin-floating a.storelab-btn::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(255,255,255,.18), transparent); pointer-events: none; }
.storelab-box.storelab-skin-floating a.storelab-btn-amazon  { background: linear-gradient(135deg, #ffb340, #f59300) !important; }
.storelab-box.storelab-skin-floating a.storelab-btn-rakuten { background: linear-gradient(135deg, #ff2940, #cc0000) !important; }
.storelab-box.storelab-skin-floating a.storelab-btn-yahoo   { background: linear-gradient(135deg, #6da3ff, #3d7af5) !important; }
.storelab-box.storelab-skin-floating a.storelab-btn-mercari  { background: linear-gradient(135deg, #ff4455, #e50211) !important; }
/* Floating: Outline */
.storelab-box.storelab-skin-floating.storelab-style-outline a.storelab-btn { background: rgba(0,0,0,.02) !important; }
.storelab-box.storelab-skin-floating.storelab-style-outline a.storelab-btn::after { display: none; }
.storelab-box.storelab-skin-floating.storelab-style-outline a.storelab-btn-amazon  { color: #ff9900 !important; border: 2px solid rgba(255,153,0,.4) !important; }
.storelab-box.storelab-skin-floating.storelab-style-outline a.storelab-btn-rakuten { color: #bf0000 !important; border: 2px solid rgba(191,0,0,.4) !important; }
.storelab-box.storelab-skin-floating.storelab-style-outline a.storelab-btn-yahoo   { color: #4c6ef5 !important; border: 2px solid rgba(76,110,245,.4) !important; }
.storelab-box.storelab-skin-floating.storelab-style-outline a.storelab-btn-mercari  { color: #ff0211 !important; border: 2px solid rgba(255,2,17,.4) !important; }
.storelab-box.storelab-skin-floating.storelab-style-outline a.storelab-btn .storelab-btn-text { color: inherit !important; }

/* ============================================
   Skin: Glass（Pro）
   パープルグラデ外周 + グラスモーフィズム
   ============================================ */
.storelab-skin-glass {
    position: relative;
    background: rgba(255,255,255,.92);
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
    border-radius: 14px;
    border: none;
    box-shadow: none;
    z-index: 0;
}
.storelab-skin-glass::before {
    content: '';
    position: absolute;
    inset: -2px;
    border-radius: 16px;
    background: linear-gradient(135deg, #667eea, #764ba2);
    z-index: -1;
}
.storelab-skin-glass::after {
    content: '';
    position: absolute;
    width: 200px;
    height: 200px;
    background: radial-gradient(circle, rgba(255,255,255,.15), transparent);
    top: -60px;
    right: -60px;
    border-radius: 50%;
    pointer-events: none;
}
.storelab-skin-glass .storelab-review-link { color: #667eea; }
.storelab-skin-glass .storelab-current-price {
    background: linear-gradient(135deg, #667eea, #764ba2);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}
.storelab-skin-glass .storelab-sale-price { color: #764ba2; }
.storelab-skin-glass .storelab-image img { border-radius: 14px; box-shadow: 0 8px 24px rgba(0,0,0,.08); }
/* Glass: Filled */
.storelab-box.storelab-skin-glass a.storelab-btn { box-shadow: 0 2px 8px rgba(0,0,0,.08) !important; }
/* Glass: Outline */
.storelab-box.storelab-skin-glass.storelab-style-outline a.storelab-btn { background: rgba(255,255,255,.6) !important; backdrop-filter: blur(10px); box-shadow: 0 2px 8px rgba(0,0,0,.04) !important; }
.storelab-box.storelab-skin-glass.storelab-style-outline a.storelab-btn-amazon  { color: #ff9900 !important; border: 1.5px solid rgba(255,153,0,.3) !important; }
.storelab-box.storelab-skin-glass.storelab-style-outline a.storelab-btn-rakuten { color: #bf0000 !important; border: 1.5px solid rgba(191,0,0,.3) !important; }
.storelab-box.storelab-skin-glass.storelab-style-outline a.storelab-btn-yahoo   { color: #4c6ef5 !important; border: 1.5px solid rgba(76,110,245,.3) !important; }
.storelab-box.storelab-skin-glass.storelab-style-outline a.storelab-btn-mercari  { color: #ff0211 !important; border: 1.5px solid rgba(255,2,17,.3) !important; }
.storelab-box.storelab-skin-glass.storelab-style-outline a.storelab-btn .storelab-btn-text { color: inherit !important; }

/* ============================================
   Skin: Editorial（Pro）
   雑誌風 + モノトーン + 角張りデザイン
   ============================================ */
.storelab-skin-editorial {
    background: #fff;
    border-radius: 0;
    border: none;
    border-top: 3px solid #1d1d1f;
    border-bottom: 1px solid #ddd;
    box-shadow: none;
}
.storelab-skin-editorial .storelab-subtitle { font-style: italic; color: #999; }
.storelab-skin-editorial .storelab-review-link { color: #555; }
.storelab-skin-editorial .storelab-title { letter-spacing: -0.02em; }
.storelab-skin-editorial .storelab-microcopy { color: #999; }
.storelab-skin-editorial .storelab-image img { border-radius: 0; }
/* Editorial: Filled — 全ボタン黒一色 */
.storelab-box.storelab-skin-editorial a.storelab-btn {
    background: #1d1d1f !important;
    color: #fff !important;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    font-size: 12px !important;
    border-radius: 0 !important;
}
.storelab-box.storelab-skin-editorial a.storelab-btn .storelab-btn-text { color: #fff !important; }
/* Editorial: Outline */
.storelab-box.storelab-skin-editorial.storelab-style-outline a.storelab-btn {
    background: transparent !important;
    border: 2px solid #1d1d1f !important;
    color: #1d1d1f !important;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    font-size: 12px !important;
    border-radius: 0 !important;
}
.storelab-box.storelab-skin-editorial.storelab-style-outline a.storelab-btn .storelab-btn-text { color: #1d1d1f !important; }

/* ============================================
   Skin: Neon Dark（Pro）
   ダークテーマ + ネオングロー
   ============================================ */
.storelab-skin-neon-dark {
    background: #13131a;
    border-radius: 16px;
    border: 1px solid rgba(255,255,255,.06);
    box-shadow: none;
    color: #e0e0e0;
    position: relative;
    overflow: hidden;
}
.storelab-skin-neon-dark::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 1px;
    background: linear-gradient(90deg, transparent, rgba(108,92,231,.5), rgba(59,130,246,.5), transparent);
}
/* テキスト色上書き */
.storelab-skin-neon-dark .storelab-title { color: #fff; }
.storelab-skin-neon-dark .storelab-subtitle { color: #555; }
.storelab-skin-neon-dark .storelab-review-link { color: #a78bfa; }
.storelab-skin-neon-dark .storelab-current-price {
    background: linear-gradient(135deg, #a78bfa, #60a5fa);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}
.storelab-skin-neon-dark .storelab-sale-price { color: #ff5555; }
.storelab-skin-neon-dark .storelab-price-note { color: #555; }
.storelab-skin-neon-dark .storelab-microcopy { color: #f59e0b; }
.storelab-skin-neon-dark .storelab-credit-pb { color: #8b7fc8; opacity: .7; }
.storelab-skin-neon-dark .storelab-credit a { background: rgba(167,139,250,.08); border-color: rgba(167,139,250,.12); color: #7a73a8; }
.storelab-skin-neon-dark .storelab-credit a:hover { background: rgba(167,139,250,.12); border-color: rgba(167,139,250,.3); color: #a78bfa; box-shadow: 0 0 14px rgba(139,92,246,.1); }
.storelab-skin-neon-dark .storelab-credit-icon-wrap { background: rgba(167,139,250,.15); }
.storelab-skin-neon-dark .storelab-credit-icon { color: #a78bfa; }
.storelab-skin-neon-dark .storelab-credit a:hover .storelab-credit-icon-wrap { background: rgba(167,139,250,.25); }
.storelab-skin-neon-dark .storelab-image img { border-radius: 14px; border: 1px solid rgba(255,255,255,.06); }
/* クーポン */
.storelab-skin-neon-dark .storelab-coupon-code { background: rgba(255,255,255,.05); border-color: rgba(255,255,255,.1); }
.storelab-skin-neon-dark .storelab-coupon-label { color: #f59e0b; }
.storelab-skin-neon-dark .storelab-coupon-value { color: #e0e0e0; }
/* Neon Dark: Filled — 半透明カラー背景 */
.storelab-box.storelab-skin-neon-dark a.storelab-btn { border: 1px solid rgba(255,255,255,.08) !important; box-shadow: none !important; }
.storelab-box.storelab-skin-neon-dark a.storelab-btn-amazon  { background: rgba(255,153,0,.15) !important; color: #ffad33 !important; border-color: rgba(255,153,0,.25) !important; }
.storelab-box.storelab-skin-neon-dark a.storelab-btn-rakuten { background: rgba(191,0,0,.15) !important; color: #ff5555 !important; border-color: rgba(191,0,0,.25) !important; }
.storelab-box.storelab-skin-neon-dark a.storelab-btn-yahoo   { background: rgba(76,110,245,.15) !important; color: #7b9cf7 !important; border-color: rgba(76,110,245,.25) !important; }
.storelab-box.storelab-skin-neon-dark a.storelab-btn-mercari  { background: rgba(255,2,17,.15) !important; color: #ff5555 !important; border-color: rgba(255,2,17,.25) !important; }
.storelab-box.storelab-skin-neon-dark a.storelab-btn .storelab-btn-text { color: inherit !important; }
/* Neon Dark: Outline — ネオングロー */
.storelab-box.storelab-skin-neon-dark.storelab-style-outline a.storelab-btn { background: transparent !important; text-shadow: 0 0 8px currentColor; }
.storelab-box.storelab-skin-neon-dark.storelab-style-outline a.storelab-btn-amazon  { color: #ffad33 !important; border: 1.5px solid #ffad33 !important; }
.storelab-box.storelab-skin-neon-dark.storelab-style-outline a.storelab-btn-rakuten { color: #ff5555 !important; border: 1.5px solid #ff5555 !important; }
.storelab-box.storelab-skin-neon-dark.storelab-style-outline a.storelab-btn-yahoo   { color: #7b9cf7 !important; border: 1.5px solid #7b9cf7 !important; }
.storelab-box.storelab-skin-neon-dark.storelab-style-outline a.storelab-btn-mercari  { color: #ff5555 !important; border: 1.5px solid #ff5555 !important; }
.storelab-box.storelab-skin-neon-dark.storelab-style-outline a.storelab-btn .storelab-btn-text { color: inherit !important; }
/* Neon Dark: Gradient — インラインgradient優先 */
.storelab-box.storelab-skin-neon-dark.storelab-style-gradient a.storelab-btn.storelab-btn-gradient { border: none !important; }
.storelab-box.storelab-skin-neon-dark.storelab-style-gradient a.storelab-btn.storelab-btn-gradient .storelab-btn-text { color: #fff !important; }

/* ============================================
   Skin: Terminal（Pro）
   GitHub風ターミナル + モノスペース
   ============================================ */
.storelab-skin-terminal {
    background: #0d1117;
    border-radius: 12px;
    border: 1px solid #30363d;
    box-shadow: none;
    color: #c9d1d9;
    font-family: 'SF Mono', Consolas, 'Courier New', monospace;
    position: relative;
    overflow: hidden;
}
.storelab-skin-terminal::before {
    content: '● ● ●';
    position: absolute;
    top: 10px; left: 14px;
    font-size: 8px;
    letter-spacing: 4px;
    color: #484f58;
    z-index: 2;
}
.storelab-skin-terminal .storelab-inner { padding-top: 32px !important; }
/* テキスト色 */
.storelab-skin-terminal .storelab-title { color: #58a6ff; font-family: inherit; font-size: 16px; }
.storelab-skin-terminal .storelab-subtitle { color: #484f58; font-family: inherit; }
.storelab-skin-terminal .storelab-review-link { color: #3fb950; font-family: inherit; }
.storelab-skin-terminal .storelab-current-price { color: #ffa657; font-family: inherit; }
.storelab-skin-terminal .storelab-sale-price { color: #ff7b72; font-family: inherit; }
.storelab-skin-terminal .storelab-price-note { color: #484f58; }
.storelab-skin-terminal .storelab-microcopy { color: #d2a8ff; font-family: inherit; }
.storelab-skin-terminal .storelab-credit-pb { color: #7a8898; opacity: .7; font-family: inherit; }
.storelab-skin-terminal .storelab-credit a { background: rgba(88,166,255,.06); border-color: rgba(88,166,255,.14); color: #68788a; font-family: inherit; }
.storelab-skin-terminal .storelab-credit a:hover { background: rgba(88,166,255,.1); border-color: rgba(88,166,255,.25); color: #79c0ff; }
.storelab-skin-terminal .storelab-credit-icon-wrap { background: rgba(88,166,255,.12); }
.storelab-skin-terminal .storelab-credit-icon { color: #58a6ff; }
.storelab-skin-terminal .storelab-credit a:hover .storelab-credit-icon-wrap { background: rgba(88,166,255,.2); }
.storelab-skin-terminal .storelab-credit-name { font-family: inherit; }
.storelab-skin-terminal .storelab-image img { border-radius: 8px; background: #161b22; border: 1px solid #30363d; }
/* クーポン */
.storelab-skin-terminal .storelab-coupon-code { background: #161b22; border-color: #30363d; font-family: inherit; }
.storelab-skin-terminal .storelab-coupon-label { color: #ffa657; }
.storelab-skin-terminal .storelab-coupon-value { color: #c9d1d9; font-family: inherit; }
/* Terminal: Filled */
.storelab-box.storelab-skin-terminal a.storelab-btn { font-family: inherit; background: #161b22 !important; border: 1px solid !important; box-shadow: none !important; }
.storelab-box.storelab-skin-terminal a.storelab-btn-amazon  { color: #ffa657 !important; border-color: #ffa657 !important; }
.storelab-box.storelab-skin-terminal a.storelab-btn-rakuten { color: #ff7b72 !important; border-color: #ff7b72 !important; }
.storelab-box.storelab-skin-terminal a.storelab-btn-yahoo   { color: #79c0ff !important; border-color: #79c0ff !important; }
.storelab-box.storelab-skin-terminal a.storelab-btn-mercari  { color: #c9d1d9 !important; border-color: #484f58 !important; }
.storelab-box.storelab-skin-terminal a.storelab-btn .storelab-btn-text { color: inherit !important; font-family: inherit; }
/* Terminal: Outline — dashed ボーダー */
.storelab-box.storelab-skin-terminal.storelab-style-outline a.storelab-btn { background: transparent !important; border-style: dashed !important; border-width: 1.5px !important; }
.storelab-box.storelab-skin-terminal.storelab-style-outline a.storelab-btn-amazon  { color: #ffa657 !important; border-color: rgba(255,166,87,.4) !important; }
.storelab-box.storelab-skin-terminal.storelab-style-outline a.storelab-btn-rakuten { color: #ff7b72 !important; border-color: rgba(255,123,114,.4) !important; }
.storelab-box.storelab-skin-terminal.storelab-style-outline a.storelab-btn-yahoo   { color: #79c0ff !important; border-color: rgba(121,192,255,.4) !important; }
.storelab-box.storelab-skin-terminal.storelab-style-outline a.storelab-btn-mercari  { color: #c9d1d9 !important; border-color: rgba(72,79,88,.6) !important; }
.storelab-box.storelab-skin-terminal.storelab-style-outline a.storelab-btn .storelab-btn-text { color: inherit !important; }
/* Terminal: Gradient — インラインgradient優先 */
.storelab-box.storelab-skin-terminal.storelab-style-gradient a.storelab-btn.storelab-btn-gradient { border: none !important; }
.storelab-box.storelab-skin-terminal.storelab-style-gradient a.storelab-btn.storelab-btn-gradient .storelab-btn-text { color: #fff !important; }

/* ============================================
   SP レイアウト（768px 以下）
   Normal: 横並び維持（画像80px + テキスト右）
   Large:  カード型（画像上160px → テキスト → 縦積みボタン）
   ============================================ */
@media (max-width: 768px) {
    .storelab-title { font-size: 15px !important; }
    .storelab-subtitle { font-size: 11px !important; }
    .storelab-review-link { font-size: 10px !important; }
    .storelab-current-price { font-size: 15px !important; }
    .storelab-price-note { font-size: 9px !important; }
    .storelab-microcopy { font-size: 9px !important; }
    .storelab-box a.storelab-btn { padding: 11px 8px !important; font-size: 12px !important; }
    .storelab-btn .storelab-btn-text { font-size: 12px !important; }

    /* ── Normal: カード型（画像100px上中央→テキスト→ボタン縦積み）── */
    .storelab-img-normal .storelab-inner {
        display: flex !important;
        flex-direction: column !important;
        padding: 0 !important;
        gap: 0 !important;
        align-items: stretch !important;
    }
    .storelab-img-normal .storelab-image {
        flex-shrink: 0 !important;
        width: 100% !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        padding: 14px !important;
    }
    .storelab-img-normal .storelab-image img {
        width: 100px !important;
        height: 100px !important;
        max-height: 100px !important;
        border-radius: 10px !important;
    }
    .storelab-img-normal .storelab-content {
        flex: 1 !important;
        min-width: 0 !important;
        display: flex !important;
        flex-direction: column !important;
        padding: 12px 14px 0 !important;
    }
    .storelab-img-normal .storelab-buttons {
        flex-direction: column !important;
        gap: 7px !important;
        margin-top: 8px !important;
        padding: 10px 14px 14px !important;
    }
    .storelab-img-normal .storelab-btn-wrap {
        flex: none !important;
        width: 100% !important;
    }

    /* ── Large: カード型（画像160px上中央→テキスト→ボタン縦積み）── */
    .storelab-img-large .storelab-inner {
        flex-direction: column !important;
        padding: 0 !important;
        gap: 0 !important;
        align-items: stretch !important;
    }
    .storelab-img-large .storelab-image {
        width: 100% !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        padding: 18px !important;
    }
    .storelab-img-large .storelab-image img {
        width: 160px !important;
        height: 160px !important;
        max-height: 160px !important;
        border-radius: 10px !important;
    }

    /* 画像配置: SP ではカード型なので常に column */
    .storelab-img-right.storelab-img-normal .storelab-inner {
        flex-direction: column !important;
    }
    .storelab-img-right.storelab-img-large .storelab-inner {
        flex-direction: column !important;
    }

    /* Large コンテンツ */
    .storelab-img-large .storelab-content {
        padding: 12px 14px 0 !important;
    }

    /* ボタン: Large は縦積みフル幅 */
    .storelab-img-large > .storelab-buttons {
        flex-direction: column !important;
        gap: 7px !important;
        padding: 10px 14px 14px !important;
        margin-top: 0 !important;
    }
    .storelab-img-large > .storelab-buttons .storelab-btn-wrap {
        flex: none !important;
        width: 100% !important;
    }

    /* イベントバナー */
    .storelab-event-banner { padding: 10px 12px !important; }
    .storelab-event-name { font-size: 14px !important; }
    .storelab-event-sub { font-size: 10px !important; }

    /* Credit */
    .storelab-credit { padding: 0 16px 10px !important; }
}

/* ============================================
   Comparison Table（変更なし）
   ============================================ */
.storelab-comparison { margin: 1.5em auto; max-width: 680px; border: 1px solid var(--storelab-border); border-radius: var(--storelab-radius); overflow: hidden; background: var(--storelab-bg); font-family: var(--storelab-font); }
.storelab-comparison-grid { display: grid; gap: 0; }
.storelab-comparison-col { padding: 16px; border-right: 1px solid var(--storelab-border); text-align: center; display: flex; flex-direction: column; align-items: center; }
.storelab-comparison-col:last-child { border-right: none; }
.storelab-comparison-img { width: 80px; height: 80px; margin-bottom: 8px; }
.storelab-comparison-img img { width: 100%; height: 100%; object-fit: contain; border-radius: 4px; }
.storelab-comparison-img--svg { display: flex; align-items: center; justify-content: center; }
.storelab-comparison-img--svg svg { width: 80px; height: 80px; }
.storelab-comparison-title { font-size: 13px; font-weight: 700; margin-bottom: 4px; color: var(--storelab-text-heading); line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.storelab-comparison-sub { font-size: 11px; color: var(--storelab-text-sub); margin-bottom: 4px; }
.storelab-comparison-price { font-size: 15px; font-weight: 800; color: var(--storelab-text-heading); margin-bottom: 8px; }
.storelab-comparison-btn { display: block; padding: 8px 12px; color: #fff !important; text-decoration: none !important; font-size: 12px; font-weight: 600; text-align: center; width: 100%; margin-top: auto; }
.storelab-comparison-btn:hover { opacity: 0.9; }

@media (max-width: 768px) {
    .storelab-comparison-grid { grid-template-columns: 1fr !important; }
    .storelab-comparison-col { border-right: none; border-bottom: 1px solid var(--storelab-border); flex-direction: row; gap: 12px; text-align: left; padding: 12px; }
    .storelab-comparison-col:last-child { border-bottom: none; }
    .storelab-comparison-img { width: 60px; height: 60px; flex-shrink: 0; margin-bottom: 0; }
    .storelab-comparison-btn { width: auto; flex-shrink: 0; }
}

/* ============================================
   Print
   ============================================ */
@media print {
    .storelab-box { box-shadow: none; border: 1px solid #ddd; break-inside: avoid; }
    .storelab-btn { box-shadow: none !important; }
}
