/* ==========================================================================
   Blog Grid Component
   Enqueued from inc/blog-grid/blog-grid.php only when the
   [moerlina_blog_grid] shortcode renders.
   Card layout follows prototype/blog-grid.html.
   ========================================================================== */

.moerlina-blog-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	grid-auto-rows: 1fr;  /*JG*/
	gap: 36px;
}

.moerlina-blog-card {
	/*display: block;*/
	color: inherit;
	text-decoration: none;
	display: flex; flex-direction: column; height: 100%; /*JG*/
}

.moerlina-blog-card:focus-visible {
	outline: 2px solid var(--color-coral);
	outline-offset: 3px;
	border-radius: 2px;
}

.moerlina-blog-card__figure {
	position: relative;
	margin: 0;
	aspect-ratio: 392 / 252;
	overflow: hidden;
	border-radius: 2px;
	background-color: var(--color-sage-pale);
}

/* Hover zoom on the featured image — same subtle treatment as the program
   grid (scale 1.08, no over-scale like the native WPBakery grid's
   scale(1.5) rotate(10deg)). The figure is overflow:hidden so the zoom clips
   cleanly; the placeholder swatch is not animated. */
.moerlina-blog-card__img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transform: scale(1);
	/* transition: transform 0.5s cubic-bezier(0.65, 0, 0.35, 1); */
	transition: transform .3s ease-in-out;
	will-change: transform;
}

.moerlina-blog-card__img--placeholder {
	width: 100%;
	height: 100%;
	background-color: var(--color-sage-pale);
	transition: none;
}

.moerlina-blog-card:hover .moerlina-blog-card__img,
.moerlina-blog-card:focus-visible .moerlina-blog-card__img {
	transform: scale(1.2) rotate(4deg);
}

.moerlina-blog-card__body {
	background-color: var(--color-white);
	padding: 24px 24px 16px;
	flex-grow: 1; display: flex; flex-direction: column; /*JG*/
}

.moerlina-blog-card__title {
	font-family: var(--font-heading);
	font-weight: 500;
	font-size: 28px;
	line-height: .9;
	text-transform: uppercase;
	color: var(--color-charcoal);
	margin: 0 0 14px;
	transition: color 0.25s ease;
}

.moerlina-blog-card:hover .moerlina-blog-card__title,
.moerlina-blog-card:focus-visible .moerlina-blog-card__title {
	color: var(--color-coral);
}

.moerlina-blog-card__excerpt {
	font-family: var(--font-body);
	font-weight: 400;
	font-size: 16px;
	line-height: 1.6;
	color: #4a4a4a;
	margin: 0;
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.moerlina-blog-grid__loadmore {
	display: flex;
	justify-content: center;
	margin-top: 56px;
}

.moerlina-blog-grid__loadmore-btn.is-loading {
	opacity: 0.6;
	pointer-events: none;
	position: relative;
	color: transparent;
}

.moerlina-blog-grid__loadmore-btn.is-loading::after {
	content: '';
	position: absolute;
	top: 50%;
	left: 50%;
	width: 20px;
	height: 20px;
	margin: -10px 0 0 -10px;
	border: 2px solid currentColor;
	border-right-color: transparent;
	border-radius: 50%;
	animation: moerlina-spin 0.7s linear infinite;
	color: var(--color-coral);
}

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

@media (max-width: 900px) {
	.moerlina-blog-grid {
		grid-template-columns: repeat(2, 1fr);
		gap: 36px;
	}
}

@media (max-width: 640px) {
	.moerlina-blog-grid {
		grid-template-columns: 1fr;
		gap: 32px;
	}

	.moerlina-blog-card__title {
		font-size: 26px;
	}
}