:root{
  --bg:#ffffff; --card:#ffffff; --ink:#20242b; --sub:#6b7280; --line:#eceef2;
  --accent:#e35d8a; --accent-dark:#c9346c; --accent-soft:#fdeef4; --soft:#f7f8fa;
  --radius:16px; --maxw:1200px;
}
*{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;}
body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Hiragino Sans","Noto Sans JP","Segoe UI",Meiryo,sans-serif;
  background:var(--bg);color:var(--ink);line-height:1.75;font-size:16px;-webkit-font-smoothing:antialiased;}
a{color:var(--accent-dark);text-decoration:none;}
a:hover{text-decoration:underline;}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 18px;}

/* header */
.site-header{position:sticky;top:0;z-index:20;background:rgba(255,255,255,.9);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);}
.site-header .wrap{display:flex;align-items:center;justify-content:space-between;padding-top:12px;padding-bottom:12px;}
.header-actions{display:flex;align-items:center;gap:12px;font-size:12.5px;font-weight:800;}
.header-actions>a{color:var(--ink);}
.brand{display:flex;align-items:center;gap:9px;font-weight:900;font-size:17px;color:var(--ink);}
.brand:hover{text-decoration:none;}
.brand .logo{width:30px;height:30px;border-radius:9px;background:linear-gradient(135deg,#f083ab,#e35d8a);color:#fff;
  display:grid;place-items:center;font-size:16px;font-weight:900;}
.nav-note{font-size:11.5px;color:var(--sub);font-weight:700;background:var(--soft);padding:4px 10px;border-radius:999px;}

/* hero */
.hero{padding:44px 0 12px;text-align:center;}
.hero h1{font-size:34px;line-height:1.3;margin:0 0 12px;letter-spacing:-.02em;font-weight:900;}
.hero p{color:var(--sub);max-width:560px;margin:0 auto;font-size:15.5px;}

.sec{font-size:20px;font-weight:900;margin:34px 0 14px;padding-left:2px;}
.section-head{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin-top:34px;}
.section-head .sec{margin:0 0 14px;}
.section-head>a{font-size:13px;font-weight:900;white-space:nowrap;}
.grp{font-size:15px;font-weight:800;color:var(--accent-dark);margin:18px 0 10px;padding:6px 12px;background:var(--accent-soft);border-radius:999px;display:inline-block;}
.crumb{font-size:13px;color:var(--sub);padding:14px 0 4px;}
.crumb a{color:var(--sub);}

.cat-hero{display:flex;gap:14px;align-items:center;margin:8px 0 6px;}
.cat-hero .cic{font-size:38px;}
.cat-hero h1{font-size:26px;margin:0 0 4px;font-weight:900;}
.cat-hero p{margin:0;color:var(--sub);font-size:14.5px;}

/* category grid */
.cgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;}
.ccard{display:block;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:16px;
  box-shadow:0 4px 16px rgba(30,20,40,.05);transition:transform .14s,box-shadow .14s,border-color .14s;}
.ccard:hover{transform:translateY(-3px);border-color:var(--accent);box-shadow:0 12px 30px rgba(227,93,138,.14);text-decoration:none;}
.ccard .cic{font-size:30px;}
.ccard h3{margin:8px 0 4px;font-size:16px;font-weight:800;color:var(--ink);}
.ccard p{margin:0;font-size:12.5px;color:var(--sub);line-height:1.6;}
.home-guides{grid-template-columns:repeat(3,minmax(0,1fr));}

