/* News and media: archive (gp/media-archive) and article (gp/post-detail). */

.gp-media-page > *,
.gp-article-page > * {
	margin-block: 0;
}

.gp-media > *,
.gp-article > *,
.gp-media__body > *,
.gp-article__narrow > *,
.gp-article__head .gp-wrap > * {
	margin-block: 0;
}

/* ---------- Archive head and category pills ---------- */

.gp-media__crumb {
	margin-bottom: 0.5rem !important;
	font-size: var(--wp--preset--font-size--small);
}

.gp-media__crumb a {
	color: var(--wp--preset--color--indigo);
}

.gp-media__cats {
	margin-top: var(--wp--preset--spacing--50) !important;
}

.gp-pills {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.gp-pills > li {
	margin: 0;
}

.gp-pill {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	min-height: 44px;
	padding: 0.4rem 1rem;
	border: 1px solid var(--wp--preset--color--rule);
	border-radius: var(--wp--custom--radius--pill);
	background: var(--wp--preset--color--white);
	color: var(--wp--preset--color--ink);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 600;
	text-decoration: none;
	transition: border-color var(--wp--custom--motion--fast) var(--wp--custom--motion--ease), background-color var(--wp--custom--motion--fast) var(--wp--custom--motion--ease);
}

.gp-pill:hover {
	border-color: var(--wp--preset--color--indigo);
}

.gp-pill[aria-current="page"] {
	border-color: var(--wp--preset--color--ink);
	background: var(--wp--preset--color--ink);
	color: var(--wp--preset--color--white);
}

.gp-pill__count {
	min-width: 1.5rem;
	padding: 0.05rem 0.4rem;
	border-radius: var(--wp--custom--radius--pill);
	background: var(--wp--preset--color--surface);
	color: var(--wp--preset--color--steel);
	font-size: 0.75rem;
	text-align: center;
}

.gp-pill[aria-current="page"] .gp-pill__count {
	background: rgb(255 255 255 / 0.16);
	color: var(--wp--preset--color--white);
}

.gp-media__body {
	padding-block: var(--wp--preset--spacing--70) var(--wp--preset--spacing--80);
}

.gp-media__body > * + * {
	margin-top: var(--wp--preset--spacing--70) !important;
}

.gp-media__subhead {
	margin: 0 0 var(--wp--preset--spacing--50);
	font-size: var(--wp--preset--font-size--heading-3);
}

/* ---------- Article cards ---------- */

.gp-article-grid {
	display: grid;
	gap: clamp(1.25rem, 2.5vw, 2rem);
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 19rem), 1fr));
}

.gp-article-grid > * {
	margin: 0;
}

.gp-article-card {
	position: relative;
	border: 1px solid var(--wp--preset--color--rule);
	border-radius: var(--wp--custom--radius--large);
	background: var(--wp--preset--color--white);
	overflow: hidden;
	transition: box-shadow var(--wp--custom--motion--base) var(--wp--custom--motion--ease), border-color var(--wp--custom--motion--base) var(--wp--custom--motion--ease);
}

.gp-article-card:hover {
	border-color: var(--wp--preset--color--metal);
	box-shadow: var(--wp--preset--shadow--raised, 0 10px 30px rgb(21 22 58 / 0.1));
}

.gp-article-card__link {
	display: flex;
	flex-direction: column;
	height: 100%;
	color: inherit;
	text-decoration: none;
}

.gp-article-card__media {
	position: relative;
	aspect-ratio: 3 / 2;
	overflow: hidden;
	background: var(--wp--preset--color--surface);
}

.gp-article-card__media img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: scale var(--wp--custom--motion--slow) var(--wp--custom--motion--ease);
}

.gp-article-card__link:hover .gp-article-card__media img {
	scale: 1.04;
}

/* No featured image: a typographic panel on the ink blueprint grid, never a stock photo. */
.gp-article-card__blank {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: flex-end;
	padding: 1.25rem;
	background-color: var(--wp--preset--color--ink);
	background-image:
		linear-gradient(rgb(255 255 255 / 0.05) 1px, transparent 1px),
		linear-gradient(90deg, rgb(255 255 255 / 0.05) 1px, transparent 1px),
		radial-gradient(circle at 85% 15%, rgb(3 112 181 / 0.55), transparent 55%),
		linear-gradient(135deg, var(--wp--preset--color--ink), var(--wp--preset--color--indigo-deep));
	background-size: 32px 32px, 32px 32px, auto, auto;
}

.gp-article-card__blank span {
	font-family: var(--wp--preset--font-family--display);
	font-size: clamp(1.25rem, 1rem + 1vw, 1.75rem);
	font-weight: 700;
	line-height: 1.1;
	color: var(--wp--preset--color--white);
	border-left: 3px solid var(--wp--preset--color--amber);
	padding-left: 0.75rem;
}

.gp-article-card__body {
	display: flex;
	flex: 1;
	flex-direction: column;
	gap: 0.6rem;
	padding: 1.25rem 1.35rem 1.5rem;
}

