/*
 * Turma Suite — front.
 * Todas as cores vêm das variáveis --turma-*, emitidas pelo Turma_Tokens.
 * Um vocabulário só: a moldura institucional e o portal consomem as mesmas.
 */

/* ---------------------------------------------------------------- */
/*  Base                                                             */
/* ---------------------------------------------------------------- */

body.turma-shell {
	background: var(--turma-fundo, #0f0f0f);
	color: var(--turma-texto, #f2f0ec);
	font-family: var(--turma-fonte-texto, sans-serif);
	font-size: var(--turma-tam-base, 16px);
	line-height: 1.6;
	margin: 0;
}

.turma-shell h1, .turma-shell h2, .turma-shell h3,
.turma-artigo-titulo, .turma-card-titulo, .turma-bloco-titulo, .turma-secao-titulo {
	font-family: var(--turma-fonte-titulos, sans-serif);
	font-weight: var(--turma-peso-titulos, 700);
	text-transform: var(--turma-caixa-titulos, none);
	line-height: 1.15;
	color: var(--turma-texto, #f2f0ec);
}

.turma-shell a,
.turma-main a,
.turma-card a,
.turma-dir-card,
.turma-agenda a { color: inherit; }
.turma-shell img { max-width: 100%; height: auto; }

.turma-wrap {
	width: min(100% - (var(--turma-margem, 24px) * 2), var(--turma-largura, 1200px));
	margin-inline: auto;
}

.turma-main { min-height: 50vh; padding-block: var(--turma-bloco, 56px); }
.turma-vazio { color: var(--turma-suave, #9a9a9a); padding: 32px 0; text-align: center; }

.turma-pular {
	position: absolute; left: -9999px; top: 0;
	background: var(--turma-primaria, #c8102e); color: var(--turma-sobre-primaria, #ffffff);
	padding: 12px 20px; z-index: 10000;
}
.turma-pular:focus { left: 8px; top: 8px; }

.screen-reader-text {
	position: absolute !important; width: 1px; height: 1px;
	overflow: hidden; clip: rect(1px,1px,1px,1px); white-space: nowrap;
}

/* ---------------------------------------------------------------- */
/*  Cabeçalho                                                        */
/* ---------------------------------------------------------------- */

.turma-header {
	background: var(--turma-superficie, #1b1b1d);
	border-bottom: 1px solid var(--turma-borda, #2c2c30);
}

.turma-hd-topo,
.turma-hd-grid {
	width: min(100% - (var(--turma-margem, 24px) * 2), var(--turma-largura, 1200px));
	margin-inline: auto;
	display: flex; align-items: center; gap: 16px;
	padding-block: 14px;
}
.turma-hd-grid { display: grid; grid-template-columns: 1fr auto 1fr; }
.turma-hd-dir { justify-self: end; }
.turma-hd-topo { justify-content: space-between; }
.turma-hd-topo.turma-alin-centro { flex-direction: column; }
.turma-hd-topo.turma-alin-direita { flex-direction: row-reverse; }

.turma-brand, .turma-footer-brand {
	display: flex; align-items: center; gap: 10px;
	text-decoration: none; color: inherit;
}
.turma-brand.turma-tagline-abaixo { flex-direction: column; align-items: inherit; gap: 4px; }
.turma-brand-logo {
	display: block;
	max-height: var(--turma-logo-altura, 64px);
	max-width: var(--turma-logo-largura, 320px);
	width: auto; height: auto;
	object-fit: contain;
}
.turma-footer-brand .turma-brand-logo { max-height: var(--turma-logo-rodape, 40px); }
.turma-brand-logos { display: flex; align-items: center; overflow: hidden; }
.turma-brand-nome { font-family: var(--turma-fonte-titulos, sans-serif); font-size: 1.6rem; font-weight: 800; }
.turma-brand-tagline { color: var(--turma-suave, #9a9a9a); font-size: .82rem; }

.turma-hd-navbar { border-top: 1px solid var(--turma-borda, #2c2c30); }
.turma-nav-lista {
	list-style: none; margin: 0; padding: 0;
	display: flex; flex-wrap: wrap; justify-content: center; gap: 4px;
	width: min(100% - (var(--turma-margem, 24px) * 2), var(--turma-largura, 1200px));
	margin-inline: auto;
}
.turma-nav-lista a {
	display: block; padding: 12px 14px; text-decoration: none;
	font-weight: 600; font-size: .92rem; border-bottom: 3px solid transparent;
}
.turma-nav-lista a:hover,
.turma-nav-lista .current-menu-item a { border-bottom-color: var(--turma-primaria, #c8102e); color: var(--turma-primaria, #c8102e); }

.turma-hd-acoes { display: flex; align-items: center; gap: 8px; }

.turma-nav-busca { display: flex; align-items: center; background: var(--turma-fundo, #0f0f0f); border: 1px solid var(--turma-borda, #2c2c30); border-radius: 999px; overflow: hidden; }
.turma-nav-busca input { background: none; border: 0; color: var(--turma-texto, #f2f0ec); padding: 8px 14px; min-width: 140px; }
.turma-nav-busca input:focus { outline: 2px solid var(--turma-primaria, #c8102e); outline-offset: -2px; }
.turma-nav-busca button { background: none; border: 0; cursor: pointer; padding: 8px 12px; color: var(--turma-suave, #9a9a9a); }

.turma-tema-troca {
	background: var(--turma-fundo, #0f0f0f); border: 1px solid var(--turma-borda, #2c2c30);
	border-radius: 999px; cursor: pointer; padding: 7px 12px; font-size: 1rem; line-height: 1;
}
html[data-turma-tema="escuro"] .turma-tema-sol,
html[data-turma-tema="claro"] .turma-tema-lua { display: none; }

.turma-menu-botao { display: none; background: none; border: 0; cursor: pointer; padding: 8px; }
.turma-menu-botao span:not(.screen-reader-text) { display: block; width: 22px; height: 2px; background: var(--turma-texto, #f2f0ec); margin: 4px 0; }

/* ---------------------------------------------------------------- */
/*  Cards e grades                                                   */
/* ---------------------------------------------------------------- */

.turma-grade { display: grid; gap: 20px; }
.turma-colunas-1 { grid-template-columns: 1fr; }
.turma-colunas-2 { grid-template-columns: repeat(2, minmax(0,1fr)); }
.turma-colunas-3 { grid-template-columns: repeat(3, minmax(0,1fr)); }
.turma-colunas-4 { grid-template-columns: repeat(4, minmax(0,1fr)); }
.turma-colunas-5 { grid-template-columns: repeat(5, minmax(0,1fr)); }
.turma-colunas-6 { grid-template-columns: repeat(6, minmax(0,1fr)); }

.turma-card {
	background: var(--turma-superficie, #1b1b1d);
	border: 1px solid var(--turma-borda, #2c2c30);
	border-radius: var(--turma-raio, 10px);
	box-shadow: var(--turma-sombra, none);
	overflow: hidden;
	display: flex; flex-direction: column;
	transition: border-color .15s ease, transform .15s ease;
}
.turma-card:hover { border-color: var(--turma-primaria, #c8102e); transform: translateY(-2px); }
/*
 * A moldura da capa.
 *
 * `min-height: 0` e a imagem fora do fluxo (position:absolute) não são
 * enfeite: .turma-card é um flex column, então .turma-card-midia é um flex
 * item — e flex item tem `min-height: auto`, o que deixa o CONTEÚDO esticar a
 * caixa para além do aspect-ratio. Era exatamente isso que fazia pôster em pé
 * aparecer inteiro e foto deitada aparecer cortada, na mesma listagem. Com a
 * <img> absoluta ela não tem como empurrar a caixa: a proporção sempre vence.
 */
.turma-card-midia {
	display: block; position: relative;
	aspect-ratio: var(--turma-capa-proporcao, 4/3);
	min-height: 0;
	overflow: hidden;
	background: var(--turma-capa-fundo, var(--turma-superficie, #1b1b1d));
	border-radius: 0;
}
.turma-card-midia img,
.turma-card-midia .turma-capa-img {
	position: absolute; inset: 0;
	width: 100%; height: 100%;
	max-width: none; max-height: none;
	object-fit: var(--turma-capa-ajuste, cover);
	object-position: var(--turma-capa-posicao, center center);
	display: block;
	transition: transform .35s ease;
}
.turma-card:hover .turma-capa-img { transform: scale(var(--turma-capa-escala, 1.04)); }
.turma-card-sem-foto {
	position: absolute; inset: 0;
	display: grid; place-items: center;
	font-size: 2rem; opacity: .35;
}
.turma-card-corpo { padding: 14px 16px 16px; display: flex; flex-direction: column; gap: 8px; flex: 1; }
.turma-card-categoria { color: var(--turma-primaria, #c8102e); font-size: .74rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; text-decoration: none; }
.turma-card-titulo { font-size: 1.05rem; margin: 0; }
/* `color: inherit` explícito: sem isto o título do card sai azul de link
   padrão do navegador em qualquer tema que não force uma cor. Ficava certo
   por acidente, no tema de quem já tinha uma regra global. */
.turma-card-titulo a { text-decoration: none; color: inherit; }
.turma-card-titulo a:hover { color: var(--turma-primaria, #c8102e); }
.turma-card-resumo { color: var(--turma-suave, #9a9a9a); font-size: .9rem; margin: 0; }
.turma-card-rodape { margin-top: auto; display: flex; align-items: center; flex-wrap: wrap; gap: 8px; color: var(--turma-suave, #9a9a9a); font-size: .78rem; }

.turma-card-destaque { grid-column: 1 / -1; margin-bottom: 20px; }
.turma-card-destaque .turma-card-titulo { font-size: 1.9rem; }
/* O destaque é mais panorâmico de propósito, mas continua sendo UMA
   proporção — e a mesma para todos os destaques. */
.turma-card-destaque .turma-card-midia { aspect-ratio: var(--turma-capa-proporcao-destaque, 16/9); }
/* Em tela larga a manchete fica lado a lado. Empilhada e com a largura toda,
   uma capa 16/9 passa de 600px de altura e empurra o resto do portal para
   fora da primeira tela — era assim na primeira versão do portal. */
@media (min-width: 900px) {
	.turma-card-destaque { flex-direction: row; align-items: stretch; }
	.turma-card-destaque .turma-card-midia { flex: 0 0 58%; }
	.turma-card-destaque .turma-card-corpo { justify-content: center; padding: 26px 30px; }
	.turma-card-destaque .turma-card-resumo { font-size: 1rem; }
}

.turma-selo {
	position: absolute; top: 10px; left: 10px;
	background: var(--turma-primaria, #c8102e); color: var(--turma-sobre-primaria, #ffffff);
	font-size: .7rem; font-weight: 700; padding: 4px 9px; border-radius: 999px;
}
.turma-selo-video { left: auto; right: 10px; }

/* Selo de origem — é o que faz a rede parecer uma rede */
.turma-selo-origem {
	display: inline-block; text-decoration: none;
	border: 1px solid var(--turma-borda, #2c2c30); border-radius: 999px;
	padding: 2px 9px; font-size: .72rem; font-weight: 600;
	color: var(--turma-suave, #9a9a9a);
}
.turma-selo-origem:hover { border-color: var(--turma-primaria, #c8102e); color: var(--turma-primaria, #c8102e); }

/* ---------------------------------------------------------------- */
/*  Botões                                                           */
/* ---------------------------------------------------------------- */

.turma-botao {
	display: inline-flex; align-items: center; gap: 6px;
	background: var(--turma-primaria, #c8102e); color: var(--turma-sobre-primaria, #ffffff);
	border: 0; border-radius: var(--turma-raio, 10px);
	padding: 11px 18px; font-weight: 700; font-size: .92rem;
	text-decoration: none !important; cursor: pointer; line-height: 1.2;
	/* Um botão precisa ser legível em qualquer contexto onde for parar. */
	color: var(--turma-sobre-primaria, #ffffff) !important;
}
.turma-botao:hover { background: var(--turma-primaria-escura, #9c0c24); color: var(--turma-sobre-primaria, #ffffff) !important; }
.turma-botao small { display: block; font-weight: 400; font-size: .74rem; opacity: .85; }
.turma-botao-mini { padding: 5px 11px; font-size: .74rem; }
.turma-botao-grande { padding: 15px 26px; font-size: 1.05rem; }
.turma-botao-revenda { background: transparent; color: var(--turma-primaria, #c8102e) !important; border: 2px solid var(--turma-primaria, #c8102e); }
.turma-botao-revenda:hover { background: var(--turma-primaria, #c8102e); color: var(--turma-sobre-primaria, #ffffff) !important; }

/* ---------------------------------------------------------------- */
/*  Notícia                                                          */
/* ---------------------------------------------------------------- */

.turma-single-layout { display: grid; grid-template-columns: minmax(0,1fr) 320px; gap: 40px; align-items: start; }
.turma-artigo-titulo { font-size: clamp(1.7rem, 4vw, 2.6rem); margin: 8px 0 16px; }
.turma-artigo-conteudo { font-size: 1.05rem; }
.turma-artigo-conteudo p { margin: 0 0 1.1em; }
/*
 * Só a PROSA. A ficha de serviço, a barra de ingressos e o "leia também" são
 * injetados dentro de .turma-artigo-conteudo pelo shortcode — com o seletor
 * aberto (`.turma-artigo-conteudo a`) esta regra vencia a cor do próprio
 * botão por especificidade e pintava texto vermelho sobre barra vermelha,
 * além de deixar o título dos cards relacionados vermelho.
 */
.turma-artigo-conteudo > p a,
.turma-artigo-conteudo > ul a,
.turma-artigo-conteudo > ol a,
.turma-artigo-conteudo > blockquote a,
.turma-artigo-conteudo > table a,
.turma-artigo-conteudo > figure figcaption a { color: var(--turma-primaria, #c8102e); }
/* Imagem colada no corpo da matéria: no máximo a largura da coluna, altura
   proporcional. Ela vive só aqui — resumo e índice usam a capa, nunca isto. */
.turma-artigo-conteudo img,
.turma-artigo-conteudo video,
.turma-artigo-conteudo iframe {
	max-width: 100%; height: auto; display: block;
	margin-inline: auto; border-radius: var(--turma-raio, 10px);
}
.turma-artigo-conteudo figure { margin: 0 0 1.4em; max-width: 100%; }
.turma-artigo-conteudo figcaption { color: var(--turma-suave, #9a9a9a); font-size: .82rem; margin-top: 8px; text-align: center; }
.turma-artigo-conteudo .alignleft { float: left; margin: 0 1.2em .8em 0; max-width: 50%; }
.turma-artigo-conteudo .alignright { float: right; margin: 0 0 .8em 1.2em; max-width: 50%; }
.turma-artigo-conteudo .aligncenter { margin-inline: auto; }
.turma-artigo-conteudo table { max-width: 100%; }

.turma-byline { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; color: var(--turma-suave, #9a9a9a); font-size: .88rem; margin-bottom: 18px; }
.turma-byline-foto { width: 42px; height: 42px; border-radius: 50%; object-fit: cover; }
.turma-byline a { color: var(--turma-texto, #f2f0ec); font-weight: 600; }

.turma-midia-principal { margin: 0 0 22px; }
.turma-midia-principal img { width: 100%; max-width: 100%; height: auto; border-radius: var(--turma-raio, 10px); display: block; }
.turma-midia-principal figcaption { color: var(--turma-suave, #9a9a9a); font-size: .8rem; margin-top: 8px; }

.turma-embed-video { position: relative; aspect-ratio: 16/9; border-radius: var(--turma-raio, 10px); overflow: hidden; }
.turma-embed-video iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.turma-embed-audio { width: 100%; height: 352px; border: 0; border-radius: var(--turma-raio, 10px); }

.turma-ingressos { display: flex; flex-wrap: wrap; gap: 12px; margin: 22px 0 8px; }
.turma-ingressos-destaque { background: var(--turma-superficie, #1b1b1d); border: 1px solid var(--turma-borda, #2c2c30); border-radius: var(--turma-raio, 10px); padding: 18px; }
.turma-disclaimer { color: var(--turma-suave, #9a9a9a); font-size: .78rem; margin: 0 0 22px; }

.turma-ficha-evento, .turma-relacionadas, .turma-playlist, .turma-sidebar-bloco {
	background: var(--turma-superficie, #1b1b1d);
	border: 1px solid var(--turma-borda, #2c2c30);
	border-radius: var(--turma-raio, 10px);
	padding: 20px; margin: 24px 0;
}
.turma-bloco-titulo { font-size: 1.15rem; margin: 0 0 14px; }
.turma-servico-lista { list-style: none; margin: 0; padding: 0; display: grid; gap: 9px; }
.turma-servico-lista a { color: var(--turma-primaria, #c8102e); }

.turma-setores-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 12px; margin-top: 16px; }
.turma-setor-card {
	border: 1px solid var(--turma-borda, #2c2c30); border-left: 4px solid var(--turma-primaria, #c8102e);
	border-radius: var(--turma-raio, 10px); padding: 12px 14px;
	display: flex; flex-direction: column; gap: 4px;
}
.turma-setor-esgotado { opacity: .55; border-left-color: var(--turma-suave, #9a9a9a); }
.turma-setor-nome { font-weight: 700; }
.turma-setor-valores { color: var(--turma-primaria, #c8102e); font-weight: 700; }
.turma-setor-obs, .turma-setor-selo { color: var(--turma-suave, #9a9a9a); font-size: .8rem; }

.turma-artigo-tags { display: flex; flex-wrap: wrap; gap: 8px; margin: 24px 0; }
.turma-artigo-tags a {
	border: 1px solid var(--turma-borda, #2c2c30); border-radius: 999px;
	padding: 4px 12px; font-size: .8rem; text-decoration: none; color: var(--turma-suave, #9a9a9a);
}
.turma-artigo-tags a:hover { border-color: var(--turma-primaria, #c8102e); color: var(--turma-primaria, #c8102e); }
.turma-creditos { color: var(--turma-suave, #9a9a9a); font-size: .88rem; }

/* ---------------------------------------------------------------- */
/*  Agenda e diretórios                                              */
/* ---------------------------------------------------------------- */

.turma-agenda { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
/*
 * Flex com quebra, não grade rígida. Numa coluna lateral de 320px a grade
 * `64px 1fr auto` reservava a largura natural do botão e sobrava uma palavra
 * por linha para o título. Com `flex: 1 1 240px` no bloco de texto, ele
 * simplesmente desce para a linha de baixo quando não cabe.
 */
.turma-agenda-item {
	display: flex; flex-wrap: wrap; align-items: center; gap: 14px;
	background: var(--turma-superficie, #1b1b1d); border: 1px solid var(--turma-borda, #2c2c30);
	border-left: 5px solid var(--turma-primaria, #c8102e);
	border-radius: var(--turma-raio, 10px); padding: 14px 16px;
}
.turma-agenda-data {
	flex: 0 0 auto; min-width: 62px; text-align: center;
	background: var(--turma-primaria, #c8102e); color: var(--turma-sobre-primaria, #ffffff);
	border-radius: calc(var(--turma-raio, 10px) * .8); padding: 8px 6px; line-height: 1.1;
}
.turma-agenda-dia { display: block; font-size: 1.5rem; font-weight: 800; line-height: 1; }
.turma-agenda-mes { display: block; font-size: .7rem; text-transform: uppercase; }
.turma-agenda-info { flex: 1 1 240px; min-width: 0; display: flex; flex-direction: column; gap: 4px; }
.turma-agenda-titulo { font-weight: 700; text-decoration: none; }
.turma-agenda-titulo:hover { color: var(--turma-primaria, #c8102e); }
.turma-agenda-meta { color: var(--turma-suave, #9a9a9a); font-size: .82rem; }
.turma-agenda-acoes { display: flex; gap: 8px; flex-wrap: wrap; }
.turma-agenda-acoes .turma-botao { padding: 8px 14px; font-size: .82rem; }

/* Na coluna lateral tudo empilha: data em cima, título inteiro, botão embaixo. */
.turma-sidebar .turma-agenda-item { padding: 11px 13px; gap: 10px; }
.turma-sidebar .turma-agenda-info { flex: 1 1 100%; }
.turma-sidebar .turma-agenda-acoes { flex: 1 1 100%; }
.turma-sidebar .turma-agenda-acoes .turma-botao { flex: 1; justify-content: center; }
.turma-sidebar .turma-card-midia { aspect-ratio: 16/9; }
.turma-sidebar .turma-wrap { padding: 0; margin: 0; width: auto; }

.turma-diretorio { display: grid; gap: 16px; }
.turma-dir-card {
	background: var(--turma-superficie, #1b1b1d); border: 1px solid var(--turma-borda, #2c2c30);
	border-radius: var(--turma-raio, 10px); padding: 16px;
	display: flex; flex-direction: column; align-items: center; gap: 8px;
	text-align: center; text-decoration: none;
}
.turma-dir-card:hover { border-color: var(--turma-primaria, #c8102e); }
.turma-dir-foto { width: 96px; height: 96px; border-radius: 50%; overflow: hidden; display: grid; place-items: center; background: var(--turma-fundo, #0f0f0f); }
.turma-dir-foto img { width: 100%; height: 100%; object-fit: cover; }
.turma-dir-sem-foto { font-size: 2rem; opacity: .4; }
.turma-dir-nome { font-weight: 700; }
.turma-dir-detalhe { color: var(--turma-suave, #9a9a9a); font-size: .8rem; }
.turma-cliente-card .turma-dir-foto { border-radius: var(--turma-raio, 10px); width: 120px; height: 76px; }
.turma-cliente-card .turma-dir-foto img { object-fit: contain; padding: 8px; }

/* ---------------------------------------------------------------- */
/*  Home                                                             */
/* ---------------------------------------------------------------- */

.turma-home-secao { margin-bottom: var(--turma-bloco, 56px); }
.turma-secao-titulo {
	width: min(100% - (var(--turma-margem, 24px) * 2), var(--turma-largura, 1200px));
	margin: 0 auto 18px; font-size: 1.35rem;
	display: flex; align-items: center; gap: 14px;
}
.turma-secao-titulo::after { content: ""; flex: 1; height: 2px; background: var(--turma-borda, #2c2c30); }
.turma-secao-titulo span { border-left: 5px solid var(--turma-primaria, #c8102e); padding-left: 12px; }
.turma-portal-intro {
	color: var(--turma-suave, #9a9a9a);
	margin-bottom: 24px;
	text-align: center;
}
.turma-portal-intro p { margin: 0 auto; max-width: 68ch; }
.turma-intro-negrito p { font-weight: 700; color: var(--turma-texto, #f2f0ec); }
.turma-intro-italico p { font-style: italic; }
.turma-intro-negrito_italico p { font-weight: 700; font-style: italic; color: var(--turma-texto, #f2f0ec); }

.turma-paginacao { display: flex; justify-content: center; flex-wrap: wrap; gap: 6px; margin: 32px 0; }
.turma-paginacao .page-numbers {
	border: 1px solid var(--turma-borda, #2c2c30); border-radius: var(--turma-raio, 10px);
	padding: 8px 14px; text-decoration: none;
}
.turma-paginacao .current { background: var(--turma-primaria, #c8102e); color: var(--turma-sobre-primaria, #ffffff); border-color: var(--turma-primaria, #c8102e); }

/* ---------------------------------------------------------------- */
/*  Rodapé e co-branding                                             */
/* ---------------------------------------------------------------- */

.turma-footer { background: var(--turma-superficie, #1b1b1d); border-top: 1px solid var(--turma-borda, #2c2c30); margin-top: var(--turma-bloco, 56px); }
.turma-footer-inner {
	width: min(100% - (var(--turma-margem, 24px) * 2), var(--turma-largura, 1200px));
	margin-inline: auto; padding: 36px 0 24px;
	display: flex; flex-wrap: wrap; align-items: center; gap: 24px;
}
.turma-rod-centro .turma-footer-inner { flex-direction: column; text-align: center; }
.turma-footer-lista { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 18px; }
.turma-footer-lista a { text-decoration: none; color: var(--turma-suave, #9a9a9a); }
.turma-footer-lista a:hover { color: var(--turma-primaria, #c8102e); }
.turma-footer-redes { display: flex; flex-wrap: wrap; gap: 14px; margin-left: auto; }
.turma-rod-centro .turma-footer-redes { margin: 0; justify-content: center; }
.turma-footer-redes a { display: inline-flex; align-items: center; gap: 6px; text-decoration: none; color: var(--turma-suave, #9a9a9a); font-size: .88rem; }
.turma-footer-redes a:hover { color: var(--turma-primaria, #c8102e); }

.turma-cobranding {
	border-top: 1px solid var(--turma-borda, #2c2c30);
	background: var(--turma-fundo, #0f0f0f);
	padding: 26px var(--turma-margem, 24px);
	display: flex; flex-direction: column; align-items: center; gap: 10px; text-align: center;
}
.turma-rede-logo { max-height: 34px; width: auto; opacity: .9; }
.turma-rede-nome { font-family: var(--turma-fonte-titulos, sans-serif); font-weight: 800; font-size: 1.1rem; }
.turma-cobranding-frase { color: var(--turma-suave, #9a9a9a); font-size: .9rem; margin: 0; }
.turma-cobranding-link { color: var(--turma-primaria, #c8102e); font-weight: 700; font-size: .88rem; text-decoration: none; }
.turma-cobranding-link:hover { text-decoration: underline; }

.turma-footer-base { border-top: 1px solid var(--turma-borda, #2c2c30); }
.turma-footer-base p {
	width: min(100% - (var(--turma-margem, 24px) * 2), var(--turma-largura, 1200px));
	margin: 0 auto; padding: 16px 0;
	color: var(--turma-suave, #9a9a9a); font-size: .8rem;
	text-align: var(--turma-copy-alinha, center); text-transform: var(--turma-copy-caixa, none);
}

/* ---------------------------------------------------------------- */
/*  Leads                                                            */
/* ---------------------------------------------------------------- */

.turma-lead-form input[type="text"],
.turma-lead-form input[type="email"],
.turma-lead-form input[type="tel"],
.turma-lead-form input[type="number"] {
	width: 100%; padding: 10px 12px;
	background: var(--turma-fundo, #0f0f0f); color: var(--turma-texto, #f2f0ec);
	border: 1px solid var(--turma-borda, #2c2c30); border-radius: var(--turma-raio, 10px);
}
.turma-honeypot { position: absolute; left: -9999px; }
.turma-lead-aviso { border-radius: var(--turma-raio, 10px); padding: 12px 16px; margin-bottom: 16px; }
.turma-lead-ok { background: rgba(0,163,42,.12); border: 1px solid rgba(0,163,42,.4); }
.turma-lead-erro { background: rgba(214,54,56,.12); border: 1px solid rgba(214,54,56,.4); }

/* ---------------------------------------------------------------- */
/*  Contatos — seção da home, ícone grande, três por linha           */
/* ---------------------------------------------------------------- */

/*
 * Emoji tem largura, altura óptica e linha de base diferentes em cada glifo —
 * 📸 é largo e baixo, 🌐 é redondo e alto, ♪ é estreito. Solto e grande, cada
 * ícone parece de um tamanho e a fileira fica torta. O disco de tamanho fixo
 * resolve isso: normaliza a caixa, dá o mesmo centro óptico a todos e permite
 * um ícone pequeno sem que ele suma.
 */
.turma-contatos {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 12px;
	margin: 2px 0 0;
}
.turma-contato {
	display: flex; align-items: center; justify-content: center; gap: 12px;
	padding: 14px 18px;
	background: var(--turma-superficie, #1b1b1d);
	border: 1px solid var(--turma-borda, #2c2c30);
	border-radius: var(--turma-raio, 10px);
	color: inherit; text-decoration: none;
	transition: border-color .18s ease, background-color .18s ease;
}
.turma-contato:hover { border-color: var(--turma-primaria, #c8102e); }

.turma-contato-icone {
	flex: 0 0 auto;
	display: grid; place-items: center;
	width: 38px; height: 38px; border-radius: 50%;
	background: color-mix(in srgb, var(--turma-texto, #f2f0ec) 7%, transparent);
	font-size: 1.05rem; line-height: 1;
	transition: background-color .18s ease;
}
.turma-contato:hover .turma-contato-icone {
	background: color-mix(in srgb, var(--turma-primaria, #c8102e) 22%, transparent);
}

.turma-contato-nome {
	min-width: 0;
	font-size: .95rem; font-weight: 600; letter-spacing: .01em;
	color: var(--turma-suave, #9a9a9a);
	overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
	transition: color .18s ease;
}
.turma-contato:hover .turma-contato-nome { color: var(--turma-texto, #f2f0ec); }

/* color-mix é recente; sem ele o disco ainda precisa existir. */
@supports not (background: color-mix(in srgb, red 50%, transparent)) {
	.turma-contato-icone { background: rgba(255, 255, 255, .07); }
	.turma-contato:hover .turma-contato-icone { background: var(--turma-primaria, #c8102e); }
}

/* Rodapé do portal parceiro: só a declaração de parceria. */
.turma-footer-parceiro .turma-cobranding { padding-top: 30px; }

/* ---------------------------------------------------------------- */
/*  Responsivo                                                       */
/* ---------------------------------------------------------------- */

@media (max-width: 980px) {
	.turma-single-layout { grid-template-columns: 1fr; }
	.turma-colunas-4, .turma-colunas-5, .turma-colunas-6 { grid-template-columns: repeat(3, minmax(0,1fr)); }
}

@media (max-width: 900px) {
	.turma-contatos { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 782px) {
	.turma-menu-botao { display: block; }
	.turma-hd-grid { grid-template-columns: 1fr auto; }
	.turma-hd-centro { order: 3; grid-column: 1 / -1; }
	.turma-nav { display: none; }
	.turma-nav.aberto { display: block; }
	.turma-nav-lista { flex-direction: column; align-items: stretch; }
	.turma-colunas-2, .turma-colunas-3, .turma-colunas-4,
	.turma-colunas-5, .turma-colunas-6 { grid-template-columns: repeat(2, minmax(0,1fr)); }
	.turma-agenda-acoes { flex: 1 1 100%; }
	.turma-agenda-acoes .turma-botao { flex: 1; justify-content: center; }
	.turma-card-destaque .turma-card-titulo { font-size: 1.4rem; }
}

@media (max-width: 520px) {
	.turma-contatos { grid-template-columns: 1fr; }
	.turma-colunas-2, .turma-colunas-3, .turma-colunas-4,
	.turma-colunas-5, .turma-colunas-6 { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
	.turma-card, .turma-card:hover { transition: none; transform: none; }
}

/* ---------------------------------------------------------------- */
/*  Publicações sociais relacionadas                                 */
/* ---------------------------------------------------------------- */

.turma-social { margin: 28px 0; }
.turma-social-grade { display: grid; gap: 16px; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.turma-social-grade.turma-social-1 { grid-template-columns: minmax(0, 560px); }
.turma-social-grade.turma-social-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }

.turma-social-item {
	margin: 0; display: flex; flex-direction: column; gap: 8px;
	background: var(--turma-superficie, #1b1b1d);
	border: 1px solid var(--turma-borda, #2c2c30);
	border-radius: var(--turma-raio, 10px);
	padding: 12px; overflow: hidden;
}
.turma-social-fachada {
	display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px;
	min-height: min(var(--turma-social-altura, 560px), 320px);
	background: var(--turma-fundo, #0f0f0f);
	border: 1px dashed var(--turma-borda, #2c2c30);
	border-radius: var(--turma-raio, 10px);
	color: var(--turma-texto, #f2f0ec);
	cursor: pointer; width: 100%; padding: 24px 12px; font: inherit;
}
.turma-social-fachada:hover { border-color: var(--turma-primaria, #c8102e); }
.turma-social-fachada:focus-visible { outline: 2px solid var(--turma-primaria, #c8102e); outline-offset: 2px; }
.turma-social-icone { font-size: 2rem; line-height: 1; }
.turma-social-rede { font-weight: 700; }
.turma-social-acao { color: var(--turma-primaria, #c8102e); font-size: .85rem; font-weight: 600; }
.turma-social-link { font-size: .82rem; color: var(--turma-suave, #9a9a9a); text-decoration: none; text-align: center; }
.turma-social-link:hover { color: var(--turma-primaria, #c8102e); }
.turma-social-item figcaption { color: var(--turma-suave, #9a9a9a); font-size: .82rem; text-align: center; }

@media (max-width: 900px) {
	.turma-social-grade,
	.turma-social-grade.turma-social-2,
	.turma-social-grade.turma-social-3 { grid-template-columns: 1fr; }
	.turma-social-grade.turma-social-1 { grid-template-columns: 1fr; }
}

/* Vitrine de portais parceiros */
.turma-vitrine-topo { margin-bottom: 24px; }
.turma-vitrine-intro { color: var(--turma-suave, #9a9a9a); max-width: 68ch; }

/* Responsivo: alvos de toque e overflow em telas pequenas */
@media (max-width: 782px) {
	.turma-botao { min-height: 44px; }
	.turma-nav-lista a { padding: 14px 16px; }
	.turma-tema-troca, .turma-menu-botao { min-width: 44px; min-height: 44px; }
	.turma-hd-topo.turma-alin-centro { gap: 10px; }
	.turma-artigo-conteudo { font-size: 1rem; }
	.turma-artigo-conteudo table { display: block; overflow-x: auto; }
	.turma-artigo-conteudo pre { overflow-x: auto; }
}
@media (max-width: 380px) {
	.turma-nav-busca input { min-width: 0; width: 100%; }
	.turma-hd-acoes { flex-wrap: wrap; justify-content: center; }
}
