/*
Theme Name: Tudo Sobre Finanças
Theme URI: https://tudosobrefinancas.com.br
Author: Tudo Sobre Finanças
Description: Tema próprio do portal Tudo Sobre Finanças — educação financeira, notícias, indicadores e calculadoras. Ver portal-financeiro-wordpress-claude-code.md na raiz do repositório para a especificação completa.
Version: 0.2.0
Requires at least: 6.5
Requires PHP: 8.1
Text Domain: tudosobrefinancas
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
*/

/* ---------------------------------------------------------------------
 * Design tokens — extraídos do protótipo de alta fidelidade em
 * design_handoff_tudosobrefinancas/Tudo Sobre Financas v3.dc.html
 * ------------------------------------------------------------------ */
:root {
	--tsf-principal: #004D40;
	--tsf-principal-escuro: #00362D;
	--tsf-icone-gradiente: #0B5E4E;
	--tsf-medio: #0B7A5F;
	--tsf-destaque: #22C55E;
	--tsf-destaque-claro: #4ADE80;
	--tsf-destaque-mais-claro: #86EFAC;
	--tsf-apoio-borda: #BBF7D0;
	--tsf-apoio: #ECFDF3;
	--tsf-texto: #0F172A;
	--tsf-corpo: #1E293B;
	--tsf-lead: #334155;
	--tsf-secundario: #475569;
	--tsf-metadados: #64748B;
	--tsf-placeholder: #94A3B8;
	--tsf-negativo: #F87171;
	--tsf-positivo: #16A34A;
	--tsf-aviso-fundo: #FFFBEB;
	--tsf-aviso-borda: #FDE68A;
	--tsf-aviso-texto: #92400E;
	--tsf-fundo-pagina: #F4F6F5;
	--tsf-fundo-card: #F8FAF9;
	--tsf-fundo-tabela: #F1F5F4;
	--tsf-borda: #E5E7EB;
	--tsf-branco: #FFFFFF;
	--tsf-font: "Montserrat", Helvetica, sans-serif;
	--tsf-mono: ui-monospace, Menlo, monospace;
	--tsf-container-max: 1280px;
	--tsf-placeholder-bg: repeating-linear-gradient( 135deg, var(--tsf-borda) 0 10px, var(--tsf-fundo-tabela) 10px 20px );
}

/* ---------------------------------------------------------------------
 * Base
 * ------------------------------------------------------------------ */
*,
*::before,
*::after {
	box-sizing: border-box;
}

body {
	margin: 0;
	font-family: var(--tsf-font);
	color: var(--tsf-corpo);
	background: var(--tsf-fundo-pagina);
	-webkit-font-smoothing: antialiased;
}

img {
	max-width: 100%;
	height: auto;
}

a {
	color: var(--tsf-texto);
	text-decoration: none;
}

a:hover {
	color: var(--tsf-principal);
}

button {
	font-family: inherit;
}

table {
	font-variant-numeric: tabular-nums;
}

p {
	text-wrap: pretty;
}

::selection {
	background: var(--tsf-destaque);
	color: var(--tsf-branco);
}

.tsf-container {
	max-width: var(--tsf-container-max);
	margin: 0 auto;
	padding: 0 20px;
}

.tsf-visually-hidden {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect( 0 0 0 0 );
}

/* Placeholder de imagem (ver README de design: "faixas diagonais cinza
   com rótulo em monoespaçada" — substituído por foto real na Fase 4). */
.tsf-placeholder-img {
	border-radius: 10px;
	background: var(--tsf-placeholder-bg);
	display: flex;
	align-items: center;
	justify-content: center;
	text-align: center;
}

.tsf-placeholder-img span {
	font-family: var(--tsf-mono);
	font-size: 12px;
	color: var(--tsf-metadados);
	padding: 0 20px;
}

.tsf-placeholder-img--hero {
	height: 330px;
}

.tsf-placeholder-img--card {
	height: 145px;
	border-radius: 8px;
}

.tsf-placeholder-img--thumb-lg {
	width: 88px;
	height: 68px;
	border-radius: 8px;
	flex-shrink: 0;
}

.tsf-placeholder-img--thumb-md {
	width: 96px;
	height: 64px;
	border-radius: 8px;
	flex-shrink: 0;
}

/* ---------------------------------------------------------------------
 * Botões
 * ------------------------------------------------------------------ */
.tsf-btn {
	display: inline-block;
	cursor: pointer;
	background: var(--tsf-principal);
	color: var(--tsf-branco);
	border: none;
	border-radius: 8px;
	padding: 12px 22px;
	font-weight: 700;
	font-size: 13.5px;
}

.tsf-btn:hover {
	background: var(--tsf-destaque);
	color: var(--tsf-branco);
}

.tsf-btn--secondary {
	background: transparent;
	border: 1.5px solid var(--tsf-borda);
	color: var(--tsf-principal);
	padding: 9px 16px;
}

.tsf-btn--secondary:hover {
	border-color: var(--tsf-destaque);
	color: var(--tsf-principal);
	background: transparent;
}

.tsf-btn--outline-dark {
	background: transparent;
	border: 1px solid rgba( 255, 255, 255, 0.35 );
	color: var(--tsf-branco);
	padding: 10px 16px;
	font-size: 12.5px;
}

.tsf-btn--outline-dark:hover {
	border-color: var(--tsf-destaque);
	color: var(--tsf-destaque-mais-claro);
	background: transparent;
}

