/* フィル助 カスタムスタイル */
:root {
    --fs-blue:    #1565c0;
    --fs-blue-lt: #e8f0fe;
    --fs-orange:  #e65100;
    --fs-green:   #2e7d32;
    --fs-gray:    #f5f5f5;
    --fs-border:  #dde1e7;
    --fs-text:    #212121;
    --fs-sub:     #616161;
    --fs-max-w:   960px;
}

/* ===== レイアウト ===== */
.fs-container { max-width: var(--fs-max-w); margin: 0 auto; padding: 0 1rem; }
.site-inner    { padding-top: 0; }
.content       { width: 100%; max-width: 100%; }

/* ===== ヒーロー ===== */
.fs-hero {
    background: linear-gradient(135deg, #1565c0 0%, #0d47a1 100%);
    color: #fff;
    padding: 3.5rem 1rem 3rem;
    text-align: center;
}
.fs-hero__title { font-size: 2.8rem; font-weight: 800; margin: 0 0 0.4rem; letter-spacing: -.02em; color: #fff; }
.fs-hero__sub   { font-size: 1.15rem; margin: 0 0 2rem; opacity: .9; }

/* ===== 検索フォーム ===== */
.fs-search-wrap { max-width: 620px; margin: 0 auto; }
.fs-search      { position: relative; }
.fs-search__input {
    width: 100%; padding: .85rem 3rem .85rem 1.1rem;
    font-size: 1rem; border: none; border-radius: 8px;
    box-shadow: 0 4px 16px rgba(0,0,0,.25); outline: none;
    box-sizing: border-box;
}
.fs-search__input:focus { box-shadow: 0 4px 20px rgba(0,0,0,.35); }
.fs-search__icon { position: absolute; right: 1rem; top: 50%; transform: translateY(-50%); font-size: 1.1rem; pointer-events: none; }
.fs-search__hint { font-size: .82rem; opacity: .75; margin: .5rem 0 0; }
.fs-search__dropdown {
    position: absolute; top: calc(100% + 4px); left: 0; right: 0;
    background: #fff; border-radius: 8px; border: 1px solid var(--fs-border);
    box-shadow: 0 8px 24px rgba(0,0,0,.15); z-index: 100; overflow: hidden;
    max-height: 320px; overflow-y: auto;
}
.fs-search__dropdown li { list-style: none; }
.fs-search__dropdown a {
    display: flex; align-items: center; gap: .5rem;
    padding: .7rem 1rem; color: var(--fs-text); text-decoration: none; font-size: .95rem;
}
.fs-search__dropdown a:hover { background: var(--fs-blue-lt); }
.fs-search__type {
    font-size: .7rem; padding: .15rem .4rem; border-radius: 3px; flex-shrink: 0;
    background: var(--fs-blue-lt); color: var(--fs-blue);
}
.fs-search__type--filter { background: #fff3e0; color: #e65100; }

/* ===== メーカーカード ===== */
.fs-makers { padding: 3rem 1rem; background: #fff; }
.fs-section-title { font-size: 1.4rem; font-weight: 700; margin: 0 0 1.5rem; color: var(--fs-text); }
.fs-makers__grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 1rem; }
.fs-maker-card {
    display: flex; flex-direction: column; align-items: center; justify-content: center;
    padding: 1.5rem 1rem; border: 2px solid var(--fs-border); border-radius: 10px;
    text-decoration: none; color: var(--fs-text); text-align: center;
    transition: border-color .2s, box-shadow .2s;
}
.fs-maker-card:hover { border-color: var(--fs-blue); box-shadow: 0 4px 12px rgba(21,101,192,.15); }
.fs-maker-card__name  { font-size: 1.1rem; font-weight: 700; }
.fs-maker-card__count { font-size: .82rem; color: var(--fs-sub); margin-top: .3rem; }

/* ===== How セクション ===== */
.fs-how { padding: 3rem 1rem; background: var(--fs-gray); }
.fs-how__grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 1.5rem; }
.fs-how__item { background: #fff; padding: 1.5rem; border-radius: 10px; }
.fs-how__num  { width: 2rem; height: 2rem; border-radius: 50%; background: var(--fs-blue); color: #fff;
                display: flex; align-items: center; justify-content: center; font-weight: 700; margin-bottom: .7rem; }
.fs-how__item h3 { font-size: 1rem; font-weight: 700; margin: 0 0 .5rem; }
.fs-how__item p  { font-size: .9rem; color: var(--fs-sub); margin: 0; }

/* ===== パンくず ===== */
.fs-breadcrumb { font-size: .82rem; color: var(--fs-sub); margin: 1.2rem 0; }
.fs-breadcrumb a { color: var(--fs-blue); text-decoration: none; }
.fs-breadcrumb a:hover { text-decoration: underline; }

/* ===== 機種ページ ===== */
.fs-appliance { padding: 1.5rem 0 3rem; }
.fs-appliance__header h1 { font-size: 1.6rem; font-weight: 800; margin: 0 0 .4rem; }
.fs-appliance__meta { color: var(--fs-sub); font-size: .9rem; margin: 0 0 .5rem; }
.fs-source a { font-size: .85rem; color: var(--fs-blue); }
.fs-filter-group { margin: 2.5rem 0; }
.fs-filter-group h2 { font-size: 1.25rem; font-weight: 700; border-left: 4px solid var(--fs-blue); padding-left: .7rem; margin-bottom: 1rem; }

/* ===== フィルターカード ===== */
.fs-filter-card { background: #fff; border: 1px solid var(--fs-border); border-radius: 10px; padding: 1.2rem 1.4rem; margin-bottom: 1.2rem; }
.fs-filter-card__head { display: flex; align-items: center; gap: .7rem; margin-bottom: .6rem; flex-wrap: wrap; }
.fs-filter-card__title { font-size: 1.05rem; font-weight: 700; color: var(--fs-blue); text-decoration: none; }
.fs-filter-card__title:hover { text-decoration: underline; }
.fs-filter-card__note { font-size: .85rem; color: var(--fs-orange); background: #fff3e0; padding: .4rem .7rem; border-radius: 4px; margin: .5rem 0; }

/* ===== 比較テーブル ===== */
.fs-compare-table { width: 100%; border-collapse: collapse; font-size: .9rem; margin-top: .8rem; }
.fs-compare-table th { background: #eeeeee; padding: .55rem .7rem; text-align: left; font-weight: 600; font-size: .8rem; white-space: nowrap; }
.fs-compare-table td { padding: .6rem .7rem; border-bottom: 1px solid var(--fs-border); vertical-align: middle; }
.fs-compare-table__genuine td { background: #f9fff9; }
.fs-compare-table__compat  td { background: #fff; }
.fs-compare-table tr:last-child td { border-bottom: none; }

/* ===== バッジ ===== */
.fs-badge { display: inline-block; font-size: .72rem; font-weight: 700; padding: .2rem .5rem; border-radius: 3px; white-space: nowrap; }
.fs-badge--genuine  { background: #e8f5e9; color: var(--fs-green); }
.fs-badge--compat   { background: #fff3e0; color: var(--fs-orange); }
.fs-badge--interval { background: var(--fs-blue-lt); color: var(--fs-blue); }

/* ===== リスクセル ===== */
.fs-risk--low { color: var(--fs-green); font-size: .82rem; }
.fs-risk--med { color: var(--fs-orange); font-size: .82rem; }

/* ===== ボタン ===== */
.fs-btn { display: inline-block; padding: .35rem .8rem; border-radius: 4px; font-size: .82rem; font-weight: 600; text-decoration: none; white-space: nowrap; }
.fs-btn--amazon  { background: #ff9900; color: #111; }
.fs-btn--rakuten { background: #bf0000; color: #fff; }
.fs-btn--compat  { background: var(--fs-blue); color: #fff; }
.fs-btn:hover    { opacity: .85; }

/* ===== 注意書き ===== */
.fs-notice { padding: .9rem 1rem; border-radius: 6px; font-size: .88rem; margin: 1rem 0; }
.fs-notice--info { background: var(--fs-blue-lt); color: #0d47a1; border-left: 3px solid var(--fs-blue); }
.fs-notice--warn { background: #fff3e0; color: #bf360c; border-left: 3px solid var(--fs-orange); }

/* ===== 機種一覧グリッド ===== */
.fs-appliance-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 1rem; margin-top: 1.5rem; }
.fs-appliance-card { display: block; padding: 1rem 1.2rem; background: #fff; border: 1px solid var(--fs-border); border-radius: 8px; text-decoration: none; color: var(--fs-text); transition: border-color .2s; }
.fs-appliance-card:hover { border-color: var(--fs-blue); }
.fs-appliance-card__model  { font-size: 1.05rem; font-weight: 700; color: var(--fs-blue); }
.fs-appliance-card__series { font-size: .82rem; color: var(--fs-sub); margin-top: .2rem; }
.fs-appliance-card__meta   { font-size: .78rem; color: var(--fs-sub); margin-top: .4rem; }
.fs-appliance-card__count  { background: var(--fs-gray); padding: .1rem .4rem; border-radius: 3px; }

/* ===== フィルター機種一覧 ===== */
.fs-appliance-list { list-style: none; padding: 0; margin: .8rem 0 0; columns: 2; gap: 1rem; }
.fs-appliance-list li { margin-bottom: .4rem; break-inside: avoid; }
.fs-appliance-list a { color: var(--fs-blue); font-size: .9rem; text-decoration: none; }
.fs-appliance-list a:hover { text-decoration: underline; }

/* ===== アーカイブ ===== */
.fs-archive-header { margin-bottom: 2rem; }
.fs-archive-header h1 { font-size: 1.6rem; font-weight: 800; margin: 0 0 .5rem; }
.fs-archive-header p  { color: var(--fs-sub); font-size: .95rem; }

/* ===== 本文エリア ===== */
.fs-entry-content { margin-top: 2rem; padding-top: 1.5rem; border-top: 1px solid var(--fs-border); }

/* ===== レスポンシブ ===== */
@media (max-width: 640px) {
    .fs-hero__title { font-size: 2rem; }
    .fs-compare-table { font-size: .78rem; }
    .fs-compare-table th, .fs-compare-table td { padding: .4rem .4rem; }
    .fs-appliance-list { columns: 1; }
    .fs-how__grid, .fs-makers__grid { grid-template-columns: 1fr; }
}

/* ===== 型番ガイド ===== */
.fs-model-guide {
    margin-top: 1.2rem;
}
.fs-model-guide__toggle {
    display: inline-block; cursor: pointer;
    color: rgba(255,255,255,.85); font-size: .9rem;
    padding: .4rem .8rem; border: 1px solid rgba(255,255,255,.4);
    border-radius: 20px; list-style: none; user-select: none;
    transition: background .2s;
}
.fs-model-guide__toggle:hover { background: rgba(255,255,255,.15); }
.fs-model-guide[open] .fs-model-guide__toggle { background: rgba(255,255,255,.2); }
.fs-model-guide__body {
    background: rgba(255,255,255,.95); color: var(--fs-text);
    border-radius: 10px; padding: 1.5rem; margin-top: .7rem;
    text-align: left;
}
.fs-model-guide__grid {
    display: grid; grid-template-columns: repeat(auto-fill, minmax(220px,1fr));
    gap: 1rem; margin-bottom: 1rem;
}
.fs-model-guide__item { border-left: 3px solid var(--fs-blue); padding-left: .8rem; }
.fs-model-guide__item h3 { font-size: .95rem; font-weight: 700; margin: 0 0 .4rem; color: var(--fs-blue); }
.fs-model-guide__location { font-size: .82rem; color: var(--fs-sub); margin: 0 0 .3rem; }
.fs-model-guide__format { font-size: .82rem; margin: 0 0 .3rem; }
.fs-model-guide__format code {
    background: var(--fs-gray); padding: .1rem .35rem;
    border-radius: 3px; font-size: .8rem; font-family: monospace;
}
.fs-model-guide__tip { font-size: .78rem; color: var(--fs-sub); margin: 0; }
.fs-model-guide__note {
    font-size: .8rem; color: var(--fs-sub);
    border-top: 1px solid var(--fs-border); padding-top: .8rem; margin: 0;
}
