/* =========================================================
   Hoikuen Portal - single.css
   投稿（個別記事）ページ専用スタイル
   ========================================================= */

/* ヒーローのメタ（日付＋カテゴリ） */
.hp-single-hero__meta {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 16px;
	margin: 4px 0 18px;
}
.hp-single-hero__meta time {
	font-family: var(--hp-roman, "Cormorant Garamond", serif);
	font-size: 15px;
	letter-spacing: .12em;
	color: rgba(255, 255, 255, .92);
}
.hp-single-hero__meta em {
	font-style: normal;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .2em;
	padding: 5px 14px;
	border: 1px solid rgba(255, 255, 255, .55);
	border-radius: 999px;
	color: #fff;
}

/* ============ 本文（hp-page-body に無い要素を補完） ============ */
.hp-single-body {
	max-width: 760px;
	margin: 0 auto;
}
.hp-single-body ul,
.hp-single-body ol {
	margin: 0 0 18px;
	padding-left: 1.5em;
}
.hp-single-body li {
	margin-bottom: 8px;
	line-height: 1.9;
}
.hp-single-body blockquote {
	margin: 28px 0;
	padding: 18px 26px;
	border-left: 4px solid var(--c-pink, #f6cf49);
	background: var(--c-cream, #faf6ec);
	border-radius: 0 8px 8px 0;
	color: var(--c-text-soft, #5a5048);
	font-style: italic;
}
.hp-single-body blockquote p:last-child { margin-bottom: 0; }
.hp-single-body img,
.hp-single-body figure {
	max-width: 100%;
	height: auto;
	margin: 28px auto;
	display: block;
	border-radius: 10px;
}
.hp-single-body figure img {
	margin: 0;
}
.hp-single-body figcaption {
	margin-top: 10px;
	text-align: center;
	font-size: 13px;
	color: rgba(31, 23, 20, .5);
}
.hp-single-body .wp-block-image { margin: 28px 0; }
.hp-single-body hr {
	margin: 40px 0;
	border: 0;
	border-top: 1px solid var(--c-border, #e7e0d3);
}

/* ページ分割リンク */
.hp-single-pages {
	margin: 28px 0 0;
	display: flex;
	gap: 8px;
	justify-content: center;
}
.hp-single-pages a,
.hp-single-pages > span {
	min-width: 36px;
	padding: 6px 10px;
	text-align: center;
	border: 1px solid var(--c-border, #e7e0d3);
	border-radius: 6px;
	text-decoration: none;
	color: var(--c-text, #1f1714);
}

/* タグ */
.hp-single-tags {
	margin: 36px 0 0;
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}
.hp-single-tags a {
	font-size: 12px;
	letter-spacing: .04em;
	padding: 6px 14px;
	border: 1px solid var(--c-border, #e7e0d3);
	border-radius: 999px;
	color: var(--c-text-soft, #6a6055);
	text-decoration: none;
	transition: background .2s, color .2s;
}
.hp-single-tags a:hover {
	background: var(--c-pink, #f6cf49);
	color: #1f1714;
}

/* 前後記事ナビ */
.hp-single-nav {
	display: flex;
	justify-content: space-between;
	gap: 20px;
	margin: 52px 0 0;
	padding-top: 30px;
	border-top: 1px solid var(--c-border, #e7e0d3);
}
.hp-single-nav__prev,
.hp-single-nav__next {
	max-width: 48%;
}
.hp-single-nav__next {
	margin-left: auto;
	text-align: right;
}
.hp-single-nav a {
	display: inline-block;
	font-size: 14px;
	line-height: 1.6;
	color: var(--c-text, #1f1714);
	text-decoration: none;
	transition: color .2s;
}
.hp-single-nav a:hover {
	color: var(--c-pink-deep, #b8860b);
}

/* 一覧へ戻る */
.hp-single-back {
	margin: 48px 0 0;
	text-align: center;
}

@media (max-width: 600px) {
	.hp-single-nav {
		flex-direction: column;
		gap: 14px;
	}
	.hp-single-nav__prev,
	.hp-single-nav__next {
		max-width: 100%;
		text-align: left;
		margin-left: 0;
	}
}

/* =========================================================
   single v2（2026-07-22）: お知らせ=「発行文書」デザイン
   深紅の帯ヘッダー + 文書カード（朱印/発行日/角飾り）
   ========================================================= */

/* ---- 帯ヘッダー ---- */
.nw-head {
	position: relative;
	padding: 128px 0 58px;
	background:
		radial-gradient(110% 90% at 85% 0%, rgba(255, 255, 255, .07), transparent 55%),
		linear-gradient(135deg, #55131a 0%, #7c1f22 55%, #4a1015 100%);
	overflow: hidden;
}
.nw-head__ghost {
	position: absolute;
	right: -10px;
	bottom: -6px;
	font-family: var(--hp-roman, "Times New Roman", serif);
	font-size: clamp(90px, 14vw, 190px);
	line-height: 1;
	letter-spacing: .06em;
	color: transparent;
	-webkit-text-stroke: 1px rgba(255, 255, 255, .14);
	pointer-events: none;
	animation: nwGhostIn 1.9s cubic-bezier(.22, .6, .2, 1) .25s backwards;
}
@keyframes nwGhostIn {
	from { opacity: 0; translate: 24px 0; }
	to   { opacity: 1; translate: 0 0; }
}
.nw-head__dots {
	position: absolute;
	inset: 0;
	background-image:
		radial-gradient(rgba(255, 255, 255, .09) 2px, transparent 2.5px),
		radial-gradient(rgba(255, 255, 255, .06) 1.5px, transparent 2px);
	background-size: 92px 92px, 58px 58px;
	background-position: 0 0, 28px 40px;
	pointer-events: none;
}
.nw-head__inner {
	position: relative;
	z-index: 2;
	width: min(820px, calc(100% - 44px));
	margin: 0 auto;
	text-align: center;
}
.nw-head__crumb {
	margin-bottom: 22px;
	font-size: 11px;
	letter-spacing: .06em;
	color: rgba(255, 255, 255, .72);
	animation: nwRiseIn .8s cubic-bezier(.22, .6, .2, 1) .05s backwards;
}
.nw-head__crumb a { color: inherit; text-decoration: none; }
.nw-head__crumb a:hover { color: #fff; text-decoration: underline; }
.nw-head__crumb span { margin: 0 7px; opacity: .7; }

.nw-head__kicker {
	margin: 0 0 14px;
	font-family: var(--hp-roman, serif);
	font-size: 12px;
	letter-spacing: .34em;
	text-indent: .34em;
	color: rgba(255, 226, 178, .85);
	animation: nwRiseIn .8s cubic-bezier(.22, .6, .2, 1) .16s backwards;
}
.nw-head__meta {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 14px;
	margin-bottom: 16px;
	animation: nwRiseIn .8s cubic-bezier(.22, .6, .2, 1) .28s backwards;
}
.nw-head__meta time {
	font-family: var(--hp-roman, serif);
	font-size: 13.5px;
	letter-spacing: .16em;
	color: rgba(255, 255, 255, .9);
}
.nw-head__meta em {
	padding: 4px 14px;
	border: 1px solid rgba(255, 255, 255, .5);
	border-radius: 999px;
	background: rgba(255, 255, 255, .08);
	color: #fff;
	font-size: 11px;
	font-style: normal;
	font-weight: 600;
	letter-spacing: .14em;
}
.nw-head__title {
	margin: 0;
	color: #fff;
	font-family: var(--hp-serif, "Noto Serif JP", serif);
	font-size: clamp(24px, 3.6vw, 36px);
	font-weight: 600;
	line-height: 1.6;
	letter-spacing: .06em;
	text-shadow: 0 2px 16px rgba(0, 0, 0, .2);
	animation: nwRiseIn .95s cubic-bezier(.22, .6, .2, 1) .4s backwards;
}
@keyframes nwRiseIn {
	from { opacity: 0; translate: 0 10px; }
	to   { opacity: 1; translate: 0 0; }
}

/* 下端: 金のヘアライン + 中央の飾り */
.nw-head__rule {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	height: 1px;
	background: linear-gradient(90deg, transparent, rgba(255, 216, 150, .55) 30%, rgba(255, 216, 150, .55) 70%, transparent);
}
.nw-head__rule i {
	position: absolute;
	left: 50%;
	bottom: -7px;
	translate: -50% 0;
	font-style: normal;
	font-size: 11px;
	color: rgba(255, 216, 150, .9);
}

/* ---- 紙面 ---- */
.nw-paper {
	padding: clamp(46px, 6vw, 76px) 0 clamp(56px, 7vw, 88px);
	background:
		radial-gradient(rgba(180, 0, 0, .05) 2px, transparent 2.5px),
		#f7efe0;
	background-size: 110px 110px;
}

/* ---- 発行文書カード ---- */
.nw-doc {
	position: relative;
	padding: clamp(30px, 4.4vw, 52px) clamp(20px, 3.6vw, 52px) clamp(26px, 3.6vw, 42px);
	background: #fdfaf3;
	border: 1px solid rgba(160, 122, 58, .28);
	border-radius: 6px;
	box-shadow: 0 18px 44px rgba(31, 23, 20, .1);
}
.nw-doc__corners span {
	position: absolute;
	width: 15px;
	height: 15px;
	border: 2px solid rgba(180, 0, 0, .5);
}
.nw-doc__corners span:nth-child(1) { top: 9px;    left: 9px;   border-right: 0; border-bottom: 0; }
.nw-doc__corners span:nth-child(2) { top: 9px;    right: 9px;  border-left: 0;  border-bottom: 0; }
.nw-doc__corners span:nth-child(3) { bottom: 9px; left: 9px;   border-right: 0; border-top: 0; }
.nw-doc__corners span:nth-child(4) { bottom: 9px; right: 9px;  border-left: 0;  border-top: 0; }

/* 発行日行 + 朱印 */
.nw-doc__top {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 18px;
	margin-bottom: clamp(24px, 3.4vw, 36px);
	padding-bottom: 18px;
	border-bottom: 1px solid rgba(160, 122, 58, .25);
}
.nw-doc__issue {
	display: flex;
	flex-direction: column;
	gap: 3px;
	padding-top: 6px;
}
.nw-doc__issue-label {
	font-size: 10.5px;
	letter-spacing: .3em;
	color: rgba(122, 34, 34, .75);
}
.nw-doc__issue-date {
	font-family: var(--hp-serif, serif);
	font-size: 15.5px;
	font-weight: 600;
	letter-spacing: .1em;
	color: #241611;
}
.nw-doc__issue-from {
	margin-top: 3px;
	font-size: 11.5px;
	letter-spacing: .08em;
	color: rgba(36, 22, 17, .6);
}
.nw-doc__seal {
	flex: 0 0 auto;
	display: grid;
	place-content: center;
	gap: 1px;
	width: 78px;
	height: 78px;
	border: 2px solid rgba(180, 0, 0, .75);
	border-radius: 50%;
	box-shadow: inset 0 0 0 2.5px rgba(253, 250, 243, .95), inset 0 0 0 4px rgba(180, 0, 0, .6);
	color: rgba(155, 15, 15, .85);
	text-align: center;
	transform: rotate(8deg);
	animation: nwSealIn .7s cubic-bezier(.22, .6, .2, 1) .55s backwards;
}
.nw-doc__seal i { font-style: normal; font-size: 12px; line-height: 1.2; }
.nw-doc__seal b {
	font-family: var(--hp-roman, serif);
	font-size: 9.5px;
	font-weight: 700;
	letter-spacing: .16em;
	line-height: 1.3;
}
.nw-doc__seal small {
	font-family: var(--hp-roman, serif);
	font-size: 8.5px;
	letter-spacing: .3em;
	text-indent: .3em;
	line-height: 1.3;
}
@keyframes nwSealIn {
	0%   { opacity: 0; scale: 1.16; }
	60%  { opacity: .95; scale: .985; }
	100% { opacity: 1; scale: 1; }
}

/* アイキャッチ: 額装写真として本文の中に */
.nw-doc__eyecatch {
	margin: 0 auto clamp(26px, 3.6vw, 38px);
	max-width: 640px;
	padding: 10px;
	background: #fff;
	border: 1px solid rgba(160, 122, 58, .3);
	box-shadow: 0 10px 26px rgba(31, 23, 20, .12);
}
.nw-doc__eyecatch img {
	display: block;
	width: 100%;
	height: auto;
	border-radius: 0;
}

/* 本文の幅は文書カード内で最適化 */
.nw-doc .hp-single-body { max-width: 680px; }

/* 結びの署名 */
.nw-doc__foot { margin-top: clamp(30px, 4vw, 44px); }
.nw-doc__foot-line {
	display: block;
	width: 100%;
	height: 1px;
	margin-bottom: 16px;
	background: linear-gradient(90deg, transparent, rgba(160, 122, 58, .4), transparent);
}
.nw-doc__sign {
	margin: 0;
	text-align: right;
	font-family: var(--hp-serif, serif);
	font-size: 14px;
	font-weight: 600;
	letter-spacing: .1em;
	color: rgba(36, 22, 17, .8);
}
.nw-doc__sign small {
	display: block;
	margin-top: 3px;
	font-size: 10.5px;
	font-weight: 400;
	letter-spacing: .12em;
	color: rgba(36, 22, 17, .5);
}

/* ---- 前後のお知らせ: カード型 ---- */
.nw-adj {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 14px;
	margin-top: clamp(30px, 4vw, 42px);
}
.nw-adj__card {
	display: flex;
	flex-direction: column;
	gap: 6px;
	padding: 16px 18px;
	background: #fdfaf3;
	border: 1px solid rgba(160, 122, 58, .28);
	border-radius: 10px;
	text-decoration: none;
	transition: border-color .35s ease, box-shadow .35s ease, transform .35s ease;
}
.nw-adj__card:hover {
	border-color: rgba(180, 0, 0, .5);
	box-shadow: 0 10px 24px rgba(31, 23, 20, .1);
	transform: translateY(-2px);
}
.nw-adj__card--next { text-align: right; }
.nw-adj__card small {
	font-size: 10.5px;
	letter-spacing: .12em;
	color: rgba(122, 34, 34, .8);
}
.nw-adj__card strong {
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
	color: #241611;
	font-size: 13.5px;
	font-weight: 600;
	line-height: 1.7;
	letter-spacing: .04em;
}
.nw-adj__card time {
	font-family: var(--hp-roman, serif);
	font-size: 10.5px;
	letter-spacing: .14em;
	color: rgba(160, 122, 58, .95);
}
.nw-adj__blank { display: block; }

/* ---- ほかのお知らせ ---- */
.nw-more { margin-top: clamp(44px, 6vw, 64px); }
.nw-more__head {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 7px;
	margin: 0 0 20px;
	text-align: center;
}
.nw-more__head small {
	font-family: var(--hp-roman, serif);
	font-size: 11px;
	letter-spacing: .36em;
	text-indent: .36em;
	color: rgba(122, 34, 34, .8);
}
.nw-more__head span {
	display: flex;
	align-items: center;
	gap: 16px;
	font-family: var(--hp-serif, serif);
	font-size: clamp(18px, 2.2vw, 22px);
	font-weight: 600;
	letter-spacing: .14em;
	color: #3a2a20;
}
.nw-more__head span::before,
.nw-more__head span::after {
	content: '';
	width: 44px;
	height: 2px;
	border-radius: 2px;
}
.nw-more__head span::before { background: linear-gradient(90deg, transparent, rgba(180, 0, 0, .45)); }
.nw-more__head span::after  { background: linear-gradient(90deg, rgba(180, 0, 0, .45), transparent); }

.nw-more__list {
	margin: 0;
	padding: 0;
	list-style: none;
	border-top: 1px solid rgba(160, 122, 58, .28);
}
.nw-more__list li { border-bottom: 1px solid rgba(160, 122, 58, .28); }
.nw-more__list a {
	display: flex;
	align-items: center;
	gap: 16px;
	padding: 15px 8px;
	text-decoration: none;
	transition: background .3s ease;
}
.nw-more__list a:hover { background: rgba(253, 250, 243, .9); }
.nw-more__list time {
	flex: 0 0 auto;
	font-family: var(--hp-roman, serif);
	font-size: 12px;
	letter-spacing: .12em;
	color: rgba(160, 122, 58, .95);
}
.nw-more__list em {
	flex: 0 0 auto;
	padding: 3px 11px;
	border-radius: 999px;
	background: rgba(180, 0, 0, .08);
	color: rgba(122, 34, 34, .9);
	font-size: 10.5px;
	font-style: normal;
	font-weight: 600;
	letter-spacing: .06em;
}
.nw-more__list span {
	flex: 1;
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	color: #241611;
	font-size: 13.5px;
	letter-spacing: .04em;
}
.nw-more__list b {
	flex: 0 0 auto;
	color: rgba(180, 0, 0, .7);
	font-weight: 400;
	transition: translate .3s ease;
}
.nw-more__list a:hover b { translate: 4px 0; }
.nw-more__all { margin: 18px 0 0; text-align: center; }
.nw-more__all a {
	color: rgba(122, 34, 34, .95);
	font-size: 12.5px;
	font-weight: 600;
	letter-spacing: .06em;
	text-decoration: none;
	border-bottom: 1px solid rgba(180, 0, 0, .35);
	padding-bottom: 2px;
}
.nw-more__all a:hover { border-bottom-color: currentColor; }

/* ---- SP ---- */
@media (max-width: 640px) {
	.nw-head { padding: 104px 0 46px; }
	.nw-head__ghost { font-size: 76px; }
	.nw-head__title { font-size: 20px; line-height: 1.7; }
	.nw-doc__top { flex-direction: row; align-items: center; }
	.nw-doc__seal { width: 64px; height: 64px; }
	.nw-doc__seal b { font-size: 8.5px; }
	.nw-adj { grid-template-columns: 1fr; }
	.nw-more__list a { flex-wrap: wrap; gap: 8px 12px; padding: 13px 4px; }
	.nw-more__list span { flex-basis: 100%; white-space: normal; }
}

@media (prefers-reduced-motion: reduce) {
	.nw-head__ghost, .nw-head__crumb, .nw-head__kicker, .nw-head__meta, .nw-head__title, .nw-doc__seal { animation: none; }
}

/* =========================================================
   single v2 追補（2026-07-22）: お知らせ一覧（/blog/）
   ========================================================= */

.nw-head--index { padding: 140px 0 64px; }
.nw-head__lead {
	margin: 16px 0 0;
	color: rgba(255, 255, 255, .82);
	font-size: 13.5px;
	line-height: 2.1;
	letter-spacing: .06em;
	animation: nwRiseIn .95s cubic-bezier(.22, .6, .2, 1) .55s backwards;
}

/* ---- 最新のお知らせ: 文書カード ---- */
.nw-feature {
	position: relative;
	display: flex;
	align-items: stretch;
	gap: clamp(20px, 3vw, 34px);
	margin-bottom: clamp(40px, 5.5vw, 58px);
	padding: clamp(26px, 3.8vw, 44px) clamp(20px, 3.4vw, 46px);
	background: #fdfaf3;
	border: 1px solid rgba(160, 122, 58, .28);
	border-radius: 6px;
	box-shadow: 0 18px 44px rgba(31, 23, 20, .1);
	text-decoration: none;
	transition: box-shadow .4s ease, transform .4s ease, border-color .4s ease;
}
.nw-feature:hover {
	transform: translateY(-3px);
	border-color: rgba(180, 0, 0, .4);
	box-shadow: 0 24px 52px rgba(31, 23, 20, .15);
}
.nw-feature__main { flex: 1; min-width: 0; }
.nw-feature__meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px;
	margin-bottom: 14px;
}
.nw-feature__latest {
	padding: 4px 13px;
	border-radius: 999px;
	background: linear-gradient(135deg, #9b1414, #b93030);
	color: #fff;
	font-size: 10.5px;
	font-weight: 600;
	letter-spacing: .12em;
}
.nw-feature__meta time {
	font-family: var(--hp-roman, serif);
	font-size: 12.5px;
	letter-spacing: .14em;
	color: rgba(160, 122, 58, .95);
}
.nw-feature__meta em {
	padding: 3px 12px;
	border-radius: 999px;
	background: rgba(180, 0, 0, .08);
	color: rgba(122, 34, 34, .9);
	font-size: 10.5px;
	font-style: normal;
	font-weight: 600;
	letter-spacing: .06em;
}
.nw-feature__title {
	margin: 0 0 12px;
	color: #241611;
	font-family: var(--hp-serif, "Noto Serif JP", serif);
	font-size: clamp(19px, 2.6vw, 26px);
	font-weight: 600;
	line-height: 1.7;
	letter-spacing: .05em;
	transition: color .35s ease;
}
.nw-feature:hover .nw-feature__title { color: #8c1616; }
.nw-feature__excerpt {
	margin: 0 0 16px;
	color: rgba(36, 22, 17, .72);
	font-size: 13.5px;
	line-height: 2.1;
	letter-spacing: .04em;
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
.nw-feature__read {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	color: rgba(122, 34, 34, .95);
	font-size: 12.5px;
	font-weight: 600;
	letter-spacing: .08em;
	border-bottom: 1px solid rgba(180, 0, 0, .35);
	padding-bottom: 2px;
}
.nw-feature__read b { font-weight: 400; transition: translate .3s ease; }
.nw-feature:hover .nw-feature__read b { translate: 4px 0; }

/* アイキャッチがある時だけ、右に額装サムネイル */
.nw-feature__thumb {
	flex: 0 0 200px;
	align-self: center;
	padding: 8px;
	background: #fff;
	border: 1px solid rgba(160, 122, 58, .3);
	box-shadow: 0 8px 20px rgba(31, 23, 20, .12);
	transform: rotate(1.2deg);
}
.nw-feature__thumb img {
	display: block;
	width: 100%;
	height: 140px;
	object-fit: cover;
}

/* ---- 一覧簿 ---- */
.nw-index__head { margin-bottom: 24px; }
.nw-index__list { background: rgba(253, 250, 243, .55); }
.nw-index__list li a { padding: 17px 14px; }
.nw-index__static {
	display: flex;
	align-items: center;
	gap: 16px;
	padding: 17px 14px;
}
.nw-index__static time {
	font-family: var(--hp-roman, serif);
	font-size: 12px;
	letter-spacing: .12em;
	color: rgba(160, 122, 58, .95);
}
.nw-index__static em {
	padding: 3px 11px;
	border-radius: 999px;
	background: rgba(180, 0, 0, .08);
	color: rgba(122, 34, 34, .9);
	font-size: 10.5px;
	font-style: normal;
	font-weight: 600;
}
.nw-index__static span { color: #241611; font-size: 13.5px; }

/* ---- SP ---- */
@media (max-width: 640px) {
	.nw-head--index { padding: 112px 0 50px; }
	.nw-head__lead { font-size: 12px; }
	.nw-feature { flex-direction: column; }
	.nw-feature__thumb { flex: none; align-self: center; width: min(100%, 320px); transform: rotate(.8deg); }
	.nw-feature__thumb img { height: 150px; }
}

/* =========================================================
   お知らせ一覧 v2.1（2026-07-22）: サムネイル付きカードグリッド
   額装写真 + 消印日付バッジ + 角飾り + ピン
   ========================================================= */

/* 最新カードのサムネに画鋲風のピン */
.nw-feature__thumb { position: relative; }
.nw-feature__thumb-pin {
	position: absolute;
	top: -9px;
	left: 50%;
	translate: -50% 0;
	width: 16px;
	height: 16px;
	border-radius: 50%;
	background: radial-gradient(circle at 34% 30%, #d95555, #8c1616 70%);
	box-shadow: 0 3px 6px rgba(31, 23, 20, .35), inset 0 -2px 3px rgba(0, 0, 0, .25);
}

/* ---- アーカイブ: カードグリッド ---- */
.nw-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: clamp(18px, 2.6vw, 28px);
}
.nw-card { position: relative; }
.nw-card__link {
	position: relative;
	display: flex;
	flex-direction: column;
	height: 100%;
	background: #fdfaf3;
	border: 1px solid rgba(160, 122, 58, .28);
	border-radius: 6px;
	box-shadow: 0 12px 30px rgba(31, 23, 20, .08);
	overflow: visible;
	text-decoration: none;
	transition: transform .45s cubic-bezier(.22, .6, .2, 1), box-shadow .45s ease, border-color .45s ease;
}
.nw-card__link:hover {
	transform: translateY(-4px);
	border-color: rgba(180, 0, 0, .42);
	box-shadow: 0 20px 44px rgba(31, 23, 20, .14);
}

/* 角飾り（文書カードと同じ意匠を小さく） */
.nw-card__corners span {
	position: absolute;
	z-index: 2;
	width: 11px;
	height: 11px;
	border: 1.5px solid rgba(180, 0, 0, .45);
	pointer-events: none;
}
.nw-card__corners span:nth-child(1) { top: 7px;    left: 7px;   border-right: 0; border-bottom: 0; }
.nw-card__corners span:nth-child(2) { top: 7px;    right: 7px;  border-left: 0;  border-bottom: 0; }
.nw-card__corners span:nth-child(3) { bottom: 7px; left: 7px;   border-right: 0; border-top: 0; }
.nw-card__corners span:nth-child(4) { bottom: 7px; right: 7px;  border-left: 0;  border-top: 0; }

/* 額装サムネイル */
.nw-card__thumb {
	position: relative;
	display: block;
	margin: 14px 14px 0;
	padding: 7px;
	background: #fff;
	border: 1px solid rgba(160, 122, 58, .3);
	box-shadow: 0 6px 16px rgba(31, 23, 20, .1);
}
.nw-card__thumb img {
	display: block;
	width: 100%;
	height: 168px;
	object-fit: cover;
	transition: transform .8s cubic-bezier(.22, 1, .25, 1), filter .5s ease;
}
.nw-card__thumb { overflow: visible; }
.nw-card__thumb::after {
	content: '';
	position: absolute;
	inset: 7px;
	pointer-events: none;
	box-shadow: inset 0 0 0 1px rgba(160, 122, 58, .16);
}
.nw-card__link:hover .nw-card__thumb img { transform: scale(1.04); filter: saturate(1.06) brightness(1.02); }

/* 消印風の日付バッジ（サムネ右下にかかる） */
.nw-card__stamp {
	position: absolute;
	right: -10px;
	bottom: -12px;
	z-index: 3;
	display: grid;
	place-content: center;
	width: 52px;
	height: 52px;
	border: 1.5px solid rgba(180, 0, 0, .7);
	border-radius: 50%;
	background: rgba(253, 250, 243, .96);
	box-shadow: inset 0 0 0 2px rgba(253, 250, 243, .96), inset 0 0 0 3px rgba(180, 0, 0, .55), 0 4px 10px rgba(31, 23, 20, .14);
	color: rgba(140, 22, 22, .9);
	text-align: center;
	transform: rotate(-8deg);
}
.nw-card__stamp b {
	font-family: var(--hp-roman, serif);
	font-size: 14px;
	font-weight: 700;
	letter-spacing: .04em;
	line-height: 1.1;
}
.nw-card__stamp small {
	font-family: var(--hp-roman, serif);
	font-size: 8px;
	letter-spacing: .18em;
	line-height: 1.2;
}

/* 本文 */
.nw-card__body {
	display: flex;
	flex-direction: column;
	gap: 8px;
	padding: 16px 18px 18px;
}
.nw-card__meta {
	display: flex;
	align-items: center;
	gap: 10px;
}
.nw-card__meta time {
	font-family: var(--hp-roman, serif);
	font-size: 11.5px;
	letter-spacing: .12em;
	color: rgba(160, 122, 58, .95);
}
.nw-card__meta em {
	padding: 2px 10px;
	border-radius: 999px;
	background: rgba(180, 0, 0, .08);
	color: rgba(122, 34, 34, .9);
	font-size: 10px;
	font-style: normal;
	font-weight: 600;
	letter-spacing: .06em;
}
.nw-card__title {
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
	color: #241611;
	font-family: var(--hp-serif, "Noto Serif JP", serif);
	font-size: 15.5px;
	font-weight: 600;
	line-height: 1.75;
	letter-spacing: .04em;
	transition: color .35s ease;
}
.nw-card__link:hover .nw-card__title { color: #8c1616; }
.nw-card__read {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	margin-top: auto;
	color: rgba(122, 34, 34, .9);
	font-size: 11.5px;
	font-weight: 600;
	letter-spacing: .08em;
}
.nw-card__read b { font-weight: 400; transition: translate .3s ease; }
.nw-card__link:hover .nw-card__read b { translate: 4px 0; }

/* ---- SP ---- */
@media (max-width: 640px) {
	.nw-grid { grid-template-columns: 1fr; gap: 16px; }
	.nw-card__thumb img { height: 172px; }
	.nw-card__stamp { width: 48px; height: 48px; right: -8px; bottom: -10px; }
}
