/*
 * Perfil visual confirmado do Reflexo Digital.
 *
 * A fonte, logótipo branco, escala Roboto e tons neutros resultam da
 * referência pública da marca. A composição editorial é funcional e
 * deliberadamente independente do perfil visual do Jornal.
 */
@font-face {
	font-family: "Roboto";
	font-style: normal;
	font-weight: 400;
	font-display: swap;
	src: url("../../fonts/roboto/roboto-400.ttf") format("truetype");
}

@font-face {
	font-family: "Roboto";
	font-style: normal;
	font-weight: 500;
	font-display: swap;
	src: url("../../fonts/roboto/roboto-500.ttf") format("truetype");
}

@font-face {
	font-family: "Roboto";
	font-style: normal;
	font-weight: 700;
	font-display: swap;
	src: url("../../fonts/roboto/roboto-700.ttf") format("truetype");
}

@font-face {
	font-family: "Roboto";
	font-style: normal;
	font-weight: 900;
	font-display: swap;
	src: url("../../fonts/roboto/roboto-900.ttf") format("truetype");
}

body.rfx-site-reflexo {
	/*
	 * Escala estrutural própria da marca. O Jornal escolhe a sua escala no
	 * respetivo perfil; estes valores não devem herdar decisões editoriais de
	 * outra publicação.
	 */
	--rfx-reflexo-container-content: 72rem;
	--rfx-reflexo-container-reading: 42rem;
	--rfx-reflexo-container-gutter: 2rem;
	--rfx-reflexo-main-column: 70%;
	--rfx-reflexo-sidebar-column: 30%;
	/* Fonte de verdade da identidade Reflexo; não é um token global RFX. */
	--rfx-reflexo-brand-primary: #a30e07;
	--rfx-reflexo-brand-hover: color-mix(in srgb, var(--rfx-reflexo-brand-primary) 82%, #000000);
	--rfx-reflexo-brand-on-primary: #ffffff;
	--rfx-reflexo-brand-on-primary-hover: color-mix(in srgb, #ffffff 88%, var(--rfx-reflexo-brand-primary));
	--rfx-container-content: var(--rfx-reflexo-container-content);
	--rfx-container-reading: var(--rfx-reflexo-container-reading);
	--rfx-container-gutter: var(--rfx-reflexo-container-gutter);
	--rfx-color-surface: #ffffff;
	--rfx-color-surface-muted: #d5d7d8;
	--rfx-color-surface-subtle: #f4f4f4;
	--rfx-color-text: #333333;
	--rfx-color-text-strong: #222222;
	--rfx-color-text-muted: #999999;
	--rfx-color-border: #cccccc;
	--rfx-color-action: var(--rfx-reflexo-brand-primary);
	--rfx-color-action-hover: var(--rfx-reflexo-brand-hover);
	--rfx-color-action-text: #ffffff;
	--rfx-brand-primary: var(--rfx-reflexo-brand-primary);
	--rfx-brand-secondary: var(--rfx-color-surface-muted);
	--rfx-brand-text: var(--rfx-color-text);
	--rfx-brand-muted: var(--rfx-color-text-muted);
	--rfx-color-surface-inverse: #222222;
	--rfx-color-text-inverse: #ffffff;
	--rfx-focus-outline-color: var(--rfx-reflexo-brand-primary);
	--rfx-container-width: var(--rfx-container-content);
	--rfx-font-family-sans: "Roboto", sans-serif;
	--rfx-font-family-serif: "Roboto", sans-serif;
	--rfx-font-family-display: "Roboto", sans-serif;
	--rfx-font-size-body: 1rem;
	--rfx-line-height-body: 1.5;
	--rfx-letter-spacing-body: 0;

	color: var(--rfx-color-text);
	font-family: var(--rfx-font-family-sans);
	font-size: var(--rfx-font-size-body);
	line-height: var(--rfx-line-height-body);
}

/*
 * GeneratePress emite a largura configurada pelo Customizer para
 * `.grid-container`. Mantemos essa configuração intacta e aplicamos a escala
 * da marca apenas ao wrapper estrutural do Reflexo.
 */
body.rfx-site-reflexo #page.site.grid-container {
	box-sizing: border-box;
	width: min(
		calc(100% - (var(--rfx-reflexo-container-gutter) * 2)),
		var(--rfx-reflexo-container-content)
	);
	max-width: var(--rfx-reflexo-container-content);
	margin-right: auto;
	margin-left: auto;
}

/* O Single Reflexo no STAGING usa o contentor GeneratePress integral. */
body.rfx-site-reflexo.single-post #page.site.grid-container {
	width: 100%;
	max-width: 75rem;
}

