/* 会社設立の印鑑ハンドブック — main.css
   配色：象牙（地）＋灰茶＋墨。朱は図版の中だけ（UIには使わない）
   文字に使える組み合わせ（WCAG）：墨/象牙 14.55・墨/象牙2 13.17・墨/白 16.69・墨/灰茶 5.41・灰茶濃/象牙 6.19・灰茶濃/象牙2 5.60・灰茶濃/白 7.10・象牙/墨 14.55・白/墨2 12.11
   灰茶 #9a8f86 は線・面の飾りだけ（文字色にしない。上に載せる文字は墨だけ） */
:root {
	--ink-paper: #f4ecdb;
	--ink-paper2: #ebe1cc;
	--ink-white: #fffcf5;
	--ink-ash: #9a8f86;
	--ink-ash-dk: #5e554f;
	--ink-sumi: #1f1b18;
	--ink-sumi2: #3a332e;
	--ink-line: #cfc4b2;
	--ink-col: 600px;
	--ink-serif: "YuMincho", "Yu Mincho", "Hiragino Mincho ProN", "Noto Serif JP", serif;
	--ink-sans: "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Noto Sans JP", "Yu Gothic", Meiryo, sans-serif;
}
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
	margin: 0; background: var(--ink-paper); color: var(--ink-sumi);
	font-family: var(--ink-sans); font-size: 16px; line-height: 1.95; letter-spacing: .02em;
	overflow-wrap: anywhere;
}
img, svg { max-width: 100%; height: auto; }
a { color: var(--ink-sumi); text-decoration-color: var(--ink-ash); text-underline-offset: 3px; }
a:hover { text-decoration-color: var(--ink-sumi); }
h1, h2, h3, h4 { font-family: var(--ink-serif); font-weight: 600; line-height: 1.5; letter-spacing: .04em; }
.ink-sr { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* ---------- 左右の余白の原寸定規（装飾。スマホでは出さない） */
.ink-rule { display: none; }
@media (min-width: 900px) {
	.ink-rule {
		display: block; position: fixed; top: 0; bottom: 0; width: 34px; z-index: 0; pointer-events: none;
		background-image:
			repeating-linear-gradient(to bottom, var(--ink-ash-dk) 0 1px, transparent 1px 10mm),
			repeating-linear-gradient(to bottom, var(--ink-ash) 0 1px, transparent 1px 5mm),
			repeating-linear-gradient(to bottom, var(--ink-ash) 0 1px, transparent 1px 1mm);
		background-size: 22px 100%, 14px 100%, 8px 100%;
		background-repeat: no-repeat;
	}
	.ink-rule--l { left: calc(50% - var(--ink-col) / 2 - 64px); border-right: 1px solid var(--ink-ash); background-position: right top, right top, right top; }
	.ink-rule--r { right: calc(50% - var(--ink-col) / 2 - 64px); border-left: 1px solid var(--ink-ash); background-position: left top, left top, left top; }
	.ink-rule span { position: absolute; font: 10px/1 var(--ink-sans); color: var(--ink-ash-dk); }
	.ink-rule--l span { right: 26px; } .ink-rule--r span { left: 26px; }
}

/* ---------- 細い1カラム */
.ink-sheet { position: relative; z-index: 1; max-width: var(--ink-col); margin: 0 auto; padding: 0 16px; }

/* ---------- ヘッダーと細い横一列のナビ */
.ink-head { border-bottom: 1px solid var(--ink-sumi); padding: 14px 0 0; }
.ink-head__brand { display: flex; align-items: center; gap: 10px; text-decoration: none; }
.ink-head__brand img { width: 30px; height: 30px; }
.ink-head__name { font-family: var(--ink-serif); font-size: 15px; letter-spacing: .12em; }
.ink-head__sub { display: block; font-size: 11px; color: var(--ink-ash-dk); letter-spacing: .04em; line-height: 1.5; }
.ink-nav { margin-top: 10px; overflow-x: auto; scrollbar-width: none; }
.ink-nav::-webkit-scrollbar { display: none; }
.ink-nav ul { display: flex; gap: 0; margin: 0; padding: 0; list-style: none; white-space: nowrap; }
.ink-nav li + li::before { content: "／"; color: var(--ink-ash); padding: 0 6px; }
.ink-nav a { font-size: 12.5px; text-decoration: none; letter-spacing: .06em; padding: 6px 0; display: inline-block; }
.ink-nav a[aria-current] { border-bottom: 2px solid var(--ink-sumi); }

/* ---------- パンくず */
.ink-crumb { font-size: 12px; color: var(--ink-ash-dk); margin: 14px 0 0; }
.ink-crumb ol { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; }
.ink-crumb li + li::before { content: "›"; margin: 0 6px; }
.ink-crumb a { color: var(--ink-ash-dk); }

/* ---------- 共通の見出し（サイト側） */
.ink-sec { margin: 56px 0 0; }
.ink-sec__h { font-size: 21px; margin: 0 0 6px; display: flex; align-items: baseline; gap: 10px; }
.ink-sec__h small { font-family: var(--ink-sans); font-size: 11px; color: var(--ink-ash-dk); letter-spacing: .12em; font-weight: 400; }
.ink-sec__lead { font-size: 14px; color: var(--ink-ash-dk); margin: 0 0 18px; }
.ink-tick { height: 9px; margin: 8px 0 18px; background: repeating-linear-gradient(to right, var(--ink-sumi) 0 1px, transparent 1px 8px) bottom/100% 5px no-repeat, repeating-linear-gradient(to right, var(--ink-sumi) 0 1px, transparent 1px 40px) bottom/100% 9px no-repeat; border-bottom: 1px solid var(--ink-sumi); }

/* ---------- トップ：2本の導線 */
.ink-routes { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 0; margin: 18px 0 0; border: 1px solid var(--ink-sumi); }
.ink-routes a { display: block; padding: 14px 16px 14px 18px; text-decoration: none; background: var(--ink-white); }
.ink-routes a + a { border-left: 1px solid var(--ink-sumi); background: var(--ink-paper2); }
@media (max-width: 520px) { .ink-routes a + a { border-left: 0; border-top: 1px solid var(--ink-sumi); } }
.ink-routes b { display: block; font-family: var(--ink-serif); font-size: 16px; }
.ink-routes span { font-size: 12.5px; color: var(--ink-ash-dk); }

/* ---------- トップ：ヒーロー */
.ink-hero { margin: 26px 0 0; }
.ink-hero h1 { font-size: clamp(24px, 6vw, 33px); margin: 0; letter-spacing: .08em; }
.ink-hero h1 span { display: block; font-size: 14px; font-family: var(--ink-sans); font-weight: 400; color: var(--ink-ash-dk); letter-spacing: .04em; margin-top: 6px; }
.ink-hero figure { margin: 18px -16px 0; }
.ink-hero img { display: block; width: 100%; }
.ink-hero figcaption { font-size: 12px; color: var(--ink-ash-dk); padding: 6px 16px 0; }
.ink-hero__lead { font-size: 14.5px; margin: 14px 0 0; }

/* ---------- 主役：印影の見本帳（6件。1件ずつ別の構造） */
.ink-book { display: block; }
.ink-book > * { margin: 0 0 30px; }
.ink-book img { display: block; width: 100%; background: var(--ink-white); }
.ink-sp-a { border-top: 3px double var(--ink-sumi); padding-top: 12px; }
.ink-sp-a dl { display: grid; grid-template-columns: 7em 1fr; margin: 10px 0 0; font-size: 13.5px; }
.ink-sp-a dt { font-weight: 700; border-bottom: 1px dotted var(--ink-ash); padding: 4px 0; }
.ink-sp-a dd { margin: 0; border-bottom: 1px dotted var(--ink-ash); padding: 4px 0; }
.ink-sp-b { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 14px; align-items: start; }
.ink-sp-b h3 { margin: 0; font-size: 19px; }
.ink-sp-b ol { margin: 6px 0 0; padding-left: 1.3em; font-size: 13.5px; }
.ink-sp-c { background: var(--ink-white); border: 1px solid var(--ink-line); padding: 0 0 12px; }
.ink-sp-c table { width: 100%; border-collapse: collapse; font-size: 13px; }
.ink-sp-c caption { caption-side: top; text-align: left; font-family: var(--ink-serif); font-size: 18px; padding: 12px 14px 6px; color: var(--ink-sumi); }
.ink-sp-c th, .ink-sp-c td { border-top: 1px solid var(--ink-line); padding: 6px 14px; text-align: left; vertical-align: top; }
.ink-sp-c th { width: 7.5em; font-weight: 700; background: var(--ink-paper2); }
.ink-sp-d { border-left: 4px solid var(--ink-sumi); padding-left: 14px; }
.ink-sp-d p { font-size: 13.5px; margin: 8px 0 0; }
.ink-sp-d ul { margin: 6px 0 0; padding: 0; list-style: none; display: flex; flex-wrap: wrap; gap: 6px; }
.ink-sp-d li { font-size: 12px; border: 1px solid var(--ink-sumi); padding: 0 8px; border-radius: 999px; }
.ink-sp-e { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 0; border: 2px solid var(--ink-sumi); }
.ink-sp-e figure { margin: 0; }
.ink-sp-e aside { background: var(--ink-sumi); color: var(--ink-paper); padding: 14px 16px; font-size: 13.5px; }
.ink-sp-e aside strong { display: block; font-family: var(--ink-serif); font-size: 17px; margin-bottom: 4px; }
.ink-sp-e aside a { color: var(--ink-paper); }
.ink-sp-f details { border-top: 1px solid var(--ink-sumi); border-bottom: 1px solid var(--ink-sumi); padding: 10px 0; margin-top: 10px; }
.ink-sp-f summary { cursor: pointer; font-family: var(--ink-serif); font-size: 15px; }
.ink-sp-f details p { font-size: 13.5px; margin: 8px 0 0; }
.ink-cap { font-size: 12px; color: var(--ink-ash-dk); margin: 6px 0 0; }

/* ---------- 書体見本（4件。別構造） */
.ink-fonts { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 18px 16px; }
.ink-fonts img { display: block; width: 100%; }
.ink-fo-a h3, .ink-fo-b h3, .ink-fo-c h3, .ink-fo-d h3 { font-size: 16px; margin: 6px 0 2px; }
.ink-fo-a p, .ink-fo-b p, .ink-fo-c dd, .ink-fo-d li { font-size: 13px; margin: 0; }
.ink-fo-b { border-bottom: 1px solid var(--ink-sumi); padding-bottom: 8px; }
.ink-fo-c dl { margin: 6px 0 0; display: grid; grid-template-columns: auto 1fr; gap: 2px 10px; }
.ink-fo-c dt { font-size: 12px; color: var(--ink-ash-dk); }
.ink-fo-c dd { margin: 0; }
.ink-fo-d { background: var(--ink-paper2); padding: 10px; }
.ink-fo-d ul { margin: 6px 0 0; padding-left: 1.2em; }
.ink-fonts__note { font-size: 12.5px; color: var(--ink-ash-dk); margin: 12px 0 0; }

/* ---------- カテゴリータイル（トップ12変種） */
.ink-tiles { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 18px 16px; align-items: start; }
.ink-tiles > * { min-width: 0; }
.ink-tiles img { display: block; width: 100%; aspect-ratio: 3 / 2; object-fit: cover; background: var(--ink-white); }
.ink-tiles a { text-decoration: none; }
.ink-tiles h3, .ink-tiles h4, .ink-tiles strong.t { font-family: var(--ink-serif); font-size: 14.5px; line-height: 1.55; margin: 6px 0 2px; display: block; font-weight: 600; }
.ink-tiles p { font-size: 12px; color: var(--ink-ash-dk); margin: 2px 0 0; line-height: 1.7; }
.ink-tl-wide { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 12px; align-items: center; border-top: 1px solid var(--ink-sumi); border-bottom: 1px solid var(--ink-sumi); padding: 10px 0; }
.ink-tl-ink { background: var(--ink-sumi); color: var(--ink-paper); padding: 12px; }
.ink-tl-ink a, .ink-tl-ink p { color: var(--ink-paper) !important; }
.ink-tl-ash { background: var(--ink-ash); padding: 12px; }
.ink-tl-ash p { color: var(--ink-sumi) !important; }
.ink-tl-frame { border: 1px solid var(--ink-sumi); padding: 8px; }
.ink-tl-dbl { border-top: 4px double var(--ink-sumi); padding-top: 6px; }
.ink-tl-num { counter-increment: none; display: grid; grid-template-columns: 2.2em 1fr; gap: 8px; align-items: start; }
.ink-tl-num em { font-style: normal; font-family: var(--ink-serif); font-size: 26px; line-height: 1; }
.ink-tl-paper { background: var(--ink-white); box-shadow: 2px 3px 0 var(--ink-line); padding: 8px; }
.ink-tl-row { grid-column: 1 / -1; display: flex; gap: 12px; align-items: center; }
.ink-tl-row img { width: 42%; flex: none; }
.ink-tl-vert { display: grid; grid-template-columns: 1fr auto; gap: 8px; }
.ink-tl-vert strong.t { writing-mode: vertical-rl; margin: 0; font-size: 14px; max-height: 13em; line-height: 1.6; }
.ink-tl-plain ul { margin: 6px 0 0; padding-left: 1.1em; font-size: 12px; }
@media (max-width: 520px) { .ink-tl-row { flex-direction: column; align-items: stretch; } .ink-tl-row img { width: 100%; } }
.ink-words { margin: 18px 0 0; font-size: 13px; line-height: 2.1; }
.ink-words a { margin-right: 12px; white-space: normal; }
.ink-words b { font-family: var(--ink-serif); margin-right: 8px; }

/* ---------- 記事カード（トップ10・カテゴリー6・タグ6・関連6）。変種ごとに構造が違う */
.ink-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 18px 16px; }
.ink-cards > * { min-width: 0; }
.ink-cards img { display: block; width: 100%; aspect-ratio: 16 / 9; object-fit: cover; background: var(--ink-white); }
.ink-cards a { text-decoration: none; }
.ink-cards h3, .ink-cards .t { font-family: var(--ink-serif); font-size: 15.5px; line-height: 1.6; margin: 6px 0 4px; font-weight: 600; display: block; }
.ink-cards p { font-size: 12.5px; margin: 0; color: var(--ink-ash-dk); line-height: 1.75; }
.ink-cards time, .ink-cards .m { font-size: 11.5px; color: var(--ink-ash-dk); }
.ink-c-full { grid-column: 1 / -1; }
.ink-c-side { grid-column: 1 / -1; display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 3fr); gap: 14px; align-items: start; }
.ink-c-side.r { grid-template-columns: minmax(0, 3fr) minmax(0, 2fr); }
@media (max-width: 520px) { .ink-c-side, .ink-c-side.r { grid-template-columns: 1fr; } }
.ink-c-band { background: var(--ink-sumi); color: var(--ink-paper); padding: 14px 16px; }
.ink-c-band a, .ink-c-band p, .ink-c-band time, .ink-c-band .m { color: var(--ink-paper) !important; }
.ink-c-ash { background: var(--ink-ash); padding: 12px 14px; }
.ink-c-ash p, .ink-c-ash .m, .ink-c-ash time { color: var(--ink-sumi) !important; }
.ink-c-white { background: var(--ink-white); border: 1px solid var(--ink-line); padding: 10px; }
.ink-c-rule { border-top: 2px solid var(--ink-sumi); padding-top: 8px; }
.ink-c-dbl { border: 3px double var(--ink-sumi); padding: 10px; }
.ink-c-left { border-left: 3px solid var(--ink-sumi); padding-left: 12px; }
.ink-c-num { display: grid; grid-template-columns: 2.4em 1fr; gap: 8px; }
.ink-c-num > span { font-family: var(--ink-serif); font-size: 28px; line-height: 1; border-right: 1px solid var(--ink-sumi); }
.ink-c-meta { display: grid; grid-template-columns: auto 1fr; gap: 0 10px; font-size: 12px; margin: 6px 0 0; }
.ink-c-meta dt { color: var(--ink-ash-dk); } .ink-c-meta dd { margin: 0; }
.ink-c-tags { list-style: none; padding: 0; margin: 6px 0 0; display: flex; flex-wrap: wrap; gap: 4px; }
.ink-c-tags li { font-size: 11px; border: 1px solid var(--ink-ash-dk); color: var(--ink-ash-dk); padding: 0 6px; }
.ink-c-band .ink-c-tags li { border-color: var(--ink-paper); color: var(--ink-paper); }
.ink-c-stamp { display: inline-block; font-family: var(--ink-serif); font-size: 11px; border: 1px solid currentColor; border-radius: 50%; width: 3.4em; height: 3.4em; line-height: 1.2; text-align: center; padding-top: .7em; float: right; margin: 0 0 4px 8px; }
.ink-c-thumbs { display: flex; gap: 10px; align-items: center; }
.ink-c-thumbs img { width: 96px; flex: none; }
.ink-c-q { font-family: var(--ink-serif); font-size: 13px; border-left: 2px solid var(--ink-ash); padding-left: 8px; margin: 6px 0 0; }

