/* -------------------------------------------------------------------------------- */
/*	PostCard – editorial card component                                             */
/* -------------------------------------------------------------------------------- */

:root {
	--post-card-bg: #ffffff;
	--post-card-radius: 16px;
	--post-card-shadow:
		0 4px 24px rgba(0, 0, 0, 0.07),
		0 1px 3px rgba(0, 0, 0, 0.04);
	--post-card-border: none;
	--post-card-body-padding: clamp(2rem, 0.3vw + 1.8rem, 2.4rem);
	--post-reading-padding-x: clamp(3.6rem, 2.5vw + 2.4rem, 6.4rem);
	--post-reading-padding-y: clamp(4.4rem, 2vw + 3.6rem, 7.2rem);
	--post-reading-header-content-gap: clamp(2.8rem, 1.2vw + 2rem, 4.8rem);
	--post-card-gap: clamp(2.4rem, 0.6vw + 2rem, 3.2rem);
	--post-card-text: #111111;
	--post-card-text-muted: #9a9a9a;
	--post-card-accent: #b35a3c;
}

.post-card {
	background: var(--post-card-bg);
	border: var(--post-card-border);
	border-radius: var(--post-card-radius);
	box-shadow: var(--post-card-shadow);
	color: var(--post-card-text);
	min-width: 0;
	overflow: hidden;
}

/* Let shell shadow render around the full card (image + text), clip corners on children */
.post-card:not(.post-card--compact) {
	overflow: visible;
}

.post-card--compact {
	overflow: hidden;
}

.post-card:not(.post-card--compact):not(.post-card--has-media):not(.post-card--load-more) {
	overflow: hidden;
}

.post-card:not(.post-card--compact).post-card--has-media .post-card__media {
	border-radius: var(--post-card-radius) var(--post-card-radius) 0 0;
}

.post-card:not(.post-card--compact) .post-card__body,
.post-card:not(.post-card--compact) .post-card__meta {
	background: var(--post-card-bg);
}

.post-card:not(.post-card--compact).post-card--has-meta .post-card__meta {
	border-radius: 0 0 var(--post-card-radius) var(--post-card-radius);
}

.post-card:not(.post-card--compact).post-card--has-media:not(.post-card--has-meta) .post-card__body {
	border-radius: 0 0 var(--post-card-radius) var(--post-card-radius);
	overflow: hidden;
}

.post-card:not(.post-card--compact):not(.post-card--has-media) .post-card__body {
	border-radius: var(--post-card-radius) var(--post-card-radius) 0 0;
	overflow: hidden;
}

.post-card:not(.post-card--compact).post-card--text-only:not(.post-card--has-meta) .post-card__body {
	border-radius: var(--post-card-radius);
}

.post-card__media--align-left {
	text-align: left;
}

.post-card__media--align-center {
	text-align: center;
}

.post-card__media--align-right {
	text-align: right;
}

.post-card--image-linked .post-card__body-wrap {
	display: flex;
	flex-direction: column;
}

.post-card__link:hover .post-card__title,
.post-card:focus-within .post-card__title {
	color: var(--post-card-accent);
}

.post-card--load-more .post-card__load-more:hover .post-card__title,
.post-card--load-more:hover .post-card__title,
.post-card--load-more:focus-within .post-card__title,
#load-more:hover {
	color: var(--post-card-text);
}

.preview>.post-card,
.vsamoylik-latest-posts.is-grid .vsamoylik-latest-post>.post-card,
.wp-block-vsamoylik-latest-posts-meta.is-grid .vsamoylik-latest-post>.post-card {
	margin-bottom: 0;
	width: 100%;
}

/* Masonry gutter – wider grid, inset cards (no negative margins) */
@media (min-width: 600px) {

	.posts,
	#site-content>.section-inner .posts,
	.related-posts .posts,
	.vsamoylik-latest-posts.is-grid,
	.wp-block-vsamoylik-latest-posts-meta.is-grid {
		width: calc(100% + var(--post-card-gap, 2.4rem));
		max-width: none;
	}

	.preview>.post-card,
	.vsamoylik-latest-posts.is-grid .vsamoylik-latest-post>.post-card,
	.wp-block-vsamoylik-latest-posts-meta.is-grid .vsamoylik-latest-post>.post-card {
		width: calc(100% - var(--post-card-gap, 2.4rem));
	}

}

