*{box-sizing:border-box}
html{background:#f6f7f8}
body{margin:0;color:#111;background:#f6f7f8;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif}
a{color:inherit}.site-header{height:76px;background:#fff;border-bottom:1px solid #eee}
.header-inner{max-width:1150px;margin:auto;padding:22px 24px;font-size:23px;font-weight:700}.header-inner a{text-decoration:none}
.layout{max-width:1150px;margin:26px auto;display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:22px;padding:0 16px}
.main,.side-column{background:#fff}.main{padding:34px}.side-column{align-self:start;padding:28px 24px}
h1{font-size:36px;font-weight:400;margin:0 0 28px;line-height:1.35}
.ranking-head h2{font-size:22px;margin:0;padding-bottom:10px;border-bottom:3px solid #bf0000}
.ranking-head p{font-size:12px;color:#777;margin:10px 0 18px}
.api-error{padding:16px;margin:16px 0;background:#fff1f1;border:1px solid #efb8b8;border-left:5px solid #bf0000;border-radius:5px;line-height:1.7}
.api-error code{background:#fff;padding:2px 6px}.ranking-list{display:flex;flex-direction:column;gap:10px}
.product-card{min-height:112px;border:1px solid #ddd;border-left:4px solid #aaa;border-radius:8px;display:grid;grid-template-columns:60px 100px minmax(0,1fr) 125px;align-items:center;padding:10px;background:#fff}
.product-card.rank-1{border-left-color:#d9a400}.product-card.rank-2{border-left-color:#999}.product-card.rank-3{border-left-color:#b26a23}
.rank{text-align:center;font-weight:800;color:#555}.rank span{font-size:24px}.rank small{font-size:11px;margin-left:2px}.rank-1 .rank{color:#c79500}
.thumb img{display:block;width:86px;height:86px;object-fit:contain;background:#fafafa}
.product-info h3{font-size:14px;line-height:1.45;margin:0 0 5px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.shop{font-size:10px;color:#888;margin-bottom:6px}.meta{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.rating{color:#e99000;font-size:12px}.reviews{font-size:10px;color:#888}.price{font-size:20px;color:#c40000}.price small{font-size:12px}
.shipping{font-size:9px;color:#c40000;border:1px solid #d70000;border-radius:3px;padding:2px 4px}.points{font-size:9px;background:#fff5d9;color:#9a6a00;border-radius:3px;padding:3px 5px}
.action a{display:block;background:#bf0000;color:#fff;text-align:center;text-decoration:none;font-weight:700;font-size:12px;border-radius:5px;padding:11px 8px}
.updated{font-size:11px;color:#888;text-align:right;margin-top:12px}
.sidebar{border:1px solid #ddd;border-radius:8px;overflow:hidden;box-shadow:0 2px 7px rgba(0,0,0,.06)}
.sidebar-title{background:#bf0000;color:#fff;padding:14px 15px;font-weight:800}
.theme{border-bottom:1px solid #cfd1d3}.theme:last-child{border-bottom:0}.theme-btn{width:100%;border:0;text-align:left;cursor:pointer;display:flex;align-items:center;gap:7px;background:#d7dadd;border-left:5px solid #555;padding:12px 10px;font-size:14px;color:#111}
.theme-btn:hover{background:#c9cdd1;color:#111}.theme-body{display:none;padding:4px 5px;background:#f8f9fa}.theme.open>.theme-body{display:block}.theme.open>.theme-btn .arrow{transform:rotate(90deg)}
.arrow{color:#bf0000;display:inline-block;width:14px;font-size:18px;transition:.15s}
.genre-node{margin:2px 0}.genre-children{display:none;padding-left:8px}.genre-node.open>.genre-children{display:block}
.genre-row{display:grid;grid-template-columns:22px minmax(0,1fr) 18px;align-items:center;min-height:38px;background:#fff;border-left:2px solid #b8d1e5;border-radius:3px}
.depth-1>.genre-row{background:#e5f0fa;border-left:4px solid #3f72a3;color:#183d60;font-weight:800}
.depth-2>.genre-row{background:#f0f6fb;border-left:3px solid #79a7cc;color:#244b6c;font-weight:700}
.genre-row.current{background:#ffe8e8!important;color:#bf0000!important;border-left:4px solid #bf0000!important;font-weight:800}
.genre-toggle{height:100%;min-height:38px;border:0;background:transparent;cursor:pointer;color:#bf0000;font-size:18px;font-weight:800;padding:0}
.genre-node.open>.genre-row>.genre-toggle{transform:rotate(90deg)}.genre-toggle.no-children{transform:none!important;cursor:default}
.genre-link{display:block;padding:9px 6px;text-decoration:none;font-size:14px;line-height:1.45}.genre-link:hover{color:#bf0000}
.genre-loading{font-size:12px;color:#888}.site-footer{max-width:1150px;margin:0 auto;padding:28px 16px 50px;color:#777;font-size:12px}
@media(max-width:900px){.layout{grid-template-columns:1fr}.side-column{order:-1}.main{padding:24px}h1{font-size:28px}}
@media(max-width:650px){.product-card{grid-template-columns:42px 76px minmax(0,1fr);padding:8px}.thumb img{width:68px;height:68px}.action{grid-column:2/4;margin-top:8px}.product-info h3{font-size:13px}.price{font-size:17px}}

.product-image-link{display:block;text-decoration:none}
.product-title-link{color:#111;text-decoration:none}
.product-title-link:hover{color:#bf0000;text-decoration:underline}


/* ============================================================
   v4.3 FINAL - 商品タイトルリンク
============================================================ */

.main .product-info h3 a.product-title-link,
.main .product-info h3 a.product-title-link:link,
.main .product-info h3 a.product-title-link:visited {
    color:#111 !important;
    text-decoration:none !important;
    border-bottom:none !important;
    box-shadow:none !important;
    background-image:none !important;
}

.main .product-info h3 a.product-title-link:hover,
.main .product-info h3 a.product-title-link:focus {
    color:#c90000 !important;
    text-decoration:none !important;
    border-bottom:none !important;
    box-shadow:none !important;
}

.main .product-info h3,
.main .product-info h3 a,
.main .product-info h3 a:hover,
.main .product-info h3 a:focus {
    text-decoration:none !important;
}

.main .product-image-link,
.main .product-image-link:link,
.main .product-image-link:visited,
.main .product-image-link:hover {
    text-decoration:none !important;
    border-bottom:none !important;
    box-shadow:none !important;
}

.main .product-image-link img {
    transition:opacity .15s ease;
}

.main .product-image-link:hover img {
    opacity:.88;
}


/* ============================================================
   v4.3 FINAL - サイドバー
============================================================ */

.side-column .sidebar {
    overflow:hidden;
    width:100%;
    border:1px solid #ddd;
    border-radius:8px;
    background:#fff;
    box-shadow:0 2px 7px rgba(0,0,0,.06);
}

.side-column .sidebar-title {
    display:flex;
    align-items:center;
    gap:7px;
    padding:14px 15px;
    background:#bf0000;
    color:#fff !important;
    font-size:15px;
    font-weight:800;
}

.side-column .sidebar-title * {
    color:#fff !important;
}

.side-column .theme {
    border-bottom:1px solid #c8ccd0;
}

.side-column .theme:last-child {
    border-bottom:0;
}

.side-column .theme > .theme-btn {
    display:flex;
    align-items:center;
    width:100%;
    padding:12px 10px;
    border:0;
    border-left:5px solid #555b60;
    background:#d7dadd !important;
    color:#111 !important;
    text-align:left;
    cursor:pointer;
    font-size:14px;
    font-weight:800;
    box-shadow:none !important;
}

.side-column .theme > .theme-btn:hover,
.side-column .theme > .theme-btn:focus {
    background:#c9cdd1 !important;
    color:#111 !important;
}

.side-column .theme-arrow {
    width:17px;
    flex:0 0 17px;
    color:#bf0000 !important;
    font-size:18px;
    line-height:1;
    transition:transform .15s ease;
}

.side-column .theme.open > .theme-btn > .theme-arrow {
    transform:rotate(90deg);
}

.side-column .theme > .theme-body {
    display:none !important;
    padding:5px;
    background:#f7f8f9;
}

.side-column .theme.open > .theme-body {
    display:block !important;
}


/* ============================================================
   Genre階層 共通
============================================================ */

.side-column .genre-node {
    margin:2px 0;
}

.side-column .genre-node > .genre-children {
    display:none !important;
    padding-left:7px;
}

.side-column .genre-node.open > .genre-children {
    display:block !important;
}

.side-column .genre-row {
    display:grid;
    grid-template-columns:24px minmax(0,1fr) 18px;
    align-items:center;
    min-height:38px;
    border-bottom:1px solid #e7e7e7;
    border-radius:3px;
    transition:background-color .12s ease;
}

.side-column .genre-row:hover {
    background:#fff3f3 !important;
}

.side-column .genre-toggle {
    width:24px;
    min-width:24px;
    height:34px;
    padding:0;
    border:0 !important;
    background:transparent !important;
    color:#bf0000 !important;
    cursor:pointer;
    font-size:18px;
    font-weight:900;
    line-height:34px;
    box-shadow:none !important;
    text-decoration:none !important;
}

.side-column .genre-node.open > .genre-row > .genre-toggle {
    transform:rotate(90deg);
}

.side-column .genre-toggle.no-children {
    transform:none !important;
    cursor:default;
}

.side-column .genre-link,
.side-column .genre-link:link,
.side-column .genre-link:visited {
    display:block;
    min-width:0;
    padding:9px 6px;
    color:#222 !important;
    text-decoration:none !important;
    border-bottom:none !important;
    box-shadow:none !important;
    font-size:14px;
    line-height:1.4;
}

.side-column .genre-link:hover,
.side-column .genre-link:focus {
    color:#bf0000 !important;
    text-decoration:none !important;
}

.side-column .genre-loading {
    padding-right:5px;
    color:#888;
    font-size:11px;
}


/* ============================================================
   第1階層
============================================================ */

.side-column .genre-node.depth-1 > .genre-row {
    margin-top:3px;
    border-left:5px solid #4c91c6 !important;
    background:#e5f0fa !important;
}

.side-column .genre-node.depth-1 > .genre-row > .genre-link {
    padding-left:7px;
    color:#183d60 !important;
    font-weight:800;
}


/* ============================================================
   第2階層
============================================================ */

.side-column .genre-node.depth-2 > .genre-row {
    border-left:4px solid #76abd2 !important;
    background:#eef6fc !important;
}

.side-column .genre-node.depth-2 > .genre-row > .genre-link {
    padding-left:14px;
    color:#244b6c !important;
    font-weight:700;
}


/* ============================================================
   第3階層
============================================================ */

.side-column .genre-node.depth-3 > .genre-row {
    border-left:3px solid #a6cce7 !important;
    background:#f8fbfe !important;
}

.side-column .genre-node.depth-3 > .genre-row > .genre-link {
    padding-left:22px;
    color:#333 !important;
    font-weight:600;
}


/* ============================================================
   第4階層以降
============================================================ */

.side-column .genre-node.depth-4 > .genre-row {
    border-left:2px solid #c0daed !important;
    background:#fff !important;
}
.side-column .genre-node.depth-4 > .genre-row > .genre-link { padding-left:30px; }
.side-column .genre-node.depth-5 > .genre-row > .genre-link { padding-left:38px; }
.side-column .genre-node.depth-6 > .genre-row > .genre-link { padding-left:46px; }
.side-column .genre-node.depth-7 > .genre-row > .genre-link { padding-left:54px; }
.side-column .genre-node.depth-8 > .genre-row > .genre-link { padding-left:62px; }


/* ============================================================
   現在地・現在の経路
============================================================ */

.side-column .genre-node.in-current-path:not(.is-current) > .genre-row {
    box-shadow:inset 2px 0 0 rgba(47,127,185,.18);
}

.side-column .genre-node.is-current > .genre-row,
.side-column .genre-row.current {
    border-left:5px solid #bf0000 !important;
    background:#ffe9e9 !important;
}

.side-column .genre-node.is-current > .genre-row > .genre-link,
.side-column .genre-row.current > .genre-link {
    color:#bf0000 !important;
    font-weight:800 !important;
}


/* ============================================================
   モバイル
============================================================ */

@media screen and (max-width:768px) {
    .side-column .theme > .theme-btn { font-size:15px; }
    .side-column .genre-link { font-size:14px !important; }
}


/* ============================================================
   v4.4 FINAL
   子カテゴリあり＝赤い「›」
   末端カテゴリ＝黒い「・」
   現在選択中の末端＝赤い「・」
============================================================ */

/* 通常の開閉矢印 */
.side-column .genre-toggle:not(.no-children) {
    color:#bf0000 !important;
    font-size:18px !important;
    font-weight:900 !important;
}

/* 末端カテゴリの黒い点 */
.side-column .genre-toggle.no-children,
.side-column .genre-node.terminal > .genre-row > .genre-toggle {
    color:#333 !important;
    font-size:16px !important;
    font-weight:900 !important;
    transform:none !important;
    cursor:default !important;
    opacity:1 !important;
}

/* 現在表示中の末端カテゴリは赤い点 */
.side-column .genre-node.is-current > .genre-row > .genre-toggle.no-children,
.side-column .genre-row.current > .genre-toggle.no-children,
.side-column .genre-node.is-current.terminal > .genre-row > .genre-toggle {
    color:#bf0000 !important;
}

/* disabledボタンでも薄くならない */
.side-column .genre-toggle:disabled {
    opacity:1 !important;
}

/* 現在のカテゴリをより判別しやすく */
.side-column .genre-node.is-current > .genre-row,
.side-column .genre-row.current {
    background:#ffe8e8 !important;
    border-left:5px solid #bf0000 !important;
}

.side-column .genre-node.is-current > .genre-row > .genre-link,
.side-column .genre-row.current > .genre-link {
    color:#bf0000 !important;
    font-weight:800 !important;
}

/* 現在の経路上の親カテゴリは青系を維持 */
.side-column .genre-node.in-current-path:not(.is-current) > .genre-row {
    box-shadow:inset 2px 0 0 rgba(47,127,185,.18) !important;
}

/* 商品タイトル／説明は常に下線なし */
.main .product-info h3 a.product-title-link,
.main .product-info h3 a.product-title-link:link,
.main .product-info h3 a.product-title-link:visited,
.main .product-info h3 a.product-title-link:hover,
.main .product-info h3 a.product-title-link:focus {
    text-decoration:none !important;
    border-bottom:none !important;
    box-shadow:none !important;
    background-image:none !important;
}

/* hoverは色だけ変える */
.main .product-info h3 a.product-title-link:hover,
.main .product-info h3 a.product-title-link:focus {
    color:#c90000 !important;
}


/* ============================================================
   v4.5 FINAL - Minimal Modern UI
   装飾しすぎず、余白・文字・境界線を整理
============================================================ */

:root {
    --rk-red:#bf0000;
    --rk-red-hover:#a90000;
    --rk-ink:#202124;
    --rk-muted:#74787d;
    --rk-line:#e4e6e8;
    --rk-bg:#f5f6f7;
    --rk-panel:#ffffff;
    --rk-blue-1:#edf5fb;
    --rk-blue-2:#f5f9fc;
    --rk-current:#fff0f0;
}

html {
    background:var(--rk-bg) !important;
}

body {
    color:var(--rk-ink) !important;
    background:var(--rk-bg) !important;
    font-family:
        -apple-system,
        BlinkMacSystemFont,
        "Segoe UI",
        "Hiragino Kaku Gothic ProN",
        "Yu Gothic",
        Meiryo,
        sans-serif !important;
    letter-spacing:.01em;
}


/* ---------- ヘッダー ---------- */

.site-header {
    height:auto !important;
    background:#fff !important;
    border-bottom:1px solid var(--rk-line) !important;
}

.header-inner {
    max-width:1180px !important;
    padding:22px 24px !important;
    font-size:22px !important;
    font-weight:700 !important;
}

.header-inner a {
    color:#161719 !important;
    text-decoration:none !important;
}


/* ---------- 2カラム全体 ---------- */

.layout {
    max-width:1180px !important;
    margin:28px auto 42px !important;
    grid-template-columns:minmax(0,1fr) 300px !important;
    gap:24px !important;
    padding:0 18px !important;
}

.main {
    padding:34px 36px 38px !important;
    background:#fff !important;
    border:1px solid #eceeef !important;
    border-radius:10px !important;
    box-shadow:0 2px 10px rgba(20,24,28,.035) !important;
}

.side-column {
    padding:0 !important;
    background:transparent !important;
    align-self:start !important;
}


/* ---------- ページタイトル ---------- */

.main h1 {
    margin:0 0 26px !important;
    color:#18191b !important;
    font-size:32px !important;
    line-height:1.45 !important;
    font-weight:500 !important;
    letter-spacing:.025em !important;
}

.ranking-head h2 {
    margin:0 !important;
    padding:0 0 10px !important;
    color:#202124 !important;
    border-bottom:2px solid var(--rk-red) !important;
    font-size:20px !important;
    font-weight:700 !important;
}

.ranking-head p {
    margin:9px 0 18px !important;
    color:#85898e !important;
    font-size:12px !important;
}


/* ---------- 商品カード ---------- */

.ranking-list {
    gap:10px !important;
}

.product-card {
    min-height:108px !important;
    grid-template-columns:54px 94px minmax(0,1fr) 118px !important;
    padding:10px 10px !important;
    border:1px solid #dedfe1 !important;
    border-left:3px solid #a8aaad !important;
    border-radius:7px !important;
    background:#fff !important;
    box-shadow:none !important;
    transition:
        border-color .15s ease,
        box-shadow .15s ease !important;
}

.product-card:hover {
    border-color:#cfd1d3 !important;
    box-shadow:0 3px 10px rgba(0,0,0,.04) !important;
}

.product-card.rank-1 {
    border-left-color:#d7a600 !important;
}

.product-card.rank-2 {
    border-left-color:#96999c !important;
}

.product-card.rank-3 {
    border-left-color:#b86a27 !important;
}

.rank span {
    font-size:22px !important;
}

.thumb img {
    width:82px !important;
    height:82px !important;
    border-radius:3px !important;
}

.product-info h3 {
    margin:0 0 5px !important;
    color:#18191b !important;
    font-size:14px !important;
    line-height:1.5 !important;
    font-weight:650 !important;
}

.main .product-info h3 a.product-title-link,
.main .product-info h3 a.product-title-link:link,
.main .product-info h3 a.product-title-link:visited {
    color:#18191b !important;
    text-decoration:none !important;
    border-bottom:none !important;
    box-shadow:none !important;
    background-image:none !important;
}

.main .product-info h3 a.product-title-link:hover,
.main .product-info h3 a.product-title-link:focus {
    color:var(--rk-red) !important;
    text-decoration:none !important;
}

.shop {
    color:#8a8e92 !important;
}

.rating {
    color:#d78600 !important;
}

.price {
    color:#c60000 !important;
    font-size:19px !important;
}

.action a {
    background:var(--rk-red) !important;
    border-radius:5px !important;
    padding:10px 7px !important;
    font-size:12px !important;
    box-shadow:none !important;
    transition:background-color .15s ease !important;
}

.action a:hover {
    background:var(--rk-red-hover) !important;
}


/* ---------- サイドバー ---------- */

.side-column .sidebar {
    border:1px solid #dfe1e3 !important;
    border-radius:9px !important;
    background:#fff !important;
    box-shadow:0 2px 9px rgba(20,24,28,.045) !important;
}

.side-column .sidebar-title {
    padding:13px 14px !important;
    background:var(--rk-red) !important;
    font-size:14px !important;
    letter-spacing:.02em !important;
}

.side-column .theme > .theme-btn {
    min-height:42px !important;
    padding:10px 10px !important;
    border-left:3px solid #64686c !important;
    background:#e2e4e6 !important;
    font-size:14px !important;
}

.side-column .theme > .theme-btn:hover,
.side-column .theme > .theme-btn:focus {
    background:#d9dcde !important;
}

.side-column .theme > .theme-body {
    padding:5px !important;
    background:#fafbfb !important;
}


/* ---------- カテゴリ階層 ---------- */

.side-column .genre-row {
    min-height:37px !important;
    border-bottom:1px solid #eaebec !important;
    border-radius:2px !important;
}

.side-column .genre-node.depth-1 > .genre-row {
    border-left:4px solid #5797c8 !important;
    background:var(--rk-blue-1) !important;
}

.side-column .genre-node.depth-2 > .genre-row {
    border-left:3px solid #82afd0 !important;
    background:var(--rk-blue-2) !important;
}

.side-column .genre-node.depth-3 > .genre-row {
    border-left:2px solid #bfd7e7 !important;
    background:#fff !important;
}

.side-column .genre-node.depth-4 > .genre-row,
.side-column .genre-node.depth-5 > .genre-row,
.side-column .genre-node.depth-6 > .genre-row,
.side-column .genre-node.depth-7 > .genre-row,
.side-column .genre-node.depth-8 > .genre-row {
    background:#fff !important;
}

.side-column .genre-link {
    font-size:14px !important;
}

.side-column .genre-node.depth-1 > .genre-row > .genre-link {
    padding-left:6px !important;
}

.side-column .genre-node.depth-2 > .genre-row > .genre-link {
    padding-left:11px !important;
}

.side-column .genre-node.depth-3 > .genre-row > .genre-link {
    padding-left:18px !important;
}

.side-column .genre-node.depth-4 > .genre-row > .genre-link {
    padding-left:25px !important;
}

.side-column .genre-node.depth-5 > .genre-row > .genre-link {
    padding-left:32px !important;
}

.side-column .genre-node.is-current > .genre-row,
.side-column .genre-row.current {
    background:var(--rk-current) !important;
    border-left:4px solid var(--rk-red) !important;
}

.side-column .genre-node.is-current > .genre-row > .genre-link,
.side-column .genre-row.current > .genre-link {
    color:var(--rk-red) !important;
    font-weight:800 !important;
}


/* ---------- 記号 ---------- */

/* 子あり */
.side-column .genre-toggle:not(.no-children) {
    color:var(--rk-red) !important;
    font-size:17px !important;
}

/* 末端 */
.side-column .genre-toggle.no-children,
.side-column .genre-node.terminal > .genre-row > .genre-toggle {
    color:#3f4245 !important;
    font-size:15px !important;
    opacity:1 !important;
}

/* 現在地の末端 */
.side-column .genre-node.is-current > .genre-row > .genre-toggle.no-children,
.side-column .genre-node.is-current.terminal > .genre-row > .genre-toggle {
    color:var(--rk-red) !important;
}


/* ---------- フッター ---------- */

.site-footer {
    max-width:1180px !important;
    padding:24px 18px 42px !important;
    color:#909397 !important;
}


/* ---------- レスポンシブ ---------- */

@media screen and (max-width:900px) {

    .layout {
        grid-template-columns:1fr !important;
    }

    .main {
        padding:26px 24px !important;
    }

    .main h1 {
        font-size:27px !important;
    }

    .side-column {
        order:-1;
    }
}

@media screen and (max-width:650px) {

    .layout {
        padding:0 10px !important;
        margin-top:14px !important;
    }

    .main {
        padding:22px 16px !important;
        border-radius:7px !important;
    }

    .main h1 {
        font-size:24px !important;
    }

    .product-card {
        grid-template-columns:40px 74px minmax(0,1fr) !important;
    }

    .thumb img {
        width:66px !important;
        height:66px !important;
    }
}


/* ============================================================
   v4.7 - 独自付加価値コンテンツ
   余白を活かしたシンプルな構成
============================================================ */

.value-section {
    margin:28px 0 0;
    padding:0;
}

.section-kicker {
    margin:0 0 12px;
    padding:0 0 9px;
    border-bottom:1px solid #e1e3e5;
    color:#202124;
    font-size:18px;
    line-height:1.4;
    font-weight:750;
}


/* ---------- 今日の注目 ---------- */

.featured-card {
    display:grid;
    grid-template-columns:58px 92px minmax(0,1fr);
    gap:13px;
    align-items:center;
    padding:14px;
    border:1px solid #e0e2e4;
    border-radius:8px;
    background:#fff;
}

.featured-rank {
    color:#bf0000;
    text-align:center;
    font-weight:800;
}

.featured-rank span {
    font-size:27px;
}

.featured-rank small {
    margin-left:2px;
    font-size:11px;
}

.featured-image {
    display:block;
}

.featured-image img {
    display:block;
    width:82px;
    height:82px;
    object-fit:contain;
}

.featured-title {
    display:-webkit-box;
    overflow:hidden;
    color:#202124 !important;
    text-decoration:none !important;
    font-size:14px;
    line-height:1.5;
    font-weight:700;
    -webkit-line-clamp:2;
    -webkit-box-orient:vertical;
}

.featured-title:hover {
    color:#bf0000 !important;
}

.featured-movement {
    margin-top:6px;
    color:#bf0000;
    font-size:13px;
    font-weight:700;
}

.featured-meta {
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:12px;
    margin-top:6px;
    color:#707479;
    font-size:12px;
}

.featured-meta strong {
    color:#c40000;
    font-size:18px;
}


/* ---------- TOP3比較 ---------- */

.comparison-scroll {
    overflow-x:auto;
    border:1px solid #e1e3e5;
    border-radius:7px;
}

.comparison-table {
    width:100%;
    min-width:620px;
    border-collapse:collapse;
    background:#fff;
    table-layout:fixed;
}

.comparison-table th,
.comparison-table td {
    padding:11px 10px;
    border-right:1px solid #eceeef;
    border-bottom:1px solid #eceeef;
    text-align:center;
    vertical-align:middle;
    font-size:12px;
}

.comparison-table tr:last-child th,
.comparison-table tr:last-child td {
    border-bottom:0;
}

.comparison-table th:last-child,
.comparison-table td:last-child {
    border-right:0;
}

.comparison-table thead th {
    background:#f6f7f8;
    color:#333;
    font-size:13px;
}

.comparison-table th:first-child {
    width:88px;
    background:#fafafa;
    color:#666;
    font-weight:700;
}

.compare-product {
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:6px;
    color:#222 !important;
    text-decoration:none !important;
}

.compare-product:hover {
    color:#bf0000 !important;
}

.compare-product img {
    width:62px;
    height:62px;
    object-fit:contain;
}

.compare-product span {
    display:-webkit-box;
    overflow:hidden;
    line-height:1.4;
    -webkit-line-clamp:2;
    -webkit-box-orient:vertical;
}

.compare-price {
    color:#c40000;
    font-size:14px !important;
    font-weight:800;
}


/* ---------- 楽天ランキング ---------- */

.ranking-section .ranking-list {
    margin-top:0;
}


/* ---------- 急上昇 ---------- */

.rising-list {
    border:1px solid #e1e3e5;
    border-radius:7px;
    overflow:hidden;
    background:#fff;
}

.rising-item {
    display:grid;
    grid-template-columns:118px minmax(0,1fr);
    gap:12px;
    align-items:center;
    padding:11px 13px;
    border-bottom:1px solid #eceeef;
    color:#222 !important;
    text-decoration:none !important;
}

.rising-item:last-child {
    border-bottom:0;
}

.rising-item:hover {
    background:#fafafa;
}

.rising-change {
    color:#bf0000;
    font-size:13px;
    font-weight:800;
    white-space:nowrap;
}

.rising-change b {
    padding:0 4px;
}

.rising-name {
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
    font-size:13px;
}

.history-empty {
    margin:0;
    padding:13px 14px;
    border:1px solid #e4e6e8;
    border-radius:7px;
    background:#fafafa;
    color:#777;
    font-size:12px;
    line-height:1.7;
}


/* ---------- 関連カテゴリー ---------- */

.related-grid {
    display:flex;
    flex-wrap:wrap;
    gap:8px;
}

.related-link {
    display:inline-flex;
    align-items:center;
    min-height:34px;
    padding:7px 12px;
    border:1px solid #dde0e2;
    border-radius:5px;
    background:#fff;
    color:#303235 !important;
    text-decoration:none !important;
    font-size:13px;
    transition:
        border-color .12s ease,
        color .12s ease,
        background .12s ease;
}

.related-link:hover {
    border-color:#cfb2b2;
    background:#fff8f8;
    color:#bf0000 !important;
}


/* ---------- モバイル ---------- */

@media screen and (max-width:650px) {

    .value-section {
        margin-top:23px;
    }

    .section-kicker {
        font-size:17px;
    }

    .featured-card {
        grid-template-columns:44px 74px minmax(0,1fr);
        gap:9px;
        padding:10px;
    }

    .featured-image img {
        width:66px;
        height:66px;
    }

    .featured-rank span {
        font-size:22px;
    }

    .rising-item {
        grid-template-columns:100px minmax(0,1fr);
        gap:8px;
        padding:10px;
    }
}


/* ============================================================
   v4.8 FINAL
   サイドバーの赤い「商品カテゴリー」見出しを削除
   上部余白を詰めて自然につなぐ
============================================================ */

/* 見出しはPHP側で削除済み。念のためCSSでも非表示 */
.side-column .sidebar-title {
    display:none !important;
}

/* サイドバー本体 */
.side-column .sidebar.sidebar-no-title {
    padding-top:0 !important;
    border-top:1px solid #dfe1e3 !important;
    border-radius:8px !important;
    overflow:hidden !important;
    background:#fff !important;
}

/* 最初のテーマをサイドバー上端に自然につなぐ */
.side-column .sidebar.sidebar-no-title > .theme:first-child > .theme-btn {
    border-top-left-radius:7px !important;
    border-top-right-radius:7px !important;
}

/* 最後のテーマも下端を自然に */
.side-column .sidebar.sidebar-no-title > .theme:last-child > .theme-btn {
    border-bottom-left-radius:0 !important;
    border-bottom-right-radius:0 !important;
}

/* サイドバー上部の不要な余白を削除 */
.side-column {
    padding-top:0 !important;
}

.side-column .sidebar {
    margin-top:0 !important;
}

/* テーマボタンの上下を少し詰める */
.side-column .theme > .theme-btn {
    min-height:40px !important;
    padding-top:9px !important;
    padding-bottom:9px !important;
}

/* 開いている最初のテーマも上端にぴったり */
.side-column .theme:first-child {
    margin-top:0 !important;
}

/* モバイルでも上部を詰める */
@media screen and (max-width:900px) {
    .side-column {
        margin-top:0 !important;
        padding-top:0 !important;
    }
}


/* ============================================================
   v4.9 HOME
============================================================ */

.home-hero {
    padding:4px 0 26px;
}

.home-eyebrow {
    margin-bottom:9px;
    color:#bf0000;
    font-size:13px;
    font-weight:800;
    letter-spacing:.04em;
}

.main .home-hero h1 {
    margin:0 0 13px !important;
    font-size:34px !important;
    line-height:1.45 !important;
    font-weight:550 !important;
}

.home-hero p {
    max-width:680px;
    margin:0;
    color:#686c70;
    font-size:14px;
    line-height:1.8;
}

.mobile-break {
    display:none;
}

.home-ranking-head {
    margin-top:0;
}

.section-note {
    margin:-3px 0 13px;
    color:#7c8084;
    font-size:12px;
    line-height:1.7;
}


/* ---------- カテゴリー別No.1 ---------- */

.category-no1-grid {
    display:grid;
    grid-template-columns:repeat(2, minmax(0,1fr));
    gap:10px;
}

.category-no1-card {
    min-width:0;
    padding:13px;
    border:1px solid #e1e3e5;
    border-radius:7px;
    background:#fff;
}

.category-no1-theme {
    display:block;
    margin-bottom:10px;
    color:#222 !important;
    text-decoration:none !important;
    font-size:14px;
    font-weight:800;
}

.category-no1-theme:hover {
    color:#bf0000 !important;
}

.category-no1-product {
    display:grid;
    grid-template-columns:70px minmax(0,1fr);
    gap:10px;
    align-items:center;
    color:#222 !important;
    text-decoration:none !important;
}

.category-no1-product:hover {
    color:#bf0000 !important;
}

.category-no1-product img {
    width:68px;
    height:68px;
    object-fit:contain;
}

.category-no1-product span {
    display:-webkit-box;
    overflow:hidden;
    font-size:12px;
    line-height:1.45;
    -webkit-line-clamp:3;
    -webkit-box-orient:vertical;
}

.category-no1-meta {
    display:flex;
    align-items:center;
    gap:10px;
    margin-top:9px;
    color:#777;
    font-size:11px;
}

.category-no1-meta strong {
    color:#c40000;
    font-size:15px;
}

.category-ranking-link {
    display:inline-block;
    margin-top:9px;
    color:#555 !important;
    text-decoration:none !important;
    font-size:11px;
}

.category-ranking-link:hover {
    color:#bf0000 !important;
}


/* ---------- カテゴリー入口 ---------- */

.home-theme-grid {
    display:grid;
    grid-template-columns:repeat(2, minmax(0,1fr));
    gap:8px;
}

.home-theme-link {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    min-height:48px;
    padding:10px 13px;
    border:1px solid #e0e2e4;
    border-radius:6px;
    background:#fff;
    color:#222 !important;
    text-decoration:none !important;
}

.home-theme-link:hover {
    border-color:#d7bcbc;
    background:#fffafa;
}

.home-theme-link strong {
    font-size:13px;
}

.home-theme-link span {
    flex:0 0 auto;
    color:#8a8d91;
    font-size:10px;
}


/* ---------- TOPページではサイドバーを少し静かに ---------- */

body:has(.home-hero) .side-column .sidebar {
    box-shadow:none !important;
}


/* ---------- レスポンシブ ---------- */

@media screen and (max-width:700px) {

    .main .home-hero h1 {
        font-size:27px !important;
    }

    .mobile-break {
        display:block;
    }

    .category-no1-grid,
    .home-theme-grid {
        grid-template-columns:1fr;
    }
}


/* ============================================================
   v5.0 FINAL
   シンプルなサイト情報フッター
============================================================ */

.site-footer {
    max-width:none !important;
    margin:42px 0 0 !important;
    padding:0 !important;
    border-top:1px solid #e2e4e6;
    background:#fff;
    color:#676b70 !important;
}

.footer-inner {
    max-width:1180px;
    margin:0 auto;
    padding:30px 18px 34px;
}

.footer-brand {
    margin-bottom:18px;
    color:#25272a;
    font-size:15px;
    font-weight:750;
}

.footer-info-grid {
    display:grid;
    grid-template-columns:repeat(2, minmax(0,1fr));
    gap:28px;
    padding:0 0 22px;
    border-bottom:1px solid #eceeef;
}

.footer-info h2 {
    margin:0 0 8px;
    color:#34373a;
    font-size:13px;
    line-height:1.5;
    font-weight:750;
}

.footer-info p {
    margin:0;
    color:#74787d;
    font-size:11px;
    line-height:1.9;
}

.footer-credit {
    margin-top:18px;
    font-size:11px;
}

.footer-credit a,
.footer-credit a:link,
.footer-credit a:visited {
    color:#606469;
    text-decoration:none;
}

.footer-credit a:hover,
.footer-credit a:focus {
    color:#bf0000;
    text-decoration:none;
}

.footer-copy {
    margin-top:9px;
    color:#9a9da1;
    font-size:10px;
}


/* モバイル */
@media screen and (max-width:700px) {

    .site-footer {
        margin-top:30px !important;
    }

    .footer-inner {
        padding:25px 16px 28px;
    }

    .footer-info-grid {
        grid-template-columns:1fr;
        gap:20px;
    }
}


/* ============================================================
   v5.1 COMPACT FOOTER
============================================================ */

.site-footer.compact-footer {
    margin-top:28px !important;
    border-top:1px solid #e4e6e8 !important;
    background:#fff !important;
}

.compact-footer .footer-inner {
    max-width:1180px;
    margin:0 auto;
    padding:16px 18px 18px !important;
}

.compact-footer .footer-brand {
    margin:0 0 6px !important;
    color:#2c2f33 !important;
    font-size:13px !important;
    font-weight:750 !important;
}

.compact-footer .footer-summary {
    margin:0 !important;
    max-width:100% !important;
    color:#777b80 !important;
    font-size:10.5px !important;
    line-height:1.7 !important;
}

.compact-footer .footer-bottom {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:14px;
    margin-top:9px;
    padding-top:8px;
    border-top:1px solid #eef0f1;
}

.compact-footer .footer-credit,
.compact-footer .footer-copy {
    margin:0 !important;
    color:#9a9da1 !important;
    font-size:9.5px !important;
}

.compact-footer .footer-credit a,
.compact-footer .footer-credit a:link,
.compact-footer .footer-credit a:visited {
    color:#777b80 !important;
    text-decoration:none !important;
}

.compact-footer .footer-credit a:hover,
.compact-footer .footer-credit a:focus {
    color:#bf0000 !important;
    text-decoration:none !important;
}

@media screen and (max-width:700px) {
    .compact-footer .footer-inner {
        padding:14px 14px 16px !important;
    }

    .compact-footer .footer-bottom {
        display:block;
    }

    .compact-footer .footer-copy {
        margin-top:5px !important;
    }
}

/* ============================================================
   v5.7 PRODUCT CARD REFINEMENT
   - 商品画像をさらに大きく表示
   - 商品説明（既存の catchcopy + 商品名）を最大4行まで表示
   - 「楽天市場で見る」をカード右下へ配置
   - ボタン専用の右列をなくし、説明文を横に広く使う
   ※ PHP / クリック計測処理には影響しません
============================================================ */

@media screen and (min-width:651px) {
    .product-card {
        min-height:158px !important;
        grid-template-columns:54px 144px minmax(0, 1fr) !important;
        grid-template-rows:minmax(0, 1fr) auto !important;
        align-items:stretch !important;
        column-gap:12px !important;
        row-gap:8px !important;
        padding:12px 12px 11px !important;
    }

    .product-card > .rank {
        grid-column:1 !important;
        grid-row:1 / 3 !important;
        align-self:center !important;
    }

    .product-card > .thumb {
        grid-column:2 !important;
        grid-row:1 / 3 !important;
        align-self:center !important;
        justify-self:center !important;
    }

    .product-card .thumb img {
        width:128px !important;
        height:128px !important;
        object-fit:contain !important;
    }

    .product-card > .product-info {
        grid-column:3 !important;
        grid-row:1 !important;
        min-width:0 !important;
        align-self:start !important;
        padding-top:1px !important;
    }

    .product-card .product-info h3 {
        margin:0 0 7px !important;
        font-size:14px !important;
        line-height:1.55 !important;
        display:-webkit-box !important;
        -webkit-box-orient:vertical !important;
        -webkit-line-clamp:4 !important;
        overflow:hidden !important;
    }

    .product-card .shop {
        margin-bottom:7px !important;
    }

    .product-card > .action {
        grid-column:3 !important;
        grid-row:2 !important;
        align-self:end !important;
        justify-self:end !important;
        margin:0 !important;
        padding:0 !important;
        width:auto !important;
    }

    .product-card > .action a {
        display:inline-flex !important;
        align-items:center !important;
        justify-content:center !important;
        min-width:126px !important;
        min-height:38px !important;
        padding:9px 14px !important;
        white-space:nowrap !important;
    }
}

@media screen and (max-width:650px) {
    .product-card {
        min-height:124px !important;
        grid-template-columns:40px 90px minmax(0, 1fr) !important;
        grid-template-rows:auto auto !important;
        column-gap:9px !important;
        row-gap:8px !important;
        padding:9px !important;
    }

    .product-card > .rank {
        grid-column:1 !important;
        grid-row:1 / 3 !important;
        align-self:center !important;
    }

    .product-card > .thumb {
        grid-column:2 !important;
        grid-row:1 / 3 !important;
        align-self:start !important;
        justify-self:center !important;
    }

    .product-card .thumb img {
        width:84px !important;
        height:84px !important;
        object-fit:contain !important;
    }

    .product-card > .product-info {
        grid-column:3 !important;
        grid-row:1 !important;
        min-width:0 !important;
    }

    .product-card .product-info h3 {
        display:-webkit-box !important;
        -webkit-box-orient:vertical !important;
        -webkit-line-clamp:4 !important;
        overflow:hidden !important;
        line-height:1.5 !important;
    }

    .product-card > .action {
        grid-column:3 !important;
        grid-row:2 !important;
        justify-self:end !important;
        margin:0 !important;
        padding:0 !important;
        width:auto !important;
    }

    .product-card > .action a {
        min-width:118px !important;
        padding:9px 11px !important;
    }
}


/* ============================================================
   v5.8 COMPACT OVERRIDE
   v5.7を基準に、画像の見やすさを保ちながら縦幅・空白を圧縮
   PHP / クリック計測処理には影響しません
============================================================ */

@media screen and (min-width:651px) {
    .product-card {
        min-height:136px !important;
        grid-template-columns:50px 132px minmax(0, 1fr) !important;
        grid-template-rows:minmax(0, 1fr) auto !important;
        column-gap:9px !important;
        row-gap:2px !important;
        padding:6px 10px !important;
    }

    .product-card > .rank {
        align-self:center !important;
    }

    .product-card > .thumb {
        align-self:center !important;
    }

    .product-card .thumb img {
        width:120px !important;
        height:120px !important;
        object-fit:contain !important;
    }

    .product-card > .product-info {
        padding-top:0 !important;
        align-self:start !important;
    }

    .product-card .product-info h3 {
        margin:0 0 2px !important;
        font-size:14px !important;
        line-height:1.38 !important;
        -webkit-line-clamp:4 !important;
    }

    .product-card .shop {
        margin-top:0 !important;
        margin-bottom:2px !important;
        line-height:1.25 !important;
    }

    .product-card .meta,
    .product-card .rating,
    .product-card .price {
        margin-top:0 !important;
        margin-bottom:0 !important;
        line-height:1.25 !important;
    }

    .product-card > .action {
        align-self:end !important;
        justify-self:end !important;
        margin:0 !important;
        padding:0 !important;
    }

    .product-card > .action a {
        min-width:120px !important;
        min-height:32px !important;
        padding:6px 12px !important;
        line-height:1.2 !important;
    }
}

@media screen and (max-width:650px) {
    .product-card {
        padding:6px !important;
        row-gap:4px !important;
    }

    .product-card .product-info h3 {
        margin-bottom:2px !important;
        line-height:1.35 !important;
    }

    .product-card > .action {
        margin-top:3px !important;
    }
}

/* ============================================================
   v5.9 COMPACT + BUTTON POSITION REFINEMENT
   - v5.8を基準に、商品カードをもう少しだけコンパクト化
   - 「楽天市場で見る」を右端・下端から少し内側へ移動
   - 商品説明は4行表示を維持
   - PHP / クリック計測処理には影響しません
============================================================ */

@media screen and (min-width:651px) {
    .product-card {
        min-height:128px !important;
        grid-template-columns:48px 126px minmax(0, 1fr) !important;
        grid-template-rows:minmax(0, 1fr) auto !important;
        column-gap:8px !important;
        row-gap:1px !important;
        padding:5px 12px 6px 9px !important;
    }

    .product-card > .rank {
        align-self:center !important;
    }

    .product-card > .thumb {
        align-self:center !important;
        justify-self:center !important;
    }

    .product-card .thumb img {
        width:116px !important;
        height:116px !important;
        object-fit:contain !important;
    }

    .product-card > .product-info {
        align-self:start !important;
        padding-top:0 !important;
        padding-right:2px !important;
    }

    .product-card .product-info h3 {
        margin:0 0 1px !important;
        font-size:14px !important;
        line-height:1.34 !important;
        -webkit-line-clamp:4 !important;
    }

    .product-card .shop {
        margin:0 0 1px !important;
        line-height:1.2 !important;
    }

    .product-card .meta {
        gap:5px !important;
        margin:0 !important;
        line-height:1.2 !important;
    }

    .product-card .rating,
    .product-card .reviews,
    .product-card .price {
        margin-top:0 !important;
        margin-bottom:0 !important;
        line-height:1.2 !important;
    }

    .product-card > .action {
        align-self:end !important;
        justify-self:end !important;
        margin:0 7px 3px 0 !important;
        padding:0 !important;
        width:auto !important;
    }

    .product-card > .action a {
        min-width:116px !important;
        min-height:30px !important;
        padding:6px 11px !important;
        border-radius:5px !important;
        line-height:1.15 !important;
    }
}

@media screen and (max-width:650px) {
    .product-card {
        min-height:116px !important;
        padding:6px 8px !important;
        row-gap:3px !important;
    }

    .product-card .thumb img {
        width:80px !important;
        height:80px !important;
    }

    .product-card .product-info h3 {
        margin-bottom:1px !important;
        line-height:1.32 !important;
    }

    .product-card > .action {
        margin:2px 4px 2px 0 !important;
    }

    .product-card > .action a {
        min-width:112px !important;
        padding:7px 10px !important;
    }
}

/* ============================================================
   v6.0 BALANCE REFINEMENT
   - 「楽天市場で見る」を少し上へ移動し、説明文との空白を縮小
   - 今日の注目商品の画像を拡大
   - 人気TOP3比較の画像を拡大
   - 全体の余白・比率を崩さず調整
   - PHP / クリック計測処理には影響しません
============================================================ */

@media screen and (min-width:651px) {

    /* ---------- 楽天ランキング ---------- */

    .product-card {
        min-height:126px !important;
        padding-top:5px !important;
        padding-bottom:5px !important;
    }

    .product-card > .product-info {
        padding-bottom:0 !important;
    }

    .product-card > .action {
        margin:0 7px 0 0 !important;
        transform:translateY(-7px) !important;
    }

    .product-card > .action a {
        min-height:30px !important;
        padding:6px 11px !important;
    }

    /* ---------- 今日の注目商品 ---------- */

    .featured-card {
        grid-template-columns:58px 114px minmax(0,1fr) !important;
        gap:12px !important;
        padding:12px 14px !important;
        min-height:128px !important;
    }

    .featured-image {
        justify-self:center !important;
    }

    .featured-image img {
        width:104px !important;
        height:104px !important;
        object-fit:contain !important;
    }

    .featured-title {
        line-height:1.45 !important;
        -webkit-line-clamp:3 !important;
    }

    .featured-movement {
        margin-top:4px !important;
    }

    .featured-meta {
        margin-top:4px !important;
        gap:10px !important;
    }

    /* ---------- 人気TOP3を比較 ---------- */

    .comparison-table th,
    .comparison-table td {
        padding-top:9px !important;
        padding-bottom:9px !important;
    }

    .compare-product {
        gap:5px !important;
    }

    .compare-product img {
        width:80px !important;
        height:80px !important;
        object-fit:contain !important;
    }

    .compare-product span {
        line-height:1.35 !important;
        -webkit-line-clamp:2 !important;
    }
}

@media screen and (max-width:650px) {

    /* ランキングボタン */
    .product-card > .action {
        margin:0 4px 0 0 !important;
        transform:translateY(-4px) !important;
    }

    /* 今日の注目商品 */
    .featured-card {
        grid-template-columns:44px 88px minmax(0,1fr) !important;
        gap:8px !important;
        padding:9px !important;
    }

    .featured-image img {
        width:80px !important;
        height:80px !important;
    }

    .featured-title {
        -webkit-line-clamp:3 !important;
        line-height:1.4 !important;
    }

    /* 人気TOP3比較 */
    .compare-product img {
        width:70px !important;
        height:70px !important;
    }
}

/* ============================================================
   v6.1 FEATURED-SIZE RANKING CARD
   「今日の注目商品」の見やすいサイズ感を楽天ランキング商品へ適用
   - 縦幅
   - 文字数
   - 文字と枠の距離
   - 写真サイズ
   - 「楽天市場で見る」の位置
   PHP / クリック計測処理には影響しません
============================================================ */

@media screen and (min-width:651px) {

    /* ---------- ランキング商品を「今日の注目商品」に近い比率へ ---------- */

    .ranking-section .product-card,
    .ranking-list .product-card {
        min-height:144px !important;
        grid-template-columns:58px 114px minmax(0,1fr) !important;
        grid-template-rows:minmax(0,1fr) auto !important;
        column-gap:12px !important;
        row-gap:4px !important;
        align-items:center !important;
        padding:12px 14px !important;
    }

    .ranking-section .product-card > .rank,
    .ranking-list .product-card > .rank {
        grid-column:1 !important;
        grid-row:1 / 3 !important;
        align-self:center !important;
        justify-self:center !important;
    }

    .ranking-section .product-card > .thumb,
    .ranking-list .product-card > .thumb {
        grid-column:2 !important;
        grid-row:1 / 3 !important;
        align-self:center !important;
        justify-self:center !important;
    }

    .ranking-section .product-card .thumb img,
    .ranking-list .product-card .thumb img {
        width:104px !important;
        height:104px !important;
        object-fit:contain !important;
        background:#fafafa !important;
    }

    .ranking-section .product-card > .product-info,
    .ranking-list .product-card > .product-info {
        grid-column:3 !important;
        grid-row:1 !important;
        min-width:0 !important;
        align-self:start !important;
        padding:0 !important;
    }

    .ranking-section .product-card .product-info h3,
    .ranking-list .product-card .product-info h3 {
        margin:0 0 4px !important;
        font-size:14px !important;
        line-height:1.45 !important;
        font-weight:700 !important;
        display:-webkit-box !important;
        -webkit-box-orient:vertical !important;
        -webkit-line-clamp:3 !important;
        overflow:hidden !important;
    }

    .ranking-section .product-card .shop,
    .ranking-list .product-card .shop {
        margin:0 0 4px !important;
        line-height:1.25 !important;
    }

    .ranking-section .product-card .meta,
    .ranking-list .product-card .meta {
        gap:7px !important;
        margin:0 !important;
        line-height:1.25 !important;
    }

    .ranking-section .product-card > .action,
    .ranking-list .product-card > .action {
        grid-column:3 !important;
        grid-row:2 !important;
        align-self:start !important;
        justify-self:end !important;
        margin:0 2px 0 0 !important;
        padding:0 !important;
        width:auto !important;
        transform:none !important;
    }

    .ranking-section .product-card > .action a,
    .ranking-list .product-card > .action a {
        min-width:118px !important;
        min-height:31px !important;
        padding:6px 11px !important;
        line-height:1.2 !important;
        border-radius:5px !important;
    }
}

@media screen and (max-width:650px) {

    .ranking-section .product-card,
    .ranking-list .product-card {
        min-height:122px !important;
        grid-template-columns:42px 88px minmax(0,1fr) !important;
        grid-template-rows:minmax(0,1fr) auto !important;
        column-gap:8px !important;
        row-gap:3px !important;
        padding:9px !important;
    }

    .ranking-section .product-card > .rank,
    .ranking-list .product-card > .rank {
        grid-column:1 !important;
        grid-row:1 / 3 !important;
        align-self:center !important;
    }

    .ranking-section .product-card > .thumb,
    .ranking-list .product-card > .thumb {
        grid-column:2 !important;
        grid-row:1 / 3 !important;
        align-self:center !important;
    }

    .ranking-section .product-card .thumb img,
    .ranking-list .product-card .thumb img {
        width:80px !important;
        height:80px !important;
    }

    .ranking-section .product-card > .product-info,
    .ranking-list .product-card > .product-info {
        grid-column:3 !important;
        grid-row:1 !important;
    }

    .ranking-section .product-card .product-info h3,
    .ranking-list .product-card .product-info h3 {
        margin:0 0 3px !important;
        font-size:13px !important;
        line-height:1.4 !important;
        -webkit-line-clamp:3 !important;
    }

    .ranking-section .product-card > .action,
    .ranking-list .product-card > .action {
        grid-column:3 !important;
        grid-row:2 !important;
        justify-self:end !important;
        margin:0 2px 0 0 !important;
        transform:none !important;
    }

    .ranking-section .product-card > .action a,
    .ranking-list .product-card > .action a {
        min-width:112px !important;
        padding:6px 10px !important;
    }
}

/* ============================================================
   v6.2 RANKING IMAGE + TOP ALIGNMENT
   - ランキング写真を少し大きく
   - 写真の上辺と商品文字の上辺を一直線に
   - 既存PHP / クリック計測には影響しません
============================================================ */

@media screen and (min-width:651px) {

    .ranking-section .product-card,
    .ranking-list .product-card {
        min-height:150px !important;
        grid-template-columns:58px 126px minmax(0,1fr) !important;
        grid-template-rows:minmax(0,1fr) auto !important;
        column-gap:12px !important;
        row-gap:4px !important;
        align-items:start !important;
        padding:12px 14px !important;
    }

    .ranking-section .product-card > .rank,
    .ranking-list .product-card > .rank {
        grid-column:1 !important;
        grid-row:1 / 3 !important;
        align-self:center !important;
        justify-self:center !important;
    }

    .ranking-section .product-card > .thumb,
    .ranking-list .product-card > .thumb {
        grid-column:2 !important;
        grid-row:1 / 3 !important;
        align-self:start !important;
        justify-self:center !important;
        margin:0 !important;
        padding:0 !important;
    }

    .ranking-section .product-card .thumb img,
    .ranking-list .product-card .thumb img {
        display:block !important;
        width:118px !important;
        height:118px !important;
        margin:0 !important;
        object-fit:contain !important;
        background:#fafafa !important;
    }

    .ranking-section .product-card > .product-info,
    .ranking-list .product-card > .product-info {
        grid-column:3 !important;
        grid-row:1 !important;
        min-width:0 !important;
        align-self:start !important;
        margin:0 !important;
        padding:0 !important;
    }

    .ranking-section .product-card .product-info h3,
    .ranking-list .product-card .product-info h3 {
        margin-top:0 !important;
        padding-top:0 !important;
    }
}

@media screen and (max-width:650px) {

    .ranking-section .product-card,
    .ranking-list .product-card {
        min-height:128px !important;
        grid-template-columns:42px 96px minmax(0,1fr) !important;
        align-items:start !important;
    }

    .ranking-section .product-card > .thumb,
    .ranking-list .product-card > .thumb {
        align-self:start !important;
        margin:0 !important;
        padding:0 !important;
    }

    .ranking-section .product-card .thumb img,
    .ranking-list .product-card .thumb img {
        display:block !important;
        width:90px !important;
        height:90px !important;
        margin:0 !important;
        object-fit:contain !important;
    }

    .ranking-section .product-card > .product-info,
    .ranking-list .product-card > .product-info {
        align-self:start !important;
        margin:0 !important;
        padding:0 !important;
    }

    .ranking-section .product-card .product-info h3,
    .ranking-list .product-card .product-info h3 {
        margin-top:0 !important;
        padding-top:0 !important;
    }
}

/* ============================================================
   v6.3 RANKING COMPACT
   - v6.2の画像サイズと上辺揃えを維持
   - カードの縦幅と上下の空白を圧縮
   - ボタンを少し小さくして右下へ
============================================================ */

@media screen and (min-width:651px) {

    .ranking-section .product-card,
    .ranking-list .product-card {
        min-height:132px !important;
        grid-template-columns:54px 124px minmax(0,1fr) !important;
        grid-template-rows:minmax(0,1fr) auto !important;
        column-gap:10px !important;
        row-gap:0 !important;
        align-items:start !important;
        padding:6px 10px !important;
    }

    .ranking-section .product-card > .rank,
    .ranking-list .product-card > .rank {
        grid-column:1 !important;
        grid-row:1 / 3 !important;
        align-self:center !important;
        justify-self:center !important;
    }

    .ranking-section .product-card > .thumb,
    .ranking-list .product-card > .thumb {
        grid-column:2 !important;
        grid-row:1 / 3 !important;
        align-self:start !important;
        justify-self:center !important;
        margin:0 !important;
        padding:0 !important;
    }

    .ranking-section .product-card .thumb img,
    .ranking-list .product-card .thumb img {
        width:118px !important;
        height:118px !important;
        margin:0 !important;
        object-fit:contain !important;
    }

    .ranking-section .product-card > .product-info,
    .ranking-list .product-card > .product-info {
        grid-column:3 !important;
        grid-row:1 !important;
        align-self:start !important;
        margin:0 !important;
        padding:0 !important;
    }

    .ranking-section .product-card .product-info h3,
    .ranking-list .product-card .product-info h3 {
        margin:0 0 2px !important;
        padding:0 !important;
        line-height:1.35 !important;
    }

    .ranking-section .product-card .shop,
    .ranking-list .product-card .shop {
        margin:0 0 2px !important;
        line-height:1.15 !important;
    }

    .ranking-section .product-card .meta,
    .ranking-list .product-card .meta {
        margin:0 !important;
        line-height:1.15 !important;
    }

    .ranking-section .product-card > .action,
    .ranking-list .product-card > .action {
        grid-column:3 !important;
        grid-row:2 !important;
        align-self:end !important;
        justify-self:end !important;
        margin:0 0 1px 0 !important;
        padding:0 !important;
    }

    .ranking-section .product-card > .action a,
    .ranking-list .product-card > .action a {
        min-width:116px !important;
        min-height:30px !important;
        padding:5px 10px !important;
        line-height:1.15 !important;
    }
}

@media screen and (max-width:650px) {

    .ranking-section .product-card,
    .ranking-list .product-card {
        min-height:108px !important;
        grid-template-columns:40px 94px minmax(0,1fr) !important;
        grid-template-rows:minmax(0,1fr) auto !important;
        column-gap:7px !important;
        row-gap:1px !important;
        padding:5px 7px !important;
    }

    .ranking-section .product-card .thumb img,
    .ranking-list .product-card .thumb img {
        width:90px !important;
        height:90px !important;
    }

    .ranking-section .product-card .product-info h3,
    .ranking-list .product-card .product-info h3 {
        margin:0 0 2px !important;
        line-height:1.32 !important;
    }

    .ranking-section .product-card > .action,
    .ranking-list .product-card > .action {
        margin:0 !important;
    }

    .ranking-section .product-card > .action a,
    .ranking-list .product-card > .action a {
        min-width:108px !important;
        min-height:29px !important;
        padding:5px 9px !important;
    }
}

/* ============================================================
   v6.7 BALANCED CARD SPACING
   上下の基準余白をすべて 12px に統一
   ・写真上辺 → 枠：12px
   ・写真下辺 → 枠：12px
   ・文字上辺 → 枠：12px
   ・「楽天市場で見る」下辺 → 枠：12px
============================================================ */

@media screen and (min-width:651px) {

    .ranking-section .product-card,
    .ranking-list .product-card {
        box-sizing:border-box !important;
        min-height:142px !important;
        padding:12px 10px !important;
        grid-template-columns:54px 124px minmax(0,1fr) !important;
        grid-template-rows:minmax(0,1fr) auto !important;
        column-gap:10px !important;
        row-gap:0 !important;
        align-items:stretch !important;
    }

    .ranking-section .product-card > .thumb,
    .ranking-list .product-card > .thumb {
        grid-column:2 !important;
        grid-row:1 / 3 !important;
        align-self:start !important;
        justify-self:center !important;
        margin:0 !important;
        padding:0 !important;
    }

    .ranking-section .product-card .thumb img,
    .ranking-list .product-card .thumb img {
        display:block !important;
        width:118px !important;
        height:118px !important;
        margin:0 !important;
        padding:0 !important;
        object-fit:contain !important;
    }

    .ranking-section .product-card > .product-info,
    .ranking-list .product-card > .product-info {
        grid-column:3 !important;
        grid-row:1 !important;
        align-self:start !important;
        margin:0 !important;
        padding:0 !important;
    }

    .ranking-section .product-card .product-info h3,
    .ranking-list .product-card .product-info h3 {
        margin:0 0 2px !important;
        padding:0 !important;
        line-height:1.35 !important;
    }

    .ranking-section .product-card > .action,
    .ranking-list .product-card > .action {
        grid-column:3 !important;
        grid-row:2 !important;
        align-self:end !important;
        justify-self:end !important;
        margin:0 !important;
        padding:0 !important;
    }

    .ranking-section .product-card > .action a,
    .ranking-list .product-card > .action a {
        display:inline-flex !important;
        align-items:center !important;
        justify-content:center !important;
        min-width:116px !important;
        min-height:30px !important;
        margin:0 !important;
        padding:5px 10px !important;
        line-height:1.15 !important;
    }
}

@media screen and (max-width:650px) {

    .ranking-section .product-card,
    .ranking-list .product-card {
        box-sizing:border-box !important;
        padding:12px 7px !important;
        grid-template-columns:40px 94px minmax(0,1fr) !important;
        grid-template-rows:minmax(0,1fr) auto !important;
        row-gap:0 !important;
        align-items:stretch !important;
    }

    .ranking-section .product-card > .thumb,
    .ranking-list .product-card > .thumb,
    .ranking-section .product-card > .product-info,
    .ranking-list .product-card > .product-info,
    .ranking-section .product-card > .action,
    .ranking-list .product-card > .action {
        margin:0 !important;
        padding:0 !important;
    }

    .ranking-section .product-card > .action,
    .ranking-list .product-card > .action {
        align-self:end !important;
        justify-self:end !important;
    }
}

/* ============================================================
   FINAL SIDEBAR OVERRIDE
   白基調・線と段差で階層を表現・全階層フォントサイズ統一

   【重要】
   ・幅、高さ、padding、margin、段差、行高、ボタンサイズ等は変更しない
   ・背景色と線の色のみ白基調へ変更
   ・カテゴリー名のフォントサイズだけ第1階層と同じ14pxに統一
============================================================ */

/* ---------- サイドバー本体：白基調 ---------- */
.side-column .sidebar,
.side-column .sidebar.sidebar-no-title {
    background:#fff !important;
    border-color:#dfe1e3 !important;
}

/* ---------- 大分類：背景をほぼ使わず、左線で区別 ---------- */
.side-column .theme > .theme-btn {
    background:#fff !important;
    color:#202124 !important;
    border-left-color:#70757a !important;
}

.side-column .theme > .theme-btn:hover,
.side-column .theme > .theme-btn:focus {
    background:#fffafa !important;
    color:#202124 !important;
}

.side-column .theme > .theme-body {
    background:#fff !important;
}

.side-column .theme {
    border-bottom-color:#e3e5e7 !important;
}

/* ---------- カテゴリー行：基本はすべて白 ---------- */
.side-column .genre-row,
.side-column .genre-node.depth-1 > .genre-row,
.side-column .genre-node.depth-2 > .genre-row,
.side-column .genre-node.depth-3 > .genre-row,
.side-column .genre-node.depth-4 > .genre-row,
.side-column .genre-node.depth-5 > .genre-row,
.side-column .genre-node.depth-6 > .genre-row,
.side-column .genre-node.depth-7 > .genre-row,
.side-column .genre-node.depth-8 > .genre-row {
    background:#fff !important;
    border-bottom-color:#eceeef !important;
}

/* ---------- 階層は既存の段差＋左線の濃淡で表現 ---------- */
.side-column .genre-node.depth-1 > .genre-row {
    border-left-color:#7b8186 !important;
}

.side-column .genre-node.depth-2 > .genre-row {
    border-left-color:#a7adb2 !important;
}

.side-column .genre-node.depth-3 > .genre-row {
    border-left-color:#c8cdd1 !important;
}

.side-column .genre-node.depth-4 > .genre-row,
.side-column .genre-node.depth-5 > .genre-row,
.side-column .genre-node.depth-6 > .genre-row,
.side-column .genre-node.depth-7 > .genre-row,
.side-column .genre-node.depth-8 > .genre-row {
    border-left-color:#e0e3e5 !important;
}

/* ---------- 通常文字色を落ち着いた黒系に統一 ---------- */
.side-column .genre-node.depth-1 > .genre-row > .genre-link,
.side-column .genre-node.depth-2 > .genre-row > .genre-link,
.side-column .genre-node.depth-3 > .genre-row > .genre-link,
.side-column .genre-node.depth-4 > .genre-row > .genre-link,
.side-column .genre-node.depth-5 > .genre-row > .genre-link,
.side-column .genre-node.depth-6 > .genre-row > .genre-link,
.side-column .genre-node.depth-7 > .genre-row > .genre-link,
.side-column .genre-node.depth-8 > .genre-row > .genre-link {
    color:#222 !important;
}

/* ---------- 開いている経路：背景ではなく淡い線で示す ---------- */
.side-column .genre-node.in-current-path:not(.is-current) > .genre-row {
    background:#fff !important;
    box-shadow:inset 2px 0 0 rgba(110,117,123,.16) !important;
}

/* ---------- hoverだけ、ごく淡い赤 ---------- */
.side-column .genre-row:hover {
    background:#fffafa !important;
}

/* ---------- 現在地だけ淡い赤を使用 ---------- */
.side-column .genre-node.is-current > .genre-row,
.side-column .genre-row.current {
    background:#fff3f3 !important;
    border-left-color:#bf0000 !important;
}

.side-column .genre-node.is-current > .genre-row > .genre-link,
.side-column .genre-row.current > .genre-link {
    color:#bf0000 !important;
}

/* ============================================================
   フォントサイズ
   下位階層も第1階層と同じ14px
   ※ padding・段差・行高などは一切変更しない
============================================================ */
.side-column .genre-link,
.side-column .genre-link:link,
.side-column .genre-link:visited,
.side-column .genre-node.depth-1 > .genre-row > .genre-link,
.side-column .genre-node.depth-2 > .genre-row > .genre-link,
.side-column .genre-node.depth-3 > .genre-row > .genre-link,
.side-column .genre-node.depth-4 > .genre-row > .genre-link,
.side-column .genre-node.depth-5 > .genre-row > .genre-link,
.side-column .genre-node.depth-6 > .genre-row > .genre-link,
.side-column .genre-node.depth-7 > .genre-row > .genre-link,
.side-column .genre-node.depth-8 > .genre-row > .genre-link {
    font-size:14px !important;
}

@media screen and (max-width:768px) {
    .side-column .genre-link,
    .side-column .genre-link:link,
    .side-column .genre-link:visited {
        font-size:14px !important;
    }
}