.gp-article-card__body > * {
	margin: 0;
}

.gp-article-card__title {
	font-size: var(--wp--preset--font-size--heading-4);
	line-height: 1.2;
	transition: color var(--wp--custom--motion--fast) var(--wp--custom--motion--ease);
}

.gp-article-card__link:hover .gp-article-card__title {
	color: var(--wp--preset--color--indigo);
}

.gp-article-card__excerpt {
	color: var(--wp--preset--color--steel);
	line-height: 1.6;
}

.gp-article-card__more {
	margin-top: auto !important;
	padding-top: 0.25rem;
	font-weight: 600;
	color: var(--wp--preset--color--indigo);
}

.gp-article-card__more::after {
	content: " →";
}

/* Featured story: image and text side by side on wide screens. */
@media (min-width: 56em) {
	.gp-article-card--featured .gp-article-card__link {
		display: grid;
		grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr);
	}

	.gp-article-card--featured .gp-article-card__media {
		aspect-ratio: auto;
		min-height: 24rem;
	}

	.gp-article-card--featured .gp-article-card__body {
		justify-content: center;
		padding: clamp(2rem, 4vw, 3.5rem);
	}
}

.gp-article-card--featured .gp-article-card__title {
	font-size: var(--wp--preset--font-size--heading-2);
}

/* ---------- Meta line ---------- */

.gp-article-meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.25rem 0.5rem;
	margin: 0;
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--steel);
}

.gp-article-meta > * {
	white-space: nowrap;
}

/* Separator travels with the item after it, so a wrapped line never starts with a stray dot. */
.gp-article-meta > * + *::before {
	content: "·";
	margin-right: 0.5rem;
	color: var(--wp--preset--color--metal);
}

.gp-article-meta__cat {
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--wp--preset--color--blue);
}

/* ---------- Pagination ---------- */

.gp-pagination ul {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 0.5rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.gp-pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 44px;
	min-height: 44px;
	padding: 0 0.85rem;
	border: 1px solid var(--wp--preset--color--rule);
	border-radius: var(--wp--custom--radius--medium);
	color: var(--wp--preset--color--ink);
	font-weight: 600;
	text-decoration: none;
}

.gp-pagination a.page-numbers:hover {
	border-color: var(--wp--preset--color--indigo);
	color: var(--wp--preset--color--indigo);
}

.gp-pagination .page-numbers.current {
	border-color: var(--wp--preset--color--ink);
	background: var(--wp--preset--color--ink);
	color: var(--wp--preset--color--white);
}

/* ---------- Empty state ---------- */

.gp-media-empty {
	display: grid;
	justify-items: center;
	gap: 1rem;
	max-width: 40rem;
	margin-inline: auto;
	padding: clamp(2.5rem, 6vw, 4.5rem) clamp(1.25rem, 4vw, 3rem);
	border: 1px dashed var(--wp--preset--color--metal);
	border-radius: var(--wp--custom--radius--large);
	background: var(--wp--preset--color--surface);
	text-align: center;
}

.gp-media-empty > * {
	margin: 0;
}

.gp-media-empty__icon {
	width: 3.5rem;
	height: 3.5rem;
	color: var(--wp--preset--color--indigo);
}

.gp-media-empty h2 {
	font-size: var(--wp--preset--font-size--heading-3);
}

.gp-media-empty p {
	color: var(--wp--preset--color--steel);
}

.gp-media-empty .wp-block-buttons {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 0.75rem;
}

/* ---------- Article ---------- */

.gp-article__narrow {
	max-width: calc(48rem + 2 * var(--gp-gutter));
}

.gp-article__head {
	padding-block: var(--wp--preset--spacing--60) var(--wp--preset--spacing--50);
}

.gp-article__head .gp-wrap > * + * {
	margin-top: 1rem;
}

.gp-crumbs ol {
	display: flex;
	flex-wrap: wrap;
	gap: 0.25rem 0.5rem;
	margin: 0;
	padding: 0;
	list-style: none;
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--steel);
}

.gp-crumbs li {
	margin: 0;
}

.gp-crumbs li + li::before {
	content: "/";
	margin-right: 0.5rem;
	color: var(--wp--preset--color--metal);
}

.gp-crumbs a {
	color: var(--wp--preset--color--indigo);
}

.gp-crumbs [aria-current] {
	display: inline-block;
	max-width: 24ch;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	vertical-align: bottom;
}

.gp-article__title {
	font-size: var(--wp--preset--font-size--heading-1);
	line-height: 1.08;
	letter-spacing: -0.015em;
	overflow-wrap: anywhere;
}

.gp-article__lead {
	font-size: var(--wp--preset--font-size--lead);
	color: var(--wp--preset--color--steel);
}

.gp-article__image {
	max-width: calc(64rem + 2 * var(--gp-gutter));
	margin: 0 auto;
}

