.gl-site-page {
	background: var(--gl-color-bg);
}

.gl-site-hero,
.gl-site-section {
	margin-inline: auto;
	max-width: var(--gl-container-wide);
	padding: var(--gl-space-12) var(--gl-space-6);
	width: 100%;
}

.gl-site-hero {
	align-items: start;
	display: grid;
	gap: var(--gl-space-6);
	grid-template-columns: minmax(0, 1fr);
}

.gl-site-hero__content,
.gl-site-section__header {
	max-width: var(--gl-container-narrow);
}

.gl-site-lede,
.gl-site-section__header p {
	color: var(--gl-color-text-muted);
	font-size: var(--gl-font-size-lg);
	line-height: var(--gl-line-height-relaxed);
}

.gl-site-actions {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: var(--gl-space-3);
	margin-block-start: var(--gl-space-6);
}

.gl-site-hero__panel,
.gl-site-card__media {
	align-items: center;
	background:
		linear-gradient(135deg, rgb(31 122 90 / 8%), rgb(39 100 165 / 8%)),
		var(--gl-color-surface);
	border: 1px dashed var(--gl-color-border);
	border-radius: var(--gl-radius-lg);
	color: var(--gl-color-text-muted);
	display: flex;
	flex-direction: column;
	justify-content: center;
	text-align: center;
}

.gl-site-hero__panel {
	aspect-ratio: 21 / 9;
	min-height: 26rem;
	padding: var(--gl-space-8);
}

.gl-hero-image {
	margin: 0;
	overflow: hidden;
}

.gl-hero-image img {
	display: block;
	height: 100%;
	object-fit: cover;
	object-position: var(--gl-hero-position, center center);
	width: 100%;
}

.gl-site-hero__panel--image {
	border-style: solid;
	padding: 0;
}

.gl-site-card__media--image {
	border-style: solid;
	min-height: 0;
	padding: 0;
}

.gl-hero-image--missing {
	padding: var(--gl-space-8);
}

.gl-site-section__header {
	margin-block-end: var(--gl-space-8);
}

.gl-site-section--compact {
	padding-block: var(--gl-space-8);
}

