/*
Theme Name: Sellers Blocks
Theme URI: https://sellers.com.br
Author: Sellers
Description: Tema de blocos (FSE) da Sellers. Substitui o hello-elementor + Elementor Theme Builder: paleta, tipografia, espacamentos e botoes vivem no theme.json; cabecalho, rodape e templates sao HTML de blocos.
Requires at least: 6.9
Tested up to: 7.1
Requires PHP: 7.4
Version: 1.0.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: sellers-blocks
Tags: full-site-editing, block-patterns, custom-colors, custom-logo, editor-style
*/

/* -------------------------------------------------------------------------
   Base
   Conteudo antigo (HTML solto vindo do Elementor/importacoes) traz <img> com
   largura fixa em pixels. Sem estas regras, imagens de 2000px estouram a
   viewport. O tema classico anterior fornecia isso; um tema de blocos nao.
   ---------------------------------------------------------------------- */

img,
picture,
video,
canvas,
svg,
iframe,
embed,
object {
	max-width: 100%;
}

img,
video,
canvas {
	height: auto;
}

iframe,
embed,
object {
	max-width: 100%;
}

table {
	max-width: 100%;
	border-collapse: collapse;
}

/* Evita que palavras longas (URLs, e-mails) furem o container. */
p,
li,
h1,
h2,
h3,
h4 {
	overflow-wrap: break-word;
}

/* -------------------------------------------------------------------------
   Destaque de titulo
   Substitui o "Animated Headline" do Elementor: a palavra em evidencia usa a
   cor da marca, nao o realce amarelo padrao do <mark>.
   ---------------------------------------------------------------------- */

mark.destaque-jornada {
	background: none;
	color: var(--wp--preset--color--laranjao);
	font-weight: inherit;
	padding: 0;
}

/* Icone convertido de Font Awesome para SVG inline. */
.icone-svg {
	display: inline-flex;
	color: var(--wp--preset--color--laranjao);
}

/* -------------------------------------------------------------------------
   Movimento
   Reproduz as animacoes do Elementor com os valores medidos no site original:
   keyframes do animate.css (translate3d de 100%, nao alguns pixels), duracao
   de 1.25s e ocultacao por visibility — igual a .elementor-invisible.

   Nada fica escondido sem JavaScript: o estado inicial so vale sob .tem-js,
   classe que o proprio script adiciona ao <html>.
   ---------------------------------------------------------------------- */

.tem-js .anim {
	visibility: hidden;
}

.tem-js .anim.esta-visivel {
	animation-duration: 1.25s;
	animation-fill-mode: both;
	visibility: visible;
}

.tem-js .anim-sobe.esta-visivel { animation-name: fadeInUp; }
.tem-js .anim-esq.esta-visivel { animation-name: fadeInLeft; }
.tem-js .anim-dir.esta-visivel { animation-name: fadeInRight; }

@keyframes fadeInUp {
	from { opacity: 0; transform: translate3d(0, 100%, 0); }
	to { opacity: 1; transform: none; }
}

@keyframes fadeInLeft {
	from { opacity: 0; transform: translate3d(-100%, 0, 0); }
	to { opacity: 1; transform: none; }
}

@keyframes fadeInRight {
	from { opacity: 0; transform: translate3d(100%, 0, 0); }
	to { opacity: 1; transform: none; }
}

/* As secoes animadas saem da tela durante a entrada; sem isto nasce uma
   barra de rolagem horizontal enquanto a animacao corre. */
.wp-block-post-content { overflow-x: clip; }

/* -------------------------------------------------------------------------
   Palavra rotativa — efeito "typing" do Animated Headline.
   Tempos derivados de rotate_iteration_delay=3000, como o Pro calcula:
   letra a cada 180ms, palavra parada 3000ms, selecao 600ms.
   ---------------------------------------------------------------------- */

.palavra-rotativa {
	display: inline-block;
	position: relative;
	white-space: nowrap;
}

.palavra-rotativa .letra {
	opacity: 0;
}

.palavra-rotativa .letra.aparece {
	opacity: 1;
}

/* Cursor piscante, como o ::after do wrapper no Elementor. */
.palavra-rotativa::after {
	animation: pulsa-cursor 1s infinite;
	background: currentColor;
	content: "";
	display: inline-block;
	height: 0.9em;
	margin-left: 2px;
	vertical-align: text-bottom;
	width: 3px;
}

.palavra-rotativa.selecionada .letra.aparece {
	background: var(--wp--preset--color--azulzao);
	color: #fff;
}

@keyframes pulsa-cursor {
	0%, 45% { opacity: 1; }
	50%, 95% { opacity: 0; }
	100% { opacity: 1; }
}

/* -------------------------------------------------------------------------
   Esteira de logos — 7 imagens por passo, transicao de 1002ms e pausa de
   500ms, os mesmos valores do image-carousel original.
   ---------------------------------------------------------------------- */

.carrossel-logos { overflow: hidden; }

/* O layout "constrained" do WordPress limita os filhos a 1140px. A esteira
   precisa ser mais larga que a tela, senao o passo estoura o trilho. */
.carrossel-logos .marquee-trilho,
.carrossel-logos .wp-block-gallery {
	max-width: none;
}

.carrossel-logos .marquee-trilho {
	display: flex;
	width: max-content;
}

.carrossel-logos .marquee-trilho.desliza {
	/* 1002ms no desktop; o JS troca para 15000ms no mobile (speed do carrossel mobile). */
	transition: transform var(--duracao-esteira, 1002ms) ease-in-out;
}

.carrossel-logos .wp-block-gallery {
	flex-wrap: nowrap;
	padding-right: 1.6em;
	width: max-content;
}

/* Cada logo ocupa um slot fixo, como um slide.
   Sem isso a largura fica circular — o core manda a imagem ocupar 100% da
   figura, e a figura se dimensiona pela imagem: as duas caem no tamanho
   natural do arquivo (778px) e a esteira anda em saltos gigantes. */
.carrossel-logos .wp-block-gallery.has-nested-images figure.wp-block-image {
	flex: 0 0 var(--slot-logo, 168px);
	max-width: none;
	width: var(--slot-logo, 168px);
}

.carrossel-logos .wp-block-gallery.has-nested-images figure.wp-block-image img {
	height: 83px;
	object-fit: contain;
	width: 100%;
}

/* -------------------------------------------------------------------------
   Slider de funcionalidades — transicao de 2000ms a cada 3000ms, sem pausa
   no hover (pause_on_hover=no no original). Sem tilt: o original tinha o
   efeito configurado, mas o switcher de mouse desligado.
   ---------------------------------------------------------------------- */

.tem-js .slider-selos {
	position: relative;
}

.tem-js .slider-selos .slider-janela {
	overflow: hidden;
	width: 100%;
}

/* image_spacing_custom = 59px no widget: o vao aparece durante o deslize.
   O JS anda "100% + o vao" por passo e usa .sem-transicao para o corte do
   laco infinito (a copia do primeiro slide no fim do trilho). */
.tem-js .slider-selos .slider-trilho {
	--vao-slider: 59px;

	display: flex;
	gap: var(--vao-slider);
	transition: transform 2000ms ease;
}

.tem-js .slider-selos .slider-trilho.sem-transicao {
	transition: none;
}

.tem-js .slider-selos .slider-trilho > .wp-block-image {
	flex: 0 0 100%;
	margin: 0;
}

/* Slide de 593px com a imagem (1229x585) centralizada, como o Swiper do
   original; a paginacao ficava 30px abaixo. */
.tem-js .slider-selos .slider-trilho > .wp-block-image {
	display: flex;
	justify-content: center;
	min-height: 593px;
}

/* Sem width no CSS: vale o atributo width="1229" da metadata, como no
   original (o arquivo em disco tem 1362, mas o site nunca mostrou isso). */
.tem-js .slider-selos .slider-trilho > .wp-block-image img {
	height: auto;
	max-width: 100%;
}

/* Setas do Swiper original: chevron cinza sem fundo, 44px, nas bordas. */
.tem-js .slider-selos .slider-seta {
	align-items: center;
	background: transparent;
	border: 0;
	color: #7a7a7a;
	cursor: pointer;
	display: flex;
	font-size: 2.2rem;
	height: 44px;
	justify-content: center;
	line-height: 1;
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	width: 44px;
	z-index: 2;
}

.tem-js .slider-selos .slider-seta:hover { color: var(--wp--preset--color--azulzao); }
.tem-js .slider-selos .slider-anterior { left: -10px; }
.tem-js .slider-selos .slider-proximo { right: -10px; }

/* Faixa de 30px para a paginacao, como o Swiper (bottom: 5px). */
.tem-js .slider-selos .slider-pontos {
	align-items: center;
	display: flex;
	gap: 8px;
	height: 30px;
	justify-content: center;
	margin: 0;
	padding-bottom: 5px;
	margin-top: 12px;
}

.tem-js .slider-selos .slider-ponto {
	background: #cacaca;
	border: 0;
	border-radius: 50%;
	cursor: pointer;
	height: 9px;
	padding: 0;
	width: 9px;
}

.tem-js .slider-selos .slider-ponto[aria-current="true"] {
	background: var(--wp--preset--color--laranjao);
}

/* Quem pediu menos movimento recebe tudo parado, mas visivel. */
@media (prefers-reduced-motion: reduce) {
	.tem-js .anim,
	.tem-js .anim.esta-visivel {
		animation: none;
		visibility: visible;
	}

	.palavra-rotativa::after { animation: none; }
	.carrossel-logos .marquee-trilho.desliza { transition: none; }
	.tem-js .slider-selos .slider-trilho { transition: none; }
	.tem-js .efeito-parallax-1,
	.tem-js .efeito-parallax-2,
	.tem-js .efeito-tilt { transition: none; }
}

/* -------------------------------------------------------------------------
   Home
   Cada valor abaixo foi lido do JSON do Elementor ou medido no site original
   (fontes, pesos, entrelinhas, cores, paddings, sombras). O comentario de
   cada regra diz de onde veio.
   ---------------------------------------------------------------------- */