body.rfx-site-reflexo :is(.rfx-container--inner, .gbp-section__inner) {
	width: min(
		calc(100% - (var(--rfx-reflexo-container-gutter) * 2)),
		var(--rfx-reflexo-container-content)
	);
	max-width: var(--rfx-reflexo-container-content);
}

@media (min-width: 48.0625rem) {
	body.rfx-site-reflexo.right-sidebar .content-area {
		width: var(--rfx-reflexo-main-column);
	}

	body.rfx-site-reflexo.right-sidebar #right-sidebar {
		width: var(--rfx-reflexo-sidebar-column);
	}
}

body.rfx-site-reflexo.single-post .entry-content {
	max-width: var(--rfx-reflexo-container-reading);
	margin-right: auto;
	margin-left: auto;
}

body.rfx-site-reflexo :is(h1, h2, h3, h4, h5, h6) {
	color: var(--rfx-color-text-strong);
	font-family: var(--rfx-font-family-display);
	font-weight: var(--rfx-font-weight-bold);
	letter-spacing: 0;
}

body.rfx-site-reflexo h1 {
	font-size: clamp(2rem, 4vw, 2.625rem);
	line-height: 1.15;
}

body.rfx-site-reflexo h2 {
	font-size: clamp(1.5rem, 3vw, 2rem);
	line-height: 1.2;
}

body.rfx-site-reflexo h3 {
	font-size: 1.25rem;
	line-height: 1.25;
}

/* Chrome: o vermelho canónico é aplicado apenas ao perfil Reflexo. */
.rfx-reflexo-site-header {
	color: var(--rfx-reflexo-brand-on-primary);
	background: var(--rfx-reflexo-brand-primary);
}

.rfx-reflexo-site-header__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	min-height: 5.5rem;
	padding-top: var(--rfx-space-4);
	padding-bottom: var(--rfx-space-4);
}

.rfx-reflexo-site-header__brand,
.rfx-reflexo-footer__brand a {
	display: inline-flex;
	align-items: center;
}

.rfx-reflexo-site-header__brand img {
	display: block;
	width: min(14.25rem, 48vw);
	height: auto;
}

.rfx-reflexo-site-header__actions {
	display: flex;
	align-items: center;
	gap: var(--rfx-space-4);
}

.rfx-reflexo-site-header__search,
.rfx-reflexo-site-header__login,
.rfx-reflexo-site-header__menu-toggle {
	color: inherit;
	font-family: var(--rfx-font-family-sans);
	font-size: 0.75rem;
	font-weight: var(--rfx-font-weight-bold);
	letter-spacing: 0.02em;
	text-decoration: none;
	text-transform: uppercase;
}

.rfx-reflexo-site-header__search svg,
.rfx-reflexo-site-header__menu-toggle svg {
	width: 1.25rem;
	height: 1.25rem;
	fill: currentcolor;
}

.rfx-reflexo-site-header__search {
	display: inline-flex;
}

.rfx-reflexo-site-header__menu-toggle {
	display: none;
	align-items: center;
	gap: var(--rfx-space-2);
	padding: 0;
	background: transparent;
	border: 0;
}

.rfx-reflexo-navigation {
	color: var(--rfx-reflexo-brand-on-primary);
	background: var(--rfx-reflexo-brand-primary);
	border-top: var(--rfx-border-width) solid color-mix(in srgb, var(--rfx-reflexo-brand-on-primary) 34%, transparent);
}

.rfx-reflexo-navigation__inner {
	padding-top: var(--rfx-space-4);
	padding-bottom: var(--rfx-space-4);
}

.rfx-reflexo-menu {
	display: flex;
	flex-wrap: nowrap;
	gap: var(--rfx-space-5);
	color: var(--rfx-reflexo-brand-on-primary);
}

.rfx-reflexo-menu a {
	white-space: nowrap;
}