.tsf-link-arrow {
	font-size: 13px;
	font-weight: 700;
	color: var(--tsf-principal);
}

.tsf-tag {
	display: inline-block;
	background: var(--tsf-principal);
	color: var(--tsf-branco);
	font-size: 10.5px;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	border-radius: 4px;
	padding: 5px 10px;
}

.tsf-tag--outline {
	background: transparent;
	border: 1px solid var(--tsf-borda);
	color: var(--tsf-secundario);
	letter-spacing: 0.06em;
	padding: 4px 9px;
}

.tsf-tag--risco {
	background: var(--tsf-apoio);
	color: #04503F;
}

.tsf-chip {
	display: inline-block;
	background: var(--tsf-apoio);
	border: 1px solid var(--tsf-apoio-borda);
	color: var(--tsf-principal);
	font-size: 12.5px;
	font-weight: 700;
	border-radius: 999px;
	padding: 8px 14px;
}

.tsf-chip:hover {
	background: var(--tsf-destaque);
	color: var(--tsf-branco);
}

/* Ícone de marca: três barras verticais sobre fundo em gradiente
   (ver README de design, "Marca"). */
.tsf-brand-icon {
	width: 40px;
	height: 40px;
	border-radius: 10px;
	background: linear-gradient( 150deg, var(--tsf-icone-gradiente), var(--tsf-principal) );
	display: flex;
	align-items: flex-end;
	justify-content: center;
	gap: 3px;
	padding: 9px 8px;
	flex-shrink: 0;
}

.tsf-brand-icon span {
	width: 5px;
	border-radius: 1.5px;
}

.tsf-brand-icon span:nth-child(1) {
	height: 8px;
	background: var(--tsf-destaque);
}

.tsf-brand-icon span:nth-child(2) {
	height: 14px;
	background: var(--tsf-destaque-claro);
}

.tsf-brand-icon span:nth-child(3) {
	height: 21px;
	background: var(--tsf-apoio);
}

.tsf-brand-icon--sm {
	width: 36px;
	height: 36px;
	border-radius: 9px;
	background: rgba( 255, 255, 255, 0.08 );
	padding: 8px 7px;
	gap: 3px;
}

.tsf-brand-icon--sm span {
	width: 4px;
}

.tsf-brand-icon--sm span:nth-child(1) {
	height: 8px;
}

.tsf-brand-icon--sm span:nth-child(2) {
	height: 12px;
}

.tsf-brand-icon--sm span:nth-child(3) {
	height: 18px;
}

.tsf-brand-wordmark {
	line-height: 1.02;
	font-size: 15px;
	font-weight: 800;
	letter-spacing: -0.02em;
}

.tsf-brand-wordmark span:first-child {
	display: block;
	color: var(--tsf-texto);
}

.tsf-brand-wordmark span:last-child {
	display: block;
	color: var(--tsf-destaque);
}

/* ---------------------------------------------------------------------
 * Cabeçalho
 * ------------------------------------------------------------------ */
.tsf-header {
	background: var(--tsf-branco);
	border-bottom: 1px solid var(--tsf-borda);
	position: relative;
	z-index: 10;
}

.tsf-header__brand-row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
	padding: 14px 20px;
	flex-wrap: wrap;
}

.tsf-header__brand {
	display: flex;
	align-items: center;
	gap: 11px;
	flex-shrink: 0;
}

.tsf-header__search {
	flex: 1;
	max-width: 440px;
	min-width: 0;
	display: flex;
	align-items: center;
	gap: 9px;
	background: var(--tsf-fundo-pagina);
	border: 1px solid var(--tsf-borda);
	border-radius: 8px;
	padding: 11px 14px;
}

.tsf-header__search-icon {
	width: 11px;
	height: 11px;
	border: 2px solid var(--tsf-placeholder);
	border-radius: 50%;
	flex-shrink: 0;
}

.tsf-header__search input {
	flex: 1;
	min-width: 0;
	border: none;
	outline: none;
	background: transparent;
	font-family: inherit;
	font-size: 13px;
	color: var(--tsf-texto);
}

.tsf-header__search input::placeholder {
	color: var(--tsf-placeholder);
}

.tsf-header__actions {
	display: flex;
	gap: 10px;
	align-items: center;
}

.tsf-header__menu {
	border-top: 1px solid var(--tsf-borda);
	overflow-x: auto;
}

.tsf-header__menu ul {
	list-style: none;
	display: flex;
	gap: 24px;
	align-items: center;
	margin: 0;
	padding: 0 20px;
	max-width: var(--tsf-container-max);
	margin-inline: auto;
	white-space: nowrap;
}

.tsf-header__menu a {
	display: inline-block;
	font-size: 13.5px;
	font-weight: 600;
	color: var(--tsf-secundario);
	padding: 12px 0;
	border-bottom: 3px solid transparent;
}

.tsf-header__menu a:hover {
	color: var(--tsf-principal);
}

.tsf-header__menu .current-menu-item > a,
.tsf-header__menu .current_page_item > a {
	color: var(--tsf-principal);
	font-weight: 700;
	border-bottom-color: var(--tsf-destaque);
}

/* ---------------------------------------------------------------------
 * Faixa de indicadores
 * ------------------------------------------------------------------ */
.tsf-ribbon {
	background: var(--tsf-texto);
	color: #E5E7EB;
	border-bottom: 1px solid rgba( 255, 255, 255, 0.08 );
	overflow-x: auto;
}

