/*
Theme Name: 異世界本屋
Description: 異世界本屋(isekai-honya.com)用の子テーマ。ファンタジー書店調。Twenty Twenty-Five が土台。
Template: twentytwentyfive
Version: 2.1.0
Text Domain: isekai-honya
*/

:root {
  --ih-bg: #efe2c2;
  --ih-surface: #fbf4e4;
  --ih-surface-2: #e4d2a6;
  --ih-border: #cbb07d;
  --ih-text: #3b2a1a;
  --ih-muted: #7a6650;
  --ih-accent: #a9762e;
  --ih-accent-soft: #8a5f22;
  --ih-dmm: #e60012;
}

body { background: radial-gradient(circle at 50% -10%, #fff8e9 0%, var(--ih-bg) 55%); color: var(--ih-text); }
a { text-underline-offset: 3px; }
::selection { background: var(--ih-accent); color: #fff8e9; }

/* ヘッダー・フッター */
.ih-header { border-bottom: 1px solid var(--ih-border); background: var(--ih-bg); position: sticky; top: 0; z-index: 20; }
.ih-header .wp-block-navigation a { color: var(--ih-muted); text-decoration: none; font-size: 0.9rem; }
.ih-header .wp-block-navigation a:hover { color: var(--ih-text); }
.ih-footer { border-top: 1px solid var(--ih-border); margin-top: 4rem; color: var(--ih-muted); font-size: 0.85rem; }
.ih-footer a { color: var(--ih-muted); }

/* ロゴ(ヘッダー・フッター共通) */
.ih-logo { display: inline-flex; align-items: center; gap: 0.5rem; text-decoration: none; color: var(--ih-text); }
.ih-logo svg { color: var(--ih-accent); flex: none; }
.ih-logo .ih-logo-text { font-family: var(--wp--preset--font-family--jp-serif); font-weight: 700; letter-spacing: 0.04em; }
.ih-header .ih-logo .ih-logo-text { font-size: 1.25rem; }
.ih-footer .ih-logo { margin-bottom: 0.4rem; }
.ih-footer .ih-logo svg { width: 20px; height: 20px; }
.ih-footer .ih-logo .ih-logo-text { font-size: 1.05rem; }

/* トップ: キャッチコピー */
.ih-tagline { text-align: center; color: var(--ih-muted); font-size: 0.95rem; letter-spacing: 0.06em; margin: 1.6rem 0 0; }

/* トップ: ピックアップ */
.ih-hero { background: var(--ih-surface); border: 1px solid var(--ih-border); border-radius: 10px; box-shadow: 0 2px 10px rgba(59, 42, 26, 0.1); padding: clamp(1rem, 3vw, 2rem); margin-top: 1.5rem; }
.ih-hero .ih-kicker { color: var(--ih-accent-soft); letter-spacing: 0.15em; font-size: 0.75rem; margin: 0 0 0.5rem; }
.ih-hero .wp-block-post-title { margin: 0 0 0.75rem; line-height: 1.35; font-family: var(--wp--preset--font-family--jp-serif); }
.ih-hero .wp-block-post-title a { text-decoration: none; color: var(--ih-text); }
.ih-hero .wp-block-post-excerpt { color: var(--ih-muted); }
.ih-hero .ih-cover { margin: 0; }
.ih-hero .ih-cover img, .ih-hero .ih-cover .ih-noimg { aspect-ratio: 3 / 4; max-height: 340px; width: auto; margin-inline: auto; border-radius: 4px; }
a.ih-btn, .ih-btn a, .ih-btn .wp-block-button__link { display: inline-block; background: var(--ih-accent); color: #fff8e9; border-radius: 6px; padding: 0.55rem 1.4rem; text-decoration: none; margin-top: 0.5rem; }
a.ih-btn:hover, .ih-btn a:hover { filter: brightness(1.1); color: #fff8e9; }

/* トップ: 見出し・カテゴリ・カード一覧 */
.ih-section-title { margin: 3rem 0 1rem; font-size: 1.15rem; letter-spacing: 0.06em; font-family: var(--wp--preset--font-family--jp-serif); border-left: 4px solid var(--ih-accent); padding-left: 0.75rem; }
.ih-cats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin-top: 1.5rem; }
.ih-cats a { display: block; background: var(--ih-surface); border: 1px solid var(--ih-border); border-radius: 8px; padding: 0.9rem 1rem; text-decoration: none; color: var(--ih-text); font-size: 0.95rem; }
.ih-cats a small { display: block; color: var(--ih-muted); font-size: 0.75rem; margin-top: 2px; }
.ih-cats a:hover { border-color: var(--ih-accent); }

.ih-grid.wp-block-post-template { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; padding: 0; }
.ih-grid > li { margin: 0; list-style: none; background: var(--ih-surface); border: 1px solid var(--ih-border); border-radius: 8px; overflow: hidden; box-shadow: 0 1px 4px rgba(59, 42, 26, 0.08); }
.ih-grid > li:hover { border-color: var(--ih-accent); }
.ih-grid .ih-cover { margin: 0; }
.ih-grid .wp-block-post-title { font-size: 0.95rem; line-height: 1.5; margin: 0; padding: 0.75rem 0.9rem 0.3rem; }
.ih-grid .wp-block-post-title a { text-decoration: none; color: var(--ih-text); }
.ih-grid .wp-block-post-terms { padding: 0 0.9rem 0.9rem; font-size: 0.75rem; color: var(--ih-muted); }
.ih-grid .wp-block-post-terms a { color: var(--ih-accent-soft); text-decoration: none; }

/* 表紙(アイキャッチ) */
.ih-cover img { display: block; width: 100%; aspect-ratio: 3 / 4; object-fit: cover; background: var(--ih-surface-2); }
.ih-noimg { display: flex; flex-direction: column; gap: 6px; align-items: center; justify-content: center; aspect-ratio: 3 / 4; background: var(--ih-surface-2); color: #fff8e9; text-align: center; padding: 0 12px; }
.ih-noimg b { font-size: 1.05rem; letter-spacing: 0.08em; font-weight: 700; font-family: var(--wp--preset--font-family--jp-serif); }
.ih-noimg small { font-size: 0.7rem; letter-spacing: 0.12em; color: #e8ddc8; }
.ih-noimg.ih-cat-basics { background: #4f6d52; }
.ih-noimg.ih-cat-trend { background: #8a4a2d; }
.ih-noimg.ih-cat-review { background: #6e3a4f; }
.ih-noimg.ih-cat-deals { background: #3f5a73; }
body.single .ih-cover { display: none; }

/* 記事ページ */
.single .wp-block-post-title { line-height: 1.4; font-family: var(--wp--preset--font-family--jp-serif); }
.single .entry-content h2, .single .wp-block-post-content h2 { margin-top: 2.5rem; padding-bottom: 0.4rem; border-bottom: 1px solid var(--ih-border); font-size: 1.4rem; font-family: var(--wp--preset--font-family--jp-serif); }
.single .wp-block-post-content h3 { margin-top: 2rem; font-size: 1.1rem; color: var(--ih-accent-soft); }
.pr-note { color: var(--ih-muted); }

/* 一覧ページ(カテゴリ・タグ) */
.ih-archive-title { margin: 2.5rem 0 1rem; font-size: clamp(1.4rem, 3vw, 1.9rem); font-family: var(--wp--preset--font-family--jp-serif); border-left: 4px solid var(--ih-accent); padding-left: 0.85rem; }
.wp-block-query-pagination { margin-top: 2rem; gap: 1rem; }
.wp-block-query-pagination a { color: var(--ih-accent-soft); text-decoration: none; }

/* タグ(記事の末尾・トップの「タグから探す」・タグ一覧) */
.ih-tags { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-top: 3rem; padding-top: 1.25rem; border-top: 1px solid var(--ih-border); }
.ih-tags span { color: var(--ih-muted); font-size: 0.8rem; margin-right: 4px; }
.ih-tags a, .ih-tagcloud a { display: inline-block; background: var(--ih-surface); border: 1px solid var(--ih-border); border-radius: 999px; padding: 0.25rem 0.85rem; font-size: 0.85rem !important; text-decoration: none; color: var(--ih-accent-soft); }
.ih-tags a:hover, .ih-tagcloud a:hover { border-color: var(--ih-accent); color: var(--ih-text); }
.ih-tagcloud { display: flex; flex-wrap: wrap; gap: 8px; }

/* DMMブックスの商品カード(publish.mjs が出力) */
.dmm-card { display: flex; gap: 16px; align-items: flex-start; background: var(--ih-surface); border: 1px solid var(--ih-border); border-radius: 8px; padding: 16px; margin: 1.5rem 0; box-shadow: 0 1px 4px rgba(59, 42, 26, 0.08); }
.dmm-card img { width: 120px; height: auto; border-radius: 4px; flex: none; }
.dmm-card .dmm-title { display: block; font-size: 1.05rem; line-height: 1.5; margin-bottom: 4px; }
.dmm-card .dmm-meta { color: var(--ih-muted); font-size: 0.85rem; }
.dmm-card .dmm-btn { display: inline-block; margin-top: 12px; background: var(--ih-dmm); color: #fff; padding: 0.55rem 1.2rem; border-radius: 6px; text-decoration: none; font-weight: 500; }
.dmm-card .dmm-btn:hover { filter: brightness(1.1); }
.dmm-credit { color: var(--ih-muted); }

@media (max-width: 782px) {
  .ih-grid.wp-block-post-template { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
  .ih-cats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ih-hero .ih-cover img, .ih-hero .ih-cover .ih-noimg { max-height: 240px; }
}
@media (max-width: 520px) {
  .dmm-card { flex-direction: column; align-items: center; text-align: center; }
  .dmm-card img { width: 140px; }
}
