/* きんぷら派 共通スタイル（一覧カード・要約枠・会話） */
.kp-list { list-style: none; margin: 0 0 1.5em; padding: 0; display: grid; gap: 12px; }
.kp-card { display: flex; gap: 12px; border: 1px solid #e3e3e3; border-radius: 10px; padding: 12px; background: #fff; }
.kp-card-thumb { flex: 0 0 72px; }
.kp-card-thumb img.kp-thumb { width: 72px; height: auto; border-radius: 6px; display: block; }
.kp-card-body { flex: 1 1 auto; min-width: 0; }
.kp-card-title { font-size: 1.05em; margin: 4px 0 6px; line-height: 1.4; }
.kp-card-title a { text-decoration: none; }
.kp-card-meta { font-size: 0.85em; color: #555; display: flex; flex-wrap: wrap; gap: 4px 12px; margin-bottom: 8px; }
.kp-badges { display: flex; flex-wrap: wrap; gap: 6px; }
.kp-badge { display: inline-block; font-size: 0.78em; font-weight: 700; line-height: 1; padding: 5px 8px; border-radius: 999px; background: #eee; color: #333; }
.kp-badge-off { background: #e53935; color: #fff; }
.kp-badge-pt { background: #fb8c00; color: #fff; }
.kp-badge-price { background: #1e88e5; color: #fff; }
.kp-badge-type { background: #eceff1; color: #37474f; }
.kp-left { font-weight: 700; color: #c62828; }
.kp-left-today { color: #d84315; }
.kp-left-over { color: #777; }
.kp-updated { color: #888; }
.kp-amazon { display: inline-block; background: #ff9900; color: #111; font-weight: 700; padding: 8px 14px; border-radius: 6px; text-decoration: none; font-size: 0.95em; }
.kp-amazon:hover { background: #e68a00; color: #111; }
.kp-empty { color: #777; }
.kp-box { border: 2px solid #ffcc80; background: #fff8e1; border-radius: 10px; padding: 14px 16px; margin: 0 0 1.5em; }
.kp-box-period { margin: 8px 0; font-size: 0.95em; }
.kp-box-period .kp-period { margin-right: 10px; }
.kp-box p { margin: 6px 0; font-size: 0.9em; }
.kp-note { font-size: 0.85em; color: #666; border-top: 1px solid #eee; padding-top: 10px; margin-top: 1.5em; }
.kp-note-ad { border-top: 0; padding-top: 0; margin-top: 0.3em; }
/* 会話（投稿スクリプトが <div class="kp-talk"> の中に <p class="talk-a">/<p class="talk-b"> で書く） */
.kp-talk p { position: relative; margin: 0 0 14px; padding: 12px 14px; border-radius: 12px; line-height: 1.7; max-width: 92%; }
.kp-talk p .name { display: block; font-size: 0.78em; font-weight: 700; color: #777; margin-bottom: 4px; }
.kp-talk p.talk-a { background: #e3f2fd; margin-right: auto; }
.kp-talk p.talk-b { background: #fce4ec; margin-left: auto; }
@media (max-width: 600px) {
  .kp-card { flex-direction: row; }
  .kp-card-thumb { flex-basis: 56px; }
  .kp-card-thumb img.kp-thumb { width: 56px; }
}


/* ===================== ダークモード（価格.com の配色を参考: 黒〜濃灰の背景・青いリンク・薄灰の本文） ===================== */
:root {
  --color_bg: #1a1a1a; --color_text: #d9d9d9; --color_link: #4da3ff; --color_header_bg: #111; --color_header_text: #d9d9d9; --color_footer_bg: #111; --color_footer_text: #bbb; --color_border: #3a3a3a;
  --kp-bg: #1a1a1a; --kp-bg2: #232323; --kp-bg3: #2b2b2b; --kp-border: #3a3a3a;
  --kp-text: #d9d9d9; --kp-muted: #9a9a9a; --kp-link: #4da3ff; --kp-link-hover: #8cc4ff;
  --kp-red: #ff5a5a; --kp-orange: #ffa94d; --kp-head-bg: #111;
}
body, #body_wrap, .l-content, .l-mainContent, .l-article, .p-articleBody, .w-beforeFooter, .l-footer, .l-header, .p-postList__body {
  background-color: var(--kp-bg) !important; color: var(--kp-text) !important;
}
.l-header, .l-header__inner, .l-header__bar, .l-header__menu, .c-gnav, .p-spHeadMenu { background: var(--kp-head-bg) !important; color: var(--kp-text) !important; }
.l-header a, .c-gnav a, .l-footer a, .c-siteTitle, .c-headLogo, .c-headLogo__link { color: var(--kp-text) !important; }
a { color: var(--kp-link); }
a:hover { color: var(--kp-link-hover); }
h1, h2, h3, h4, .c-postTitle__ttl, .p-postList__title, .c-widget__title { color: var(--kp-text) !important; }
.kp-card, .kp-box { background: var(--kp-bg2); border-color: var(--kp-border); color: var(--kp-text); }
.kp-box { border-color: #6b5420; background: #2a2412; }
.kp-note { color: var(--kp-muted); border-color: var(--kp-border); }
.kp-talk p.talk-a { background: #1f2d3d; }
.kp-talk p.talk-b { background: #3a2230; }
.kp-talk p .name { color: var(--kp-muted); }
.kp-badge { background: var(--kp-bg3); color: var(--kp-text); }
.kp-card-meta, .kp-updated { color: var(--kp-muted); }
/* 価格.com 型のマス目 */
.kp-top { max-width: 1240px; margin: 0 auto; padding: 8px 12px 24px; }
.kp-search { display: flex; gap: 6px; margin: 6px 0 14px; background: #242424; border: 1px solid var(--kp-border); padding: 10px; border-radius: 6px; }
.kp-search input[type="search"] { flex: 1; background: #151515; color: var(--kp-text); border: 1px solid var(--kp-border); border-radius: 4px; padding: 10px 12px; font-size: 1em; }
.kp-search button { background: #1f5fb2; color: #fff; border: 0; border-radius: 4px; padding: 0 28px; font-weight: 700; font-size: 1.05em; cursor: pointer; }
.kp-search button:hover { background: #2a73d1; }
.kp-top-cols { display: grid; grid-template-columns: minmax(0, 1fr) 260px; gap: 14px; align-items: start; }
.kp-cols3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; align-items: start; }
.kp-cols-others { margin-top: 14px; }
.kp-col { background: var(--kp-bg2); border: 1px solid var(--kp-border); border-top: 4px solid var(--kp-link); border-radius: 4px; overflow: hidden; }
.kp-col-title { font-size: 1.05em; margin: 0 !important; padding: 8px 12px; color: #fff !important; background: #2b2b2b; border: 0 !important; letter-spacing: .04em; }
.kp-col .kp-grid { grid-template-columns: 1fr; border: 0; background: var(--kp-bg2); gap: 0; }
.kp-col .kp-cell { min-height: 0; padding: 8px 12px; border-bottom: 1px solid var(--kp-border); }
.kp-col .kp-cell:last-child { border-bottom: 0; }
/* 列の色分け: 左 漫画＝赤系 / 中央 ラノベ＝青系 / 右 小説＝緑系 */
.kp-col-manga { border-top-color: #ff6b6b; } .kp-col-manga .kp-col-title { background: #4a1f1f; } .kp-col-manga .kp-cell-title { color: #ff8a8a; }
.kp-col-lightnovel { border-top-color: #4da3ff; } .kp-col-lightnovel .kp-col-title { background: #1b3556; } .kp-col-lightnovel .kp-cell-title { color: #6fb6ff; }
.kp-col-novel { border-top-color: #4cd97b; } .kp-col-novel .kp-col-title { background: #1c4030; } .kp-col-novel .kp-cell-title { color: #7fe3a3; }
.kp-col-business { border-top-color: #ffb84d; } .kp-col-business .kp-col-title { background: #4a3a16; } .kp-col-business .kp-cell-title { color: #ffcf7a; }
.kp-col-tech { border-top-color: #b48cff; } .kp-col-tech .kp-col-title { background: #332552; } .kp-col-tech .kp-cell-title { color: #c9adff; }
.kp-col-magazine, .kp-col-other { border-top-color: #9a9a9a; } .kp-col-magazine .kp-col-title, .kp-col-other .kp-col-title { background: #333; }
.kp-col-title-news { background: #2b2b2b; border-top: 4px solid #9a9a9a; }
.kp-sec { margin: 0 0 14px; }
.home .l-article, .home .post_content { padding: 0 !important; }
.kp-top .l-article__content > *:first-child, .kp-top section { margin-top: 0; }
.kp-sec-title { font-size: 1em; margin: 0 0 4px; padding: 4px 10px; background: var(--kp-bg3); border-left: 4px solid var(--kp-link); border-radius: 3px; color: var(--kp-text) !important; }
.kp-grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; background: var(--kp-border); border: 1px solid var(--kp-border); }
.kp-cell { display: flex; gap: 10px; background: var(--kp-bg2); padding: 8px 10px; min-height: 92px; margin: 0; }
.kp-cell:hover { background: var(--kp-bg3); }
.kp-cell-cover { flex: 0 0 56px; width: 56px; height: 80px; display: flex; align-items: center; justify-content: center; background: #151515; border: 1px solid var(--kp-border); overflow: hidden; }
.kp-cell-cover img { width: 100%; height: 100%; object-fit: cover; display: block; }
.kp-nocover { font-size: 0.72em; line-height: 1.3; color: var(--kp-muted); text-align: center; padding: 4px; word-break: break-all; }
.kp-cell-body { display: flex; flex-direction: column; min-width: 0; gap: 2px; }
.kp-cell-title { color: var(--kp-link); font-weight: 700; font-size: 0.95em; line-height: 1.35; text-decoration: none; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.kp-cell-title:hover { text-decoration: underline; }
.kp-cell-author { color: var(--kp-muted); font-size: 0.8em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.kp-cell-price { font-size: 0.82em; color: var(--kp-text); display: flex; flex-wrap: wrap; gap: 6px; align-items: baseline; }
.kp-cell-price b { color: #ffd166; font-size: 1.1em; }
.kp-cell-price s { color: var(--kp-muted); }
.kp-cell-price em { font-style: normal; font-weight: 700; padding: 1px 6px; border-radius: 3px; font-size: 0.9em; }
.kp-cell-price .kp-off { background: var(--kp-red); color: #fff; }
.kp-cell-price .kp-pt { background: var(--kp-orange); color: #111; }
.kp-cell-end { font-size: 0.75em; color: var(--kp-muted); }
.kp-top-side .kp-news { list-style: none; margin: 0; padding: 0; border: 1px solid var(--kp-border); background: var(--kp-bg2); }
.kp-top-side .kp-news li { border-bottom: 1px solid var(--kp-border); margin: 0; }
.kp-top-side .kp-news li:last-child { border-bottom: 0; }
.kp-top-side .kp-news a { display: block; padding: 8px 10px; color: var(--kp-text); text-decoration: none; }
.kp-top-side .kp-news a:hover { background: var(--kp-bg3); }
.kp-news-badges { display: block; margin-bottom: 3px; }
.kp-news-badges .kp-badge { font-size: 0.7em; padding: 3px 6px; }
.kp-news-title { font-size: 0.9em; line-height: 1.4; }
/* トップではテーマのサイドバー・余白を使わない */
.home #sidebar, .home .l-sidebar, .home .p-breadcrumb, .home .c-pageTitle, .home .p-articleFoot, .home .p-articleHead, .home .p-mainVisual, .home .l-mainVisual, .home #main_visual, .home .p-postList__wrap, .home .l-topTitleArea { display: none !important; }
.home .l-content, .home .l-mainContent, .home .l-article { max-width: 100% !important; width: 100% !important; padding: 0 !important; margin: 0 !important; }
/* 左の追従シェアボタン（Facebook・はてな・Pocket・LINE・コピー）は当分使わない（2026-11-05 ユーザー様指示） */
.c-shareBtns.-fix, #fix_sns, .l-fixSns, .p-fixSns { display: none !important; }
@media (max-width: 1000px) { .kp-top-cols { grid-template-columns: 1fr; } .kp-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .kp-cols3 { grid-template-columns: 1fr; } }
@media (max-width: 560px) { .kp-grid { grid-template-columns: 1fr; } }