.rfx-reflexo-footer .rfx-reflexo-menu {
	flex-direction: column;
	align-items: flex-start;
	gap: var(--rfx-space-3);
}

.rfx-reflexo-site-header :is(a, a:visited, button),
.rfx-reflexo-menu :is(a, a:visited) {
	color: var(--rfx-reflexo-brand-on-primary);
	font-size: 0.75rem;
	letter-spacing: 0.02em;
}

.rfx-reflexo-menu :is(.current-menu-item, .current-menu-ancestor, .current_page_item) > a,
.rfx-reflexo-menu a:hover,
.rfx-reflexo-menu a:focus-visible,
.rfx-reflexo-menu a:active {
	color: var(--rfx-reflexo-brand-on-primary);
	text-decoration: underline;
	text-decoration-thickness: 0.125rem;
	text-underline-offset: var(--rfx-space-2);
}

.rfx-reflexo-site-header a:hover,
.rfx-reflexo-site-header a:focus-visible,
.rfx-reflexo-site-header button:hover,
.rfx-reflexo-site-header button:focus-visible {
	color: var(--rfx-reflexo-brand-on-primary-hover);
}

body.rfx-site-reflexo :is(
	.rfx-reflexo-site-header a,
	.rfx-reflexo-site-header button,
	.rfx-reflexo-menu a,
	.rfx-reflexo-entry-labels a,
	.rfx-reflexo-post-meta__author a,
	.rfx-reflexo-related-posts h3 a,
	.rfx-reflexo-homepage-card__title a,
	.rfx-reflexo-homepage-card__author,
	.rfx-reflexo-homepage-card__category a
):focus-visible {
	outline: var(--rfx-focus-outline-width) solid var(--rfx-reflexo-brand-on-primary);
	outline-offset: var(--rfx-focus-outline-offset);
}

.rfx-reflexo-footer {
	margin-top: var(--rfx-space-16);
	padding: var(--rfx-space-12) 0 var(--rfx-space-6);
	color: var(--rfx-reflexo-brand-on-primary);
	background: var(--rfx-reflexo-brand-primary);
}

.rfx-reflexo-footer__brand img {
	display: block;
	width: 12rem;
	height: auto;
}

.rfx-reflexo-footer__columns {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: var(--rfx-space-12);
	padding: var(--rfx-space-8) 0;
}

body.rfx-site-reflexo .rfx-reflexo-footer h2 {
	margin: 0 0 var(--rfx-space-4);
	color: inherit;
	font-size: 0.875rem;
	text-transform: uppercase;
}

.rfx-reflexo-footer :is(.rfx-list-menu, .rfx-list-menu-geral) {
	color: var(--rfx-reflexo-brand-on-primary);
}

.rfx-reflexo-footer :is(a, a:visited) {
	color: var(--rfx-reflexo-brand-on-primary);
	text-decoration: none;
}

.rfx-reflexo-footer :is(a:hover, a:focus-visible, a:active) {
	color: var(--rfx-reflexo-brand-on-primary-hover);
	text-decoration: underline;
}

.rfx-reflexo-footer a:focus-visible {
	outline: var(--rfx-focus-outline-width) solid var(--rfx-reflexo-brand-on-primary);
	outline-offset: var(--rfx-focus-outline-offset);
}

.rfx-reflexo-footer :is(.rfx-list-menu, .rfx-list-menu-geral) li + li {
	margin-top: var(--rfx-space-2);
}

.rfx-reflexo-footer__legal {
	padding-top: var(--rfx-space-4);
	margin: 0;
	color: var(--rfx-reflexo-brand-on-primary-hover);
	font-size: var(--rfx-font-size-caption);
	border-top: var(--rfx-border-width) solid rgba(255, 255, 255, 0.22);
}

/* Base editorial: sem categorias ou formato assumidos pela marca. */
body.rfx-site-reflexo :is(.site-content, .inside-article, .page-header) {
	font-family: var(--rfx-font-family-sans);
}

.rfx-reflexo-entry-labels {
	display: flex;
	flex-wrap: wrap;
	gap: var(--rfx-space-2);
	margin-top: 0;
	margin-bottom: var(--rfx-space-3);
	color: var(--rfx-color-text-muted);
}