/* ---------- 紹介サイト（12変種＋語だけの列） */
.ink-sites { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 12px; }
.ink-sites > * { min-width: 0; font-size: 13px; }
.ink-sites a { word-break: break-all; }
.ink-sites .n { font-weight: 700; display: block; line-height: 1.55; }
.ink-sites .u { font-size: 11px; color: var(--ink-ash-dk); display: block; word-break: break-all; }
.ink-sites p { margin: 4px 0 0; color: var(--ink-ash-dk); font-size: 12.5px; line-height: 1.7; }
.ink-s-1 { border-top: 2px solid var(--ink-sumi); padding-top: 6px; }
.ink-s-2 { background: var(--ink-white); padding: 10px; border: 1px solid var(--ink-line); }
.ink-s-3 { grid-column: 1 / -1; display: grid; grid-template-columns: auto 1fr; gap: 10px; align-items: start; border-bottom: 1px dotted var(--ink-ash); padding-bottom: 8px; }
.ink-s-3 > b { font-family: var(--ink-serif); font-size: 22px; line-height: 1; }
.ink-s-4 { background: var(--ink-sumi); color: var(--ink-paper); padding: 10px 12px; }
.ink-s-4 a, .ink-s-4 p, .ink-s-4 .u { color: var(--ink-paper) !important; }
.ink-s-5 { border-left: 3px solid var(--ink-ash); padding-left: 10px; }
.ink-s-6 dl { margin: 0; display: grid; grid-template-columns: auto 1fr; gap: 2px 8px; }
.ink-s-6 dt { font-size: 11px; color: var(--ink-ash-dk); }
.ink-s-6 dd { margin: 0; }
.ink-s-7 { background: var(--ink-ash); padding: 10px; }
.ink-s-7 p, .ink-s-7 .u { color: var(--ink-sumi) !important; }
.ink-s-8 { border: 3px double var(--ink-sumi); padding: 8px 10px; }
.ink-s-9 { grid-column: 1 / -1; background: var(--ink-paper2); padding: 10px 12px; }
.ink-s-9 ul { margin: 4px 0 0; padding-left: 1.1em; }
.ink-s-10 header { display: flex; gap: 8px; align-items: baseline; border-bottom: 1px solid var(--ink-sumi); }
.ink-s-10 header small { font-size: 11px; color: var(--ink-ash-dk); }
.ink-s-11 { display: flex; gap: 10px; }
.ink-s-11 > span { writing-mode: vertical-rl; font-family: var(--ink-serif); font-size: 12px; border-left: 1px solid var(--ink-sumi); padding-left: 4px; flex: none; }
.ink-s-12 table { width: 100%; border-collapse: collapse; font-size: 12px; }
.ink-s-12 th, .ink-s-12 td { border: 1px solid var(--ink-line); padding: 4px 6px; text-align: left; }
.ink-s-12 th { background: var(--ink-paper2); width: 4em; }
.ink-sites-note { font-size: 12px; color: var(--ink-ash-dk); margin: 0 0 12px; }
.ink-sitewords { margin: 16px 0 0; padding: 0; list-style: none; font-size: 13px; }
.ink-sitewords li { padding: 5px 0; border-bottom: 1px dotted var(--ink-ash); }
.ink-sitewords span { color: var(--ink-ash-dk); font-size: 12px; }