.tsf-ribbon__list {
	display: flex;
	align-items: center;
	flex-wrap: nowrap;
	list-style: none;
	margin: 0;
	padding: 0 20px;
	max-width: var(--tsf-container-max);
	margin-inline: auto;
}

.tsf-ribbon__item {
	border-left: 1px solid rgba( 255, 255, 255, 0.1 );
	flex-shrink: 0;
}

.tsf-ribbon__item a {
	display: flex;
	flex-direction: column;
	gap: 2px;
	padding: 9px 16px;
	color: inherit;
	white-space: nowrap;
}

.tsf-ribbon__item a:hover {
	background: rgba( 34, 197, 94, 0.12 );
	color: inherit;
}

.tsf-ribbon__row {
	display: flex;
	align-items: baseline;
	gap: 8px;
	white-space: nowrap;
}

.tsf-ribbon__sigla {
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.04em;
	color: var(--tsf-branco);
}

.tsf-ribbon__value {
	font-size: 12.5px;
	font-variant-numeric: tabular-nums;
	color: #CBD5E1;
}

.tsf-ribbon__variation {
	font-size: 11px;
	font-weight: 700;
	font-variant-numeric: tabular-nums;
}

.tsf-ribbon__variation--positiva {
	color: var(--tsf-destaque);
}

.tsf-ribbon__variation--negativa {
	color: var(--tsf-negativo);
}

.tsf-ribbon__variation--estavel {
	color: var(--tsf-placeholder);
}

.tsf-ribbon__ref {
	font-size: 9.5px;
	letter-spacing: 0.03em;
	color: #64748B;
}

.tsf-ribbon__disclaimer {
	padding: 9px 16px;
	font-size: 10px;
	letter-spacing: 0.03em;
	color: #64748B;
	border-left: 1px solid rgba( 255, 255, 255, 0.1 );
	white-space: nowrap;
}

/* ---------------------------------------------------------------------
 * Seções e cabeçalhos de seção
 * ------------------------------------------------------------------ */
.tsf-section--white {
	background: var(--tsf-branco);
}

.tsf-section--muted {
	background: var(--tsf-fundo-pagina);
}

.tsf-section--dark {
	background: var(--tsf-principal);
	color: var(--tsf-branco);
	padding: 40px 0;
}

.tsf-section--headline {
	padding: 30px 0 34px;
}

.tsf-section--pad {
	padding: 40px 0;
}

.tsf-section--bordered-top {
	border-top: 1px solid var(--tsf-borda);
}

.tsf-section--bordered-bottom {
	border-bottom: 1px solid var(--tsf-borda);
}

.tsf-section-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	border-bottom: 2px solid var(--tsf-texto);
	padding-bottom: 10px;
	margin-bottom: 20px;
	flex-wrap: wrap;
}

.tsf-section-header h2 {
	font-size: 20px;
	font-weight: 800;
	letter-spacing: -0.01em;
	color: var(--tsf-texto);
	margin: 0;
}

.tsf-section-header__meta {
	display: flex;
	gap: 16px;
	align-items: center;
	flex-wrap: wrap;
}

.tsf-section-header__note {
	font-size: 12px;
	font-weight: 600;
	color: var(--tsf-metadados);
}

.tsf-eyebrow {
	font-size: 11.5px;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--tsf-principal);
	border-bottom: 2px solid var(--tsf-texto);
	padding-bottom: 9px;
	margin: 0 0 18px;
}

/* ---------------------------------------------------------------------
 * Home — manchete e destaques
 * ------------------------------------------------------------------ */
.tsf-headline-row {
	display: flex;
	flex-wrap: wrap;
	gap: 32px;
	align-items: flex-start;
}

.tsf-headline-main {
	min-width: 0;
	flex: 3 1 500px;
	display: flex;
	flex-direction: column;
	gap: 14px;
}

.tsf-headline-main h1 {
	margin: 0;
	font-size: clamp( 27px, 3.5vw, 40px );
	line-height: 1.12;
	font-weight: 800;
	letter-spacing: -0.03em;
}

.tsf-headline-main__meta-row {
	display: flex;
	gap: 10px;
	align-items: center;
	flex-wrap: wrap;
}

.tsf-headline-main__lead {
	margin: 0;
	font-size: 16.5px;
	line-height: 1.6;
	color: var(--tsf-secundario);
	max-width: 66ch;
}

.tsf-headline-main__byline {
	display: flex;
	gap: 10px;
	align-items: center;
	font-size: 12.5px;
	color: var(--tsf-metadados);
	font-weight: 600;
	flex-wrap: wrap;
}

.tsf-highlights {
	min-width: 0;
	flex: 1 1 300px;
	display: flex;
	flex-direction: column;
	gap: 18px;
}

.tsf-highlights__list {
	display: flex;
	flex-direction: column;
}

.tsf-highlights__item {
	display: flex;
	gap: 14px;
	align-items: flex-start;
	padding-bottom: 16px;
	margin-bottom: 16px;
	border-bottom: 1px solid var(--tsf-borda);
	color: inherit;
}

.tsf-highlights__item:last-child {
	border-bottom: none;
	margin-bottom: 0;
	padding-bottom: 0;
}

.tsf-highlights__body {
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 6px;
}

.tsf-kicker {
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--tsf-medio);
}

.tsf-highlights__title {
	font-size: 14.5px;
	font-weight: 700;
	line-height: 1.32;
	color: var(--tsf-texto);
}

