/**
 * Página individual do artigo.
 *
 * Carregado somente em is_single(). A composição deriva da linguagem
 * editorial do Blog e da categoria: o protótipo não tem rota interna.
 */

.single-post {
	background-color: var(--color-surface);
}

.single-post article.post,
.single-post article.type-post {
	margin-block-end: 0;
}

.single-article {
	padding-block-start: var(--space-section-compact);
}

.single-article__header {
	margin-block-end: var(--space-xl);
}

.single-article__category {
	margin: 0;
	color: var(--color-brand-primary);
	font-size: var(--wp--preset--font-size--sm, 0.875rem);
	font-weight: 600;
	letter-spacing: 0.08em;
	line-height: 1.4;
	text-transform: uppercase;
}

.single-article__category-link,
.single-article__category-name {
	display: inline-flex;
	align-items: center;
	min-height: var(--control-height);
	color: inherit;
	text-decoration: none;
}

.single-article__category-link:hover,
.single-article__category-link:focus-visible {
	color: var(--color-brand-primary-dark);
	text-decoration: underline;
	text-underline-offset: 0.12em;
}

.single-article__category-link:active {
	color: var(--color-brand-primary-dark);
}

.single-article__category-link:focus-visible {
	outline: 2px solid var(--color-focus);
	outline-offset: 3px;
}

.single-article__title {
	margin: 0 0 var(--space-md);
	color: var(--color-text);
	font-size: var(--wp--preset--font-size--4-xl, clamp(2.5rem, 2rem + 2.5vw, 4rem));
	font-weight: 700;
	line-height: 1.15;
	overflow-wrap: break-word;
}

.single-article__meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	column-gap: var(--space-xs);
	row-gap: var(--space-2xs);
	margin: 0;
	color: var(--color-text-muted);
	font-size: var(--wp--preset--font-size--sm, 0.875rem);
	line-height: 1.5;
}

.single-article__media-wrap {
	margin-block-end: var(--space-2xl);
}

.single-article__figure {
	display: flex;
	flex-direction: column;
	align-items: center;
	margin-block: 0;
	margin-inline: auto;
}

.single-article__image,
.single-article__placeholder {
	display: block;
	width: 100%;
	max-width: 100%;
	margin-inline: auto;
	border-radius: var(--radius-md);
}

img.single-article__image {
	height: auto;
	aspect-ratio: 16 / 10;
	object-fit: cover;
	object-position: center;
}

.single-article__placeholder {
	display: flex;
	align-items: center;
	justify-content: center;
	aspect-ratio: 16 / 10;
	min-height: 12.5rem;
	background-image: linear-gradient(
		160deg,
		var(--color-surface-muted) 0%,
		color-mix(in srgb, var(--color-brand-primary) 22%, var(--color-surface-muted)) 100%
	);
}

.single-article__placeholder-icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 3.5rem;
	height: 3.5rem;
	color: var(--color-brand-primary);
}

.single-article__placeholder-icon svg {
	display: block;
	width: 100%;
	height: 100%;
}

.single-article__caption {
	margin-block-start: var(--space-sm);
	color: var(--color-text-muted);
	font-size: var(--wp--preset--font-size--sm, 0.875rem);
	line-height: 1.5;
}

.single-article__content {
	padding-inline: var(--container-gutter);
}

.single-post .entry-content {
	margin-block: 0;
}

.single-article .entry-content {
	color: var(--color-text);
	font-size: 1rem;
	line-height: 1.7;
}

.single-article .entry-content > *:first-child {
	margin-block-start: 0;
}

.single-article .entry-content > *:last-child {
	margin-block-end: 0;
}

.single-article .entry-content h2,
.single-article .entry-content h3,
.single-article .entry-content h4 {
	overflow-wrap: break-word;
}

.single-article .entry-content h2 {
	margin-block-start: var(--space-2xl);
}

.single-article .entry-content h3,
.single-article .entry-content h4 {
	margin-block-start: var(--space-xl);
}

.single-article .entry-content p,
.single-article .entry-content ul,
.single-article .entry-content ol {
	margin-block: 0 var(--space-md);
}

.single-article .entry-content li + li {
	margin-block-start: var(--space-xs);
}

.single-article .entry-content li > ul,
.single-article .entry-content li > ol {
	margin-block: var(--space-xs) 0;
}