/* Dois padroes do Elementor que o tema nao tem: colunas sem vao (o respiro
   e o padding de 10px dentro de cada coluna) e 20px entre widgets. */
/* O tema grava 0,67em fixo nas regras de layout (nao usa a variavel), e a
   regra do core zera a margem do primeiro filho. Por isso o vao vai como
   margem explicita aqui, com especificidade acima do :where() do core.
   `.secao.is-layout-*` cobre os filhos diretos da propria secao (que e o
   mesmo elemento); `.secao .is-layout-*`, os grupos e colunas aninhados. */
.secao.is-layout-flow > * + *,
.secao.is-layout-constrained > * + *,
.secao .is-layout-flow > * + *,
.secao .is-layout-constrained > * + * {
	margin-block-start: 20px;
}

/* ...mas a margem e do widget (`.elementor-widget:not(:last-child)`), nao
   da secao interna: depois de um grupo ou de colunas nao ha vao. */
.secao.is-layout-flow > .wp-block-group + *,
.secao.is-layout-flow > .wp-block-columns + *,
.secao.is-layout-constrained > .wp-block-group + *,
.secao.is-layout-constrained > .wp-block-columns + *,
.secao .is-layout-flow > .wp-block-group + *,
.secao .is-layout-flow > .wp-block-columns + *,
.secao .is-layout-constrained > .wp-block-group + *,
.secao .is-layout-constrained > .wp-block-columns + * {
	margin-block-start: 0;
}

/* Excecao: o slider e a esteira sao grupos so no markup; no Elementor eram
   widgets (image-carousel) e levavam os 20px como qualquer outro. */
.secao.is-layout-flow > .slider-selos + *,
.secao .is-layout-flow > .slider-selos + *,
.secao .is-layout-flow > .carrossel-logos + * {
	margin-block-start: 20px;
}

/* O <p> do text-editor nao tem margem (medido em producao, hello-elementor);
   o 1em que eu via no original local vinha do proprio theme.json. */
.secao p[class*="texto-"],
.secao .link-cliente {
	margin-block-end: 0;
}

.secao .wp-block-columns {
	gap: 0;
}

/* As colunas do Elementor incluem o padding na largura (border-box). Como
   content-box, a coluna com 3vw de padding roubava 34px da vizinha e 60%
   virava 62,6%. */
.secao .wp-block-column {
	box-sizing: border-box;
}

/* O layout "constrained" do core injeta 16px de padding lateral (root
   padding). No Elementor a caixa de 1140px nao tinha respiro proprio. */
.secao .wp-block-group.has-global-padding {
	padding-inline: 0;
}

/* Vertical: o core forca align-items:normal na linha; vale a coluna. */
.secao .wp-block-column.is-vertically-aligned-center {
	align-self: center;
}

/* Fundo da pagina (_elementor_page_settings da home): gradiente de 278 graus
   de #E6E6E6 a #FCFCFC no body. Aparece nas secoes sem fundo proprio -
   menu, clientes e contato. */