/* ---------- 統計（6〜8変種） */
.ink-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 14px; }
.ink-stats > * { min-width: 0; font-size: 13px; }
.ink-stats .v { font-family: var(--ink-serif); font-size: 30px; line-height: 1.2; display: block; }
.ink-stats .src { font-size: 11px; color: var(--ink-ash-dk); display: block; margin-top: 4px; }
.ink-st-1 { border-top: 3px solid var(--ink-sumi); padding-top: 6px; }
.ink-st-2 { background: var(--ink-sumi); color: var(--ink-paper); padding: 12px; }
.ink-st-2 .src, .ink-st-2 a { color: var(--ink-paper) !important; }
.ink-st-3 { grid-column: 1 / -1; display: grid; grid-template-columns: auto 1fr; gap: 12px; align-items: center; border-bottom: 1px solid var(--ink-sumi); padding-bottom: 8px; }
.ink-st-4 { background: var(--ink-white); border: 1px solid var(--ink-line); padding: 10px; }
.ink-st-5 dl { margin: 0; } .ink-st-5 dd { margin: 0; }
.ink-st-6 { background: var(--ink-ash); padding: 10px 12px; }
.ink-st-6 .src, .ink-st-6 a { color: var(--ink-sumi) !important; }
.ink-st-7 table { width: 100%; border-collapse: collapse; } .ink-st-7 td, .ink-st-7 th { border-bottom: 1px dotted var(--ink-ash); padding: 4px 0; text-align: left; }
.ink-st-8 { border: 3px double var(--ink-sumi); padding: 10px; }
.ink-bar { height: 8px; background: var(--ink-paper2); margin-top: 6px; } .ink-bar i { display: block; height: 100%; background: var(--ink-sumi); }