.rfx-reflexo-entry-labels a,
.rfx-reflexo-entry-labels a:visited {
	color: var(--rfx-reflexo-brand-primary);
	text-decoration: none;
}

.rfx-reflexo-entry-labels a:hover,
.rfx-reflexo-entry-labels a:focus-visible,
.rfx-reflexo-entry-labels a:active {
	color: var(--rfx-reflexo-brand-hover);
	text-decoration: underline;
}

.rfx-reflexo-entry-labels span + span::before,
.rfx-reflexo-entry-labels a + span::before {
	margin-right: var(--rfx-space-2);
	content: "·";
}

.rfx-reflexo-post-meta {
	display: flex;
	align-items: center;
	gap: var(--rfx-space-3);
	padding: var(--rfx-space-4) 0;
	margin: var(--rfx-space-4) 0;
	border-top: var(--rfx-border-width) solid var(--rfx-color-border);
	border-bottom: var(--rfx-border-width) solid var(--rfx-color-border);
}

.rfx-reflexo-post-meta__avatar .avatar,
.rfx-reflexo-author-profile__avatar .avatar {
	display: block;
	border-radius: 50%;
}

.rfx-reflexo-post-meta__details {
	display: grid;
	gap: var(--rfx-space-1);
}

.rfx-reflexo-post-meta :is(p, time) {
	margin: 0;
	color: var(--rfx-color-text-muted);
	font-size: var(--rfx-font-size-caption);
}

.rfx-reflexo-post-meta__author a {
	color: var(--rfx-color-text-strong);
	font-weight: var(--rfx-font-weight-bold);
	text-decoration: none;
}

.rfx-reflexo-post-meta__author a:visited {
	color: var(--rfx-color-text-strong);
}

.rfx-reflexo-post-meta__author a:hover,
.rfx-reflexo-post-meta__author a:focus-visible,
.rfx-reflexo-post-meta__author a:active {
	color: var(--rfx-reflexo-brand-primary);
}

.rfx-reflexo-entry-lead {
	margin: var(--rfx-space-5) 0 var(--rfx-space-6);
	font-size: var(--rfx-font-size-body-large);
	font-weight: var(--rfx-font-weight-medium);
	line-height: 1.5;
}

.rfx-reflexo-author-profile {
	display: flex;
	align-items: center;
	gap: var(--rfx-space-5);
	padding: var(--rfx-space-6) 0;
	margin-bottom: var(--rfx-space-8);
	border-bottom: var(--rfx-border-width) solid var(--rfx-color-border);
}

.rfx-reflexo-author-profile h1,
.rfx-reflexo-author-profile p {
	margin: 0;
}

.rfx-reflexo-author-profile h1 {
	margin-bottom: var(--rfx-space-2);
}

body.rfx-site-reflexo .rfx-editorial-listing-sidebar__section {
	padding-bottom: var(--rfx-space-6);
	margin-bottom: var(--rfx-space-6);
	border-bottom: var(--rfx-border-width) solid var(--rfx-color-border);
}

body.rfx-site-reflexo :is(
	.rfx-editorial-listing-sidebar__title,
	.rfx-reflexo-homepage__section > h2,
	.rfx-reflexo-homepage__related > h2,
	.rfx-reflexo-related-posts__title,
	.rfx-reflexo-section-heading,
	.rfx-reflexo-sidebar-heading
) {
	color: var(--rfx-reflexo-brand-primary);
}

body.rfx-site-reflexo .rfx-editorial-listing-sidebar__title {
	padding-bottom: var(--rfx-space-3);
	margin: 0 0 var(--rfx-space-4);
	font-size: 1.25rem;
	border-bottom: 0.125rem solid var(--rfx-reflexo-brand-primary);
}

body.rfx-site-reflexo .rfx-editorial-listing-sidebar__list {
	display: grid;
	gap: var(--rfx-space-4);
	padding: 0;
	margin: 0;
	list-style: none;
}

body.rfx-site-reflexo .rfx-editorial-listing-sidebar__item-title,
body.rfx-site-reflexo .rfx-editorial-listing-sidebar__date {
	margin: 0;
}

body.rfx-site-reflexo .rfx-editorial-listing-sidebar__item-title {
	font-size: 1rem;
}

