/* ===== SINGLE PAGE ===== */


/* ===== POST BOTTOM BANNER（記事下部バナー） ===== */
.post-banner { margin: 2rem 0; }
.post-banner-list { justify-content: center; }
.post-banner-list__link {
	display: flex;
	flex-direction: column;
	transition: opacity 0.3s ease;
}
@media (hover: hover) { .post-banner-list__link:hover { opacity: 0.8; } }
.post-banner-list__thumb {
	width: 100%;
	overflow: hidden;
	border-radius: 0.25rem;
}
.post-banner-list__img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform 0.3s ease;
}
@media (hover: hover) { .post-banner-list__link:hover .post-banner-list__img { transform: scale(1.04); } }

/* ===== SHARE BUTTONS ===== */
.share-btns {
	display: flex; justify-content: center; align-items: center;
	gap: 0.875rem; padding: 2rem 0;
	border-bottom: 1px solid var(--color-border);
}
.share-btn {
	display: flex; align-items: center; justify-content: center;
	width: 2.75rem; height: 2.75rem; border-radius: 50%;
	color: var(--color-white); font-size: 1.25rem; text-decoration: none;
	transition: opacity 0.3s ease;
}
@media (min-width: 769px) { .share-btn:hover { opacity: 0.8; } }
.share-btn--fb   { background: #1877F2; }
.share-btn--x    { background: #000; }
.share-btn--line { background: #06C755; }
.share-btn--mail { background: #888; }

/* ===== RELATED POSTS（同じカテゴリの最近の記事） ===== */
.related-posts { margin-top: 3rem; }
.related-posts__title {
	font-size: 1.125rem; font-weight: 700;
	margin-bottom: 1.5rem; padding-left: 0.75rem;
	border-left: 2px solid var(--color-green);
}
.related-posts__list { list-style: none; margin: 0; padding: 0; }
.related-posts__item { margin-bottom: 0.85rem; }
.related-posts__link {
	font-size: 0.95rem; font-weight: 700;
	line-height: 1.6;
	transition: color 0.3s ease;
}
@media (min-width: 769px) { .related-posts__link:hover { color: var(--color-green); } }
.related-posts__meta {
	font-size: 0.8rem;
	color: var(--color-text-sub);
	margin-left: 0.5rem;
}

/* ===== POST BODY ===== */
.post-body { padding: 1.5rem 0 2rem; overflow-wrap: break-word; word-break: break-word; }
.post-body p {
	font-size: 0.9375rem; line-height: 2;
	margin-bottom: 1.65rem; letter-spacing: 0.02em;
}
.post-body a {
	overflow-wrap: break-word;
	word-break: break-word;
}
.post-body b, .post-body strong { font-weight: 700 !important; }
.post-body img { max-width: 100%; height: auto; margin: 1.25rem 0; }

.post-body figure,
.post-body picture,
.post-body iframe,
.post-body video,
.post-body embed,
.post-body object,
.post-body table,
.post-body .wp-block-image,
.post-body .wp-block-embed,
.post-body .wp-block-embed__wrapper {
	max-width: 100%;
}

.post-body table {
	display: block;
	overflow-x: auto;
}

.post-body figure {
	background: var(--color-bg2);
	margin: 1.25rem 0;
}

.post-body figure img {
	margin: 0;
}

.post-body figcaption {
	font-size: 0.75rem;
	color: var(--color-text-sub);
	line-height: 1.6;
	padding: 0.75rem;
}

.post-body pre,
.post-body code {
	max-width: 100%;
	overflow-x: auto;
	white-space: pre-wrap;
	word-break: break-word;
}

.post-body h2 {
	font-size: 1.125rem; font-weight: 700;
	margin: 1.75rem 0 1.5rem;
	padding-left: 0.75rem;
	border-left: 2px solid var(--color-green);
}
.post-body h3 {
	font-size: 1rem; font-weight: 700;
	margin: 1.25rem 0 0.5rem;
}

/* ===== PHOTO GRID（旧フォトCPT 後方互換） ===== */
.photo-grid { margin-top: 1.5rem; padding: 0; }
.photo-grid__item { aspect-ratio: 1 / 1; overflow: hidden; }
.photo-grid__link { cursor: zoom-in; display: block; width: 100%; height: 100%; }
.photo-grid__item img {
	width: 100%; height: 100%; object-fit: cover; display: block;
	margin: 0;
}

/* ===== WP STANDARD GALLERY ===== */
/* リンクカーソル：ブロックエディタ・クラシックショートコード共通 */
.post-body .wp-block-gallery a,
.post-body .gallery a {
	cursor: zoom-in;
	display: block;
}

/* 画像マージン上書き */
.post-body .wp-block-gallery img,
.post-body .gallery img {
	margin: 0;
	display: block;
	width: 100%;
	height: auto;
}

/* ===== クラシックショートコード gallery（html5モード） ===== */
.post-body .gallery {
	display: flex;
	flex-wrap: wrap;
	gap: 0.375rem;
	margin: 1rem 0 1.5rem;
}

.post-body .gallery-item {
	flex: 1 1 calc(33.333% - 0.375rem);
	min-width: 7rem;
	overflow: hidden;
	margin: 0;
}

.post-body .gallery-icon {
	overflow: hidden;
	aspect-ratio: 1 / 1;
}

.post-body .gallery-icon img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.post-body .gallery-caption {
	font-size: 0.75rem;
	color: var(--color-text-sub);
	text-align: center;
	padding: 0.25rem 0;
}
