/* ==========================================================
   湯呑屋。のひだまり — 共通スタイル（2026リニューアル 4a確定版）
   アイボリーの濃淡＋墨＋深緑/朱。見出し=墨系、ボックス=淡い色面
   ========================================================== */
:root {
  --bg: #F2EFE9;
  --bg-sub: #E9E4D8;      /* 深めの生成り面（検索帯・メモ） */
  --band: #EAE6DB;        /* セクション帯 */
  --paper: #FAF9F4;       /* カード・紙面 */
  --text: #2B2A26;
  --muted: #55524B;
  --faint: #8A857A;
  --ink: #55524B;         /* h2帯・太罫 */
  --accent: #1F4A44;      /* 深緑: リンク・選択 */
  --accent-deep: #1F4A44;
  --accent-hover: #163B36;
  --warm: #C1502E;        /* 朱: 状態・強調（限定使用） */
  --warm-deep: #A63F1E;
  --border: #DDD8CD;
  --border-blue: #CFC8B6; /* 強めの輪郭線（旧名互換） */
  --num-blue: #E4DFD2;
  --num-warm: #E0DBCC;
  /* 機能色 */
  --ok: #173B36;      --ok-bg: #D3E3D8;      --ok-bd: #4E7A6B;
  --warn: #8C3315;    --warn-bg: #F2DBC8;    --warn-bd: #BC6A41;
  --danger: #A63F1E;  --danger-bg: #F6E9E1;  --danger-bd: #E0BFA9;
  --marker: #F2DFA0;
  --marker-line: #E8CE6E;
  --serif: 'Noto Serif JP', serif;
  --sans: 'Zen Kaku Gothic New', sans-serif;
  --sp-xs: 8px; --sp-sm: 16px; --sp-md: 24px; --sp-lg: 40px; --sp-xl: 64px; --sp-2xl: 96px;
  --content-max: 1600px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--bg);
  color: var(--text);
  font-family: var(--sans);
  font-size: 16px;
  line-height: 1.9;
  letter-spacing: 0.01em;
}
a { color: var(--accent-deep); text-decoration: none; transition: color .15s ease; }
a:hover { color: var(--accent-hover); }
/* 記事本文の文中のリンク（一般的な青、訪問後は一般的な紫。2026-10-12 運営者決定）。目次・カード型のリンク・ボタンは対象外 */
.article-body p a, .article-body li a, .article-body td a, .article-body blockquote a, .article-body .sv-link a { color: #1A73E8; text-decoration: underline; text-underline-offset: 2px; }
.article-body p a:visited, .article-body li a:visited, .article-body td a:visited, .article-body blockquote a:visited, .article-body .sv-link a:visited { color: #681DA8; }
.article-body p a:hover, .article-body li a:hover, .article-body td a:hover, .article-body blockquote a:hover, .article-body .sv-link a:hover { color: #1558B0; }
img { max-width: 100%; height: auto; display: block; }
input, textarea, button, select { font-family: var(--sans); }

.container { max-width: 1200px; margin: 0 auto; padding: 0 24px; }
.narrow { max-width: 720px; margin: 0 auto; padding: 0 20px; }
.mid { max-width: 1040px; margin: 0 auto; padding: 0 20px; }

/* ---------- ヘッダー ---------- */
.site-header {
  position: relative;
  padding: 26px 48px 22px;
  border-bottom: 1px solid var(--border);
  background: var(--bg);
}
.logo-wrap { text-align: center; }
.logo-frame { display: inline-block; }
.logo-frame a, .logo-frame span {
  display: block; padding: 6px 10px;
  font-family: var(--serif); font-weight: 700; font-size: 22px;
  color: var(--text); letter-spacing: .06em;
}
.tagline { margin-top: 8px; font-size: 12.5px; letter-spacing: .14em; color: var(--muted); font-weight: 500; text-align: center; }
.header-search {
  position: absolute; top: 30px; right: 48px;
  display: flex; align-items: center; gap: 8px;
  border: 1px solid var(--border-blue); background: #FFFFFE;
  padding: 9px 14px; width: 200px; cursor: pointer;
  font-size: 13px; color: var(--muted);
  transition: border-color .15s ease;
}
.header-search:hover { border-color: var(--accent); }
.header-search span { flex: 1; }

/* コンパクトヘッダー（下層ページ用） */
.site-header.compact { display: flex; align-items: center; justify-content: space-between; padding: 0 48px; height: 64px; }
.site-header.compact .logo-frame a, .site-header.compact .logo-frame span { padding: 4px 0; font-size: 19px; }
.compact-nav { display: flex; align-items: center; gap: 28px; }
.compact-nav nav { display: flex; gap: 26px; font-size: 13.5px; font-weight: 500; }
.compact-nav nav a { color: var(--text); }
.compact-nav nav a:hover { color: var(--accent-deep); }
.search-icon-btn { background: none; border: none; padding: 4px; cursor: pointer; display: flex; }

.cat-scroll, .cat-toggle { display: none; }
.header-search-icon-mobile { display: none; }

/* ---------- ファーストビュー ---------- */
.fv { display: grid; grid-template-columns: 66fr 34fr; gap: 32px; padding: 40px 48px 0; max-width: 1240px; margin: 0 auto; align-items: stretch; }
.fv-main .eyecatch { border: 0; }
.fv-track { position: relative; aspect-ratio: 1200 / 675; overflow: hidden; background: var(--bg-sub); }
.fv-track .eyecatch { position: absolute; inset: 0; border: 0; opacity: 0; transition: opacity .6s ease; pointer-events: none; }
.fv-track .eyecatch.is-active { opacity: 1; pointer-events: auto; }
.fv-track .eyecatch img { width: 100%; height: 100%; object-fit: cover; display: block; }
.fv-caption {
  position: absolute; left: 0; right: 0; bottom: 0; padding: 48px 24px 18px;
  color: #fff; font-family: var(--serif); font-size: 18px; font-weight: 600; line-height: 1.55;
  background: linear-gradient(to top, rgba(20,18,14,.62), rgba(20,18,14,0));
}
.fv-dots { display: flex; justify-content: center; gap: 10px; margin-top: 14px; }
.fv-dots span { width: 7px; height: 7px; border-radius: 50%; background: #D5D0C2; cursor: pointer; transition: background .2s; }
.fv-dots span.on { background: var(--accent); }
@media (prefers-reduced-motion: reduce) { .fv-track .eyecatch { transition: none; } .cat-scroll.is-open { animation: none; } .cat-toggle .chev { transition: none; } }
/* 縦書きキャッチ（右カラム）— 高さは左の写真に合わせる */
.fv-catch {
  display: flex; justify-content: center; align-items: center; gap: 20px;
  padding: 0; aspect-ratio: .8; overflow: hidden;
}
.fv-catch .main {
  writing-mode: vertical-rl; font-family: var(--serif); font-size: clamp(22px, 2.1vw, 38px);
  font-weight: 700; line-height: 1.9; letter-spacing: .14em; color: var(--text);
  max-height: 100%;
}
.fv-catch .sub { writing-mode: vertical-rl; font-size: 12px; letter-spacing: .3em; color: var(--faint); padding-top: 8px; max-height: 100%; }
/* FV: 左は墨地に悩みメニュー、右に写真全体（暗幕を重ね、左端はぼかして墨地へ溶かす）。
   写真は images/fv-bg.jpg（3:2想定。帯の高さ600pxで幅900px）。キャッチは右カラム（66fr:34fr の右） */
.fv-band {
  --on: #F7F5EF; --on-mute: rgba(247,245,239,.72); --on-line: rgba(247,245,239,.26);
  position: relative; isolation: isolate; overflow: hidden; background: #1A1814;
}
.fv-band::after {
  content: ""; position: absolute; inset: 0; z-index: -1;
  background:
    linear-gradient(to right, #1A1814 0, #1A1814 calc(100% - 900px), rgba(26,24,20,0) calc(100% - 760px)),
    linear-gradient(rgba(20,18,14,.62), rgba(20,18,14,.62)),
    var(--fv-image, url("../images/fv-bg.jpg?v=2"));
  background-size: 100% 100%, 100% 100%, auto 100%;
  background-position: 0 0, 0 0, right center;
  background-repeat: no-repeat;
}
.fv-band .fv { min-height: 600px; padding: 40px 48px; }
.fv-band + .band-wrap { margin-top: 0; border-top: none; }
.fv-band .fv-catch { grid-column: 2; grid-row: 1; }
.fv-band .fv-catch .main { color: var(--on); text-shadow: 0 1px 10px rgba(20,18,14,.5); }
.fv-band .fv-catch .sub { color: rgba(247,245,239,.88); }
.fv-finder { grid-column: 1; grid-row: 1; align-self: center; justify-self: start; width: 340px; }
.fv-finder .label { font-size: 12px; font-weight: 700; letter-spacing: .32em; color: var(--on-mute); }
.fv-finder .q { margin-top: 12px; font-family: var(--serif); font-weight: 600; font-size: 26px; line-height: 1.6; color: var(--on); }
.fv-finder .search-bar { margin-top: 22px; border: none; background: rgba(250,249,244,.94); }
.fv-finder ul { list-style: none; margin: 18px 0 0; padding: 0; border-top: 1px solid var(--on-line); }
.fv-finder li a { display: flex; justify-content: space-between; align-items: baseline; padding: 11px 2px; border-bottom: 1px solid var(--on-line); color: var(--on); font-size: 14.5px; font-weight: 500; }
.fv-finder li a span { color: var(--on-mute); transition: transform .15s ease; }
.fv-finder li a:hover { color: #FFFFFE; }
.fv-finder li a:hover span { transform: translateX(3px); }
@media (max-width: 1080px) {
  /* 縦積み: キャッチ → 悩みメニュー。写真は帯全体に敷く */
  .fv-band::after {
    background: linear-gradient(rgba(20,18,14,.7), rgba(20,18,14,.7)), var(--fv-image, url("../images/fv-bg.jpg?v=2")) right center / cover no-repeat;
  }
  .fv-band .fv { min-height: 0; padding: 48px 32px 56px; gap: 36px; }
  .fv-band .fv-catch { grid-column: auto; grid-row: 1; justify-content: center; align-items: center; text-align: center; }
  .fv-finder { grid-column: auto; grid-row: 2; justify-self: center; width: 100%; max-width: 520px; }
}
@media (max-width: 600px) {
  /* スマホ: キャッチは出さず、問いかけ＋検索＋悩みメニューだけを最初に見せる */
  .fv-band .fv { padding: 26px 20px 54px; } /* 見た目で写真の中央に来るよう、少し上寄せ */
  .fv-band .fv-catch { display: none; }
  .fv-finder { grid-row: auto; } /* キャッチを消した分の空き行を詰め、写真の上下中央に置く */
  .fv-finder .q { font-size: 22px; text-align: center; }
}

/* ---------- 検索＋悩みカテゴリ（Article finder） ---------- */
.finder-wrap { max-width: 1240px; margin: 0 auto; padding: 72px 48px 0; }
.finder { background: var(--bg-sub); border: 1px solid #DDD6C6; padding: 40px 40px 44px; }
.finder-title { font-family: var(--serif); font-weight: 600; font-size: 17px; letter-spacing: .06em; margin-bottom: 16px; }
.finder .search-bar { border: 1px solid #B9B4A6; }
.finder-cards { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 20px; margin-top: 32px; }
.finder-cards > a {
  display: block; background: var(--paper); border: 1px solid #DDD6C6; border-top: 1px solid var(--text);
  padding: 20px 20px 22px; color: var(--text); transition: background .15s ease;
}
.finder-cards > a:hover { background: #FFFFFE; color: var(--text); }
.finder-cards .f-name { font-family: var(--serif); font-size: 17px; font-weight: 600; color: var(--accent-deep); display: block; }
.finder-cards .f-desc { font-size: 13px; line-height: 1.9; color: var(--muted); display: block; margin: 12px 0 10px; }
.finder-cards .f-arrow { color: var(--accent-deep); font-size: 15px; }
.finder-acc { display: none; }

/* ---------- レイアウト ---------- */
.layout { display: grid; grid-template-columns: 1fr 300px; gap: 40px; padding: 44px 48px 56px; max-width: var(--content-max); margin: 0 auto; }
main { min-width: 0; }
.layout > main { --panel-pad: 48px; background: none; border: 0; padding: 0; }
.layout > main .feature-band { margin-left: 0; margin-right: 0; }

/* ---------- セクション見出し（極小ラベル＝4a） ---------- */
.sec-head { position: relative; padding-top: 0; }
.sec-head .big-num { display: none; }
.sec-head .row { position: relative; display: flex; align-items: baseline; gap: 18px; }
.sec-head h2 { margin: 0; font-family: var(--sans); font-weight: 700; font-size: 12.5px; letter-spacing: .32em; color: #6E6A5F; }
.sec-head .sub { font-size: 11.5px; letter-spacing: .06em; color: var(--faint); font-weight: 500; }

/* ---------- 記事リスト ---------- */
.post-list { display: flex; flex-direction: column; margin-top: 22px; border-top: 1px solid var(--text); }
.post-list a {
  display: grid; grid-template-columns: 200px 1fr; gap: 28px; align-items: center;
  padding: 26px 8px; border-bottom: 1px solid var(--border); color: var(--text);
  transition: background .15s ease;
}
.post-list a:hover { background: var(--paper); }
.post-list .thumb { aspect-ratio: 3/2; overflow: hidden; }
.post-list .thumb img { width: 100%; height: 100%; object-fit: cover; }
.post-meta { display: flex; align-items: baseline; gap: 12px; font-size: 12px; }
.post-meta .cat { color: var(--accent-deep); border: 1px solid var(--accent-deep); padding: 2px 10px; font-weight: 700; }
.post-meta .date { color: var(--faint); }
.post-list .p-title { font-family: var(--serif); font-weight: 600; font-size: 19px; line-height: 1.7; display: block; margin-top: 10px; text-wrap: pretty; }

.more-wrap { margin-top: 40px; text-align: center; }
.btn-more {
  font-size: 14px; font-weight: 700; color: var(--accent-deep);
  border: 1.5px solid var(--accent-deep); padding: 14px 56px; display: inline-block;
  transition: background .15s ease;
}
.btn-more:hover { background: #E4EDE6; color: var(--accent-hover); }

/* ---------- 広告枠 ---------- */
.ad-slot {
  border: 1px dashed #C9C5BC; background: #EFEBE1;
  display: flex; align-items: center; justify-content: center;
  font-family: ui-monospace, Menlo, monospace; font-size: 11px; color: var(--faint);
}
.ad-slot.h120 { height: 120px; margin-top: var(--sp-xl); }
.ad-slot.h250 { height: 250px; }
.ad-slot.h100 { height: 100px; margin-top: 28px; }

/* ---------- 特集（今月の特集帯） ---------- */
.feature-band { margin-top: 104px; background: var(--band); border-top: 1px solid #DCD7C9; border-bottom: 1px solid #DCD7C9; padding: 56px 36px 56px; }
.feature-inner { position: static; top: 0; }
.feature-list { display: grid; grid-template-columns: 1fr; gap: 48px; margin-top: 32px; }
.serial-card { display: grid; grid-template-columns: minmax(0, 260px) minmax(0, 1fr); align-items: stretch; }
.serial-card .kv { min-height: 0; aspect-ratio: 16/10; position: static; overflow: hidden; }
.serial-card .kv img { width: 100%; height: 100%; object-fit: cover; }
.serial-card .body { background: var(--paper); border: 1px solid #DDD6C6; padding: 32px 36px; }
.serial-label { font-size: 11px; letter-spacing: .18em; color: var(--accent-deep); font-weight: 700; }
.serial-card h3 { margin: 10px 0 0; font-family: var(--serif); font-weight: 700; font-size: 21px; line-height: 1.65; }
.serial-card .desc { margin: 12px 0 0; font-size: 14px; line-height: 1.9; color: var(--muted); }
.serial-toc { display: flex; flex-direction: column; margin-top: 18px; border-top: 1px solid var(--border); }
.serial-toc a { display: flex; gap: 12px; align-items: baseline; padding: 12px 4px; border-bottom: 1px solid var(--border); font-size: 14px; color: var(--text); }
.serial-toc a:last-child { border-bottom: none; }
.serial-toc a:hover { color: var(--accent-deep); }
.serial-toc .no { color: var(--text); font-family: var(--serif); font-weight: 700; font-size: 13px; }

/* ---------- サイドバー ---------- */
.sidebar { display: flex; flex-direction: column; gap: 48px; }
.sb-profile { border: 1px solid #DDD6C6; padding: 28px 26px; background: var(--paper); }
.sb-profile .name { font-family: var(--serif); font-weight: 700; font-size: 16px; letter-spacing: .1em; text-align: center; }
.sb-profile p { margin: 14px 0 0; font-size: 13px; line-height: 1.9; color: var(--muted); }
.sb-profile .more { margin-top: 16px; text-align: right; font-size: 12px; }
.sb-title {
  font-family: var(--sans); font-weight: 700; font-size: 12.5px; letter-spacing: .32em; color: #6E6A5F;
  border-bottom: 1px solid var(--text); padding-bottom: 12px;
}
.sb-ranking a {
  display: flex; gap: 14px; align-items: flex-start; padding: 16px 2px;
  border-bottom: 1px solid var(--border); font-size: 13.5px; line-height: 1.8; color: var(--text);
}
.sb-ranking a:hover { color: var(--accent-deep); }
.sb-cats a {
  display: flex; align-items: center; gap: 10px; padding: 14px 2px;
  border-bottom: 1px solid var(--border); font-size: 14px; color: var(--text);
}
.sb-cats a:hover { color: var(--accent-deep); }
.sb-x { display: flex; flex-direction: column; gap: 20px; margin-top: 18px; }
.sb-x a { display: block; border-left: 2px solid var(--border-blue); padding: 2px 0 2px 16px; color: var(--text); transition: border-color .2s ease; }
.sb-x a:hover { border-left-color: var(--accent-deep); }
.sb-x .x-date { font-size: 11px; letter-spacing: .1em; color: var(--accent-deep); font-weight: 700; }
.sb-x p { margin: 8px 0 0; font-size: 13px; line-height: 1.8; }

/* ---------- 記事ページ 2カラム ---------- */
.article-layout {
  display: grid; grid-template-columns: minmax(0, 768px) 300px; gap: 48px;
  justify-content: center; align-items: start;
  margin: 0 auto; padding: 40px 24px 96px;
}
.article-layout > .narrow {
  max-width: none; margin: 0;
  background: none; border: 0;
  padding: 8px 0 0;
}
/* サイドバーの開始を記事タイトルの上辺に揃える固定値。
   内訳: .narrow padding-top 8 + パンくず23 + 余白20 + PR注記20 + 余白28 + メタ30 + h1 margin-top 20 ≒ 149px
   ※パンくずが2行になる記事ではずれるため、その場合はこの値を調整する */
.article-layout > .sidebar { position: static; padding-top: 149px; }
@media (max-width: 1024px) {
  .article-layout { grid-template-columns: minmax(0, 768px); }
  .article-layout > .sidebar { width: 100%; max-width: 768px; margin: 8px auto 0; padding-top: 0; }
}

/* ---------- フッター ---------- */
.site-footer { background: #E3DED0; border-top: 1px solid #D5CFC0; padding: 48px 48px 28px; }
.footer-grid { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 40px; max-width: 1000px; margin: 0 auto; }
.footer-grid .col-title { font-size: 12px; letter-spacing: .14em; color: var(--muted); font-weight: 700; margin-bottom: 14px; }
.footer-grid .links { display: flex; flex-direction: column; gap: 10px; font-size: 13px; }
.footer-grid .links a { color: var(--text); }
.footer-grid .links a:hover { color: var(--accent-deep); }
.copyright { text-align: center; margin-top: 44px; padding-top: 22px; border-top: 1px solid #D5CFC0; font-size: 12px; color: var(--muted); }

/* ---------- 記事ページ ---------- */
.breadcrumb { font-size: 12px; color: var(--faint); display: flex; gap: 8px; align-items: baseline; flex-wrap: wrap; }
.breadcrumb a { color: var(--faint); }
.breadcrumb a:hover { color: var(--accent-deep); }
.pr-note { margin: 20px 0 0; font-size: 10.5px; color: var(--faint); letter-spacing: .02em; }
.article-meta { display: flex; align-items: baseline; gap: 14px; margin-top: 28px; font-size: 12.5px; flex-wrap: wrap; }
.article-meta .cat { color: var(--accent-deep); border: 1px solid var(--accent-deep); padding: 2px 12px; font-weight: 700; }
.article-meta .date { color: var(--muted); }
h1.article-title { margin: 20px 0 0; font-family: var(--serif); font-weight: 700; font-size: 34px; line-height: 1.6; text-wrap: pretty; }
.article-eyecatch { margin-top: 32px; overflow: hidden; }
.article-eyecatch img { width: 100%; }

/* 目次 */
.toc { margin: 48px 0 0; background: var(--paper); border: 1px solid #DDD6C6; }
.toc-head {
  all: unset; box-sizing: border-box; display: flex; justify-content: space-between; align-items: center;
  width: 100%; padding: 16px 26px; cursor: pointer;
}
.toc-head .t { font-family: var(--sans); font-weight: 700; font-size: 13px; letter-spacing: .32em; color: #6E6A5F; }
.toc-head .toggle { font-size: 14px; color: var(--accent-deep); font-weight: 700; }
.toc-body { padding: 0 26px 22px; display: flex; flex-direction: column; border-top: 1px solid #DDD6C6; }
.toc.closed .toc-body { display: none; }
.toc-body a { display: flex; gap: 11px; align-items: center; padding: 11px 2px; font-size: 14.5px; color: var(--text); border-bottom: 1px solid #EAE5D9; }
.toc-body a:last-child { border-bottom: none; }
.toc-body a:hover { color: var(--accent-deep); }
.toc-body a.lv3 { padding-left: 24px; font-size: 13.5px; color: var(--muted); }

/* 見出し（2b確定: h2=墨帯 / h3=墨＋太下罫 / h4=深緑文字） */
.article-body { font-size: 16px; line-height: 2; }
.article-body > p { margin: 26px 0 0; }
.h2-wrap { position: relative; margin-top: 88px; }
.h2-wrap .tab { display: none; }
.h2-wrap h2 {
  margin: 0; font-family: var(--serif); font-weight: 700; font-size: 25px; line-height: 1.6;
  background: var(--ink); color: #F7F5EF;
  padding: 13px 22px;
}
.article-body h3 {
  margin: 56px 0 0; font-family: var(--sans); font-weight: 700; font-size: 19px; line-height: 1.6;
  background: none; border-left: none;
  color: var(--text); border-bottom: 3px solid var(--ink); padding: 0 2px 10px;
}
.article-body h4 {
  margin: 48px 0 0; font-family: var(--sans); font-weight: 700; font-size: 16.5px; line-height: 1.6;
  padding-bottom: 0; background: none; color: var(--accent-deep);
}

/* インライン */
.marker { background: linear-gradient(transparent 62%, var(--marker) 62%); }
strong, .em-line { font-weight: 700; background: none; padding-bottom: 0; }
strong.warm { color: var(--warm-deep); }
.footnote { font-size: 12.5px; color: var(--muted); border-top: 1px solid var(--border); padding-top: 14px; margin-top: 40px; }
.footnote .fn-no, sup.fn { color: var(--warm-deep); font-weight: 700; }
.del { color: var(--danger); text-decoration: line-through; }

/* 引用 */
blockquote {
  margin: 44px 0 0; border-left: 3px solid var(--ink);
  background: var(--bg-sub); padding: 24px 28px 24px 26px;
}
blockquote p { margin: 0; font-family: var(--serif); font-size: 16px; line-height: 2.1; }
blockquote cite { display: block; margin-top: 12px; font-style: normal; font-size: 12.5px; color: var(--faint); }

/* リスト */
.list-dia, .list-num, .list-check { margin: 40px 0 0; display: flex; flex-direction: column; gap: 0; padding: 0; list-style: none; }
.list-dia li, .list-num li, .list-check li { display: flex; gap: 12px; align-items: baseline; padding: 7px 0; border-bottom: 1px dotted #CFC9BC; }
.list-dia li:last-child, .list-num li:last-child, .list-check li:last-child { border-bottom: none; }
.list-dia li::before { content: "・"; color: var(--accent-deep); font-weight: 700; flex: none; width: auto; height: auto; background: none; transform: none; position: static; }
.list-num { counter-reset: n; }
.list-num li { gap: 14px; }
.list-num li::before {
  counter-increment: n; content: counter(n) ".";
  font-family: var(--serif); color: var(--ink); font-weight: 700; font-size: 15px; flex: none;
}
.list-check li::before {
  content: ""; flex: none; width: 12px; height: 7px;
  border-left: 2px solid var(--accent-deep); border-bottom: 2px solid var(--accent-deep);
  transform: rotate(-45deg); position: relative; top: 6px;
}

/* ボックス（紙の白の地＋左の色の罫で役割を分ける。2026-10-12 運営者決定）
   余白は前のデザインのまま。左の罫を4pxにした分、左の余白を26px→23pxにして文字の位置をそろえる */
.box { margin: 44px 0 0; position: relative; background: #FFFFFE; border: 1px solid #E6E1D6; border-left-width: 4px; }
.box .bx-inner { padding: 22px 26px 22px 23px; font-size: 14.5px; line-height: 2; }
.box .bx-inner p { margin: 0 0 12px; padding: 0; }
.box .bx-inner p:last-child { margin-bottom: 0; }
.box .label {
  position: static; display: block;
  color: inherit; font-size: 13px; letter-spacing: .04em; padding: 22px 26px 0 23px; font-weight: 700;
  background: none;
}
/* ラベル（メモ・ポイント・注意など）は出さない。役割は左の罫の色で示す（2026-10-12 運営者決定）。監修だけは出す */
.box .label { display: none; }
.box.supervisor .label { display: block; }
.box.supervisor .label + .bx-inner, .box.supervisor .label + p { padding-top: 8px; }
.box p { margin: 0; padding: 22px 26px 22px 23px; font-size: 14.5px; line-height: 2; }
.box.supervisor .label + p { padding: 8px 26px 22px 23px; }
/* エディタが入れる空の段落（<p></p>）で余白が空かないようにする */
.box p:empty { display: none; }
.box.point { border-left-color: #4E7A6B; }
.box.point .label { color: #3E6B5B; }
.box.caution { border-left-color: #BC6A41; }
.box.caution .label { color: #A9582F; }
.box.danger { border-left-color: var(--danger-bd); }
.box.danger .label { color: var(--danger); }
.box.ok { border-left-color: #4E7A6B; }
.box.ok .label { color: #3E6B5B; }
.box.memo { border-left-color: #A79E82; }
.box.memo .label { color: #6E6550; }

/* 監修者のボックス（薄い青の面＋細い枠、角を8px丸める。2026-10-12 運営者決定。青はアイコンの髪の色を薄めたもの）
   <div class="box supervisor"><span class="label">監修</span><div class="bx-inner">
     <span class="sv-face"><img src="…" alt="…"></span>
     <span class="sv-body"><span class="sv-name">名前</span><span class="sv-desc">紹介文</span><span class="sv-link"><a href="…">X（旧Twitter）</a></span></span>
   </div></div> */
.box.supervisor { background: #EEF2FC; border: 1px solid #C9D3F2; border-radius: 8px; overflow: hidden; }
.box.supervisor .label { color: #3F57B5; padding-left: 26px; }
.box.supervisor .bx-inner { display: flex; gap: 18px; align-items: center; padding-left: 26px; }
.box.supervisor .sv-face { display: block; width: 64px; height: 64px; border-radius: 50%; overflow: hidden; flex: none; border: 1px solid #DDD6C6; background: #fff; }
.box.supervisor .sv-face img { width: 100%; height: 100%; object-fit: cover; display: block; }
.box.supervisor .sv-body { display: block; min-width: 0; }
.box.supervisor .sv-name { font-family: var(--serif); font-weight: 700; font-size: 16px; display: block; line-height: 1.6; }
.box.supervisor .sv-desc { font-size: 13px; line-height: 1.8; color: var(--muted); display: block; margin-top: 4px; }
.box.supervisor .sv-link { font-size: 13px; display: block; margin-top: 4px; }

/* 開閉ボックス */
details.acc { margin: 44px 0 0; border: 1px solid #DDD6C6; background: var(--paper); }
details.acc summary {
  cursor: pointer; list-style: none; display: flex; justify-content: space-between; align-items: center;
  padding: 16px 22px; font-size: 14.5px; font-weight: 700; color: var(--text);
}
details.acc summary::-webkit-details-marker { display: none; }
details.acc summary::after { content: "＋"; color: var(--accent-deep); font-weight: 700; }
details.acc[open] summary::after { content: "−"; }
details.acc .acc-body { border-top: 1px solid #DDD6C6; padding: 8px 22px 22px; }

/* テーブル（縦の線なし。上の太い罫と見出しの下の罫、行の間の細い罫だけ。2026-10-12 運営者決定） */
.article-body table { width: 100%; border-collapse: collapse; font-size: 14px; margin: 44px 0 0; border: none; border-top: 2px solid var(--ink); }
.article-body th {
  text-align: left; font-weight: 700; padding: 12px 16px; background: none; color: var(--text);
  border-top: none; border-bottom: 1px solid var(--ink);
}
.article-body td { padding: 13px 16px; border-bottom: 1px solid #E6E1D6; line-height: 1.8; background: none; }

/* コード */
.code-block { margin: 44px 0 0; background: #2B2A26; color: #E8E5DC; }
.code-block .bar { display: flex; justify-content: space-between; align-items: center; border-bottom: 1px solid #454239; padding: 10px 16px; }
.code-block .file { font-family: ui-monospace, Menlo, monospace; font-size: 11px; color: #A5A093; }
.code-block .copy { font-size: 11px; color: #A5A093; cursor: pointer; background: none; border: 1px solid #55524B; padding: 3px 10px; }
.code-block pre { margin: 0; padding: 18px 20px; font-family: ui-monospace, Menlo, monospace; font-size: 13.5px; line-height: 1.9; overflow-x: auto; }
code.inline {
  font-family: ui-monospace, Menlo, monospace; font-size: 13px;
  background: var(--bg-sub); border: 1px solid var(--border); padding: 2px 7px; color: var(--text);
}

/* ボタン */
.btn-outline {
  border: 1.5px solid var(--accent-deep); color: var(--accent-deep); background: none;
  font-size: 14px; font-weight: 700; letter-spacing: .06em; padding: 13px 56px; display: inline-block;
  cursor: pointer; transition: background .15s ease;
}
.btn-outline:hover { background: #E4EDE6; color: var(--accent-deep); }
.btn-fill {
  background: var(--accent-deep); color: #fff; border: none;
  font-size: 14px; font-weight: 700; letter-spacing: .06em; padding: 14px 56px; display: inline-block;
  cursor: pointer; transition: background .15s ease;
}
.btn-fill:hover { background: var(--accent-hover); color: #fff; }
.btn-text { color: var(--accent-deep); font-size: 14.5px; font-weight: 700; border-bottom: 2px solid var(--accent-deep); padding-bottom: 2px; }
.btn-center { margin: 52px 0 0; text-align: center; }

/* 吹き出し */
.bubble-row { margin: 48px 0 0; display: flex; gap: 16px; align-items: flex-start; }
.bubble-row.right { flex-direction: row-reverse; }
.bubble-row .who { display: flex; flex-direction: column; align-items: center; gap: 6px; flex: none; }
.bubble-row .face { width: 52px; height: 52px; border-radius: 50%; border: 1px solid #DDD6C6; overflow: hidden; background: var(--bg-sub); }
.bubble-row .face img { width: 100%; height: 100%; object-fit: cover; }
.bubble-row .who-name { font-size: 10px; color: var(--faint); }
.bubble { position: relative; border: 1px solid #DDD6C6; background: var(--paper); padding: 16px 20px; font-size: 14.5px; line-height: 2; flex: 1; border-radius: 10px; }
.bubble::before {
  content: ""; position: absolute; top: 18px; left: -7px; width: 12px; height: 12px;
  background: var(--paper); border-left: 1px solid #DDD6C6; border-bottom: 1px solid #DDD6C6;
  transform: rotate(45deg);
}
.bubble-row.right .bubble { background: #E4EDE6; border: 1px solid #C4D4C8; border-radius: 10px; }
.bubble-row.right .bubble::before { left: auto; right: -7px; background: #E4EDE6; border: none; border-right: 1px solid #C4D4C8; border-top: 1px solid #C4D4C8; }

/* ブログカード */
.blogcard {
  position: relative; display: grid; grid-template-columns: 200px 1fr;
  border: 1px solid #DDD6C6; background: var(--paper); color: var(--text);
  margin-top: 52px; border-radius: 6px; overflow: hidden; align-items: center;
  transition: border-color .15s ease;
}
.blogcard:hover { border-color: var(--accent-deep); color: var(--text); }
.blogcard .bc-label {
  position: static; display: block; background: none; color: var(--accent-deep);
  font-size: 11px; letter-spacing: .18em; padding: 0 0 8px; font-weight: 700;
}
.blogcard .bc-thumb { border-right: none; min-height: 0; background: var(--paper); overflow: hidden; align-self: center; margin: 16px 0 16px 16px; }
.blogcard .bc-thumb img { width: 100%; height: auto; object-fit: contain; }
.blogcard .bc-body { display: flex; flex-direction: column; gap: 4px; padding: 18px 22px; }
.blogcard .bc-title { font-family: var(--serif); font-weight: 600; font-size: 16px; line-height: 1.7; text-wrap: pretty; }
.linkcard {
  display: flex; justify-content: space-between; align-items: center; gap: 16px;
  border: 1px solid #DDD6C6; background: var(--paper); padding: 18px 22px;
  color: var(--text); margin-top: 28px; transition: border-color .15s ease;
}
.linkcard:hover { border-color: var(--accent-deep); color: var(--text); }
.linkcard .lc-domain { font-size: 11px; color: var(--faint); display: block; margin-top: 6px; }

/* 実践枠 */
.practice { margin-top: var(--sp-xl); border: 1px solid #DDD6C6; background: var(--paper); }
.practice .p-head { border-bottom: 1px solid #DDD6C6; padding: 16px 28px; font-family: var(--sans); font-weight: 700; font-size: 13px; letter-spacing: .24em; color: #6E6A5F; }
.practice .p-body { padding: 20px 28px 26px; display: flex; flex-direction: column; gap: 14px; }
.practice a { display: flex; gap: 12px; align-items: baseline; font-size: 14.5px; color: var(--text); }
.practice a:hover { color: var(--accent-deep); }
.practice .tag { font-size: 11px; letter-spacing: .1em; color: var(--accent-deep); border: 1px solid var(--accent-deep); padding: 2px 8px; white-space: nowrap; font-weight: 700; }

/* コメント */
.comments { margin-top: var(--sp-xl); }
.comments .c-head { display: flex; justify-content: space-between; align-items: baseline; border-bottom: 1px solid var(--text); padding-bottom: 14px; }
.comments .c-head .t { font-family: var(--sans); font-weight: 700; font-size: 13px; letter-spacing: .32em; color: #6E6A5F; }
.comments .c-head .note { font-family: ui-monospace, Menlo, monospace; font-size: 11px; color: var(--faint); }
.comment { display: flex; gap: 16px; padding: 28px 0; border-bottom: 1px solid var(--border); }
.comment .face { width: 40px; height: 40px; border-radius: 50%; border: 1px solid #DDD6C6; background: var(--bg-sub); flex: none; overflow: hidden; }
.comment .c-meta { display: flex; gap: 12px; align-items: baseline; }
.comment .c-name { font-size: 13.5px; font-weight: 700; }
.comment .c-name.owner { color: var(--accent-deep); }
.comment .c-date { font-size: 11px; color: var(--faint); }
.comment p { margin: 10px 0 0; font-size: 14px; line-height: 1.9; }
.comment .reply { margin-top: 24px; border-left: 2px solid var(--border-blue); padding-left: 20px; }
.comment-form { margin-top: 36px; background: var(--bg-sub); border: 1px solid #DDD6C6; padding: 28px 32px 32px; }
.comment-form .f-title { font-family: var(--sans); font-weight: 700; font-size: 13px; letter-spacing: .24em; color: #6E6A5F; }
.comment-form .f-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-top: 20px; }
.comment-form .f-foot { display: flex; justify-content: space-between; align-items: center; margin-top: 18px; gap: 16px; flex-wrap: wrap; }
.comment-form .f-note { font-size: 12px; color: var(--muted); }

/* フォーム共通 */
.field { display: flex; flex-direction: column; gap: 10px; }
.field .f-label { font-size: 13.5px; font-weight: 700; }
.field .req { color: var(--warm-deep); font-size: 11px; font-weight: 700; }
.field input, .field textarea, .comment-form input, .comment-form textarea {
  width: 100%; border: 1px solid #B9B4A6; background: #FFFFFE;
  padding: 13px 16px; font-size: 15px; color: var(--text); outline: none; resize: vertical;
  line-height: 1.8;
}
.field input:focus, .field textarea:focus,
.comment-form input:focus, .comment-form textarea:focus { border-color: var(--accent); }
.comment-form textarea { margin-top: 16px; }
.form-stack { margin-top: 48px; display: flex; flex-direction: column; gap: 28px; }
.form-note { margin: -8px 0 0; padding: 12px 16px; font-size: 13px; line-height: 1.7; color: var(--muted); background: var(--bg-sub); border: 1px solid var(--border); }

/* 著者・関連・前後ナビ */
.author-card {
  margin-top: 64px; border-top: 1px solid var(--text); border-bottom: none; border-left: none; border-right: none;
  padding: 26px 4px 0; display: flex; gap: 20px; align-items: center; background: none;
}
.author-card .face { width: 72px; height: 72px; border-radius: 50%; border: 1px solid #DDD6C6; background: var(--bg-sub); flex: none; overflow: hidden; }
.author-card .a-name { font-family: var(--serif); font-weight: 700; font-size: 17px; display: block; }
.author-card .a-desc { font-size: 13px; line-height: 1.8; color: var(--muted); display: block; margin-top: 6px; }

.related { margin-top: 72px; }
.related .r-title { font-family: var(--sans); font-weight: 700; font-size: 12.5px; letter-spacing: .32em; color: #6E6A5F; border-bottom: none; padding-bottom: 14px; }
.related-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 32px; margin-top: 12px; }
.related-grid a { display: flex; flex-direction: column; gap: 12px; color: var(--text); }
.related-grid a:hover { color: var(--accent-deep); }
.related-grid .thumb { aspect-ratio: 3/2; background: var(--bg-sub); overflow: hidden; }
.related-grid .thumb img { width: 100%; height: 100%; object-fit: cover; }
.related-grid .r-name { font-family: var(--serif); font-weight: 600; font-size: 15px; line-height: 1.7; }

.prevnext { margin-top: 56px; display: grid; grid-template-columns: 1fr 1fr; border: 1px solid #DDD6C6; background: var(--paper); }
.prevnext a { display: flex; flex-direction: column; gap: 8px; padding: 18px 22px; color: var(--text); }
.prevnext a:hover { color: var(--accent-deep); }
.prevnext a.next { text-align: right; }
.prevnext a.prev { border-right: 1px solid #DDD6C6; }
.prevnext .pn-label { font-size: 11.5px; color: var(--faint); }
.prevnext .pn-title { font-family: var(--sans); font-weight: 700; font-size: 14px; line-height: 1.7; }

/* ページネーション */
.pagination { display: flex; justify-content: center; gap: 16px; align-items: center; margin-top: 48px; }
.pagination a, .pagination span.cur {
  min-width: 40px; height: 40px; display: flex; align-items: center; justify-content: center; font-size: 14px;
}
.pagination span.cur { background: none; color: var(--text); font-family: var(--serif); font-weight: 700; border-bottom: 2px solid var(--warm); }
.pagination a { border: none; color: var(--muted); }
.pagination a:hover { color: var(--accent-deep); }
.pagination .dots { color: var(--faint); font-size: 13px; padding: 0 4px; }

/* FAQ・ステップ */
.faq { margin: 44px 0 0; border-top: 1px solid var(--ink); }
.faq .q { display: flex; gap: 16px; align-items: baseline; border-bottom: none; padding: 18px 4px 0; }
.faq .q .mk { font-family: var(--serif); font-weight: 700; font-size: 17px; color: var(--warm-deep); flex: none; }
.faq .q .txt { font-size: 15px; font-weight: 700; line-height: 1.8; }
.faq .a { display: flex; gap: 16px; align-items: baseline; padding: 12px 4px 18px; border-bottom: 1px solid var(--border); }
.faq .a .mk { font-family: var(--serif); font-weight: 700; font-size: 17px; color: var(--accent-deep); flex: none; }
.faq .a .txt { font-size: 14.5px; line-height: 2; }
.steps { margin: 40px 0 0; display: grid; grid-template-columns: 120px 1fr; gap: 0 24px; border-top: 1px solid var(--border); }
.steps .no-col { display: flex; flex-direction: column; align-items: flex-start; padding-top: 24px; }
.steps .no {
  width: auto; height: auto; border-radius: 0; background: none; color: var(--text);
  font-family: var(--serif); font-size: 15px; font-weight: 700; display: block;
}
.steps .no.last { border: none; color: var(--text); }
.steps .line { display: none; }
.steps .s-body { padding: 24px 0; border-bottom: 1px solid var(--border); }
.steps .s-title { font-size: 16px; font-weight: 700; line-height: 1.8; }
.steps .s-desc { margin: 8px 0 0; font-size: 14.5px; line-height: 2; color: var(--muted); }

/* 画像・区切り */
figure.article-figure { margin: 44px 0 0; }
figure.article-figure .img { background: var(--bg-sub); overflow: hidden; }
figure.article-figure figcaption { margin-top: 12px; font-size: 12.5px; color: var(--faint); text-align: center; }
hr.dia {
  border: none; margin: 56px 0 0; height: auto; position: static; background: none;
  text-align: center; font-family: var(--serif); font-size: 15px; letter-spacing: 1.2em; color: var(--faint);
  padding-left: 1.2em;
}
hr.dia::after { content: "＊＊＊"; position: static; width: auto; height: auto; background: none; border: none; transform: none; }

/* 作例ブロック */
.sakurei { margin: 44px 0 0; background: var(--paper); border: 1px solid #DDD6C6; padding: 26px 30px; }
.sakurei .body { font-family: var(--serif); font-size: 15px; line-height: 2.3; letter-spacing: .04em; }
.sakurei-caption { margin-top: 10px; font-size: 12.5px; color: var(--faint); text-align: center; }

/* 評価ボックス */
.rating { margin: 44px 0 0; background: var(--paper); border: 1px solid #DDD6C6; padding: 22px 26px; }
.rating .row { display: grid; grid-template-columns: 120px 1fr 56px; gap: 12px; font-size: 14px; align-items: center; padding: 8px 0; border-bottom: 1px dotted #CFC9BC; }
.rating .row:last-child { border-bottom: none; }
.rating .name { font-weight: 700; }
.rating .val { text-align: right; font-family: var(--serif); font-weight: 700; }
.rating .bar { height: 8px; background: #E2DED3; position: relative; }
.rating .bar i { position: absolute; inset: 0 auto 0 0; background: var(--accent-deep); display: block; }

/* ---------- 下層ページ共通 ---------- */
.page-title { margin: 36px 0 0; font-family: var(--serif); font-weight: 700; font-size: 36px; line-height: 1.5; }
.page-label { margin: 40px 0 0; font-size: 12.5px; font-weight: 700; letter-spacing: .32em; color: #6E6A5F; }
.title-rule { display: none; }
.page-lead { margin: 28px 0 0; font-size: 15px; line-height: 2; }
.updated { margin: 24px 0 0; font-size: 12.5px; color: var(--faint); }
.profile-card { margin-top: 44px; background: var(--paper); border: 1px solid #DDD6C6; padding: 32px 36px; }
.profile-card .p-name { font-family: var(--serif); font-weight: 700; font-size: 22px; letter-spacing: .08em; }
.profile-card .p-role { margin: 12px 0 0; font-size: 13px; line-height: 1.9; color: var(--muted); }
.profile-card p { margin: 16px 0 0; font-size: 15px; line-height: 2; }
.sns-row { margin-top: 48px; border-top: 1px solid var(--border); padding-top: 32px; display: flex; flex-wrap: wrap; gap: 12px 28px; font-size: 14px; font-weight: 700; }
.sns-row a { display: flex; align-items: center; gap: 8px; }
.dia-ico { width: 6px; height: 6px; background: var(--accent); transform: rotate(45deg); display: inline-block; flex: none; }

/* アーカイブ */
.archive-hero { background: var(--bg); padding: 48px 48px 0; }
.archive-hero .row { display: flex; align-items: baseline; gap: 20px; margin-top: 14px; }
.archive-hero h1 { margin: 0; font-family: var(--serif); font-weight: 700; font-size: 40px; letter-spacing: .04em; }
.archive-hero .sub { font-size: 12.5px; letter-spacing: .32em; color: #6E6A5F; font-weight: 700; }
.archive-hero p { margin: 20px 0 0; font-size: 15px; line-height: 2; color: var(--muted); max-width: 640px; }

/* 検索結果 */
.search-bar { display: flex; border: 1px solid #B9B4A6; background: #FFFFFE; }
.search-bar input { flex: 1; min-width: 0; border: none; background: transparent; padding: 14px 16px; font-size: 14px; color: var(--text); outline: none; }
.search-bar button { background: var(--accent-deep); border: none; padding: 0 20px; cursor: pointer; display: flex; align-items: center; transition: background .15s ease; }
.search-bar button:hover { background: var(--accent-hover); }
.search-count { margin: 28px 0 0; font-size: 14px; color: var(--muted); }
.search-count .q { color: var(--accent-deep); font-weight: 700; }

/* 404 */
.nf-wrap { max-width: 560px; margin: 0 auto; padding: 96px 20px 120px; text-align: center; }
.nf-code { font-family: var(--serif); font-weight: 700; font-size: 88px; line-height: 1; color: var(--ink); letter-spacing: .1em; user-select: none; }
.nf-title { margin: 28px 0 0; font-family: var(--serif); font-weight: 700; font-size: 24px; line-height: 1.7; }
.nf-links { display: flex; justify-content: center; flex-wrap: wrap; gap: 12px 28px; margin-top: 36px; font-size: 14px; font-weight: 700; }
.nf-links a { display: flex; align-items: center; gap: 8px; }

/* ---------- 検索モーダル ---------- */
.search-modal { position: fixed; inset: 0; z-index: 100; display: none; }
.search-modal.open { display: block; }
.search-modal .scrim { position: absolute; inset: 0; background: rgba(43,42,38,.36); }
.search-modal .panel {
  position: relative; width: 560px; max-width: calc(100% - 40px);
  margin: 120px auto 0; background: var(--bg); border: 1px solid var(--border);
  box-shadow: 0 12px 40px rgba(43,42,38,.18); padding: 32px 36px 36px;
}
.search-modal .m-head { display: flex; justify-content: space-between; align-items: center; }
.search-modal .m-title { font-family: var(--sans); font-weight: 700; font-size: 13px; letter-spacing: .32em; color: #6E6A5F; }
.search-modal .m-close { background: none; border: none; cursor: pointer; padding: 6px; }
.search-modal .search-bar { margin-top: 20px; }
.search-modal .m-cats-label { margin-top: 26px; font-size: 11px; letter-spacing: .14em; color: var(--faint); }
.search-modal .m-cats { display: flex; flex-wrap: wrap; gap: 10px 24px; margin-top: 14px; font-size: 14px; }
.search-modal .m-cats a { display: flex; align-items: center; gap: 8px; color: var(--text); }
.search-modal .m-cats a:hover { color: var(--accent-deep); }

/* ==========================================================
   モバイル（〜760px）
   ========================================================== */
@media (max-width: 1180px) { .finder-cards { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 900px) { .finder-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

@media (max-width: 1080px) {
  .layout { grid-template-columns: minmax(0, 1fr); gap: 64px; padding: 40px 32px 56px; }
  .serial-card { grid-template-columns: minmax(0, 1fr); }
  .serial-card .kv { aspect-ratio: 16/9; }
  .fv { grid-template-columns: 1fr; gap: 24px; padding: 32px 32px 0; }
  .fv-catch { padding: 0; justify-content: flex-start; aspect-ratio: auto; }
  .fv-catch .main { writing-mode: horizontal-tb; font-size: 34px; line-height: 1.7; letter-spacing: .06em; }
  .fv-catch .sub { display: none; }
  .finder-wrap { padding: 48px 32px 0; }
}

/* タブレット幅（601〜900px）: 下層ページのヘッダー（ロゴ＋カテゴリ横並び）が折り返さないよう詰める */
@media (max-width: 900px) {
  .site-header.compact { padding: 0 24px; }
  .site-header.compact .logo-frame a, .site-header.compact .logo-frame span { font-size: 17px; white-space: nowrap; }
  .compact-nav { gap: 14px; }
  .compact-nav nav { gap: 14px; font-size: 12.5px; }
  .compact-nav nav a { white-space: nowrap; }
}

@media (max-width: 600px) {
  /* スマホのヘッダー: ロゴの段＋その下の細いバー（.cat-toggle）が追従。カテゴリ（ヘッダー直後の .cat-scroll）は
     最初は畳んでおき、細いバーを押すとヘッダーの下に重ねて開く（script.js が .is-open を付ける） */
  .site-header, .site-header.compact {
    position: sticky; top: 0; z-index: 50;
    padding: 14px 20px 0; display: block; height: auto;
  }
  .cat-toggle {
    display: flex; align-items: center; justify-content: center; gap: 8px;
    width: calc(100% + 40px); height: 32px; margin: 12px -20px 0; padding: 0;
    background: var(--bg-sub); border: none; border-top: 1px solid var(--border); cursor: pointer;
    font-family: var(--sans); font-size: 12px; font-weight: 700; letter-spacing: .2em; color: var(--accent-deep);
  }
  .cat-toggle .chev { width: 6px; height: 6px; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: translateY(-2px) rotate(45deg); transition: transform .2s ease; }
  .cat-toggle[aria-expanded="true"] .chev { transform: translateY(2px) rotate(225deg); }
  .logo-wrap { display: flex; align-items: center; justify-content: center; position: relative; }
  .logo-frame a, .logo-frame span,
  .site-header.compact .logo-frame a, .site-header.compact .logo-frame span { padding: 5px 0; font-size: 16px; }
  .tagline, .header-search, .compact-nav nav { display: none; }
  .site-header.compact { display: block; }
  .site-header.compact .compact-nav { position: absolute; top: 18px; right: 20px; }
  .site-header.compact .header-search-icon-mobile { display: none; } /* 下層ページは compact-nav 側の虫眼鏡だけ出す（二重表示防止） */
  .header-search-icon-mobile { position: absolute; right: 0; background: none; border: none; padding: 10px; cursor: pointer; display: flex; }
  /* スマホのカテゴリ: はみ出さないよう3列のマス目（6項目なら3×2） */
  .cat-scroll {
    display: none; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px;
    position: fixed; left: 0; right: 0; top: var(--hdr-h, 55px); z-index: 49;
    margin: 0; padding: 12px 20px 14px; background: var(--bg);
    border-bottom: 1px solid var(--border); box-shadow: 0 10px 20px rgba(43,42,38,.10);
  }
  .cat-scroll.is-open { display: grid; animation: cat-down .18s ease; }
  @keyframes cat-down { from { opacity: 0; transform: translateY(-8px); } to { opacity: 1; transform: none; } }
  .cat-scroll a { font-size: 13px; font-weight: 700; color: var(--accent-deep); background: var(--paper); border: 1px solid #DDD6C6; padding: 7px 4px; text-align: center; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .cat-scroll a.cur { color: var(--text); border-color: var(--text); }

  .fv { grid-template-columns: 1fr; gap: 0; padding: 20px 20px 0; }
  .fv-catch { padding: 24px 0 0; justify-content: flex-start; aspect-ratio: auto; }
  .fv-catch .main { writing-mode: horizontal-tb; font-size: 30px; line-height: 1.7; letter-spacing: .06em; }
  .fv-catch .sub { display: none; }
  .fv-menu { display: none; }
  .finder-wrap { padding: 40px 20px 0; }
  .finder { padding: 24px 20px 12px; }
  .finder-cards { display: none; }
  .finder-acc { display: block; margin-top: 12px; }
  .finder-acc summary { list-style: none; display: flex; justify-content: space-between; align-items: center; padding: 14px 2px; border-top: 1px solid #DDD6C6; cursor: pointer; font-size: 13.5px; font-weight: 700; }
  .finder-acc summary::-webkit-details-marker { display: none; }
  .finder-acc summary::after { content: "＋"; color: var(--accent-deep); font-weight: 700; }
  .finder-acc[open] summary::after { content: "−"; }
  .finder-acc a { display: block; font-family: var(--serif); font-size: 14.5px; font-weight: 600; color: var(--accent-deep); padding: 11px 2px; border-bottom: 1px solid #E4DECF; }
  .finder-acc a:last-child { border-bottom: none; }

  .layout { grid-template-columns: 1fr; gap: 64px; padding: 24px 16px 48px; }
  .layout > main { --panel-pad: 0px; padding: 0; }
  .article-layout { padding: 24px 16px 64px; }
  .article-layout > .narrow { padding: 0; }

  .sec-head h2 { font-size: 11.5px; }
  .post-list a { grid-template-columns: 110px 1fr; gap: 14px; padding: 18px 0; }
  .post-list .p-title { font-size: 15px; margin-top: 6px; }
  .feature-band { margin-top: 64px; padding: 36px 20px 44px; }
  .serial-card { grid-template-columns: 1fr; }
  .serial-card .kv { min-height: 0; aspect-ratio: 16/9; }
  .serial-card .body { padding: 24px 20px 28px; border-top: none; }

  .footer-grid { grid-template-columns: 1fr 1fr; gap: 28px; }
  .site-footer { padding: 36px 20px 24px; }

  h1.article-title { font-size: 26px; }
  .h2-wrap { margin-top: 56px; }
  .h2-wrap h2 { font-size: 20px; padding: 11px 16px; }
  .article-body h3 { font-size: 16.5px; margin-top: 40px; }
  .article-body { font-size: 15px; line-height: 2; }
  .toc-head { padding: 14px 18px; }
  .toc-body { padding: 0 18px 16px; }
  .related-grid { grid-template-columns: 1fr; }
  .comment-form .f-grid { grid-template-columns: 1fr; }
  .blogcard { grid-template-columns: 110px 1fr; }
  .archive-hero { padding: 32px 20px 0; }
  .archive-hero h1 { font-size: 28px; }
  .nf-wrap { padding: 64px 20px 80px; }
  .nf-code { font-size: 64px; }
  .btn-outline, .btn-fill { width: 100%; text-align: center; padding: 14px 0; }
  .btn-center .btn-outline, .more-wrap .btn-more { width: auto; padding: 12px 44px; }
  .steps { grid-template-columns: 84px 1fr; }
  .page-title { font-size: 28px; }
}

/* ---------- トップ 今月の特集（4a: 大1＋小2） ---------- */
.feature-top { display: grid; grid-template-columns: 52fr 48fr; gap: 56px; }
.feature-lead { display: block; color: var(--text); }
.feature-lead img { width: 100%; aspect-ratio: 16/9; object-fit: cover; display: block; }
.feature-lead .lead-title { display: block; font-family: var(--serif); font-size: 40px; font-weight: 700; line-height: 1.55; margin-top: 28px; text-wrap: pretty; }
.feature-lead .lead-foot { display: flex; justify-content: space-between; align-items: baseline; margin-top: 14px; }
.feature-lead .lead-desc { font-size: 14px; color: var(--muted); }
.feature-lead .arrow, .feature-side .arrow { color: var(--accent-deep); font-size: 15px; }
.feature-side { display: flex; flex-direction: column; gap: 44px; }
.feature-side > a { display: grid; grid-template-columns: 220px 1fr; gap: 24px; align-items: start; color: var(--text); }
.feature-side img { width: 100%; aspect-ratio: 16/9; object-fit: cover; display: block; }
.feature-side .fs-title { display: block; font-family: var(--serif); font-size: 19px; font-weight: 600; line-height: 1.75; text-wrap: pretty; }
.feature-side .fs-desc { display: block; font-size: 13px; color: var(--muted); line-height: 1.9; margin: 10px 0 8px; }

/* ---------- トップ 今月の特集（ひとつの細枠を罫線で区切る。1 > 2 > 3 を面積と文字サイズで示す） ---------- */
.feature-grid {
  display: grid; grid-template-columns: 1.4fr 1fr; grid-template-rows: 1.6fr 1fr;
  border: 1px solid var(--border-blue); background: none;
}
.feature-grid a { display: block; color: var(--text); transition: background .2s ease; }
.feature-grid a:hover { background: rgba(43,42,38,.06); color: var(--text); }
.feature-grid a:hover img { filter: saturate(.75) brightness(.84); }
.feature-grid img { width: 100%; aspect-ratio: 16/9; object-fit: cover; display: block; filter: saturate(.75) brightness(.96); transition: filter .2s ease; }
.feature-grid .fg-title { display: block; font-family: var(--serif); font-weight: 600; text-wrap: pretty; }
.feature-grid .fg-1 { grid-row: 1 / 3; padding: 28px; border-right: 1px solid var(--border-blue); }
.feature-grid .fg-1 .fg-title { margin-top: 22px; font-size: 30px; line-height: 1.55; }
.feature-grid .fg-desc { display: block; margin-top: 12px; font-size: 14px; line-height: 1.9; color: var(--muted); }
.feature-grid .fg-2 { padding: 24px; border-bottom: 1px solid var(--border-blue); }
.feature-grid .fg-2 .fg-title { margin-top: 14px; font-size: 19px; line-height: 1.7; }
.feature-grid .fg-3 { padding: 20px 24px; display: grid; grid-template-columns: 168px 1fr; gap: 18px; align-items: center; }
.feature-grid .fg-3 .fg-title { font-size: 15.5px; line-height: 1.75; }
@media (max-width: 1080px) {
  .feature-grid { grid-template-columns: 1fr; grid-template-rows: none; }
  .feature-grid .fg-1 { grid-row: auto; border-right: none; border-bottom: 1px solid var(--border-blue); }
  .feature-grid .fg-1 .fg-title { font-size: 26px; }
}
@media (max-width: 600px) {
  /* スマホ: 3つとも同じ形（上に写真・下にタイトル）、同じ幅・同じ文字サイズで均一に並べる */
  .feature-grid .fg-1, .feature-grid .fg-2, .feature-grid .fg-3 { display: block; padding: 20px; }
  .feature-grid .fg-1 .fg-title, .feature-grid .fg-2 .fg-title, .feature-grid .fg-3 .fg-title { margin-top: 14px; font-size: 17px; line-height: 1.7; }
  .feature-grid .fg-desc { display: none; }
}

/* ---------- トップ 人気／新着（4a: 左右2カラム） ---------- */
.pop-latest { display: grid; grid-template-columns: 1fr 1px 1fr; gap: 0 48px; }
.pop-latest .divider { background: var(--border); }
.rank-list { list-style: none; margin: 0; padding: 0; }
.rank-list li { border-top: 1px solid var(--border); }
.rank-list li:last-child { border-bottom: 1px solid var(--border); }
.rank-list a { display: grid; grid-template-columns: 26px 1fr 24px; gap: 16px; padding: 20px 0; align-items: center; color: var(--text); }
.rank-list a:hover { color: var(--accent-deep); }
/* 順位: 見出しの墨帯と同じ墨色の小さな角枠＋紙色の数字（ゼロ埋めしない） */
.rank-list .no, .sb-ranking .rank {
  width: 26px; height: 26px; display: inline-flex; align-items: center; justify-content: center; flex: none;
  background: var(--ink); color: #F7F5EF; font-family: var(--sans); font-size: 13px; font-weight: 700; line-height: 1;
}
.sb-ranking .rank { width: 22px; height: 22px; font-size: 12px; margin-top: 1px; }
.rank-list .rk-title { font-size: 14px; line-height: 1.8; }
.rank-list .arrow { color: var(--accent-deep); }
.latest-list a { display: grid; grid-template-columns: 72px 1fr 44px; gap: 16px; padding: 14px 0; border-top: 1px solid var(--border); align-items: center; color: var(--text); }
.latest-list a:last-child { border-bottom: 1px solid var(--border); }
.latest-list a:hover { color: var(--accent-deep); }
.latest-list img, .latest-list .ph { width: 72px; aspect-ratio: 3/2; object-fit: cover; display: block; }
.latest-list .ph { background: repeating-linear-gradient(45deg,#E7E3D9 0 8px,#EFEBE1 8px 16px); }
.latest-list .lt-title { font-size: 13.5px; line-height: 1.8; }
.latest-list .lt-date { font-size: 12px; color: var(--faint); }

/* 全幅セクション（サイドバーなし） */
.section-wrap { max-width: 1240px; margin: 0 auto; padding: 64px 48px 0; }
.band-wrap { background: var(--band); border-top: 1px solid #DCD7C9; border-bottom: 1px solid #DCD7C9; margin-top: 96px; }
.band-wrap .inner { max-width: 1240px; margin: 0 auto; padding: 64px 48px 72px; }

@media (max-width: 1080px) {
  .feature-top { grid-template-columns: 1fr; gap: 44px; }
  .feature-lead .lead-title { font-size: 30px; }
  .pop-latest { grid-template-columns: 1fr; gap: 56px; }
  .pop-latest .divider { display: none; }
  .section-wrap { padding: 56px 32px 0; }
  .band-wrap .inner { padding: 48px 32px 56px; }
}
@media (max-width: 600px) {
  .feature-lead .lead-title { font-size: 22px; margin-top: 18px; }
  .feature-side > a { grid-template-columns: 120px 1fr; gap: 16px; }
  .feature-side .fs-title { font-size: 15px; }
  .feature-side .fs-desc { display: none; }
  .rank-list a { grid-template-columns: 26px 1fr; gap: 14px; padding: 16px 0; }
  .rank-list .arrow { display: none; }
  .latest-list a { grid-template-columns: 72px 1fr; }
  .latest-list .lt-date { display: none; }
  .section-wrap { padding: 48px 20px 0; }
  .band-wrap { margin-top: 64px; }
  .band-wrap .inner { padding: 36px 20px 44px; }
}

/* ---------- タグ（記事下）／ページ送り（WP の paginate_links 出力にも対応） ---------- */
.article-tags { margin-top: var(--sp-lg); display: flex; flex-wrap: wrap; align-items: baseline; gap: 10px 12px; }
.article-tags .t-label { font-size: 12px; font-weight: 700; letter-spacing: .24em; color: #6E6A5F; margin-right: 4px; }
.article-tags a { font-size: 13px; color: var(--accent-deep); background: var(--paper); border: 1px solid #DDD6C6; padding: 3px 12px; transition: border-color .15s ease; }
.article-tags a::before { content: "#"; margin-right: 2px; color: var(--faint); }
.article-tags a:hover { border-color: var(--accent-deep); }
.archive-hero h1 .hash { color: var(--faint); margin-right: .1em; }
.pagination .current { min-width: 40px; height: 40px; display: flex; align-items: center; justify-content: center; font-size: 14px; color: var(--text); font-family: var(--serif); font-weight: 700; border-bottom: 2px solid var(--warm); }
.pagination a.prev, .pagination a.next { padding: 0 8px; font-weight: 700; color: var(--accent-deep); }

/* ==========================================================
   旧Cocoon記事の互換スタイル
   WP移植後、既存記事（the_content にCocoonのクラスが残る）を書き換えずに
   新デザインで表示するためのもの。確認ページ: cocoon-compat.html
   方針: 新しい色は追加しない。赤系の強調のみ朱（--warm）、青・緑は通常の太字に寄せる
   ========================================================== */
/* 見出し: Cocoon記事の h2 は .h2-wrap で包まれていないため、墨帯を直接当てる */
.article-body > h2 {
  margin: 88px 0 0; font-family: var(--serif); font-weight: 700; font-size: 25px; line-height: 1.6;
  background: var(--ink); color: #F7F5EF; padding: 13px 22px;
}
/* 文字サイズ指定（本文の大半が fz-14px で包まれている）→ 本文サイズに戻す */
.article-body [class*="fz-1"], .article-body [class*="fz-2"] { font-size: inherit; }
.article-body .fz-10px, .article-body .fz-11px, .article-body .fz-12px, .article-body .fz-13px { font-size: 13px; }
/* 文字装飾: 赤=朱 / 青・緑=通常の太字 / 無色の下線マーカー=既存の黄マーカー */
.article-body .bold, .article-body .bold-red, .article-body .bold-blue, .article-body .bold-green { font-weight: 700; }
.article-body .bold-red, .article-body .red { color: var(--warm-deep); }
.article-body .blue, .article-body .green, .article-body .bold-blue, .article-body .bold-green { color: inherit; }
.article-body .marker-under-red, .article-body .marker-red {
  background: none; text-decoration: underline; text-decoration-color: var(--warm);
  text-decoration-thickness: 2px; text-underline-offset: 5px; text-decoration-skip-ink: none;
}
.article-body .marker-under { background: linear-gradient(transparent 62%, var(--marker) 62%); }
.article-body .marker-under-blue, .article-body .marker-blue { background: none; font-weight: 700; }
.article-body .has-link-color a { color: #1A73E8 !important; text-decoration: underline; text-underline-offset: 2px; }
.article-body .has-link-color a:visited { color: #681DA8 !important; }
.article-body .has-link-color a:hover { color: #1558B0 !important; }
/* 段落の背景色・枠スタイル（直接指定の黄色 #fffd82 など）→ .box.memo と同じ（白の地＋左の罫） */
.article-body p.has-background, .article-body p.has-box-style {
  margin-top: 44px; padding: 22px 26px 22px 23px; font-size: 14.5px; line-height: 2;
  background: #FFFFFE !important; border: 1px solid #E6E1D6; border-left: 4px solid #A79E82;
}
/* 白抜きボックス・付箋 → .box と同じ（白の地＋左の罫。寒色=point / 暖色=caution / それ以外・付箋=memo） */
.article-body .blank-box { margin: 44px 0 0; padding: 22px 26px 22px 23px; font-size: 14.5px; line-height: 2; background: #FFFFFE; border: 1px solid #E6E1D6; border-left: 4px solid #A79E82; }
.article-body .blank-box p { margin: 0; }
.article-body .blank-box p + p { margin-top: 12px; }
.article-body .blank-box:is(.has-watery-blue-background-color, .has-watery-green-background-color, .has-indigo-border-color, .has-blue-border-color, .has-green-border-color) { border-left-color: #4E7A6B; }
.article-body .blank-box:is(.has-watery-red-background-color, .has-watery-yellow-background-color, .has-red-border-color, .has-orange-border-color) { border-left-color: #BC6A41; }
.article-body .blank-box.sticky + .blank-box.sticky { margin-top: 16px; }
/* トグル（チェックボックス式）→ 開閉ボックス */
.article-body .toggle-wrap { margin: 44px 0 0; border: 1px solid #DDD6C6; background: var(--paper); }
.article-body .toggle-checkbox { display: none; }
.article-body .toggle-button {
  display: flex; justify-content: space-between; align-items: center; gap: 16px;
  padding: 16px 22px; font-size: 14.5px; font-weight: 700; color: var(--text); cursor: pointer;
}
.article-body .toggle-button::after { content: "＋"; color: var(--accent-deep); font-weight: 700; flex: none; }
.article-body .toggle-checkbox:checked + .toggle-button::after { content: "−"; }
.article-body .toggle-content { display: none; border-top: 1px solid #DDD6C6; padding: 8px 22px 22px; }
.article-body .toggle-checkbox:checked ~ .toggle-content { display: block; }
.article-body .toggle-content > .blank-box:first-child { margin-top: 16px; }
/* 吹き出し → .bubble-row と同じ見た目（sbp-l=左 / sbp-r=右） */
.article-body .speech-wrap { margin: 48px 0 0; display: flex; gap: 16px; align-items: flex-start; }
.article-body .speech-wrap.sbp-r { flex-direction: row-reverse; }
.article-body .speech-person { display: flex; flex-direction: column; align-items: center; gap: 6px; flex: none; width: 64px; }
.article-body .speech-icon { margin: 0; width: 52px; height: 52px; border-radius: 50%; border: 1px solid #DDD6C6; overflow: hidden; background: var(--bg-sub); }
.article-body .speech-icon-image { width: 100%; height: 100%; object-fit: cover; }
.article-body .speech-name { font-size: 10px; line-height: 1.4; color: var(--faint); text-align: center; }
.article-body .speech-balloon { position: relative; flex: 1; min-width: 0; border: 1px solid #DDD6C6; background: var(--paper); padding: 16px 20px; font-size: 14.5px; line-height: 2; border-radius: 10px; }
.article-body .speech-balloon::before {
  content: ""; position: absolute; top: 18px; left: -7px; width: 12px; height: 12px;
  background: var(--paper); border-left: 1px solid #DDD6C6; border-bottom: 1px solid #DDD6C6; transform: rotate(45deg);
}
.article-body .sbp-r .speech-balloon { background: #E4EDE6; border-color: #C4D4C8; }
.article-body .sbp-r .speech-balloon::before { left: auto; right: -7px; background: #E4EDE6; border: none; border-right: 1px solid #C4D4C8; border-top: 1px solid #C4D4C8; }
.article-body .speech-balloon p { margin: 0; }
.article-body .speech-balloon p + p { margin-top: 12px; }
/* ブログカード（内部/外部・埋め込み）→ .blogcard と同じ見た目 */
.article-body .wp-block-cocoon-blocks-blogcard, .article-body .wp-block-embed { margin: 52px 0 0; }
.article-body .blogcard-wrap { display: block; color: var(--text); }
.article-body .blogcard-wrap .blogcard {
  margin: 0; display: grid; grid-template-columns: 200px 1fr; grid-template-areas: "thumb content" "thumb footer";
  align-items: center; border: 1px solid #DDD6C6; background: var(--paper); border-radius: 6px; overflow: hidden;
  transition: border-color .15s ease;
}
.article-body .blogcard-wrap:hover .blogcard { border-color: var(--accent-deep); }
.article-body .blogcard-label, .article-body .blogcard-favicon { display: none; }
.article-body .blogcard-thumbnail { grid-area: thumb; margin: 16px 0 16px 16px; align-self: center; overflow: hidden; }
.article-body .blogcard-thumbnail img { width: 100%; height: auto; }
.article-body .blogcard-content { grid-area: content; padding: 18px 22px 0; align-self: end; }
.article-body .blogcard-title { font-family: var(--serif); font-weight: 600; font-size: 16px; line-height: 1.7; text-wrap: pretty; }
.article-body .blogcard-snippet { margin-top: 6px; font-size: 12.5px; line-height: 1.8; color: var(--muted); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.article-body .blogcard-footer { grid-area: footer; align-self: start; display: flex; gap: 12px; padding: 8px 22px 18px; font-size: 11px; color: var(--faint); }
/* WP標準ブロック（画像・表・引用・リスト・区切り・カラム） */
.article-body .wp-block-image, .article-body .wp-block-table { margin: 44px 0 0; }
.article-body .wp-block-image img { margin: 0 auto; }
.article-body .wp-block-image figcaption, .article-body .wp-element-caption { margin-top: 12px; font-size: 12.5px; color: var(--faint); text-align: center; }
.article-body .wp-block-table { overflow-x: auto; }
.article-body .wp-block-table table { margin: 0; }
.article-body .wp-block-table .has-fixed-layout { table-layout: fixed; }
/* WP標準の表の罫（全セルに縦横の線・見出しの下に3pxの線）を消して、新デザインの表（縦の線なし）に合わせる */
.article-body .wp-block-table th, .article-body .wp-block-table td { border-left: none; border-right: none; }
.article-body .wp-block-table td { border-top: none; }
.article-body .wp-block-table thead { border-bottom: none; }
.article-body .wp-block-table tfoot { border-top: none; }
.article-body .wp-block-table.is-style-stripes { border-bottom: none; }
.article-body .wp-block-table.is-style-stripes tbody tr:nth-child(odd) { background: none; }
/* 見出し行のない表（Cocoon記事は「項目｜内容」形式）は1列目を太字の項目名にする */
.article-body .wp-block-table table:not(:has(th)) td:first-child { font-weight: 700; width: 30%; }
.article-body .has-text-align-center { text-align: center; }
.article-body blockquote p + p { margin-top: 12px; }
.article-body > :is(ul, ol):not([class*="list-"]) { margin: 26px 0 0; padding-left: 1.6em; }
.article-body > ul:not([class*="list-"]) li::marker { color: var(--accent-deep); }
.article-body hr.wp-block-separator { border: none; border-top: 1px solid var(--border); margin: 56px 0 0; }
.article-body .wp-block-columns { display: flex; gap: 24px; margin: 44px 0 0; }
.article-body .wp-block-column { flex: 1 1 0; min-width: 0; }
.article-body .wp-block-column > :first-child { margin-top: 0; }
.article-body ins.adsbygoogle { margin-top: 44px; }
@media (max-width: 600px) {
  .article-body > h2 { margin-top: 56px; font-size: 20px; padding: 11px 16px; }
  .article-body .blogcard-wrap .blogcard { grid-template-columns: 110px 1fr; }
  .article-body .blogcard-thumbnail, .blogcard .bc-thumb { margin: 12px 0 12px 12px; }
  .article-body .blogcard-content { padding: 12px 14px 0; }
  .article-body .blogcard-title { font-size: 14px; }
  .article-body .blogcard-snippet { display: none; }
  .article-body .blogcard-footer { padding: 4px 14px 12px; }
  .article-body .wp-block-columns { flex-direction: column; }
}