/* ---------- アーカイブ */
.ink-arch-h { margin: 26px 0 0; display: grid; grid-template-columns: 52px 1fr; gap: 12px; align-items: center; }
.ink-arch-h svg { width: 52px; height: 52px; }
.ink-arch-h h1 { font-size: clamp(20px, 5vw, 26px); margin: 0; }
.ink-arch-h p { grid-column: 1 / -1; font-size: 14px; margin: 4px 0 0; }
.ink-arch-tag h1 { font-size: clamp(22px, 6vw, 30px); margin: 26px 0 0; }
.ink-arch-tag h1::before { content: "#"; color: var(--ink-ash-dk); margin-right: 4px; }
.ink-sns { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 10px; }
.ink-sns > * { font-size: 13px; }
.ink-pager { display: flex; flex-wrap: wrap; gap: 6px; margin: 24px 0 0; font-size: 14px; }
.ink-pager a, .ink-pager span { border: 1px solid var(--ink-sumi); padding: 2px 10px; text-decoration: none; }
.ink-pager .current { background: var(--ink-sumi); color: var(--ink-paper); }

/* ---------- 記事 */
.ink-art-h { margin: 22px 0 0; }
.ink-art-h h1 { font-size: clamp(22px, 5.6vw, 29px); margin: 0; line-height: 1.55; }
.ink-art-meta { font-size: 12px; color: var(--ink-ash-dk); margin: 10px 0 0; display: flex; flex-wrap: wrap; gap: 4px 14px; }
.ink-art-eye { margin: 16px -16px 0; } .ink-art-eye img { display: block; width: 100%; }
/* この記事で扱う印鑑（印影アイコンの列） */
.ink-seals { margin: 18px 0 0; border-top: 1px solid var(--ink-sumi); border-bottom: 1px solid var(--ink-sumi); padding: 10px 0; }
.ink-seals p { margin: 0 0 6px; font-family: var(--ink-serif); font-size: 14px; }
.ink-seals ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px 16px; }
.ink-seals li { display: flex; align-items: center; gap: 6px; font-size: 12.5px; }
.ink-seals svg { width: 34px; height: 34px; flex: none; }
/* 目次：PCは縦書きの見出し一覧（右から左へ）、スマホは横書き */
.ink-toc { margin: 22px 0 0; background: var(--ink-white); border-top: 3px double var(--ink-sumi); border-bottom: 3px double var(--ink-sumi); padding: 10px 12px; }
.ink-toc p { margin: 0; font-family: var(--ink-serif); font-size: 14px; letter-spacing: .3em; }
.ink-toc ol { margin: 6px 0 0; padding-left: 1.4em; font-size: 13.5px; }
.ink-toc a { text-decoration: none; }
@media (min-width: 900px) {
	.ink-toc { display: flex; flex-direction: row-reverse; gap: 10px; align-items: flex-start; padding: 14px; }
	.ink-toc p { writing-mode: vertical-rl; border-left: 1px solid var(--ink-sumi); padding-left: 8px; }
	.ink-toc ol { writing-mode: vertical-rl; margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 0; max-height: 18em; overflow-x: auto; overflow-y: hidden; flex: 1; counter-reset: t; }
	.ink-toc li { counter-increment: t; padding: 0 5px; border-left: 1px dotted var(--ink-ash); line-height: 1.6; text-orientation: mixed; }
	.ink-toc li::before { content: counter(t, cjk-decimal) "　"; color: var(--ink-ash-dk); }
}
.ink-body { margin: 26px 0 0; }
.ink-body p { margin: 0 0 1.2em; }
.ink-body h2 { font-size: 21px; margin: 2.6em 0 .9em; }
.ink-body h3 { font-size: 17px; margin: 1.8em 0 .7em; }
.ink-body figure { margin: 1.4em 0; }
.ink-body figure img { display: block; width: 100%; }
.ink-body figcaption { font-size: 12px; color: var(--ink-ash-dk); margin-top: 4px; }
.ink-body ul, .ink-body ol { padding-left: 1.4em; }
.ink-tbl { overflow-x: auto; margin: 1.2em 0; -webkit-overflow-scrolling: touch; max-width: 100%; }
.ink-tbl table { border-collapse: collapse; min-width: 100%; font-size: 13.5px; background: var(--ink-white); }
.ink-tbl th, .ink-tbl td { border: 1px solid var(--ink-line); padding: 7px 10px; vertical-align: top; text-align: left; }
.ink-tbl thead th { background: var(--ink-sumi); color: var(--ink-paper); white-space: nowrap; font-weight: 600; }
.ink-tbl tbody th { background: var(--ink-paper2); color: var(--ink-sumi); }
/* 出典は枠なしの脚注 */
.ink-fn { font-size: 12px; line-height: 1.75; color: var(--ink-ash-dk); margin: .4em 0 1.6em !important; padding: 0; }
.ink-fn sup { font-size: 10px; margin-right: 2px; }
.ink-fn a { color: var(--ink-ash-dk); word-break: break-all; }
.ink-sova { font-size: 13.5px; margin: 0 0 .5em !important; }
.ink-foot-h { font-size: 19px; margin: 56px 0 6px; }
.ink-helpful { margin: 36px 0 0; display: flex; align-items: center; gap: 12px; flex-wrap: wrap; font-size: 13.5px; }
.ink-helpful button { font: inherit; background: var(--ink-white); color: var(--ink-sumi); border: 1px solid var(--ink-sumi); border-radius: 999px; padding: 6px 16px; cursor: pointer; }
.ink-helpful button[disabled] { background: var(--ink-sumi); color: var(--ink-paper); cursor: default; }
.ink-checked { font-size: 12px; color: var(--ink-ash-dk); }