body.home {
	background: linear-gradient(278deg, #e6e6e6 0%, #fcfcfc 100%);
}

/* No original o menu era uma secao da propria pagina, colada no hero. */
body.home .wp-site-blocks > * + * {
	margin-block-start: 0;
}

/* Cabecalho como a faixa de menu do original: 59px, transparente sobre o
   fundo da pagina; botao 15px/500, padding 12/24, raio 3px. */
.cabecalho-site .wp-block-button__link {
	border-radius: 3px;
	font-size: 15px;
	font-weight: 500;
	line-height: 1;
	padding: 12px 24px;
	text-transform: uppercase;
	transition: all 0.3s;
}

.cabecalho-site .wp-block-site-logo img {
	height: 30px;
	width: auto;
}

.cabecalho-site .wp-block-site-logo a {
	display: block;
	line-height: 0;
}

/* Links do menu: 18px/600, cor #000169 dos headings "Academy" e "Area do
   Cliente" do original. A cor vai no bloco: o core forca `inherit` no link
   (`.wp-block-navigation-item__content.wp-block-navigation-item__content`). */
.cabecalho-site .wp-block-navigation {
	color: #000169;
	font-size: 18px;
	font-weight: 600;
}

/* As secoes encostam umas nas outras: o respiro vem do padding de cada uma. */
.wp-block-post-content > .wp-block-group.alignfull {
	margin-block: 0;
}

/* ---- tipografia ---------------------------------------------------------- */

/* Animated Headline: 2.5em/800/1.2 no hero, 2.7em na solucao. Margens do
   reset do hello-elementor para h1-h6: .5rem acima, 1rem abaixo (medido em
   producao). Cor do texto = global "text" do kit (#7A7A7A); palavra em
   destaque = Laranjao. */
.titulo-rotativo {
	color: #7a7a7a;
	font-size: 2.5em;
	font-weight: 800;
	line-height: 1.2;
	/* padding, nao margin: o core zera a margem do primeiro filho do layout */
	padding-block: 8px 16px;
	text-transform: uppercase;
}

.titulo-rotativo-grande {
	font-size: 2.7em;
}

.titulo-rotativo mark.destaque-texto {
	background: none;
	color: var(--wp--preset--color--laranjao);
	padding: 0;
}

/* Paragrafo do hero: 1.2em/400/1.5, cor text, 10% de padding a direita. */
.texto-hero {
	color: #7a7a7a;
	font-size: 1.2em;
	line-height: 1.5;
	padding-right: 10%;
}

/* "Ja existe uma solucao para:" 2em/700/1.2, #54595F. */
.titulo-lista {
	color: #54595f;
	font-size: 2em;
	font-weight: 700;
	line-height: 1.2;
}

/* Icon List: texto 1.4em/500 #54595F, icone fa-circle de 10px coral,
   1.4em entre itens (metade acima, metade abaixo), 5px entre icone e texto. */
.lista-coral {
	color: #54595f;
	font-size: 1.4em;
	font-weight: 500;
	line-height: 1.2;
	list-style: none;
	padding-left: 0;
}

.lista-coral li {
	padding-block: 0.5em;
	padding-left: calc(10px + 5px + 0.3em);
	position: relative;
}

.lista-coral li:first-child { padding-top: 0; }
.lista-coral li:last-child { padding-bottom: 0; }

.lista-coral li::before {
	background: var(--wp--preset--color--laranjao);
	border-radius: 50%;
	content: "";
	height: 10px;
	left: 0;
	position: absolute;
	top: calc(0.5em + 0.6em - 5px);
	width: 10px;
}

.lista-coral li:first-child::before { top: calc(0.6em - 5px); }

/* Titulos que carregam a faixa (.faixa-*): 1em/500/1.2 e 1.3em no contato. */
.texto-faixa {
	color: #868686;
	font-size: 1em;
	font-weight: 500;
	line-height: 1.2;
}

.texto-faixa-grande { font-size: 1.3em; }

/* .text-highlight2 do original: faixa em bloco, gradiente, sombra. */
.faixa-coral-bloco {
	background: linear-gradient(90deg, #fc465c, #ff624d);
	box-shadow: 2px 2px 5px rgb(0 0 0 / 30%);
	color: #fff;
	display: inline-block;
	font-weight: 600;
	line-height: 1.2em;
	padding: 10px;
}

/* .text-highlight3: faixa inline atras das palavras. */
.faixa-coral {
	background: linear-gradient(90deg, #fc465c, #ff624d);
	box-shadow: 2px 2px 5px rgb(0 0 0 / 30%);
	color: #fff;
	font-weight: 700;
	padding: 1px;
}

/* .text-highlight5: faixa azul menor, 0.6em do titulo. */
.faixa-azul {
	background: var(--wp--preset--color--azulzao);
	box-shadow: 2px 2px 5px rgb(0 0 0 / 30%);
	color: #fff;
	font-size: 0.6em;
	font-weight: 700;
	padding: 1px;
}

/* "A gestao integrada...": 1.5em/600/1.2 azul, caixa alta. */
.chamada-azul {
	color: var(--wp--preset--color--azulzao);
	font-size: 1.5em;
	font-weight: 600;
	line-height: 1.2;
	text-transform: uppercase;
}

/* Titulos cinza grandes (jornada, clientes): 2.5em e 2em, 800, 1.3, #868686. */
.titulo-cinza-grande {
	color: #868686;
	font-size: 2.5em;
	font-weight: 800;
	line-height: 1.3;
	text-transform: uppercase;
}

.titulo-clientes {
	font-size: 2em;
	overflow-wrap: normal;
	word-break: keep-all;
}

/* Texto de apoio da jornada: 1.5em/500/1.5, cor text, 30% livre a direita. */
.texto-apoio-grande {
	color: #7a7a7a;
	font-size: 1.5em;
	font-weight: 500;
	line-height: 1.5;
	padding-right: 30%;
}

/* Cartao escuro: titulo 2em/600 caixa alta; colunas 1.2em/400; texto
   0.9em/300/1.4 em #ECECEC. */
.titulo-card-topo {
	color: #fff;
	font-size: 2em;
	font-weight: 600;
	line-height: 1.2;
	text-transform: uppercase;
}

.titulo-card {
	color: #fff;
	font-size: 1.2em;
	font-weight: 400;
	line-height: 1.2;
}

.texto-card {
	color: #ececec;
	font-size: 0.9em;
	font-weight: 300;
	line-height: 1.4;
}

/* "como a sellers / e diferente!": 4em/800/1 branco, caixa alta. */
.titulo-branco-grande {
	color: #fff;
	font-size: 4em;
	font-weight: 800;
	line-height: 1;
	text-transform: uppercase;
}

.texto-branco-grande {
	color: #fff;
	font-size: 1.5em;
	font-weight: 500;
	line-height: 1.5;
}

/* Contato: 2.5em/800/1.3 azul; cartoes 1.5em/800/1.3; texto 1em/400/1.5
   com 5vw de padding lateral; link "ja e cliente" 14px/500. */
.titulo-azul-grande {
	color: var(--wp--preset--color--azulzao);
	font-size: 2.5em;
	font-weight: 800;
	line-height: 1.3;
	text-transform: uppercase;
}

.titulo-cartao {
	color: var(--wp--preset--color--azulzao);
	font-size: 1.5em;
	font-weight: 800;
	line-height: 1.3;
	text-transform: uppercase;
}

.texto-cartao {
	font-size: 1em;
	line-height: 1.5;
	padding-inline: 5vw;
}

.link-cliente {
	color: #7a7a7a;
	font-size: 14px;
	font-weight: 500;
	margin-top: 10px;
}

.link-cliente a {
	color: inherit;
	text-decoration: none;
	transition: all 0.3s;
}

/* hover_color do widget b594c2b = global 1600eff (Azulzao), nao o #F23D61
   literal que ficou gravado antes de a cor virar global. */
.link-cliente a:hover {
	color: var(--wp--preset--color--azulzao);
}

/* Academy: 2em/800/1 coral; cartoes 20px/600/1 azul. */
.titulo-coral {
	color: var(--wp--preset--color--laranjao);
	font-size: 2em;
	font-weight: 800;
	line-height: 1;
	text-transform: uppercase;
}

.titulo-academy {
	color: var(--wp--preset--color--azulzao);
	font-size: 20px;
	font-weight: 600;
	line-height: 1;
}

/* Coluna do original: borda solida de 2px, raio 15px (cor padrao = coral). */
.cartao-academy {
	border: 2px solid var(--wp--preset--color--laranjao);
	height: 100%;
}

/* ---- botoes ------------------------------------------------------------- */

/* Botao principal: 1em/700/1.2 caixa alta, padding 15/50, raio 8, borda
   branca de 1px e sombra 0 10 15 -5 rgba(0,0,0,.5) — tudo do widget.
   O Elementor da .3s de transicao a todo botao (.elementor-button). */
.secao .botao-principal .wp-block-button__link {
	border: 1px solid #fff;
	border-radius: 8px;
	box-shadow: 0 10px 15px -5px rgb(0 0 0 / 50%);
	color: #fff;
	font-size: 1em;
	font-weight: 700;
	line-height: 1.2;
	padding: 15px 50px;
	text-transform: uppercase;
	transition: all 0.3s;
}

/* O fundo de cada botao vem no atributo style do bloco, entao todo hover
   precisa de !important para passar na frente do inline.
   Hover dos gradientes coral: gradiente de 202 graus com as duas paradas no
   Azulzao (button_background_hover_color[_b] = global 1600eff). */
.secao .botao-principal .wp-block-button__link[style*="linear-gradient"]:hover {
	background: linear-gradient(202deg, #001960 0%, #001960 100%) !important;
}

/* Hover dos botoes azuis (hero, jornada, contato): Laranjao. */
.secao .botao-principal .wp-block-button__link:not([style*="linear-gradient"]):hover {
	background-color: var(--wp--preset--color--laranjao) !important;
}

/* Botoes cinza dos cartoes: 14px/700, largura total (align=justify) dentro
   de 3vw de padding do widget; hover no Azulzao (global 1600eff - o #FE9A6C
   gravado no widget era o valor antigo, antes de virar cor global). */
.botao-cinza {
	padding-inline: 3vw;
	width: 100%;
}

.botao-cinza .wp-block-button__link {
	border-radius: 3px;
	color: #fff;
	font-size: 14px;
	font-weight: 700;
	line-height: 1;
	padding: 15px 50px;
	text-transform: uppercase;
	transition: all 0.3s;
	width: 100%;
}

.botao-cinza .wp-block-button__link:hover {
	background-color: var(--wp--preset--color--azulzao) !important;
}

/* Pilulas da Academy: 13px/500, padding 10/30, raio 100, fundo transparente.
   Sem border_color proprio a borda herda a cor do texto (Azulzao); no hover
   o widget pinta fundo e borda de Azulzao e o texto de branco. */
.wp-block-button.botao-contorno .wp-block-button__link {
	background: transparent;
	border: 1px solid currentcolor;
	border-radius: 100px;
	color: var(--wp--preset--color--azulzao);
	font-size: 13px;
	font-weight: 500;
	line-height: 1;
	padding: 10px 30px;
	text-transform: uppercase;
	transition: all 0.3s;
}

.wp-block-button.botao-contorno .wp-block-button__link:hover {
	background-color: var(--wp--preset--color--azulzao) !important;
	border-color: var(--wp--preset--color--azulzao);
	color: #fff;
}

/* ---- imagens e midia ------------------------------------------------------ */

/* Imagem do hero: margin -30/-30/-30/-10px do widget. A caixa fica 691x524
   e a imagem pinta 731x584, vazando pelas bordas transparentes do PNG. */
@media (min-width: 782px) {
	.secao-hero .imagem-hero {
		margin: -30px -30px -30px -10px;
	}
}

.secao-hero .imagem-hero img {
	height: auto;
	width: 100%;
}

/* Imagem alinhada a direita dentro da coluna (align=right do widget). */
.imagem-direita {
	/* No original um botao oculto (so mobile) vinha depois da imagem, e o
	   widget dela ganhava os 20px de margem. A coluna media 908 = 888 + 20. */
	/* padding, nao margin: a margem do ultimo filho colapsa pela coluna. */
	padding-block-end: 20px;
	margin-inline-start: auto;
}

/* Video: raio 13px e sombra 0 10 15 -5 rgba(0,0,0,.5) (_border_radius e
   _box_shadow do widget). */
.video-solucao {
	border-radius: 13px;
	box-shadow: 0 10px 15px -5px rgb(0 0 0 / 50%);
	overflow: hidden;
}

/* Animacao da jornada, na proporcao do arquivo (1200x742), como em producao,
   onde o player roda. No Elementor local ele falha (24px) e a coluna de texto
   passa a definir a altura: o botao cai no pe da secao e o cartao de
   beneficios (-8vw) cobre a ponta dele. Com a animacao na altura certa a
   coluna de texto centraliza e o botao fica longe do cartao. */
.animacao-jornada {
	aspect-ratio: 1200 / 742;
	display: block;
	margin-inline: auto;
	max-width: 100%;
	width: 100%;
}

.animacao-jornada svg {
	height: 100% !important;
	width: 100% !important;
}

/* Cartao de beneficios sobe 8vw e invade a secao anterior. flow-root prende
   a margem negativa dentro da secao em vez de arrastar a secao inteira. */
.secao-beneficios {
	display: flow-root;
}

/* Esteira de logos: no original cada slide tinha 168px e a imagem 83px. */
.logos-clientes.wp-block-gallery.has-nested-images figure.wp-block-image img {
	max-height: 83px;
	object-fit: contain;
	width: auto;
}

/* Colunas da secao de clientes: titulo sobre fundo Branco (global do kit);
   carrossel com sombra interna 10 0 15 -10 rgba(0,0,0,.5) na borda esquerda. */
.secao-clientes .coluna-branca {
	background: #fff;
}

.secao-clientes .carrossel-logos {
	box-shadow: inset 10px 0 15px -10px rgb(0 0 0 / 50%);
}

/* ---- movimento (Motion Effects do Pro) ------------------------------------ */

/* O JS escreve --parallax-y e --tilt-x/--tilt-y; sem JS fica tudo parado. */
.tem-js .efeito-parallax-1,
.tem-js .efeito-parallax-2,
.tem-js .efeito-tilt {
	transform: perspective(1200px) translateY(var(--parallax-y, 0px))
		rotateX(var(--tilt-x, 0deg)) rotateY(var(--tilt-y, 0deg));
	transform-style: preserve-3d;
	transition: transform 0.15s ease-out;
	will-change: transform;
}

/* ---- cartoes "ja e nosso cliente / precisa de ajuda" ----------------------- */

.cartoes-cliente {
	box-shadow: 0 9px 10px -5px rgb(0 0 0 / 20%);
}

.cartoes-cliente .wp-block-columns {
	align-items: stretch;
}

.cartoes-cliente .wp-block-column {
	display: flex;
	flex-direction: column;
}

.cartoes-cliente .wp-block-column.is-layout-flow > .wp-block-buttons {
	margin-top: auto;
}

/* Um rotulo cabe em uma linha, o outro quebra em duas: com subgrid as tres
   faixas (titulo, texto, botao) compartilham as mesmas linhas. */
@supports (grid-template-rows: subgrid) {
	@media (min-width: 782px) {
		.cartoes-cliente .wp-block-columns {
			display: grid;
			grid-template-columns: 1fr 1fr;
		}

		.cartoes-cliente .wp-block-column {
			display: grid;
			grid-row: span 3;
			grid-template-rows: subgrid;
		}
	}

	.cartoes-cliente .wp-block-column.is-layout-flow > .wp-block-buttons {
		align-items: stretch;
		margin-top: 0;
	}

	.cartoes-cliente .wp-block-button {
		display: flex;
	}
}

.cartoes-cliente .wp-block-column + .wp-block-column {
	border-left: 1px solid var(--wp--preset--color--borda);
}

/* -------------------------------------------------------------------------
   Paginas internas: /conteudos/ (553), listagem do blog e post individual.
   Fontes: _elementor_data de 553 e do template 116 do Theme Builder
   (post individual). A listagem do blog nao tinha desenho no Elementor (era um
   widget HTML fora da identidade): usa os cartoes da Academy.
   ---------------------------------------------------------------------- */

/* Cabecalho de pagina (secao e7955d1): rotulo 20px/600 coral em caixa alta e
   titulo 37px/600 azul com destaque coral; o titulo media 118,4% do miolo. */
.rotulo-coral {
	color: var(--wp--preset--color--laranjao);
	font-size: 20px;
	font-weight: 600;
	line-height: 1.2;
	text-transform: uppercase;
}

.titulo-pagina {
	color: var(--wp--preset--color--azulzao);
	font-size: 37px;
	font-weight: 600;
	line-height: 1.2;
	margin-inline: -9.2%;
	width: 118.4%;
}

.destaque-coral {
	color: var(--wp--preset--color--laranjao);
}

.secao-cabecalho-pagina .rotulo-coral + .titulo-pagina {
	margin-block-start: 20px;
}

/* Cabecalho das paginas legais (/privacidade/): mesmo rotulo coral + titulo
   azul das paginas internas, so que alinhado ao eixo de 820px do texto - o
   titulo nao pode sangrar 9,2% como na Academy, senao sai do prumo do corpo. */
.cabecalho-legal .titulo-pagina {
	margin-inline: 0;
	width: auto;
}

.cabecalho-legal .rotulo-coral + .titulo-pagina {
	margin-block-start: 12px;
}

/* ---- playlist de videos (widget video-playlist do Pro) ---------------------- */

.playlist-player {
	margin: 0;
}

.playlist-lista {
	background: #f8f8f8;
	border: 1px solid var(--wp--preset--color--borda);
	display: flex;
	flex-direction: column;
	height: 100%;
	max-height: 100%;
}

.playlist-cabecalho {
	align-items: baseline;
	border-bottom: 1px solid var(--wp--preset--color--borda);
	display: flex;
	justify-content: space-between;
	padding: 16px 20px;
}

.playlist-titulo {
	color: var(--wp--preset--color--azulzao);
	font-size: 15px;
	font-weight: 600;
}

.playlist-total {
	color: var(--wp--preset--color--texto);
	font-size: 12px;
}

.playlist-lista ul {
	list-style: none;
	margin: 0;
	overflow-y: auto;
	padding: 0;
}

.playlist-item a {
	align-items: center;
	color: var(--wp--preset--color--texto-forte);
	display: flex;
	font-size: 13px;
	gap: 12px;
	padding: 10px 20px;
	text-decoration: none;
}

.playlist-item a:hover,
.playlist-item.esta-ativo a {
	background: #eeeeee;
	color: var(--wp--preset--color--azulzao);
}

.playlist-item img {
	border-radius: 4px;
	flex: 0 0 80px;
	height: 45px;
	object-fit: cover;
	width: 80px;
}

/* ---- blog: cabecalho, busca e filtro ---------------------------------------- */

.cabecalho-blog-linha {
	gap: 24px;
}

.cabecalho-blog-titulos {
	max-width: 640px;
}

.cabecalho-blog .titulo-pagina {
	margin-inline: 0;
	width: auto;
}

.cabecalho-blog .rotulo-coral + .titulo-pagina {
	margin-block-start: 12px;
}

.texto-cabecalho-blog {
	color: var(--wp--preset--color--texto);
	font-size: 16px;
	line-height: 1.6;
	margin-block-start: 12px;
}

.busca-blog {
	flex: 0 1 340px;
}

.busca-blog .wp-block-search__inside-wrapper {
	background: #fff;
	border: 1px solid var(--wp--preset--color--borda);
	border-radius: 100px;
	overflow: hidden;
	padding: 4px 4px 4px 18px;
}

.busca-blog .wp-block-search__input {
	background: transparent;
	border: 0;
	font-family: inherit;
	font-size: 14px;
	outline: none;
}

.busca-blog .wp-block-search__button {
	background: var(--wp--preset--color--azulzao);
	border: 0;
	border-radius: 100px;
	color: #fff;
	margin: 0;
	padding: 8px 14px;
}

.busca-blog .wp-block-search__button:hover {
	background: var(--wp--preset--color--laranjao);
}

.filtro-categorias {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-block-start: 28px;
}

.pilula-filtro {
	background: #fff;
	border: 1px solid var(--wp--preset--color--borda);
	border-radius: 100px;
	color: var(--wp--preset--color--texto-forte);
	font-size: 13px;
	font-weight: 600;
	padding: 8px 18px;
	text-decoration: none;
	transition: background-color 0.2s, color 0.2s, border-color 0.2s;
}

.pilula-filtro small {
	color: var(--wp--preset--color--texto);
	font-weight: 400;
	margin-inline-start: 4px;
}

.pilula-filtro:hover,
.pilula-filtro.esta-ativo {
	background: var(--wp--preset--color--azulzao);
	border-color: var(--wp--preset--color--azulzao);
	color: #fff;
}

.pilula-filtro.esta-ativo small {
	color: rgb(255 255 255 / 70%);
}

/* ---- blog: cartoes ------------------------------------------------------------ */

.rotulo-secao,
.titulo-secao {
	color: var(--wp--preset--color--azulzao);
	font-size: 14px;
	font-weight: 700;
	letter-spacing: 2px;
	margin-block: 0 20px;
	text-transform: uppercase;
}

.rotulo-secao::before,
.titulo-secao::before {
	background: var(--wp--preset--color--laranjao);
	border-radius: 2px;
	content: "";
	display: inline-block;
	height: 12px;
	margin-inline-end: 10px;
	vertical-align: -1px;
	width: 4px;
}

.grade-posts {
	display: grid;
	gap: 30px;
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.wp-block-post-template.grade-posts {
	margin: 0;
	padding: 0;
}

/* O Query Loop embrulha cada post num <li>: quem estica na grade e o <li>, e o
   cartao dentro dele ficava com a altura do proprio conteudo - as caixas
   terminavam em alturas diferentes e o "Ler artigo" dancava ate 76px. */
.wp-block-post-template.grade-posts > li {
	display: flex;
}

.wp-block-post-template.grade-posts > li > .cartao-post {
	flex: 1;
	min-width: 0;
}

.cartao-post {
	background: #fff;
	border: 1px solid var(--wp--preset--color--borda);
	border-radius: 15px;
	display: flex;
	flex-direction: column;
	overflow: hidden;
	position: relative;
	transition: box-shadow 0.3s, border-color 0.3s, transform 0.3s;
}

.cartao-post:hover {
	border-color: var(--wp--preset--color--laranjao);
	box-shadow: 0 15px 30px -15px rgb(0 25 96 / 25%);
	transform: translateY(-3px);
}

.cartao-post .capa-post {
	aspect-ratio: 16 / 9;
	background: linear-gradient(135deg, #001960 0%, #f23d61 100%);
	display: block;
	overflow: hidden;
	position: relative;
}

/* A imagem preenche a moldura por dentro: se ficasse no fluxo, uma capa mais
   alta que 16/9 esticava o cartao e as tres capas saiam de tamanhos diferentes. */
.cartao-post .capa-post a,
.cartao-post .capa-post img {
	display: block;
	height: 100%;
	inset: 0;
	object-fit: cover;
	position: absolute;
	width: 100%;
}
/* Sem imagem destacada (43 dos 47 posts): so o gradiente chapado virava uma
   parede rosa repetida a pagina inteira. Ganha a marca d'agua da Sellers - o
   texto do pseudo-elemento usa a Poppins do tema, sem baixar arquivo nenhum. */
.cartao-post .capa-vazia,
.cartao-post .miolo-post:first-child::before {
	background: linear-gradient(135deg, #001960 0%, #f23d61 100%);
	color: rgb(255 255 255 / 18%);
	display: grid;
	font-size: 30px;
	font-weight: 700;
	height: 100%;
	letter-spacing: 0.5px;
	line-height: 1;
	place-items: center;
}

.cartao-post .miolo-post:first-child::before {
	aspect-ratio: 16 / 9;
	content: "sellers";
	margin: -1px -1px 0;
}

.cartao-post .capa-vazia::after {
	content: "sellers";
}

.cartao-destaque .capa-vazia::after,
.cartao-destaque .miolo-post:first-child::before {
	font-size: 44px;
}

.cartao-lateral .capa-vazia::after {
	font-size: 18px;
}

.cartao-post .badges {
	display: flex;
	gap: 8px;
	left: 14px;
	position: absolute;
	top: 14px;
}

.badge-destaque {
	background: var(--wp--preset--color--laranjao);
	border-radius: 100px;
	color: #fff;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 1px;
	padding: 5px 12px;
	text-transform: uppercase;
}

.cartao-post .badges .pilula-categoria {
	background: rgb(255 255 255 / 90%);
}

.pilula-categoria,
.pilulas-categoria a {
	background: var(--wp--preset--color--fundo-azulzinho);
	border-radius: 100px;
	color: var(--wp--preset--color--azulzao);
	display: inline-block;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 1px;
	padding: 5px 12px;
	text-decoration: none;
	text-transform: uppercase;
}

.pilulas-categoria .wp-block-post-terms__separator {
	display: none;
}

.cartao-post .miolo-post {
	display: flex;
	flex: 1;
	flex-direction: column;
	gap: 12px;
	padding: 20px 24px 24px;
}

.cartao-post .miolo-post > * {
	margin: 0;
}

.titulo-post-lista {
	color: var(--wp--preset--color--azulzao);
	font-size: 19px;
	font-weight: 600;
	line-height: 1.3;
}

.titulo-post-lista a {
	color: inherit;
	text-decoration: none;
}

/* O cartao inteiro e clicavel pelo titulo. */
.titulo-post-lista a::after {
	content: "";
	inset: 0;
	position: absolute;
	z-index: 1;
}

.cartao-post .pilula-categoria,
.cartao-post .pilulas-categoria a,
.cartao-post .capa-post a {
	position: relative;
	z-index: 2;
}

.resumo-post {
	color: var(--wp--preset--color--texto);
	font-size: 14px;
	line-height: 1.6;
}

.meta-post {
	align-items: center;
	color: var(--wp--preset--color--texto);
	display: flex;
	flex-wrap: wrap;
	font-size: 12px;
	gap: 8px;
	margin-top: auto !important;
}

.meta-post > * {
	margin: 0;
}

.meta-post .meta-autor {
	color: var(--wp--preset--color--texto-forte);
	font-weight: 600;
}

.ler-artigo {
	color: var(--wp--preset--color--laranjao);
	font-size: 13px;
	font-weight: 700;
}

.cartao-post:hover .ler-artigo span {
	margin-inline-start: 4px;
}

.ler-artigo span {
	display: inline-block;
	transition: margin 0.2s;
}

/* Destaques: 1 grande (2 colunas) + 2 laterais empilhados. */
.destaques {
	margin-block-end: 50px;
}

.grade-destaques {
	display: grid;
	gap: 30px;
	grid-template-columns: 2fr 1fr;
	grid-template-rows: 1fr 1fr;
}

.cartao-destaque {
	grid-row: 1 / 3;
}

.cartao-destaque .capa-post {
	aspect-ratio: 16 / 8;
}

.cartao-destaque .titulo-post-lista {
	font-size: 28px;
}

.cartao-destaque .miolo-post {
	padding: 28px 32px 32px;
}

.cartao-lateral {
	flex-direction: row;
}

.cartao-lateral .capa-post {
	aspect-ratio: auto;
	flex: 0 0 40%;
	width: 40% !important;
}

.cartao-lateral .miolo-post {
	padding: 18px 20px;
}

.cartao-lateral .titulo-post-lista {
	font-size: 16px;
}

/* Em 181px a data + tempo de leitura quebravam em tres linhas com o "·" orfao. */
.cartao-lateral .meta-post {
	font-size: 11px;
	gap: 6px;
	white-space: nowrap;
}

.cartao-lateral .badges {
	display: none;
}

/* Grade + lateral. */
.blog-colunas {
	display: grid;
	gap: 40px;
	grid-template-columns: minmax(0, 1fr) 300px;
}

.blog-principal .grade-posts {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.blog-lateral {
	display: flex;
	flex-direction: column;
	gap: 24px;
	position: sticky;
	top: 24px;
}

.blog-lateral > .caixa-lateral {
	margin: 0;
}

.caixa-lateral {
	background: #fff;
	border: 1px solid var(--wp--preset--color--borda);
	border-radius: 15px;
	padding: 24px;
}

.caixa-lateral p {
	font-size: 14px;
	line-height: 1.6;
}

.caixa-lateral-azul {
	background: linear-gradient(160deg, #001960 0%, #0a2a8a 100%);
	border: 0;
	color: #fff;
}

.caixa-lateral-azul .titulo-lateral,
.caixa-lateral-azul p {
	color: #fff;
}

.titulo-lateral {
	color: var(--wp--preset--color--azulzao);
	font-size: 18px;
	font-weight: 700;
	margin-block: 0 10px;
}

.redes-lateral {
	margin-top: 8px;
}

/* Paginacao. */
.paginacao-posts {
	font-size: 14px;
	font-weight: 600;
	gap: 16px;
	margin-top: 40px;
}

.paginacao-posts a,
.paginacao-posts .page-numbers {
	color: var(--wp--preset--color--azulzao);
	text-decoration: none;
}

.paginacao-posts .wp-block-query-pagination-numbers {
	display: flex;
	gap: 6px;
}

.paginacao-posts .page-numbers {
	border-radius: 100px;
	line-height: 32px;
	min-width: 32px;
	text-align: center;
}

.paginacao-posts .page-numbers.current {
	background: var(--wp--preset--color--laranjao);
	color: #fff;
}

.paginacao-posts .wp-block-query-pagination-next,
.paginacao-posts .wp-block-query-pagination-previous {
	border: 1px solid var(--wp--preset--color--borda);
	border-radius: 100px;
	padding: 6px 18px;
}

.paginacao-posts .wp-block-query-pagination-next:hover,
.paginacao-posts .wp-block-query-pagination-previous:hover {
	border-color: var(--wp--preset--color--laranjao);
	color: var(--wp--preset--color--laranjao);
}

/* Botoes do CTA e da lateral. */
.botao-cta-branco .wp-block-button__link {
	background: #fff;
	border-radius: 100px;
	color: var(--wp--preset--color--azulzao);
	font-size: 14px;
	font-weight: 700;
	padding: 14px 28px;
}

.botao-cta-branco .wp-block-button__link:hover {
	background: var(--wp--preset--color--laranjao);
	color: #fff;
}

.botao-cta-contorno .wp-block-button__link {
	background: transparent;
	border: 2px solid rgb(255 255 255 / 70%);
	border-radius: 100px;
	color: #fff;
	font-size: 14px;
	font-weight: 700;
	padding: 12px 26px;
}

.botao-cta-contorno .wp-block-button__link:hover {
	background: #fff;
	color: var(--wp--preset--color--azulzao);
}

/* CTA no fim do blog: gradiente dos botoes coral da home. */
.cta-blog-caixa {
	background: linear-gradient(90deg, #f23d61 0%, #fe9a6c 100%);
	border-radius: 20px;
	box-shadow: 0 20px 40px -20px rgb(242 61 97 / 60%);
	color: #fff;
	gap: 24px;
	padding: 48px;
}

.titulo-cta-blog {
	color: #fff;
	font-size: 30px;
	font-weight: 700;
	line-height: 1.2;
	margin: 0;
}

.texto-cta-blog {
	color: rgb(255 255 255 / 90%);
	font-size: 16px;
	margin-block: 10px 0;
	max-width: 520px;
}

/* ---- landing do webinar (pagina 453) --------------------------------------- */

/* Valores medidos no Elementor original em 1440 e 390px. A pagina nao tem
   menu: o cabecalho e so o logo do webinar. */
.secao-webinar {
	border-bottom: 1px solid rgb(0 0 0 / 10%);
}

.pagina-landing .titulo-webinar {
	color: var(--wp--preset--color--azulzao);
	font-size: 36px;
	font-weight: 600;
	line-height: 1.1;
	margin-block: 0;
}

.pagina-landing .foto-palestrantes {
	margin-block: 20px 0;
}

.pagina-landing .nomes-palestrantes {
	color: var(--wp--preset--color--azulzao);
	font-size: 16px;
	font-weight: 600;
	line-height: 1.1;
	margin-block: 20px 0;
}

.pagina-landing .texto-webinar {
	color: var(--wp--preset--color--azulzao);
	font-size: 16px;
	line-height: 1.65;
	margin-block: 20px 0;
}

/* Coral, 16px; o "100% gratuito" vinha logo abaixo com margem -15px. */
.pagina-landing .chamada-webinar {
	color: var(--wp--preset--color--laranjao);
	font-size: 16px;
	font-weight: 600;
	line-height: 1.1;
	margin-block: 37px 0;
}

.pagina-landing .chamada-webinar-leve {
	font-weight: 400;
	margin-block-start: 19px;
}

.pagina-landing .titulo-form-webinar {
	color: var(--wp--preset--color--azulzao);
	font-size: 18px;
	font-weight: 600;
	line-height: 1.1;
	margin-block: 0 19px;
}

/* Formulario: campos 47px de altura, borda 1px #69727D, raio 8, vao de 10px;
   botao azulzao 15/30, largura toda. */
.form-webinar {
	margin: 0;
}

.form-webinar-campo {
	margin: 0 0 10px;
}

.form-webinar-rotulo {
	border: 0;
	clip-path: inset(50%);
	height: 1px;
	overflow: hidden;
	position: absolute;
	white-space: nowrap;
	width: 1px;
}

.form-webinar-controle {
	background: #fff;
	border: 1px solid #69727d;
	border-radius: 8px;
	box-sizing: border-box;
	color: #54595f;
	font-family: inherit;
	font-size: 16px;
	line-height: 1.4;
	padding: 12px 16px;
	width: 100%;
}

.form-webinar-controle:focus-visible {
	outline: 2px solid var(--wp--preset--color--azulzao);
	outline-offset: 1px;
}

.form-webinar-controle.tem-erro {
	border-color: var(--wp--preset--color--laranjao);
}

.form-webinar-erro,
.form-webinar-aviso {
	color: var(--wp--preset--color--laranjao);
	display: block;
	font-size: 13px;
	margin-block-start: 4px;
}

.form-webinar-aviso {
	margin-block: 0 10px;
}

/* Armadilha de robo: fora da tela, sem display:none (robo ignora o que esta
   escondido, mas preenche o que enxerga no HTML). */
.form-webinar-armadilha {
	left: -9999px;
	position: absolute;
	top: -9999px;
}

.form-webinar-enviar {
	background: var(--wp--preset--color--azulzao);
	border: 0;
	border-radius: 8px;
	color: #fff;
	cursor: pointer;
	font-family: inherit;
	font-size: 16px;
	font-weight: 500;
	line-height: 1;
	padding: 15px 30px;
	width: 100%;
}

.form-webinar-enviar:hover {
	background: var(--wp--preset--color--laranjao);
}

/* ---- documento legal: Aviso de Privacidade (pagina 161) -------------------- */

/* Texto corrido longo: a medida de leitura vem do proprio bloco (820px), aqui
   fica so o ritmo. Numeracao das secoes vem escrita no titulo, como no docx. */
.aviso-legal {
	padding-block: 20px 60px;
}

.aviso-legal .titulo-aviso {
	color: var(--wp--preset--color--azulzao);
	font-size: 1.5em;
	font-weight: 600;
	line-height: 1.3;
	margin-block: 2em 0.8em;
}

.aviso-legal .titulo-aviso:first-child {
	margin-block-start: 0;
}

.aviso-legal p,
.aviso-legal li {
	line-height: 1.7;
}

.aviso-legal ul {
	padding-left: 1.2em;
}

.aviso-legal li {
	margin-block-end: 0.6em;
}

.aviso-legal a {
	color: var(--wp--preset--color--laranjao);
}

/* A tabela do item 4 tem 4 colunas de texto: no celular ela rola na horizontal
   em vez de espremer as palavras em uma letra por linha. */
.aviso-legal .tabela-aviso {
	margin-block: 1.5em;
	overflow-x: auto;
}

.aviso-legal .tabela-aviso table {
	border-collapse: collapse;
	min-width: 640px;
}

.aviso-legal .tabela-aviso th,
.aviso-legal .tabela-aviso td {
	border: 1px solid var(--wp--preset--color--borda);
	font-size: 0.9em;
	line-height: 1.5;
	padding: 12px 14px;
	text-align: left;
	vertical-align: top;
}

.aviso-legal .tabela-aviso thead th {
	background: var(--wp--preset--color--fundo-azulzinho);
	color: var(--wp--preset--color--azulzao);
}

.aviso-legal .aviso-atualizacao {
	border-top: 1px solid var(--wp--preset--color--borda);
	color: var(--wp--preset--color--texto);
	font-size: 0.9em;
	margin-block-start: 2.5em;
	padding-block-start: 1em;
}

/* ---- pagina 404 ------------------------------------------------------------ */

/* Rodape sempre no pe da tela: a pagina e curta. Escopo so no 404 para nao
   mexer no fluxo das outras paginas. */
body.error404 .wp-site-blocks {
	display: flex;
	flex-direction: column;
	min-height: 100vh;
}

body.error404 .wp-site-blocks > main {
	flex: 1 0 auto;
}

.numero-404 {
	background: linear-gradient(90deg, #f23d61 0%, #fe9a6c 100%);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
	font-size: 120px;
	font-weight: 800;
	letter-spacing: -4px;
	line-height: 1;
	margin: 0 0 8px;
}

.cabecalho-404 .rotulo-coral + .titulo-pagina {
	margin-block-start: 12px;
}

.cabecalho-404 .texto-cabecalho-blog {
	margin-inline: auto;
	max-width: 560px;
}

.busca-404 {
	margin-block-start: 28px;
	margin-inline: auto;
	max-width: 480px;
}

.botoes-404 {
	margin-block-start: 24px;
}

/* Botoes: o gradiente coral da home e um contorno azul, raio 100 como as
   pilulas da Academy. */
.botoes-404 .wp-block-button__link {
	border-radius: 100px;
	font-size: 15px;
	font-weight: 600;
	padding: 14px 32px;
}

.botoes-404 .botao-gradiente .wp-block-button__link {
	background: linear-gradient(90deg, #f23d61 0%, #fe9a6c 100%);
	box-shadow: 0 10px 15px -5px rgb(0 0 0 / 30%);
	color: #fff;
}

.botoes-404 .botao-gradiente .wp-block-button__link:hover {
	background: linear-gradient(202deg, #f23d61 0%, #fe9a6c 100%);
}

.botoes-404 .botao-contorno-azul .wp-block-button__link {
	border: 2px solid var(--wp--preset--color--azulzao);
	color: var(--wp--preset--color--azulzao);
	padding: 12px 30px;
}

.botoes-404 .botao-contorno-azul .wp-block-button__link:hover {
	background: var(--wp--preset--color--azulzao);
	color: #fff;
}

/* ---- post individual ------------------------------------------------------- */

/* Banner: capa como fundo com veu azul; titulo 43px/600 (template 116).
   43 de 47 posts nao tem imagem destacada: sem foto, o veu azul a 60% sobre
   nada dava um cinza-lavanda morto. Nesses o fundo passa a ser o gradiente da
   marca - o mesmo dos cartoes sem capa, entao a lista e o post combinam. */
.banner-post:not(:has(.wp-block-cover__image-background)) {
	background: linear-gradient(135deg, #001960 0%, #f23d61 100%);
}

.banner-post:not(:has(.wp-block-cover__image-background)) .wp-block-cover__background {
	background: radial-gradient(120% 140% at 15% 0%, rgb(0 25 96 / 45%) 0%, rgb(0 25 96 / 0%) 60%);
	opacity: 1;
}

.banner-post .titulo-post {
	font-size: 43px;
	font-weight: 600;
	letter-spacing: -0.3px;
	line-height: 1.2;
	text-wrap: balance;
}

.banner-post .cabecalho-post-meta {
	align-items: center;
	color: #fff;
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
	justify-content: center;
	margin-block-start: 18px;
}

.banner-post .meta-post {
	color: rgb(255 255 255 / 85%);
	font-size: 13px;
	letter-spacing: 1px;
	text-transform: uppercase;
}

.banner-post .meta-post .meta-autor {
	color: #fff;
}

/* Corpo: o eixo do texto fica no centro da pagina (o Elementor jogava tudo
   para a direita, com 375px de vazio a esquerda dos icones). A coluna fantasma
   da direita equilibra o rail de compartilhar: 88 + 40 + 760 + 40 + 88 = 1016,
   centrado no container de 1080px, texto exatamente no meio da tela. */
.corpo-post .colunas-post {
	display: grid;
	gap: 0 40px;
	grid-template-columns: 88px minmax(0, 760px) 88px;
	justify-content: center;
}

.corpo-post .coluna-compartilhar,
.corpo-post .coluna-conteudo {
	box-sizing: border-box;
	flex-basis: auto !important;
	margin: 0;
	padding: 0;
}

.corpo-post .wp-block-post-content {
	color: #444444;
	font-size: 17px;
	line-height: 1.9;
}

.corpo-post .wp-block-post-content > * + * {
	margin-block-start: 1.2em;
}

.corpo-post .wp-block-post-content h2,
.corpo-post .wp-block-post-content h3,
.corpo-post .wp-block-post-content h4 {
	color: var(--wp--preset--color--azulzao);
	line-height: 1.3;
	margin-block-start: 1.8em;
}

.corpo-post .wp-block-post-content h2 { font-size: 28px; }
.corpo-post .wp-block-post-content h3 { font-size: 22px; }

.corpo-post .wp-block-post-content a {
	color: var(--wp--preset--color--laranjao);
}

.corpo-post .wp-block-post-content img {
	border-radius: 12px;
	height: auto;
	max-width: 100%;
}

.corpo-post .wp-block-post-content figcaption {
	color: var(--wp--preset--color--texto);
	font-size: 13px;
	text-align: center;
}

.corpo-post .wp-block-post-content blockquote {
	border-inline-start: 4px solid var(--wp--preset--color--laranjao);
	color: var(--wp--preset--color--azulzao);
	font-size: 1.1em;
	font-style: italic;
	margin-inline: 0;
	padding-inline-start: 24px;
}

.corpo-post .wp-block-post-content li + li {
	margin-block-start: 0.4em;
}

.rodape-post {
	border-top: 1px solid var(--wp--preset--color--borda);
	color: var(--wp--preset--color--texto);
	font-size: 13px;
	margin-block-start: 40px;
	padding-block-start: 20px;
}

.rodape-post .autor-rodape::before {
	content: "Por ";
}

/* Compartilhar: rail vertical preso ao rolar, na margem esquerda do texto.
   Era uma fileira de 5 icones solta no meio do vazio. */
.compartilhar-fixo {
	position: sticky;
	top: 100px;
}

.rotulo-compartilhar {
	color: var(--wp--preset--color--texto);
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 1px;
	line-height: 1.2;
	margin-block-end: 12px;
	text-align: center;
	text-transform: uppercase;
	writing-mode: horizontal-tb;
}

.compartilhar {
	display: grid;
	gap: 8px;
	justify-items: center;
	list-style: none;
	margin: 0;
	padding: 0;
}

.compartilhar a {
	align-items: center;
	background: var(--wp--preset--color--fundo-azulzinho);
	border-radius: 10px;
	color: var(--wp--preset--color--azulzao);
	display: flex;
	height: 40px;
	justify-content: center;
	transition: background-color 0.2s, color 0.2s;
	width: 40px;
}

.compartilhar a:hover {
	background: var(--wp--preset--color--azulzao);
	color: #fff;
}

.compartilhar-whatsapp:hover { background: #25d366 !important; }
.compartilhar-facebook:hover { background: #1877f2 !important; }
.compartilhar-linkedin:hover { background: #0a66c2 !important; }
.compartilhar-twitter:hover { background: #000 !important; }

/* Navegacao anterior/proximo: rotulo em cima, titulo embaixo, como cartoes.
   Os dois cartoes tinham alturas diferentes (2 x 3 linhas de titulo). */
.navegacao-post .wp-block-group {
	align-items: stretch;
	gap: 24px;
}

.navegacao-post .wp-block-post-navigation-link {
	background: #fff;
	border: 1px solid var(--wp--preset--color--borda);
	border-radius: 15px;
	flex: 1 1 0;
	font-size: 15px;
	font-weight: 600;
	line-height: 1.4;
	max-width: calc(50% - 12px);
	padding: 18px 22px;
	transition: border-color 0.3s, box-shadow 0.3s;
}

/* Nos extremos da linha do tempo (post mais novo e mais antigo) o core imprime
   a caixa do lado que nao existe, vazia: um cartao branco que parecia clicavel
   e prometia um proximo post inexistente. Sem <a> dentro, some. */
.navegacao-post .wp-block-post-navigation-link:not(:has(a)) {
	display: none;
}

.navegacao-post:not(:has(a)) {
	display: none;
}

/* Sozinho (post mais antigo), o "Proximo" continua ancorado a direita. */
.navegacao-post .post-navigation-link-next {
	margin-inline-start: auto;
}

/* O link inteiro (rotulo + titulo) e um texto so: o clamp de 3 linhas deixa o
   rotulo na primeira e duas de titulo, e iguala os dois cartoes. */
.navegacao-post .wp-block-post-navigation-link a {
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3;
	display: -webkit-box;
	overflow: hidden;
}

.navegacao-post .wp-block-post-navigation-link:hover {
	border-color: var(--wp--preset--color--laranjao);
	box-shadow: 0 12px 24px -18px rgb(0 25 96 / 45%);
}

.navegacao-post .wp-block-post-navigation-link a {
	color: var(--wp--preset--color--azulzao);
	text-decoration: none;
}

.navegacao-post .post-navigation-link__label {
	color: var(--wp--preset--color--texto);
	display: block;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 2px;
	margin-block-end: 6px;
	text-transform: uppercase;
}

/* As setas do core caiam numa linha propria; viram prefixo do rotulo. */
.navegacao-post .wp-block-post-navigation-link__arrow-previous,
.navegacao-post .wp-block-post-navigation-link__arrow-next {
	display: none;
}

.navegacao-post .post-navigation-link-previous .post-navigation-link__label::before {
	color: var(--wp--preset--color--laranjao);
	content: "\2190\00a0";
}

.navegacao-post .post-navigation-link-next .post-navigation-link__label::after {
	color: var(--wp--preset--color--laranjao);
	content: "\00a0\2192";
}

.navegacao-post .post-navigation-link-next {
	text-align: right;
}

.secao-relacionados .relacionados {
	margin: 0;
}

/* Cartao relacionado: sem imagem destacada a capa e um gradiente com
   height:100%, que esticava junto com o cartao mais alto - as tres capas
   ficavam de tamanhos diferentes. A capa passa a ter proporcao fixa. */
.secao-relacionados .cartao-post .capa-post {
	flex: 0 0 auto;
}

.secao-relacionados .titulo-post-lista {
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3;
	display: -webkit-box;
	height: calc(3 * 1.35em);
	line-height: 1.35;
	overflow: hidden;
}

/* CTA "Receba uma demonstracao" (secao 37da5ce do template 116). O empilhado
   do Elementor (titulo, texto e formulario, tudo centrado) dava 920px de coral
   chapado no pe de todo post. Acima de 1024px vira texto a esquerda e
   formulario a direita; abaixo volta a empilhar, como no original. */
.cta-demonstracao .titulo-cta {
	color: #ffffff;
	font-size: 22px;
	font-weight: 700;
	line-height: 1.2;
	text-transform: uppercase;
}

.cta-demonstracao .texto-cta {
	color: #ffffff;
	font-size: 14px;
	line-height: 1.5;
	padding-inline: 10%;
}

.cta-demonstracao .caixa-form-cta {
	box-shadow: 0 24px 40px -28px rgb(0 25 96 / 60%);
	margin-inline: auto;
	margin-top: 24px;
	max-width: 640px; /* empilhado, o cartao ia de ponta a ponta (992px) */
}

@media (min-width: 1025px) {
	.cta-demonstracao {
		align-items: center;
		display: flex;
		gap: 56px;
		justify-content: center;
	}

	/* O layout constrained do core poe margin-inline:auto !important em cada
	   filho, e no flex a margem automatica come o espaco livre (108px de cada
	   lado) e afasta as duas colunas. */
	.cta-demonstracao > .lado-cta,
	.cta-demonstracao > .caixa-form-cta {
		margin-inline: 0 !important;
		max-width: none;
	}

	.cta-demonstracao .lado-cta {
		flex: 0 1 440px;
	}

	.cta-demonstracao .titulo-cta,
	.cta-demonstracao .texto-cta {
		padding-inline: 0;
		text-align: left;
	}

	.cta-demonstracao .titulo-cta {
		font-size: 30px;
		margin-block-end: 14px;
	}

	.cta-demonstracao .texto-cta {
		font-size: 15px;
		line-height: 1.7;
	}

	.cta-demonstracao .caixa-form-cta {
		flex: 0 0 480px;
		margin-block: 0;
	}
}

/* O botao do formulario e coral claro: sobre o coral da secao ele sumia. */
.cta-demonstracao .slf-submit {
	background: var(--wp--preset--color--azulzao);
	font-size: 14px;
	padding: 12px 24px;
}

.cta-demonstracao .slf-submit:hover {
	background: #0a2a8c;
}

/* ---- tablet (782-1024px) --------------------------------------------------- */

/* O Elementor nao tinha ajustes de tablet: era o desktop mais estreito, e
   tres coisas quebravam nele (em producao a pagina inteira sangra 173px):
   - o headline do hero (40px fixos) estourava a coluna de 50%;
   - "E DIFERENTE!" (64px) quebrava o "!" sozinho na coluna de 45%;
   - o cartao de beneficios (-8vw) cobria o botao da jornada, cuja coluna
     de texto fica mais alta que a animacao nesta largura.
   Os dois titulos encolhem ate caber; a jornada ganha os 8vw embaixo. */
@media (min-width: 782px) and (max-width: 1024px) {
	.secao-hero .titulo-rotativo {
		font-size: min(2.5em, 4.3vw);
	}

	.titulo-branco-grande {
		font-size: min(4em, 6vw);
	}

	.secao-jornada {
		padding-bottom: 8vw !important;
	}

	/* 88+40+760+40+88 nao cabe: some a coluna fantasma e o texto se estica. */
	.corpo-post .colunas-post {
		grid-template-columns: 88px minmax(0, 1fr);
		padding-inline: 24px;
	}
}

/* ---- mobile (ate 781px, onde o core empilha as colunas) -------------------- */

/* Valores dos controles *_mobile do Elementor (1em = 16px, base do
   hello-elementor) conferidos no site em producao a 390px. O breakpoint do
   Elementor era 767px; o do core e 781px, e as colunas empilham nele.
   Paddings de secao e coluna vivem inline (atributos do bloco), por isso os
   !important: esta camada e a unica que os sobrescreve. */
@media (max-width: 781px) {
	/* -- padroes: coluna sem padding, texto centralizado, botao no centro -- */
	.secao .wp-block-column {
		padding: 0 !important;
	}

	/* O miolo limitado (Academy) ganha o root padding do core; no Elementor a
	   coluna ia de borda a borda e o respiro era a margem de 5% do cartao. */
	.secao.has-global-padding {
		padding-inline: 0 !important;
	}

	/* Colunas vazias de espacamento e o que era hidden-mobile no original. */
	.secao .wp-block-column.espaco,
	.secao .so-desktop {
		display: none;
	}

	.secao [class*="titulo-"],
	.secao [class*="texto-"],
	.secao .chamada-azul,
	.secao .link-cliente {
		text-align: center;
	}

	.secao .wp-block-buttons {
		justify-content: center;
	}

	/* Botoes 0.8em (12,8px) com padding 10/40 em quase toda a pagina. */
	.secao .botao-principal .wp-block-button__link {
		font-size: 0.8em;
		padding: 10px 40px;
	}

	/* -- cabecalho: grade 2x2 (logo | Academy / botao | Area do Cliente) -- */
	.cabecalho-site.has-global-padding {
		padding: 0 !important;
	}

	.cabecalho-site > .wp-block-group {
		align-items: center;
		display: grid;
		gap: 0;
		grid-template-columns: 1fr 1fr;
	}

	/* O grupo de botao + menu deixa de existir como caixa: os filhos entram
	   direto na grade. */
	.cabecalho-site > .wp-block-group > .wp-block-group {
		display: contents;
	}

	.cabecalho-site .wp-block-site-logo {
		grid-area: 1 / 1;
		padding: 10px;
	}

	/* 70% da coluna (width_mobile). O teto so age acima de ~460px, onde o
	   Elementor nunca mostrou este layout (mobile dele acabava em 767, mas
	   nenhum telefone passa de 430). */
	.cabecalho-site .wp-block-site-logo img {
		display: block;
		height: auto;
		margin-inline: auto;
		width: min(70%, 160px);
	}

	.cabecalho-site .wp-block-buttons {
		grid-area: 2 / 1;
		padding: 0 5px 5px;
	}

	.cabecalho-site .wp-block-button {
		width: 100%;
	}

	.cabecalho-site .wp-block-button__link {
		font-size: 0.8em;
		line-height: 1.2;
		padding: 10px 20px;
		width: 100%;
	}

	.cabecalho-site .wp-block-navigation {
		align-self: stretch;
		grid-area: 1 / 2 / 3 / 3;
	}

	.cabecalho-site .wp-block-navigation__container {
		align-items: center;
		flex-direction: column;
		gap: 0;
		height: 100%;
		justify-content: space-around;
	}

	/* -- hero: padding 2em 1em; imagem em cima, texto 1em/1.2 -- */
	.secao-hero {
		padding: 2em 1em !important;
	}

	.titulo-rotativo,
	.titulo-rotativo-grande {
		font-size: 1.5em;
	}

	.texto-hero {
		font-size: 1em;
		line-height: 1.2;
		padding-right: 0;
	}

	/* -- solucao: padding 3em 1em; lista 1em; video com 2em acima -- */
	.secao-solucao {
		padding: 3em 1em !important;
	}

	.secao-solucao .cabeca-solucao {
		padding-bottom: 0 !important;
	}

	.secao-solucao .corpo-solucao {
		padding: 1em 0 0 !important;
	}

	.secao-solucao .col-video {
		padding-top: 2em !important;
	}

	.secao .titulo-lista {
		font-size: 1.2em;
		text-align: left;
	}

	.lista-coral {
		font-size: 1em;
	}

	.lista-coral li::before {
		height: 8px;
		width: 8px;
	}

	.texto-faixa {
		font-size: 1.1em;
	}

	/* A chamada e o botao eram uma secao com margem de 3em e 10px entre si. */
	.secao-solucao .is-layout-flow > .chamada-azul {
		font-size: 1em;
		margin-block-start: 3em;
	}

	.secao-solucao .is-layout-flow > .chamada-azul + .wp-block-buttons {
		margin-block-start: 10px;
	}

	/* -- jornada: titulo, texto, animacao, botao (nessa ordem) -- */
	.secao-jornada {
		padding: 3em 1em !important;
	}

	/* As duas colunas somem como caixas e os filhos entram na linha do
	   core/columns, que ja e flex com quebra: assim o botao (que no original
	   era outro widget, na coluna da animacao) pode vir depois dela. */
	.secao-jornada > .wp-block-columns > .wp-block-column,
	.secao-beneficios .comparativo > .wp-block-column,
	.secao-contato > .wp-block-columns > .wp-block-column {
		display: contents;
	}

	.secao-jornada > .wp-block-columns > .wp-block-column > *,
	.secao-beneficios .comparativo > .wp-block-column > *,
	.secao-contato > .wp-block-columns > .wp-block-column > * {
		box-sizing: border-box;
		flex: 0 0 100%;
		width: 100%;
	}

	.secao-jornada .titulo-cinza-grande {
		font-size: 1.1em;
	}

	.texto-apoio-grande {
		font-size: 1em;
		padding-right: 0;
	}

	/* Coluna da animacao: 2em acima (o 4em abaixo vai na margem do botao). Em
	   producao mobile o player tambem falhava (32px); aqui a animacao aparece. */
	.animacao-jornada {
		margin-block-start: 2em;
	}

	.secao-jornada .cta-jornada {
		margin-block: 30px calc(4em + 20px);
		order: 1;
		padding-top: 0 !important;
	}

	/* O botao mobile da jornada nao tinha ajuste: 1em, 15/50 como no desktop. */
	.secao-jornada .botao-principal .wp-block-button__link {
		font-size: 1em;
		padding: 15px 50px;
	}

	/* -- beneficios: coluna-mae com 1em; cartao sobe 6em; comparativo -- */
	.secao-beneficios {
		padding: 0 1em 4vw !important;
	}

	.cartao-beneficios {
		margin: -6em 0 0 !important;
		padding: 2em 1em !important;
	}

	.cartao-beneficios .wp-block-column {
		padding: 10px !important;
	}

	.titulo-card-topo {
		font-size: 1em;
		padding-bottom: 1em;
	}

	.titulo-card {
		font-size: 1em;
	}

	.texto-card {
		font-size: 0.8em;
		line-height: 1.3;
	}

	.comparativo .titulo-branco-grande {
		font-size: 2.5em;
		margin-block-start: 2rem; /* padding 2em da coluna b76abbe, na base de 16px */
	}

	.comparativo .titulo-branco-grande + .texto-branco-grande {
		margin-block-start: 10px;
	}

	.texto-branco-grande {
		font-size: 1em;
	}

	/* Imagem 80% centralizada, coluna com margem de -1em; o botao vem depois. */
	.secao-beneficios .comparativo .imagem-direita {
		flex-basis: 80%;
		margin: -1em auto 0;
		padding: 0;
		width: 80%;
	}

	.comparativo .cta-comparativo {
		order: 1;
		padding-top: 0 !important;
	}

	.comparativo .botao-principal .wp-block-button__link {
		padding: 15px 30px;
	}

	/* -- clientes: titulo em caixa branca, 4 logos por tela, esteira lenta -- */
	/* Coluna e102352 (2vw) com uma secao interna dentro (gutter de 10px). */
	.secao-clientes .coluna-branca {
		padding: calc(2vw + 10px) !important;
	}

	.titulo-clientes {
		font-size: 1em;
	}

	/* Coluna a00b8d3 do original: fundo #F3F3F3, sombra interna no topo. */
	.secao-clientes .carrossel-logos {
		background: #f3f3f3;
		box-shadow: inset 0 15px 10px -10px rgb(0 0 0 / 30%);
	}

	.carrossel-logos .wp-block-gallery.has-nested-images figure.wp-block-image,
	.carrossel-logos .wp-block-gallery.has-nested-images figure.wp-block-image img {
		/* 4 por tela (slides_to_show_mobile): o periodo slot + gap da galeria (16px) = 25vw */
		--slot-logo: calc(25vw - 16px);
	}

	/* No Swiper a imagem preenchia a largura do slide, altura na proporcao. */
	.carrossel-logos .wp-block-gallery.has-nested-images figure.wp-block-image img {
		height: auto;
		max-height: none;
		width: 100%;
	}

	/* -- selos: padding 2em 1em; logo 30%; slide na altura da imagem -- */
	.secao-selos {
		padding: 2em 1em !important;
	}

	.secao-selos .logo-selos {
		width: 30% !important;
	}

	.tem-js .slider-selos .slider-trilho > .wp-block-image {
		min-height: 0;
	}

	/* -- contato: titulo, form em caixa branca, cartoes, link -- */
	.secao-contato {
		padding: 2em 0 0 !important;
	}

	/* Coluna 5d8e57d (0 1em) + secao 952da07 (20px acima) + gutter de 10px. */
	.secao-contato .cabeca-contato {
		padding: 20px calc(1em + 10px) 0;
	}

	.secao-contato .logo-contato {
		margin-inline: auto;
		width: 30% !important;
	}

	.texto-faixa-grande {
		font-size: 0.7em;
	}

	.titulo-azul-grande {
		font-size: 1em;
	}

	/* Coluna fb39a47: margem 1em, fundo branco, raio 12, sombra .3, 1em dentro. */
	.secao-contato .wp-block-column > .caixa-form {
		background: #fff;
		border-radius: 12px;
		box-shadow: 0 10px 15px -5px rgb(0 0 0 / 30%);
		flex-basis: calc(100% - 2em);
		margin: 1em;
		order: 1;
		padding: 1em;
		width: calc(100% - 2em);
	}

	/* Coluna 017a357 (0 8px) + secao 486d737 (margem 2em, 0 5px, raio 12). */
	.secao-contato .wp-block-column > .cartoes-cliente {
		border-radius: 12px;
		flex-basis: calc(100% - 16px);
		margin: 2em 8px 0 !important;
		order: 2;
		padding: 0 5px !important;
		width: calc(100% - 16px);
	}

	.cartoes-cliente .wp-block-column {
		padding: 1em !important;
	}

	.cartoes-cliente .wp-block-column > * + * {
		margin-block-start: 10px;
	}

	.cartoes-cliente .wp-block-column + .wp-block-column {
		border-left: 0;
		border-top: 1px solid var(--wp--preset--color--borda);
	}

	.titulo-cartao {
		font-size: 1.1em;
	}

	.texto-cartao {
		line-height: 1.2;
		padding-inline: 0;
	}

	/* Secao 5525e4a: 20px embaixo; link 16px. */
	.secao-contato .link-cliente {
		font-size: 16px;
		line-height: 1;
		margin-block: 20px;
		order: 3;
		/* coluna 0 8px + secao 0 5px + gutter 10px + widget 10px: 314px de texto */
		padding-inline: 33px;
	}

	/* -- academy: titulo 1.5em; 20px extras sob a imagem e o titulo do cartao -- */
	.secao-academy-titulo {
		padding: 2em 0 1em !important;
	}

	.secao-academy-titulo .wp-block-column {
		padding: 10px !important;
	}

	.titulo-coral {
		font-size: 1.5em;
	}

	.cartao-academy .wp-block-image,
	.cartao-academy .titulo-academy {
		padding-bottom: 20px;
	}

	/* -- paginas internas: /conteudos/, blog e post -- */
	.titulo-pagina {
		font-size: 32px; /* typography_font_size_mobile do heading 1fc9138 */
		margin-inline: 0;
		width: auto;
	}

	.secao-cabecalho-pagina {
		padding: 50px 20px !important; /* padding_mobile da secao e7955d1 */
	}

	.playlist-lista {
		margin-top: 20px;
	}

	.cabecalho-blog,
	.miolo-blog,
	.cta-blog {
		padding-inline: 16px !important;
	}

	.busca-blog {
		flex-basis: 100%;
	}

	.grade-destaques,
	.grade-posts,
	.blog-principal .grade-posts,
	.blog-colunas {
		grid-template-columns: minmax(0, 1fr);
	}

	.cartao-destaque {
		grid-row: auto;
	}

	.cartao-destaque .titulo-post-lista {
		font-size: 22px;
	}

	.blog-lateral {
		position: static;
	}

	.cta-blog-caixa {
		padding: 32px 24px;
	}

	.titulo-cta-blog {
		font-size: 24px;
	}

	.banner-post .titulo-post {
		font-size: 26px;
	}

	.banner-post {
		padding: 30px 20px !important;
	}

	.corpo-post {
		margin-block: 30px 0 !important;
	}

	/* O rail vira uma fileira acima do texto; nao ha margem para segura-lo. */
	.corpo-post .colunas-post {
		display: block;
	}

	.corpo-post .coluna-conteudo {
		padding-inline: 20px !important; /* margin_mobile da coluna 1ad6f1df */
	}

	.corpo-post .wp-block-post-content {
		font-size: 16px;
	}

	.compartilhar-fixo {
		position: static;
	}

	.compartilhar {
		grid-auto-flow: column;
		justify-content: center;
	}

	.navegacao-post > .wp-block-group {
		flex-wrap: wrap;
	}

	.navegacao-post .wp-block-post-navigation-link {
		flex: 1 1 100%; /* com flex-basis 0 os dois cartoes dividiam a tela */
		max-width: none;
		text-align: left;
		width: 100%;
	}

	.cta-demonstracao {
		padding: 30px 16px !important; /* padding_mobile da secao 37da5ce */
	}

	.cta-demonstracao .titulo-cta {
		font-size: 24px;
	}

	.cta-demonstracao .texto-cta {
		padding-inline: 0;
	}

	/* -- landing do webinar: padding_mobile das secoes 50/0/0/25 e 30/20/50/20;
	   tudo alinhado a esquerda (align_mobile=left em todos os widgets) -- */
	/* 35px = 25 do padding_mobile da secao + os 10 do gutter da coluna, que a
	   regra generica desta camada zera. */
	.pagina-landing .secao-logo-webinar {
		padding: 50px 0 0 35px !important;
	}

	/* aligncenter do core aplica margin auto com a mesma especificidade. */
	.pagina-landing .logo-webinar.aligncenter {
		margin-inline: 0 !important;
	}

	.pagina-landing .secao-webinar {
		padding: 30px 20px 50px !important;
	}

	/* Empilhadas, o "100% gratuito" encostava no titulo do formulario; no
	   original sobravam 37px entre as duas colunas. */
	.pagina-landing .coluna-webinar-form {
		margin-block-start: 37px;
	}

	.pagina-landing .secao [class*="titulo-"],
	.pagina-landing .secao [class*="texto-"],
	.pagina-landing .secao [class*="chamada-"],
	.pagina-landing .secao [class*="nomes-"] {
		text-align: left;
	}

	.pagina-landing .titulo-webinar {
		font-size: 30px;
	}

	.pagina-landing .texto-webinar {
		font-size: 14px;
	}

	.pagina-landing .foto-palestrantes {
		width: 160px !important; /* width_mobile do widget 45a2186 */
	}
}