.tsf-meta-sm {
	font-size: 11.5px;
	color: var(--tsf-metadados);
	font-weight: 600;
}

/* ---------------------------------------------------------------------
 * Entenda em poucos minutos (cards escuros)
 * ------------------------------------------------------------------ */
.tsf-dark-section-header {
	display: flex;
	gap: 16px;
	align-items: flex-end;
	justify-content: space-between;
	flex-wrap: wrap;
	margin-bottom: 22px;
}

.tsf-dark-section-header h2 {
	margin: 0;
	font-size: clamp( 21px, 2.4vw, 28px );
	font-weight: 800;
	letter-spacing: -0.025em;
	color: var(--tsf-branco);
}

.tsf-dark-section-header__eyebrow {
	font-size: 11.5px;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--tsf-destaque-mais-claro);
	margin-bottom: 8px;
}

.tsf-dark-section-header__link {
	font-size: 13px;
	font-weight: 700;
	color: var(--tsf-destaque-mais-claro);
}

.tsf-grid {
	display: grid;
	gap: 16px;
	grid-template-columns: repeat( auto-fit, minmax( 230px, 1fr ) );
}

.tsf-grid--cards-24 {
	gap: 24px;
}

.tsf-dark-card {
	background: rgba( 255, 255, 255, 0.06 );
	border: 1px solid rgba( 255, 255, 255, 0.14 );
	border-radius: 10px;
	padding: 20px 18px;
	display: flex;
	flex-direction: column;
	gap: 9px;
	color: inherit;
}

.tsf-dark-card:hover {
	background: rgba( 34, 197, 94, 0.14 );
	border-color: var(--tsf-destaque);
	color: inherit;
}

.tsf-dark-card__eyebrow {
	font-size: 10.5px;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--tsf-destaque-mais-claro);
}

.tsf-dark-card__title {
	font-size: 16.5px;
	font-weight: 700;
	color: var(--tsf-branco);
	line-height: 1.25;
	letter-spacing: -0.015em;
}

.tsf-dark-card__desc {
	font-size: 12.5px;
	line-height: 1.5;
	color: #C7D9D3;
}

/* ---------------------------------------------------------------------
 * Ferramentas mais usadas
 * ------------------------------------------------------------------ */
.tsf-tool-icon {
	width: 34px;
	height: 34px;
	border-radius: 8px;
	background: var(--tsf-principal);
	display: flex;
	align-items: flex-end;
	justify-content: center;
	gap: 2.5px;
	padding: 8px 7px;
}

.tsf-tool-icon span {
	width: 4px;
	border-radius: 1.5px;
}

.tsf-tool-icon span:nth-child(1) {
	height: 12px;
	background: var(--tsf-destaque);
}

.tsf-tool-icon span:nth-child(2) {
	height: 18px;
	background: var(--tsf-destaque-claro);
}

.tsf-tool-icon span:nth-child(3) {
	height: 9px;
	background: var(--tsf-apoio);
}

.tsf-tool-card {
	text-align: left;
	background: var(--tsf-fundo-card);
	border: 1px solid var(--tsf-borda);
	border-radius: 10px;
	padding: 20px 18px;
	display: flex;
	flex-direction: column;
	gap: 10px;
	color: inherit;
}

.tsf-tool-card:hover {
	background: var(--tsf-apoio);
	border-color: var(--tsf-destaque);
	color: inherit;
}

.tsf-tool-card__name {
	font-size: 15px;
	font-weight: 700;
	color: var(--tsf-texto);
	letter-spacing: -0.01em;
}

.tsf-tool-card__desc {
	font-size: 12.5px;
	line-height: 1.5;
	color: var(--tsf-secundario);
}

.tsf-tool-card__cta {
	font-size: 11.5px;
	font-weight: 700;
	color: var(--tsf-principal);
}

.tsf-tool-status {
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.tsf-tool-status--disponivel {
	color: var(--tsf-medio);
}

.tsf-tool-status--revisao {
	color: var(--tsf-aviso-texto);
}

.tsf-tool-status--em-breve {
	color: var(--tsf-metadados);
}

.tsf-tool-card--review {
	background: var(--tsf-aviso-fundo);
	border-color: var(--tsf-aviso-borda);
}

/* ---------------------------------------------------------------------
 * Últimas notícias
 * ------------------------------------------------------------------ */
.tsf-news-list__item {
	display: flex;
	gap: 16px;
	align-items: center;
	padding: 16px 0;
	border-bottom: 1px solid var(--tsf-borda);
	color: inherit;
}

.tsf-news-list__item:hover {
	background: var(--tsf-apoio);
	color: inherit;
}

.tsf-news-list__time {
	font-size: 11.5px;
	font-weight: 700;
	color: var(--tsf-destaque);
	font-variant-numeric: tabular-nums;
	flex-shrink: 0;
	width: 44px;
}

.tsf-news-list__body {
	min-width: 0;
	flex: 1;
	display: flex;
	flex-direction: column;
	gap: 5px;
}

.tsf-news-list__title {
	font-size: 15.5px;
	font-weight: 700;
	line-height: 1.3;
	letter-spacing: -0.01em;
	color: var(--tsf-texto);
}

.tsf-aside-box {
	background: var(--tsf-branco);
	border: 1px solid var(--tsf-borda);
	border-radius: 10px;
	padding: 18px 16px;
}

.tsf-aside-box__title {
	font-size: 11.5px;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--tsf-principal);
	margin: 0 0 14px;
}