/* ---------- 固定ページ */
.ink-page h1 { font-size: clamp(22px, 5.6vw, 28px); margin: 26px 0 0; }
.ink-page .ink-body h2 { border-bottom: 1px solid var(--ink-sumi); padding-bottom: 4px; }

/* ---------- 検索・404 */
.ink-search { display: flex; gap: 0; margin: 14px 0 0; }
.ink-search input { flex: 1; min-width: 0; font: inherit; padding: 8px 10px; border: 1px solid var(--ink-sumi); background: var(--ink-white); color: var(--ink-sumi); }
.ink-search button { font: inherit; border: 1px solid var(--ink-sumi); background: var(--ink-sumi); color: var(--ink-paper); padding: 8px 14px; cursor: pointer; }

/* ---------- フッター（奥付） */
.ink-colophon { margin: 72px 0 0; border-top: 1px solid var(--ink-sumi); padding: 22px 0 110px; font-size: 12.5px; }
.ink-colophon h2 { font-size: 15px; letter-spacing: .4em; margin: 0 0 10px; }
.ink-colophon dl { display: grid; grid-template-columns: 7em 1fr; margin: 0; border-top: 1px solid var(--ink-sumi); }
.ink-colophon dt, .ink-colophon dd { border-bottom: 1px solid var(--ink-line); padding: 6px 0; margin: 0; }
.ink-colophon dt { color: var(--ink-ash-dk); }
.ink-colophon nav { margin: 16px 0 0; line-height: 2.1; }
.ink-colophon nav a { margin-right: 12px; }
.ink-colophon small { display: block; margin-top: 16px; color: var(--ink-ash-dk); }