body.rfx-site-reflexo .rfx-editorial-listing-sidebar__item-title a {
	color: inherit;
	text-decoration: none;
}

body.rfx-site-reflexo .rfx-editorial-listing-sidebar__date {
	color: var(--rfx-color-text-muted);
	font-size: var(--rfx-font-size-caption);
}

.rfx-reflexo-related-posts {
	padding-top: var(--rfx-space-8);
	margin-top: var(--rfx-space-8);
	border-top: var(--rfx-border-width) solid var(--rfx-color-border);
}

.rfx-reflexo-related-posts__title {
	margin: 0 0 var(--rfx-space-5);
}

.rfx-reflexo-related-posts__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: var(--rfx-space-5);
}

.rfx-reflexo-related-posts__image,
.rfx-reflexo-related-posts__image img {
	display: block;
	width: 100%;
}

.rfx-reflexo-related-posts__image img {
	aspect-ratio: 4 / 3;
	object-fit: cover;
}

.rfx-reflexo-related-posts h3 {
	margin: var(--rfx-space-3) 0 0;
	font-size: 1rem;
}

.rfx-reflexo-related-posts h3 a {
	color: inherit;
	text-decoration: none;
}

.rfx-reflexo-related-posts h3 a:visited {
	color: inherit;
}

.rfx-reflexo-related-posts h3 a:hover,
.rfx-reflexo-related-posts h3 a:focus-visible,
.rfx-reflexo-related-posts h3 a:active {
	color: var(--rfx-reflexo-brand-primary);
}

/* Homepage funcional RFX. Não reutiliza layout, tokens ou classes Jornal. */
body.rfx-site-reflexo #primary.rfx-reflexo-homepage {
	width: 100%;
	max-width: var(--rfx-reflexo-container-content);
	margin: var(--rfx-space-12) auto;
}

.rfx-reflexo-homepage__section {
	margin-block: var(--rfx-space-16);
}

.rfx-reflexo-homepage__section--rss {
	min-width: 0;
}

.rfx-reflexo-homepage-rss__group + .rfx-reflexo-homepage-rss__group {
	margin-top: var(--rfx-space-6);
}

.rfx-reflexo-homepage-rss__group-title {
	margin: 0 0 var(--rfx-space-3);
}

.rfx-reflexo-homepage-rss__item a {
	color: var(--rfx-color-text-strong);
	font-weight: var(--rfx-font-weight-bold);
}

.rfx-reflexo-homepage-rss__item a:hover,
.rfx-reflexo-homepage-rss__item a:focus-visible {
	color: var(--rfx-color-action-hover);
}

.rfx-reflexo-homepage-rss__source,
.rfx-reflexo-homepage-rss__date {
	color: var(--rfx-color-text-muted);
	font-size: 0.8125rem;
}

.rfx-reflexo-homepage-rss__empty {
	margin: 0;
}

.rfx-reflexo-homepage__section > h2,
.rfx-reflexo-homepage__related > h2 {
	margin: 0 0 var(--rfx-space-5);
	font-size: clamp(1.5rem, 3vw, 2rem);
}

.rfx-reflexo-homepage__master-grid {
	display: grid;
	grid-template-columns: 2fr 1fr 1fr;
	gap: var(--rfx-space-6);
}

.rfx-reflexo-homepage__grid {
	display: grid;
	gap: var(--rfx-space-6);
}

.rfx-reflexo-homepage__grid--related,
.rfx-reflexo-homepage__grid--optional,
.rfx-reflexo-homepage__grid--listing {
	grid-template-columns: repeat(4, minmax(0, 1fr));
}

.rfx-reflexo-homepage__related {
	margin-top: var(--rfx-space-12);
}

.rfx-reflexo-homepage-card {
	display: grid;
	gap: var(--rfx-space-3);
}

.rfx-reflexo-homepage-card__image,
.rfx-reflexo-homepage-card__image img {
	display: block;
	width: 100%;
}

.rfx-reflexo-homepage-card__image img {
	aspect-ratio: 16 / 10;
	object-fit: cover;
}

.rfx-reflexo-homepage-card--feature .rfx-reflexo-homepage-card__image img,
.rfx-reflexo-homepage__master-slot--master_primary .rfx-reflexo-homepage-card__image img {
	aspect-ratio: 16 / 9;
}

