:root{
  --bg:#f7f5f0; --surface:#ffffff; --ink:#14274a; --muted:#56637a; --line:#e2ddd3;
  --accent:#0a7389; --on-accent:#ffffff; --brand:#12a3ae; --accent-soft:#e2f3f4; --warn-bg:#fbf6e9; --warn-line:#e9dcb5;
  --label:#fffdf6; --label-line:#cfc6b2;
  --rk-bg:#fff8f8; --rk-line:#f0c8c8; --rk-price:#bf0000;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --bg:#131a22; --surface:#1b2530; --ink:#e8ecef; --muted:#9aa7b5; --line:#2e3a47;
    --accent:#5cc8d2; --on-accent:#0d1b22; --brand:#5cc8d2; --accent-soft:#1d3440; --warn-bg:#27241b; --warn-line:#4a4331;
    --label:#262c2e; --label-line:#4a5356;
    --rk-bg:#2a1f22; --rk-line:#5a3a3f; --rk-price:#ff8a80;
  }
}
:root[data-theme="dark"]{
  --bg:#131a22; --surface:#1b2530; --ink:#e8ecef; --muted:#9aa7b5; --line:#2e3a47;
  --accent:#5cc8d2; --on-accent:#0d1b22; --brand:#5cc8d2; --accent-soft:#1d3440; --warn-bg:#27241b; --warn-line:#4a4331;
  --label:#262c2e; --label-line:#4a5356;
  --rk-bg:#2a1f22; --rk-line:#5a3a3f; --rk-price:#ff8a80;
}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font-family:"Noto Sans JP",system-ui,sans-serif;line-height:1.8;-webkit-text-size-adjust:100%}
a{color:var(--accent)}
.wrap{max-width:960px;margin:0 auto;padding:0 16px}
header.top{padding:18px 0}
header.top .wrap{display:flex;justify-content:space-between;align-items:center;gap:12px}
/* ブランド: 兄弟サイトは .brand-sub に分野名を入れる(例: 浄水器カートリッジ) */
.brand{display:flex;flex-direction:column;gap:2px;text-decoration:none;color:var(--ink)}
.brand img{display:block;height:44px;width:auto}
.brand-sub{font-size:13px;font-weight:700;color:var(--accent);letter-spacing:.04em}
@media (max-width:760px){.brand img{height:36px}}
.pr{font-size:12px;color:var(--muted);border:1px solid var(--line);border-radius:4px;padding:2px 8px}

/* hero */
.hero{padding:40px 0 56px}
.hero .wrap{display:grid;grid-template-columns:1.1fr .9fr;gap:40px;align-items:center}
.hero h1{font-family:"Zen Maru Gothic",sans-serif;font-size:clamp(40px,7vw,64px);line-height:1.25;margin:0 0 16px;letter-spacing:.02em}
.hero p.sub{font-size:17px;margin:0 0 28px;color:var(--ink)}
.search{display:flex;gap:8px;max-width:460px}
.search input{flex:1;min-width:0;font-size:16px;padding:14px 16px;border:2px solid var(--line);border-radius:10px;background:var(--surface);color:var(--ink);font-family:inherit}
.search input:focus{outline:none;border-color:var(--accent)}
.search button{font-size:16px;font-weight:700;padding:0 20px;border:0;border-radius:10px;background:var(--accent);color:var(--on-accent);font-family:inherit;cursor:pointer}
.hint{font-size:13px;color:var(--muted);margin-top:10px}

/* 型番ラベルの図 */
.demo{position:relative}
.plate{background:var(--label);border:1.5px solid var(--label-line);border-radius:8px;padding:18px 20px;font-size:13px;color:var(--muted);box-shadow:0 1px 0 var(--line);transform:rotate(-2deg)}
.plate .row{display:flex;justify-content:space-between;border-bottom:1px dashed var(--label-line);padding:4px 0}
.plate .row:last-child{border-bottom:0}
.plate b{color:var(--ink);font-family:ui-monospace,Consolas,monospace;font-size:15px;background:var(--accent-soft);padding:0 6px;border-radius:3px}
.arrow{text-align:center;color:var(--brand);font-size:26px;line-height:1;margin:14px 0}
.result{background:var(--surface);border:1px solid var(--line);border-left:4px solid var(--brand);border-radius:10px;padding:16px 18px}
.result .k{font-size:12px;color:var(--muted)}
.result .v{font-family:ui-monospace,Consolas,monospace;font-size:20px;font-weight:700;margin:2px 0 8px}
.result .src{font-size:12px;color:var(--muted)}
.demo .cap{font-size:12px;color:var(--muted);margin-top:10px;text-align:right}