.single-article .entry-content a {
	overflow-wrap: anywhere;
}

.single-article .entry-content a:hover,
.single-article .entry-content a:focus-visible {
	color: var(--color-brand-primary-dark);
	text-decoration-thickness: 0.12em;
}

.single-article .entry-content a:active {
	color: var(--color-brand-primary-dark);
}

.single-article .entry-content a:visited {
	color: var(--color-brand-primary-dark);
}

.single-article .entry-content .wp-block-button__link,
.single-article .entry-content .wp-element-button {
	overflow-wrap: break-word;
}

.single-article .entry-content .wp-block-button__link:visited,
.single-article .entry-content .wp-element-button:visited {
	color: var(--color-text-inverse);
}

.single-article .entry-content blockquote,
.single-article .entry-content .wp-block-quote,
.single-article .entry-content .wp-block-pullquote {
	margin-block: var(--space-xl);
	padding-inline-start: var(--space-lg);
	border-inline-start: 3px solid var(--color-brand-accent);
	color: var(--color-brand-primary);
	font-size: var(--wp--preset--font-size--lg, 1.125rem);
	font-weight: 600;
	line-height: 1.5;
}

.single-article .entry-content .wp-block-quote p,
.single-article .entry-content .wp-block-pullquote p {
	margin-block: 0 var(--space-sm);
}

.single-article .entry-content .wp-block-quote cite,
.single-article .entry-content .wp-block-pullquote cite {
	color: var(--color-text-muted);
	font-size: var(--wp--preset--font-size--sm, 0.875rem);
	font-weight: 500;
	font-style: normal;
}

.single-article .entry-content .wp-block-image img,
.single-article .entry-content .wp-block-gallery img {
	border-radius: var(--radius-md);
}

.single-article .entry-content figcaption,
.single-article .entry-content .wp-element-caption {
	margin-block-start: var(--space-xs);
	color: var(--color-text-muted);
	font-size: var(--wp--preset--font-size--sm, 0.875rem);
}

.single-article .entry-content .wp-block-gallery {
	gap: var(--space-sm);
}

.single-article .entry-content hr,
.single-article .entry-content .wp-block-separator {
	border: 0;
	border-block-start: var(--border-width) solid var(--color-border);
	margin-block: var(--space-2xl);
	background: none;
}

.single-article .entry-content .wp-block-table {
	display: block;
	max-width: 100%;
	overflow-x: auto;
}

.single-article .entry-content pre {
	border-radius: var(--radius-sm);
	max-width: 100%;
}

.single-article .entry-content code {
	overflow-wrap: anywhere;
}

.single-article .entry-content .wp-block-embed {
	margin-block: var(--space-xl);
}

.single-article .entry-content .wp-block-embed iframe {
	width: 100%;
}

.single-article .entry-content .wp-block-columns {
	gap: var(--space-lg);
}

.single-article .entry-content .wp-block-column {
	min-width: 0;
}

.single-article .entry-content .wp-block-group {
	margin-block: var(--space-lg);
}

.single-article .entry-content .wp-block-buttons {
	margin-block: var(--space-lg);
}

.single-article .page-links {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--space-xs);
	margin-block-start: var(--space-2xl);
	padding-block-start: var(--space-xl);
	border-block-start: var(--border-width) solid var(--color-surface-muted);
}

.single-article .page-links__label {
	margin-inline-end: var(--space-xs);
	font-weight: 600;
}

.single-article .page-links a,
.single-article .page-links .post-page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: var(--control-height);
	min-height: var(--control-height);
	padding: var(--space-xs) var(--space-sm);
	border: var(--border-width) solid var(--color-surface-muted);
	border-radius: var(--radius-sm);
	color: var(--color-text);
	font-weight: 500;
	text-decoration: none;
	transition: color var(--transition-fast), background-color var(--transition-fast), border-color var(--transition-fast);
}

.single-article .page-links a:hover,
.single-article .page-links a:focus-visible {
	color: var(--color-brand-primary);
	border-color: var(--color-brand-primary);
}

.single-article .page-links a:active {
	color: var(--color-brand-primary-dark);
}

.single-article .page-links .post-page-numbers.current {
	background-color: var(--color-brand-primary);
	border-color: var(--color-brand-primary);
	color: var(--color-text-inverse);
	font-weight: 600;
}

