.treethemes-blog-posts {
	--treethemes-image-zoom-scale: 1.08;
	--treethemes-image-zoom-duration: 850ms;
	--treethemes-slider-desktop: 3;
	--treethemes-slider-tablet: 2;
	--treethemes-slider-mobile: 1;
	--treethemes-slider-gap: 28px;
}

.treethemes-blog-posts-grid {
	display: grid;
	/* Column count: Elementor control `columns` (desktop / tablet / mobile). Fallback matches previous default. */
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 28px;
}

/* Parallax-only (desktop >1024px): avoid fighting viewport reveal (opacity + transform duration). */
@media (min-width: 1025px) {
	.treethemes-blog-posts[data-disorder="yes"]:not([data-treethemes-reveal="yes"]) .treethemes-post-item {
		transition: transform .4s ease;
	}
}

.treethemes-post-thumb {
	display: block;
	overflow: hidden;
	-webkit-mask-image: -webkit-radial-gradient(#fff, #000);
	mask-image: radial-gradient(#fff, #000);
}

.treethemes-post-thumb img {
	width: 100%;
	height: auto;
	display: block;
	transition: transform var(--treethemes-image-zoom-duration, 850ms) cubic-bezier(0.22, 1, 0.36, 1);
	will-change: transform;
}

.treethemes-blog-posts.treethemes-image-zoom-hover .treethemes-post-thumb:hover img {
	transform: scale(var(--treethemes-image-zoom-scale, 1.08));
}

.treethemes-post-title {
	margin: 8px 0;
	font-size: 34px;
	line-height: 1.15;
}

/* Title underline — matches WCF posts-pro (single sweep, not per-line). */
.treethemes-blog-posts.treethemes-title-hover-underline .treethemes-post-title a {
	display: inline;
	text-decoration: none;
}

.treethemes-blog-posts.treethemes-title-hover-underline .treethemes-post-title a .treethemes-hover-line {
	display: inline;
	background-image: linear-gradient(
		var(--treethemes-title-underline-color, currentColor),
		var(--treethemes-title-underline-color, currentColor)
	);
	background-repeat: no-repeat;
	background-size: 0 var(--treethemes-title-underline-thickness, 2px);
	background-position: 0 100%;
	text-decoration: none;
	transition: background-size var(--treethemes-title-underline-duration, 500ms) ease;
}

.treethemes-blog-posts.treethemes-title-hover-underline .treethemes-post-title a:hover .treethemes-hover-line {
	background-size: 100% var(--treethemes-title-underline-thickness, 2px);
}

.treethemes-blog-posts.treethemes-readmore-hover-underline .treethemes-post-readmore {
	text-decoration: none;
}

.treethemes-blog-posts.treethemes-readmore-hover-underline .treethemes-post-readmore .treethemes-hover-line {
	display: inline;
	background-image: linear-gradient(
		var(--treethemes-readmore-underline-color, currentColor),
		var(--treethemes-readmore-underline-color, currentColor)
	);
	background-repeat: no-repeat;
	background-size: 0 var(--treethemes-readmore-underline-thickness, 2px);
	background-position: 0 100%;
	text-decoration: none;
	transition: background-size var(--treethemes-readmore-underline-duration, 500ms) ease;
}

.treethemes-blog-posts.treethemes-readmore-hover-underline .treethemes-post-readmore:hover .treethemes-hover-line {
	background-size: 100% var(--treethemes-readmore-underline-thickness, 2px);
}

.treethemes-post-date {
	opacity: .72;
	margin-top: 8px;
}

.treethemes-post-categories {
	margin-bottom: 10px;
	text-transform: uppercase;
	font-size: 12px;
	letter-spacing: .08em;
}

.treethemes-post-readmore {
	display: inline-block;
	margin-top: 12px;
	text-decoration: none;
	transition: color 0.25s ease, background 0.25s ease, border-color 0.25s ease;
}

@media (min-width: 1025px) {
	.treethemes-blog-posts[data-disorder="yes"] .treethemes-post-item.parallax-bottom,
	.treethemes-blog-posts[data-disorder="yes"] .treethemes-post-item.parallax-top {
		will-change: transform;
	}
}

/* Slider */
.treethemes-blog-slider {
	position: relative;
	overflow: hidden;
	width: 100%;
	max-width: 100%;
}

.treethemes-blog-slider.swiper-initialized .treethemes-blog-posts-grid,
.treethemes-blog-slider.swiper .swiper-wrapper {
	display: flex;
	gap: 0;
}

/* Graceful layout before Swiper boots (and in editor). */
.treethemes-blog-slider:not(.swiper-initialized) .treethemes-blog-posts-grid {
	display: grid;
	grid-template-columns: repeat(var(--treethemes-slider-mobile, 1), minmax(0, 1fr));
	gap: var(--treethemes-slider-gap, 28px);
}

@media (min-width: 768px) {
	.treethemes-blog-slider:not(.swiper-initialized) .treethemes-blog-posts-grid {
		grid-template-columns: repeat(var(--treethemes-slider-tablet, 2), minmax(0, 1fr));
	}
}

@media (min-width: 1025px) {
	.treethemes-blog-slider:not(.swiper-initialized) .treethemes-blog-posts-grid {
		grid-template-columns: repeat(var(--treethemes-slider-desktop, 3), minmax(0, 1fr));
	}
}

.treethemes-blog-slider:not(.swiper-initialized) .swiper-slide {
	width: auto;
}

.treethemes-blog-slider .treethemes-post-item {
	height: auto;
	box-sizing: border-box;
}

.treethemes-blog-slider .swiper-slide {
	height: auto;
	flex-shrink: 0;
}

.treethemes-blog-slider-nav {
	position: absolute;
	inset: 0;
	z-index: 5;
	pointer-events: none;
}

.treethemes-blog-arrow {
	position: absolute;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	margin: 0;
	padding: 8px;
	border: none;
	background: transparent;
	color: inherit;
	cursor: pointer;
	pointer-events: auto;
	line-height: 1;
	transition: color 0.25s ease, background-color 0.25s ease, opacity 0.25s ease;
}

.treethemes-blog-arrow:focus-visible {
	outline: 2px solid currentColor;
	outline-offset: 2px;
}

.treethemes-blog-arrow.swiper-button-disabled {
	opacity: 0.35;
	cursor: default;
	pointer-events: none;
}

.treethemes-blog-arrow-prev {
	left: 0;
}

.treethemes-blog-arrow-next {
	right: 0;
}

.treethemes-blog-arrow svg {
	display: block;
	fill: currentColor;
}

.treethemes-blog-pagination {
	position: relative;
	text-align: center;
	width: 100%;
}

.treethemes-blog-pagination--bottom {
	margin-top: 18px;
	margin-bottom: 0;
}

.treethemes-blog-pagination--top {
	margin-top: 0;
	margin-bottom: 18px;
}

/* Keep progress bar in document flow above/below slides (not overlaid). */
.treethemes-blog-slider .treethemes-blog-pagination.swiper-pagination-progressbar,
.treethemes-blog-slider.swiper-initialized .treethemes-blog-pagination.swiper-pagination-progressbar,
.treethemes-blog-slider.swiper-initialized .treethemes-blog-pagination.swiper-pagination-horizontal {
	position: relative;
	left: auto;
	right: auto;
	top: auto;
	bottom: auto;
	width: 100%;
	height: 4px;
}

.treethemes-blog-pagination .swiper-pagination-bullet {
	opacity: 0.35;
}

.treethemes-blog-pagination .swiper-pagination-bullet-active {
	opacity: 1;
}

/* Pagination (numbers + load more) */
.treethemes-blog-pagination-nav {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 0;
	padding: 0;
}

.treethemes-blog-pagination-nav ul.page-numbers {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	list-style: none;
	margin: 0;
	padding: 0;
}

.treethemes-blog-pagination-nav .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 2.25rem;
	min-height: 2.25rem;
	padding: 0 0.5rem;
	text-decoration: none;
}

.treethemes-blog-load-more-wrap {
	display: flex;
}

.treethemes-blog-load-more {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	cursor: pointer;
	font-family: inherit;
	line-height: 1.2;
	transition: color 0.25s ease, background 0.25s ease, border-color 0.25s ease;
}

.treethemes-blog-load-more.is-loading {
	pointer-events: none;
	opacity: 0.7;
}

.treethemes-blog-load-more.is-loading .treethemes-blog-load-more-text {
	opacity: 0;
}

.treethemes-blog-load-more-spinner {
	display: none;
	width: 1.25rem;
	height: 1.25rem;
	border: 2px solid currentColor;
	border-right-color: transparent;
	border-radius: 50%;
	animation: treethemes-blog-spin 0.65s linear infinite;
}

.treethemes-blog-load-more.is-loading .treethemes-blog-load-more-spinner {
	display: inline-block;
}

.treethemes-blog-infinite-trigger {
	height: 1px;
	width: 100%;
	pointer-events: none;
}

@keyframes treethemes-blog-spin {
	to {
		transform: rotate(360deg);
	}
}

/* Disorder / stagger parallax off at tablet widths and below (matches JS). */
@media (max-width: 1024px) {
	.treethemes-blog-posts[data-disorder="yes"]:not([data-treethemes-reveal="yes"]) .treethemes-post-item {
		transition: none;
	}

	.treethemes-blog-posts[data-disorder="yes"] .treethemes-post-item.parallax-bottom,
	.treethemes-blog-posts[data-disorder="yes"] .treethemes-post-item.parallax-top {
		will-change: auto;
		transform: none !important;
	}
}

.treethemes-blog-posts[data-treethemes-reveal="yes"] .treethemes-post-item {
	transition-property: opacity, transform;
	transition-duration: var(--treethemes-reveal-duration, 650ms);
	transition-timing-function: cubic-bezier(0.22, 1, 0.36, 1);
	transition-delay: 0ms;
}

.treethemes-blog-posts[data-treethemes-reveal="yes"] .treethemes-post-item.treethemes-reveal-pending {
	opacity: 0;
	will-change: transform, opacity;
	pointer-events: none;
}

.treethemes-blog-posts[data-treethemes-reveal="yes"][data-treethemes-reveal-effect="fade_up"] .treethemes-post-item.treethemes-reveal-pending {
	transform: translate3d(0, var(--treethemes-reveal-distance, 22px), 0);
}

.treethemes-blog-posts[data-treethemes-reveal="yes"][data-treethemes-reveal-effect="slide_up"] .treethemes-post-item.treethemes-reveal-pending {
	transform: translate3d(0, calc(var(--treethemes-reveal-distance, 22px) * 1.35), 0);
}

/* Same transform list for start/end so duration/easing apply reliably. */
.treethemes-blog-posts[data-treethemes-reveal="yes"][data-treethemes-reveal-effect="zoom_in"] .treethemes-post-item.treethemes-reveal-pending {
	transform: translate3d(0, var(--treethemes-reveal-distance, 22px), 0) scale3d(0.92, 0.92, 1);
}

.treethemes-blog-posts[data-treethemes-reveal="yes"][data-treethemes-reveal-effect="zoom_in"] .treethemes-post-item.treethemes-reveal-in {
	opacity: 1;
	transform: translate3d(0, 0, 0) scale3d(1, 1, 1);
}

.treethemes-blog-posts[data-treethemes-reveal="yes"][data-treethemes-reveal-effect="fade_up"] .treethemes-post-item.treethemes-reveal-in,
.treethemes-blog-posts[data-treethemes-reveal="yes"][data-treethemes-reveal-effect="slide_up"] .treethemes-post-item.treethemes-reveal-in {
	opacity: 1;
	transform: translate3d(0, 0, 0);
}

/* Reveal + slider: avoid transform conflicts on slides */
.treethemes-blog-slider[data-treethemes-reveal="yes"] .treethemes-post-item.treethemes-reveal-pending,
.treethemes-blog-slider[data-treethemes-reveal="yes"] .treethemes-post-item.treethemes-reveal-in {
	transform: none;
	opacity: 1;
	pointer-events: auto;
}