section{padding:56px 0}
section h2{font-family:"Zen Maru Gothic",sans-serif;font-size:26px;margin:0 0 24px;line-height:1.5}

/* 迷いどころ */
.worries{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}
.worry{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:20px 22px}
.worry h3{font-size:17px;margin:0 0 6px}
.worry p{margin:0;color:var(--muted);font-size:15px}
.mono{font-family:ui-monospace,Consolas,monospace}

/* 手順 */
.steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:16px;counter-reset:s}
.steps li{counter-increment:s;padding-top:8px}
.steps li::before{content:counter(s);display:inline-grid;place-items:center;width:36px;height:36px;border-radius:50%;background:var(--accent);color:var(--on-accent);font-weight:700;margin-bottom:10px}
.steps h3{font-size:17px;margin:0 0 4px}
.steps p{margin:0;color:var(--muted);font-size:15px}

/* カテゴリ */
.cats{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.cat{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:20px 22px;text-decoration:none;color:var(--ink);display:block}
.cat h3{margin:0 0 4px;font-size:18px}
.cat p{margin:0;font-size:14px;color:var(--muted)}
.cat .tag{display:inline-block;font-size:12px;margin-top:10px;padding:1px 8px;border-radius:99px;background:var(--accent-soft);color:var(--accent)}
.cat.later{opacity:.65}

/* 方針 */
.policy{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.policy h3{font-size:16px;margin:0 0 4px;padding-left:12px;border-left:3px solid var(--accent)}
.policy p{margin:0;font-size:15px;color:var(--muted);padding-left:15px}

.closing{text-align:center;padding:64px 0}
.closing h2{margin-bottom:8px}
.closing p{margin:0 0 24px;color:var(--muted)}
.closing .search{margin:0 auto}

/* 免責 */
.notice{background:var(--warn-bg);border:1px solid var(--warn-line);border-radius:12px;padding:20px 22px;font-size:14px}
.notice h2{font-size:16px;margin:0 0 8px;font-family:inherit}
.notice ul{margin:0;padding-left:1.2em}
.notice li{margin:4px 0}

footer{border-top:1px solid var(--line);padding:28px 0 40px;font-size:13px;color:var(--muted)}
footer p{margin:4px 0}

@media (max-width:760px){
  .hero{padding:20px 0 40px}
  .hero .wrap{grid-template-columns:1fr;gap:32px}
  .worries,.steps,.cats,.policy{grid-template-columns:1fr}
  section{padding:40px 0}
  .search button{padding:0 16px}
}

/* ---- 生成ページ共通 ---- */
.sections{display:flex;justify-content:flex-start !important;gap:4px 16px;flex-wrap:wrap;padding-top:6px;font-size:14px}
.sections a{color:var(--muted);text-decoration:none}
.sections a[aria-current]{color:var(--accent);font-weight:700}
.page{padding:24px 16px 56px}
.page h1{font-family:"Zen Maru Gothic",sans-serif;font-size:clamp(24px,4.4vw,34px);line-height:1.4;margin:8px 0 12px}
.page h1 .maker{font-size:.7em;color:var(--muted)}
.page h2{font-family:"Zen Maru Gothic",sans-serif;font-size:21px;margin:40px 0 12px}
.page h3{font-size:15px;margin:18px 0 6px;color:var(--muted)}
.lead{font-size:17px;margin:0 0 20px}
.crumbs{font-size:13px;color:var(--muted);margin:0}
.crumbs a{color:var(--muted)}
.mono{font-family:ui-monospace,Consolas,monospace;letter-spacing:.02em}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px;margin:8px 0 12px}
.card{background:var(--surface);border:1px solid var(--line);border-left:4px solid var(--brand);border-radius:10px;padding:16px 18px}
.card.ended{border-left-color:var(--line)}
.card .k{font-size:12px;color:var(--muted);display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.card .v{font-size:24px;font-weight:700;margin:2px 0}
.card .v a{color:var(--ink);text-decoration:none}
.card .name{font-size:13px;color:var(--muted);margin-bottom:10px}
.buy{display:inline-block;background:var(--accent);color:var(--on-accent);text-decoration:none;font-weight:700;font-size:14px;padding:8px 14px;border-radius:8px}
.buy.primary{font-size:16px;padding:12px 20px}
.ad{font-size:11px;color:var(--muted);border:1px solid var(--line);border-radius:3px;padding:0 4px;vertical-align:middle}
.tag.end{background:var(--warn-bg);color:var(--muted);border:1px solid var(--warn-line);border-radius:99px;font-size:11px;padding:0 8px}
.warn{background:var(--warn-bg);border:1px solid var(--warn-line);border-radius:8px;padding:10px 14px}
.source{font-size:13px;color:var(--muted);margin-top:14px}
.meta{font-size:13px;color:var(--muted)}
.models{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:6px 12px}
.models li{font-size:15px}
.prose{max-width:760px}
.prose ul{padding-left:1.2em}
#results{margin:20px 0}
#results .hit{display:block;background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:12px 16px;margin:8px 0;text-decoration:none;color:var(--ink)}
#results .hit small{color:var(--muted);display:block}
.page .search{margin:8px 0}
.page .notice{margin-top:40px}
.hero.solo .wrap{grid-template-columns:1fr}
.hero.solo h1{font-size:clamp(34px,6vw,56px)}

/* ヘッダーの検索欄と候補 */
header.top .wrap{flex-wrap:wrap}
.hsearch{flex:1;max-width:320px;margin-left:auto;position:relative}
.hsearch input{width:100%;font-size:16px;padding:8px 12px;border:1.5px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink);font-family:inherit}
.hsearch input:focus{outline:none;border-color:var(--accent)}
.has-suggest{position:relative}
.suggest{position:absolute;left:0;right:0;top:100%;z-index:20;list-style:none;margin:4px 0 0;padding:4px;background:var(--surface);border:1px solid var(--line);border-radius:10px;box-shadow:0 8px 24px rgba(0,0,0,.12);max-height:60vh;overflow:auto}
.suggest li a{display:block;padding:8px 10px;border-radius:6px;text-decoration:none;color:var(--ink)}
.suggest li a small{display:block;color:var(--muted);font-size:12px}
.suggest li[aria-selected=true] a,.suggest li a:hover{background:var(--accent-soft)}
.suggest li.none{padding:8px 10px;color:var(--muted);font-size:13px}
.suggest li.intent a{padding-left:26px;font-size:14px;color:var(--accent)}.suggest li.intent a small{display:inline;margin-left:6px}.suggest li.intent .arrow{color:var(--muted);margin-right:4px}
.suggest li.hint{padding:6px 10px;color:var(--muted);font-size:12px;border-bottom:1px solid var(--line)}
.next{background:var(--accent-soft);border-radius:10px;padding:10px 14px;margin:14px 0}.next h2{margin:0 0 6px;font-size:16px}.next ul{margin:0}.next li{margin:.25em 0}.next .meta{font-size:13px}
.search.has-suggest{max-width:460px}
/* ランキング */
.ranking{padding-left:1.6em}
.ranking li{margin:6px 0}
.ranking .count{color:var(--muted);font-size:13px}
.compact{padding-left:1.2em}
@media (max-width:760px){.hsearch{order:3;max-width:none;flex-basis:100%}}

/* イラスト */
.hero-art img{width:100%;height:auto;display:block;border-radius:20px}
.hero .wrap > .hero-art{min-width:0}
.cat-art{padding-top:14px}
.cat-art img{width:88px;height:88px;border-radius:14px;display:block;margin-bottom:10px;background:var(--bg)}
.howto{display:grid;grid-template-columns:minmax(0,340px) 1fr;gap:28px;align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:20px}
.howto img{width:100%;height:auto;border-radius:12px;display:block}
.howto h2{margin-top:0}
.howto p{margin:0 0 8px;color:var(--muted)}
.sf-banner{position:relative;display:block;border-radius:18px;overflow:hidden;text-decoration:none;color:var(--ink);border:1px solid var(--line)}
.sf-banner img{width:100%;height:auto;display:block}
.sf-text{position:absolute;left:4%;top:50%;transform:translateY(-50%);max-width:38%;display:flex;flex-direction:column;gap:12px}
.sf-text strong{font-family:"Zen Maru Gothic",sans-serif;font-size:clamp(16px,2.4vw,26px);line-height:1.4;color:#14274a}
.sf-btn{align-self:flex-start;background:#0a7389;color:#fff;font-weight:700;font-size:14px;padding:8px 16px;border-radius:8px}
.sf-note{margin-top:6px}
@media (max-width:760px){
  .howto{grid-template-columns:1fr}
  .hero .wrap > .hero-art{max-width:420px}
  .sf-text{position:static;transform:none;max-width:none;padding:14px 16px;background:var(--surface)}
  .sf-text strong{color:var(--ink)}
}
.hero .wrap h1{font-size:clamp(32px,4.8vw,54px)}
.dots{display:inline-flex;gap:3px;margin-right:6px;vertical-align:middle}
.dots i{width:11px;height:11px;border-radius:50%;display:inline-block;box-shadow:0 0 0 1px rgba(0,0,0,.12)}
.related{margin-top:32px;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:16px 20px}
.related h2{margin:0 0 4px;font-size:18px}
.related ul{list-style:none;padding:0;margin:10px 0 0;display:flex;flex-wrap:wrap;gap:10px}
.buy.sub{background:var(--surface);color:var(--accent);border:1.5px solid var(--accent)}

/* 見出しは語の途中で改行しない(両サイト共通の規則) */
h1,h2,h3{text-wrap:balance;word-break:keep-all;overflow-wrap:anywhere}
/* ファーストビューの数字と3つの入口 */
.stats{list-style:none;padding:0;margin:18px 0 0;display:flex;flex-wrap:wrap;gap:8px 22px}
.stats li{font-size:13px;color:var(--muted)}
.stats strong{display:block;font-family:"Zen Maru Gothic",sans-serif;font-size:26px;color:var(--ink);line-height:1.2}
.paths{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.paths a{display:block;height:100%;background:var(--surface);border:1px solid var(--line);border-top:4px solid var(--brand);border-radius:12px;padding:14px 16px;text-decoration:none;color:var(--ink)}
.paths strong{display:block;font-size:17px;margin-bottom:2px}
.paths span{font-size:13px;color:var(--muted)}
.paths a:hover{border-color:var(--accent)}
@media (max-width:760px){.paths{grid-template-columns:1fr}}

/* ---- 間隔の統一(8/12/16/24) と 購入ボタンの組 ---- */
.buy-group{display:inline-flex;align-items:center;gap:6px;white-space:nowrap;max-width:100%}
.buy-group .buy{white-space:normal}
.act{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin:12px 0 0}
p.act{margin:16px 0}
.card{display:flex;flex-direction:column}
.card .act{margin-top:auto;padding-top:12px}
.card .k{margin-bottom:4px}
.card .name{margin-bottom:4px}
.cards{gap:16px;margin:12px 0 16px}
.models{gap:8px 16px;margin:8px 0 16px}
.models li{line-height:1.6}
.page h2{margin:40px 0 12px}
.page h3{margin:24px 0 8px}
.crumbs{margin-bottom:8px}
.lead{margin-bottom:16px}
.source{margin:16px 0 8px}
.related ul{gap:12px}
.related li{margin:0}
.paths{gap:16px}
.stats{gap:12px 24px}
.tag.end{margin-left:6px}
.next{margin-top:32px}
.compact li{margin:6px 0}
footer p{margin:8px 0}
.rk-card{margin:12px 0 !important}
/* 販売終了品 */
.ended-h{font-size:18px !important;color:var(--muted)}
.card.ended{opacity:.85}
.ended-list{margin:8px 0 16px}
.ended-list summary{cursor:pointer;color:var(--muted);font-size:14px;padding:6px 0}
#results .hit.ended{opacity:.75}
/* 検索欄の「販売終了品も表示する」 */
.search{flex-wrap:wrap}
.ended-opt{flex-basis:100%;font-size:13px;color:var(--muted);display:flex;align-items:center;gap:6px;margin-top:4px;cursor:pointer}
.ended-opt input{width:16px;height:16px;margin:0}
@media (max-width:760px){.card .act .buy-group{flex:1 1 100%}.card .act .buy{flex:1;text-align:center}}
.spec{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 16px}
.spec > span:not(.dots){background:var(--surface);border:1px solid var(--line);border-radius:99px;padding:2px 12px;font-size:13px}
.spec .tag.end{margin-left:0}
.page h3 .meta{margin-left:6px;font-weight:400}

/* ---- 点検を受けた改善(押しやすさ・確認・互換品チェック・色の絞り込み) ---- */
.buy{min-height:48px;display:inline-flex;align-items:center;justify-content:center;padding:10px 16px;font-size:15px}
.buy.primary{min-height:52px;font-size:16px}
.buy.alt{background:#5b6b79}
.search input,.hsearch input{min-height:48px}
.search button{min-height:48px}
.ad{font-size:12px}
.card .k{font-size:13px}
.card .name{font-size:15px}
.chk{font-size:13px;color:var(--muted);margin:8px 0 0;line-height:1.6}
.card .chk{margin-top:6px}
.variants{background:var(--accent-soft);border-radius:10px;padding:10px 14px;margin:0 0 16px}
.variants a{font-weight:700}
.compat-opt,.ended-opt{display:flex;align-items:center;gap:8px;font-size:14px;color:var(--muted);min-height:44px;cursor:pointer}
.compat-opt input,.ended-opt input{flex:none;width:20px;height:20px;margin:0;min-height:0}
.search .ended-opt input{min-height:0}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 12px}
.chip{min-height:40px;padding:6px 16px;border-radius:99px;border:1.5px solid var(--line);background:var(--surface);color:var(--ink);font:inherit;font-size:14px;cursor:pointer}
.chip.on{border-color:var(--accent);background:var(--accent-soft);color:var(--accent);font-weight:700}
.card[hidden]{display:none}
.exits{display:flex;flex-wrap:wrap;gap:8px 16px;margin:8px 0 0;font-size:14px}
.exits a{display:inline-flex;align-items:center;min-height:44px}
.sections a{display:inline-flex;align-items:center;min-height:44px;padding:0 4px}
.models li a{display:inline-block;padding:6px 0;min-height:32px}
.buy-bar{position:fixed;left:0;right:0;bottom:0;z-index:30;background:var(--surface);border-top:1px solid var(--line);box-shadow:0 -6px 18px rgba(0,0,0,.08);padding:10px 16px calc(10px + env(safe-area-inset-bottom));transform:translateY(110%);transition:transform .2s}
.buy-bar.show{transform:none}
.buy-bar .act{margin:0}
.buy-bar.bar3{padding-top:8px}
/* Yahoo!ショッピングのボタンは文言が長く、スマホのカードで「探/す」のように語の途中で折れる。対応ブラウザでは文節で折る */
.buy-yahoo{word-break:auto-phrase;text-wrap:balance}
.buy-bar.bar3 .act{flex-wrap:nowrap;gap:8px}
.buy-bar.bar3 .buy-group{flex:1 1 auto;min-width:0}
.buy-bar.bar3 .buy{width:100%;min-height:44px;padding:8px 10px;font-size:14px}
.bar-cap{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--muted);margin:0 0 6px}
@media (min-width:761px){.buy-bar{display:none}}
@media (max-width:760px){
  .sections{flex-wrap:nowrap;overflow-x:auto;white-space:nowrap;-webkit-overflow-scrolling:touch;scrollbar-width:none;gap:0 14px}
  .sections::-webkit-scrollbar{display:none}
  .sections a{flex:none}
}
@media (max-width:760px){header.top nav.sections{flex-wrap:nowrap;overflow-x:auto}}
/* 機種の保存・交換の時期に知らせる */
.mytools{display:flex;flex-wrap:wrap;align-items:flex-start;gap:8px 12px;margin:0 0 12px}
.tool-btn{display:inline-flex;align-items:center;min-height:44px;padding:8px 14px;border:1.5px solid var(--line);border-radius:10px;background:var(--surface);color:var(--ink);font:inherit;font-size:14px;cursor:pointer;list-style:none}
.tool-btn::-webkit-details-marker{display:none}
.tool-btn.on{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}
.tool-btn.primary{background:var(--accent);color:var(--on-accent);border-color:var(--accent);font-weight:700}
.remind[open] > summary{border-color:var(--accent);color:var(--accent)}
.remind-body{margin-top:8px;padding:12px 14px;background:var(--surface);border:1px solid var(--line);border-radius:10px;display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center;max-width:520px}
.remind-body select{min-height:44px;font:inherit;font-size:15px;padding:4px 8px;margin-left:6px;border-radius:8px;border:1.5px solid var(--line);background:var(--surface);color:var(--ink)}
.remind-body .meta{flex-basis:100%;margin:0}
.saved{background:var(--accent-soft);border-radius:14px;padding:14px 18px;margin-bottom:16px}
.saved h2{margin:0 0 6px !important;font-size:18px}
.linklike{background:none;border:0;color:var(--muted);font:inherit;font-size:12px;text-decoration:underline;cursor:pointer;min-height:32px}
/* ---- 検索結果の絞り込み・一覧の頭文字ジャンプと絞り込み入力・品番の一覧 ---- */
.filters{display:flex;flex-direction:column;gap:8px;margin:16px 0 8px;padding:12px 14px;background:var(--surface);border:1px solid var(--line);border-radius:12px}
.facet{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px}
.facet-h{flex-basis:100%;font-size:12px;font-weight:700;color:var(--muted)}
.facet .chip,.sortbar .chip{min-height:40px;padding:4px 12px;font-size:14px}
.chip[aria-pressed="true"]{border-color:var(--accent);background:var(--accent-soft);color:var(--accent);font-weight:700}
.chip .n{font-size:12px;color:var(--muted);font-weight:400;margin-left:2px}
.chip.more{border-style:dashed;color:var(--muted)}
.chip:focus-visible,.jump a:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
#results .count{font-size:13px;color:var(--muted);margin:8px 0 0}
#results .tool-btn{margin-top:8px}
.jump{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0 12px}
.jump a{display:inline-flex;align-items:center;gap:4px;min-height:40px;min-width:44px;justify-content:center;padding:4px 10px;border:1.5px solid var(--line);border-radius:8px;background:var(--surface);text-decoration:none;font-weight:700}
.jump a .meta{font-weight:400;font-size:11px}
.jump a[hidden],.mgroup[hidden],.mlist li[hidden]{display:none}
.mfilter{margin:8px 0 12px}
.mfilter label{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;font-size:14px;color:var(--muted)}
.mfilter input{flex:1 1 200px;max-width:320px;min-height:44px;font-size:16px;padding:8px 12px;border:1.5px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink);font-family:inherit}
.mfilter input:focus{outline:none;border-color:var(--accent)}
.mgroup h2 .meta,.mgroup h3 .meta{margin-left:6px;font-weight:400}
.mgroup h3,.mgroup h2{scroll-margin-top:12px}
.models li.ended a{color:var(--muted)}
.plist{list-style:none;padding:0;margin:8px 0 16px;display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:4px 16px}
.plist li{display:flex;flex-wrap:wrap;align-items:baseline;gap:0 8px;padding:6px 0;border-bottom:1px dashed var(--line);line-height:1.5}
.plist li a{font-weight:700;min-height:32px;display:inline-flex;align-items:center}
.plist .count{margin-left:auto;font-size:13px;color:var(--muted);white-space:nowrap}
.plist li.ended a{color:var(--muted)}
.filters[hidden],.sortbar[hidden]{display:none}
.sortbar{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 8px}
@media (max-width:760px){
  /* スマホでは軸ごとに1行・横にスクロール(結果が下に押し出されないように) */
  .filters{padding:8px 0 8px 12px;gap:4px}
  .facet{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding-right:12px}
  .facet::-webkit-scrollbar{display:none}
  .facet-h{flex:none;flex-basis:auto;min-width:4.5em;font-size:11px;line-height:1.3}
  .facet .chip{flex:none;white-space:nowrap}
}
/* 本体ページ: 種類ごとの見出し・同じ品名の注意・ツールはカードの下 */
.page h2.kind-h{font-size:17px;margin:20px 0 4px}
/* 本体ページの最初の種類の見出しはリード文に詰める(スマホで最初の購入ボタンを最初の画面に入れる) */
.page .lead:has(+ .kind-h){margin-bottom:10px}
.page .lead + .kind-h{margin-top:0}
.page h2.kind-h .meta{margin-left:6px;font-weight:400}
.same-name{margin:0 0 8px}
.page .compat-opt{margin-top:4px}
.tool-link{display:inline-flex;align-items:center;min-height:44px;font-size:14px}
/* 品番ページ: メーカーが示す現行品 */
.successor{background:var(--accent-soft);border-radius:10px;padding:10px 14px;margin:0 0 16px}
.successor p{margin:0}
/* 型番の見つけ方 */
.howto-list{padding-left:1.2em}
.howto-list li{margin:8px 0}
.howto-list .source{margin:0;font-size:12px}
/* 保存した機種の消耗品 */
.my-item{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:12px 16px;margin:12px 0}
.my-item h2{font-size:18px;margin:0 0 4px}
.my-item ul{list-style:none;padding:0;margin:0}
.my-item li{padding:10px 0;border-top:1px solid var(--line)}
.my-item li:first-child{border-top:0}
.my-item .act{margin-top:8px}
@media (max-width:760px){.my-item .act .buy-group{flex:1 1 100%}.my-item .act .buy{flex:1;text-align:center}}
/* 楽天の商品カード(scripts/build.mjs rakutenCard)。色はトークンで持ち、ダークモードでも文字が読めるようにする */
.rk-card{color:var(--ink)}
.rk-card a{color:var(--accent)}
