/* Blog, archive, search listing */
.sl-blog-section,
.sl-search-section,
.sl-single-section {
	background: var(--sl-grey-50);
}

.sl-posts-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 26px;
}

.sl-post-card {
	display: flex;
	flex-direction: column;
	min-height: 100%;
	border: 1px solid var(--sl-grey-200);
	border-radius: var(--sl-radius-lg);
	background: var(--sl-white);
	box-shadow: var(--sl-shadow-sm);
	overflow: hidden;
}

.sl-post-card-image {
	display: block;
	overflow: hidden;
	background: var(--sl-grey-100);
}

.sl-post-card-image img {
	width: 100%;
	aspect-ratio: 16 / 10;
	object-fit: cover;
	transition: transform 400ms ease;
}

.sl-post-card:hover .sl-post-card-image img {
	transform: scale(1.04);
}

.sl-post-card-body {
	display: flex;
	flex: 1;
	flex-direction: column;
	padding: 24px;
}

.sl-post-card-meta,
.sl-single-meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px 18px;
	margin-bottom: 14px;
	font-size: 0.84rem;
	color: var(--sl-grey-500);
}

.sl-post-card-meta span,
.sl-single-meta span {
	display: inline-flex;
	align-items: center;
	gap: 7px;
}

.sl-post-card-meta i,
.sl-single-meta i {
	color: var(--sl-orange);
}

.sl-post-card-meta a,
.sl-single-meta a {
	color: var(--sl-grey-500);
}

.sl-post-card-meta a:hover,
.sl-post-card-meta a:focus,
.sl-single-meta a:hover,
.sl-single-meta a:focus {
	color: var(--sl-orange-dark);
}

.sl-post-card-title {
	margin: 0 0 12px;
	font-size: 1.25rem;
	line-height: 1.25;
	letter-spacing: -0.02em;
	color: var(--sl-grey-900);
}

.sl-post-card-title a {
	color: inherit;
}

.sl-post-card-title a:hover,
.sl-post-card-title a:focus {
	color: var(--sl-blue);
}

.sl-post-card-excerpt {
	margin-bottom: 20px;
	color: var(--sl-grey-500);
}

.sl-post-card-excerpt p {
	margin: 0;
}

/* Single post */
.sl-single-post {
	padding: 34px;
	border: 1px solid var(--sl-grey-200);
	border-radius: var(--sl-radius-xl);
	background: var(--sl-white);
	box-shadow: var(--sl-shadow-md);
}

.sl-single-featured-image img {
	max-height: 560px;
	object-fit: cover;
}

.sl-single-meta {
	padding-bottom: 18px;
	margin-bottom: 26px;
	border-bottom: 1px solid var(--sl-grey-200);
}

.sl-single-footer {
	padding-top: 26px;
	margin-top: 34px;
	border-top: 1px solid var(--sl-grey-200);
}

.sl-single-taxonomy {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-bottom: 12px;
	color: var(--sl-grey-500);
}

.sl-single-taxonomy strong {
	color: var(--sl-grey-900);
}

.sl-single-taxonomy a {
	display: inline-flex;
	align-items: center;
	padding: 4px 9px;
	border-radius: 999px;
	font-size: 0.86rem;
	font-weight: 800;
	color: var(--sl-blue);
	background: var(--sl-grey-100);
}

.sl-single-taxonomy a:hover,
.sl-single-taxonomy a:focus {
	color: var(--sl-white);
	background: var(--sl-blue);
}

/* Post navigation */
.sl-post-navigation {
	margin-top: 34px;
}

.sl-post-navigation-links {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 18px;
}

.sl-post-navigation a {
	display: grid;
	gap: 6px;
	min-height: 100%;
	padding: 22px;
	border: 1px solid var(--sl-grey-200);
	border-radius: var(--sl-radius-lg);
	background: var(--sl-white);
	box-shadow: var(--sl-shadow-sm);
	color: var(--sl-grey-900);
}

.sl-post-navigation a:hover,
.sl-post-navigation a:focus {
	border-color: var(--sl-orange);
	transform: translateY(-1px);
}

.sl-post-navigation span {
	font-size: 0.78rem;
	font-weight: 900;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--sl-orange-dark);
}

.sl-post-navigation strong {
	font-size: 1rem;
	line-height: 1.25;
}

.sl-post-navigation-next {
	text-align: right;
}

/* Sticky embeds and media */
.sl-entry-content iframe,
.sl-entry-content embed,
.sl-entry-content object {
	max-width: 100%;
}

.sl-entry-content figure {
	margin: 28px 0;
}

.sl-entry-content figcaption {
	margin-top: 8px;
	font-size: 0.9rem;
	color: var(--sl-grey-500);
	text-align: center;
}

.sl-entry-content table {
	width: 100%;
	border-collapse: collapse;
	margin: 28px 0;
	background: var(--sl-white);
}

.sl-entry-content th,
.sl-entry-content td {
	padding: 12px 14px;
	border: 1px solid var(--sl-grey-200);
	text-align: left;
}

.sl-entry-content th {
	color: var(--sl-grey-900);
	background: var(--sl-grey-50);
}

@media (max-width: 1040px) {
	.sl-posts-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 700px) {
	.sl-posts-grid {
		grid-template-columns: 1fr;
	}

	.sl-single-post {
		padding: 22px;
		border-radius: 22px;
	}

	.sl-post-navigation-links {
		grid-template-columns: 1fr;
	}

	.sl-post-navigation-next {
		text-align: left;
	}
}