/* ---------- 固定CTA：右下の丸い印鑑ケース型ボタン（タップで展開） */
.ink-cta { position: fixed; right: 16px; bottom: 16px; z-index: 50; display: flex; flex-direction: column; align-items: flex-end; gap: 8px; max-width: calc(100vw - 32px); }
.ink-cta__case {
	width: 68px; height: 68px; border-radius: 50%; border: 0; cursor: pointer; padding: 0;
	background: radial-gradient(circle at 34% 30%, #4a423c 0 18%, var(--ink-sumi) 60%);
	box-shadow: 0 0 0 3px var(--ink-paper), 0 0 0 4px var(--ink-sumi), 0 6px 14px rgba(31, 27, 24, .35);
	color: var(--ink-paper); font: 600 13px/1.2 var(--ink-serif); letter-spacing: .1em; display: grid; place-items: center;
}
.ink-cta__case span { border: 1px solid var(--ink-paper); border-radius: 50%; width: 50px; height: 50px; display: grid; place-items: center; }
.ink-cta__label { background: var(--ink-white); border: 1px solid var(--ink-sumi); font-size: 12px; padding: 4px 10px; max-width: 280px; line-height: 1.5; }
.ink-cta__panel { display: none; background: var(--ink-white); border: 1px solid var(--ink-sumi); padding: 14px; width: min(340px, calc(100vw - 32px)); box-shadow: 0 8px 20px rgba(31, 27, 24, .2); }
.ink-cta.is-open .ink-cta__panel { display: block; }
.ink-cta.is-open .ink-cta__label { display: none; }
.ink-cta__panel b { display: block; font-family: var(--ink-serif); font-size: 14.5px; line-height: 1.6; }
.ink-cta__btn { display: block; text-align: center; margin: 10px 0 0; background: var(--ink-sumi); color: var(--ink-paper) !important; text-decoration: none; padding: 10px; font-weight: 700; letter-spacing: .08em; }
.ink-cta__note { font-size: 10.5px; line-height: 1.6; color: var(--ink-ash-dk); margin: 10px 0 0; max-height: 9.6em; overflow-y: auto; }
@media (max-width: 600px) { .ink-cta__label { display: none; } }
.ink-tl-ash svg, .ink-tiles svg { width: 40px; height: 40px; display: block; }
.ink-c-ash .ink-c-meta dt, .ink-c-ash .ink-c-meta dd { color: var(--ink-sumi); }
.ink-c-band .ink-c-meta dt, .ink-c-band .ink-c-meta dd { color: var(--ink-paper); }
.ink-sns h3{font-size:14px;margin:0} .ink-sns figure{margin:0} .ink-sns blockquote{margin:0}
.ink-stats p { margin: 4px 0 0; }
.ink-stats cite { font-style: normal; display: block; }
.ink-st-3 em.v { font-style: normal; } .ink-st-3 em small { font-size: 14px; margin-left: 2px; }
.ink-st-4 { margin: 0; } .ink-st-4 data { display: block; }
.ink-st-5 { margin: 0; border-left: 4px solid var(--ink-sumi); padding-left: 10px; } .ink-st-5 dt { font-size: 13px; }
.ink-st-6 span { display: block; }
.ink-st-7 { grid-column: 1 / -1; } .ink-st-7 td.v { font-family: var(--ink-serif); font-size: 24px; white-space: nowrap; } .ink-st-7 th { font-weight: 400; font-size: 12.5px; width: 60%; }
.ink-st-8 header { border-bottom: 1px solid var(--ink-sumi); }