.rfx-reflexo-homepage-card__content {
	display: grid;
	gap: var(--rfx-space-2);
}

.rfx-reflexo-homepage-card__category,
.rfx-reflexo-homepage-card__title,
.rfx-reflexo-homepage-card__meta {
	margin: 0;
}

.rfx-reflexo-homepage-card__category,
.rfx-reflexo-homepage-card__category a {
	color: var(--rfx-reflexo-brand-primary);
	font-size: var(--rfx-font-size-caption);
	font-weight: var(--rfx-font-weight-bold);
	letter-spacing: 0.02em;
	text-decoration: none;
	text-transform: uppercase;
}

.rfx-reflexo-homepage-card__title {
	font-size: 1.125rem;
	line-height: 1.25;
}

.rfx-reflexo-homepage-card--feature .rfx-reflexo-homepage-card__title,
.rfx-reflexo-homepage__master-slot--master_primary .rfx-reflexo-homepage-card__title {
	font-size: clamp(1.625rem, 3vw, 2.5rem);
}

.rfx-reflexo-homepage-card__title a,
.rfx-reflexo-homepage-card__author {
	color: inherit;
	text-decoration: none;
}

.rfx-reflexo-homepage-card__title a:visited,
.rfx-reflexo-homepage-card__author:visited {
	color: inherit;
}

.rfx-reflexo-homepage-card__title a:hover,
.rfx-reflexo-homepage-card__title a:focus-visible,
.rfx-reflexo-homepage-card__author:hover,
.rfx-reflexo-homepage-card__author:focus-visible,
.rfx-reflexo-homepage-card__category a:hover,
.rfx-reflexo-homepage-card__category a:focus-visible {
	color: var(--rfx-color-action-hover);
	text-decoration: underline;
}

.rfx-reflexo-homepage-card__meta {
	display: flex;
	align-items: center;
	gap: var(--rfx-space-2);
	color: var(--rfx-color-text-muted);
	font-size: var(--rfx-font-size-caption);
}

.rfx-reflexo-homepage-card__avatar .avatar {
	display: block;
	border-radius: 50%;
}

.rfx-reflexo-homepage-card__meta time::before {
	margin-right: var(--rfx-space-2);
	content: "·";
}

.rfx-reflexo-homepage__ad {
	margin-block: var(--rfx-space-12);
}

@media (max-width: 64rem) {
	body.rfx-site-reflexo {
		--rfx-reflexo-container-gutter: 1.5rem;
	}
}

@media (max-width: 47.99rem) {
	body.rfx-site-reflexo {
		--rfx-reflexo-container-gutter: 1rem;
	}
}

@media (max-width: 48rem) {
	body.rfx-site-reflexo :is(.rfx-reflexo-site-header__inner, .rfx-reflexo-footer__inner) {
		padding-right: 0;
		padding-left: 0;
	}

	.rfx-reflexo-site-header__inner {
		min-height: 4.5rem;
	}

	.rfx-reflexo-site-header__login {
		display: none;
	}

	.rfx-reflexo-site-header__menu-toggle {
		display: inline-flex;
	}

	.rfx-reflexo-navigation {
		display: none;
	}

	.rfx-reflexo-navigation.is-open {
		display: block;
	}

	.rfx-reflexo-menu {
		flex-direction: column;
		gap: var(--rfx-space-3);
	}

	.rfx-reflexo-footer__columns {
		grid-template-columns: 1fr;
		gap: var(--rfx-space-6);
	}

	.rfx-reflexo-author-profile {
		align-items: flex-start;
	}

	.rfx-reflexo-related-posts__grid {
		grid-template-columns: 1fr;
	}

	body.rfx-site-reflexo #primary.rfx-reflexo-homepage {
		margin-block: var(--rfx-space-8);
	}

	.rfx-reflexo-homepage__section {
		margin-block: var(--rfx-space-12);
	}

	.rfx-reflexo-homepage__master-grid,
	.rfx-reflexo-homepage__grid--related,
	.rfx-reflexo-homepage__grid--optional,
	.rfx-reflexo-homepage__grid--listing {
		grid-template-columns: 1fr;
	}
}