.tsf-agenda__item {
	display: flex;
	gap: 12px;
	align-items: flex-start;
	padding-bottom: 12px;
	margin-bottom: 12px;
	border-bottom: 1px solid var(--tsf-fundo-tabela);
}

.tsf-agenda__item:last-child {
	border-bottom: none;
	margin-bottom: 0;
	padding-bottom: 0;
}

.tsf-agenda__date {
	font-size: 11px;
	font-weight: 700;
	color: var(--tsf-destaque);
	flex-shrink: 0;
	width: 40px;
	padding-top: 2px;
}

.tsf-agenda__event {
	font-size: 13.5px;
	font-weight: 700;
	line-height: 1.3;
}

.tsf-transparency-box {
	background: var(--tsf-apoio);
	border: 1px solid var(--tsf-apoio-borda);
	border-radius: 10px;
	padding: 18px 16px;
	color: #04503F;
}

.tsf-transparency-box__title {
	font-size: 11.5px;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	margin: 0 0 10px;
}

.tsf-transparency-box p {
	margin: 0 0 12px;
	font-size: 13px;
	line-height: 1.55;
}

.tsf-transparency-box a {
	font-size: 12.5px;
	font-weight: 700;
	color: var(--tsf-principal);
	border-bottom: 2px solid var(--tsf-destaque);
	padding-bottom: 2px;
}

/* ---------------------------------------------------------------------
 * Cards de conteúdo (finanças pessoais, categoria, guias iniciantes)
 * ------------------------------------------------------------------ */
.tsf-content-card {
	display: flex;
	flex-direction: column;
	gap: 9px;
	color: inherit;
}

.tsf-content-card__title {
	font-size: 15.5px;
	font-weight: 700;
	line-height: 1.28;
	letter-spacing: -0.01em;
	color: var(--tsf-texto);
}

.tsf-card-border {
	border: 1px solid var(--tsf-borda);
	border-radius: 10px;
	padding: 18px;
	display: flex;
	flex-direction: column;
	gap: 8px;
	color: inherit;
}

.tsf-card-border:hover {
	border-color: var(--tsf-destaque);
	background: var(--tsf-fundo-card);
	color: inherit;
}

.tsf-card-border__level {
	font-size: 10.5px;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--tsf-destaque);
}

/* ---------------------------------------------------------------------
 * Investimentos (tabela)
 * ------------------------------------------------------------------ */
.tsf-rates-table {
	width: 100%;
	border-collapse: collapse;
}

.tsf-rates-table thead th {
	background: var(--tsf-fundo-pagina);
	font-size: 10.5px;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--tsf-metadados);
	text-align: left;
	padding: 10px 14px;
}

.tsf-rates-table thead th:not(:first-child),
.tsf-rates-table tbody td:not(:first-child) {
	text-align: right;
}

.tsf-rates-table tbody td {
	padding: 12px 14px;
	border-top: 1px solid var(--tsf-fundo-tabela);
	font-size: 14px;
}

.tsf-analysis-item {
	display: flex;
	gap: 12px;
	align-items: center;
	padding: 12px 0;
	border-bottom: 1px solid var(--tsf-borda);
	color: inherit;
}

.tsf-placeholder-img--analysis {
	width: 98px;
	height: 74px;
	flex-shrink: 0;
}

.tsf-investments-main {
	flex: 1.6 1 460px;
	min-width: 0;
}

.tsf-investments-aside {
	flex: 1 1 300px;
	min-width: 0;
}

/* ---------------------------------------------------------------------
 * Newsletter e rodapé
 * ------------------------------------------------------------------ */
.tsf-newsletter {
	background: linear-gradient( 110deg, var(--tsf-principal), var(--tsf-medio) );
	padding: 44px 0;
}

.tsf-newsletter__grid {
	display: grid;
	grid-template-columns: repeat( auto-fit, minmax( 290px, 1fr ) );
	gap: 32px;
	align-items: center;
}

.tsf-newsletter h2 {
	margin: 0 0 10px;
	font-size: clamp( 21px, 2.5vw, 29px );
	font-weight: 800;
	letter-spacing: -0.025em;
	color: var(--tsf-branco);
}

.tsf-newsletter__desc {
	margin: 0;
	font-size: 15px;
	line-height: 1.6;
	color: #D2E6DF;
	max-width: 52ch;
}

.tsf-newsletter form {
	display: flex;
	gap: 10px;
	flex-wrap: wrap;
}

.tsf-newsletter input[type="email"] {
	flex: 1;
	min-width: 190px;
	border: none;
	border-radius: 8px;
	padding: 15px 18px;
	font-family: inherit;
	font-size: 14px;
}

.tsf-newsletter button {
	border: none;
	cursor: pointer;
	background: var(--tsf-texto);
	color: var(--tsf-branco);
	font-size: 14px;
	font-weight: 700;
	padding: 15px 26px;
	border-radius: 8px;
}

.tsf-newsletter button:hover {
	background: var(--tsf-destaque);
	color: #00291F;
}

.tsf-newsletter__note {
	font-size: 11.5px;
	color: #C7D9D3;
}

.tsf-footer {
	background: var(--tsf-texto);
	color: var(--tsf-placeholder);
	padding: 48px 0 26px;
}

