/* 寝具ラボ 共通CSS（外部フォント・外部ライブラリ不使用） */
:root{
  --ink:#2b2b2b;
  --sub:#666;
  --accent:#2e6f6a;
  --accent-dark:#245a56;
  --bg:#fdfcf9;
  --card:#fff;
  --line:#e3ded2;
  --note-bg:#f4f1e8;
}
*{box-sizing:border-box}
html{font-size:16px}
body{
  margin:0;
  font-family:"Hiragino Kaku Gothic ProN","Hiragino Sans","Noto Sans JP","Yu Gothic",Meiryo,sans-serif;
  color:var(--ink);
  background:var(--bg);
  line-height:1.8;
}
a{color:var(--accent-dark)}
a:hover{text-decoration:none}
img{max-width:100%;height:auto}

/* ヘッダー */
.site-header{
  background:var(--card);
  border-bottom:1px solid var(--line);
}
.site-header .inner{
  max-width:960px;margin:0 auto;padding:14px 16px;
  display:flex;flex-wrap:wrap;align-items:center;gap:8px 20px;
}
.site-title{font-size:1.4rem;font-weight:700;margin:0}
.site-title a{color:var(--ink);text-decoration:none}
.site-tagline{color:var(--sub);font-size:.85rem;margin:0}
.main-nav{width:100%}
.main-nav ul{
  list-style:none;margin:6px 0 0;padding:0;
  display:flex;flex-wrap:wrap;gap:4px 14px;
}
.main-nav a{font-size:.92rem;text-decoration:none}
.main-nav a:hover{text-decoration:underline}

/* レイアウト */
.container{max-width:960px;margin:0 auto;padding:24px 16px 48px}
.breadcrumb{font-size:.82rem;color:var(--sub);margin-bottom:12px}
.breadcrumb a{color:var(--sub)}

/* 見出し・本文 */
h1{font-size:1.7rem;line-height:1.45;margin:0 0 12px}
h2{
  font-size:1.3rem;line-height:1.5;margin:40px 0 14px;
  border-left:5px solid var(--accent);padding:7px 12px;
  background:var(--note-bg);border-radius:0 6px 6px 0;
}
h3{font-size:1.08rem;margin:24px 0 8px}
p{margin:0 0 14px}
ul,ol{margin:0 0 14px;padding-left:1.4em}
li{margin-bottom:4px}
.lead{font-size:1.02rem}
.meta{color:var(--sub);font-size:.85rem;margin-bottom:16px}

/* PR表記 */
.pr-notice{
  background:var(--note-bg);
  border:1px solid var(--line);
  border-radius:6px;
  padding:10px 14px;
  font-size:.88rem;
  margin:0 0 20px;
}

/* カード・一覧 */
.card-grid{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));
  gap:16px;margin:16px 0;
}
.card{
  background:var(--card);border:1px solid var(--line);border-radius:12px;
  padding:20px;box-shadow:0 2px 8px rgba(43,43,43,.06);
}
.card h3{margin-top:0}
.card p{font-size:.92rem;color:var(--sub)}
.article-list{list-style:none;padding:0;margin:16px 0}
.article-list li{
  background:var(--card);border:1px solid var(--line);border-radius:8px;
  padding:14px 16px;margin-bottom:12px;
}
.article-list .date{color:var(--sub);font-size:.82rem}
.article-list a{font-weight:700;text-decoration:none;font-size:1.02rem}
.article-list a:hover{text-decoration:underline}
.article-list p{margin:6px 0 0;font-size:.92rem;color:var(--sub)}
.cat-label{
  display:inline-block;background:var(--accent);color:#fff;
  font-size:.72rem;border-radius:3px;padding:1px 8px;margin-right:8px;
  vertical-align:middle;
}