.post-card__link {
	color: inherit;
	display: block;
	text-decoration: none;
	width: 100%;
}

.post-card__media {
	display: block;
	line-height: 0;
	margin: 0;
	overflow: hidden;
	width: 100%;
}

/* Shell owns shadow – children must not add their own */
.post-card__media img,
.post-card__image,
.single-post-card .featured-media img {
	border-radius: 0;
	box-shadow: none;
}

.post-card__image,
.single-post-card .featured-media img {
	display: block;
	height: auto;
	max-width: 100%;
	object-fit: cover;
	width: 100%;
}

.post-card__body {
	padding: var(--post-card-body-padding);
}

.post-card__title {
	display: -webkit-box;
	font-size: var(--text-subhead);
	font-weight: 600;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3;
	line-clamp: 3;
	line-height: 1.35;
	margin: 0;
	overflow: hidden;
}

.post-card__meta {
	padding: 0 var(--post-card-body-padding) var(--post-card-body-padding);
}

.post-card__meta .post-meta {
	font-size: var(--text-ui-sm);
	font-weight: 500;
	line-height: 1.25;
	margin-top: -0.6rem;
}

.post-card__meta .post-meta li {
	line-height: inherit;
	margin-top: .6rem;
}

.post-card:hover .post-card__title,
.post-card:focus-within .post-card__title {
	color: var(--post-card-accent);
}

.pagination-scroll-sentinel {
	height: 1px;
	margin: 0;
	overflow: hidden;
	padding: 0;
	pointer-events: none;
	visibility: hidden;
	width: 100%;
}

/* Load-more card – last masonry cell */
.preview-load-more#pagination {
	min-height: 0;
	overflow: visible;
	padding: 0;
	position: static;
	text-align: inherit;
	transition:
		height 0.4s ease,
		margin-bottom 0.4s ease,
		opacity 0.35s ease;
}

.preview-load-more.is-collapsing {
	overflow: hidden;
	pointer-events: none;
}

.preview-load-more.is-collapsing .post-card {
	opacity: 0;
	transform: scale(0.96);
	transition: opacity 0.3s ease, transform 0.35s ease;
}

.preview-load-more.is-entering .post-card {
	opacity: 0;
	transform: translateY(1.5rem);
}

.preview-load-more.is-entering.is-visible .post-card {
	opacity: 1;
	transform: translateY(0);
	transition: opacity 0.5s ease-out, transform 0.5s ease-out;
}

.preview-load-more.last-page {
	display: none;
}

.post-card--load-more {
	cursor: pointer;
	overflow: visible;
}

.post-card--load-more .post-card__body {
	align-items: center;
	display: flex;
	justify-content: center;
	min-height: clamp(12rem, 8vw + 8rem, 18rem);
	position: relative;
	text-align: center;
}

.post-card--load-more .post-card__load-more#load-more {
	align-items: baseline;
	background: none;
	border: 0;
	color: inherit;
	cursor: pointer;
	display: inline-flex;
	font-size: var(--text-h1);
	font-weight: 600;
	justify-content: center;
	line-height: 1.05;
	margin: 0;
	max-width: 100%;
	padding: 0;
	text-align: center;
	width: 100%;
}

.post-card--load-more .post-card__load-more img {
	height: 0.85em;
	margin-left: 0.3em;
	width: 0.65em;
}

.post-card--load-more .post-card__title {
	font-size: 1em;
	-webkit-line-clamp: unset;
	line-height: 1.1;
	line-clamp: unset;
	overflow: visible;
}

.post-card--load-more:hover .post-card__title,
.post-card--load-more:focus-within .post-card__title,
.post-card--load-more .post-card__load-more:hover .post-card__title {
	color: var(--post-card-accent);
}

.post-card--load-more .post-card__load-more-status {
	align-items: center;
	display: flex;
	inset: 0;
	justify-content: center;
	opacity: 0;
	pointer-events: none;
	position: absolute;
	transition: opacity .2s linear;
}