.tsf-footer__columns {
	display: grid;
	grid-template-columns: repeat( auto-fit, minmax( 175px, 1fr ) );
	gap: 34px;
	padding-bottom: 34px;
	border-bottom: 1px solid rgba( 255, 255, 255, 0.1 );
}

.tsf-footer__brand {
	display: flex;
	gap: 11px;
	align-items: center;
	margin-bottom: 14px;
}

.tsf-footer__tagline {
	margin: 0 0 12px;
	font-size: 13px;
	line-height: 1.6;
}

.tsf-footer__pitch {
	margin: 0;
	font-size: 11.5px;
	line-height: 1.6;
}

.tsf-footer__column {
	display: flex;
	flex-direction: column;
	gap: 9px;
	min-width: 0;
}

.tsf-footer__column h3 {
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--tsf-branco);
	margin: 0 0 4px;
}

.tsf-footer a {
	color: var(--tsf-placeholder);
	font-size: 13px;
}

.tsf-footer a:hover {
	color: var(--tsf-branco);
}

.tsf-footer__bottom {
	padding-top: 22px;
	display: flex;
	gap: 16px;
	flex-wrap: wrap;
	justify-content: space-between;
	font-size: 11.5px;
	line-height: 1.6;
}

.tsf-footer__bottom-note {
	max-width: 74ch;
}

/* ---------------------------------------------------------------------
 * Breadcrumb, H1 de página interna e caixas comuns
 * ------------------------------------------------------------------ */
.tsf-breadcrumb {
	font-size: 12px;
	color: var(--tsf-metadados);
	font-weight: 600;
	margin-bottom: 14px;
}

.tsf-page-title {
	margin: 0 0 12px;
	font-size: clamp( 28px, 3.6vw, 42px );
	font-weight: 800;
	letter-spacing: -0.03em;
	line-height: 1.1;
	color: var(--tsf-texto);
}

.tsf-page-lead {
	margin: 0 0 20px;
	font-size: 16.5px;
	line-height: 1.6;
	color: var(--tsf-secundario);
	max-width: 62ch;
}

.tsf-rule {
	border: none;
	border-bottom: 2px solid var(--tsf-texto);
	margin: 0 0 26px;
}

.tsf-two-col {
	display: flex;
	flex-wrap: wrap;
	gap: 34px;
	align-items: flex-start;
}

.tsf-two-col__main {
	min-width: 0;
	flex: 3 1 520px;
	display: flex;
	flex-direction: column;
	gap: 28px;
}

.tsf-two-col__aside {
	min-width: 0;
	flex: 1 1 290px;
	display: flex;
	flex-direction: column;
	gap: 20px;
}

.tsf-most-read {
	display: flex;
	flex-direction: column;
}

.tsf-most-read__item {
	display: flex;
	gap: 12px;
	align-items: flex-start;
	padding-bottom: 13px;
	margin-bottom: 13px;
	border-bottom: 1px solid var(--tsf-fundo-tabela);
	color: inherit;
}

.tsf-most-read__item:last-child {
	border-bottom: none;
	margin-bottom: 0;
	padding-bottom: 0;
}

.tsf-most-read__number {
	font-size: 19px;
	font-weight: 800;
	color: var(--tsf-borda);
	line-height: 1;
	width: 20px;
	flex-shrink: 0;
}

.tsf-most-read__title {
	font-size: 13.5px;
	font-weight: 600;
	line-height: 1.35;
	color: var(--tsf-texto);
}

.tsf-pagination {
	display: flex;
	gap: 12px;
	align-items: center;
	justify-content: center;
	padding-top: 10px;
}

.tsf-pagination a,
.tsf-pagination span {
	font-size: 13px;
	font-weight: 600;
	color: var(--tsf-secundario);
	border: 1px solid var(--tsf-borda);
	padding: 9px 15px;
	border-radius: 8px;
}

.tsf-pagination .current {
	font-weight: 700;
	background: var(--tsf-principal);
	color: var(--tsf-branco);
	border-color: var(--tsf-principal);
}

.tsf-pagination .next,
.tsf-pagination .prev {
	border: none;
	color: var(--tsf-principal);
	font-weight: 700;
}

/* ---------------------------------------------------------------------
 * Matéria
 * ------------------------------------------------------------------ */
.tsf-article__title {
	margin: 0 0 16px;
	font-size: clamp( 28px, 3.6vw, 42px );
	font-weight: 800;
	letter-spacing: -0.03em;
	line-height: 1.1;
	color: var(--tsf-texto);
}

.tsf-article__lead {
	margin: 0 0 20px;
	font-size: 18px;
	font-weight: 600;
	color: var(--tsf-lead);
	line-height: 1.55;
	max-width: 62ch;
}

.tsf-authorship {
	display: flex;
	gap: 14px;
	align-items: center;
	flex-wrap: wrap;
	padding: 16px 0;
	border-top: 1px solid var(--tsf-borda);
	border-bottom: 1px solid var(--tsf-borda);
	margin-bottom: 26px;
}

.tsf-authorship__avatar {
	width: 40px;
	height: 40px;
	border-radius: 50%;
	background: var(--tsf-apoio);
	color: var(--tsf-principal);
	display: flex;
	align-items: center;
	justify-content: center;
	font-weight: 800;
	font-size: 13px;
	flex-shrink: 0;
}

.tsf-authorship__name {
	font-weight: 700;
	color: var(--tsf-texto);
}

.tsf-authorship__meta {
	color: var(--tsf-metadados);
	font-weight: 600;
}