.gp-article__image img {
	display: block;
	width: 100%;
	height: auto;
	max-height: 36rem;
	object-fit: cover;
	border-radius: var(--wp--custom--radius--large);
}

.gp-article__image figcaption {
	margin-top: 0.5rem;
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--steel);
}

/* Styled prose for post content. */
.gp-prose {
	padding-block: var(--wp--preset--spacing--60);
	font-size: 1.0625rem;
	line-height: 1.75;
	overflow-wrap: break-word;
}

.gp-prose > * {
	margin-block: 0;
}

.gp-prose > * + * {
	margin-top: 1.25em;
}

.gp-prose > :is(h2, h3, h4) {
	margin-top: 2em;
	line-height: 1.2;
}

.gp-prose h2 {
	font-size: var(--wp--preset--font-size--heading-3);
}

.gp-prose h3 {
	font-size: var(--wp--preset--font-size--heading-4);
}

.gp-prose a {
	color: var(--wp--preset--color--indigo);
	text-underline-offset: 0.15em;
}

.gp-prose :is(ul, ol) {
	padding-left: 1.4em;
}

.gp-prose li + li {
	margin-top: 0.4em;
}

.gp-prose blockquote {
	margin-inline: 0;
	padding: 0.25rem 0 0.25rem 1.25rem;
	border-left: 3px solid var(--wp--preset--color--blue);
	font-size: var(--wp--preset--font-size--lead);
	color: var(--wp--preset--color--ink);
}

.gp-prose img {
	max-width: 100%;
	height: auto;
	border-radius: var(--wp--custom--radius--medium);
}

.gp-prose table {
	width: 100%;
	border-collapse: collapse;
	font-size: var(--wp--preset--font-size--small);
}

.gp-prose :is(th, td) {
	padding: 0.6rem 0.75rem;
	border-bottom: 1px solid var(--wp--preset--color--rule);
	text-align: left;
}

/* Share links. */
.gp-share {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.75rem 1rem;
	padding-block: var(--wp--preset--spacing--40);
	border-block: 1px solid var(--wp--preset--color--rule);
}

.gp-share__title {
	margin: 0;
	font-size: var(--wp--preset--font-size--body);
}

.gp-share__list {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.gp-share__list li {
	margin: 0;
}

.gp-share__link {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	padding: 0 1rem;
	border: 1px solid var(--wp--preset--color--rule);
	border-radius: var(--wp--custom--radius--pill);
	color: var(--wp--preset--color--ink);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 600;
	text-decoration: none;
}

.gp-share__link:hover {
	border-color: var(--wp--preset--color--indigo);
	color: var(--wp--preset--color--indigo);
}

.gp-share__link.is-copied {
	border-color: var(--wp--preset--color--blue);
	color: var(--wp--preset--color--blue);
}

/* Previous / next. */
.gp-adjacent {
	display: grid;
	gap: 1rem;
	padding-block: var(--wp--preset--spacing--60);
}

@media (min-width: 40em) {
	.gp-adjacent {
		grid-template-columns: 1fr 1fr;
	}
}

.gp-adjacent__link {
	display: grid;
	gap: 0.25rem;
	padding: 1rem 1.25rem;
	border: 1px solid var(--wp--preset--color--rule);
	border-radius: var(--wp--custom--radius--medium);
	color: var(--wp--preset--color--ink);
	text-decoration: none;
}

.gp-adjacent__link:hover {
	border-color: var(--wp--preset--color--indigo);
}

.gp-adjacent__link--next {
	grid-column: -2;
	text-align: right;
}

.gp-adjacent__dir {
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--steel);
}

.gp-adjacent__title {
	font-weight: 600;
	overflow-wrap: anywhere;
}

.gp-related {
	background: var(--wp--preset--color--surface);
}

.gp-related h2 {
	margin: 0 0 var(--wp--preset--spacing--50);
	font-size: var(--wp--preset--font-size--heading-3);
}

/* Closing call to action. */
.gp-article-cta {
	padding-block: var(--wp--preset--spacing--70);
	background: var(--wp--preset--gradient--ink, var(--wp--preset--color--ink));
	background-color: var(--wp--preset--color--ink);
}

.gp-article-cta__inner {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 1.5rem 3rem;
}

.gp-article-cta__inner > * {
	margin: 0;
}

.gp-article-cta h2 {
	margin: 0;
	font-size: var(--wp--preset--font-size--heading-3);
}

.gp-article-cta p {
	margin: 0.5rem 0 0;
}

@media (prefers-reduced-motion: reduce) {
	.gp-article-card,
	.gp-article-card__media img,
	.gp-pill {
		transition: none;
	}

	.gp-article-card__link:hover .gp-article-card__media img {
		scale: 1;
	}
}

/* Cards: the category sits on its own line, date and reading time below it. */
.gp-article-card .gp-article-meta__cat {
	flex-basis: 100%;
}

.gp-article-card .gp-article-meta__cat + *::before {
	content: none;
}