/* 比較表 */
.table-wrap{overflow-x:auto;margin:16px 0}
table.compare{
  border-collapse:collapse;width:100%;min-width:640px;
  background:var(--card);font-size:.92rem;
}
table.compare th,table.compare td{
  border:1px solid var(--line);padding:9px 10px;text-align:left;vertical-align:top;
}
table.compare th{background:var(--note-bg);white-space:nowrap}
table.compare td:first-child{font-weight:700;background:#fbf9f4;white-space:nowrap}

/* CTAボタン（アフィリエイトリンクのプレースホルダー） */
.cta-box{
  background:var(--note-bg);border:1px solid var(--line);border-radius:8px;
  padding:16px;margin:20px 0;text-align:center;
}
.cta-box p{margin-bottom:10px;font-size:.92rem}
.btn{
  display:inline-block;background:var(--accent);color:#fff;
  padding:11px 26px;border-radius:6px;text-decoration:none;font-weight:700;
}
.btn:hover{background:var(--accent-dark);text-decoration:none}

/* 注意書き・脚注 */
.note{font-size:.85rem;color:var(--sub)}
.footer-note{
  border-top:1px solid var(--line);margin-top:36px;padding-top:14px;
  font-size:.85rem;color:var(--sub);
}
/* 関連記事 */
.related-list{margin:8px 0 4px;padding-left:22px}
.related-list li{margin:7px 0}
.faq dt{font-weight:700;margin-top:14px}
.faq dd{margin:4px 0 0}

/* フッター */
.site-footer{
  background:#33302a;color:#e8e4da;margin-top:0;
}
.site-footer .inner{max-width:960px;margin:0 auto;padding:28px 16px}
.site-footer ul{list-style:none;padding:0;margin:0 0 14px;display:flex;flex-wrap:wrap;gap:6px 18px}
.site-footer a{color:#e8e4da;font-size:.9rem}
.site-footer .copy{font-size:.8rem;color:#b7b1a4}

/* ヒーロー（トップページ） */
.hero{
  margin:0 0 8px;border-radius:12px;overflow:hidden;
  background:var(--card);border:1px solid var(--line);
  box-shadow:0 4px 16px rgba(43,43,43,.08);
}
.hero img{display:block;width:100%;aspect-ratio:16/7;object-fit:cover}
.hero-text{padding:18px 22px 20px}
.hero-catch{
  font-size:1.35rem;font-weight:700;line-height:1.5;
  margin:0 0 6px;color:var(--accent-dark);
}
.hero-text p:last-child{margin:0;color:var(--sub);font-size:.95rem}

/* 記事カード一覧 */
.article-cards{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));
  gap:20px;margin:20px 0;
}
.article-card{
  background:var(--card);border:1px solid var(--line);border-radius:12px;
  overflow:hidden;box-shadow:0 2px 8px rgba(43,43,43,.06);
  display:flex;flex-direction:column;
}
.article-card .thumb{display:block}
.article-card .thumb img{
  display:block;width:100%;aspect-ratio:16/9;object-fit:cover;
}
.article-card .card-body{
  padding:14px 16px 16px;display:flex;flex-direction:column;gap:6px;
}
.article-card .date{color:var(--sub);font-size:.82rem}
.article-card .card-title{
  font-weight:700;font-size:1.02rem;line-height:1.55;margin:0;
}
.article-card .card-title a{text-decoration:none;color:var(--ink)}
.article-card .card-title a:hover{color:var(--accent-dark);text-decoration:underline}
.article-card .card-body p{margin:0;font-size:.92rem;color:var(--sub)}
.article-card .card-body p.card-title{color:var(--ink)}

/* アイキャッチ（記事ページ） */
.eyecatch{margin:0 0 22px}
.eyecatch img{
  display:block;width:100%;aspect-ratio:16/9;object-fit:cover;
  border-radius:12px;box-shadow:0 4px 14px rgba(43,43,43,.08);
}

@media (max-width:600px){
  h1{font-size:1.4rem}
  h2{font-size:1.15rem}
  .container{padding:18px 12px 40px}
  .btn{display:block;text-align:center}
  .hero img{aspect-ratio:16/9}
  .hero-text{padding:14px 16px 16px}
  .hero-catch{font-size:1.15rem}
  .article-cards{grid-template-columns:1fr;gap:16px}
}
