/* =========================================================
   園の様子ブログ（diary）
   一覧 /diary/ ・詳細 single-enblog ・投稿フォーム /diary-post/
   紙×金ヘアライン×赤 + 施設カラー（--fac-c）の意匠
   ========================================================= */

/* ============== 一覧: 施設フィルタ ============== */
.dy-filter {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 10px 12px;
	margin: 0 0 44px;
}

.dy-filter__btn {
	--fac-c: #b40000;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 9px 18px;
	border: 1px solid rgba(160, 122, 58, .45);
	border-radius: 999px;
	background: #fdfaf3;
	color: rgba(36, 22, 17, .8);
	font-size: 12.5px;
	letter-spacing: .06em;
	text-decoration: none;
	transition: transform .3s ease, box-shadow .3s ease, background .3s ease, color .3s ease, border-color .3s ease;
}

.dy-filter__dot {
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--fac-c);
	box-shadow: 0 0 0 2px rgba(255, 255, 255, .6) inset;
}

.dy-filter__btn:hover {
	transform: translateY(-2px);
	box-shadow: 0 8px 18px rgba(31, 23, 20, .12);
}

.dy-filter__btn.is-active {
	background: var(--fac-c);
	border-color: var(--fac-c);
	color: #fff;
}
.dy-filter__btn.is-active .dy-filter__dot {
	background: #fff;
	box-shadow: none;
}

/* ============== 一覧: カードグリッド ============== */
.dy-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 34px 28px;
}

.dy-card {
	--fac-c: #b40000;
	position: relative;
}

.dy-card__link {
	display: block;
	background: #fdfaf3;
	border: 1px solid rgba(160, 122, 58, .35);
	box-shadow: 0 10px 26px rgba(31, 23, 20, .08);
	text-decoration: none;
	transition: transform .45s cubic-bezier(.22, 1, .25, 1), box-shadow .45s ease;
}

.dy-card__link:hover {
	transform: translateY(-5px);
	box-shadow: 0 22px 44px rgba(31, 23, 20, .16);
}

.dy-card__thumb {
	position: relative;
	display: block;
	aspect-ratio: 4 / 3;
	overflow: hidden;
	background: #efe6d2;
}
.dy-card__thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform .8s cubic-bezier(.22, 1, .25, 1);
}
.dy-card__link:hover .dy-card__thumb img { transform: scale(1.05); }

.dy-card__count {
	position: absolute;
	right: 10px;
	top: 10px;
	z-index: 2;
	display: inline-flex;
	align-items: center;
	gap: 5px;
	padding: 4px 9px;
	border-radius: 999px;
	background: rgba(24, 14, 10, .62);
	color: #fff;
	font-family: var(--hp-roman, serif);
	font-size: 11px;
	letter-spacing: .08em;
	backdrop-filter: blur(2px);
}
.dy-card__count svg { width: 13px; height: 13px; }

/* 四隅チック（サイト共通の額装） */
.dy-card__corners span {
	position: absolute;
	width: 14px;
	height: 14px;
	border: 1px solid rgba(255, 255, 255, .75);
	z-index: 2;
	pointer-events: none;
}
.dy-card__corners span:nth-child(1) { top: 8px;    left: 8px;   border-right: 0; border-bottom: 0; }
.dy-card__corners span:nth-child(2) { top: 8px;    right: 8px;  border-left: 0;  border-bottom: 0; }
.dy-card__corners span:nth-child(3) { bottom: 8px; left: 8px;   border-right: 0; border-top: 0; }
.dy-card__corners span:nth-child(4) { bottom: 8px; right: 8px;  border-left: 0;  border-top: 0; }

.dy-card__body {
	display: block;
	padding: 16px 18px 18px;
	border-top: 3px solid var(--fac-c);
}

.dy-card__fac {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	margin-bottom: 7px;
	color: var(--fac-c);
	font-size: 10.5px;
	font-weight: 600;
	letter-spacing: .08em;
}
.dy-card__fac i {
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: var(--fac-c);
}

.dy-card__date {
	display: block;
	margin-bottom: 4px;
	color: rgba(160, 122, 58, .95);
	font-family: var(--hp-roman, serif);
	font-size: 11px;
	letter-spacing: .14em;
}

.dy-card__title {
	margin: 0 0 8px;
	color: #241611;
	font-family: var(--hp-serif, "Noto Serif JP", serif);
	font-size: 16.5px;
	font-weight: 600;
	line-height: 1.55;
	letter-spacing: .05em;
}

.dy-card__excerpt {
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
	overflow: hidden;
	margin: 0 0 10px;
	color: rgba(36, 22, 17, .66);
	font-size: 12px;
	line-height: 1.8;
	letter-spacing: .03em;
}

.dy-card__more {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	color: var(--fac-c);
	font-size: 11.5px;
	font-weight: 600;
	letter-spacing: .1em;
}
.dy-card__more b { transition: transform .3s ease; font-weight: 600; }
.dy-card__link:hover .dy-card__more b { transform: translateX(4px); }

/* ページ送り */
.dy-pagination {
	margin-top: 48px;
	text-align: center;
}
.dy-pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 36px;
	height: 36px;
	margin: 0 3px;
	padding: 0 8px;
	border: 1px solid rgba(160, 122, 58, .45);
	background: #fdfaf3;
	color: rgba(36, 22, 17, .78);
	font-family: var(--hp-roman, serif);
	font-size: 13px;
	text-decoration: none;
}
.dy-pagination .page-numbers.current {
	background: #b40000;
	border-color: #b40000;
	color: #fff;
}