.tsf-article__caption {
	font-size: 11.5px;
	color: var(--tsf-metadados);
	margin-bottom: 30px;
}

.tsf-article__content {
	max-width: 66ch;
	display: flex;
	flex-direction: column;
	gap: 20px;
	font-size: 17px;
	line-height: 1.7;
	color: var(--tsf-corpo);
}

.tsf-article__content h2 {
	margin: 14px 0 0;
	font-size: 25px;
	font-weight: 800;
	letter-spacing: -0.02em;
	line-height: 1.2;
}

.tsf-article__content p {
	margin: 0;
}

.tsf-simulation-box {
	background: var(--tsf-apoio);
	border-left: 4px solid var(--tsf-destaque);
	border-radius: 8px;
	padding: 20px 22px;
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.tsf-simulation-box__eyebrow {
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: #04503F;
}

.tsf-simulation-box__title {
	font-size: 16px;
	font-weight: 700;
	color: #04503F;
	line-height: 1.35;
}

.tsf-facts-table {
	border: 1px solid var(--tsf-borda);
	border-radius: 10px;
	overflow: hidden;
	margin: 24px 0;
}

.tsf-facts-table__row {
	display: flex;
	gap: 16px;
	justify-content: space-between;
	align-items: center;
	padding: 13px 16px;
	border-bottom: 1px solid var(--tsf-fundo-tabela);
	flex-wrap: wrap;
}

.tsf-facts-table__row:last-child {
	border-bottom: none;
}

.tsf-facts-table__name {
	font-size: 14px;
	font-weight: 700;
}

.tsf-facts-table__meta {
	font-size: 11.5px;
	color: var(--tsf-metadados);
	font-weight: 600;
}

.tsf-facts-table__value {
	font-size: 16px;
	font-weight: 800;
	color: var(--tsf-principal);
	font-variant-numeric: tabular-nums;
}

.tsf-sources-box,
.tsf-transparency-panel,
.tsf-disclaimer-box {
	border-radius: 10px;
	padding: 20px 22px;
	margin: 16px 0;
}

.tsf-sources-box {
	border: 1px solid var(--tsf-borda);
}

.tsf-sources-box__title,
.tsf-transparency-panel__title {
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--tsf-principal);
	margin: 0 0 14px;
}

.tsf-sources-box__item {
	display: flex;
	flex-direction: column;
	gap: 3px;
	margin-bottom: 12px;
}

.tsf-sources-box__item:last-child {
	margin-bottom: 0;
}

.tsf-sources-box__item-title {
	font-size: 14px;
	font-weight: 700;
	color: var(--tsf-principal);
}

.tsf-transparency-panel {
	background: var(--tsf-fundo-card);
	border: 1px solid var(--tsf-borda);
}

.tsf-transparency-panel p {
	margin: 0 0 10px;
	font-size: 13.5px;
	line-height: 1.6;
	color: var(--tsf-lead);
}

.tsf-transparency-panel__footnotes {
	display: flex;
	gap: 18px;
	flex-wrap: wrap;
	font-size: 11.5px;
	color: var(--tsf-metadados);
	font-weight: 600;
}

.tsf-disclaimer-box {
	background: var(--tsf-texto);
	color: #CBD5E1;
	font-size: 12.5px;
	line-height: 1.6;
}

.tsf-disclaimer-box strong {
	color: var(--tsf-branco);
}

.tsf-related-item {
	font-size: 14px;
	font-weight: 700;
	line-height: 1.35;
	padding-bottom: 13px;
	margin-bottom: 13px;
	border-bottom: 1px solid var(--tsf-fundo-tabela);
	display: block;
}

.tsf-related-item:last-child {
	border-bottom: none;
	margin-bottom: 0;
	padding-bottom: 0;
}

.tsf-cited-indicator {
	border-radius: 10px;
	background: var(--tsf-principal);
	color: var(--tsf-branco);
	padding: 20px 18px;
}

.tsf-cited-indicator__eyebrow {
	font-size: 10.5px;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--tsf-destaque-mais-claro);
	margin-bottom: 8px;
}

.tsf-cited-indicator__value {
	font-size: 26px;
	font-weight: 800;
	letter-spacing: -0.02em;
}

.tsf-cited-indicator__meta {
	font-size: 12px;
	color: #C7D9D3;
	margin-bottom: 14px;
}

/* ---------------------------------------------------------------------
 * Indicador
 * ------------------------------------------------------------------ */
.tsf-indicator-hero {
	border-radius: 14px;
	padding: 30px 32px;
	background: linear-gradient( 120deg, var(--tsf-principal-escuro), var(--tsf-medio) );
	color: var(--tsf-branco);
}

.tsf-indicator-hero h1 {
	margin: 0 0 6px;
	font-size: clamp( 24px, 3vw, 34px );
	font-weight: 800;
	letter-spacing: -0.025em;
}

.tsf-indicator-hero__subtitle {
	font-size: 13px;
	color: #C7D9D3;
	margin-bottom: 22px;
}

.tsf-indicator-hero__row {
	display: flex;
	gap: 32px;
	flex-wrap: wrap;
	align-items: flex-end;
}

.tsf-indicator-hero__value {
	font-size: clamp( 40px, 6vw, 60px );
	font-weight: 800;
	letter-spacing: -0.04em;
	line-height: 1;
}