.single-article__footer {
	margin-block-start: var(--space-2xl);
	padding-block-start: var(--space-xl);
	border-block-start: var(--border-width) solid var(--color-surface-muted);
}

.single-article__back {
	margin: 0;
}

.single-article__back .text-link {
	min-height: var(--control-height);
}

.related-posts {
	padding-block: var(--space-section-compact);
	border-block-start: var(--border-width) solid var(--color-surface-muted);
	background-color: var(--color-surface);
}

.related-posts__title {
	margin: 0 0 var(--space-xl);
	font-size: var(--wp--preset--font-size--2-xl, 1.5rem);
	font-weight: 600;
	line-height: 1.25;
	overflow-wrap: break-word;
}

.related-posts__grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: var(--space-xl);
}

.related-posts__grid--1 {
	max-width: 22.5rem;
}

.single-post__navigation {
	padding-block: var(--space-2xl) var(--space-section-compact);
	border-block-start: var(--border-width) solid var(--color-surface-muted);
}

.single-post .post-navigation {
	margin-block: 0;
}

.single-post .post-navigation .nav-links {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: var(--space-md);
}

.single-post .post-navigation .nav-previous a,
.single-post .post-navigation .nav-next a {
	display: flex;
	align-items: flex-start;
	gap: var(--space-sm);
	min-height: var(--control-height);
	padding: var(--space-md);
	border: var(--border-width) solid var(--color-surface-muted);
	border-radius: var(--radius-md);
	color: var(--color-text);
	text-decoration: none;
	transition: color var(--transition-fast), border-color var(--transition-fast), background-color var(--transition-fast);
}

.single-post .post-navigation .nav-next a {
	justify-content: flex-end;
	text-align: end;
}

.single-post .post-navigation .nav-previous a:hover,
.single-post .post-navigation .nav-previous a:focus-visible,
.single-post .post-navigation .nav-next a:hover,
.single-post .post-navigation .nav-next a:focus-visible {
	color: var(--color-brand-primary);
	border-color: var(--color-brand-primary);
}

.single-post .post-navigation .nav-previous a:active,
.single-post .post-navigation .nav-next a:active {
	color: var(--color-brand-primary-dark);
	border-color: var(--color-brand-primary-dark);
}

.single-post .post-navigation .nav-previous a:focus-visible,
.single-post .post-navigation .nav-next a:focus-visible {
	outline: 2px solid var(--color-focus);
	outline-offset: 3px;
}

.single-post .post-navigation__copy {
	display: flex;
	flex-direction: column;
	gap: var(--space-2xs);
	min-width: 0;
}

.single-post .post-navigation__label {
	color: var(--color-brand-primary);
	font-size: var(--wp--preset--font-size--sm, 0.875rem);
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

.single-post .post-navigation__title {
	font-weight: 600;
	line-height: 1.35;
	overflow-wrap: break-word;
}

.single-post .post-navigation__icon {
	display: inline-flex;
	flex: 0 0 auto;
	align-items: center;
	justify-content: center;
	width: 1.5rem;
	height: 1.5rem;
	margin-block-start: 0.15rem;
	color: var(--color-brand-primary);
}

.single-post .post-navigation__icon svg {
	display: block;
	width: 1rem;
	height: 1rem;
}

@media (min-width: 48.875rem) {
	.related-posts__grid--2,
	.related-posts__grid--3 {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.single-post .post-navigation .nav-links {
		grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	}

	.single-post .post-navigation .nav-next {
		justify-self: stretch;
	}
}

@media (min-width: 64rem) {
	.related-posts__grid--3 {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

@media (prefers-reduced-motion: reduce) {
	.single-article .page-links a,
	.single-article .page-links .post-page-numbers,
	.single-post .post-navigation .nav-previous a,
	.single-post .post-navigation .nav-next a {
		transition: none;
	}
}

@media (hover: none) {
	.single-article__category-link,
	.single-article .entry-content a,
	.single-article__back .text-link,
	.single-post .post-navigation .nav-previous a,
	.single-post .post-navigation .nav-next a,
	.related-posts .post-card__title a,
	.related-posts .post-card__category-link {
		text-decoration-thickness: inherit;
	}
}