/* 空状態 */
.dy-empty {
	padding: 70px 20px 60px;
	text-align: center;
}
.dy-empty__icon { margin: 0 0 12px; color: #b40000; font-size: 26px; }
.dy-empty__text { margin: 0; color: rgba(36, 22, 17, .65); font-size: 13.5px; line-height: 2; letter-spacing: .05em; }

/* ============== 詳細ページ ============== */
.dy-single { padding-top: clamp(120px, 15vh, 170px); }

.dy-single__crumb {
	margin-bottom: 26px;
	font-size: 11.5px;
	letter-spacing: .05em;
	color: rgba(36, 22, 17, .55);
}
.dy-single__crumb a { color: inherit; text-decoration: none; }
.dy-single__crumb a:hover { color: #b40000; }
.dy-single__crumb span { margin: 0 7px; }

.dy-single__head {
	margin-bottom: 30px;
	padding-bottom: 22px;
	border-bottom: 1px solid rgba(160, 122, 58, .4);
}

.dy-single__fac {
	display: inline-flex;
	align-items: baseline;
	gap: 8px;
	margin-bottom: 10px;
	padding: 5px 14px;
	border: 1px solid var(--fac-c);
	border-radius: 999px;
	color: var(--fac-c);
	font-size: 11.5px;
	font-weight: 600;
	letter-spacing: .08em;
}
.dy-single__fac i {
	align-self: center;
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: var(--fac-c);
}
.dy-single__fac small {
	font-family: var(--hp-roman, serif);
	font-size: 9px;
	letter-spacing: .18em;
	opacity: .75;
}

.dy-single__date {
	display: block;
	margin-bottom: 8px;
	color: rgba(160, 122, 58, .95);
	font-family: var(--hp-roman, serif);
	font-size: 12px;
	letter-spacing: .16em;
}

.dy-single__title {
	margin: 0;
	color: #241611;
	font-family: var(--hp-serif, "Noto Serif JP", serif);
	font-size: clamp(24px, 3.2vw, 34px);
	font-weight: 600;
	line-height: 1.5;
	letter-spacing: .06em;
}

.dy-single__photos {
	display: grid;
	gap: 22px;
	margin-bottom: 34px;
}

.dy-single__photo {
	position: relative;
	display: flex;
	justify-content: center;
	width: 100%;
	margin: 0;
	padding: 0;
	border: 1px solid rgba(160, 122, 58, .4);
	background: #17110d;
	cursor: zoom-in;
	overflow: hidden;
	box-shadow: 0 16px 36px rgba(31, 23, 20, .14);
}
/* 縦長のスマホ写真も横長も、切らずに元の縦横比のまま表示する */
.dy-single__photo img {
	width: auto;
	max-width: 100%;
	height: auto;
	max-height: 78vh;
	object-fit: contain;
	display: block;
	transition: transform .8s cubic-bezier(.22, 1, .25, 1);
}
.dy-single__photo:hover img { transform: scale(1.02); }

.dy-single__author {
	margin: 12px 0 0;
	color: rgba(36, 22, 17, .62);
	font-size: 12.5px;
	letter-spacing: .08em;
}
.dy-single__author span { color: #b40000; }

.dy-single__body {
	max-width: 40em;
	margin: 0 auto 44px;
	color: rgba(36, 22, 17, .82);
	font-size: 14.5px;
	line-height: 2.2;
	letter-spacing: .05em;
}
.dy-single__body p { margin: 0 0 1.4em; }

.dy-single__foot {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 14px;
	padding-top: 24px;
	border-top: 1px solid rgba(160, 122, 58, .4);
}

.dy-single__back {
	display: inline-flex;
	padding: 10px 20px;
	border: 1px solid rgba(180, 0, 0, .5);
	border-radius: 999px;
	color: #b40000;
	font-size: 12.5px;
	font-weight: 600;
	letter-spacing: .08em;
	text-decoration: none;
	transition: background .3s ease, color .3s ease;
}
.dy-single__back:hover { background: #b40000; color: #fff; }

.dy-single__adj { display: flex; gap: 18px; }
.dy-single__adj a {
	color: rgba(36, 22, 17, .6);
	font-size: 12px;
	letter-spacing: .05em;
	text-decoration: none;
}
.dy-single__adj a:hover { color: #b40000; }

/* ============== 投稿フォーム（スタッフ用・スマホ最優先） ============== */
.hp-page--diary-post { background: #f3ebda; }

.dy-post {
	min-height: 100vh;
	padding: 120px 18px 120px;
	background:
		radial-gradient(120% 60% at 50% 0%, rgba(160, 122, 58, .12), transparent 60%),
		#f3ebda;
}

.dy-post__inner {
	max-width: 560px;
	margin: 0 auto;
}

.dy-post__head { margin-bottom: 26px; text-align: center; }
.dy-post__kicker {
	margin: 0 0 8px;
	color: #b40000;
	font-family: var(--hp-roman, serif);
	font-size: 10.5px;
	letter-spacing: .3em;
}
.dy-post__title {
	margin: 0 0 10px;
	color: #241611;
	font-family: var(--hp-serif, "Noto Serif JP", serif);
	font-size: 26px;
	font-weight: 600;
	letter-spacing: .1em;
}
.dy-post__lead {
	margin: 0;
	color: rgba(36, 22, 17, .65);
	font-size: 12.5px;
	line-height: 1.9;
	letter-spacing: .04em;
}

.dy-post__error {
	margin: 0 0 18px;
	padding: 12px 16px;
	border: 1px solid rgba(180, 0, 0, .5);
	background: rgba(180, 0, 0, .07);
	color: #8a1a1a;
	font-size: 12.5px;
	line-height: 1.7;
}

.dy-post__form {
	padding: 26px 20px 28px;
	background: #fdfaf3;
	border: 1px solid rgba(160, 122, 58, .45);
	box-shadow: 0 18px 44px rgba(31, 23, 20, .12);
}

.dy-post__field { margin-bottom: 24px; }

.dy-post__label {
	display: flex;
	align-items: center;
	gap: 9px;
	margin-bottom: 10px;
	color: #241611;
	font-size: 13.5px;
	font-weight: 600;
	letter-spacing: .06em;
}
.dy-post__label small { color: rgba(36, 22, 17, .55); font-size: 11px; font-weight: 400; }
.dy-post__step {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 22px;
	height: 22px;
	border-radius: 50%;
	background: #b40000;
	color: #fff;
	font-family: var(--hp-roman, serif);
	font-size: 12px;
}

.dy-post__input {
	width: 100%;
	padding: 12px 14px;
	border: 1px solid rgba(160, 122, 58, .5);
	border-radius: 6px;
	background: #fff;
	color: #241611;
	font-size: 15px;
	letter-spacing: .03em;
}
.dy-post__input:focus {
	outline: 2px solid rgba(180, 0, 0, .35);
	outline-offset: 1px;
}
.dy-post__input--area { resize: vertical; line-height: 1.9; }

.dy-post__facilities {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 10px;
}
.dy-post__fac input { position: absolute; opacity: 0; pointer-events: none; }
.dy-post__fac-box {
	display: block;
	padding: 12px 12px 11px;
	border: 1.5px solid rgba(160, 122, 58, .4);
	border-radius: 8px;
	background: #fff;
	cursor: pointer;
	transition: border-color .25s ease, background .25s ease, box-shadow .25s ease;
}
.dy-post__fac-box em {
	display: block;
	margin-bottom: 3px;
	color: var(--fac-c);
	font-family: var(--hp-roman, serif);
	font-size: 9.5px;
	font-style: normal;
	letter-spacing: .2em;
}
.dy-post__fac-box strong {
	display: block;
	color: #241611;
	font-size: 12px;
	font-weight: 600;
	line-height: 1.5;
	letter-spacing: .02em;
}
.dy-post__fac input:checked + .dy-post__fac-box {
	border-color: var(--fac-c);
	background: color-mix(in srgb, var(--fac-c) 8%, #fff);
	box-shadow: 0 0 0 1px var(--fac-c);
}

.dy-post__drop {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 8px;
	padding: 26px 14px;
	border: 1.5px dashed rgba(160, 122, 58, .65);
	border-radius: 10px;
	background: rgba(255, 255, 255, .6);
	color: rgba(36, 22, 17, .6);
	font-size: 13px;
	letter-spacing: .05em;
	cursor: pointer;
	transition: border-color .25s ease, background .25s ease;
}
.dy-post__drop:hover { border-color: #b40000; background: #fff; }
.dy-post__drop svg { width: 34px; height: 34px; color: #b40000; }
.dy-post__file { display: none; }

.dy-post__preview {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 8px;
	margin-top: 10px;
}
.dy-post__preview img {
	width: 100%;
	aspect-ratio: 1 / 1;
	object-fit: cover;
	border: 1px solid rgba(160, 122, 58, .5);
	border-radius: 6px;
}
.dy-post__preview .dy-post__note { grid-column: 1 / -1; }

.dy-post__note {
	margin: 10px 0 0;
	color: #8a1a1a;
	font-size: 11px;
	line-height: 1.7;
	letter-spacing: .03em;
}

.dy-post__btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 14px 26px;
	border: 1px solid #b40000;
	border-radius: 999px;
	background: #b40000;
	color: #fff;
	font-size: 14.5px;
	font-weight: 700;
	letter-spacing: .1em;
	text-decoration: none;
	cursor: pointer;
	transition: transform .25s ease, box-shadow .25s ease, opacity .25s ease;
}
.dy-post__btn:hover { transform: translateY(-2px); box-shadow: 0 10px 24px rgba(180, 0, 0, .3); }
.dy-post__btn:disabled { opacity: .6; transform: none; box-shadow: none; cursor: wait; }
.dy-post__btn--submit { width: 100%; margin-top: 4px; }
.dy-post__btn--ghost { background: transparent; color: #b40000; }
.dy-post__btn--ghost:hover { background: #b40000; color: #fff; }

.dy-post__done {
	padding: 56px 24px;
	background: #fdfaf3;
	border: 1px solid rgba(160, 122, 58, .45);
	box-shadow: 0 18px 44px rgba(31, 23, 20, .12);
	text-align: center;
}
.dy-post__done-icon { margin: 0 0 10px; color: #b40000; font-size: 30px; }
.dy-post__done-text { margin: 0 0 22px; color: #241611; font-size: 16px; line-height: 1.9; letter-spacing: .06em; }
.dy-post__done-actions { display: flex; justify-content: center; gap: 12px; flex-wrap: wrap; }

/* ============== レスポンシブ ============== */
@media (max-width: 900px) {
	.dy-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 26px 18px; }
}

@media (max-width: 640px) {
	.dy-filter { gap: 8px; margin-bottom: 32px; }
	.dy-filter__btn { padding: 8px 13px; font-size: 11px; }
	.dy-grid { grid-template-columns: 1fr; gap: 22px; }
	.dy-card__title { font-size: 15.5px; }
	.dy-single { padding-top: 104px; }
	.dy-single__foot { flex-direction: column; align-items: flex-start; }
	.dy-post { padding: 104px 14px 110px; }
	.dy-post__form { padding: 20px 14px 22px; }
}

/* =========================================================
   diary v2（2026-07-18）: クラス絞り込み・クラス色テーマ・
   投稿フォーム強化（ヒント/絵文字/プレビュー/四隅チック）
   ========================================================= */

/* ---- フィルタのカテゴリラベルとクラス行 ---- */
.dy-filter { align-items: center; }
.dy-filter__cat {
	color: rgba(160, 122, 58, .95);
	font-family: var(--hp-roman, serif);
	font-size: 10px;
	letter-spacing: .22em;
}
.dy-filter--kumi { margin-top: -28px; }
.dy-filter__btn small {
	margin-left: 4px;
	font-size: 9px;
	opacity: .7;
	letter-spacing: .04em;
}

/* ---- カードのチップ（園 + クラス） ---- */
.dy-card__chips {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px 10px;
	margin-bottom: 7px;
}
.dy-card__chips .dy-card__fac { margin-bottom: 0; }
.dy-card__kumi {
	display: inline-flex;
	align-items: center;
	padding: 2px 9px;
	border-radius: 999px;
	background: color-mix(in srgb, var(--kumi-c, #b40000) 14%, #fff);
	border: 1px solid color-mix(in srgb, var(--kumi-c, #b40000) 55%, #fff);
	color: color-mix(in srgb, var(--kumi-c, #b40000) 78%, #241611);
	font-size: 10px;
	font-weight: 600;
	letter-spacing: .06em;
}

/* ---- 詳細: クラスチップ + クラス色テーマ ---- */
.dy-single__chips {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-bottom: 10px;
}
.dy-single__chips .dy-single__fac { margin-bottom: 0; }
.dy-single__kumi {
	display: inline-flex;
	align-items: baseline;
	gap: 8px;
	padding: 5px 14px;
	border-radius: 999px;
	border: 1px solid var(--kumi-c, #b40000);
	background: color-mix(in srgb, var(--kumi-c, #b40000) 10%, #fff);
	color: color-mix(in srgb, var(--kumi-c, #b40000) 80%, #241611);
	font-size: 11.5px;
	font-weight: 600;
	letter-spacing: .08em;
}
.dy-single__kumi i {
	align-self: center;
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: var(--kumi-c, #b40000);
}
.dy-single__kumi small {
	font-size: 9.5px;
	opacity: .8;
}

/* クラスの色がページ全体の差し色になる（もも組=ピンク等） */
.has-kumi .dy-single {
	background:
		radial-gradient(120% 55% at 50% 0%, color-mix(in srgb, var(--kumi-c) 14%, transparent), transparent 62%),
		#f7efe0;
}
.has-kumi .dy-single__head { border-bottom-color: color-mix(in srgb, var(--kumi-c) 55%, #fff); }
.has-kumi .dy-single__date { color: color-mix(in srgb, var(--kumi-c) 72%, #241611); }
.has-kumi .dy-single__photo { border-color: color-mix(in srgb, var(--kumi-c) 45%, #fff); }
.has-kumi .dy-single__foot { border-top-color: color-mix(in srgb, var(--kumi-c) 55%, #fff); }
.has-kumi .dy-single__back {
	border-color: var(--kumi-c);
	color: color-mix(in srgb, var(--kumi-c) 80%, #241611);
}
.has-kumi .dy-single__back:hover { background: var(--kumi-c); color: #fff; }

/* ---- フォーム: クラス選択ピル ---- */
.dy-post__classes {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 9px;
}
.dy-post__kumi input { position: absolute; opacity: 0; pointer-events: none; }
.dy-post__kumi-box {
	display: block;
	padding: 10px 6px 9px;
	border: 1.5px solid color-mix(in srgb, var(--kumi-c) 45%, #fff);
	border-radius: 8px;
	background: #fff;
	text-align: center;
	cursor: pointer;
	transition: border-color .25s ease, background .25s ease, box-shadow .25s ease, transform .25s ease;
}
.dy-post__kumi-box strong {
	display: block;
	color: color-mix(in srgb, var(--kumi-c) 76%, #241611);
	font-size: 12.5px;
	font-weight: 700;
	letter-spacing: .04em;
}
.dy-post__kumi-box em {
	display: block;
	margin-top: 2px;
	color: rgba(36, 22, 17, .55);
	font-size: 9.5px;
	font-style: normal;
	letter-spacing: .1em;
}
.dy-post__kumi input:checked + .dy-post__kumi-box {
	border-color: var(--kumi-c);
	background: color-mix(in srgb, var(--kumi-c) 12%, #fff);
	box-shadow: 0 0 0 1px var(--kumi-c);
	transform: translateY(-1px);
}

/* ---- 読まれる記事のコツ（ヒントパネル） ---- */
.dy-hint {
	margin: 0 0 18px;
	border: 1px solid rgba(160, 122, 58, .5);
	background: #fbf4e2;
	box-shadow: 0 10px 26px rgba(31, 23, 20, .08);
}
.dy-hint__head {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 13px 16px;
	cursor: pointer;
	list-style: none;
}
.dy-hint__head::-webkit-details-marker { display: none; }
.dy-hint__badge {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 26px;
	height: 26px;
	border-radius: 50%;
	background: #b40000;
	color: #fff;
	font-size: 13px;
}
.dy-hint__title {
	flex: 1;
	color: #241611;
	font-size: 13.5px;
	font-weight: 700;
	letter-spacing: .05em;
}
.dy-hint__title small {
	margin-left: 8px;
	color: rgba(36, 22, 17, .55);
	font-size: 10.5px;
	font-weight: 400;
}
.dy-hint__caret {
	width: 8px;
	height: 8px;
	border-right: 1.5px solid rgba(36, 22, 17, .5);
	border-bottom: 1.5px solid rgba(36, 22, 17, .5);
	transform: rotate(45deg);
	transition: transform .3s ease;
}
.dy-hint[open] .dy-hint__caret { transform: rotate(-135deg); }
.dy-hint__body {
	padding: 4px 18px 18px;
	border-top: 1px dashed rgba(160, 122, 58, .45);
}
.dy-hint__point {
	margin: 14px 0 0;
	color: rgba(36, 22, 17, .8);
	font-size: 12px;
	line-height: 1.9;
	letter-spacing: .03em;
}
.dy-hint__point strong { color: #241611; }
.dy-hint__list {
	margin: 6px 0 0;
	padding: 0 0 0 2px;
	list-style: none;
}
.dy-hint__list li {
	position: relative;
	padding: 3px 0 3px 16px;
	color: rgba(36, 22, 17, .8);
	font-size: 12px;
	line-height: 1.8;
}
.dy-hint__list li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 13px;
	width: 8px;
	height: 1px;
	background: #b40000;
}
.dy-hint__keywords {
	display: flex;
	flex-wrap: wrap;
	gap: 7px;
	margin-top: 10px;
}
.dy-hint__kw {
	padding: 6px 12px;
	border: 1px solid rgba(180, 0, 0, .45);
	border-radius: 999px;
	background: #fff;
	color: #8a1a1a;
	font-size: 11.5px;
	letter-spacing: .04em;
	cursor: pointer;
	transition: background .25s ease, color .25s ease;
}
.dy-hint__kw:hover { background: #b40000; border-color: #b40000; color: #fff; }

/* ---- 絵文字パレット ---- */
.dy-emoji {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin-top: 9px;
}
.dy-emoji__btn {
	width: 36px;
	height: 36px;
	border: 1px solid rgba(160, 122, 58, .4);
	border-radius: 8px;
	background: #fff;
	font-size: 18px;
	line-height: 1;
	cursor: pointer;
	transition: transform .2s ease, box-shadow .2s ease;
}
.dy-emoji__btn:hover { transform: translateY(-2px) scale(1.08); box-shadow: 0 6px 14px rgba(31, 23, 20, .15); }

/* ---- フォームの額装（四隅チック）と送信列 ---- */
.dy-post__form,
.dy-post__done { position: relative; }
.dy-post__corners span {
	position: absolute;
	width: 16px;
	height: 16px;
	border: 1px solid rgba(160, 122, 58, .7);
	pointer-events: none;
}
.dy-post__corners span:nth-child(1) { top: 7px;    left: 7px;   border-right: 0; border-bottom: 0; }
.dy-post__corners span:nth-child(2) { top: 7px;    right: 7px;  border-left: 0;  border-bottom: 0; }
.dy-post__corners span:nth-child(3) { bottom: 7px; left: 7px;   border-right: 0; border-top: 0; }
.dy-post__corners span:nth-child(4) { bottom: 7px; right: 7px;  border-left: 0;  border-top: 0; }

.dy-post__actions {
	display: grid;
	grid-template-columns: 1fr 1.4fr;
	gap: 10px;
	margin-top: 6px;
}
.dy-post__actions .dy-post__btn--submit { width: auto; margin-top: 0; }

/* ---- プレビューモーダル ---- */
.dy-pv {
	position: fixed;
	inset: 0;
	z-index: 4000;
	display: none;
	align-items: flex-start;
	justify-content: center;
	padding: 24px 14px;
	background: rgba(24, 14, 10, .72);
	overflow-y: auto;
	-webkit-backdrop-filter: blur(3px);
	backdrop-filter: blur(3px);
}
.dy-pv.is-open { display: flex; }

.dy-pv__panel {
	width: min(640px, 100%);
	margin: auto 0;
}

.dy-pv__tag {
	margin: 0 0 10px;
	color: #f3e3b2;
	font-family: var(--hp-roman, serif);
	font-size: 10.5px;
	letter-spacing: .22em;
	text-align: center;
}

.dy-pv__article {
	--kumi-c: #b40000;
	padding: 26px 22px 28px;
	background:
		radial-gradient(120% 45% at 50% 0%, color-mix(in srgb, var(--kumi-c) 13%, transparent), transparent 62%),
		#f7efe0;
	border: 1px solid rgba(160, 122, 58, .5);
	box-shadow: 0 24px 60px rgba(0, 0, 0, .4);
}

.dy-pv__chips { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 10px; }
.dy-pv__fac {
	--fac-c: #b40000;
	display: inline-flex;
	align-items: center;
	gap: 7px;
	padding: 4px 13px;
	border-radius: 999px;
	border: 1px solid var(--fac-c);
	background: color-mix(in srgb, var(--fac-c) 9%, #fff);
	color: color-mix(in srgb, var(--fac-c) 80%, #241611);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: .06em;
}
.dy-pv__fac i { width: 7px; height: 7px; border-radius: 50%; background: var(--fac-c); }

.dy-pv__date {
	display: block;
	margin-bottom: 6px;
	color: color-mix(in srgb, var(--kumi-c) 70%, #241611);
	font-family: var(--hp-roman, serif);
	font-size: 11.5px;
	letter-spacing: .16em;
}
.dy-pv__title {
	margin: 0 0 6px;
	color: #241611;
	font-family: var(--hp-serif, "Noto Serif JP", serif);
	font-size: 21px;
	font-weight: 600;
	line-height: 1.5;
	letter-spacing: .05em;
}
.dy-pv__author { margin: 0 0 16px; color: rgba(36, 22, 17, .6); font-size: 12px; }
.dy-pv__author:empty { display: none; }

.dy-pv__photos { display: grid; gap: 14px; margin-bottom: 18px; }
.dy-pv__photos img {
	width: 100%;
	height: auto;
	max-height: 60vh;
	object-fit: contain;
	background: #17110d;
	border: 1px solid color-mix(in srgb, var(--kumi-c) 40%, #fff);
	display: block;
}

.dy-pv__body { color: rgba(36, 22, 17, .82); font-size: 13.5px; line-height: 2.1; letter-spacing: .04em; }
.dy-pv__body p { margin: 0 0 1.1em; min-height: 1em; }

.dy-pv__actions {
	display: grid;
	grid-template-columns: 1fr 1.4fr;
	gap: 10px;
	margin-top: 14px;
}
.dy-pv__actions .dy-post__btn--ghost { background: #f7efe0; }

@media (max-width: 640px) {
	.dy-filter--kumi { margin-top: -18px; }
	.dy-post__classes { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* =========================================================
   diary v3（2026-07-18）: 詳細ページ全面リニューアル
   クラス色ヒーローバンド + スクラップブック写真 + 水玉紙面
   ========================================================= */

/* ---- ヒーローバンド（クラス色） ---- */
.dy2-band {
	position: relative;
	padding: 118px 0 66px;
	background:
		radial-gradient(120% 90% at 82% 0%, color-mix(in srgb, #fff 16%, transparent), transparent 55%),
		linear-gradient(135deg, var(--kumi-c, #b40000) 0%, color-mix(in srgb, var(--kumi-c, #b40000) 72%, #241611) 100%);
	overflow: hidden;
}

/* 背景の大きなクラス名ゴースト */
.dy2-band__ghost {
	position: absolute;
	right: -8px;
	bottom: 6px;
	font-family: var(--hp-roman, "Times New Roman", serif);
	font-size: clamp(84px, 15vw, 210px);
	font-weight: 400;
	letter-spacing: .04em;
	line-height: 1;
	color: transparent;
	-webkit-text-stroke: 1px rgba(255, 255, 255, .22);
	pointer-events: none;
	user-select: none;
}

/* 白い水玉（バンド内・ごく薄く） */
.dy2-band__dots {
	position: absolute;
	inset: 0;
	background-image:
		radial-gradient(rgba(255, 255, 255, .14) 2.5px, transparent 3px),
		radial-gradient(rgba(255, 255, 255, .1) 2px, transparent 2.5px);
	background-size: 90px 90px, 60px 60px;
	background-position: 0 0, 30px 40px;
	pointer-events: none;
}

.dy2-band__inner {
	position: relative;
	z-index: 2;
	width: min(820px, calc(100% - 44px));
	margin: 0 auto;
}

.dy2-band__crumb {
	margin-bottom: 22px;
	font-size: 11px;
	letter-spacing: .06em;
	color: rgba(255, 255, 255, .78);
}
.dy2-band__crumb a { color: inherit; text-decoration: none; }
.dy2-band__crumb a:hover { color: #fff; text-decoration: underline; }
.dy2-band__crumb span { margin: 0 7px; opacity: .7; }

.dy2-band__chips { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 16px; }
.dy2-chip {
	display: inline-flex;
	align-items: baseline;
	gap: 7px;
	padding: 5px 14px;
	border-radius: 999px;
	border: 1px solid rgba(255, 255, 255, .65);
	background: rgba(255, 255, 255, .12);
	color: #fff;
	font-size: 11.5px;
	font-weight: 600;
	letter-spacing: .08em;
	-webkit-backdrop-filter: blur(2px);
	backdrop-filter: blur(2px);
}
.dy2-chip i {
	align-self: center;
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: #fff;
}
.dy2-chip--kumi {
	background: #fff;
	color: color-mix(in srgb, var(--kumi-c, #b40000) 80%, #241611);
	border-color: #fff;
}
.dy2-chip--kumi small { font-size: 9.5px; opacity: .75; }

.dy2-band__date {
	display: block;
	margin-bottom: 10px;
	color: rgba(255, 255, 255, .85);
	font-family: var(--hp-roman, serif);
	font-size: 12.5px;
	letter-spacing: .2em;
}

.dy2-band__title {
	margin: 0;
	color: #fff;
	font-family: var(--hp-serif, "Noto Serif JP", serif);
	font-size: clamp(26px, 4vw, 40px);
	font-weight: 600;
	line-height: 1.5;
	letter-spacing: .06em;
	text-shadow: 0 2px 18px rgba(0, 0, 0, .18);
}

.dy2-band__author {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	margin: 16px 0 0;
	padding: 4px 14px;
	border-radius: 999px;
	background: rgba(255, 255, 255, .16);
	color: rgba(255, 255, 255, .92);
	font-size: 12px;
	letter-spacing: .08em;
}

/* バンドの下端: スカラップ（丸フリル）で紙面へつなぐ */
.dy2-band__scallop {
	position: absolute;
	left: 0;
	right: 0;
	bottom: -1px;
	height: 16px;
	background-image: radial-gradient(circle at 50% 100%, #f7efe0 15px, transparent 16px);
	background-size: 30px 16px;
	background-position: 0 0;
	background-repeat: repeat-x;
	pointer-events: none;
}

/* ---- 紙面（クラス色の水玉が漂う） ---- */
.dy2-paper {
	background:
		radial-gradient(color-mix(in srgb, var(--kumi-c, #b40000) 14%, transparent) 2.5px, transparent 3px),
		radial-gradient(color-mix(in srgb, var(--kumi-c, #b40000) 9%, transparent) 2px, transparent 2.5px),
		#f7efe0;
	background-size: 120px 120px, 84px 84px, auto;
	background-position: 0 0, 44px 60px, 0 0;
	padding: clamp(44px, 6vw, 72px) 0 clamp(56px, 7vw, 88px);
}

.dy2-paper__inner {
	width: min(820px, calc(100% - 40px));
	margin: 0 auto;
}

/* ---- スクラップブック写真（大きく・白フチ・テープ・微傾き） ---- */
.dy2-photos {
	display: grid;
	gap: clamp(34px, 4.5vw, 52px);
	margin-bottom: clamp(40px, 5vw, 56px);
}

.dy2-photo {
	position: relative;
	display: block;
	width: 100%;
	margin: 0;
	padding: 12px 12px 16px;
	background: #fff;
	border: 1px solid rgba(160, 122, 58, .25);
	box-shadow: 0 18px 44px rgba(31, 23, 20, .16);
	cursor: zoom-in;
	transition: transform .5s cubic-bezier(.22, 1, .25, 1), box-shadow .5s ease;
}
.dy2-photo:nth-child(odd)  { transform: rotate(-.7deg); }
.dy2-photo:nth-child(even) { transform: rotate(.7deg); }
.dy2-photo:hover {
	transform: rotate(0deg) translateY(-4px);
	box-shadow: 0 26px 56px rgba(31, 23, 20, .22);
	z-index: 2;
}

.dy2-photo img {
	width: 100%;
	height: auto;
	display: block;
}

/* クラス色のマスキングテープ */
.dy2-photo__tape {
	position: absolute;
	top: -13px;
	left: 50%;
	z-index: 3;
	width: 104px;
	height: 26px;
	transform: translateX(-50%) rotate(-2.5deg);
	background: color-mix(in srgb, var(--kumi-c, #b40000) 55%, #fff);
	opacity: .88;
	box-shadow: 0 2px 6px rgba(31, 23, 20, .14);
	-webkit-mask-image: linear-gradient(90deg, transparent 0, #000 6%, #000 94%, transparent 100%);
	mask-image: linear-gradient(90deg, transparent 0, #000 6%, #000 94%, transparent 100%);
}
.dy2-photo:nth-child(even) .dy2-photo__tape { transform: translateX(-50%) rotate(2.5deg); }

/* ---- 本文カード ---- */
.dy2-body {
	position: relative;
	max-width: 44em;
	margin: 0 auto clamp(40px, 5vw, 54px);
	padding: clamp(26px, 3.6vw, 40px) clamp(22px, 3.4vw, 40px);
	background: #fdfaf3;
	border: 1px solid color-mix(in srgb, var(--kumi-c, #b40000) 32%, #fff);
	border-top: 3px solid var(--kumi-c, #b40000);
	box-shadow: 0 14px 34px rgba(31, 23, 20, .1);
	color: rgba(36, 22, 17, .84);
	font-size: 15px;
	line-height: 2.3;
	letter-spacing: .05em;
}
.dy2-body p { margin: 0 0 1.4em; }
.dy2-body p:last-child { margin-bottom: 0; }
.dy2-body__mark {
	position: absolute;
	top: -6px;
	left: 14px;
	color: color-mix(in srgb, var(--kumi-c, #b40000) 55%, #fff);
	font-family: var(--hp-roman, serif);
	font-size: 64px;
	line-height: 1;
	pointer-events: none;
}

/* ---- フッター ---- */
.dy2-foot {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 14px;
	padding-top: 26px;
	border-top: 1px solid color-mix(in srgb, var(--kumi-c, #b40000) 40%, #fff);
}

.dy2-foot__back {
	display: inline-flex;
	padding: 11px 22px;
	border: 1px solid var(--kumi-c, #b40000);
	border-radius: 999px;
	background: #fdfaf3;
	color: color-mix(in srgb, var(--kumi-c, #b40000) 80%, #241611);
	font-size: 12.5px;
	font-weight: 600;
	letter-spacing: .08em;
	text-decoration: none;
	transition: background .3s ease, color .3s ease, transform .3s ease;
}
.dy2-foot__back:hover {
	background: var(--kumi-c, #b40000);
	color: #fff;
	transform: translateY(-2px);
}

.dy2-foot__adj { display: flex; gap: 20px; }
.dy2-foot__adj a {
	color: rgba(36, 22, 17, .62);
	font-size: 12px;
	letter-spacing: .05em;
	text-decoration: none;
}
.dy2-foot__adj a:hover { color: color-mix(in srgb, var(--kumi-c, #b40000) 80%, #241611); }

/* ---- レスポンシブ ---- */
@media (max-width: 640px) {
	.dy2-band { padding: 96px 0 54px; }
	.dy2-band__ghost { font-size: 72px; bottom: 10px; }
	.dy2-photo { padding: 8px 8px 11px; }
	.dy2-photo__tape { width: 84px; height: 22px; top: -11px; }
	.dy2-body { font-size: 13.5px; line-height: 2.15; }
	.dy2-foot { flex-direction: column; align-items: flex-start; }
}

/* =========================================================
   diary v4（2026-07-16）: 詳細ページ装飾強化
   エンブレムステッカー / 日付スタンプ / 紙吹雪 / モチーフ飾り /
   セクション見出し / 写真キャプション・丸ステッカー / ノート罫本文
   ========================================================= */

/* ---- バンド: 紙吹雪 ---- */
.dy2-band__confetti { position: absolute; inset: 0; pointer-events: none; }
.dy2-band__confetti i {
	position: absolute;
	display: block;
	border-radius: 50%;
	background: rgba(255, 255, 255, .32);
	animation: dy2Drift 9s ease-in-out infinite;
}
.dy2-band__confetti i:nth-child(1) { width: 10px; height: 10px; left: 6%;  top: 30%; animation-delay: 0s; }
.dy2-band__confetti i:nth-child(2) { width: 6px;  height: 6px;  left: 14%; top: 68%; animation-delay: -2.2s; }
.dy2-band__confetti i:nth-child(3) { width: 14px; height: 14px; left: 30%; top: 18%; background: transparent; border: 2px solid rgba(255, 255, 255, .38); animation-delay: -4.5s; }
.dy2-band__confetti i:nth-child(4) { width: 8px;  height: 8px;  left: 56%; top: 74%; border-radius: 2px; transform: rotate(24deg); animation-delay: -1.4s; }
.dy2-band__confetti i:nth-child(5) { width: 7px;  height: 7px;  left: 70%; top: 24%; animation-delay: -6.4s; }
.dy2-band__confetti i:nth-child(6) { width: 12px; height: 12px; left: 84%; top: 60%; background: transparent; border: 2px solid rgba(255, 255, 255, .3); animation-delay: -3.1s; }
.dy2-band__confetti i:nth-child(7) { width: 6px;  height: 6px;  left: 44%; top: 44%; border-radius: 2px; transform: rotate(-18deg); animation-delay: -7.6s; }

@keyframes dy2Drift {
	0%, 100% { translate: 0 0; opacity: .8; }
	50%      { translate: 0 -14px; opacity: .45; }
}

/* ---- バンド: タイトル下のドット線 ---- */
.dy2-band__title::after {
	content: '';
	display: block;
	width: 128px;
	height: 6px;
	margin-top: 16px;
	background: radial-gradient(circle, rgba(255, 255, 255, .8) 2.5px, transparent 3px);
	background-size: 13px 6px;
	background-repeat: repeat-x;
}

/* スカラップにうっすら影 */
.dy2-band__scallop { filter: drop-shadow(0 -3px 4px rgba(0, 0, 0, .05)); }

/* ---- 紙面レイヤ構成 ---- */
.dy2-paper { position: relative; }

/* モチーフの飾り（余白にふわふわ漂う） */
.dy2-deco { position: absolute; inset: 0; overflow: hidden; pointer-events: none; }
.dy2-deco i {
	position: absolute;
	font-style: normal;
	opacity: .16;
	animation: dy2Float 13s ease-in-out infinite;
}
.dy2-deco i:nth-child(1) { left: 5%;  top: 12%; font-size: 40px; animation-delay: 0s; }
.dy2-deco i:nth-child(2) { right: 4%; top: 26%; font-size: 30px; animation-delay: -3.4s; }
.dy2-deco i:nth-child(3) { left: 7%;  top: 52%; font-size: 26px; animation-delay: -6.8s; }
.dy2-deco i:nth-child(4) { right: 6%; top: 62%; font-size: 42px; animation-delay: -9.2s; }
.dy2-deco i:nth-child(5) { left: 4%;  top: 84%; font-size: 30px; animation-delay: -1.8s; }
.dy2-deco i:nth-child(6) { right: 5%; top: 90%; font-size: 24px; animation-delay: -5.2s; }

@keyframes dy2Float {
	0%, 100% { translate: 0 0; rotate: -6deg; }
	50%      { translate: 0 -18px; rotate: 7deg; }
}

/* ---- エンブレムステッカー（バンドと紙面にまたがる） ---- */
.dy2-emblem {
	position: absolute;
	top: -60px;
	right: max(20px, calc(50% - 462px));
	z-index: 5;
	width: 108px;
	padding: 14px 8px 12px;
	background: #fff;
	border: 1.5px dashed color-mix(in srgb, var(--kumi-c, #b40000) 55%, #fff);
	border-radius: 18px;
	outline: 5px solid #fff;
	box-shadow: 0 14px 30px rgba(31, 23, 20, .18);
	text-align: center;
	transform: rotate(6deg);
}
.dy2-emblem em {
	display: block;
	font-style: normal;
	font-size: 34px;
	line-height: 1;
}
.dy2-emblem strong {
	display: block;
	margin-top: 7px;
	font-size: 12.5px;
	font-weight: 700;
	letter-spacing: .08em;
	color: color-mix(in srgb, var(--kumi-c, #b40000) 80%, #241611);
}
.dy2-emblem small {
	display: block;
	margin-top: 2px;
	font-size: 9.5px;
	letter-spacing: .16em;
	color: rgba(36, 22, 17, .55);
}

/* ---- 日付スタンプ ---- */
.dy2-stamp {
	position: absolute;
	top: -26px;
	left: max(14px, calc(50% - 466px));
	z-index: 4;
	display: grid;
	place-content: center;
	gap: 1px;
	width: 96px;
	height: 96px;
	border: 2px solid color-mix(in srgb, var(--kumi-c, #b40000) 72%, #241611);
	border-radius: 50%;
	background: rgba(253, 250, 243, .92);
	box-shadow: inset 0 0 0 3px rgba(253, 250, 243, .92), inset 0 0 0 4.5px color-mix(in srgb, var(--kumi-c, #b40000) 60%, #241611);
	color: color-mix(in srgb, var(--kumi-c, #b40000) 74%, #241611);
	text-align: center;
	transform: rotate(-11deg);
	opacity: .92;
}
.dy2-stamp i { font-style: normal; font-size: 15px; line-height: 1.2; }
.dy2-stamp b {
	font-family: var(--hp-roman, "Times New Roman", serif);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .18em;
	line-height: 1.3;
}
.dy2-stamp small {
	font-family: var(--hp-roman, serif);
	font-size: 9.5px;
	letter-spacing: .1em;
	line-height: 1.3;
}

/* ---- セクション見出し（PHOTO / NOTE） ---- */
.dy2-head {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 7px;
	margin: 0 0 clamp(26px, 3.6vw, 38px);
	text-align: center;
}
.dy2-head small {
	font-family: var(--hp-roman, "Times New Roman", serif);
	font-size: 11px;
	letter-spacing: .36em;
	text-indent: .36em;
	color: color-mix(in srgb, var(--kumi-c, #b40000) 76%, #241611);
}
.dy2-head span {
	display: flex;
	align-items: center;
	gap: 16px;
	font-family: var(--hp-serif, "Noto Serif JP", serif);
	font-size: clamp(19px, 2.4vw, 24px);
	font-weight: 600;
	letter-spacing: .14em;
	color: #3a2a20;
}
.dy2-head span::before,
.dy2-head span::after {
	content: '';
	width: 46px;
	height: 2px;
	border-radius: 2px;
	background: linear-gradient(90deg, transparent, color-mix(in srgb, var(--kumi-c, #b40000) 62%, #fff));
}
.dy2-head span::after {
	background: linear-gradient(90deg, color-mix(in srgb, var(--kumi-c, #b40000) 62%, #fff), transparent);
}

/* NOTE見出しの手前に余白 */
.dy2-photos + .dy2-head,
.dy2-photos ~ .dy2-head { margin-top: clamp(46px, 6vw, 64px); }

/* ---- 写真: 丸ステッカー & キャプション ---- */
.dy2-photo__sticker {
	position: absolute;
	z-index: 3;
	right: -15px;
	bottom: -13px;
	display: grid;
	place-items: center;
	width: 48px;
	height: 48px;
	border-radius: 50%;
	background: #fff;
	border: 2px dashed color-mix(in srgb, var(--kumi-c, #b40000) 50%, #fff);
	box-shadow: 0 6px 14px rgba(31, 23, 20, .16);
	font-size: 23px;
	transform: rotate(9deg);
}
.dy2-photo:nth-child(even) .dy2-photo__sticker {
	right: auto;
	left: -15px;
	transform: rotate(-9deg);
}

.dy2-photo__cap {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 9px;
	padding-top: 13px;
}
.dy2-photo__cap em {
	font-style: normal;
	font-family: var(--hp-roman, "Times New Roman", serif);
	font-size: 11px;
	letter-spacing: .22em;
	color: color-mix(in srgb, var(--kumi-c, #b40000) 58%, #6b5138);
}
.dy2-photo__cap i { font-style: normal; font-size: 13px; }
.dy2-photo__cap::before,
.dy2-photo__cap::after {
	content: '';
	width: 26px;
	height: 1px;
	background: color-mix(in srgb, var(--kumi-c, #b40000) 30%, #e6d9c2);
}

/* 写真下端の余白をキャプションぶん調整 */
.dy2-photo { padding-bottom: 12px; }

/* ---- 本文: ノート罫 + ページの角折れ ---- */
.dy2-body {
	background:
		repeating-linear-gradient(
			transparent 0,
			transparent calc(2.3em - 1px),
			color-mix(in srgb, var(--kumi-c, #b40000) 16%, transparent) calc(2.3em - 1px),
			color-mix(in srgb, var(--kumi-c, #b40000) 16%, transparent) 2.3em
		),
		#fdfaf3;
	background-origin: content-box;
	background-clip: content-box, border-box;
	border-radius: 4px;
}
.dy2-body::after {
	content: '';
	position: absolute;
	right: -1px;
	bottom: -1px;
	width: 0;
	height: 0;
	border-style: solid;
	border-width: 0 0 26px 26px;
	border-color: transparent transparent color-mix(in srgb, var(--kumi-c, #b40000) 14%, #efe3cd) transparent;
	filter: drop-shadow(-2px -2px 2px rgba(31, 23, 20, .07));
}

/* ---- おしまい ---- */
.dy2-end {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 15px;
	margin: 0 0 clamp(38px, 5vw, 52px);
	color: color-mix(in srgb, var(--kumi-c, #b40000) 66%, #241611);
	font-size: 13px;
	letter-spacing: .42em;
	text-indent: .42em;
}
.dy2-end i { font-style: normal; font-size: 16px; letter-spacing: 0; text-indent: 0; }
.dy2-end::before,
.dy2-end::after {
	content: '';
	flex: 0 0 64px;
	height: 1px;
}
.dy2-end::before { background: linear-gradient(90deg, transparent, color-mix(in srgb, var(--kumi-c, #b40000) 52%, #fff)); }
.dy2-end::after  { background: linear-gradient(90deg, color-mix(in srgb, var(--kumi-c, #b40000) 52%, #fff), transparent); }

/* ---- 前後の記事リンクをピル化 ---- */
.dy2-foot__adj { gap: 10px; }
.dy2-foot__adj a {
	padding: 9px 17px;
	border: 1px solid color-mix(in srgb, var(--kumi-c, #b40000) 36%, #fff);
	border-radius: 999px;
	background: #fdfaf3;
	color: rgba(36, 22, 17, .7);
	font-size: 12px;
	letter-spacing: .05em;
	text-decoration: none;
	transition: border-color .3s ease, color .3s ease, transform .3s ease;
}
.dy2-foot__adj a:hover {
	border-color: var(--kumi-c, #b40000);
	color: color-mix(in srgb, var(--kumi-c, #b40000) 80%, #241611);
	transform: translateY(-2px);
}

/* ---- 紙面上部: スタンプ/エンブレムのぶん確保 ---- */
.dy2-paper { padding-top: clamp(76px, 8vw, 96px); }

/* ---- レスポンシブ ---- */
@media (max-width: 900px) {
	.dy2-deco i:nth-child(2),
	.dy2-deco i:nth-child(3),
	.dy2-deco i:nth-child(6) { display: none; }
	.dy2-deco i { opacity: .12; }
}

@media (max-width: 640px) {
	.dy2-emblem {
		top: -46px;
		right: 14px;
		width: 88px;
		padding: 11px 6px 9px;
		border-radius: 15px;
		outline-width: 4px;
	}
	.dy2-emblem em { font-size: 27px; }
	.dy2-emblem strong { font-size: 11px; }

	.dy2-stamp {
		top: -18px;
		left: 12px;
		width: 76px;
		height: 76px;
	}
	.dy2-stamp i { font-size: 12px; }
	.dy2-stamp b { font-size: 9px; letter-spacing: .14em; }
	.dy2-stamp small { font-size: 8.5px; }

	.dy2-paper { padding-top: 74px; }

	.dy2-band__title::after { width: 104px; margin-top: 13px; }

	.dy2-photo__sticker { width: 40px; height: 40px; font-size: 19px; right: -10px; bottom: -10px; }
	.dy2-photo:nth-child(even) .dy2-photo__sticker { left: -10px; }
	.dy2-photo__cap { padding-top: 10px; }
	.dy2-photo { padding-bottom: 9px; }

	.dy2-end::before,
	.dy2-end::after { flex-basis: 44px; }
}

/* ---- v4.1: gallery.css の継承打ち消し（写真は等倍・非クロップで大きく） ---- */
.dy2-photo.hp-gallery__item {
	width: 100%;
	height: auto;
	overflow: visible;
	background: #fff;
	transform-style: flat;
}
.dy2-photo.hp-gallery__item img {
	height: auto;
	object-fit: unset;
	transform: none;
	filter: none;
}
.dy2-photo.hp-gallery__item:hover {
	transform: rotate(0deg) translateY(-4px);
}
.dy2-photo.hp-gallery__item:hover img {
	transform: none;
	filter: none;
}

/* =========================================================
   diary v5（2026-07-16）: 施設アイデンティティの織り込み
   消印=施設カラー / 施設チップ白地化 / バンド左下の施設色の照り /
   スカラップ上の施設色フリル線 / 紙面水玉の2色化 / エンブレムに園名
   ========================================================= */

/* ---- 施設チップ: 白地 + 施設カラー ---- */
.dy2-chip:not(.dy2-chip--kumi) {
	background: #fff;
	border-color: #fff;
	color: color-mix(in srgb, var(--fac-c, #b40000) 78%, #241611);
}
.dy2-chip:not(.dy2-chip--kumi) i {
	background: var(--fac-c, #b40000);
}

/* ---- バンド: 左下に施設カラーの照りを重ねる ---- */
.dy2-band {
	background:
		radial-gradient(120% 90% at 82% 0%, color-mix(in srgb, #fff 16%, transparent), transparent 55%),
		radial-gradient(95% 80% at 8% 100%, color-mix(in srgb, var(--fac-c, #b40000) 42%, transparent), transparent 62%),
		linear-gradient(135deg, var(--kumi-c, #b40000) 0%, color-mix(in srgb, var(--kumi-c, #b40000) 72%, #241611) 100%);
}

/* ---- スカラップ: クリームの縁の上に施設カラーのフリル線 ---- */
.dy2-band__scallop {
	height: 22px;
	background-image:
		radial-gradient(circle at 50% 100%, #f7efe0 15px, transparent 16px),
		radial-gradient(circle at 50% 100%, color-mix(in srgb, var(--fac-c, #b40000) 52%, #fff) 15px, transparent 16px);
	background-size: 30px 16px, 30px 16px;
	background-position: 0 6px, 0 0;
	background-repeat: repeat-x;
}

/* ---- 消印: 施設カラーのインクに ---- */
.dy2-stamp {
	border-color: color-mix(in srgb, var(--fac-c, #b40000) 74%, #241611);
	box-shadow: inset 0 0 0 3px rgba(253, 250, 243, .92), inset 0 0 0 4.5px color-mix(in srgb, var(--fac-c, #b40000) 62%, #241611);
	color: color-mix(in srgb, var(--fac-c, #b40000) 76%, #241611);
}
.dy2-stamp i { font-size: 10px; opacity: .75; }
.dy2-stamp b { font-size: 9.5px; letter-spacing: .12em; }

/* ---- エンブレム: 園名の一行を足す ---- */
.dy2-emblem__fac {
	display: block;
	margin-top: 7px;
	padding-top: 6px;
	border-top: 1px dotted color-mix(in srgb, var(--fac-c, #b40000) 45%, #fff);
	font-size: 9px;
	font-weight: 600;
	line-height: 1.5;
	letter-spacing: .02em;
	color: color-mix(in srgb, var(--fac-c, #b40000) 72%, #241611);
}

/* ---- 紙面: クラス色 × 施設色の2色水玉 ---- */
.dy2-paper {
	background:
		radial-gradient(color-mix(in srgb, var(--kumi-c, #b40000) 14%, transparent) 2.5px, transparent 3px),
		radial-gradient(color-mix(in srgb, var(--fac-c, #b40000) 10%, transparent) 2px, transparent 2.5px),
		#f7efe0;
	background-size: 120px 120px, 84px 84px, auto;
	background-position: 0 0, 44px 60px, 0 0;
}

@media (max-width: 640px) {
	.dy2-stamp b { font-size: 8px; letter-spacing: .06em; }
	.dy2-emblem__fac { font-size: 8.5px; margin-top: 6px; padding-top: 5px; }
}

/* =========================================================
   diary v6（2026-07-16）: 「〇〇先生」の意匠 + 投稿フォームのスマホ本気版
   ========================================================= */

/* ---- 記事: 本文カード末尾の先生の署名 ---- */
.dy2-body__sign {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: 9px;
	margin: 1.9em 0 0 !important;
	color: color-mix(in srgb, var(--kumi-c, #b40000) 72%, #241611);
	font-family: var(--hp-serif, "Noto Serif JP", serif);
	font-size: 14.5px;
	font-weight: 600;
	letter-spacing: .1em;
}
.dy2-body__sign i { font-style: normal; font-size: 13px; opacity: .8; }
.dy2-body__sign::before {
	content: '';
	width: 38px;
	height: 1px;
	background: linear-gradient(90deg, transparent, color-mix(in srgb, var(--kumi-c, #b40000) 50%, #fff));
}

/* ---- 一覧カード: 先生の名前 ---- */
.dy-card__date { display: inline-block; }
.dy-card__author {
	display: inline-block;
	margin-left: 10px;
	color: rgba(36, 22, 17, .55);
	font-size: 11px;
	letter-spacing: .06em;
}
.dy-card__author i { font-style: normal; margin-right: 4px; opacity: .75; }

/* =========================================================
   投稿フォーム v2（スマホ最優先）
   ========================================================= */

/* このページではボトムナビ・新着フロートを消して操作を邪魔しない */
.page-template-page-diary-post .hp-bottom-nav,
.page-template-page-diary-post .hp-newsfloat { display: none !important; }

/* ---- ステップカード ---- */
.dy-post__field {
	margin-bottom: 16px;
	padding: 16px 16px 18px;
	background: #fffdf8;
	border: 1px solid rgba(160, 122, 58, .22);
	border-radius: 14px;
	transition: border-color .3s ease;
}
.dy-post__field.is-done { border-color: rgba(92, 138, 78, .45); }

.dy-post__label {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
}

/* 完了ステップは数字が✓に変わる */
.dy-post__field.is-done .dy-post__step {
	position: relative;
	background: #5c8a4e;
	color: transparent;
}
.dy-post__field.is-done .dy-post__step::after {
	content: '✓';
	position: absolute;
	inset: 0;
	display: grid;
	place-items: center;
	color: #fff;
	font-size: 12px;
}

/* 文字数などのカウンタ */
.dy-post__count {
	margin-left: auto;
	color: rgba(36, 22, 17, .48);
	font-family: var(--hp-roman, serif);
	font-size: 11px;
	font-weight: 400;
	letter-spacing: .1em;
}

/* iOSの自動ズームを防ぐ（16px未満だとフォーカス時に拡大される） */
.dy-post__input { font-size: 16px; }

/* ---- 合言葉: 表示切替 ---- */
.dy-post__passwrap { position: relative; }
.dy-post__passwrap .dy-post__input { padding-right: 62px; }
.dy-post__eye {
	position: absolute;
	top: 50%;
	right: 8px;
	transform: translateY(-50%);
	padding: 6px 10px;
	border: 1px solid rgba(160, 122, 58, .35);
	border-radius: 999px;
	background: #fff;
	color: rgba(36, 22, 17, .6);
	font-size: 11px;
	cursor: pointer;
}

/* ---- おなまえ: 「先生」サフィックス ---- */
.dy-post__namewrap { display: flex; align-items: stretch; }
.dy-post__namewrap .dy-post__input {
	flex: 1;
	min-width: 0;
	border-radius: 10px 0 0 10px;
	border-right: 0;
}
.dy-post__namesfx {
	display: grid;
	place-items: center;
	padding: 0 16px;
	border: 1px solid rgba(160, 122, 58, .35);
	border-radius: 0 10px 10px 0;
	background: #f4ead6;
	color: #6b5138;
	font-size: 14px;
	font-weight: 600;
	letter-spacing: .08em;
	white-space: nowrap;
}

/* ---- クラス選択: 絵文字入り ---- */
.dy-post__kumi-emoji {
	display: block;
	margin-bottom: 3px;
	font-style: normal;
	font-size: 21px;
	line-height: 1;
}
.dy-post__kumi-emoji img.emoji { width: 21px; height: 21px; }

/* ---- 写真: カメラ / アルバムの2ボタン + サムネ管理 ---- */
.dy-post__phbtns {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 10px;
}
.dy-post__phbtn {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 9px;
	min-height: 58px;
	padding: 10px 8px;
	border: 2px dashed rgba(180, 0, 0, .38);
	border-radius: 12px;
	background: #fff;
	color: #7a2222;
	font-size: 13.5px;
	font-weight: 600;
	letter-spacing: .04em;
	cursor: pointer;
	transition: border-color .3s ease, background .3s ease;
}
.dy-post__phbtn:hover { border-color: #b40000; background: #fff6f0; }
.dy-post__phbtn svg { width: 24px; height: 24px; color: #b40000; flex: 0 0 auto; }

.dy-post__preview {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 10px;
	margin-top: 12px;
}
.dy-post__preview:empty { display: none; }
.dy-post__thumb {
	position: relative;
	display: block;
	aspect-ratio: 1;
	border-radius: 10px;
	overflow: hidden;
	box-shadow: 0 4px 12px rgba(31, 23, 20, .14);
}
.dy-post__thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.dy-post__thumb i {
	position: absolute;
	left: 6px;
	bottom: 6px;
	display: grid;
	place-items: center;
	width: 20px;
	height: 20px;
	border-radius: 50%;
	background: rgba(0, 0, 0, .55);
	color: #fff;
	font-size: 10.5px;
	font-style: normal;
	font-family: var(--hp-roman, serif);
}
.dy-post__thumb-del {
	position: absolute;
	top: 5px;
	right: 5px;
	width: 26px;
	height: 26px;
	border: 0;
	border-radius: 50%;
	background: rgba(24, 16, 12, .72);
	color: #fff;
	font-size: 15px;
	line-height: 1;
	cursor: pointer;
}

/* ---- キーワードの導入文 ---- */
.dy-post__kwlead {
	margin: 12px 0 8px;
	color: rgba(36, 22, 17, .58);
	font-size: 11.5px;
	letter-spacing: .04em;
}
.dy-post__field .dy-hint__keywords { margin-top: 0; }

/* ---- 絵文字パレット: 押しやすい大きさに ---- */
.dy-emoji {
	display: grid;
	grid-template-columns: repeat(8, 1fr);
	gap: 8px;
	margin-top: 12px;
}
.dy-emoji__btn {
	display: grid;
	place-items: center;
	width: auto;
	height: 44px;
	padding: 0;
	border: 1px solid rgba(160, 122, 58, .25);
	border-radius: 10px;
	background: #fff;
	font-size: 21px;
	cursor: pointer;
}
.dy-emoji__btn img.emoji { width: 22px; height: 22px; }
.dy-emoji__btn:active { transform: scale(.92); }

/* ---- 追従アクションバー ---- */
.dy-post__bar {
	position: sticky;
	bottom: 12px;
	z-index: 30;
	margin-top: 22px;
	padding: 11px 14px 13px;
	background: rgba(255, 253, 248, .96);
	border: 1px solid rgba(160, 122, 58, .3);
	border-radius: 16px;
	box-shadow: 0 12px 32px rgba(31, 23, 20, .18);
	-webkit-backdrop-filter: blur(8px);
	backdrop-filter: blur(8px);
}
.dy-post__bar-status {
	margin: 0 0 9px;
	color: #a04a2a;
	font-size: 12px;
	letter-spacing: .04em;
}
.dy-post__bar-status.is-ready { color: #5c8a4e; }
.dy-post__bar-btns {
	display: grid;
	grid-template-columns: 1fr 1.4fr;
	gap: 10px;
}
.dy-post__bar-btns .dy-post__btn { width: 100%; margin: 0; }
.dy-post__bar-btns .dy-post__btn--ghost { border: 1px solid #b40000; }
.dy-post__btn:disabled { opacity: .45; cursor: not-allowed; }

/* ---- コツ: カード化 ---- */
.dy-hint__card {
	display: flex;
	gap: 12px;
	padding: 13px 0;
	border-bottom: 1px dashed rgba(160, 122, 58, .3);
}
.dy-hint__card:last-child { border-bottom: 0; }
.dy-hint__num {
	flex: 0 0 auto;
	display: grid;
	place-items: center;
	width: 26px;
	height: 26px;
	margin: 0;
	border-radius: 50%;
	background: #b40000;
	color: #fff;
	font-family: var(--hp-roman, serif);
	font-size: 12.5px;
}
.dy-hint__card .dy-hint__point { margin: 2px 0 4px; }
.dy-hint__desc {
	margin: 0;
	color: rgba(36, 22, 17, .72);
	font-size: 12.5px;
	line-height: 2;
	letter-spacing: .03em;
}

/* ---- プレビューをモバイルのシートに ---- */
@media (max-width: 640px) {
	.dy-pv { padding: 0; align-items: flex-end; }
	.dy-pv__panel {
		width: 100%;
		max-width: none;
		max-height: 92dvh;
		border-radius: 18px 18px 0 0;
		overflow-y: auto;
	}
	.dy-pv__actions {
		position: sticky;
		bottom: 0;
		padding: 12px 0 4px;
		background: linear-gradient(180deg, transparent, #fdfaf3 34%);
	}
}

/* ---- SP調整 ---- */
@media (max-width: 640px) {
	.dy-post__field { padding: 14px 13px 16px; }

	/* 園えらび: 1列の行スタイル（園名が長いので） */
	.dy-post__facilities { grid-template-columns: 1fr; gap: 9px; }
	.dy-post__fac-box {
		flex-direction: row;
		align-items: center;
		gap: 11px;
		padding: 13px 14px;
		text-align: left;
	}
	.dy-post__fac-box em { order: 2; margin: 0 0 0 auto; font-size: 8.5px; }
	.dy-post__fac-box strong { font-size: 13.5px; }

	/* クラスえらび: 3列 */
	.dy-post__classes { grid-template-columns: repeat(3, 1fr); gap: 9px; }

	.dy-emoji { grid-template-columns: repeat(6, 1fr); }
	.dy-post__preview { grid-template-columns: repeat(3, 1fr); gap: 8px; }
	.dy-post__phbtn { font-size: 12.5px; }
}

/* v6.1: 追従バーのボタンが折り返さないように */
.dy-post__bar-btns .dy-post__btn {
	padding-left: 8px;
	padding-right: 8px;
	font-size: 13.5px;
	white-space: nowrap;
}

/* v6.2: SPのセクション見出し（名前入りで長くなるため）を少し小さく */
@media (max-width: 640px) {
	.dy2-head span { gap: 10px; font-size: 17.5px; }
	.dy2-head span::before,
	.dy2-head span::after { width: 24px; }
}

/* v6.3: 写真ボタンの文言を折り返さない */
.dy-post__phbtn { white-space: nowrap; }
@media (max-width: 640px) {
	.dy-post__phbtn { padding-left: 4px; padding-right: 4px; gap: 7px; }
}

/* =========================================================
   diary v7（2026-07-16）: 本文=「れんらくちょう」カード + 地域の一文
   （NOTE見出しは廃止）
   ========================================================= */

.dy2-note {
	position: relative;
	max-width: 44em;
	margin: 0 auto clamp(26px, 3.4vw, 36px);
	padding: clamp(30px, 4vw, 44px) clamp(22px, 3.4vw, 42px) clamp(22px, 3vw, 32px);
	background:
		repeating-linear-gradient(
			transparent 0,
			transparent calc(2.3em - 1px),
			color-mix(in srgb, var(--kumi-c, #b40000) 15%, transparent) calc(2.3em - 1px),
			color-mix(in srgb, var(--kumi-c, #b40000) 15%, transparent) 2.3em
		),
		#fdfaf3;
	background-origin: content-box;
	background-clip: content-box, border-box;
	border: 1px solid color-mix(in srgb, var(--kumi-c, #b40000) 30%, #fff);
	border-radius: 14px;
	box-shadow: 0 14px 34px rgba(31, 23, 20, .1);
	color: rgba(36, 22, 17, .84);
	font-size: 15px;
	line-height: 2.3;
	letter-spacing: .05em;
	transform: rotate(-.3deg);
}
.dy2-photos ~ .dy2-note { margin-top: clamp(50px, 6vw, 66px); }

.dy2-note__body p { margin: 0 0 1.4em; }
.dy2-note__body p:last-child { margin-bottom: 0; }

/* インデックスタブ「きょうの れんらくちょう」 */
.dy2-note__tab {
	position: absolute;
	top: -17px;
	left: 20px;
	display: inline-flex;
	align-items: center;
	gap: 7px;
	padding: 7px 16px 8px;
	background: linear-gradient(135deg, var(--kumi-c, #b40000), color-mix(in srgb, var(--kumi-c, #b40000) 78%, #241611));
	border-radius: 999px;
	color: #fff;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: .12em;
	box-shadow: 0 6px 14px color-mix(in srgb, var(--kumi-c, #b40000) 34%, transparent);
	transform: rotate(-1.6deg);
	white-space: nowrap;
}
.dy2-note__tab i { font-style: normal; font-size: 12px; opacity: .9; }

/* 右上のマスキングテープ（写真と同じモチーフ） */
.dy2-note__tape {
	position: absolute;
	top: -12px;
	right: 26px;
	width: 92px;
	height: 24px;
	background: color-mix(in srgb, var(--kumi-c, #b40000) 45%, #fff);
	opacity: .8;
	transform: rotate(3deg);
	box-shadow: 0 2px 6px rgba(31, 23, 20, .12);
	-webkit-mask-image: linear-gradient(90deg, transparent 0, #000 6%, #000 94%, transparent 100%);
	mask-image: linear-gradient(90deg, transparent 0, #000 6%, #000 94%, transparent 100%);
}

/* ページの角折れ */
.dy2-note::after {
	content: '';
	position: absolute;
	right: -1px;
	bottom: -1px;
	width: 0;
	height: 0;
	border-style: solid;
	border-width: 0 0 26px 26px;
	border-color: transparent transparent color-mix(in srgb, var(--kumi-c, #b40000) 14%, #efe3cd) transparent;
	filter: drop-shadow(-2px -2px 2px rgba(31, 23, 20, .07));
}

/* 地域・園名の一文（ローカルSEO兼、記事の結び） */
.dy2-loc {
	max-width: 44em;
	margin: 0 auto clamp(28px, 4vw, 40px);
	color: rgba(107, 81, 56, .68);
	font-size: 11.5px;
	letter-spacing: .06em;
	line-height: 1.9;
	text-align: center;
}

@media (max-width: 640px) {
	.dy2-note { font-size: 13.5px; padding: 27px 16px 20px; }
	.dy2-note__tab { top: -15px; left: 12px; padding: 6px 13px 7px; font-size: 11px; }
	.dy2-note__tape { top: -10px; right: 14px; width: 72px; height: 20px; }
	.dy2-loc { padding: 0 12px; font-size: 10.5px; }
}

/* =========================================================
   diary v8（2026-07-16）: 関連記事「おなじ園の さいきんのようす」
   ========================================================= */
.dy2-rel { margin: 0 0 clamp(40px, 5vw, 54px); }
.dy2-rel .dy2-head { margin-bottom: clamp(20px, 3vw, 30px); }

.dy2-rel__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 14px;
}
.dy2-rel__card {
	--rel-c: var(--fac-c, #b40000);
	display: block;
	background: #fff;
	border: 1px solid color-mix(in srgb, var(--rel-c) 26%, #fff);
	border-radius: 12px;
	overflow: hidden;
	text-decoration: none;
	box-shadow: 0 8px 20px rgba(31, 23, 20, .08);
	transition: transform .4s cubic-bezier(.22, 1, .25, 1), box-shadow .4s ease;
}
.dy2-rel__card:hover {
	transform: translateY(-4px);
	box-shadow: 0 14px 28px rgba(31, 23, 20, .14);
}
.dy2-rel__thumb {
	display: block;
	aspect-ratio: 4 / 3;
	overflow: hidden;
	background: color-mix(in srgb, var(--rel-c) 10%, #f7efe0);
}
.dy2-rel__thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.dy2-rel__noimg {
	display: grid;
	place-items: center;
	width: 100%;
	height: 100%;
	font-size: 34px;
	opacity: .5;
}
.dy2-rel__body { display: block; padding: 10px 12px 13px; }
.dy2-rel__meta {
	display: flex;
	align-items: center;
	gap: 8px;
	margin-bottom: 4px;
}
.dy2-rel__meta time {
	color: rgba(160, 122, 58, .95);
	font-family: var(--hp-roman, serif);
	font-size: 10px;
	letter-spacing: .12em;
}
.dy2-rel__meta em {
	padding: 1px 8px;
	border-radius: 999px;
	background: color-mix(in srgb, var(--rel-c) 14%, #fff);
	color: color-mix(in srgb, var(--rel-c) 80%, #241611);
	font-size: 9.5px;
	font-style: normal;
	font-weight: 600;
	letter-spacing: .04em;
}
.dy2-rel__title {
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
	color: #241611;
	font-size: 12.5px;
	font-weight: 600;
	line-height: 1.7;
	letter-spacing: .04em;
}
.dy2-rel__more { margin: 16px 0 0; text-align: center; }
.dy2-rel__more a {
	color: color-mix(in srgb, var(--kumi-c, #b40000) 78%, #241611);
	font-size: 12.5px;
	font-weight: 600;
	letter-spacing: .06em;
	text-decoration: none;
	border-bottom: 1px solid color-mix(in srgb, var(--kumi-c, #b40000) 45%, #fff);
	padding-bottom: 2px;
}
.dy2-rel__more a:hover { border-bottom-color: currentColor; }

@media (max-width: 640px) {
	.dy2-rel__grid { grid-template-columns: 1fr; gap: 10px; }
	.dy2-rel__card { display: flex; align-items: stretch; }
	.dy2-rel__thumb { flex: 0 0 108px; aspect-ratio: auto; min-height: 82px; }
	.dy2-rel__noimg { font-size: 25px; }
	.dy2-rel__body { flex: 1; padding: 9px 12px; }
	.dy2-rel__title { font-size: 12px; }
}

/* =========================================================
   diary v9（2026-07-22）: 演出強化
   バンド入場 / スタンプ押印 / ステッカーぺたっ / 写真の貼り付け /
   れんらくちょうタブ / おしまいの登場 / 一覧カードのホバー強化
   ========================================================= */

/* ---- 共通キーフレーム ---- */
@keyframes dyRiseIn {
	from { opacity: 0; translate: 0 10px; }
	to   { opacity: 1; translate: 0 0; }
}
@keyframes dyPopIn {
	from { opacity: 0; scale: .88; }
	to   { opacity: 1; scale: 1; }
}

/* ---- バンド: ページを開いた瞬間の入場（上から順に） ---- */
.dy2-band__crumb  { animation: dyRiseIn .8s cubic-bezier(.22, .6, .2, 1) .05s backwards; }
.dy2-band__chips  { animation: dyRiseIn .8s cubic-bezier(.22, .6, .2, 1) .18s backwards; }
.dy2-band__date   { animation: dyRiseIn .8s cubic-bezier(.22, .6, .2, 1) .3s backwards; }
.dy2-band__title  { animation: dyRiseIn .95s cubic-bezier(.22, .6, .2, 1) .42s backwards; }
.dy2-band__author { animation: dyRiseIn .8s cubic-bezier(.22, .6, .2, 1) .6s backwards; }

@keyframes dyGhostIn {
	from { opacity: 0; translate: 26px 0; }
	to   { opacity: 1; translate: 0 0; }
}
.dy2-band__ghost { animation: dyGhostIn 1.9s cubic-bezier(.22, .6, .2, 1) .3s backwards; }

/* タイトル下のドット線: 左からすっと伸びる */
.dy2-band__title::after {
	transform-origin: left center;
	animation: dyLineGrow .9s cubic-bezier(.22, .6, .2, 1) .9s backwards;
}
@keyframes dyLineGrow {
	from { transform: scaleX(0); opacity: 0; }
	to   { transform: scaleX(1); opacity: 1; }
}

/* ---- エンブレム: ぺたっと貼られる / 消印: ドンと押される ---- */
.dy2-emblem { animation: dyEmblemSlap .8s cubic-bezier(.22, .6, .2, 1) .9s backwards; }
@keyframes dyEmblemSlap {
	from { opacity: 0; scale: 1.1; }
	to   { opacity: 1; scale: 1; }
}

.dy2-stamp { animation: dyStampPress .7s cubic-bezier(.22, .6, .2, 1) 1.3s backwards; }
@keyframes dyStampPress {
	0%   { opacity: 0; scale: 1.18; }
	60%  { opacity: .92; scale: .985; }
	100% { scale: 1; }
}

/* ---- 写真: スクロールで「アルバムに貼る」ように着地 ---- */
.dy2-photo { --ph-rot: -.7deg; }
.dy2-photo:nth-child(even) { --ph-rot: .7deg; }

.dy2-photo.hp-reveal {
	opacity: 0;
	transform: rotate(var(--ph-rot));
	transition: transform .5s cubic-bezier(.22, 1, .25, 1), box-shadow .5s ease;
}
.dy2-photo.hp-reveal.is-revealed {
	opacity: 1;
	animation: dyPhotoPaste 1.05s cubic-bezier(.22, .6, .2, 1) backwards;
}
@keyframes dyPhotoPaste {
	0%   { opacity: 0; transform: scale(1.025) rotate(calc(var(--ph-rot) * 2)) translateY(16px); }
	60%  { opacity: 1; }
	100% { opacity: 1; transform: scale(1) rotate(var(--ph-rot)) translateY(0); }
}
.dy2-photo.hp-reveal.is-revealed:hover { transform: rotate(0deg) translateY(-4px); }

/* テープ→ステッカー→キャプションの順にぽんっと登場 */
.dy2-photo.hp-reveal .dy2-photo__tape,
.dy2-photo.hp-reveal .dy2-photo__sticker,
.dy2-photo.hp-reveal .dy2-photo__cap { opacity: 0; }
.dy2-photo.hp-reveal.is-revealed .dy2-photo__tape {
	opacity: .88;
	animation: dyPopTape .6s cubic-bezier(.22, .6, .2, 1) .55s backwards;
}
.dy2-photo.hp-reveal.is-revealed .dy2-photo__sticker {
	opacity: 1;
	animation: dyPopIn .6s cubic-bezier(.22, .6, .2, 1) .72s backwards;
}
.dy2-photo.hp-reveal.is-revealed .dy2-photo__cap {
	opacity: 1;
	animation: dyRiseIn .7s cubic-bezier(.22, .6, .2, 1) .88s backwards;
}
@keyframes dyPopTape {
	from { opacity: 0; scale: .9; }
	to   { opacity: .88; scale: 1; }
}

/* ---- れんらくちょう: タブとテープがあとから付く / 署名はすっと ---- */
.dy2-note.hp-reveal .dy2-note__tab,
.dy2-note.hp-reveal .dy2-note__tape,
.dy2-note.hp-reveal .dy2-body__sign { opacity: 0; }
.dy2-note.hp-reveal.is-revealed .dy2-note__tab {
	opacity: 1;
	animation: dyPopIn .65s cubic-bezier(.22, .6, .2, 1) .42s backwards;
}
.dy2-note.hp-reveal.is-revealed .dy2-note__tape {
	opacity: .8;
	animation: dyPopTape .6s cubic-bezier(.22, .6, .2, 1) .6s backwards;
}
.dy2-note.hp-reveal.is-revealed .dy2-body__sign {
	opacity: 1;
	animation: dyRiseIn .6s ease .75s backwards;
}

/* ---- セクション見出し: 両脇の線が文字から伸びる ---- */
.dy2-head.hp-reveal span::before,
.dy2-head.hp-reveal span::after {
	transform: scaleX(0);
	transition: transform .7s cubic-bezier(.2, .8, .2, 1) .35s;
}
.dy2-head.hp-reveal span::before { transform-origin: right center; }
.dy2-head.hp-reveal span::after  { transform-origin: left center; }
.dy2-head.hp-reveal.is-revealed span::before,
.dy2-head.hp-reveal.is-revealed span::after { transform: scaleX(1); }

/* ---- おしまい: モチーフがぽんっ、線がすっ ---- */
.dy2-end.hp-reveal i { opacity: 0; }
.dy2-end.hp-reveal.is-revealed i {
	opacity: 1;
	animation: dyPopIn .6s cubic-bezier(.22, .6, .2, 1) .4s backwards;
}
.dy2-end.hp-reveal.is-revealed i:last-of-type { animation-delay: .52s; }
.dy2-end.hp-reveal::before,
.dy2-end.hp-reveal::after {
	transform: scaleX(0);
	transition: transform .7s ease .3s;
}
.dy2-end.hp-reveal::before { transform-origin: right center; }
.dy2-end.hp-reveal::after  { transform-origin: left center; }
.dy2-end.hp-reveal.is-revealed::before,
.dy2-end.hp-reveal.is-revealed::after { transform: scaleX(1); }

/* ---- 紙面のモチーフ絵文字: ふわっと順に現れてから漂う ---- */
.dy2-deco i { animation: dyDecoIn 1s ease backwards, dy2Float 13s ease-in-out infinite; }
.dy2-deco i:nth-child(1) { animation-delay: .9s,  0s; }
.dy2-deco i:nth-child(2) { animation-delay: 1.1s, -3.4s; }
.dy2-deco i:nth-child(3) { animation-delay: 1.3s, -6.8s; }
.dy2-deco i:nth-child(4) { animation-delay: 1.5s, -9.2s; }
.dy2-deco i:nth-child(5) { animation-delay: 1.7s, -1.8s; }
.dy2-deco i:nth-child(6) { animation-delay: 1.9s, -5.2s; }
@keyframes dyDecoIn {
	from { opacity: 0; }
	to   { opacity: .16; }
}

/* ---- 一覧カード: ホバーの気持ちよさ強化 ---- */
.dy-card__thumb img { transition: transform .8s cubic-bezier(.22, 1, .25, 1), filter .5s ease; }
.dy-card__link:hover .dy-card__thumb img { transform: scale(1.04); filter: saturate(1.06) brightness(1.02); }

.dy-card__title { transition: color .35s ease; }
.dy-card__link:hover .dy-card__title { color: var(--fac-c, #b40000); }

.dy-card__kumi,
.dy-card__fac { transition: scale .35s ease; }
.dy-card__link:hover .dy-card__kumi { scale: 1.04; }

.dy-card__count { transition: translate .35s ease; }
.dy-card__link:hover .dy-card__count { translate: 0 -3px; }

/* ---- 一覧フィルタ: 押せる感を出す ---- */
.dy-filter__btn { transition: transform .35s ease, background .3s ease, border-color .3s ease, color .3s ease, box-shadow .35s ease; }
.dy-filter__btn:hover { transform: translateY(-1px); box-shadow: 0 5px 12px rgba(31, 23, 20, .09); }
.dy-filter__btn:active { transform: translateY(0) scale(.98); }

/* ---- 動きを抑えたい環境ではすべて止める ---- */
@media (prefers-reduced-motion: reduce) {
	.dy2-band__crumb, .dy2-band__chips, .dy2-band__date, .dy2-band__title, .dy2-band__author,
	.dy2-band__ghost, .dy2-band__title::after, .dy2-emblem, .dy2-stamp,
	.dy2-photo.hp-reveal.is-revealed,
	.dy2-photo.hp-reveal.is-revealed .dy2-photo__tape,
	.dy2-photo.hp-reveal.is-revealed .dy2-photo__sticker,
	.dy2-photo.hp-reveal.is-revealed .dy2-photo__cap,
	.dy2-note.hp-reveal.is-revealed .dy2-note__tab,
	.dy2-note.hp-reveal.is-revealed .dy2-note__tape,
	.dy2-note.hp-reveal.is-revealed .dy2-body__sign,
	.dy2-end.hp-reveal.is-revealed i,
	.dy2-deco i { animation: none; }
	.dy2-photo.hp-reveal .dy2-photo__tape,
	.dy2-photo.hp-reveal .dy2-photo__sticker,
	.dy2-photo.hp-reveal .dy2-photo__cap,
	.dy2-note.hp-reveal .dy2-note__tab,
	.dy2-note.hp-reveal .dy2-note__tape,
	.dy2-note.hp-reveal .dy2-body__sign,
	.dy2-end.hp-reveal i { opacity: 1; }
	.dy2-note.hp-reveal .dy2-note__tape { opacity: .8; }
	.dy2-photo.hp-reveal .dy2-photo__tape { opacity: .88; }
}

/* =========================================================
   diary v10（2026-07-22）: 一覧ページの本気デザイン
   はちみつ色のアルバム表紙帯 + クレヨン下線 + スクラップブックカード
   ========================================================= */

/* ---- アルバムの表紙帯 ---- */
.dy-hero {
	position: relative;
	padding: 140px 0 66px;
	background:
		radial-gradient(120% 90% at 82% 0%, rgba(255, 255, 255, .16), transparent 55%),
		linear-gradient(135deg, #c08a2e 0%, #a56f1f 58%, #8a5a18 100%);
	overflow: hidden;
	text-align: center;
}
.dy-hero__ghost {
	position: absolute;
	right: -12px;
	bottom: -4px;
	font-family: var(--hp-roman, "Times New Roman", serif);
	font-size: clamp(92px, 14vw, 200px);
	line-height: 1;
	letter-spacing: .05em;
	color: transparent;
	-webkit-text-stroke: 1px rgba(255, 255, 255, .2);
	pointer-events: none;
	animation: dyGhostIn 1.9s cubic-bezier(.22, .6, .2, 1) .25s backwards;
}
.dy-hero__dots {
	position: absolute;
	inset: 0;
	background-image:
		radial-gradient(rgba(255, 255, 255, .13) 2.5px, transparent 3px),
		radial-gradient(rgba(255, 255, 255, .09) 2px, transparent 2.5px);
	background-size: 90px 90px, 60px 60px;
	background-position: 0 0, 30px 40px;
	pointer-events: none;
}

/* クラス6色の紙吹雪 */
.dy-hero__confetti { position: absolute; inset: 0; pointer-events: none; }
.dy-hero__confetti i {
	position: absolute;
	display: block;
	border-radius: 50%;
	animation: dy2Drift 9s ease-in-out infinite;
}
.dy-hero__confetti i:nth-child(1) { width: 10px; height: 10px; left: 7%;  top: 34%; background: rgba(224, 71, 90, .55);  animation-delay: 0s; }
.dy-hero__confetti i:nth-child(2) { width: 8px;  height: 8px;  left: 15%; top: 66%; background: rgba(239, 148, 38, .55); animation-delay: -2.2s; }
.dy-hero__confetti i:nth-child(3) { width: 12px; height: 12px; left: 26%; top: 24%; background: transparent; border: 2px solid rgba(255, 255, 255, .4); animation-delay: -4.4s; }
.dy-hero__confetti i:nth-child(4) { width: 9px;  height: 9px;  left: 60%; top: 72%; background: rgba(138, 99, 179, .5);  border-radius: 2px; transform: rotate(20deg); animation-delay: -1.4s; }
.dy-hero__confetti i:nth-child(5) { width: 8px;  height: 8px;  left: 72%; top: 26%; background: rgba(79, 163, 216, .55); animation-delay: -6.2s; }
.dy-hero__confetti i:nth-child(6) { width: 11px; height: 11px; left: 84%; top: 62%; background: rgba(236, 143, 163, .6); animation-delay: -3s; }
.dy-hero__confetti i:nth-child(7) { width: 7px;  height: 7px;  left: 44%; top: 18%; background: rgba(224, 168, 28, .6);  border-radius: 2px; transform: rotate(-16deg); animation-delay: -7.4s; }
.dy-hero__confetti i:nth-child(8) { width: 12px; height: 12px; left: 92%; top: 40%; background: transparent; border: 2px solid rgba(255, 255, 255, .32); animation-delay: -5.2s; }

/* 帯のすみに漂うクラスモチーフ */
.dy-hero__emoji { position: absolute; inset: 0; pointer-events: none; }
.dy-hero__emoji i {
	position: absolute;
	font-style: normal;
	opacity: .4;
	animation: dy2Float 13s ease-in-out infinite;
}
.dy-hero__emoji i:nth-child(1) { left: 10%; top: 22%; font-size: 26px; animation-delay: 0s; }
.dy-hero__emoji i:nth-child(2) { left: 20%; top: 74%; font-size: 22px; animation-delay: -3.2s; }
.dy-hero__emoji i:nth-child(3) { left: 33%; top: 30%; font-size: 20px; animation-delay: -6.4s; }
.dy-hero__emoji i:nth-child(4) { left: 66%; top: 20%; font-size: 24px; animation-delay: -8.6s; }
.dy-hero__emoji i:nth-child(5) { left: 78%; top: 70%; font-size: 26px; animation-delay: -1.8s; }
.dy-hero__emoji i:nth-child(6) { left: 90%; top: 24%; font-size: 22px; animation-delay: -5s; }

.dy-hero__inner { position: relative; z-index: 2; width: min(760px, calc(100% - 44px)); margin: 0 auto; }
.dy-hero__kicker {
	margin: 0 0 14px;
	font-family: var(--hp-roman, serif);
	font-size: 12px;
	letter-spacing: .34em;
	text-indent: .34em;
	color: rgba(255, 240, 200, .92);
	animation: dyRiseIn .8s cubic-bezier(.22, .6, .2, 1) .05s backwards;
}
.dy-hero__title {
	margin: 0;
	color: #fff;
	font-family: var(--hp-serif, "Noto Serif JP", serif);
	font-size: clamp(30px, 4.4vw, 44px);
	font-weight: 600;
	letter-spacing: .1em;
	line-height: 1.5;
	text-shadow: 0 2px 16px rgba(0, 0, 0, .16);
	animation: dyRiseIn .95s cubic-bezier(.22, .6, .2, 1) .2s backwards;
}
.dy-hero__title em { font-style: normal; }

/* クレヨンの6色下線 */
.dy-hero__crayon {
	display: block;
	width: 186px;
	height: 7px;
	margin: 18px auto 0;
	border-radius: 5px;
	background: linear-gradient(90deg,
		#e0475a 0 16.6%, #ef9426 16.6% 33.3%, #e0a81c 33.3% 50%,
		#4fa3d8 50% 66.6%, #8a63b3 66.6% 83.3%, #ec8fa3 83.3% 100%);
	transform: rotate(-1.2deg);
	box-shadow: 0 2px 6px rgba(31, 23, 20, .18);
	transform-origin: left center;
	animation: dyCrayonGrow .8s cubic-bezier(.22, .6, .2, 1) .55s backwards;
}
@keyframes dyCrayonGrow {
	from { transform: rotate(-1.2deg) scaleX(0); opacity: 0; }
	to   { transform: rotate(-1.2deg) scaleX(1); opacity: 1; }
}
.dy-hero__lead {
	margin: 18px 0 0;
	color: rgba(255, 255, 255, .9);
	font-size: 13.5px;
	line-height: 2.1;
	letter-spacing: .06em;
	animation: dyRiseIn .8s cubic-bezier(.22, .6, .2, 1) .5s backwards;
}

/* 下端: クリームのスカラップ */
.dy-hero__scallop {
	position: absolute;
	left: 0;
	right: 0;
	bottom: -1px;
	height: 22px;
	background-image:
		radial-gradient(circle at 50% 100%, #f7efe0 15px, transparent 16px),
		radial-gradient(circle at 50% 100%, rgba(120, 78, 18, .38) 15px, transparent 16px);
	background-size: 30px 16px, 30px 16px;
	background-position: 0 6px, 0 0;
	background-repeat: repeat-x;
	filter: drop-shadow(0 -3px 4px rgba(0, 0, 0, .05));
}

/* ---- 紙面: 漂うモチーフ ---- */
.dy-sec { position: relative; overflow: hidden; }
.dy-deco2 { position: absolute; inset: 0; pointer-events: none; }
.dy-deco2 i {
	position: absolute;
	font-style: normal;
	opacity: .13;
	animation: dy2Float 14s ease-in-out infinite;
}
.dy-deco2 i:nth-child(1) { left: 2%;  top: 12%; font-size: 38px; animation-delay: 0s; }
.dy-deco2 i:nth-child(2) { right: 2%; top: 24%; font-size: 30px; animation-delay: -3.4s; }
.dy-deco2 i:nth-child(3) { left: 3%;  top: 48%; font-size: 26px; animation-delay: -6.8s; }
.dy-deco2 i:nth-child(4) { right: 3%; top: 58%; font-size: 40px; animation-delay: -9.4s; }
.dy-deco2 i:nth-child(5) { left: 2%;  top: 82%; font-size: 30px; animation-delay: -1.6s; }
.dy-deco2 i:nth-child(6) { right: 2%; top: 88%; font-size: 26px; animation-delay: -5.4s; }

/* ---- フィルタ: 絵文字入りなまえふだ ---- */
.dy-filter__emoji { font-style: normal; font-size: 15px; margin-right: 2px; }
.dy-filter__emoji img.emoji { width: 15px; height: 15px; }
.dy-filter__btn.is-active { scale: 1.04; box-shadow: 0 6px 16px rgba(31, 23, 20, .16); }

/* ---- カード: スクラップブック化 ---- */
.dy-grid { gap: 42px 30px; }

.dy-card { transition: rotate .5s ease; }
.dy-grid .dy-card:nth-child(3n+1) { rotate: -.5deg; }
.dy-grid .dy-card:nth-child(3n+2) { rotate: .4deg; }
.dy-grid .dy-card:nth-child(3n)   { rotate: .6deg; }
.dy-card:hover { rotate: 0deg; }

.dy-card__link { border-radius: 4px; }

/* 写真は白マットの額装に */
.dy-card__thumb {
	margin: 12px 12px 0;
	border: 1px solid rgba(160, 122, 58, .25);
}
.dy-card__body {
	margin: 0 12px;
	padding: 14px 6px 16px;
	border-top: 1px dashed rgba(160, 122, 58, .4);
}

/* 施設色のマスキングテープ */
.dy-card__tape {
	position: absolute;
	top: -11px;
	left: 50%;
	translate: -50% 0;
	z-index: 3;
	width: 92px;
	height: 24px;
	background: color-mix(in srgb, var(--fac-c, #b40000) 45%, #fff);
	opacity: .85;
	rotate: -2.2deg;
	box-shadow: 0 2px 6px rgba(31, 23, 20, .14);
	-webkit-mask-image: linear-gradient(90deg, transparent 0, #000 6%, #000 94%, transparent 100%);
	mask-image: linear-gradient(90deg, transparent 0, #000 6%, #000 94%, transparent 100%);
	pointer-events: none;
}
.dy-grid .dy-card:nth-child(even) .dy-card__tape { rotate: 2.2deg; }

/* クラスの丸ステッカー */
.dy-card__sticker {
	position: absolute;
	top: -13px;
	right: -10px;
	z-index: 3;
	display: grid;
	place-items: center;
	width: 42px;
	height: 42px;
	background: #fff;
	border: 2px dashed color-mix(in srgb, var(--fac-c, #b40000) 40%, #fff);
	border-radius: 50%;
	font-size: 20px;
	rotate: 10deg;
	box-shadow: 0 5px 12px rgba(31, 23, 20, .16);
	pointer-events: none;
}
.dy-card__sticker img.emoji { width: 20px; height: 20px; }

/* ---- ページ送り ---- */
.dy-pagination .page-numbers {
	display: inline-grid;
	place-items: center;
	min-width: 40px;
	height: 40px;
	padding: 0 13px;
	margin: 0 4px 8px;
	border: 1px solid rgba(160, 122, 58, .4);
	border-radius: 999px;
	background: #fdfaf3;
	color: #6b5138;
	font-family: var(--hp-roman, serif);
	font-size: 13px;
	letter-spacing: .06em;
	text-decoration: none;
	transition: border-color .3s ease, color .3s ease, transform .3s ease, background .3s ease;
}
.dy-pagination .page-numbers.current {
	background: #b40000;
	border-color: #b40000;
	color: #fff;
}
.dy-pagination a.page-numbers:hover {
	border-color: #b40000;
	color: #8c1616;
	transform: translateY(-2px);
}

/* ---- SP ---- */
@media (max-width: 640px) {
	.dy-hero { padding: 110px 0 52px; }
	.dy-hero__ghost { font-size: 78px; }
	.dy-hero__title { font-size: 26px; }
	.dy-hero__crayon { width: 150px; height: 6px; }
	.dy-hero__lead { font-size: 12px; }
	.dy-hero__emoji i { opacity: .3; }

	.dy-grid { gap: 34px; }
	.dy-card__tape { width: 84px; height: 21px; top: -9px; }
	.dy-card__sticker { width: 38px; height: 38px; font-size: 18px; top: -11px; right: -7px; }

	.dy-deco2 i:nth-child(2),
	.dy-deco2 i:nth-child(3) { display: none; }
}

@media (prefers-reduced-motion: reduce) {
	.dy-hero__ghost, .dy-hero__kicker, .dy-hero__title, .dy-hero__crayon, .dy-hero__lead,
	.dy-hero__confetti i, .dy-hero__emoji i, .dy-deco2 i { animation: none; }
}

/* 記事→園ページへの導線（2026-07-25） */
.dy2-locmore { margin: 0 auto clamp(26px, 3.4vw, 36px); text-align: center; }
.dy2-locmore a {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 12px 26px;
	border: 1.5px solid color-mix(in srgb, var(--fac-c, #b40000) 60%, #fff);
	border-radius: 999px;
	background: #fdfaf3;
	color: color-mix(in srgb, var(--fac-c, #b40000) 80%, #241611);
	font-size: 13px;
	font-weight: 700;
	letter-spacing: .05em;
	text-decoration: none;
	transition: background .35s ease, color .35s ease, transform .35s ease;
}
.dy2-locmore a:hover {
	background: var(--fac-c, #b40000);
	color: #fff;
	transform: translateY(-2px);
}

/* ===== 今月の人気のようす（MONTHLY BEST）＋よかったね ===== */

/* --- ランキング（/diary/ 一覧の上部） --- */
.dy-rank {
	position: relative;
	margin: 0 0 clamp(34px, 5vw, 54px);
	padding: clamp(26px, 4vw, 44px) clamp(18px, 3.4vw, 40px) clamp(28px, 4vw, 46px);
	background:
		radial-gradient(circle at 12% 8%, rgba(201, 162, 39, .07), transparent 42%),
		radial-gradient(circle at 88% 92%, rgba(201, 162, 39, .06), transparent 40%),
		#fffdf6;
	border: 1px solid rgba(201, 162, 39, .5);
	border-radius: 18px;
	box-shadow: 0 14px 34px rgba(60, 42, 20, .08);
}
.dy-rank::before {
	content: "";
	position: absolute;
	inset: 6px;
	border: 1px solid rgba(201, 162, 39, .28);
	border-radius: 13px;
	pointer-events: none;
}
.dy-rank__head { text-align: center; margin-bottom: clamp(20px, 3vw, 30px); }
.dy-rank__kicker {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	margin: 0 0 8px;
	color: #b08d1e;
	font-size: 11.5px;
	letter-spacing: .34em;
	font-weight: 600;
}
.dy-rank__kicker i { font-style: normal; opacity: .75; letter-spacing: 0; }
.dy-rank__title { margin: 0 0 8px; font-size: clamp(20px, 3vw, 26px); color: #4a3a28; letter-spacing: .08em; }
.dy-rank__lead { margin: 0; font-size: 13px; color: #8a7a60; letter-spacing: .06em; }
.dy-rank__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(14px, 2vw, 22px); }
.dy-rank__card {
	position: relative;
	display: flex;
	flex-direction: column;
	text-decoration: none;
	background: #fff;
	border-radius: 14px;
	border: 1px solid rgba(120, 96, 56, .16);
	box-shadow: 0 8px 22px rgba(60, 42, 20, .09);
	transition: transform .35s cubic-bezier(.22, .6, .2, 1), box-shadow .35s ease;
}
.dy-rank__card:hover { transform: translateY(-4px); box-shadow: 0 16px 34px rgba(60, 42, 20, .14); }
.dy-rank__card--1 { border-color: rgba(201, 162, 39, .65); box-shadow: 0 10px 28px rgba(160, 122, 28, .16); }
.dy-rank__medal {
	position: absolute;
	top: -12px;
	left: -10px;
	z-index: 3;
	width: 46px;
	height: 46px;
	border-radius: 50%;
	display: flex;
	align-items: baseline;
	justify-content: center;
	padding-top: 9px;
	color: #fff;
	border: 2px solid #fffdf6;
	box-shadow: 0 4px 12px rgba(60, 42, 20, .28), inset 0 1px 2px rgba(255, 255, 255, .55);
}
.dy-rank__medal em { font-style: normal; font-size: 20px; font-weight: 700; line-height: 1; }
.dy-rank__medal small { font-size: 10px; margin-left: 1px; }
.dy-rank__card--1 .dy-rank__medal { background: linear-gradient(145deg, #e8c766, #b8901f 68%, #d4ab3a); }
.dy-rank__card--2 .dy-rank__medal { background: linear-gradient(145deg, #d4d6da, #9aa0aa 68%, #c2c6cd); }
.dy-rank__card--3 .dy-rank__medal { background: linear-gradient(145deg, #d9a37c, #a5683c 68%, #c08858); }
.dy-rank__thumb {
	display: block;
	aspect-ratio: 16 / 10;
	border-radius: 13px 13px 0 0;
	overflow: hidden;
	background: #f6efdf;
}
.dy-rank__thumb img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.dy-rank__card:hover .dy-rank__thumb img { transform: scale(1.04); }
.dy-rank__noimg { display: flex; align-items: center; justify-content: center; height: 100%; font-size: 40px; }
.dy-rank__body { display: flex; flex-direction: column; gap: 7px; padding: 14px 16px 16px; }
.dy-rank__chips { display: flex; flex-wrap: wrap; gap: 6px; }
.dy-rank__fac {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-size: 10.5px;
	letter-spacing: .04em;
	color: #5a4a34;
	background: #fff;
	border: 1px solid rgba(120, 96, 56, .22);
	border-radius: 999px;
	padding: 2px 9px;
}
.dy-rank__fac i { width: 7px; height: 7px; border-radius: 50%; background: var(--fac-c, #b40000); }
.dy-rank__kumi {
	font-size: 10.5px;
	color: #fff;
	background: var(--kumi-c, #b08d1e);
	border-radius: 999px;
	padding: 2.5px 9px;
	letter-spacing: .05em;
}
.dy-rank__name {
	font-size: 14.5px;
	line-height: 1.65;
	color: #3d3226;
	letter-spacing: .03em;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
.dy-rank__meta {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 10px;
	font-size: 11px;
	color: #96856a;
	letter-spacing: .05em;
}
.dy-rank__meta em { font-style: normal; }
.dy-rank__likes { color: #c0575f; font-weight: 600; }
@media (max-width: 700px) {
	.dy-rank { padding: 24px 14px 26px; }
	.dy-rank__grid { grid-template-columns: 1fr; gap: 16px; }
	.dy-rank__card { display: grid; grid-template-columns: 118px 1fr; }
	.dy-rank__thumb { aspect-ratio: auto; height: 100%; min-height: 108px; border-radius: 13px 0 0 13px; }
	.dy-rank__body { padding: 10px 12px 12px; gap: 5px; }
	.dy-rank__medal { width: 40px; height: 40px; top: -10px; left: -8px; padding-top: 8px; }
	.dy-rank__medal em { font-size: 17px; }
	.dy-rank__name { font-size: 13.5px; }
	.dy-rank__noimg { font-size: 30px; }
}

/* --- 一覧カードの「よかったね」数 --- */
.dy-card__likes {
	display: inline-flex;
	align-items: center;
	gap: 3px;
	margin-left: 10px;
	font-size: 11px;
	color: #c0575f;
	letter-spacing: .04em;
}

/* --- 記事詳細の「よかったね」ボタン --- */
.dy-like { text-align: center; margin: clamp(30px, 4.6vw, 46px) 0 clamp(10px, 2vw, 16px); }
.dy-like__btn {
	-webkit-appearance: none;
	appearance: none;
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	gap: 10px;
	padding: 13px 30px;
	border-radius: 999px;
	background: #fff;
	border: 1.5px solid rgba(192, 87, 95, .55);
	color: #7a5a48;
	font-size: 14.5px;
	letter-spacing: .12em;
	box-shadow: 0 6px 18px rgba(60, 42, 20, .1);
	transition: transform .3s cubic-bezier(.22, .6, .2, 1), box-shadow .3s ease, background .3s ease, border-color .3s ease;
}
.dy-like__btn:hover { transform: translateY(-2px); box-shadow: 0 10px 24px rgba(60, 42, 20, .14); }
.dy-like__heart { color: #c0575f; font-size: 18px; line-height: 1; }
.dy-like__count { min-width: 1em; color: #c0575f; font-weight: 600; font-size: 15px; }
.dy-like__btn.is-busy { opacity: .6; pointer-events: none; }
.dy-like__btn.is-done {
	background: linear-gradient(145deg, #fdeef0, #fbe3e6);
	border-color: rgba(192, 87, 95, .75);
	cursor: default;
}
.dy-like__btn.is-done .dy-like__heart { animation: dyHeartPop .55s cubic-bezier(.22, .6, .2, 1); }
.dy-like__btn.is-done:hover { transform: none; box-shadow: 0 6px 18px rgba(60, 42, 20, .1); }
.dy-like__note { margin: 10px 0 0; font-size: 11.5px; color: #a08f74; letter-spacing: .08em; }
@keyframes dyHeartPop {
	0% { transform: scale(1); }
	45% { transform: scale(1.55); }
	100% { transform: scale(1); }
}
@media (prefers-reduced-motion: reduce) {
	.dy-rank__card, .dy-rank__thumb img, .dy-like__btn { transition: none; }
	.dy-like__btn.is-done .dy-like__heart { animation: none; }
}

/* ===== スタッフルーム（/diary-post/ 園別・簡易ログイン） ===== */

/* --- 入室画面 --- */
.dy-gate {
	position: relative;
	max-width: 560px;
	margin: clamp(10px, 2vw, 20px) auto clamp(30px, 5vw, 46px);
	padding: clamp(30px, 5vw, 46px) clamp(20px, 4vw, 40px) clamp(28px, 4.6vw, 42px);
	background:
		radial-gradient(circle at 50% 0%, rgba(180, 0, 0, .04), transparent 46%),
		#fffdf6;
	border: 1px solid rgba(201, 162, 39, .55);
	border-radius: 4px;
	box-shadow: 0 16px 40px rgba(60, 42, 20, .1);
	text-align: center;
}
.dy-gate::before {
	content: "";
	position: absolute;
	inset: 7px;
	border: 1px solid rgba(201, 162, 39, .3);
	border-radius: 2px;
	pointer-events: none;
}
.dy-gate__kicker { margin: 0 0 10px; font-size: 10px; letter-spacing: .38em; color: #b08d1e; font-weight: 600; }
.dy-gate__title { margin: 0; font-size: clamp(22px, 4vw, 27px); color: #3d2f24; letter-spacing: .3em; text-indent: .3em; font-weight: 700; }
.dy-gate__rule { display: block; margin: 12px auto 0; color: #c9a227; font-size: 12px; }
.dy-gate__rule::before,
.dy-gate__rule::after {
	content: "";
	display: inline-block;
	vertical-align: middle;
	width: clamp(40px, 9vw, 72px);
	height: 1px;
	background: linear-gradient(90deg, transparent, rgba(201, 162, 39, .65));
	margin: 0 10px;
}
.dy-gate__rule::after { background: linear-gradient(90deg, rgba(201, 162, 39, .65), transparent); }
.dy-gate__lead { margin: 14px 0 22px; font-size: 13px; color: #7a6a50; letter-spacing: .06em; line-height: 2; }
.dy-gate__lead small { font-size: 11px; color: #a08f74; }
.dy-gate__facs { position: relative; display: flex; flex-direction: column; gap: 10px; margin: 0 0 18px; }
.dy-gate__fac {
	-webkit-appearance: none;
	appearance: none;
	cursor: pointer;
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 2px;
	padding: 12px 46px 11px 18px;
	background: #fff;
	border: 1px solid rgba(120, 96, 56, .2);
	border-left: 4px solid var(--fac-c, #b40000);
	border-radius: 3px;
	text-align: left;
	transition: border-color .25s ease, box-shadow .25s ease, background .25s ease;
}
.dy-gate__fac em { font-style: normal; font-size: 9px; letter-spacing: .26em; color: var(--fac-c, #b40000); font-weight: 600; }
.dy-gate__fac strong { font-size: 13.5px; color: #3d2f24; letter-spacing: .05em; }
.dy-gate__check {
	position: absolute;
	top: 50%;
	right: 14px;
	translate: 0 -50%;
	width: 22px;
	height: 22px;
	border-radius: 50%;
	border: 1.5px solid rgba(120, 96, 56, .3);
	color: transparent;
	font-size: 12px;
	line-height: 19px;
	transition: all .25s ease;
}
.dy-gate__fac.is-selected {
	border-color: var(--fac-c, #b40000);
	background: color-mix(in srgb, var(--fac-c, #b40000) 5%, #fff);
	box-shadow: 0 6px 16px rgba(60, 42, 20, .1);
}
.dy-gate__fac.is-selected .dy-gate__check {
	background: var(--fac-c, #b40000);
	border-color: var(--fac-c, #b40000);
	color: #fff;
}
.dy-gate__pass {
	width: 100%;
	padding: 12px 16px;
	font-size: 16px;
	color: #3d2f24;
	background: #fff;
	border: 1px solid rgba(120, 96, 56, .28);
	border-radius: 3px;
	letter-spacing: .1em;
	text-align: center;
}
.dy-gate__pass:focus { outline: none; border-color: rgba(180, 0, 0, .5); box-shadow: 0 0 0 3px rgba(180, 0, 0, .07); }
.dy-gate__err { margin: 12px 0 0; font-size: 12px; color: #b40000; letter-spacing: .05em; }
.dy-gate__enter {
	-webkit-appearance: none;
	appearance: none;
	cursor: pointer;
	display: block;
	width: 100%;
	margin: 16px 0 0;
	padding: 14px 20px;
	font-size: 14px;
	letter-spacing: .3em;
	text-indent: .3em;
	color: #fff;
	background: linear-gradient(145deg, #c01023, #8f0a1a);
	border: none;
	border-radius: 999px;
	box-shadow: 0 10px 24px rgba(143, 10, 26, .3);
	transition: transform .25s ease, box-shadow .25s ease, opacity .25s ease;
}
.dy-gate__enter:hover { transform: translateY(-2px); box-shadow: 0 14px 30px rgba(143, 10, 26, .36); }
.dy-gate__enter:disabled { opacity: .55; pointer-events: none; }

/* --- 園別スタッフルーム --- */
.dy-staff { display: flex; flex-direction: column; gap: clamp(14px, 2.6vw, 20px); margin: 0 0 clamp(30px, 5vw, 46px); }
.dy-staff[hidden] { display: none; }

/* 園色の帯 */
.dy-staff__band {
	position: relative;
	overflow: hidden;
	padding: clamp(26px, 4.6vw, 40px) clamp(20px, 4vw, 36px) clamp(24px, 4vw, 34px);
	background: var(--fac-c, #b40000);
	background: linear-gradient(135deg, color-mix(in srgb, var(--fac-c, #b40000) 82%, #1c1410), color-mix(in srgb, var(--fac-c, #b40000) 96%, #fff) 60%, color-mix(in srgb, var(--fac-c, #b40000) 78%, #1c1410));
	border-radius: 4px;
	box-shadow: 0 16px 36px rgba(40, 26, 12, .22);
	text-align: center;
}
.dy-staff__band::before {
	content: "";
	position: absolute;
	inset: 7px;
	border: 1px solid rgba(255, 253, 246, .35);
	border-radius: 2px;
	pointer-events: none;
}
.dy-staff__band::after {
	content: "";
	position: absolute;
	inset: 0 0 auto;
	height: 3px;
	background: linear-gradient(90deg, transparent, rgba(232, 199, 102, .9), transparent);
}
.dy-staff__ghost {
	position: absolute;
	right: 4px;
	bottom: -12px;
	font-size: clamp(44px, 11vw, 84px);
	font-weight: 700;
	letter-spacing: .08em;
	color: rgba(255, 253, 246, .1);
	pointer-events: none;
	white-space: nowrap;
}
.dy-staff__kicker { margin: 0 0 10px; font-size: 9.5px; letter-spacing: .38em; color: rgba(255, 253, 246, .8); font-weight: 600; }
.dy-staff__name { margin: 0; font-size: clamp(18px, 3.6vw, 24px); color: #fffdf6; letter-spacing: .1em; font-weight: 700; text-shadow: 0 1px 6px rgba(0, 0, 0, .18); }
.dy-staff__sub {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 12px;
	margin: 8px 0 0;
	font-size: 11px;
	letter-spacing: .3em;
	text-indent: .3em;
	color: #f3dfa0;
}
.dy-staff__sub span { font-size: 9px; text-indent: 0; }
.dy-staff__switch {
	-webkit-appearance: none;
	appearance: none;
	cursor: pointer;
	position: absolute;
	top: 12px;
	right: 12px;
	z-index: 2;
	padding: 6px 12px;
	font-size: 10px;
	letter-spacing: .08em;
	color: rgba(255, 253, 246, .85);
	background: rgba(0, 0, 0, .14);
	border: 1px solid rgba(255, 253, 246, .4);
	border-radius: 999px;
	transition: background .25s ease;
}
.dy-staff__switch:hover { background: rgba(0, 0, 0, .26); }

/* 統計タイル */
.dy-staff__stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(10px, 2vw, 16px); }
.dy-staff__stat {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 4px;
	padding: 18px 8px 14px;
	background: #fffdf6;
	border: 1px solid rgba(120, 96, 56, .16);
	border-top: 3px solid var(--fac-c, #b40000);
	border-radius: 3px;
	box-shadow: 0 8px 20px rgba(60, 42, 20, .07);
	text-align: center;
}
.dy-staff__stat b { font-size: clamp(25px, 5.6vw, 32px); line-height: 1.1; color: #3d2f24; font-weight: 700; }
.dy-staff__stat--heart b { color: #a3313c; }
.dy-staff__stat span { font-size: 10.5px; line-height: 1.5; color: #96856a; letter-spacing: .06em; }

/* カード共通 */
.dy-staff__card {
	position: relative;
	padding: clamp(20px, 3.4vw, 28px) clamp(16px, 3vw, 26px) clamp(18px, 3vw, 24px);
	background: #fffdf6;
	border: 1px solid rgba(120, 96, 56, .16);
	border-radius: 3px;
	box-shadow: 0 8px 20px rgba(60, 42, 20, .07);
}
.dy-staff__h {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 4px;
	margin: 0 0 16px;
	text-align: center;
}
.dy-staff__h small { font-size: 9.5px; letter-spacing: .34em; color: #b08d1e; font-weight: 600; }
.dy-staff__h span { font-size: 16px; color: #3d2f24; letter-spacing: .14em; font-weight: 700; }
.dy-staff__h::after { content: ""; width: 34px; height: 1px; margin-top: 7px; background: rgba(201, 162, 39, .6); }

/* 今月のあゆみ（首位との差だけを見せる） */
.dy-staff__chase { padding: 4px 2px 14px; }
.dy-staff__chase + .dy-staff__chase { border-top: 1px dashed rgba(120, 96, 56, .2); padding-top: 14px; }
.dy-staff__chase-head {
	display: flex;
	align-items: center;
	gap: 7px;
	margin: 0 0 8px;
	font-size: 12px;
	color: #5a4a34;
	letter-spacing: .1em;
	font-weight: 700;
}
.dy-staff__chase-head i { font-style: normal; font-size: 13px; }
.dy-staff__chase--heart .dy-staff__chase-head i { color: #a3313c; }
.dy-staff__chase-track {
	display: block;
	height: 10px;
	border-radius: 999px;
	background: #f1e8d6;
	overflow: hidden;
	box-shadow: inset 0 1px 2px rgba(60, 42, 20, .08);
}
.dy-staff__chase-fill {
	display: block;
	height: 100%;
	min-width: 8px;
	border-radius: 999px;
	background: var(--fac-c, #b40000);
	background: linear-gradient(90deg, color-mix(in srgb, var(--fac-c, #b40000) 70%, #fff), var(--fac-c, #b40000));
	transform-origin: left center;
	animation: dyStaffGrow 1s cubic-bezier(.22, .6, .2, 1) backwards;
}
.dy-staff__chase.is-top .dy-staff__chase-fill { background: linear-gradient(90deg, #e8c766, #b8901f); }
@keyframes dyStaffGrow {
	from { transform: scaleX(0); }
	to { transform: scaleX(1); }
}
.dy-staff__chase-note {
	display: flex;
	align-items: baseline;
	flex-wrap: wrap;
	gap: 6px;
	margin: 8px 0 0;
	font-size: 11.5px;
	color: #96856a;
	letter-spacing: .04em;
}
.dy-staff__chase-note b { font-size: 15px; color: #3d2f24; }
.dy-staff__chase-note em { font-style: normal; color: #a3313c; font-weight: 700; }
.dy-staff__chase-note .dy-staff__chase-top { color: #b8901f; letter-spacing: .12em; }
.dy-staff__record-note { margin: 10px 0 0; font-size: 10px; color: #b3a58c; text-align: center; letter-spacing: .1em; }
.dy-staff__empty { margin: 2px 0 4px; font-size: 13px; color: #96856a; text-align: center; line-height: 2; letter-spacing: .05em; }

/* 読まれている記事リスト */
.dy-staff__list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; }
.dy-staff__list li + li { border-top: 1px dashed rgba(120, 96, 56, .2); }
.dy-staff__bestrow {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 12px 2px;
	text-decoration: none;
}
.dy-staff__bestnum {
	flex: none;
	width: 26px;
	height: 26px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 12.5px;
	font-weight: 700;
	color: #fffdf6;
	background: var(--fac-c, #8a7a60);
	border: 1.5px solid #fffdf6;
	box-shadow: 0 2px 6px rgba(60, 42, 20, .2);
}
.dy-staff__bestnum--m1 { background: linear-gradient(145deg, #e8c766, #b8901f); }
.dy-staff__bestnum--m2 { background: linear-gradient(145deg, #d4d6da, #9aa0aa); }
.dy-staff__bestnum--m3 { background: linear-gradient(145deg, #d9a37c, #a5683c); }
.dy-staff__bestbody { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.dy-staff__bestbody strong {
	font-size: 13px;
	color: #3d2f24;
	line-height: 1.55;
	letter-spacing: .03em;
	display: -webkit-box;
	-webkit-line-clamp: 1;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
.dy-staff__bestbody small { display: flex; align-items: center; gap: 5px; font-size: 10.5px; color: #96856a; letter-spacing: .05em; }
.dy-staff__bestbody small i { width: 7px; height: 7px; border-radius: 50%; background: var(--dot-c, #b40000); flex: none; }
.dy-staff__bestlikes { margin-left: auto; flex: none; font-size: 12px; color: #a3313c; font-weight: 700; }

/* 結び */
.dy-staff__cheer {
	margin: 2px 0 0;
	font-size: 12px;
	color: #96856a;
	text-align: center;
	letter-spacing: .12em;
	line-height: 2.1;
}
.dy-staff__cheer-br { display: none; }

@media (max-width: 480px) {
	.dy-staff__band { padding-top: 48px; }
	.dy-staff__stats { gap: 8px; }
	.dy-staff__stat { padding: 14px 6px 11px; }
	.dy-staff__stat span { font-size: 9.5px; }
	.dy-staff__cheer-br { display: block; }
}
@media (prefers-reduced-motion: reduce) {
	.dy-staff__chase-fill { animation: none; }
	.dy-gate__enter, .dy-gate__fac { transition: none; }
}

/* ===== 読まれる記事のつくりかた（dy-guide） ===== */
.dy-guide {
	margin: 0 0 clamp(18px, 3vw, 26px);
	background: #fffdf6;
	border: 1px solid rgba(201, 162, 39, .45);
	border-radius: 4px;
	box-shadow: 0 10px 26px rgba(60, 42, 20, .08);
	overflow: hidden;
}
.dy-guide__head {
	position: relative;
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 15px 44px 15px 16px;
	cursor: pointer;
	list-style: none;
	user-select: none;
}
.dy-guide__head::-webkit-details-marker { display: none; }
.dy-guide__badge {
	flex: none;
	width: 34px;
	height: 34px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 15px;
	color: #fffdf6;
	background: linear-gradient(145deg, #c01023, #8f0a1a);
	box-shadow: 0 4px 10px rgba(143, 10, 26, .28);
}
.dy-guide__ttl { display: flex; flex-direction: column; gap: 2px; }
.dy-guide__ttl small { font-size: 9px; letter-spacing: .3em; color: #b08d1e; font-weight: 600; }
.dy-guide__ttl b { font-size: 14px; color: #3d2f24; letter-spacing: .08em; }
.dy-guide__caret {
	position: absolute;
	top: 50%;
	right: 16px;
	width: 9px;
	height: 9px;
	border-right: 1.5px solid #b08d1e;
	border-bottom: 1.5px solid #b08d1e;
	transform: translateY(-70%) rotate(45deg);
	transition: transform .3s ease;
}
.dy-guide[open] .dy-guide__caret { transform: translateY(-30%) rotate(-135deg); }
.dy-guide__body {
	padding: 4px 16px 20px;
	border-top: 1px dashed rgba(120, 96, 56, .22);
}
.dy-guide__intro { margin: 14px 0 14px; font-size: 12.5px; color: #6a5a44; line-height: 2; letter-spacing: .03em; }
.dy-guide__intro b { color: #3d2f24; }

.dy-guide__routes { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.dy-guide__route {
	position: relative;
	padding: 14px 13px 12px;
	background: #fff;
	border: 1px solid rgba(120, 96, 56, .18);
	border-top: 3px solid var(--route-c, #b40000);
	border-radius: 3px;
	box-shadow: 0 6px 16px rgba(60, 42, 20, .06);
}
.dy-guide__route--local    { --route-c: #b40000; }
.dy-guide__route--national { --route-c: #b8901f; }
.dy-guide__route-tag {
	display: flex;
	align-items: baseline;
	gap: 7px;
	margin: 0 0 8px;
}
.dy-guide__route-tag small { font-size: 9px; letter-spacing: .26em; color: var(--route-c); font-weight: 700; }
.dy-guide__route-tag span { font-size: 11px; color: #96856a; letter-spacing: .08em; }
.dy-guide__route-who { margin: 0 0 8px; font-size: 13px; font-weight: 700; color: #3d2f24; line-height: 1.7; letter-spacing: .03em; }
.dy-guide__route-how { margin: 0 0 10px; font-size: 11.5px; color: #6a5a44; line-height: 1.95; letter-spacing: .02em; }
.dy-guide__route-how b { color: var(--route-c); }
.dy-guide__route-ex {
	margin: 0;
	padding: 7px 10px;
	font-size: 10.5px;
	color: #96856a;
	background: #faf6ea;
	border-left: 2px solid rgba(201, 162, 39, .55);
	border-radius: 0 2px 2px 0;
	line-height: 1.7;
}

.dy-guide__points { list-style: none; margin: 14px 0 0; padding: 0; counter-reset: dyguide; }
.dy-guide__points li {
	position: relative;
	counter-increment: dyguide;
	padding: 12px 2px 12px 40px;
	display: flex;
	flex-direction: column;
	gap: 4px;
}
.dy-guide__points li + li { border-top: 1px dashed rgba(120, 96, 56, .2); }
.dy-guide__points li::before {
	content: counter(dyguide);
	position: absolute;
	top: 13px;
	left: 4px;
	width: 24px;
	height: 24px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 12px;
	font-weight: 700;
	color: #b08d1e;
	border: 1.5px solid rgba(201, 162, 39, .6);
	background: #fff;
}
.dy-guide__points b { font-size: 12.5px; color: #3d2f24; letter-spacing: .03em; line-height: 1.7; }
.dy-guide__points span { font-size: 11.5px; color: #7a6a50; line-height: 1.95; letter-spacing: .02em; }
.dy-guide__note {
	margin: 12px 0 0;
	padding: 10px 12px;
	font-size: 11.5px;
	color: #6a5636;
	text-align: center;
	letter-spacing: .06em;
	background: linear-gradient(145deg, #fdf3e3, #fbeccf);
	border: 1px solid rgba(201, 162, 39, .45);
	border-radius: 3px;
	line-height: 1.9;
}
@media (max-width: 560px) {
	.dy-guide__routes { grid-template-columns: 1fr; }
}

/* ===== 投稿直前の確認モーダル（dy-check） ===== */
.dy-check {
	position: fixed;
	inset: 0;
	z-index: 220;
	display: none;
	align-items: center;
	justify-content: center;
	padding: 18px;
	background: rgba(28, 20, 12, .55);
	backdrop-filter: blur(3px);
}
.dy-check.is-open { display: flex; }
.dy-check__panel {
	position: relative;
	width: min(430px, 100%);
	max-height: 88vh;
	overflow-y: auto;
	padding: 26px 20px 20px;
	background: #fffdf6;
	border: 1px solid rgba(201, 162, 39, .6);
	border-radius: 4px;
	box-shadow: 0 24px 60px rgba(0, 0, 0, .3);
	text-align: center;
}
.dy-check__kicker { margin: 0 0 8px; font-size: 9.5px; letter-spacing: .36em; color: #b40000; font-weight: 700; }
.dy-check__title { margin: 0 0 6px; font-size: 17px; color: #3d2f24; letter-spacing: .16em; font-weight: 700; }
.dy-check__lead { margin: 0 0 16px; font-size: 12px; color: #7a6a50; letter-spacing: .04em; line-height: 1.9; }
.dy-check__lead b { color: #b40000; }
.dy-check__item {
	display: flex;
	align-items: flex-start;
	gap: 11px;
	padding: 13px 12px;
	margin: 0 0 10px;
	background: #fff;
	border: 1px solid rgba(120, 96, 56, .22);
	border-radius: 3px;
	text-align: left;
	cursor: pointer;
	transition: border-color .25s ease, background .25s ease;
}
.dy-check__item input { position: absolute; opacity: 0; pointer-events: none; }
.dy-check__box {
	flex: none;
	width: 22px;
	height: 22px;
	margin-top: 1px;
	border-radius: 4px;
	border: 1.5px solid rgba(120, 96, 56, .4);
	background: #fff;
	position: relative;
	transition: all .2s ease;
}
.dy-check__box::after {
	content: "";
	position: absolute;
	top: 3px;
	left: 7px;
	width: 6px;
	height: 11px;
	border-right: 2px solid #fff;
	border-bottom: 2px solid #fff;
	transform: rotate(40deg);
	opacity: 0;
}
.dy-check__item:has(input:checked),
.dy-check__item.is-checked {
	border-color: rgba(143, 10, 26, .5);
	background: #fdf5f0;
}
.dy-check__item:has(input:checked) .dy-check__box,
.dy-check__item.is-checked .dy-check__box {
	background: linear-gradient(145deg, #c01023, #8f0a1a);
	border-color: #8f0a1a;
}
.dy-check__item:has(input:checked) .dy-check__box::after,
.dy-check__item.is-checked .dy-check__box::after { opacity: 1; }
.dy-check__text { display: flex; flex-direction: column; gap: 3px; font-size: 12.5px; color: #3d2f24; line-height: 1.75; letter-spacing: .02em; }
.dy-check__text b { color: #8f0a1a; }
.dy-check__text small { font-size: 10.5px; color: #96856a; line-height: 1.7; }
.dy-check__actions { display: flex; gap: 10px; margin-top: 14px; }
.dy-check__actions .dy-post__btn { flex: 1.3; padding-left: 10px; padding-right: 10px; font-size: 13px; letter-spacing: .06em; white-space: nowrap; }
.dy-check__actions .dy-post__btn--ghost { flex: .7; }
.dy-check__actions .dy-post__btn:disabled { opacity: .45; pointer-events: none; }

/* ===== ガイド必読モード＋絵文字装飾＋年齢チップ ===== */

/* ガイド初回必読モード */
.dy-guide__ribbon {
	display: none;
	margin: 14px 0 0;
	padding: 11px 12px;
	font-size: 12.5px;
	color: #8f0a1a;
	background: linear-gradient(145deg, #fdf0f0, #fbe7e7);
	border: 1px solid rgba(143, 10, 26, .3);
	border-radius: 3px;
	text-align: center;
	letter-spacing: .05em;
	line-height: 1.9;
}
.dy-guide.is-first .dy-guide__ribbon { display: block; }
.dy-guide.is-first {
	box-shadow: 0 0 0 3px rgba(201, 162, 39, .3), 0 10px 26px rgba(60, 42, 20, .08);
}
.dy-guide.is-first .dy-guide__head { pointer-events: none; }
.dy-guide.is-first .dy-guide__caret { display: none; }
.dy-guide__donewrap { display: none; margin: 16px 0 0; text-align: center; }
.dy-guide.is-first .dy-guide__donewrap { display: block; }
.dy-guide__done { min-width: 230px; }
#dy-staffwrap.is-guide-first .dy-post__form,
#dy-staffwrap.is-guide-first .dy-post__error { display: none; }

/* 入室画面の絵文字 */
.dy-gate__emoji { display: flex; justify-content: center; gap: 20px; margin: 14px 0 0; }
.dy-gate__emoji i { font-style: normal; font-size: 16px; opacity: .85; animation: dyStaffFloat 3.6s ease-in-out infinite; }
.dy-gate__emoji i:nth-child(2n) { animation-delay: -1.2s; }
.dy-gate__emoji i:nth-child(3n) { animation-delay: -2.4s; }
@keyframes dyStaffFloat {
	0%, 100% { transform: translateY(0); }
	50% { transform: translateY(-5px); }
}

/* 園色バンドの絵文字（左下にそっと） */
.dy-staff__deco {
	position: absolute;
	left: 16px;
	bottom: 12px;
	display: flex;
	gap: 12px;
	pointer-events: none;
}
.dy-staff__deco i { font-style: normal; font-size: 14px; opacity: .8; animation: dyStaffFloat 3.8s ease-in-out infinite; }
.dy-staff__deco i:nth-child(2) { animation-delay: -1.3s; }
.dy-staff__deco i:nth-child(3) { animation-delay: -2.6s; }

/* 統計タイルの絵文字 */
.dy-staff__stat-emoji { font-style: normal; font-size: 16px; line-height: 1; }

/* 年齢の自動チップ（組を選ぶと現れる） */
.dy-hint__kw--age {
	background: linear-gradient(145deg, #fdf3e3, #fbeccf) !important;
	border-color: rgba(201, 162, 39, .7) !important;
	color: #8a6a16 !important;
	font-weight: 700;
}
@media (prefers-reduced-motion: reduce) {
	.dy-gate__emoji i, .dy-staff__deco i { animation: none; }
}

/* ===== クラスQRカード（スタッフルーム発・印刷対応） ===== */

/* 作成ボタン群 */
.dy-staff__qrlead { margin: 0 0 12px; font-size: 11.5px; color: #7a6a50; text-align: center; line-height: 1.9; letter-spacing: .03em; }
.dy-staff__qrbtns { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.dy-staff__qrbtn {
	-webkit-appearance: none;
	appearance: none;
	cursor: pointer;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 2px;
	padding: 11px 4px 9px;
	background: #fff;
	border: 1px solid rgba(120, 96, 56, .2);
	border-top: 3px solid var(--kumi-c, #b40000);
	border-radius: 3px;
	transition: transform .25s ease, box-shadow .25s ease;
}
.dy-staff__qrbtn:hover { transform: translateY(-2px); box-shadow: 0 8px 18px rgba(60, 42, 20, .12); }
.dy-staff__qrbtn i { font-style: normal; font-size: 19px; line-height: 1; }
.dy-staff__qrbtn strong { font-size: 12px; color: #3d2f24; letter-spacing: .04em; }
.dy-staff__qrbtn small { font-size: 9.5px; color: #96856a; letter-spacing: .05em; }

/* モーダル */
.dy-qr {
	position: fixed;
	inset: 0;
	z-index: 230;
	display: none;
	align-items: flex-start;
	justify-content: center;
	padding: 18px;
	background: rgba(28, 20, 12, .6);
	backdrop-filter: blur(3px);
	overflow-y: auto;
}
.dy-qr.is-open { display: flex; }
.dy-qr__panel { width: min(400px, 100%); margin: auto 0; }

/* カード本体（この見た目のまま印刷される） */
.dy-qr__sheet {
	position: relative;
	overflow: hidden;
	padding: 0 18px 58px;
	background-color: #fffdf6;
	background-image:
		radial-gradient(color-mix(in srgb, var(--kumi-c, #e0a81c) 15%, #fffdf6) 3.5px, transparent 4.5px),
		radial-gradient(color-mix(in srgb, var(--kumi-c, #e0a81c) 10%, #fffdf6) 3px, transparent 4px);
	background-size: 52px 52px;
	background-position: 0 0, 26px 26px;
	border: 2px solid var(--kumi-c, #b40000);
	border-radius: 8px;
	box-shadow: 0 20px 50px rgba(0, 0, 0, .3);
	text-align: center;
	print-color-adjust: exact;
	-webkit-print-color-adjust: exact;
}
.dy-qr__band {
	margin: 0 -18px 18px;
	padding: 16px 14px 14px;
	background: var(--fac-c, #b40000);
	background: linear-gradient(135deg, color-mix(in srgb, var(--fac-c, #b40000) 84%, #1c1410), var(--fac-c, #b40000) 55%, color-mix(in srgb, var(--fac-c, #b40000) 80%, #1c1410));
	print-color-adjust: exact;
	-webkit-print-color-adjust: exact;
}
.dy-qr__kicker { margin: 0 0 6px; font-size: 9px; letter-spacing: .36em; color: rgba(255, 253, 246, .85); font-weight: 600; }
.dy-qr__fac { margin: 0; font-size: 14px; color: #fffdf6; letter-spacing: .1em; font-weight: 700; }
.dy-qr__classrow {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 16px;
	margin: 0 0 10px;
}
.dy-qr__emoji {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 46px;
	height: 46px;
	font-size: 24px;
	background: #fff;
	border: 2px solid var(--kumi-c, #b40000);
	border-radius: 50%;
	box-shadow: 0 4px 10px rgba(60, 42, 20, .14);
}
.dy-qr__kumi { display: flex; flex-direction: column; gap: 2px; }
.dy-qr__kumi b { font-size: 30px; line-height: 1.2; color: var(--kumi-c, #b40000); letter-spacing: .08em; font-weight: 700; }
.dy-qr__kumi small { font-size: 12px; color: #6a5a44; letter-spacing: .16em; }
.dy-qr__copy { margin: 0 0 14px; font-size: 13px; color: #3d2f24; letter-spacing: .05em; line-height: 1.9; }
.dy-qr__copy b { color: var(--kumi-c, #b40000); }
.dy-qr__codewrap {
	position: relative;
	width: 208px;
	margin: 0 auto 14px;
	padding: 16px;
	background: #fff;
	border: 2px solid var(--kumi-c, #b40000);
	border-radius: 10px;
	box-shadow: 0 8px 20px rgba(60, 42, 20, .12);
}
.dy-qr__tape {
	position: absolute;
	width: 64px;
	height: 18px;
	background: color-mix(in srgb, var(--kumi-c, #b40000) 38%, #fff);
	opacity: .9;
	print-color-adjust: exact;
	-webkit-print-color-adjust: exact;
}
.dy-qr__tape--a { top: -9px; left: -18px; transform: rotate(-8deg); }
.dy-qr__tape--b { bottom: -9px; right: -18px; transform: rotate(-8deg); }
.dy-qr__code svg { display: block; width: 100%; height: auto; }
.dy-qr__hint { margin: 0 0 6px; font-size: 11.5px; color: #5a4a34; letter-spacing: .06em; }
.dy-qr__url { margin: 0; font-size: 8.5px; color: #a08f74; letter-spacing: .02em; word-break: break-all; line-height: 1.6; }
.dy-qr__scallop {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 30px;
	height: 14px;
	background: radial-gradient(circle at 12px -3px, transparent 11px, color-mix(in srgb, var(--kumi-c, #b40000) 26%, #fff) 12px);
	background-size: 26px 16px;
	print-color-adjust: exact;
	-webkit-print-color-adjust: exact;
}
.dy-qr__brand {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	margin: 0;
	padding: 8px 10px;
	font-size: 10px;
	letter-spacing: .26em;
	text-indent: .26em;
	color: #fffdf6;
	background: var(--fac-c, #b40000);
	print-color-adjust: exact;
	-webkit-print-color-adjust: exact;
}
.dy-qr__actions { display: flex; gap: 10px; margin-top: 14px; }
.dy-qr__actions .dy-post__btn { flex: 1; white-space: nowrap; }

/* 印刷: カードだけを1枚に（モーダルはJSでbody直下に移動済み） */
@media print {
	body.dy-qr-mode > :not(#dy-qr) { display: none !important; }
	body.dy-qr-mode #dy-qr {
		position: static;
		display: block;
		padding: 0;
		background: none;
		backdrop-filter: none;
		-webkit-backdrop-filter: none;
		overflow: visible;
	}
	body.dy-qr-mode .dy-qr__panel { width: 128mm; margin: 0 auto; }
	body.dy-qr-mode .dy-qr__sheet { box-shadow: none; }
	body.dy-qr-mode .dy-qr__actions { display: none; }
}

/* ===== QRカード: 切り取り式ミニカード＋A4を使い切る印刷レイアウト ===== */

/* 切り取り線 */
.dy-qr__cutline {
	position: relative;
	display: flex;
	align-items: center;
	margin: 16px 0 10px;
	color: color-mix(in srgb, var(--kumi-c, #b40000) 70%, #8a7a60);
}
.dy-qr__cutline::before,
.dy-qr__cutline::after {
	content: "";
	flex: 1;
	border-top: 1.5px dashed currentColor;
	opacity: .55;
}
.dy-qr__cutline i { font-style: normal; font-size: 15px; padding: 0 8px; }
.dy-qr__minis-lead {
	margin: 0 0 8px;
	font-size: 10.5px;
	color: #96856a;
	text-align: center;
	letter-spacing: .1em;
}

/* ミニカード2枚 */
.dy-qr__minis { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.dy-qr__mini {
	display: flex;
	align-items: center;
	gap: 9px;
	padding: 9px 10px;
	background-color: #fffdf6;
	background-image: radial-gradient(color-mix(in srgb, var(--kumi-c, #e0a81c) 12%, #fffdf6) 2.5px, transparent 3.5px);
	background-size: 30px 30px;
	border: 1.5px solid var(--kumi-c, #b40000);
	border-radius: 6px;
	print-color-adjust: exact;
	-webkit-print-color-adjust: exact;
}
.dy-qr__mini-code {
	flex: none;
	width: 62px;
	padding: 4px;
	background: #fff;
	border-radius: 3px;
	border: 1px solid color-mix(in srgb, var(--kumi-c, #b40000) 40%, #fff);
}
.dy-qr__mini-code svg { display: block; width: 100%; height: auto; }
.dy-qr__mini-txt { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.dy-qr__mini-txt b { font-size: 12px; color: var(--kumi-c, #b40000); letter-spacing: .04em; line-height: 1.4; }
.dy-qr__mini-txt small { font-size: 8.5px; color: #6a5a44; letter-spacing: .02em; line-height: 1.4; }
.dy-qr__mini-txt em { font-style: normal; font-size: 8.5px; color: #96856a; line-height: 1.5; margin-top: 2px; }

/* 画面表示ではミニカードは控えめに */
@media screen and (max-width: 420px) {
	.dy-qr__minis { grid-template-columns: 1fr; }
}

/* 印刷: A4縦を使い切る（メインカードを拡大 + 下部にミニカード） */
@media print {
	@page { size: A4 portrait; margin: 10mm; }
	body.dy-qr-mode .dy-qr__panel { width: 100%; max-width: 165mm; margin: 0 auto; }
	body.dy-qr-mode .dy-qr__print { width: 100%; }

	/* メインカードを大きく */
	body.dy-qr-mode .dy-qr__sheet { padding: 0 20mm 20mm; border-width: 3px; }
	body.dy-qr-mode .dy-qr__band { margin: 0 -20mm 8mm; padding: 8mm 8mm 7mm; }
	body.dy-qr-mode .dy-qr__kicker { font-size: 11pt; letter-spacing: .4em; }
	body.dy-qr-mode .dy-qr__fac { font-size: 19pt; }
	body.dy-qr-mode .dy-qr__classrow { gap: 8mm; margin-bottom: 5mm; }
	body.dy-qr-mode .dy-qr__emoji { width: 18mm; height: 18mm; font-size: 26pt; border-width: 3px; }
	body.dy-qr-mode .dy-qr__kumi b { font-size: 34pt; }
	body.dy-qr-mode .dy-qr__kumi small { font-size: 13pt; }
	body.dy-qr-mode .dy-qr__copy { font-size: 14pt; margin-bottom: 6mm; }
	body.dy-qr-mode .dy-qr__codewrap { width: 82mm; padding: 6mm; border-width: 3px; margin-bottom: 5mm; }
	body.dy-qr-mode .dy-qr__tape { width: 26mm; height: 7mm; }
	body.dy-qr-mode .dy-qr__hint { font-size: 12pt; margin-bottom: 2mm; }
	body.dy-qr-mode .dy-qr__url { font-size: 7pt; }
	body.dy-qr-mode .dy-qr__scallop { bottom: 11mm; height: 5mm; }
	body.dy-qr-mode .dy-qr__brand { padding: 3.5mm; font-size: 11pt; }

	/* 切り取りセクション */
	body.dy-qr-mode .dy-qr__cutline { margin: 7mm 0 4mm; }
	body.dy-qr-mode .dy-qr__cutline i { font-size: 12pt; }
	body.dy-qr-mode .dy-qr__minis-lead { font-size: 9pt; margin-bottom: 3mm; }
	body.dy-qr-mode .dy-qr__minis { grid-template-columns: 1fr 1fr; gap: 5mm; }
	body.dy-qr-mode .dy-qr__mini { padding: 3.5mm; gap: 3mm; border-width: 2px; }
	body.dy-qr-mode .dy-qr__mini-code { width: 23mm; }
	body.dy-qr-mode .dy-qr__mini-txt b { font-size: 11.5pt; }
	body.dy-qr-mode .dy-qr__mini-txt small { font-size: 7pt; letter-spacing: -.01em; }
	body.dy-qr-mode .dy-qr__mini-txt em { font-size: 7.5pt; }
}

/* 本文の文字数ガイド（重複コンテンツ対策：短すぎる記事を防ぐ） */
.dy-post__bodyhint {
	margin: 8px 0 0;
	padding: 9px 11px;
	font-size: 11.5px;
	line-height: 1.85;
	color: #7a6a50;
	background: #fdf8ec;
	border-left: 2px solid rgba(201, 162, 39, .6);
	border-radius: 0 2px 2px 0;
	letter-spacing: .02em;
}
.dy-post__bodyhint b { color: #8f0a1a; }
.dy-post__count.is-ok { color: #2f7d4f; }