/* scalable guide library */
.guide-index-hero{margin:14px 0 20px;padding:26px;background:linear-gradient(135deg,#fff7fa,#fdeef4);border:1px solid #f7d7e3;border-radius:20px;}
.guide-index-hero>span{font-size:11px;font-weight:900;letter-spacing:.14em;color:var(--accent-dark);}
.guide-index-hero h1{font-size:28px;line-height:1.4;margin:4px 0 7px;}
.guide-index-hero p{margin:0;color:var(--sub);font-size:14px;}
.guide-jump{display:flex;gap:8px;overflow-x:auto;padding:2px 0 10px;scrollbar-width:thin;}
.guide-jump a{flex:0 0 auto;background:var(--soft);border:1px solid var(--line);border-radius:999px;padding:8px 13px;color:var(--ink);font-size:12.5px;font-weight:800;}
.guide-jump a:hover{background:var(--accent-soft);text-decoration:none;}
.guide-group{padding-top:8px;}
.guide-group h2{font-size:20px;margin:24px 0 12px;}
.guide-group .cgrid{grid-template-columns:repeat(3,minmax(0,1fr));}
.guide-card h3{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;}
.guide-card p{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;}

/* product grid + card */
.pgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px;}
.pcard{position:relative;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;
  box-shadow:0 4px 16px rgba(30,20,40,.05);display:flex;flex-direction:column;}
.pcard .rank{position:absolute;top:10px;left:10px;z-index:2;background:var(--accent);color:#fff;font-weight:900;
  font-size:12.5px;padding:4px 10px;border-radius:999px;box-shadow:0 3px 10px rgba(227,93,138,.35);}
.pimg{display:block;background:var(--soft);aspect-ratio:1/1;overflow:hidden;}
.pimg img{width:100%;height:100%;object-fit:contain;}
.pbody{padding:12px 13px 14px;display:flex;flex-direction:column;flex:1;}
.ptitle{font-size:13.5px;font-weight:800;line-height:1.5;margin:0 0 6px;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.pmeta{display:flex;align-items:baseline;gap:8px;margin-bottom:6px;flex-wrap:wrap;}
.pmeta .maker{font-size:11.5px;color:var(--sub);}
.pmeta .price{font-size:17px;font-weight:900;color:var(--accent-dark);}
.pblurb{font-size:12px;color:var(--sub);line-height:1.6;margin:0 0 12px;flex:1;}
.pbtns{display:flex;flex-direction:column;gap:7px;}
.pbtn{display:block;text-align:center;background:linear-gradient(135deg,#f083ab,#e35d8a);color:#fff;font-weight:800;
  padding:11px;border-radius:11px;box-shadow:0 6px 16px rgba(227,93,138,.28);font-size:14px;}
.pbtn:hover{opacity:.92;text-decoration:none;}
.pbtn.amazon,.pbtn.sub{background:#232f3e;box-shadow:0 5px 14px rgba(35,47,62,.25);}
.pbtn.amazon:hover,.pbtn.sub:hover{background:#131a24;}

.combo-note{background:var(--accent-soft);border-radius:12px;padding:12px 15px;font-size:14px;color:#7a4a5c;margin:0 0 12px;line-height:1.7;}

/* 商品ファーストのトップ */
.hero-sm{padding:28px 0 6px;text-align:center;}
.hero-sm h1{font-size:27px;line-height:1.35;}
.chipnav{display:flex;flex-wrap:wrap;gap:8px;margin:4px 0 18px;justify-content:center;}
.chip{display:inline-flex;align-items:center;gap:4px;font-size:13px;font-weight:800;padding:8px 14px;border-radius:999px;
  background:var(--soft);border:1px solid var(--line);color:var(--ink);white-space:nowrap;}
.chip:hover{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-dark);text-decoration:none;}
.row-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:30px 0 10px;}
.row-head .sec{margin:0;}
.row-head a{font-size:13px;font-weight:800;color:var(--accent-dark);white-space:nowrap;}
.row-head .rh-note{font-size:12px;color:var(--sub);font-weight:700;white-space:nowrap;}
.prow{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(158px,172px);gap:12px;overflow-x:auto;
  padding-bottom:10px;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch;}
.prow::-webkit-scrollbar{height:6px;}
.prow::-webkit-scrollbar-thumb{background:var(--line);border-radius:999px;}
.prow .pcard{scroll-snap-align:start;}
.prow .ptitle{font-size:12.5px;}
.prow .pbtns{gap:6px;}
.prow .pbtn{font-size:12.5px;padding:9px;}

/* 2カラム：左＝人気ランキング（DOMで先）／右＝ジャンル別ランキング記事。スマホは1カラムでランキングが上 */
.home-layout{display:grid;grid-template-columns:290px 1fr;gap:26px;align-items:start;margin-top:4px;}
.home-main{min-width:0;}
.rank-side{position:sticky;top:70px;}
.rank-box{background:var(--soft);border:1px solid var(--line);border-radius:16px;padding:14px 14px 12px;}
.rank-head{font-size:16px;font-weight:900;margin:2px 0 10px;}
.rank-item{display:flex;align-items:center;gap:10px;padding:9px 2px;border-bottom:1px solid var(--line);}
.rank-item:last-of-type{border-bottom:none;}
.rank-item:hover{text-decoration:none;}
.ri-no{flex:0 0 20px;text-align:center;font-weight:900;color:var(--accent-dark);font-size:14px;}
.rank-item img{width:46px;height:46px;object-fit:contain;background:#fff;border-radius:8px;flex:0 0 46px;border:1px solid var(--line);}
.ri-body{display:flex;flex-direction:column;min-width:0;gap:2px;}
.ri-title{font-size:12px;font-weight:700;color:var(--ink);line-height:1.35;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;}
.ri-price{font-size:12.5px;font-weight:900;color:var(--accent-dark);}
.rank-basis{font-size:10.5px;color:var(--sub);margin:10px 2px 0;line-height:1.5;}
@media(max-width:820px){
  /* スマホは1カラム。DOM順（ランキング→記事）そのままで人気ランキングが記事の上に出る */
  .home-layout{grid-template-columns:1fr;gap:14px;}
  .rank-side{position:static;}
}

/* table */
.tbl-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:12px;position:relative;}
.ctbl{width:100%;border-collapse:collapse;font-size:14px;background:#fff;border:1px solid var(--line);border-radius:12px;overflow:hidden;}
.ctbl th{background:var(--accent-soft);color:var(--accent-dark);font-weight:800;padding:11px;text-align:left;white-space:nowrap;}
.ctbl td{padding:11px;border-top:1px solid var(--line);vertical-align:top;}
.ctbl td:first-child{font-weight:800;color:var(--accent-dark);white-space:nowrap;}

/* 本文中のインライン商品リンク／小型カード */
.inbuy{display:inline-flex;align-items:center;gap:4px;background:var(--accent);color:#fff;font-weight:800;font-size:13.5px;padding:5px 12px;border-radius:999px;text-decoration:none;line-height:1.4;white-space:nowrap;margin:0 2px;}
.inbuy:hover{background:var(--accent-dark);}
.incard{display:flex;gap:12px;align-items:center;background:var(--accent-soft);border:1px solid var(--line);border-radius:14px;padding:12px;margin:14px 0;text-decoration:none;color:inherit;}
.incard img{width:74px;height:74px;object-fit:contain;background:#fff;border-radius:10px;flex:none;}
.incard .icbody{flex:1;min-width:0;}
.incard .icname{font-weight:800;font-size:14.5px;line-height:1.45;display:block;margin-bottom:3px;}
.incard .icmeta{font-size:12.5px;color:var(--muted);}
.incard .icgo{background:var(--accent);color:#fff;font-weight:800;font-size:13px;padding:8px 14px;border-radius:999px;flex:none;white-space:nowrap;}
.incard:hover .icgo{background:var(--accent-dark);}

/* docs */
.doc h2{font-size:18px;margin:22px 0 8px;}
.doc p{color:#3a4048;font-size:14.5px;}

/* guide article */
.guide{font-size:15.5px;line-height:2;color:#33383f;max-width:840px;margin-left:auto;margin-right:auto;}
.guide h2{font-size:20px;font-weight:900;margin:30px 0 10px;padding-bottom:7px;border-bottom:2px solid var(--accent-soft);}
.guide p{margin:0 0 12px;}
.guide em{font-style:normal;color:var(--accent-dark);font-weight:700;}
.guide strong,.guide b{color:var(--ink);}
.guide .glist{list-style:none;padding:0;margin:10px 0;}
.guide .glist li{background:var(--soft);border-radius:12px;padding:12px 15px;margin:9px 0;font-size:14.5px;line-height:1.8;}
.clink{display:inline-block;margin:2px 0 6px;color:var(--accent-dark);font-weight:800;font-size:14.5px;
  background:var(--accent-soft);padding:7px 15px;border-radius:999px;}
.clink:hover{background:var(--accent);color:#fff;text-decoration:none;}
.clink.big{display:block;text-align:center;background:linear-gradient(135deg,#f083ab,#e35d8a);color:#fff;padding:14px;margin-top:14px;}
.clink.big:hover{opacity:.9;}
.guide-card{border-color:var(--accent-soft);}
.article-hero{align-items:flex-start;margin-top:14px;}
.article-hero h1{font-size:28px;line-height:1.45;}
.comparison-article{max-width:820px;margin:22px auto 0;}
.comparison-article ol{padding-left:24px;}
.answer-box{background:linear-gradient(135deg,#fff6f9,#fdeef4);border:1px solid #f6cddd;border-radius:16px;padding:18px 20px;margin:4px 0 24px;box-shadow:0 6px 18px rgba(227,93,138,.09);}
.answer-box span{display:inline-block;background:var(--accent);color:#fff;font-size:12px;font-weight:900;padding:3px 10px;border-radius:999px;margin-bottom:8px;}
.answer-box p{font-size:17px;line-height:1.8;margin:0;}
.ad-note,.source-note{font-size:12.5px;color:var(--sub);background:var(--soft);border-radius:10px;padding:10px 12px;line-height:1.7;}
.source-note a{text-decoration:underline;}
.shop-cta{background:#fff;border:1px solid var(--line);border-radius:16px;padding:18px;margin:28px 0;box-shadow:0 5px 18px rgba(30,20,40,.06);}
.shop-cta p{margin:0 0 12px;text-align:center;}
.shop-cta-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;}
.pbtn.rakuten{background:#bf0000;box-shadow:0 5px 14px rgba(191,0,0,.22);}
.related-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;}
.related-grid a{display:flex;align-items:center;min-height:58px;background:var(--soft);border:1px solid var(--line);border-radius:12px;padding:11px 13px;font-size:13.5px;font-weight:800;line-height:1.5;}
.related-grid a:hover{background:var(--accent-soft);text-decoration:none;}
.visual-section{margin:28px 0;}
.visual-section h2{margin-top:0;}
.visual-section>p{color:var(--sub);font-size:14px;}
.visual-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;}
.visual-card{margin:0;background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden;box-shadow:0 5px 18px rgba(30,20,40,.06);}
.visual-card>a{display:block;aspect-ratio:1/1;background:var(--soft);padding:10px;}
.visual-card img{width:100%;height:100%;object-fit:contain;display:block;}
.visual-card figcaption{padding:11px 12px;line-height:1.55;}
.visual-card figcaption strong{display:block;font-size:12.5px;}
.visual-card figcaption span{display:block;color:var(--accent-dark);font-weight:900;font-size:16px;margin-top:3px;}
.visual-card figcaption small{display:block;color:var(--sub);font-size:11.5px;margin-top:5px;}
.bridge-cta{display:flex;align-items:center;justify-content:space-between;gap:16px;background:linear-gradient(135deg,#fff7fa,#fdeef4);border:1px solid #f6cddd;border-radius:16px;padding:18px 20px;margin:28px 0;}
.bridge-cta strong{font-size:14px;}
.bridge-cta a{flex:0 0 auto;background:var(--accent);color:#fff;border-radius:999px;padding:9px 14px;font-size:13px;font-weight:900;}
.bridge-cta a:hover{text-decoration:none;opacity:.9;}
.risk-check{display:grid;gap:9px;margin:12px 0 18px;}
.risk-check label{display:flex;align-items:flex-start;gap:9px;background:#fff8f1;border:1px solid #f6dfc6;border-radius:11px;padding:10px 12px;font-size:14px;line-height:1.6;}
.risk-check input{margin-top:5px;accent-color:#d97706;}

/* footer */
.site-footer{margin-top:44px;border-top:1px solid var(--line);background:var(--soft);}
.site-footer .wrap{padding:22px 18px;text-align:center;font-size:12.5px;color:var(--sub);}
.site-footer .disc{margin:0 0 10px;line-height:1.7;}
.site-footer a{color:var(--sub);}

/* age gate */
#agegate{position:fixed;inset:0;z-index:1000;background:rgba(20,16,24,.82);backdrop-filter:blur(4px);
  display:flex;align-items:center;justify-content:center;padding:20px;}
.ag-box{background:#fff;border-radius:20px;max-width:380px;width:100%;padding:30px 26px;text-align:center;box-shadow:0 24px 60px rgba(0,0,0,.4);}
.ag-logo{font-size:44px;}
.ag-box h2{margin:8px 0 8px;font-size:22px;font-weight:900;}
.ag-box p{color:var(--sub);font-size:14px;margin:0 0 18px;}
.ag-btns{display:flex;flex-direction:column;gap:10px;}
.ag-yes{background:linear-gradient(135deg,#f083ab,#e35d8a);color:#fff;border:none;padding:14px;border-radius:12px;
  font-size:15.5px;font-weight:800;cursor:pointer;font-family:inherit;}
.ag-no{display:block;padding:12px;border-radius:12px;background:var(--soft);color:var(--sub);font-weight:700;}
.ag-no:hover{text-decoration:none;}
.ag-note{font-size:11px !important;color:#9aa0aa !important;margin-top:16px !important;}

@media(max-width:560px){
  .hero h1{font-size:27px;}
  .hero{padding:30px 0 6px;}
  .pgrid{grid-template-columns:repeat(2,1fr);gap:11px;}
  .pbody{padding:10px;}
  .ptitle{font-size:12.5px;}
  .article-hero h1{font-size:23px;}
  .shop-cta-grid{grid-template-columns:1fr;}
  .related-grid{grid-template-columns:1fr;}
  .visual-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .visual-card figcaption{padding:9px;}
  .comparison-article{font-size:15px;}
  /* スマホの表：潰さず横スクロール。列に最小幅を与え、はみ出しをスクロールで見せる */
  .tbl-wrap{margin:14px -4px;box-shadow:inset -14px 0 12px -12px rgba(0,0,0,.14);}
  .ctbl{font-size:13px;min-width:520px;}
  .ctbl th,.ctbl td{padding:8px 9px;}
  .incard{flex-wrap:wrap;}
  .incard .icgo{width:100%;text-align:center;}
  .home-guides{grid-template-columns:repeat(2,minmax(0,1fr));}
  .guide-group .cgrid{grid-template-columns:1fr;}
  .guide-jump{scrollbar-width:none;}
  .guide-jump::-webkit-scrollbar{display:none;}
  .guide-index-hero{padding:20px 17px;}
  .guide-index-hero h1{font-size:23px;}
  .bridge-cta{align-items:stretch;flex-direction:column;}
  .bridge-cta a{text-align:center;}
  .nav-note{display:none;}
}

/* ===== 使用感データベース ===== */
.dbtools{position:sticky;top:57px;z-index:10;background:rgba(255,255,255,.94);backdrop-filter:blur(8px);
  border:1px solid var(--line);border-radius:14px;padding:12px 15px;margin:16px 0;box-shadow:0 4px 16px -12px rgba(0,0,0,.25);}
/* PCでは開閉トグルは不要。フィルタ常時表示 */
.fbtoggle{display:none;}
.fgroup{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-bottom:9px;}
.fgroup:last-of-type{margin-bottom:0;}
/* タグ絞り込みは1行・横スクロールで固定バーを低く保つ */
.fgroup.tagscroll{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:thin;padding-bottom:2px;}
.fgroup.tagscroll .fchip{flex:none;}
.fgroup.tagscroll .flabel{position:sticky;left:0;background:rgba(255,255,255,.94);padding-right:4px;}
.fgroup.tagscroll::-webkit-scrollbar{height:5px;}
.fgroup.tagscroll::-webkit-scrollbar-thumb{background:var(--line);border-radius:9px;}
.flabel{font-weight:800;font-size:12px;color:var(--sub);margin-right:2px;flex:none;letter-spacing:.02em;}
.fchip{border:1px solid var(--line);background:#fff;color:var(--ink);font-weight:700;font-size:12.5px;padding:5px 12px;border-radius:999px;cursor:pointer;line-height:1.4;transition:.12s;}
.fchip:hover{border-color:var(--accent);color:var(--accent-dark);}
.fchip.on{background:var(--accent);border-color:var(--accent);color:#fff;}
.fchip.tier.on{background:var(--accent-dark);border-color:var(--accent-dark);}
.dbsort{border:1px solid var(--line);border-radius:999px;padding:6px 12px;font-weight:700;font-size:12.5px;background:#fff;color:var(--ink);cursor:pointer;}
.dbview{display:inline-flex;border:1px solid var(--line);border-radius:999px;overflow:hidden;}
.vbtn{border:none;background:#fff;color:var(--sub);font-weight:800;font-size:12.5px;padding:6px 12px;cursor:pointer;}
.vbtn.on{background:var(--accent-soft);color:var(--accent-dark);}
.fclear{border:none;background:transparent;color:var(--sub);font-size:12px;font-weight:700;text-decoration:underline;cursor:pointer;margin-left:auto;}
.dbcount{margin:9px 0 0;font-size:12.5px;color:var(--sub);}
.dbcount .cnum{color:var(--accent-dark);font-size:15px;font-weight:900;}

/* ---- 一覧（リスト）表示：デフォルト ---- */
.dbgrid.list{display:flex;flex-direction:column;gap:0;margin:8px 0 22px;
  border:1px solid var(--line);border-radius:14px;overflow:hidden;background:#fff;}
.dbgrid.list .dbrow{display:flex;align-items:center;gap:13px;padding:11px 14px;border-top:1px solid var(--line);}
.dbgrid.list .dbrow:first-child{border-top:none;}
.dbgrid.list .dbrow:nth-child(even){background:#fcfcfd;}
.dbgrid.list .dbrow:hover{background:var(--accent-soft);}
.dbgrid.list .dbno{flex:none;width:22px;text-align:center;font-weight:900;font-size:13px;color:var(--sub);font-variant-numeric:tabular-nums;}
.dbgrid.list .dbimg{flex:none;width:60px;height:60px;border-radius:10px;overflow:hidden;background:var(--soft);}
.dbgrid.list .dbimg img{width:100%;height:100%;object-fit:contain;}
.dbgrid.list .dbmain{flex:1;min-width:0;}
.dbgrid.list .dbtitle{font-size:14px;font-weight:800;line-height:1.45;margin:0 0 4px;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.dbgrid.list .dbtags{display:flex;flex-wrap:wrap;gap:4px;}
.dbgrid.list .dbside{flex:none;width:130px;text-align:right;display:flex;flex-direction:column;align-items:flex-end;gap:5px;}
.dbgrid.list .dbmaker{display:none;}
.dbgrid.list .dbbtns{display:flex;gap:5px;justify-content:flex-end;}

/* ---- 画像（グリッド）表示 ---- */
.dbgrid.grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:8px 0 22px;}
.dbgrid.grid .dbrow{border:1px solid var(--line);border-radius:14px;overflow:hidden;background:#fff;
  display:flex;flex-direction:column;position:relative;}
.dbgrid.grid .dbno{position:absolute;top:8px;left:8px;z-index:1;background:rgba(32,36,43,.82);color:#fff;
  width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:900;font-size:12px;}
.dbgrid.grid .dbimg{display:block;aspect-ratio:1/1;background:var(--soft);}
.dbgrid.grid .dbimg img{width:100%;height:100%;object-fit:contain;}
.dbgrid.grid .dbmain{padding:10px 11px 4px;}
.dbgrid.grid .dbtitle{font-size:13px;font-weight:800;line-height:1.4;margin:0 0 6px;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.dbgrid.grid .dbside{padding:0 11px 12px;display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:auto;}
.dbgrid.grid .dbmaker{display:none;}
.dbgrid.grid .dbbtns{display:flex;gap:6px;width:100%;}

.dbprice{font-size:15px;font-weight:900;color:var(--accent-dark);flex:none;white-space:nowrap;}
.dbtag{font-size:10.5px;font-weight:700;background:var(--accent-soft);color:var(--accent-dark);padding:2px 8px;border-radius:999px;white-space:nowrap;}
.dbbtn{text-align:center;background:var(--accent);color:#fff;font-weight:800;font-size:12px;padding:6px 12px;border-radius:999px;white-space:nowrap;}
.dbbtn:hover{background:var(--accent-dark);text-decoration:none;}
.dbbtn.sub{background:#20242b;}
.dbgrid.grid .dbbtn{flex:1;padding:8px 4px;}

/* DBハブ */
.dbhub-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:13px;margin:16px 0 24px;}
.dbhub{display:flex;align-items:center;gap:13px;border:1px solid var(--line);border-radius:14px;padding:15px 16px;background:#fff;color:var(--ink);transition:.12s;}
.dbhub:hover{border-color:var(--accent);text-decoration:none;box-shadow:0 8px 20px -14px rgba(227,93,138,.6);transform:translateY(-1px);}
.dbhub-ic{font-size:27px;flex:none;}
.dbhub-b{display:flex;flex-direction:column;min-width:0;}
.dbhub-b b{font-size:15px;}
.dbhub-b small{font-size:12px;color:var(--sub);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}

@media(max-width:900px){.dbgrid.grid{grid-template-columns:repeat(3,1fr);}.dbhub-grid{grid-template-columns:repeat(2,1fr);}}
@media(max-width:820px){
  /* スマホ/タブレット：フィルタは固定解除（スクロールで流れる）＋畳んでトグル展開 */
  .dbtools{position:static;padding:8px 10px;box-shadow:none;}
  .fbtoggle{display:flex;align-items:center;justify-content:center;gap:6px;width:100%;
    border:1px solid var(--line);background:var(--accent-soft);color:var(--accent-dark);
    font-weight:800;font-size:13.5px;padding:9px;border-radius:10px;cursor:pointer;}
  .fbtoggle .cnum{color:var(--accent-dark);font-size:15px;}
  .fbtoggle .fbar{transition:transform .18s;}
  .dbtools.open .fbtoggle .fbar{transform:rotate(180deg);}
  .dbfilters{display:none;margin-top:10px;}
  .dbtools.open .dbfilters{display:block;}
  .dbfilters .dbcount{display:none;}
}
@media(max-width:560px){
  .dbgrid.grid{grid-template-columns:repeat(2,1fr);gap:10px;}
  .dbhub-grid{grid-template-columns:1fr;}
  .dbgrid.list .dbrow{gap:10px;padding:10px 11px;}
  .dbgrid.list .dbno{display:none;}
  .dbgrid.list .dbimg{width:52px;height:52px;}
  .dbgrid.list .dbtitle{font-size:13px;}
  .dbgrid.list .dbside{width:96px;}
  .dbprice{font-size:14px;}
  .dbbtn{font-size:11px;padding:6px 9px;}
  .dbgrid.list .dbbtns{flex-direction:column;gap:4px;width:100%;}
  .dbgrid.list .dbbtn{width:100%;}
  .fgroup{gap:6px;}
  .fchip{font-size:12px;padding:5px 10px;}
  .fclear{margin-left:0;}
}

/* ===== 個別商品ページ ===== */
.pd-hero{display:grid;grid-template-columns:280px 1fr;gap:22px;align-items:start;margin:16px 0 8px;
  background:var(--soft);border:1px solid var(--line);border-radius:18px;padding:20px;}
.pd-img{background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px;text-align:center;}
.pd-img img{max-width:100%;max-height:260px;object-fit:contain;}
.pd-head h1{font-size:23px;line-height:1.35;margin:0 0 8px;}
.pd-lead{font-size:14.5px;color:var(--sub);margin:0 0 12px;line-height:1.7;}
.pd-meta{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-bottom:14px;}
.pd-price{font-size:22px;font-weight:900;color:var(--accent-dark);}
.buybtns{display:flex;flex-wrap:wrap;gap:10px;}
.buybtn{flex:1;min-width:130px;text-align:center;font-weight:800;font-size:14px;padding:13px 10px;border-radius:12px;color:#fff;}
.buybtn:hover{text-decoration:none;filter:brightness(1.05);}
.buybtn.amazon{background:#ff9900;color:#20242b;}
.buybtn.dmm{background:#e2007a;}
.buybtn.rakuten{background:#bf0000;}
.dbreview{display:inline-block;margin-top:4px;font-size:12px;font-weight:800;color:var(--accent-dark);}
/* 商品レビュー一覧 */
.prod-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:16px 0 24px;}
.prod-card{display:flex;gap:12px;border:1px solid var(--line);border-radius:14px;padding:12px;background:#fff;color:var(--ink);align-items:center;}
.prod-card:hover{border-color:var(--accent);text-decoration:none;box-shadow:0 8px 20px -14px rgba(227,93,138,.6);}
.prod-img{flex:none;width:72px;height:72px;background:var(--soft);border-radius:10px;display:flex;align-items:center;justify-content:center;}
.prod-img img{max-width:100%;max-height:100%;object-fit:contain;}
.prod-b{display:flex;flex-direction:column;min-width:0;gap:3px;}
.prod-b b{font-size:14px;line-height:1.4;}
.prod-b small{font-size:12px;color:var(--sub);overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;}
.prod-price{font-size:14px;font-weight:900;color:var(--accent-dark);}
@media(max-width:820px){.prod-grid{grid-template-columns:repeat(2,1fr);}}
@media(max-width:560px){
  .pd-hero{grid-template-columns:1fr;gap:14px;padding:15px;}
  .pd-img{max-width:220px;margin:0 auto;}
  .pd-head h1{font-size:20px;}
  .buybtn{min-width:0;flex-basis:calc(50% - 5px);}
  .prod-grid{grid-template-columns:1fr;}
}

/* 商品→紹介記事リンク（画像の近くに、上品な細リンクで） */
.revlink{display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:800;color:var(--accent-dark);
  margin:0 0 9px;line-height:1.4;}
.revlink .rl-ar{transition:transform .15s;}
.revlink:hover{text-decoration:none;color:var(--accent);}
.revlink:hover .rl-ar{transform:translateX(2px);}
.prow .revlink,.pcard .revlink{font-size:11px;margin-bottom:7px;}
/* インライン商品カードのレビュー導線 */
.incard-wrap{margin:14px 0;}
.incard-wrap .incard{margin:0;}
.icreview{display:block;margin-top:7px;text-align:right;}
.icreview .revlink{margin:0;}
/* ギャラリーfigcaption内 */
.visual-card figcaption .revlink{margin-top:8px;}
/* DBリストの「詳しく見る」も同系統に揃える */
.dbreview{display:inline-flex;align-items:center;gap:3px;margin-top:4px;font-size:12px;font-weight:800;color:var(--accent-dark);}
.dbreview:hover{text-decoration:none;color:var(--accent);}

/* トップ：クラスターハブ */
.cluster-hub{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin:8px 0 8px;}
.clu-card{border:1px solid var(--line);border-radius:16px;padding:16px 18px;background:linear-gradient(135deg,#fff8fb,#fdeef4);}
.clu-h{display:flex;align-items:center;gap:9px;font-size:17px;font-weight:900;margin-bottom:4px;}
.clu-ic{font-size:22px;}
.clu-d{margin:0 0 12px;font-size:13px;color:var(--sub);line-height:1.6;}
.clu-links{display:flex;gap:9px;flex-wrap:wrap;}
.clu-links a{flex:1;min-width:120px;text-align:center;font-weight:800;font-size:13px;padding:9px;border-radius:10px;
  background:#fff;border:1px solid #f6cddd;color:var(--accent-dark);}
.clu-links a:hover{background:var(--accent);color:#fff;border-color:var(--accent);text-decoration:none;}
/* FAQ */
.faq-section{margin:28px 0 8px;}
.faq-item{border:1px solid var(--line);border-radius:12px;padding:14px 16px;margin:0 0 10px;background:#fff;}
.faq-q{font-size:15px;font-weight:800;margin:0 0 6px;color:var(--ink);position:relative;padding-left:24px;}
.faq-q::before{content:"Q";position:absolute;left:0;top:-1px;color:var(--accent);font-weight:900;}
.faq-a{margin:0;font-size:14px;color:var(--sub);line-height:1.75;padding-left:24px;position:relative;}
.faq-a::before{content:"A";position:absolute;left:0;top:0;color:var(--accent-dark);font-weight:900;}
@media(max-width:560px){.cluster-hub{grid-template-columns:1fr;}}
