/*
Theme Name: hakobune note
Theme URI: https://hakobune.org/blog/
Author: ハコブネ
Description: ハコブネのホームページと同じデザインのブログ用テーマ。ホームページの style.css を読み込み、ブログ用の見た目を足しています。
Version: 2.5
Requires PHP: 7.4
Text Domain: hakobune-blog
*/

/* ===== ブログ一覧 ===== */
.blog-first{padding-top:150px;background:linear-gradient(180deg,#e4f6f6 0,var(--cream) 420px)}
.blog-cats{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin:-20px 0 44px}
.blog-cats a{background:#fff;border:2px solid var(--line);border-radius:999px;padding:6px 18px;font-weight:700;font-size:.9rem;color:var(--ink-soft);transition:.2s}
.blog-cats a:hover,.blog-cats a.current{background:var(--blue-deep);border-color:var(--blue-deep);color:#fff}
.posts{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.post-card{background:#fff;border-radius:22px;overflow:hidden;box-shadow:var(--shadow-s);display:flex;flex-direction:column;transition:transform .3s,box-shadow .3s}
.post-card:hover{transform:translateY(-4px);box-shadow:var(--shadow)}
.post-thumb{aspect-ratio:16/10;background:linear-gradient(140deg,#d5f0f0,#96dcde 55%,#f9c2e2);overflow:hidden}
.post-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.post-body{padding:18px 20px 22px;display:flex;flex-direction:column;flex:1}
.post-meta{display:flex;align-items:center;gap:10px;font-size:.8rem;color:var(--ink-soft);margin-bottom:8px}
.post-cat{background:var(--cream);color:var(--blue-deep);font-weight:700;border-radius:999px;padding:2px 12px}
.post-card h2,.post-card h3{font-size:1.08rem;line-height:1.6;margin-bottom:8px}
.post-card p{font-size:.88rem;color:var(--ink-soft);line-height:1.8;flex:1}
.no-posts{text-align:center;color:var(--ink-soft);padding:40px 0}
.pager{display:flex;justify-content:center;gap:8px;margin-top:44px}
.pager a,.pager span{min-width:42px;height:42px;display:grid;place-items:center;border-radius:999px;background:#fff;box-shadow:var(--shadow-s);font-weight:700;padding:0 14px}
.pager .current{background:var(--blue-deep);color:#fff}

/* ===== 記事ページ ===== */
.article{max-width:760px;margin:0 auto;background:#fff;border-radius:var(--radius);padding:44px 48px;box-shadow:var(--shadow-s)}
.article-head{margin-bottom:26px}
.article-head h1{font-size:clamp(1.45rem,3.2vw,2rem);font-weight:900;line-height:1.5;margin-top:10px}
.article-eyecatch{border-radius:18px;overflow:hidden;margin-bottom:30px}
.article-eyecatch img{width:100%;height:auto;display:block}
.entry{font-size:1.02rem;line-height:2}
.entry > *+*{margin-top:1.2em}
.entry h2{font-size:1.35rem;padding:10px 16px;background:var(--cream);border-left:6px solid var(--blue);border-radius:0 12px 12px 0;margin-top:2em}
.entry h3{font-size:1.15rem;color:var(--blue-deep);padding-bottom:6px;border-bottom:2px dashed var(--line);margin-top:1.8em}
.entry img{max-width:100%;height:auto;border-radius:14px}
.entry figure{margin:1.6em 0}
.entry figcaption{font-size:.82rem;color:var(--ink-soft);text-align:center;margin-top:6px}
.entry ul,.entry ol{padding-left:1.4em}
.entry ul{list-style:disc}.entry ol{list-style:decimal}
.entry li{margin-bottom:.4em}
.entry a{color:var(--blue-deep);text-decoration:underline;text-underline-offset:3px}
.entry blockquote{background:#fdf1f8;border-radius:14px;padding:16px 20px;color:var(--ink-soft)}
.article-foot{margin-top:40px;padding-top:24px;border-top:1px dashed var(--line);display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;font-size:.9rem}
.article-foot a{color:var(--blue-deep);font-weight:700}
.article-cta{max-width:760px;margin:30px auto 0}
.related{max-width:1040px;margin:60px auto 0}
.related .posts{grid-template-columns:repeat(3,1fr)}

@media (max-width:860px){
  .blog-first{padding-top:120px}
  .posts,.related .posts{grid-template-columns:1fr}
  .article{padding:28px 20px}
  .entry{font-size:.98rem;text-align:justify}
}

/* 記事タイトル・カードのタイトル：長くてもはみ出さない */
.article-head h1{font-size:clamp(1.25rem,2.4vw,1.7rem)!important;line-height:1.55;word-break:normal!important;overflow-wrap:anywhere!important;text-wrap:pretty!important;letter-spacing:.02em}
.post-card h2,.post-card h3{font-size:1rem!important;line-height:1.6;word-break:normal!important;overflow-wrap:anywhere!important;text-wrap:pretty!important}
.article,.entry{overflow-wrap:anywhere;min-width:0}
.entry table{display:block;max-width:100%;overflow-x:auto}
@media (max-width:560px){
  .article-head h1{font-size:1.2rem!important}
  .entry h2{font-size:1.15rem}
  .entry h3{font-size:1.05rem}
}
/* 記事の見出し部分（header要素）が、サイト上部の固定ヘッダーの指定を受けないようにする */
.article-head{position:static!important;inset:auto!important;z-index:auto!important;background:none!important;box-shadow:none!important;backdrop-filter:none!important}

/* 記事タイトル・カードのタイトルも、語句の切れ目（<wbr>）で改行する */
.article-head h1.pw,.post-card h2.pw,.post-card h3.pw,.entry h2.pw,.entry h3.pw{word-break:keep-all!important;overflow-wrap:anywhere!important;text-wrap:balance!important}

/* 記事本文は左揃え（両端そろえにすると文字の間があいて読みにくいため） */
.entry,.entry p,.entry h2,.entry h3,.entry li,.entry td,.entry th{text-align:left!important;text-justify:auto}
.entry li.pw,.entry td.pw,.entry th.pw{word-break:keep-all!important;overflow-wrap:anywhere!important}

/* 表：数字の列が縦に細くならないように */
.entry table{display:table!important;width:100%;table-layout:auto}
.entry th,.entry td{min-width:4.2em;word-break:keep-all;overflow-wrap:anywhere}
.entry td.pw,.entry th.pw{word-break:keep-all!important}
@media (max-width:560px){.entry table{font-size:14px}.entry th,.entry td{padding:8px 8px}}
.entry td:not(:first-child),.entry th:not(:first-child){min-width:5.2em}

/* タイトルの副題（｜のあと） */
.title-sub{display:block;font-size:.72em;font-weight:700;color:var(--ink-soft);margin-top:6px;line-height:1.6}
.post-card .title-sub{font-size:.82em;margin-top:2px}

/* タイトルの語句のかたまり（functions.php の hkb_phrases）：かたまりの途中では改行しない */
.tw{white-space:nowrap!important;text-wrap:nowrap!important;text-wrap-mode:nowrap!important}