.gl-site-card-grid {
	display: grid;
	gap: var(--gl-space-6);
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.gl-site-card {
	display: flex;
	flex-direction: column;
	min-height: 100%;
}

.gl-site-card__media {
	aspect-ratio: 16 / 9;
	margin-block-end: var(--gl-space-4);
	min-height: 8rem;
	padding: var(--gl-space-4);
}

.gl-site-card__media span {
	font-size: var(--gl-font-size-sm);
	font-weight: var(--gl-font-weight-semibold);
}

.gl-site-card .gl-tag {
	align-self: flex-start;
	margin-block-end: var(--gl-space-3);
}

.gl-site-card h3 {
	margin-block-end: var(--gl-space-3);
}

.gl-site-card p {
	color: var(--gl-color-text-muted);
}

.gl-site-card a {
	font-weight: var(--gl-font-weight-semibold);
	margin-block-start: auto;
}

.gl-post-card__media {
	overflow: hidden;
	text-decoration: none;
}

.gl-post-card__media img {
	height: 100%;
	object-fit: cover;
	width: 100%;
}

.gl-post-card__meta {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: var(--gl-space-2);
	margin-block-end: var(--gl-space-3);
}

.gl-post-card__meta time {
	color: var(--gl-color-text-muted);
	font-size: var(--gl-font-size-xs);
	font-weight: var(--gl-font-weight-semibold);
}

.gl-post-card h3 a {
	color: var(--gl-color-text);
	text-decoration: none;
}

.gl-post-card h3 a:hover {
	color: var(--gl-color-accent);
}

.gl-empty-state {
	background: var(--gl-color-surface);
	border: 1px dashed var(--gl-color-border-strong, var(--gl-color-border));
	border-radius: var(--gl-radius-lg);
	max-width: var(--gl-container-content);
	padding: var(--gl-space-8);
}

.gl-empty-state h3 {
	margin-block-end: var(--gl-space-3);
}

.gl-empty-state p {
	color: var(--gl-color-text-muted);
	font-size: var(--gl-font-size-lg);
	line-height: var(--gl-line-height-relaxed);
	margin: 0;
	max-width: var(--gl-container-narrow);
}

.gl-category-pills {
	display: flex;
	flex-wrap: wrap;
	gap: var(--gl-space-3);
}

.gl-category-pill {
	align-items: center;
	background: var(--gl-color-surface);
	border: 1px solid var(--gl-color-border);
	border-radius: var(--gl-radius-pill);
	color: var(--gl-color-text);
	display: inline-flex;
	font-weight: var(--gl-font-weight-semibold);
	gap: var(--gl-space-2);
	min-height: 2.5rem;
	padding: var(--gl-space-2) var(--gl-space-4);
	text-decoration: none;
	transition:
		background-color var(--gl-transition-fast),
		border-color var(--gl-transition-fast),
		transform var(--gl-transition-fast);
}

.gl-category-pill:hover {
	background: var(--gl-color-surface-muted);
	border-color: var(--gl-color-accent);
	color: var(--gl-color-text);
	transform: translateY(-1px);
}

.gl-category-pill small {
	background: var(--gl-color-surface-muted);
	border-radius: var(--gl-radius-pill);
	color: var(--gl-color-text-muted);
	line-height: 1;
	padding: 0.2rem 0.45rem;
}

.gl-search-panel {
	background: var(--gl-color-surface);
	border: 1px solid var(--gl-color-border);
	border-radius: var(--gl-radius-lg);
	padding: var(--gl-space-8);
}

.gl-search-panel label {
	display: block;
	font-size: var(--gl-font-size-xl);
	margin-block-end: var(--gl-space-4);
}

.gl-search-panel__row {
	align-items: stretch;
	display: grid;
	gap: var(--gl-space-3);
	grid-template-columns: minmax(0, 1fr) auto;
}

.gl-search-panel p {
	color: var(--gl-color-text-muted);
	margin-block: var(--gl-space-4) 0;
}

.gl-archive-hero {
	padding-block-end: var(--gl-space-8);
}

.gl-archive-search {
	align-items: stretch;
	display: grid;
	gap: var(--gl-space-3);
	grid-template-columns: minmax(0, 1fr) auto;
	margin-block-start: var(--gl-space-6);
	max-width: var(--gl-container-narrow);
}

.gl-pagination {
	margin-block-start: var(--gl-space-8);
}

.gl-pagination .nav-links {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: var(--gl-space-2);
}

.gl-pagination a,
.gl-pagination span {
	background: var(--gl-color-surface);
	border: 1px solid var(--gl-color-border);
	border-radius: var(--gl-radius-md);
	display: inline-flex;
	font-weight: var(--gl-font-weight-semibold);
	min-height: 2.5rem;
	min-width: 2.5rem;
	padding: var(--gl-space-2) var(--gl-space-3);
	text-decoration: none;
}

.gl-pagination .current {
	background: var(--gl-color-accent);
	border-color: var(--gl-color-accent);
	color: #ffffff;
}

.gl-single-article {
	margin-inline: auto;
	max-width: var(--gl-container-content);
	padding: var(--gl-space-12) var(--gl-space-6) var(--gl-space-8);
}

.gl-single-header {
	max-width: var(--gl-container-narrow);
}

.gl-single-featured-image {
	border-radius: var(--gl-radius-lg);
	margin-block: var(--gl-space-8);
	overflow: hidden;
}

.gl-single-featured-image img {
	width: 100%;
}

.gl-single-content {
	background: var(--gl-color-surface);
	border: 1px solid var(--gl-color-border);
	border-radius: var(--gl-radius-lg);
	max-width: var(--gl-container-content);
	padding: var(--gl-space-8);
}

.gl-single-content > * {
	max-width: var(--gl-container-narrow);
}

.gl-single-content > .alignwide {
	max-width: var(--gl-container-wide);
}

.gl-single-content > .alignfull {
	margin-inline: calc(var(--gl-space-8) * -1);
	max-width: none;
}

.gl-footer-grid {
	display: grid;
	gap: var(--gl-space-8);
	grid-template-columns: minmax(0, 1fr) repeat(2, minmax(10rem, 14rem));
}

.gl-footer-links h2 {
	font-size: var(--gl-font-size-sm);
	margin-block-end: var(--gl-space-3);
	text-transform: uppercase;
}

.gl-footer-links ul {
	list-style: none;
	margin: 0;
	padding: 0;
}

.gl-footer-links li + li {
	margin-block-start: var(--gl-space-2);
}

.gl-footer-links a {
	color: var(--gl-color-text-muted);
	font-size: var(--gl-font-size-sm);
	text-decoration: none;
}

.gl-footer-links a:hover {
	color: var(--gl-color-accent);
}

@media (max-width: 900px) {
	.gl-site-hero {
		grid-template-columns: 1fr;
	}

	.gl-site-card-grid,
	.gl-footer-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.gl-footer-grid > :first-child {
		grid-column: 1 / -1;
	}
}

@media (max-width: 700px) {
	.gl-site-hero,
	.gl-site-section {
		padding: var(--gl-space-8) var(--gl-space-4);
	}

	.gl-site-lede,
	.gl-site-section__header p {
		font-size: var(--gl-font-size-md);
	}

	.gl-site-hero__panel {
		aspect-ratio: 4 / 3;
		min-height: 17rem;
	}

	.gl-site-card-grid,
	.gl-footer-grid,
	.gl-search-panel__row,
	.gl-archive-search {
		grid-template-columns: 1fr;
	}

	.gl-search-panel {
		padding: var(--gl-space-6);
	}

	.gl-empty-state {
		padding: var(--gl-space-6);
	}

	.gl-empty-state p {
		font-size: var(--gl-font-size-md);
	}

	.gl-single-article {
		padding: var(--gl-space-8) var(--gl-space-4);
	}

	.gl-single-content {
		padding: var(--gl-space-6);
	}

	.gl-single-content > .alignfull {
		margin-inline: calc(var(--gl-space-6) * -1);
	}
}