#pagination.loading .post-card--load-more .post-card__load-more {
	opacity: 0;
	pointer-events: none;
}

#pagination.loading .post-card--load-more .post-card__load-more-status {
	opacity: 1;
}

#pagination .pagination-error {
	color: #c0392b;
	font-size: var(--text-ui-sm);
	margin-top: 1rem;
	position: relative;
	text-align: center;
}

#pagination .pagination-error[hidden] {
	display: none;
}

.preview-load-more #load-more {
	font-size: var(--text-h1);
	font-weight: 600;
	left: auto;
	line-height: 1.05;
	position: static;
	top: auto;
	transform: none;
	white-space: normal;
}

.preview-load-more #load-more .text {
	white-space: normal;
}

.preview-load-more#pagination.loading #load-more {
	left: auto;
	opacity: 0;
	transform: none;
}

.preview-load-more>.post-card {
	margin-bottom: 0;
}

/* Single post – card shell (image → title → meta order preserved) */
.single-post-card {
	background: var(--post-card-bg);
	border: var(--post-card-border);
	border-radius: var(--post-card-radius);
	box-shadow: var(--post-card-shadow);
	color: var(--post-card-text);
	margin-bottom: var(--post-card-gap);
	overflow: visible;
	position: relative;
	width: 100%;
	z-index: 0;
}

.single-post-card .featured-media {
	border-radius: var(--post-card-radius) var(--post-card-radius) 0 0;
	margin: 0;
	max-width: 100%;
	overflow: hidden;
	position: static;
	width: 100%;
}

.single-post-card .featured-media img {
	border-radius: 0;
	display: block;
	height: auto;
	max-width: 100%;
	object-fit: cover;
	width: 100%;
}

.single-post-card .post-inner {
	background: var(--post-card-bg);
	border-radius: 0 0 var(--post-card-radius) var(--post-card-radius);
	max-width: none !important;
	overflow: hidden;
	width: 100%;
}

.single-post-card .post-inner:first-child {
	border-radius: var(--post-card-radius);
}

.single-post-card .entry-header {
	margin: 0;
	padding: var(--post-reading-padding-y) var(--post-reading-padding-x) var(--post-reading-header-content-gap);
}

.single-post-card .featured-media+.post-inner .entry-header {
	margin-top: 0;
	padding-top: var(--post-reading-padding-y);
}

.single-post-card .entry-content {
	padding: 0 var(--post-reading-padding-x) var(--post-reading-padding-y);
}

/* Keep wide/full blocks inside the reading column (no viewport bleed) */
.single-post-card .entry-content .alignwide,
.single-post-card .entry-content .alignfull,
.single-post-card .entry-content .gallery,
.single-post-card .entry-content .wp-block-gallery.alignwide,
.single-post-card .entry-content .wp-block-gallery.alignfull {
	left: auto;
	margin-left: auto;
	margin-right: auto;
	max-width: 100%;
	position: static;
	width: 100%;
}

.single-post-card .entry-content .wp-block-gallery.alignwide,
.single-post-card .entry-content .wp-block-gallery.aligncenter {
	justify-content: center;
}

.single-post-card .entry-content .alignfull figcaption,
.single-post-card .entry-content .alignfull .wp-caption-text {
	padding: 0;
}

.single-post-card .post-meta-single-bottom {
	margin: 0;
	padding: 0 var(--post-reading-padding-x) var(--post-reading-padding-y);
}

.single-post-card .comments-wrapper {
	padding: 0 var(--post-reading-padding-x) var(--post-reading-padding-y);
}

/* Load More fade (class on .preview masonry cell) */
.preview.is-load-more-enter .post-card {
	opacity: 0;
}

.preview.is-load-more-enter.is-load-more-visible .post-card {
	opacity: 1;
	transition: opacity 0.5s ease-out;
}

/* Compact variant – sidebar / widget */
.post-card--compact {
	margin-bottom: 1.2rem;
}

.post-card--compact .post-card__link {
	align-items: flex-start;
	display: flex;
	gap: 1.2rem;
	padding: 1.2rem;
}

.post-card--compact .post-card__media--compact {
	border-radius: 0.8rem;
	flex: 0 0 6.4rem;
	overflow: hidden;
	width: 6.4rem;
}