.tsf-indicator-hero__note {
	font-size: 12.5px;
	color: var(--tsf-destaque-mais-claro);
	font-weight: 700;
}

.tsf-indicator-hero__meta {
	display: flex;
	flex-direction: column;
	gap: 5px;
	font-size: 12px;
	color: #C7D9D3;
}

.tsf-indicator-hero__meta strong {
	color: var(--tsf-branco);
}

.tsf-data-state {
	background: var(--tsf-aviso-fundo);
	border: 1px solid var(--tsf-aviso-borda);
	color: var(--tsf-aviso-texto);
	border-radius: 10px;
	padding: 14px 18px;
	font-size: 12.5px;
	line-height: 1.55;
	margin: 24px 0;
}

.tsf-history-table {
	border: 1px solid var(--tsf-borda);
	border-radius: 10px;
	overflow: hidden;
	margin: 24px 0;
}

.tsf-history-table__header {
	padding: 14px 18px;
	border-bottom: 1px solid var(--tsf-borda);
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 16px;
	flex-wrap: wrap;
}

.tsf-history-table__header-title {
	font-size: 11.5px;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--tsf-principal);
}

.tsf-history-table__cols {
	display: grid;
	grid-template-columns: 1fr 1fr 1fr;
	background: var(--tsf-fundo-card);
	padding: 10px 18px;
	font-size: 10.5px;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--tsf-metadados);
}

.tsf-history-table__row {
	display: grid;
	grid-template-columns: 1fr 1fr 1fr;
	padding: 12px 18px;
	border-top: 1px solid var(--tsf-fundo-tabela);
	align-items: center;
	font-variant-numeric: tabular-nums;
}

.tsf-history-table__row span:not(:first-child),
.tsf-history-table__cols span:not(:first-child) {
	text-align: right;
}

.tsf-related-tool-box {
	border-radius: 10px;
	border: 1px solid var(--tsf-apoio-borda);
	background: var(--tsf-apoio);
	padding: 20px 18px;
}

.tsf-related-tool-box__eyebrow {
	font-size: 10.5px;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: #04503F;
	margin-bottom: 8px;
}

.tsf-related-tool-box__title {
	font-size: 16.5px;
	font-weight: 700;
	color: #04503F;
	line-height: 1.3;
	margin-bottom: 6px;
}

.tsf-related-tool-box p {
	margin: 0 0 14px;
	font-size: 12.5px;
	line-height: 1.55;
	color: #04503F;
}

.tsf-other-indicators__item {
	display: flex;
	justify-content: space-between;
	gap: 12px;
	align-items: center;
	padding: 11px 0;
	border-bottom: 1px solid var(--tsf-fundo-tabela);
	color: inherit;
}

.tsf-other-indicators__value {
	font-size: 13px;
	font-weight: 700;
	color: var(--tsf-principal);
	font-variant-numeric: tabular-nums;
}

/* ---------------------------------------------------------------------
 * Ferramentas (índice) e Guias
 * ------------------------------------------------------------------ */
.tsf-tools-meta-row {
	display: flex;
	gap: 18px;
	flex-wrap: wrap;
	font-size: 12px;
	color: var(--tsf-metadados);
	font-weight: 600;
	padding-bottom: 22px;
	border-bottom: 2px solid var(--tsf-texto);
	margin-bottom: 0;
}

.tsf-tool-group {
	padding-top: 28px;
}

.tsf-tool-group__header {
	display: flex;
	gap: 14px;
	align-items: baseline;
	flex-wrap: wrap;
	margin-bottom: 16px;
}

.tsf-tool-group__header h2 {
	margin: 0;
	font-size: 19px;
	font-weight: 800;
	letter-spacing: -0.01em;
}

.tsf-cluster-card {
	border: 1px solid var(--tsf-borda);
	border-radius: 12px;
	overflow: hidden;
	display: flex;
	flex-direction: column;
}

.tsf-cluster-card__header {
	background: var(--tsf-principal);
	color: var(--tsf-branco);
	padding: 18px 20px;
}

.tsf-cluster-card__eyebrow {
	font-size: 10.5px;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--tsf-destaque-mais-claro);
	margin-bottom: 6px;
}

.tsf-cluster-card__name {
	font-size: 20px;
	font-weight: 800;
	letter-spacing: -0.02em;
}

.tsf-cluster-card__meta {
	font-size: 12px;
	color: #C7D9D3;
	margin-top: 4px;
}

.tsf-cluster-card__list {
	display: flex;
	flex-direction: column;
}

.tsf-cluster-card__item {
	padding: 13px 20px;
	border-bottom: 1px solid var(--tsf-fundo-tabela);
	font-size: 14px;
	font-weight: 600;
	display: flex;
	gap: 10px;
	align-items: center;
	color: inherit;
}

.tsf-cluster-card__item:hover {
	background: var(--tsf-apoio);
	color: var(--tsf-principal);
}

.tsf-cluster-card__dot {
	width: 5px;
	height: 5px;
	border-radius: 50%;
	background: var(--tsf-destaque);
	flex-shrink: 0;
}

.tsf-cluster-card__cta {
	margin: auto 20px 20px;
	align-self: flex-start;
}

/* ---------------------------------------------------------------------
 * Responsivo
 * ------------------------------------------------------------------ */
@media ( max-width: 640px ) {
	.tsf-header__search {
		order: 3;
		flex-basis: 100%;
	}

	.tsf-headline-row,
	.tsf-two-col {
		gap: 24px;
	}
}