.post-card--compact .post-card__body {
	flex: 1 1 auto;
	min-height: 0;
	min-width: 0;
	padding: 0;
}

.post-card--compact .post-card__title {
	font-size: var(--text-ui);
	-webkit-line-clamp: 2;
	line-clamp: 2;
	min-height: 0;
}

.post-card--compact .post-card__meta--inline {
	padding: 0.4rem 0 0;
}

/* Masonry grid – latest posts block items */
.vsamoylik-latest-posts.is-grid .vsamoylik-latest-post,
.wp-block-vsamoylik-latest-posts-meta.is-grid .vsamoylik-latest-post {
	list-style: none;
	margin-bottom: var(--post-card-gap);
}

.vsamoylik-latest-posts:not(.is-grid) .vsamoylik-latest-post,
.wp-block-vsamoylik-latest-posts-meta:not(.is-grid) .vsamoylik-latest-post {
	list-style: none;
	margin-bottom: 1.2rem;
}

.vsamoylik-latest-posts:not(.is-grid) .vsamoylik-latest-post:last-child,
.wp-block-vsamoylik-latest-posts-meta:not(.is-grid) .vsamoylik-latest-post:last-child {
	margin-bottom: 0;
}

.vsamoylik-widget-list .post-card--compact {
	margin-bottom: 0;
}

@media (prefers-reduced-motion: reduce) {

	.preview.is-load-more-enter .post-card,
	.preview.is-load-more-enter.is-load-more-visible .post-card {
		opacity: 1;
		transition: none;
	}

	.preview-load-more#pagination,
	.preview-load-more.is-collapsing .post-card,
	.preview-load-more.is-entering .post-card,
	.preview-load-more.is-entering.is-visible .post-card {
		opacity: 1;
		transform: none;
		transition: none;
	}

}

/* Mobile single post – tighter reading column */
@media (max-width: 1019px) {
	:root {
		--post-reading-padding-x: clamp(1.1rem, 2.5vw + 0.5rem, 1.6rem);
		--post-reading-padding-y: clamp(1.2rem, 1.5vw + 0.8rem, 1.8rem);
		--post-reading-header-top: clamp(1rem, 1.5vw + 0.5rem, 1.4rem);
		--post-reading-header-content-gap: clamp(1rem, 1vw + 0.6rem, 1.4rem);
	}

	.single-post-card .featured-media+.post-inner .entry-header {
		padding-top: var(--post-reading-header-top);
	}

	.single-post-card .post-meta-single-top {
		margin-top: 0.35rem;
	}

	.single-post-card .post-meta-single li {
		margin-top: 0.35rem;
	}

	.single-post-card .entry-content .gallery,
	.single-post-card .entry-content .wp-block-gallery {
		margin-bottom: 0.8rem;
		margin-top: 1.2rem;
	}
}

/* Compact phones – tighter reading column and card spacing */
@media (max-width: 440px) {
	:root {
		--post-card-body-padding: 1.2rem;
		--post-reading-padding-x: 1rem;
		--post-reading-padding-y: 1rem;
		--post-reading-header-top: 0.8rem;
		--post-reading-header-content-gap: 0.8rem;
		--post-card-gap: 1.6rem;
	}

	.single-post-card .post-meta-single-top {
		margin-top: 0.2rem;
	}

	.single-post-card .post-meta-single li {
		margin-top: 0.25rem;
	}

	.single-post-card .entry-content .gallery,
	.single-post-card .entry-content .wp-block-gallery {
		margin-bottom: 0.4rem;
		margin-top: 1rem;
	}

	.post-card--compact .post-card__link {
		gap: 1rem;
		padding: 1rem;
	}
}

@media (prefers-color-scheme: dark) {

	:root {
		--post-card-bg: #1c1c1c;
		--post-card-shadow:
			0 4px 24px rgba(0, 0, 0, 0.38),
			0 1px 3px rgba(0, 0, 0, 0.22);
		--post-card-border: none;
		--post-card-text: #e8e8e8;
		--post-card-text-muted: #9a9a9a;
		--post-card-accent: #b35a3c;
	}

}