/* =========================================================================
   Versátil Pro - main.css
   100% Vanilla. Layout em flexbox, responsivo, animado.
   As cores/tipografia/medidas vêm de CSS Custom Properties injetadas pelo
   Customizer (inc/customizer.php). Aqui ficam os fallbacks e o layout.
   ========================================================================= */


/* Utilitário reutilizável: oculta a barra mantendo a rolagem funcional. */
.vsp-scroll-none { scrollbar-width: none; -ms-overflow-style: none; }
.vsp-scroll-none::-webkit-scrollbar { width: 0; height: 0; display: none; }

:root {
	--vsp-primary: #2f6f8f;
	--vsp-primary-dk: #1f4d66;
	--vsp-accent: #2d8a78;
	--vsp-text: #1f2328;
	--vsp-muted: #5b6470;
	--vsp-bg: #ffffff;
	--vsp-surface: #f4f7fa;
	--vsp-border: #dfe6ee;
	--vsp-header-bg: #ffffff;
	--vsp-footer-bg: #16181d;
	--vsp-footer-tx: #d7dbe0;
	--vsp-font-body: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
	--vsp-font-heading: var(--vsp-font-body);
	--vsp-fs-base: 16px;
	--vsp-fs-h1: 32px;
	--vsp-fs-h2: 26px;
	--vsp-fs-h3: 21px;
	--vsp-lh: 1.7em;
	--vsp-container: 1140px;
	--vsp-mobile-w: 97%;
	--vsp-radius: 14px;
	--vsp-radius-lg: 18px;
	--vsp-radius-sm: 8px;
	--vsp-shadow-sm: 0 1px 3px rgba(20, 24, 31, .08), 0 1px 2px rgba(20, 24, 31, .06);
	--vsp-shadow-md: 0 6px 20px rgba(20, 24, 31, .10);
	--vsp-shadow-lg: 0 18px 50px rgba(20, 24, 31, .16);
	--vsp-ease: cubic-bezier(.22, 1, .36, 1);
	--vsp-gap: 24px;
	--vsp-header-h: 72px;
	--vsp-header-logo-h: 54px;
	--vsp-header-menu-pt: 10px;
	--vsp-header-menu-pb: 10px;
	--vsp-submenu-w: 240px;
	--vsp-submenu-radius: 14px;
	--vsp-submenu-pad: 10px;
	--vsp-submenu-offset: 8px;
	--vsp-submenu-duration: 220ms;
	--vsp-submenu-enter-y: 10px;
	--vsp-submenu-enter-x: 10px;
	--vsp-submenu-enter-scale: .985;
}

/* ---------- Reset enxuto ---------- */
*, *::before, *::after { box-sizing: border-box; }
* { margin: 0; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	.vsp-menu .sub-menu,
	.vsp-menu .sub-menu > li,
	.vsp-sub-arrow,
	.vsp-mobile-menu .sub-menu,
	.vsp-mobile-submenu-toggle,
	.vsp-mobile-submenu-toggle .vsp-sub-arrow { transition-duration: 0.01ms !important; transition-delay: 0s !important; }
}
body {
	font-family: var(--vsp-font-body);
	font-size: var(--vsp-fs-base);
	line-height: var(--vsp-lh);
	color: var(--vsp-text);
	background: var(--vsp-bg);
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
	/* overflow-x: clip evita rolagem horizontal SEM quebrar position: sticky
	   (ao contrário de overflow-x: hidden, que cria um contêiner de rolagem). */
	overflow-x: clip;
}
img, picture, video, canvas, svg { display: block; max-width: 100%; height: auto; }
input, button, textarea, select { font: inherit; color: inherit; }
a { color: var(--vsp-primary); text-decoration: none; transition: color .2s var(--vsp-ease); }
a:hover { color: var(--vsp-primary-dk); }
ul, ol { padding: 0; list-style: none; }
:focus-visible { outline: 3px solid var(--vsp-accent); outline-offset: 2px; border-radius: 4px; }

h1, h2, h3, h4, h5, h6 {
	font-family: var(--vsp-font-heading);
	line-height: 1.25;
	font-weight: 800;
	letter-spacing: -.01em;
	color: var(--vsp-text);
}
h1 { font-size: var(--vsp-fs-h1); }
h2 { font-size: var(--vsp-fs-h2); }
h3 { font-size: var(--vsp-fs-h3); }

.screen-reader-text {
	position: absolute !important;
	clip: rect(1px, 1px, 1px, 1px);
	width: 1px; height: 1px; overflow: hidden;
	word-wrap: normal !important;
}
.screen-reader-text:focus {
	clip: auto !important; width: auto; height: auto;
	background: var(--vsp-bg); padding: 12px 20px; z-index: 100000;
	top: 8px; left: 8px; border-radius: var(--vsp-radius-sm); box-shadow: var(--vsp-shadow-md);
}

/* ---------- Layout base ---------- */
.vsp-container {
	width: var(--vsp-container);
	max-width: var(--vsp-mobile-w, 97%);
	margin-inline: auto;
}
.vsp-icon { display: inline-block; vertical-align: middle; flex: 0 0 auto; }
.vsp-rot-left { transform: rotate(90deg); }

.vsp-skip-link {
	position: absolute; left: 8px; top: -60px; z-index: 1000;
	background: var(--vsp-primary); color: var(--vsp-on-primary); padding: 10px 18px; border-radius: var(--vsp-radius-sm);
	transition: top .2s var(--vsp-ease);
}
.vsp-skip-link:focus { top: 8px; color: var(--vsp-on-primary); }

/* =========================================================================
   HEADER
   ========================================================================= */
.vsp-topbar {
	/* Igual ao rodapé: uma paleta própria, sempre escura, que não troca com o
	   alternador claro/escuro (--vsp-text SIM troca, então usá-la aqui deixava
	   a barra clara no modo escuro com o texto branco fixo por cima —
	   ilegível). Reaproveita as cores do rodapé, já configuráveis. */
	background: var(--vsp-footer-bg);
	color: var(--vsp-footer-tx);
	font-size: 13px;
}
.vsp-topbar__inner {
	display: flex; align-items: center; justify-content: space-between;
	min-height: 40px; gap: 16px;
}
.vsp-topbar__tag { display: inline-flex; align-items: center; gap: 8px; opacity: .9; }
.vsp-social-nav__list { display: flex; align-items: center; gap: 4px; }
.vsp-social-nav__list a {
	display: inline-flex; align-items: center; justify-content: center;
	width: 32px; height: 32px; border-radius: 50%; color: var(--vsp-footer-tx);
	transition: background .2s var(--vsp-ease), transform .2s var(--vsp-ease);
}
.vsp-social-nav__list a:hover { background: color-mix(in srgb, var(--vsp-footer-tx) 16%, transparent); transform: translateY(-2px); color: var(--vsp-footer-tx); }

.vsp-header__main {
	position: relative;
	background: var(--vsp-header-bg);
	border-bottom: 1px solid var(--vsp-border);
	transition: box-shadow .3s var(--vsp-ease);
}
/* Sticky aplicado ao <header> (não ao filho .vsp-header__main): o bloco-contêiner
   do header é a página inteira, então o grude funciona mesmo sem a topbar — que
   era a causa de o sticky "não pegar". O esconde/mostra ao rolar e a sombra são
   controlados pelas classes is-hidden/is-scrolled (via JS). */
.vsp-sticky-header .vsp-header {
	position: sticky; top: 0; z-index: 200;
	transition: transform .35s var(--vsp-ease);
}
.vsp-sticky-header .vsp-header.is-scrolled .vsp-header__main { box-shadow: var(--vsp-shadow-md); }
.vsp-sticky-header .vsp-header.is-hidden { transform: translateY(-100%); }
.vsp-sticky-header .vsp-header.is-search-open { transform: translateY(0) !important; }

.vsp-header__inner {
	display: flex; align-items: center; justify-content: space-between;
	gap: 24px; min-height: var(--vsp-header-h);
}
/* A marca não participa mais de uma caixa de linha tipográfica. Antes o DIV
   podia ficar alguns pixels mais alto que A/IMG por causa do line-height do
   documento, deslocando visualmente a logo mesmo com align-items:center. */
.vsp-header__brand {
	display: flex; align-items: center; flex: 0 0 auto; line-height: 0;
}
.vsp-header--logo-center .vsp-header__inner { justify-content: center; flex-wrap: wrap; }
.vsp-header--logo-center .vsp-primary-nav { order: 3; flex-basis: 100%; }

.vsp-site-title { font-size: clamp(20px, 3vw, 28px); font-weight: 800; }
.vsp-site-title a { color: var(--vsp-text); }
.vsp-site-title a:hover { color: var(--vsp-primary); }
.custom-logo-link { display: inline-flex; }
.custom-logo { max-height: 52px; width: auto; }

/* Logos do tema (cabeçalho/rodapé) com troca claro/escuro via CSS. */
.vsp-logo-link { display: inline-flex; align-items: center; }
.vsp-logo { display: block; width: auto; height: auto; max-height: 54px; }
/* No cabeçalho, DIV > A > IMG compartilham a mesma referência vertical.
   A altura configurada é aplicada ao link e à imagem; a largura permanece
   automática, preservando a proporção. O min() impede que uma logo maior
   que o cabeçalho escape da linha principal. */
.vsp-logo-link--header {
	display: flex; align-items: center; line-height: 0;
	height: min(var(--vsp-header-logo-h), var(--vsp-header-h));
}
.vsp-logo-link--header .vsp-logo {
	display: block; height: 100%; width: auto; max-height: none; max-width: 100%; object-fit: contain;
}
.vsp-logo-link--footer .vsp-logo { max-height: 46px; }
/* Por padrão exibe a logo clara; a escura só existe quando há variante. */
.vsp-logo-link--has-dark .vsp-logo--dark { display: none; }
body.vsp-dark .vsp-logo-link--has-dark .vsp-logo--light { display: none; }
body.vsp-dark .vsp-logo-link--has-dark .vsp-logo--dark { display: block; }
@media (max-width: 600px) {
	.vsp-logo-link--footer .vsp-logo { max-height: 40px; }
}

/* Menu principal */
.vsp-primary-nav { display: flex; }
.vsp-menu { display: flex; align-items: center; gap: 4px; flex-wrap: wrap; }
.vsp-menu li { position: relative; }
.vsp-menu a {
	display: inline-flex; align-items: center; gap: 6px;
	padding: 10px 14px; border-radius: var(--vsp-radius-sm); color: var(--vsp-header-link, var(--vsp-text)); font-weight: 600;
	transition: color .2s var(--vsp-ease), background .2s var(--vsp-ease);
}
/* O padding configurável pertence somente à primeira linha do menu.
   Submenus preservam sua densidade própria e não são deformados junto. */
.vsp-menu > li > a {
	padding-top: var(--vsp-header-menu-pt);
	padding-bottom: var(--vsp-header-menu-pb);
}
.vsp-menu a::after {
	content: ""; position: absolute; left: 14px; right: 14px; bottom: max(2px, calc(var(--vsp-header-menu-pb) - 4px)); height: 2px;
	background: var(--vsp-header-link-hover); transform: scaleX(0); transform-origin: left;
	transition: transform .25s var(--vsp-ease);
}
.vsp-menu a:hover, .vsp-menu .current-menu-item > a { color: var(--vsp-header-link-hover); }
.vsp-menu a:hover::after, .vsp-menu .current-menu-item > a::after { transform: scaleX(1); }

/* Submenus — painel elevado, microinterações e saída animada. */
.vsp-menu > li.menu-item-has-children::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	top: 100%;
	height: var(--vsp-submenu-offset);
	pointer-events: auto;
}
.vsp-menu .sub-menu {
	position: absolute;
	top: calc(100% + var(--vsp-submenu-offset));
	left: 0;
	min-width: var(--vsp-submenu-w);
	padding: var(--vsp-submenu-pad);
	z-index: 50;
	background: var(--vsp-header-dropdown-bg);
	border: 1px solid var(--vsp-header-dropdown-border, transparent);
	border-radius: var(--vsp-submenu-radius);
	box-shadow: 0 20px 55px rgba(15, 20, 28, .18), 0 4px 14px rgba(15, 20, 28, .08);
	backdrop-filter: blur(14px);
	-webkit-backdrop-filter: blur(14px);
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transform: translateY(var(--vsp-submenu-enter-y)) scale(var(--vsp-submenu-enter-scale));
	transform-origin: top left;
	will-change: transform, opacity;
	transition:
		opacity var(--vsp-submenu-duration) ease,
		transform calc(var(--vsp-submenu-duration) + 40ms) var(--vsp-ease),
		visibility 0s linear var(--vsp-submenu-duration),
		box-shadow .25s var(--vsp-ease);
}
.vsp-menu .sub-menu::before {
	content: "";
	position: absolute;
	left: 14px;
	right: 14px;
	top: 0;
	height: 1px;
	border-radius: 999px;
	background: linear-gradient(90deg, transparent, var(--vsp-header-link-hover), transparent);
	opacity: .22;
	pointer-events: none;
}
.vsp-menu li:hover > .sub-menu,
.vsp-menu li:focus-within > .sub-menu {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
	transform: translateY(0) scale(1);
	transition-delay: 0s;
}
.vsp-menu .sub-menu > li {
	opacity: 0;
	transform: translateY(5px);
	transition: opacity .16s ease, transform .22s var(--vsp-ease);
	transition-delay: 0s;
}
.vsp-menu li:hover > .sub-menu > li,
.vsp-menu li:focus-within > .sub-menu > li { opacity: 1; transform: none; }
.vsp-menu li:hover > .sub-menu > li:nth-child(2),
.vsp-menu li:focus-within > .sub-menu > li:nth-child(2) { transition-delay: 22ms; }
.vsp-menu li:hover > .sub-menu > li:nth-child(3),
.vsp-menu li:focus-within > .sub-menu > li:nth-child(3) { transition-delay: 44ms; }
.vsp-menu li:hover > .sub-menu > li:nth-child(4),
.vsp-menu li:focus-within > .sub-menu > li:nth-child(4) { transition-delay: 66ms; }
.vsp-menu li:hover > .sub-menu > li:nth-child(5),
.vsp-menu li:focus-within > .sub-menu > li:nth-child(5) { transition-delay: 88ms; }
.vsp-menu li:hover > .sub-menu > li:nth-child(n+6),
.vsp-menu li:focus-within > .sub-menu > li:nth-child(n+6) { transition-delay: 105ms; }
.vsp-menu .sub-menu a {
	position: relative;
	width: 100%;
	min-height: 42px;
	padding: 10px 12px;
	border: 1px solid transparent;
	border-radius: max(6px, calc(var(--vsp-submenu-radius) - 5px));
	color: var(--vsp-header-dropdown-link, var(--vsp-header-link, var(--vsp-text)));
	font-weight: 600;
	line-height: 1.35;
	transition:
		background .22s var(--vsp-ease),
		color .22s var(--vsp-ease),
		border-color .22s var(--vsp-ease),
		transform .22s var(--vsp-ease);
}
.vsp-menu .sub-menu a::after { display: none; }
.vsp-menu .sub-menu a:hover,
.vsp-menu .sub-menu a:focus-visible,
.vsp-menu .sub-menu .current-menu-item > a,
.vsp-menu .sub-menu .current-menu-ancestor > a {
	background: var(--vsp-header-dropdown-hv);
	color: var(--vsp-header-dropdown-link-hover, var(--vsp-header-link-hover));
	border-color: var(--vsp-header-dropdown-border-hv, transparent);
	transform: translateX(3px);
}
.vsp-menu .sub-menu a:focus-visible {
	outline: none;
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--vsp-header-link-hover) 22%, transparent);
}

/* Altura limitada + scroll próprio — apenas quando o JS detecta necessidade. */
.vsp-menu .sub-menu.vsp-submenu-scroll {
	max-height: var(--vsp-submenu-maxh, 70vh);
	overflow-y: auto;
	overscroll-behavior: contain;
	scrollbar-width: thin;
	scrollbar-color: color-mix(in srgb, var(--vsp-primary) 70%, transparent) transparent;
}
.vsp-menu .sub-menu.vsp-submenu-scroll::-webkit-scrollbar { width: 6px; }
.vsp-menu .sub-menu.vsp-submenu-scroll::-webkit-scrollbar-track { background: transparent; }
.vsp-menu .sub-menu.vsp-submenu-scroll::-webkit-scrollbar-thumb {
	background: color-mix(in srgb, var(--vsp-primary) 65%, transparent);
	border-radius: 999px;
}
.vsp-menu .sub-menu.vsp-submenu-scroll::-webkit-scrollbar-thumb:hover { background: var(--vsp-primary); }

/* Submenu aninhado: abre lateralmente e mantém uma ponte de hover. */
.vsp-menu .sub-menu li.menu-item-has-children::after {
	content: "";
	position: absolute;
	left: 100%;
	top: 0;
	width: var(--vsp-submenu-offset);
	height: 100%;
	pointer-events: auto;
}
.vsp-menu .sub-menu .sub-menu {
	top: calc(-1 * var(--vsp-submenu-pad));
	left: calc(100% + var(--vsp-submenu-offset));
	margin: 0;
	transform: translateX(var(--vsp-submenu-enter-x)) scale(var(--vsp-submenu-enter-scale));
	transform-origin: top left;
}
.vsp-menu .sub-menu li:hover > .sub-menu,
.vsp-menu .sub-menu li:focus-within > .sub-menu { transform: translateX(0) scale(1); }

.vsp-menu .sub-menu li.vsp-flyout-left::after { left: auto; right: 100%; }
.vsp-menu .sub-menu li.vsp-flyout-left > .sub-menu {
	left: auto;
	right: calc(100% + var(--vsp-submenu-offset));
	margin: 0;
	transform: translateX(calc(-1 * var(--vsp-submenu-enter-x))) scale(var(--vsp-submenu-enter-scale));
	transform-origin: top right;
}
.vsp-menu .sub-menu li.vsp-flyout-left:hover > .sub-menu,
.vsp-menu .sub-menu li.vsp-flyout-left:focus-within > .sub-menu { transform: translateX(0) scale(1); }

/* Chevron: topo abre para baixo; níveis internos apontam para o flyout. */
.vsp-sub-arrow {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	transition: transform .24s var(--vsp-ease), color .2s var(--vsp-ease);
	transform-origin: center;
}
.vsp-menu > .menu-item-has-children:hover > a .vsp-sub-arrow,
.vsp-menu > .menu-item-has-children:focus-within > a .vsp-sub-arrow { transform: rotate(180deg); }
.vsp-menu .sub-menu .menu-item-has-children > a .vsp-sub-arrow { margin-left: auto; transform: rotate(-90deg); }
.vsp-menu .sub-menu .menu-item-has-children:hover > a .vsp-sub-arrow,
.vsp-menu .sub-menu .menu-item-has-children:focus-within > a .vsp-sub-arrow { transform: rotate(-90deg) translateY(2px); }
.vsp-menu .sub-menu li.vsp-flyout-left > a .vsp-sub-arrow,
.vsp-menu .sub-menu li.vsp-flyout-left:hover > a .vsp-sub-arrow,
.vsp-menu .sub-menu li.vsp-flyout-left:focus-within > a .vsp-sub-arrow { transform: rotate(90deg); }

/* Durante medições geométricas, neutraliza transform/transition sem piscar. */
.vsp-menu .sub-menu.vsp-submenu-measuring { transform: none !important; transition: none !important; }

.vsp-header__actions { display: flex; align-items: center; gap: 6px; }
.vsp-icon-btn {
	display: inline-flex; align-items: center; justify-content: center;
	width: 44px; height: 44px; border: none;
	background: var(--vsp-header-action-bg, transparent);
	color: var(--vsp-header-action-icon, var(--vsp-header-link, var(--vsp-text)));
	border-radius: var(--vsp-radius); cursor: pointer;
	transition: background .2s var(--vsp-ease), color .2s var(--vsp-ease), transform .2s var(--vsp-ease), box-shadow .2s var(--vsp-ease);
}
.vsp-icon-btn:hover, .vsp-icon-btn:focus-visible {
	background: var(--vsp-header-action-bg-hover, var(--vsp-surface));
	color: var(--vsp-header-action-icon-hover, var(--vsp-header-link-hover, var(--vsp-primary)));
	transform: translateY(-1px);
}
.vsp-icon-btn:focus-visible { outline: none; box-shadow: 0 0 0 3px color-mix(in srgb, var(--vsp-header-action-icon-hover, var(--vsp-primary)) 28%, transparent); }
.vsp-menu-toggle, .vsp-theme-toggle { position: relative; }
/* Hambúrguer oculto no desktop por padrão; aparece no mobile (ou no modo hambúrguer). */
.vsp-menu-toggle { display: none; }
.vsp-menu-toggle__close { display: none; }
.vsp-theme-toggle__moon { display: none; }

/* Modo de menu "hambúrguer" em qualquer largura: esconde o menu horizontal e mostra o botão. */
body.vsp-menumode-hamburger .vsp-primary-nav { display: none; }
body.vsp-menumode-hamburger .vsp-menu-toggle { display: inline-flex; }

/* Painel de busca
   Fica fora do fluxo do documento: abrir a pesquisa não aumenta a altura do
   header sticky nem desloca a página para cima/baixo. */
.vsp-search-panel {
	position: absolute;
	left: 0; right: 0; top: 100%; z-index: 210;
	background: var(--vsp-header-bg);
	border-bottom: 1px solid var(--vsp-border);
	box-shadow: var(--vsp-shadow-lg);
	overflow-x: hidden;
	animation: vsp-search-panel-in .22s var(--vsp-ease);
}
.vsp-search-panel > .vsp-container { padding-block: 18px; }
@keyframes vsp-search-panel-in { from { opacity: 0; transform: translateY(-6px); } to { opacity: 1; transform: translateY(0); } }

/* =========================================================================
   FORMULÁRIO DE BUSCA
   ========================================================================= */
.vsp-searchform__field {
	display: flex; align-items: center; gap: 8px;
	background: var(--vsp-surface); border: 2px solid var(--vsp-border); border-radius: 999px;
	padding: 6px 6px 6px 16px; transition: border-color .2s var(--vsp-ease), box-shadow .2s var(--vsp-ease);
}
.vsp-searchform__field:focus-within { border-color: var(--vsp-primary); box-shadow: 0 0 0 4px rgba(47, 111, 143, .12); }
.vsp-searchform__icon { color: var(--vsp-muted); }
.vsp-searchform__input { flex: 1; border: none; background: transparent; padding: 8px 0; outline: none; }
.vsp-searchform__submit {
	display: inline-flex; align-items: center; justify-content: center;
	width: 40px; height: 40px; border: none; border-radius: 50%; cursor: pointer;
	background: var(--vsp-primary); color: var(--vsp-on-primary); flex: 0 0 auto;
	transition: background .2s var(--vsp-ease), transform .2s var(--vsp-ease);
}
.vsp-searchform__submit:hover { background: var(--vsp-primary-dk); transform: scale(1.06); }


/* Busca instantânea do cabeçalho ------------------------------------------------ */
.vsp-search-panel {
	max-height: calc(100dvh - var(--vsp-header-h, 72px));
	overflow-y: auto;
	overscroll-behavior: contain;
}
.vsp-live-search {
	margin-top: 16px;
	padding-top: 16px;
	border-top: 1px solid var(--vsp-border);
}
.vsp-live-search[hidden] { display: none !important; }
.vsp-live-search__status {
	min-height: 20px;
	margin: 0 0 12px;
	color: var(--vsp-muted);
	font-size: 13px;
	line-height: 1.45;
}
.vsp-searchform.is-searching .vsp-live-search__status::before {
	content: "";
	display: inline-block;
	width: 12px;
	height: 12px;
	margin-right: 8px;
	vertical-align: -1px;
	border: 2px solid color-mix(in srgb, var(--vsp-primary) 24%, transparent);
	border-top-color: var(--vsp-primary);
	border-radius: 50%;
	animation: vsp-search-spin .7s linear infinite;
}
@keyframes vsp-search-spin { to { transform: rotate(360deg); } }
.vsp-live-search__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: clamp(14px, 1.8vw, 22px);
}
.vsp-live-search__grid .vsp-content-card {
	min-width: 0;
	margin: 0;
}
.vsp-live-search__grid .vsp-content-card .vsp-card__media {
	aspect-ratio: var(--vsp-content-card-ratio, 16 / 9);
}
.vsp-live-search__grid .vsp-content-card .vsp-card__body {
	padding: 14px 16px 16px;
	gap: 8px;
}
.vsp-live-search__grid .vsp-content-card .vsp-card__title {
	font-size: clamp(16px, 1.5vw, var(--vsp-content-card-title-size, 19px));
}
.vsp-live-search__grid .vsp-content-card .vsp-card__excerpt {
	display: -webkit-box;
	overflow: hidden;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
}
.vsp-live-search__footer {
	display: flex;
	justify-content: flex-end;
	margin-top: 14px;
	padding-top: 14px;
	border-top: 1px solid var(--vsp-border);
}
.vsp-live-search__footer[hidden] { display: none !important; }
.vsp-live-search__all {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 10px 16px;
	border: 1px solid var(--vsp-border);
	border-radius: 999px;
	background: var(--vsp-surface);
	color: var(--vsp-text);
	font: inherit;
	font-size: 14px;
	font-weight: 700;
	cursor: pointer;
	transition: color .2s var(--vsp-ease), border-color .2s var(--vsp-ease), background .2s var(--vsp-ease), transform .2s var(--vsp-ease);
}
.vsp-live-search__all:hover,
.vsp-live-search__all:focus-visible {
	border-color: var(--vsp-primary);
	background: var(--vsp-primary);
	color: var(--vsp-on-primary);
	transform: translateY(-1px);
}
.vsp-live-search__all:focus-visible {
	outline: 3px solid color-mix(in srgb, var(--vsp-primary) 25%, transparent);
	outline-offset: 2px;
}
@media (max-width: 900px) {
	.vsp-live-search__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 560px) {
	.vsp-search-panel > .vsp-container { padding-block: 12px 18px; }
	.vsp-live-search__grid { grid-template-columns: 1fr; }
	.vsp-live-search__grid .vsp-content-card .vsp-card__excerpt { -webkit-line-clamp: 3; }
	.vsp-live-search__footer { justify-content: stretch; }
	.vsp-live-search__all { width: 100%; justify-content: center; }
}
@media (prefers-reduced-motion: reduce) {
	.vsp-searchform.is-searching .vsp-live-search__status::before { animation-duration: 1.4s; }
	.vsp-live-search__all { transition: none; }
	.vsp-live-search__all:hover { transform: none; }
}

/* =========================================================================
   NAV MOBILE (off-canvas)
   ========================================================================= */
.vsp-mobile-nav {
	position: fixed; top: 0; right: 0; width: min(86vw, 360px); height: 100dvh; z-index: 400;
	background: var(--vsp-bg); box-shadow: var(--vsp-shadow-lg);
	transform: translateX(100%); transition: transform .32s var(--vsp-ease);
	overflow-y: auto; padding: calc(var(--vsp-header-h) + 16px) 20px 40px;
}
.vsp-mobile-nav.is-open { transform: translateX(0); }
.vsp-mobile-overlay {
	position: fixed; inset: 0; z-index: 390; background: rgba(20, 24, 31, .5);
	opacity: 0; transition: opacity .3s var(--vsp-ease); backdrop-filter: blur(2px);
}
.vsp-mobile-overlay.is-visible { opacity: 1; }
.vsp-mobile-menu { display: flex; flex-direction: column; gap: 3px; }
.vsp-mobile-menu li { position: relative; min-width: 0; }
.vsp-mobile-menu a {
	display: flex;
	align-items: center;
	min-height: 48px;
	padding: 12px 14px;
	border: 1px solid transparent;
	border-radius: 12px;
	color: var(--vsp-text);
	font-weight: 650;
	font-size: 17px;
	transition: background .22s var(--vsp-ease), color .22s var(--vsp-ease), border-color .22s var(--vsp-ease), transform .22s var(--vsp-ease);
}
.vsp-mobile-menu a:hover,
.vsp-mobile-menu a:focus-visible,
.vsp-mobile-menu .current-menu-item > a {
	background: var(--vsp-surface);
	color: var(--vsp-primary);
	border-color: color-mix(in srgb, var(--vsp-primary) 15%, transparent);
}
.vsp-mobile-menu .menu-item-has-children {
	display: grid;
	grid-template-columns: minmax(0,1fr) 42px;
	align-items: start;
	column-gap: 4px;
}
.vsp-mobile-menu .menu-item-has-children > a { grid-column: 1; min-width: 0; }
.vsp-mobile-menu .menu-item-has-children > a .vsp-sub-arrow { display: none; }
.vsp-mobile-submenu-toggle {
	grid-column: 2;
	grid-row: 1;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	margin-top: 4px;
	border: 1px solid transparent;
	border-radius: 12px;
	background: transparent;
	color: var(--vsp-muted);
	cursor: pointer;
	transition: background .22s var(--vsp-ease), color .22s var(--vsp-ease), border-color .22s var(--vsp-ease), transform .22s var(--vsp-ease);
}
.vsp-mobile-submenu-toggle:hover,
.vsp-mobile-submenu-toggle:focus-visible {
	background: var(--vsp-surface);
	color: var(--vsp-primary);
	border-color: color-mix(in srgb, var(--vsp-primary) 15%, transparent);
}
.vsp-mobile-submenu-toggle .vsp-sub-arrow { margin: 0; transition: transform .3s var(--vsp-ease); }
.vsp-mobile-menu .is-submenu-open > .vsp-mobile-submenu-toggle .vsp-sub-arrow { transform: rotate(180deg); }
.vsp-mobile-menu .sub-menu {
	grid-column: 1 / -1;
	overflow: hidden;
	max-height: 0;
	margin: 0 0 0 13px;
	padding-left: 13px;
	border-left: 1px solid color-mix(in srgb, var(--vsp-border) 84%, transparent);
	opacity: 0;
	pointer-events: none;
	transform: translateY(-5px);
	transition: max-height .34s var(--vsp-ease), opacity .2s ease, transform .28s var(--vsp-ease), margin-top .28s var(--vsp-ease);
}
.vsp-mobile-menu .is-submenu-open > .sub-menu {
	margin-top: 4px;
	opacity: 1;
	pointer-events: auto;
	transform: none;
}
.vsp-mobile-menu .sub-menu a {
	min-height: 44px;
	padding: 10px 12px;
	font-size: 15px;
	font-weight: 550;
	color: var(--vsp-muted);
}
.vsp-mobile-menu .sub-menu .sub-menu { margin-left: 10px; padding-left: 10px; }

/* =========================================================================
   CONTEÚDO / GRID
   ========================================================================= */
.vsp-main { display: block; min-height: 50vh; }
.vsp-content-wrap {
	display: flex; align-items: flex-start; gap: 40px;
	padding-block: 40px 64px;
}
.vsp-primary { flex: 1 1 auto; min-width: 0; }
.vsp-sidebar { flex: 0 0 320px; }
.vsp-layout--sidebar-left { flex-direction: row-reverse; }
.vsp-layout--narrow .vsp-primary { max-width: 760px; margin-inline: auto; }

.vsp-archive-head { margin-bottom: 32px; }
.vsp-archive-title { font-size: var(--vsp-fs-h1); position: relative; display: inline-block; }
.vsp-archive-title::after {
	content: ""; display: block; width: 64px; height: 4px; margin-top: 10px;
	background: linear-gradient(90deg, var(--vsp-primary), var(--vsp-accent)); border-radius: 4px;
}
.vsp-archive-desc { color: var(--vsp-muted); margin-top: 12px; max-width: 70ch; }
.vsp-search-term { color: var(--vsp-primary); }

.vsp-grid {
	display: flex; flex-wrap: wrap; gap: var(--vsp-gap);
}
.vsp-grid > * { flex: 1 1 300px; }
/* Mantém simetria: limita a 3 colunas e evita "órfãos" muito largos. */
.vsp-posts > .vsp-card { flex: 1 1 calc(33.333% - var(--vsp-gap)); max-width: calc(33.333% - var(--vsp-gap)); }

/* ---------- Card ---------- */
.vsp-card {
	display: flex; flex-direction: column; background: var(--vsp-bg);
	border: 1px solid var(--vsp-border); border-radius: var(--vsp-radius); overflow: hidden;
	box-shadow: var(--vsp-shadow-sm);
	transition: transform .35s var(--vsp-ease), box-shadow .35s var(--vsp-ease), border-color .35s var(--vsp-ease);
}
.vsp-anim-on .vsp-card:hover {
	transform: translateY(-6px); box-shadow: var(--vsp-shadow-lg); border-color: var(--vsp-card-hover-border);
}
.vsp-card__media {
	position: relative; display: block; aspect-ratio: 3 / 2; overflow: hidden; background: var(--vsp-surface);
}
.vsp-card__img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s var(--vsp-ease); }
.vsp-anim-on .vsp-card:hover .vsp-card__img { transform: scale(1.07); }
.vsp-card__placeholder {
	display: flex; align-items: center; justify-content: center; height: 100%; color: var(--vsp-muted); opacity: .5;
}
.vsp-card__badge {
	position: absolute; top: 12px; left: 12px; z-index: 2;
	background: color-mix(in srgb, var(--vsp-card-badge-bg) 92%, transparent);
	color: var(--vsp-card-badge-tx); font-size: 12px; font-weight: 700;
	padding: 5px 12px; border-radius: 999px; backdrop-filter: blur(4px); text-transform: uppercase; letter-spacing: .04em;
}
.vsp-card__play {
	position: absolute; inset: 0; display: flex; align-items: center; justify-content: center;
	color: #fff; opacity: .92; pointer-events: none;
	filter: drop-shadow(0 4px 12px rgba(0,0,0,.4)); transition: transform .35s var(--vsp-ease), opacity .35s;
}
.vsp-anim-on .vsp-card--video:hover .vsp-card__play { transform: scale(1.12); opacity: 1; }
.vsp-card__body { display: flex; flex-direction: column; gap: 10px; padding: 18px 20px 20px; flex: 1; }
.vsp-card__title { font-size: 19px; line-height: 1.3; }
.vsp-card__title a { color: var(--vsp-text); }
.vsp-card__title a:hover { color: var(--vsp-primary); }
.vsp-card__excerpt { color: var(--vsp-muted); font-size: 15px; flex: 1; }
.vsp-card__extra-meta {
	display: flex; flex-wrap: wrap; align-items: center; gap: 4px 14px;
	color: var(--vsp-muted); font-size: 12.5px;
}
.vsp-card__extra-meta .vsp-meta-item .vsp-icon { color: var(--vsp-primary); }
.vsp-card__foot {
	display: flex; align-items: center; justify-content: space-between;
	margin-top: 4px; padding-top: 14px; border-top: 1px solid var(--vsp-border);
}
.vsp-card__meta { display: inline-flex; align-items: center; gap: 6px; color: var(--vsp-muted); font-size: 13px; }
.vsp-card__more {
	display: inline-flex; align-items: center; gap: 4px; color: var(--vsp-primary);
	font-weight: 700; font-size: 14px;
}
.vsp-card__more .vsp-icon { transition: transform .25s var(--vsp-ease); }
.vsp-anim-on .vsp-card:hover .vsp-card__more .vsp-icon { transform: translateX(4px); }

/* =========================================================================
   HOME (front-page): HERO, categorias, seções
   ========================================================================= */
.vsp-hero { padding-block: 40px 8px; }
.vsp-hero__inner { display: flex; align-items: center; gap: 48px; }
.vsp-hero__media {
	position: relative; flex: 1 1 55%; border-radius: var(--vsp-radius-lg); overflow: hidden;
	aspect-ratio: 16 / 10; box-shadow: var(--vsp-shadow-lg); background: var(--vsp-surface);
}
.vsp-hero__img { width: 100%; height: 100%; object-fit: cover; }
.vsp-hero__play {
	position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; color: #fff;
	filter: drop-shadow(0 6px 16px rgba(0,0,0,.4)); transition: transform .35s var(--vsp-ease);
}
.vsp-anim-on .vsp-hero__media:hover .vsp-hero__play { transform: scale(1.1); }
.vsp-hero__body { flex: 1 1 45%; display: flex; flex-direction: column; align-items: flex-start; gap: 16px; }
.vsp-hero__eyebrow {
	display: inline-flex; align-items: center; gap: 8px; font-weight: 800; text-transform: uppercase;
	letter-spacing: .06em; font-size: 13px; color: var(--vsp-primary);
}
.vsp-hero__title { font-size: var(--vsp-fs-h1); line-height: 1.15; }
.vsp-hero__title a { color: var(--vsp-text); }
.vsp-hero__title a:hover { color: var(--vsp-primary); }
.vsp-hero__excerpt { color: var(--vsp-muted); font-size: 17px; }

.vsp-cat-strip { display: flex; flex-wrap: wrap; gap: 12px; margin: 8px 0 40px; }
.vsp-cat-chip {
	display: inline-flex; align-items: center; gap: 10px; padding: 12px 18px;
	background: var(--vsp-bg); border: 1px solid var(--vsp-border); border-radius: 999px; color: var(--vsp-text);
	font-weight: 700; box-shadow: var(--vsp-shadow-sm); transition: all .25s var(--vsp-ease);
}
.vsp-cat-chip .vsp-icon { color: var(--vsp-primary); }
.vsp-cat-chip:hover { transform: translateY(-3px); border-color: var(--vsp-primary); color: var(--vsp-primary); box-shadow: var(--vsp-shadow-md); }
.vsp-cat-chip__count {
	display: inline-flex; align-items: center; justify-content: center; min-width: 24px; height: 24px;
	padding: 0 7px; background: var(--vsp-surface); border-radius: 999px; font-size: 12px; color: var(--vsp-muted);
}

.vsp-section { margin-block: 24px 8px; }
.vsp-section__head { margin-bottom: 28px; }
.vsp-section__title { font-size: var(--vsp-fs-h2); position: relative; display: inline-block; }
.vsp-section__title::after {
	content: ""; display: block; width: 56px; height: 4px; margin-top: 10px;
	background: linear-gradient(90deg, var(--vsp-primary), var(--vsp-accent)); border-radius: 4px;
}
.vsp-section__sub { color: var(--vsp-muted); margin-top: 12px; }
.vsp-section__cta { display: flex; justify-content: center; margin-top: 40px; }
.vsp-home-intro { margin-bottom: 40px; }

@media (max-width: 860px) {
	.vsp-hero__inner { flex-direction: column; gap: 24px; }
	.vsp-hero__media, .vsp-hero__body { flex-basis: auto; width: 100%; }
	.vsp-layout--full .vsp-primary, .vsp-layout--narrow .vsp-primary { max-width: 100%; }
}

/* =========================================================================
   BREADCRUMBS
   ========================================================================= */
.vsp-breadcrumbs { margin-bottom: 20px; font-size: 14px; }
.vsp-breadcrumbs__list { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.vsp-breadcrumbs__item { display: inline-flex; align-items: center; gap: 6px; color: var(--vsp-muted); }
.vsp-breadcrumbs__item a { color: var(--vsp-muted); }
.vsp-breadcrumbs__item a:hover { color: var(--vsp-primary); }
.vsp-breadcrumbs__item [aria-current] { color: var(--vsp-text); font-weight: 600; }
.vsp-breadcrumbs__sep { display: inline-flex; color: var(--vsp-border); }

/* =========================================================================
   SINGLE
   ========================================================================= */
.vsp-single__header { margin-bottom: 24px; }
.vsp-single__cats { display: flex; gap: 8px; margin-bottom: 14px; flex-wrap: wrap; }
.vsp-pill {
	display: inline-flex; align-items: center; gap: 6px; font-size: 13px; font-weight: 700;
	color: var(--vsp-primary-dk); background: color-mix(in srgb, var(--vsp-primary) 12%, transparent);
	padding: 6px 14px; border-radius: 999px; transition: background .2s var(--vsp-ease);
}
.vsp-pill:hover { background: color-mix(in srgb, var(--vsp-primary) 22%, transparent); color: var(--vsp-primary-dk); }
.vsp-single__title { font-size: var(--vsp-fs-h1); margin-bottom: 16px; }

.vsp-post-meta {
	display: flex; flex-wrap: wrap; align-items: center; gap: 8px 20px;
	color: var(--vsp-muted); font-size: 14px; padding-bottom: 20px; border-bottom: 1px solid var(--vsp-border);
}
.vsp-meta-item { display: inline-flex; align-items: center; gap: 7px; }
.vsp-meta-item .vsp-icon { color: var(--vsp-primary); }
.vsp-author-link { color: var(--vsp-text); font-weight: 600; }
.vsp-author-link:hover { color: var(--vsp-primary); }

/* Bloco de informações de publicação (dentro do conteúdo). */
.vsp-pubinfo {
	display: flex; align-items: center; gap: 14px;
	margin: 24px 0; padding: 14px 18px;
	background: var(--vsp-surface); border: 1px solid var(--vsp-border);
	border-radius: var(--vsp-radius);
}
.vsp-pubinfo__icon {
	display: inline-flex; align-items: center; justify-content: center;
	width: 40px; height: 40px; flex: 0 0 auto; border-radius: 50%;
	background: color-mix(in srgb, var(--vsp-primary) 12%, transparent);
	color: var(--vsp-primary);
}
.vsp-pubinfo__text { margin: 0; font-size: 14px; line-height: 1.55; color: var(--vsp-muted); }
.vsp-pubinfo__author { color: var(--vsp-text); font-weight: 600; }
.vsp-pubinfo__author:hover { color: var(--vsp-primary); }

.vsp-single__media { margin: 24px 0; border-radius: var(--vsp-radius); overflow: hidden; box-shadow: var(--vsp-shadow-md); }
.vsp-single__img { width: 100%; height: auto; }
.vsp-single__caption, .figcaption { font-size: 13px; color: var(--vsp-muted); padding: 10px 14px; background: var(--vsp-surface); text-align: center; }

.vsp-featured-video, .vsp-embed { position: relative; margin: 24px 0; border-radius: var(--vsp-radius); overflow: hidden; box-shadow: var(--vsp-shadow-md); }
.vsp-embed iframe, .vsp-embed video, .vsp-featured-video iframe {
	width: 100% !important; aspect-ratio: 16 / 9; height: auto !important; display: block; border: 0;
}

/* Quick facts (resumo do conteúdo) */
.vsp-quick-facts {
	display: flex; flex-wrap: wrap; gap: 12px; margin: 28px 0;
	padding: 22px; background: var(--vsp-surface); border-radius: var(--vsp-radius);
	border: 1px solid var(--vsp-border);
}
.vsp-quick-facts__item {
	flex: 1 1 120px; display: flex; flex-direction: column; align-items: center; gap: 4px; text-align: center;
}
.vsp-quick-facts__icon {
	display: flex; align-items: center; justify-content: center; width: 48px; height: 48px;
	border-radius: 50%; background: var(--vsp-bg); color: var(--vsp-primary); box-shadow: var(--vsp-shadow-sm);
}
.vsp-quick-facts__label { font-size: 12px; text-transform: uppercase; letter-spacing: .05em; color: var(--vsp-muted); }
.vsp-quick-facts__value { font-weight: 800; font-size: 17px; }

/* TOC */
.vsp-toc {
	margin: 28px 0; border: 1px solid var(--vsp-border); border-radius: var(--vsp-radius);
	background: var(--vsp-bg); overflow: hidden; box-shadow: var(--vsp-shadow-sm);
}
.vsp-toc__head {
	display: flex; align-items: center; justify-content: space-between; width: 100%;
	padding: 16px 20px; background: var(--vsp-surface); border: none; cursor: pointer;
	font-weight: 800; color: var(--vsp-text); font-size: 16px;
}
.vsp-toc__title { display: inline-flex; align-items: center; gap: 10px; }
.vsp-toc__title .vsp-icon { color: var(--vsp-primary); }
.vsp-toc__toggle { transition: transform .3s var(--vsp-ease); color: var(--vsp-muted); }
.vsp-toc[data-collapsed="true"] .vsp-toc__toggle { transform: rotate(-90deg); }
.vsp-toc__list {
	display: flex; flex-direction: column; gap: 2px; padding: 14px 20px;
	max-height: 600px; overflow: hidden; transition: max-height .35s var(--vsp-ease), padding .35s var(--vsp-ease), opacity .3s;
}
.vsp-toc[data-collapsed="true"] .vsp-toc__list { max-height: 0; padding-block: 0; opacity: 0; }
.vsp-toc__item--h3 { padding-left: 18px; }
.vsp-toc__link {
	display: block; padding: 7px 12px; border-radius: var(--vsp-radius-sm); color: var(--vsp-muted);
	border-left: 2px solid transparent; transition: all .2s var(--vsp-ease);
}
.vsp-toc__link:hover { color: var(--vsp-primary); background: var(--vsp-surface); }
.vsp-toc__link.is-active { color: var(--vsp-primary); border-left-color: var(--vsp-primary); font-weight: 600; background: var(--vsp-surface); }

/* Conteúdo do post */
.vsp-content { font-size: clamp(16px, 1.05vw, 18px); line-height: var(--vsp-lh); }
.vsp-content > * + * { margin-top: 1.2em; }
.vsp-content h2 { margin-top: 1.8em; scroll-margin-top: calc(var(--vsp-header-h) + 16px); }
.vsp-content h3 { margin-top: 1.4em; scroll-margin-top: calc(var(--vsp-header-h) + 16px); }
.vsp-content p { color: var(--vsp-text); }
.vsp-content a { text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1.5px; }
.vsp-content img { border-radius: var(--vsp-radius); box-shadow: var(--vsp-shadow-sm); }
.vsp-content ul, .vsp-content ol { padding-left: 1.4em; }
.vsp-content ul { list-style: none; }
.vsp-content ul li { position: relative; padding-left: 6px; margin-top: .5em; }
.vsp-content ul li::before {
	content: ""; position: absolute; left: -16px; top: .62em; width: 7px; height: 7px;
	background: var(--vsp-primary); border-radius: 50%;
}
.vsp-content ol { list-style: decimal; }
.vsp-content ol li { margin-top: .5em; padding-left: 6px; }
.vsp-content blockquote {
	border-left: 4px solid var(--vsp-primary); padding: 12px 0 12px 22px; margin-left: 0;
	font-style: italic; color: var(--vsp-muted); font-size: 1.1em;
}
.vsp-content pre {
	background: var(--vsp-text); color: #f6f6f6; padding: 18px; border-radius: var(--vsp-radius); overflow-x: auto;
}
.vsp-content code { background: var(--vsp-surface); padding: 2px 6px; border-radius: 6px; font-size: .92em; }
.vsp-content pre code { background: none; padding: 0; }
/* Wrapper de rolagem (injetado por vsp_wrap_content_tables) para responsividade */
.vsp-table-wrap { width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; margin: 1.4em 0; border-radius: var(--vsp-radius); box-shadow: var(--vsp-shadow-sm); border: 1px solid var(--vsp-border); }
.vsp-content table {
	width: 100%; border-collapse: collapse; margin: 0; font-size: 15px; background: var(--vsp-bg);
	min-width: 480px; /* garante rolagem em telas estreitas sem quebrar o layout */
}
.vsp-table-wrap table thead {border-bottom: none;}
.vsp-content .vsp-table-wrap > table,
.vsp-content > table { border: 0; }
/* Cabeçalho com a cor de identidade do site (gradiente da primária + texto branco).
   Seletores com `table` no caminho para vencer os estilos padrão do WordPress
   (.wp-block-table / .has-fixed-layout) por especificidade, sem !important. */
.vsp-content table thead th {
	background: linear-gradient(135deg, var(--vsp-primary), var(--vsp-primary-dk));
	color: var(--vsp-on-primary); font-weight: 800; border: 0; border-bottom: 0; vertical-align: middle;
	text-transform: uppercase; letter-spacing: .03em; font-size: 13px;
}
.vsp-content table th, .vsp-content table td { padding: 14px 16px; border: 0; border-bottom: 1px solid var(--vsp-border); text-align: left; vertical-align: top; word-break: normal; }
.vsp-content table td { color: var(--vsp-text); }
/* Primeira coluna (cabeçalho de linha) em destaque na cor primária. */
.vsp-content table tbody th { color: var(--vsp-primary-dk); font-weight: 700; }
.vsp-content table tbody tr { transition: background .2s var(--vsp-ease); }
.vsp-content table tbody tr:nth-child(even) { background: color-mix(in srgb, var(--vsp-surface) 50%, transparent); }
.vsp-content table tbody tr:hover { background: color-mix(in srgb, var(--vsp-primary) 8%, transparent); }
.vsp-content table tbody tr:last-child td, .vsp-content table tbody tr:last-child th { border-bottom: 0; }
.vsp-content table caption { caption-side: bottom; padding: 10px; font-size: 13px; color: var(--vsp-muted); }
@media (max-width: 560px) { .vsp-content table { font-size: 14px; } .vsp-content table th, .vsp-content table td { padding: 11px 13px; } }
.vsp-content hr { border: none; border-top: 1px solid var(--vsp-border); }

/* Tags */
.vsp-single__tags { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 32px 0; }
.vsp-single__tags-label { display: inline-flex; align-items: center; gap: 6px; font-weight: 700; color: var(--vsp-muted); }
.vsp-tag {
	font-size: 13px; padding: 6px 14px; border-radius: 999px; background: var(--vsp-surface);
	color: var(--vsp-muted); border: 1px solid var(--vsp-border); transition: all .2s var(--vsp-ease);
}
.vsp-tag:hover { background: var(--vsp-primary); color: var(--vsp-on-primary); border-color: var(--vsp-primary); transform: translateY(-2px); }

/* Share */
.vsp-share { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin: 28px 0; padding: 18px 0; border-block: 1px solid var(--vsp-border); }
.vsp-share__label { display: inline-flex; align-items: center; gap: 8px; font-weight: 700; margin-right: auto; }
.vsp-share__btn {
	display: inline-flex; align-items: center; justify-content: center; width: 42px; height: 42px;
	border-radius: 50%; border: 1px solid var(--vsp-border); background: var(--vsp-bg); color: var(--vsp-muted);
	cursor: pointer; transition: all .25s var(--vsp-ease);
}
.vsp-share__btn:hover { transform: translateY(-3px); color: #fff; box-shadow: var(--vsp-shadow-md); }
.vsp-share__btn--facebook:hover { background: #1877f2; border-color: #1877f2; }
.vsp-share__btn--x:hover { background: #000; border-color: #000; }
.vsp-share__btn--whatsapp:hover { background: #25d366; border-color: #25d366; }
.vsp-share__btn--pinterest:hover { background: #e60023; border-color: #e60023; }
.vsp-share__btn--copy:hover { background: var(--vsp-primary); border-color: var(--vsp-primary); color: var(--vsp-on-primary); }
.vsp-share__btn.is-copied { background: var(--vsp-accent); border-color: var(--vsp-accent); color: var(--vsp-on-accent); }

/* Author box — assinatura editorial para a coluna do single moderno. */
.vsp-author-box {
	--vsp-author-bg-current: var(--vsp-author-box-bg, var(--vsp-surface));
	--vsp-author-border-current: var(--vsp-author-box-border, var(--vsp-border));
	--vsp-author-accent-current: var(--vsp-author-box-accent, var(--vsp-primary));
	position: relative; isolation: isolate; overflow: hidden;
	--vsp-author-avatar-render-size: var(--vsp-author-box-image-size,112px);
	display: grid; grid-template-columns: var(--vsp-author-avatar-render-size) minmax(0,1fr); gap: 22px; align-items: start;
	width: 100%; margin: 36px 0; padding: 24px 26px 23px;
	background:
		linear-gradient(120deg,color-mix(in srgb,var(--vsp-text) 2%,transparent),transparent 37%),
		linear-gradient(180deg,color-mix(in srgb,var(--vsp-author-bg-current) 96%,var(--vsp-bg)),var(--vsp-author-bg-current));
	border: 1px solid var(--vsp-author-border-current); border-radius: max(var(--vsp-radius),22px);
	box-shadow: 0 24px 62px rgba(0,0,0,.13), inset 0 1px 0 color-mix(in srgb,var(--vsp-text) 3%,transparent);
	transition: border-color .55s ease, box-shadow .55s ease, transform .55s var(--vsp-ease);
}
.vsp-author-box::before {
	content: ""; position: absolute; left: 0; top: 22px; bottom: 22px; width: 2px; border-radius: 0 2px 2px 0;
	background: linear-gradient(180deg,var(--vsp-author-accent-current),color-mix(in srgb,var(--vsp-author-accent-current) 35%,transparent)); opacity: .78;
}
.vsp-author-box::after {
	content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
	background:
		radial-gradient(circle at 78% 22%,color-mix(in srgb,var(--vsp-author-accent-current) 8%,transparent),transparent 15rem),
		radial-gradient(circle at 100% 120%,color-mix(in srgb,var(--vsp-primary) 7%,transparent),transparent 21rem);
}
.vsp-author-box:hover {
	transform: translateY(-2px);
	border-color: color-mix(in srgb,var(--vsp-author-accent-current) 28%,var(--vsp-author-border-current));
	box-shadow: 0 30px 76px rgba(0,0,0,.16), inset 0 1px 0 color-mix(in srgb,var(--vsp-text) 4%,transparent);
}
.vsp-author-box__photo-wrap { position: relative; width: var(--vsp-author-avatar-render-size); aspect-ratio: 1; align-self: start; }
.vsp-author-box__avatar { width: 100%; height: 100%; }
.vsp-author-avatar {
	display: block; width: 100%; height: 100%; object-fit: cover; border-radius: 18px;
	border: 1px solid color-mix(in srgb,var(--vsp-author-accent-current) 36%,var(--vsp-author-border-current));
	box-shadow: 0 15px 35px rgba(0,0,0,.18);
	transition: transform .6s var(--vsp-ease), border-color .5s ease;
}
.vsp-author-box:hover .vsp-author-avatar { transform: scale(1.018); border-color: color-mix(in srgb,var(--vsp-author-accent-current) 58%,var(--vsp-author-border-current)); }
.vsp-author-box__mark {
	position: absolute; right: -6px; bottom: -6px; width: 28px; height: 28px; display: grid; place-items: center;
	border: 1px solid color-mix(in srgb,var(--vsp-author-accent-current) 44%,var(--vsp-author-border-current));
	border-radius: 50%; background: var(--vsp-author-bg-current);
	box-shadow: 0 0 0 5px color-mix(in srgb,var(--vsp-author-accent-current) 3%,transparent);
}
.vsp-author-box__mark::before {
	content: ""; width: 6px; height: 6px; border-radius: 50%; background: var(--vsp-author-accent-current);
	box-shadow: 0 0 0 4px color-mix(in srgb,var(--vsp-author-accent-current) 7%,transparent);
}
.vsp-author-box__body { min-width: 0; }
.vsp-author-box__top { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; }
.vsp-author-box__identity { min-width: 0; }
.vsp-author-box__eyebrow {
	display: flex; align-items: center; gap: 8px; margin-bottom: 5px;
	font-size: var(--vsp-author-box-eyebrow-size,11px); text-transform: uppercase; letter-spacing: .105em; color: var(--vsp-author-accent-current); font-weight: 850;
}
.vsp-author-box__eyebrow::before { content: ""; width: 22px; height: 1px; background: linear-gradient(90deg,var(--vsp-author-accent-current),transparent); }
.vsp-author-box__name { margin: 0; font-size: var(--vsp-author-box-name-size,25px); line-height: 1.16; letter-spacing: -.02em; }
.vsp-author-box__name a { color: var(--vsp-text); }
.vsp-author-box__name a:hover { color: var(--vsp-author-accent-current); }
.vsp-author-box__job { display: block; margin-top: 5px; color: color-mix(in srgb,var(--vsp-author-accent-current) 80%,var(--vsp-text)); font-size: var(--vsp-author-box-job-size,13px); font-weight: 700; line-height: 1.4; }
.vsp-author-box__bio { max-width: 650px; margin: 12px 0 0; color: var(--vsp-muted); font-size: var(--vsp-author-box-bio-size,16px); line-height: 1.66; text-wrap: pretty; }
.vsp-author-box__link {
	flex: 0 0 auto; min-height: 40px; display: inline-flex; align-items: center; justify-content: center; gap: 8px;
	padding: 8px 13px; border: 1px solid color-mix(in srgb,var(--vsp-author-accent-current) 25%,var(--vsp-author-border-current));
	border-radius: 999px; background: color-mix(in srgb,var(--vsp-author-accent-current) 4%,transparent); color: var(--vsp-text);
	font-size: var(--vsp-author-box-button-size,12px); font-weight: 800; white-space: nowrap;
	transition: background .45s ease, color .45s ease, border-color .45s ease, transform .45s var(--vsp-ease);
}
.vsp-author-box__link:hover { transform: translateY(-1px); background: color-mix(in srgb,var(--vsp-author-accent-current) 16%,transparent); border-color: var(--vsp-author-accent-current); color: var(--vsp-author-accent-current); }
.vsp-author-box__link svg { width: 14px; height: 14px; transition: transform .45s var(--vsp-ease); }
.vsp-author-box__link:hover svg { transform: translateX(2px); }
.vsp-author-box__footer {
	display: flex; align-items: center; justify-content: space-between; gap: 16px;
	margin-top: 15px; padding-top: 14px; border-top: 1px solid color-mix(in srgb,var(--vsp-text) 8%,transparent);
}
.vsp-author-box__socials { display: flex; flex-wrap: wrap; gap: 7px; }
.vsp-author-social {
	min-height: 32px; display: inline-flex; align-items: center; justify-content: center; gap: 7px; padding: 5px 10px;
	border-radius: 999px; background: color-mix(in srgb,var(--vsp-text) 1.5%,transparent); color: var(--vsp-muted);
	border: 1px solid color-mix(in srgb,var(--vsp-text) 9%,transparent); font-size: var(--vsp-author-box-social-size,12px); font-weight: 700;
	transition: transform .4s var(--vsp-ease), border-color .4s ease, color .4s ease, background .4s ease;
}
.vsp-author-social svg { width: 13px; height: 13px; flex: 0 0 13px; }
.vsp-author-social:hover { transform: translateY(-1px); border-color: color-mix(in srgb,var(--vsp-author-accent-current) 30%,var(--vsp-author-border-current)); background: color-mix(in srgb,var(--vsp-author-accent-current) 5%,transparent); color: var(--vsp-author-accent-current); }
.vsp-author-box__posts {
	flex: 0 0 auto; display: inline-flex; align-items: center; gap: 6px; color: var(--vsp-muted); font-size: var(--vsp-author-box-posts-size,12px); font-weight: 650; white-space: nowrap;
	transition: color .4s ease, transform .4s var(--vsp-ease);
}
.vsp-author-box__posts:hover { color: var(--vsp-author-accent-current); transform: translateX(2px); }
.vsp-author-box__posts svg { width: 13px; height: 13px; }

.vsp-newsletter-after-post { margin-top: 38px; margin-bottom: 38px; }

/* Post nav + related */
.vsp-postnav { display: flex; gap: 16px; margin: 32px 0; }
.vsp-postnav .nav-links { display: flex; gap: 16px; width: 100%; }
/* min-width:0 permite o truncamento do título dentro do flex. */
.vsp-postnav .nav-previous, .vsp-postnav .nav-next { flex: 1 1 0; min-width: 0; }
.vsp-postnav .nav-next { text-align: right; }
.vsp-postnav a {
	display: flex; flex-direction: column; gap: 4px; padding: 16px 20px;
	background: var(--vsp-surface); border: 1px solid var(--vsp-border); border-radius: var(--vsp-radius);
	transition: all .25s var(--vsp-ease); height: 100%; min-width: 0;
}
.vsp-postnav a:hover { border-color: var(--vsp-primary); transform: translateY(-3px); box-shadow: var(--vsp-shadow-md); }
/* Rótulo "Anterior"/"Próximo" nunca quebra em duas linhas. */
.vsp-postnav__dir { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; color: var(--vsp-muted); font-weight: 600; white-space: nowrap; }
.vsp-postnav .nav-next .vsp-postnav__dir { justify-content: flex-end; }
/* Título limitado a 2 linhas para manter os cards com altura estável. */
.vsp-postnav__title {
	font-weight: 700; color: var(--vsp-text); min-width: 0;
	display: -webkit-box; -webkit-line-clamp: 2; line-clamp: 2;
	-webkit-box-orient: vertical; overflow: hidden;
}

.vsp-related { margin: 48px 0; }
.vsp-related__title { display: flex; align-items: center; gap: 10px; margin-bottom: 24px; }
.vsp-related__title .vsp-icon { color: var(--vsp-primary); }
/* Grade dos relacionados: colunas controladas em Estilos → Layout
   (var --vsp-related-cols = 2 ou 3). min-width:0 evita cards espremidos. */
.vsp-related__grid > .vsp-card {
	flex: 1 1 calc(100% / var(--vsp-related-cols, 3) - var(--vsp-gap));
	max-width: calc(100% / var(--vsp-related-cols, 3) - var(--vsp-gap));
	min-width: 0;
}

/* =========================================================================
   PAGINAÇÃO / LOAD MORE
   ========================================================================= */
.vsp-pagination, .vsp-loadmore { display: flex; justify-content: center; margin: 48px 0 8px; }
.vsp-pagination__list { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.vsp-pagination__list .page-numbers {
	display: inline-flex; align-items: center; justify-content: center; min-width: 44px; height: 44px;
	padding: 0 12px; border-radius: var(--vsp-radius); border: 1px solid var(--vsp-border); background: var(--vsp-bg);
	color: var(--vsp-text); font-weight: 700; transition: all .2s var(--vsp-ease);
}
.vsp-pagination__list .page-numbers:hover { border-color: var(--vsp-primary); color: var(--vsp-primary); transform: translateY(-2px); }
.vsp-pagination__list .page-numbers.current { background: var(--vsp-primary); color: var(--vsp-on-primary); border-color: var(--vsp-primary); }
.vsp-pagination__list .dots { border: none; background: none; }

.vsp-loadmore { flex-direction: column; align-items: center; gap: 16px; }
.vsp-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 10px;
	padding: 14px 28px; border-radius: 999px; font-weight: 700; cursor: pointer; border: 2px solid transparent;
	transition: all .25s var(--vsp-ease); font-size: 15px;
}
.vsp-btn--primary { background: var(--vsp-primary); color: var(--vsp-on-primary); }
.vsp-btn--primary:hover { background: var(--vsp-primary-dk); color: var(--vsp-on-primary); transform: translateY(-2px); box-shadow: var(--vsp-shadow-md); }
.vsp-btn--ghost { background: var(--vsp-bg); border-color: var(--vsp-border); color: var(--vsp-text); }
.vsp-btn--ghost:hover { border-color: var(--vsp-primary); color: var(--vsp-primary); transform: translateY(-2px); }
.vsp-loadmore__btn { position: relative; }
.vsp-loadmore__spinner {
	width: 18px; height: 18px; border: 2px solid currentColor; border-right-color: transparent; border-radius: 50%;
	display: none; animation: vsp-spin .7s linear infinite;
}
.vsp-loadmore.is-loading .vsp-loadmore__spinner { display: inline-block; }
.vsp-loadmore.is-loading .vsp-loadmore__text { opacity: .6; }
.vsp-loadmore__end { color: var(--vsp-muted); font-weight: 600; }
@keyframes vsp-spin { to { transform: rotate(360deg); } }

/* =========================================================================
   SIDEBAR / WIDGETS
   ========================================================================= */
.vsp-sidebar__sticky { position: sticky; top: calc(var(--vsp-header-h) + 20px); display: flex; flex-direction: column; gap: 28px; }
.widget {
	background: var(--vsp-bg); border: 1px solid var(--vsp-border); border-radius: var(--vsp-radius); padding: 22px;
}
.widget-title {
	font-size: 17px; margin-bottom: 16px; padding-bottom: 12px; border-bottom: 2px solid var(--vsp-surface);
	display: flex; align-items: center; gap: 8px;
}
.widget ul li { padding: 8px 0; border-bottom: 1px solid var(--vsp-surface); }
.widget ul li:last-child { border-bottom: none; }
.widget a { color: var(--vsp-text); }
.widget a:hover { color: var(--vsp-primary); }

/* =========================================================================
   FOOTER
   ========================================================================= */
.vsp-footer { background: var(--vsp-footer-bg); color: var(--vsp-footer-tx); }
.vsp-footer__widgets { padding-block: 56px 40px; border-bottom: 1px solid color-mix(in srgb, var(--vsp-footer-tx) 16%, transparent); }
.vsp-footer__grid { display: flex; flex-wrap: wrap; gap: 40px; }
.vsp-footer__col { flex: 1 1 calc((100% / var(--vsp-foot-cols, 4)) - 40px); min-width: 200px; }
.vsp-footer .widget { background: transparent; border: none; padding: 0; color: var(--vsp-footer-tx); }
.vsp-footer .widget + .widget { margin-top: 28px; }
.vsp-footer .widget-title { color: var(--vsp-footer-heading); font-size: 15px; font-weight: 800; letter-spacing: .01em; margin-bottom: 16px; padding-bottom: 10px; border-bottom: 1px solid color-mix(in srgb, var(--vsp-footer-tx) 22%, transparent); }
.vsp-footer a { color: var(--vsp-footer-link, var(--vsp-footer-tx)); }
.vsp-footer a:hover { color: var(--vsp-footer-link-hover); }
/* Listas de widgets (categorias, arquivos, páginas, posts recentes…) */
.vsp-footer .widget ul { list-style: none; margin: 0; padding: 0; }
.vsp-footer .widget ul li {
	border-bottom: 1px solid color-mix(in srgb, var(--vsp-footer-tx) 16%, transparent);
	padding: 0;
}
.vsp-footer .widget ul li:last-child { border-bottom: 0; }
.vsp-footer .widget ul li a {
	display: block;
	padding: 9px 0;
	transition: color .2s var(--vsp-ease), padding-left .2s var(--vsp-ease);
}
.vsp-footer .widget ul li a:hover { color: var(--vsp-footer-link-hover); padding-left: 6px; }
.vsp-footer .widget ul li a:focus-visible { outline: 2px solid var(--vsp-footer-link-hover); outline-offset: 2px; border-radius: 4px; }
.vsp-footer .widget ul ul { margin-top: 4px; padding-left: 14px; }
.vsp-footer .widget ul li .count,
.vsp-footer .widget ul li .post-date { color: color-mix(in srgb, var(--vsp-footer-tx) 78%, transparent); font-size: 12px; }
.vsp-footer .widget select { width: 100%; max-width: 100%; padding: 8px 10px; border-radius: 8px; border: 1px solid color-mix(in srgb, var(--vsp-footer-tx) 24%, transparent); background: color-mix(in srgb, var(--vsp-footer-tx) 8%, transparent); color: var(--vsp-footer-tx); }
.vsp-footer .widget p { color: var(--vsp-footer-tx); }

/* Barra inferior: independente das colunas e opcional por elemento. */
.vsp-footer__bar {
	padding-block: var(--vsp-footer-bar-pt, 24px) var(--vsp-footer-bar-pb, 24px);
	background: var(--vsp-footer-bar-bg, transparent);
	color: var(--vsp-footer-bar-text, var(--vsp-footer-tx));
}
.vsp-footer__bar-inner { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px; }
.vsp-footer__bar-inner--center { justify-content: center; text-align: center; }
.vsp-footer__bar-inner--stack { flex-direction: column; justify-content: center; text-align: center; }
.vsp-footer__name { font-weight: 800; font-size: 18px; color: var(--vsp-footer-heading); }
.vsp-footer__brand { display: inline-flex; align-items: center; line-height: 0; }
.vsp-footer__brand .vsp-site-title { font-size: 20px; margin: 0; line-height: 1.1; }
.vsp-footer__brand .vsp-site-title a { color: var(--vsp-footer-heading); }
.vsp-footer__brand .vsp-site-title a:hover { color: var(--vsp-footer-bar-link-hover, var(--vsp-footer-link-hover)); }
.vsp-footer-menu { display: flex; flex-wrap: wrap; gap: 18px; }
.vsp-footer-menu a { font-weight: 600; color: var(--vsp-footer-bar-link, var(--vsp-footer-link, var(--vsp-footer-tx))); }
.vsp-footer-menu a:hover, .vsp-footer-menu a:focus-visible { color: var(--vsp-footer-bar-link-hover, var(--vsp-footer-link-hover)); }
.vsp-footer__bar .vsp-social__link { color: var(--vsp-footer-bar-link, var(--vsp-footer-link, var(--vsp-footer-tx))); }
.vsp-footer__bar .vsp-social__link:hover { color: var(--vsp-footer-bar-link-hover, var(--vsp-footer-link-hover)); }
.vsp-footer__copy { font-size: 14px; opacity: .9; color: var(--vsp-footer-bar-text, var(--vsp-footer-tx)); }
.vsp-footer__copy a { color: var(--vsp-footer-bar-link, var(--vsp-footer-link, var(--vsp-footer-tx))); }
.vsp-footer__copy a:hover { color: var(--vsp-footer-bar-link-hover, var(--vsp-footer-link-hover)); }

/* Rodapé configurável: colunas tipadas. */
.vsp-footer-links { padding-block: 52px 40px; border-bottom: 1px solid color-mix(in srgb, var(--vsp-footer-tx) 16%, transparent); }
.vsp-footer-links__container { display: flex; flex-wrap: wrap; gap: 40px; align-items: flex-start; }
.vsp-footer-links__column { flex: 1 1 200px; min-width: 180px; }
.vsp-footer-links__column--brand { flex-basis: 250px; }
.vsp-footer-links__title { color: var(--vsp-footer-heading); font-size: 15px; font-weight: 800; letter-spacing: .01em; margin: 0 0 14px; padding-bottom: 10px; border-bottom: 1px solid color-mix(in srgb, var(--vsp-footer-tx) 22%, transparent); }
.vsp-footer-links__list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 2px; }
.vsp-footer-links__link {
	position: relative;
	display: block;
	padding: 9px 12px;
	border-radius: 6px;
	color: var(--vsp-footer-link, var(--vsp-footer-tx));
	background: var(--vsp-footer-link-bg, transparent);
	overflow: hidden;
	transition: transform .22s var(--vsp-ease), background .22s var(--vsp-ease), color .22s var(--vsp-ease);
}
.vsp-footer-links__link > span { position: relative; z-index: 1; }
.vsp-footer-links__link::after {
	content: "";
	position: absolute; inset: 0; z-index: 0;
	background: linear-gradient(120deg, transparent, color-mix(in srgb, var(--vsp-footer-link-hover) 16%, transparent), transparent);
	transform: translateX(-120%);
	transition: transform .5s var(--vsp-ease);
}
.vsp-footer-links__link:hover,
.vsp-footer-links__link:focus-visible {
	color: var(--vsp-footer-link-hover);
	background: var(--vsp-footer-link-bg-hover, color-mix(in srgb, var(--vsp-footer-link-hover) 14%, transparent));
	transform: translateX(5px);
}
.vsp-footer-links__link:hover::after, .vsp-footer-links__link:focus-visible::after { transform: translateX(120%); }
.vsp-footer-links__link:focus-visible { outline: 2px solid var(--vsp-footer-link-hover); outline-offset: 2px; }

/* Coluna Marca. */
.vsp-footer-brand { display: flex; flex-direction: column; align-items: flex-start; gap: 16px; }
.vsp-footer-brand__logo { display: flex; align-items: center; line-height: 0; }
.vsp-footer-brand__logo .vsp-logo-link { display: inline-flex; align-items: center; line-height: 0; }
.vsp-footer-brand__logo .vsp-logo { width: auto; height: var(--vsp-footer-brand-logo-h, 46px); max-height: var(--vsp-footer-brand-logo-h, 46px); max-width: 100%; object-fit: contain; }
.vsp-footer-brand__logo .vsp-site-title { margin: 0; line-height: 1.1; font-size: 20px; }
/* Mantém as variantes de logo do rodapé mutuamente exclusivas.
   A especificidade extra evita que regras visuais do próprio rodapé
   reexibam a variante escura no modo claro. */
.vsp-footer .vsp-logo-link--has-dark .vsp-logo--dark { display: none; }
body.vsp-dark .vsp-footer .vsp-logo-link--has-dark .vsp-logo--light { display: none; }
body.vsp-dark .vsp-footer .vsp-logo-link--has-dark .vsp-logo--dark { display: block; }
.vsp-footer-brand__text { color: var(--vsp-footer-tx); line-height: 1.65; max-width: 38ch; }
.vsp-footer-brand__text > :first-child { margin-top: 0; }
.vsp-footer-brand__text > :last-child { margin-bottom: 0; }
.vsp-footer-brand .vsp-social { display: flex; flex-wrap: wrap; gap: 7px; }
.vsp-footer-brand .vsp-social__link,
.vsp-social--footer-column .vsp-social__link {
	display: inline-flex; align-items: center; justify-content: center;
	width: 38px; height: 38px; border-radius: 10px;
	color: var(--vsp-footer-link, var(--vsp-footer-tx));
	background: var(--vsp-footer-link-bg, color-mix(in srgb, var(--vsp-footer-tx) 7%, transparent));
	border: 1px solid color-mix(in srgb, var(--vsp-footer-tx) 14%, transparent);
	transition: color .2s var(--vsp-ease), background .2s var(--vsp-ease), transform .2s var(--vsp-ease);
}
.vsp-footer-brand .vsp-social__link:hover,
.vsp-social--footer-column .vsp-social__link:hover {
	color: var(--vsp-footer-link-hover);
	background: var(--vsp-footer-link-bg-hover, color-mix(in srgb, var(--vsp-footer-link-hover) 14%, transparent));
	transform: translateY(-2px);
}

/* Coluna Contato. */
.vsp-footer-contact { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.vsp-footer-contact__item { display: flex; align-items: center; gap: 10px; min-width: 0; }
.vsp-footer-contact__icon {
	display: inline-flex; align-items: center; justify-content: center; flex: 0 0 36px;
	width: 36px; height: 36px; border-radius: 9px;
	color: var(--vsp-footer-contact-icon, var(--vsp-footer-heading));
	background: var(--vsp-footer-contact-icon-bg, transparent);
}
.vsp-footer-contact__link, .vsp-footer-contact__text {
	min-width: 0; color: var(--vsp-footer-link, var(--vsp-footer-tx)); line-height: 1.45;
}
.vsp-footer-contact__link {
	display: inline-flex; align-items: center; min-height: 36px; padding: 5px 8px; margin-left: -8px;
	border-radius: 6px; background: var(--vsp-footer-link-bg, transparent);
	transition: color .2s var(--vsp-ease), background .2s var(--vsp-ease), transform .2s var(--vsp-ease);
}
.vsp-footer-contact__link:hover, .vsp-footer-contact__link:focus-visible {
	color: var(--vsp-footer-link-hover); background: var(--vsp-footer-link-bg-hover, color-mix(in srgb, var(--vsp-footer-link-hover) 14%, transparent)); transform: translateX(3px);
}
.vsp-footer-contact__link:focus-visible { outline: 2px solid var(--vsp-footer-link-hover); outline-offset: 2px; }

/* Coluna HTML: respeita o conteúdo do projeto, sem impor layout interno. */
.vsp-footer-custom-html { color: var(--vsp-footer-tx); min-width: 0; }
.vsp-footer-custom-html > :first-child { margin-top: 0; }
.vsp-footer-custom-html > :last-child { margin-bottom: 0; }
.vsp-footer-custom-html a { color: var(--vsp-footer-link, var(--vsp-footer-tx)); }
.vsp-footer-custom-html a:hover { color: var(--vsp-footer-link-hover); }

@media (max-width: 600px) {
	.vsp-footer-links__container { gap: 28px; }
	.vsp-footer-links__column { flex-basis: 100%; }
	.vsp-footer-brand { align-items: flex-start; }
}
@media (prefers-reduced-motion: reduce) {
	.vsp-footer-links__link, .vsp-footer-contact__link, .vsp-footer-brand .vsp-social__link { transition-duration: .01ms; }
	.vsp-footer-links__link:hover, .vsp-footer-contact__link:hover { transform: none; }
	.vsp-footer-links__link::after { display: none; }
}

/* =========================================================================
   COMENTÁRIOS
   ========================================================================= */
.vsp-comments { margin: 48px 0; }
.vsp-comments__title { display: flex; align-items: center; gap: 10px; margin-bottom: 24px; }
.vsp-comments__title .vsp-icon { color: var(--vsp-primary); }
.vsp-comments__list { display: flex; flex-direction: column; gap: 20px; }
.vsp-comments__list ol.children { margin-top: 20px; padding-left: 28px; display: flex; flex-direction: column; gap: 20px; }
.vsp-comments .comment-body {
	display: flex; flex-direction: column; gap: 8px; padding: 20px;
	background: var(--vsp-surface); border-radius: var(--vsp-radius); border: 1px solid var(--vsp-border);
}
.vsp-comments .comment-author { display: flex; align-items: center; gap: 12px; }
.vsp-comments .comment-author .avatar { border-radius: 50%; }
.vsp-comments .comment-author .fn { font-weight: 700; font-style: normal; }
.vsp-comments .comment-metadata { font-size: 13px; color: var(--vsp-muted); }
.vsp-comments .reply a {
	display: inline-flex; align-items: center; gap: 6px; font-size: 13px; font-weight: 700; color: var(--vsp-primary);
}
.vsp-comment-form { display: flex; flex-direction: column; gap: 16px; margin-top: 32px; }
.vsp-comment-form .comment-form-comment,
.vsp-comment-form .comment-form-author,
.vsp-comment-form .comment-form-email,
.vsp-comment-form .comment-form-url { display: flex; flex-direction: column; gap: 6px; }
.vsp-comment-form input[type="text"],
.vsp-comment-form input[type="email"],
.vsp-comment-form input[type="url"],
.vsp-comment-form textarea {
	width: 100%; padding: 12px 16px; border: 2px solid var(--vsp-border); border-radius: var(--vsp-radius);
	background: var(--vsp-bg); transition: border-color .2s var(--vsp-ease), box-shadow .2s var(--vsp-ease);
}
.vsp-comment-form input:focus, .vsp-comment-form textarea:focus {
	outline: none; border-color: var(--vsp-primary); box-shadow: 0 0 0 4px rgba(47,111,143,.12);
}
.vsp-comment-form .submit {
	align-self: flex-start; background: var(--vsp-primary); color: var(--vsp-on-primary); border: none;
	padding: 14px 30px; border-radius: 999px; font-weight: 700; cursor: pointer; transition: all .25s var(--vsp-ease);
}
.vsp-comment-form .submit:hover { background: var(--vsp-primary-dk); transform: translateY(-2px); box-shadow: var(--vsp-shadow-md); }

/* =========================================================================
   404 / NO RESULTS
   ========================================================================= */
.vsp-404, .vsp-no-results {
	display: flex; flex-direction: column; align-items: center; text-align: center; gap: 16px;
	padding: 60px 20px; max-width: 720px; margin-inline: auto;
}
.vsp-404__icon, .vsp-no-results__icon { color: var(--vsp-primary); opacity: .85; }
.vsp-404__code { font-size: clamp(56px, 12vw, 96px); line-height: 1; color: var(--vsp-primary); }
.vsp-404__title { font-size: var(--vsp-fs-h2); }
.vsp-404__text, .vsp-no-results p { color: var(--vsp-muted); max-width: 50ch; }
.vsp-404__search, .vsp-no-results__search { width: 100%; max-width: 480px; margin-block: 8px; }
.vsp-404__recent { width: 100%; margin-top: 40px; text-align: left; }

/* =========================================================================
   BACK TO TOP + PROGRESSO DE LEITURA
   ========================================================================= */
.vsp-back-to-top {
	position: fixed; right: 24px; bottom: 24px; z-index: 300;
	width: 50px; height: 50px; border-radius: 50%; border: none; cursor: pointer;
	background: var(--vsp-primary); color: var(--vsp-on-primary); box-shadow: var(--vsp-shadow-lg);
	display: flex; align-items: center; justify-content: center;
	opacity: 0; transform: translateY(20px) scale(.8); pointer-events: none;
	transition: opacity .3s var(--vsp-ease), transform .3s var(--vsp-ease), background .2s;
}
.vsp-back-to-top.is-visible { opacity: 1; transform: translateY(0) scale(1); pointer-events: auto; }
.vsp-back-to-top:hover { background: var(--vsp-primary-dk); transform: translateY(-3px) scale(1.05); }

.vsp-read-progress {
	position: fixed; left: 0; width: 100%; height: 3px; z-index: 350; background: transparent; pointer-events: none;
}
.vsp-read-progress--bottom { bottom: 0; top: auto; }
.vsp-read-progress--top { top: 0; bottom: auto; }
.vsp-read-progress__bar {
	display: block; height: 100%; width: 0; transition: width .1s linear;
}
.vsp-read-progress--single .vsp-read-progress__bar {
	background: var(--vsp-read-progress-color-1, var(--vsp-primary));
}
.vsp-read-progress--gradient .vsp-read-progress__bar {
	background: linear-gradient(90deg, var(--vsp-read-progress-color-1, var(--vsp-primary)), var(--vsp-read-progress-color-2, var(--vsp-accent)));
}

/* O reveal só oculta elementos após o JS confirmar que está observando-os.
   Conteúdo continua visível quando JS está ausente, adiado ou falha. */
/* =========================================================================
   ANIMAÇÕES DE SCROLL (reveal) + PARALLAX
   ========================================================================= */
.vsp-anim-on .vsp-reveal.vsp-reveal-pending {
	opacity: 0; transform: translateY(28px);
	transition: opacity .7s var(--vsp-ease), transform .7s var(--vsp-ease);
	will-change: opacity, transform;
}
.vsp-anim-on .vsp-reveal.vsp-reveal-pending.is-visible { opacity: 1; transform: translateY(0); }
.vsp-anim-on .vsp-posts .vsp-card { transition-delay: calc(var(--vsp-i, 0) * 60ms); }

@media (prefers-reduced-motion: reduce) {
	.vsp-anim-on .vsp-reveal { opacity: 1 !important; transform: none !important; transition: none !important; }
	.vsp-card, .vsp-card__img { transition: none !important; }
}

/* =========================================================================
   DARK MODE
   As cores (variáveis) de body.vsp-dark vêm do Customizer (inc/customizer.php),
   injetadas no <head>. Aqui só ficam ajustes que não são variáveis de cor.
   ========================================================================= */
body.vsp-dark { color-scheme: dark; }
body.vsp-color-mode-light { color-scheme: light; }
.vsp-dark .vsp-theme-toggle__sun { display: none; }
.vsp-dark .vsp-theme-toggle__moon { display: inline-flex; }

/* =========================================================================
   COLUNAS CONFIGURÁVEIS (blog/arquivos) — usa --vsp-blog-cols do Customizer
   ========================================================================= */
.vsp-posts--cols > .vsp-card {
	flex: 1 1 calc(100% / var(--vsp-blog-cols, 2) - var(--vsp-gap));
	max-width: calc(100% / var(--vsp-blog-cols, 2) - var(--vsp-gap));
}

/* =========================================================================
   FILTROS POR CATEGORIA (topo do blog/arquivos)
   ========================================================================= */
.vsp-filters { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 28px; }
.vsp-filter {
	display: inline-flex; align-items: center; gap: 8px; padding: 9px 18px; border-radius: 999px;
	background: var(--vsp-bg); border: 1px solid var(--vsp-border); color: var(--vsp-text);
	font-weight: 600; font-size: 14px; transition: all .2s var(--vsp-ease);
}
.vsp-filter:hover { border-color: var(--vsp-primary); color: var(--vsp-primary); transform: translateY(-2px); }
.vsp-filter.is-active { background: var(--vsp-primary); color: var(--vsp-on-primary); border-color: var(--vsp-primary); }
.vsp-filter__count {
	display: inline-flex; align-items: center; justify-content: center; min-width: 22px; height: 22px;
	padding: 0 6px; font-size: 12px; border-radius: 999px; background: var(--vsp-surface); color: var(--vsp-muted);
}
.vsp-filter.is-active .vsp-filter__count { background: color-mix(in srgb, var(--vsp-on-primary) 22%, transparent); color: var(--vsp-on-primary); }

/* =========================================================================
   DESCRIÇÃO DA CATEGORIA (abaixo dos posts)
   ========================================================================= */
.vsp-archive-about {
	margin: 48px 0 8px; padding: 32px; background: var(--vsp-surface);
	border: 1px solid var(--vsp-border); border-radius: var(--vsp-radius); position: relative; overflow: hidden;
}
.vsp-archive-about::before {
	content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 5px;
	background: linear-gradient(180deg, var(--vsp-primary), var(--vsp-accent));
}
.vsp-archive-about__title { display: flex; align-items: center; gap: 10px; font-size: var(--vsp-fs-h3); margin-bottom: 14px; }
.vsp-archive-about__title .vsp-icon { color: var(--vsp-primary); }
.vsp-archive-about__text { color: var(--vsp-muted); }

/* =========================================================================
   REDES SOCIAIS (locais personalizáveis)
   ========================================================================= */
.vsp-social { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.vsp-social__link {
	display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px;
	border-radius: 50%; border: 1px solid var(--vsp-border); background: var(--vsp-bg); color: var(--vsp-muted);
	transition: all .25s var(--vsp-ease);
}
.vsp-social__link:hover { color: var(--vsp-on-primary); background: var(--vsp-primary); border-color: var(--vsp-primary); transform: translateY(-3px); }
.vsp-social--header { margin-right: 6px; }
.vsp-social--header .vsp-social__link {
	width: 38px; height: 38px; border-color: transparent;
	background: var(--vsp-header-action-bg, transparent);
	color: var(--vsp-header-action-icon, var(--vsp-header-link, var(--vsp-text)));
}
.vsp-social--header .vsp-social__link:hover, .vsp-social--header .vsp-social__link:focus-visible {
	background: var(--vsp-header-action-bg-hover, var(--vsp-surface));
	color: var(--vsp-header-action-icon-hover, var(--vsp-header-link-hover, var(--vsp-primary)));
	border-color: transparent;
}
.vsp-social--footer { justify-content: center; }
.vsp-social--footer .vsp-social__link {
	background: var(--vsp-footer-link-bg, color-mix(in srgb, var(--vsp-footer-tx) 6%, transparent));
	border-color: color-mix(in srgb, var(--vsp-footer-tx) 12%, transparent);
	color: var(--vsp-footer-bar-link, var(--vsp-footer-link, var(--vsp-footer-tx)));
}
.vsp-social--footer .vsp-social__link:hover, .vsp-social--footer .vsp-social__link:focus-visible {
	background: var(--vsp-footer-link-bg-hover, color-mix(in srgb, var(--vsp-footer-link-hover) 14%, transparent));
	border-color: var(--vsp-footer-link-bg-hover, color-mix(in srgb, var(--vsp-footer-link-hover) 38%, transparent));
	color: var(--vsp-footer-bar-link-hover, var(--vsp-footer-link-hover));
}
.vsp-social--footer-column .vsp-social__link {
	background: var(--vsp-footer-link-bg, color-mix(in srgb, var(--vsp-footer-tx) 7%, transparent));
	border-color: color-mix(in srgb, var(--vsp-footer-tx) 14%, transparent);
	color: var(--vsp-footer-link, var(--vsp-footer-tx));
}
.vsp-social--footer-column .vsp-social__link:hover, .vsp-social--footer-column .vsp-social__link:focus-visible {
	background: var(--vsp-footer-link-bg-hover, color-mix(in srgb, var(--vsp-footer-link-hover) 14%, transparent));
	border-color: var(--vsp-footer-link-bg-hover, color-mix(in srgb, var(--vsp-footer-link-hover) 38%, transparent));
	color: var(--vsp-footer-link-hover);
}
.vsp-social--post, .vsp-social--blog {
	justify-content: center; margin: 32px 0 8px; padding: 20px; background: var(--vsp-surface); border-radius: var(--vsp-radius);
}
.vsp-social--blog { margin-top: 48px; }

@media (max-width: 860px) {
	.vsp-social--header { display: none; } /* economiza espaço no mobile */
}

/* =========================================================================
   HERO DO AUTOR (página personalizada)
   ========================================================================= */
.vsp-author-hero {
	display: flex; align-items: center; gap: 32px; margin-bottom: 44px; padding: 36px;
	background: linear-gradient(135deg, color-mix(in srgb, var(--vsp-primary) 10%, var(--vsp-surface)), var(--vsp-surface));
	border: 1px solid var(--vsp-border); border-radius: var(--vsp-radius-lg);
}
.vsp-author-hero__avatar { flex: 0 0 auto; }
.vsp-author-hero__img { width: 140px; height: 140px; border-radius: 50%; object-fit: cover; box-shadow: var(--vsp-shadow-md); border: 4px solid var(--vsp-bg); }
.vsp-author-hero__body { flex: 1; display: flex; flex-direction: column; gap: 8px; }
.vsp-author-hero__eyebrow { display: inline-flex; align-items: center; gap: 8px; font-size: 13px; font-weight: 800; text-transform: uppercase; letter-spacing: .05em; color: var(--vsp-primary); }
.vsp-author-hero__name { font-size: var(--vsp-fs-h1); }
.vsp-author-hero__job { font-size: 15px; font-weight: 600; color: var(--vsp-muted); }
.vsp-author-hero__bio { color: var(--vsp-muted); max-width: 70ch; }
.vsp-social--author { margin-top: 10px; }

@media (max-width: 700px) {
	.vsp-author-hero { flex-direction: column; text-align: center; align-items: center; padding: 28px; }
	.vsp-social--author { justify-content: center; }
}

/* =========================================================================
   GLOSSÁRIO (termo auto-linkado + tooltip)
   ========================================================================= */
/* Termo auto-linkado no conteúdo + tooltip (CSS puro via data-vsp-tip) */
.vsp-gloss-link {
	position: relative; color: var(--vsp-accent); text-decoration: underline;
	text-decoration-style: dotted; text-underline-offset: 3px; cursor: help; font-weight: 600;
}
.vsp-gloss-link:hover { color: var(--vsp-primary); }
.vsp-gloss-link[data-vsp-tip]::after {
	content: attr(data-vsp-tip);
	position: absolute; left: 50%; bottom: calc(100% + 10px); transform: translateX(-50%) translateY(6px);
	width: max-content; max-width: 280px; padding: 10px 14px; z-index: 60;
	/* Sempre escuro, como o rodapé/topbar — --vsp-text troca de cor no modo
	   escuro (vira clara), o que deixaria este tooltip claro com texto branco
	   fixo por cima, ilegível. */
	background: var(--vsp-footer-bg); color: var(--vsp-footer-tx); font-size: 13px; font-weight: 400; line-height: 1.5;
	border-radius: var(--vsp-radius-sm); box-shadow: var(--vsp-shadow-lg); text-decoration: none;
	opacity: 0; visibility: hidden; pointer-events: none; transition: opacity .2s var(--vsp-ease), transform .2s var(--vsp-ease);
}
.vsp-gloss-link[data-vsp-tip]::before {
	content: ""; position: absolute; left: 50%; bottom: calc(100% + 4px); transform: translateX(-50%);
	border: 6px solid transparent; border-top-color: var(--vsp-footer-bg); z-index: 60;
	opacity: 0; visibility: hidden; transition: opacity .2s var(--vsp-ease);
}
.vsp-gloss-link[data-vsp-tip]:hover::after { opacity: 1; visibility: visible; transform: translateX(-50%) translateY(0); }
.vsp-gloss-link[data-vsp-tip]:hover::before { opacity: 1; visibility: visible; }

/* Navegação A-Z */
.vsp-az-nav {
	display: flex; flex-wrap: wrap; gap: 5px; justify-content: center; margin: 0 0 36px;
	padding: 16px 5px; background: var(--vsp-surface); border-radius: var(--vsp-radius); position: sticky;
	top: calc(var(--vsp-header-h) + 8px); z-index: 40;
}
.vsp-az-nav__link {
	display: inline-flex; align-items: center; justify-content: center; width: 38px; height: 38px;
	border-radius: var(--vsp-radius-sm); font-weight: 800; color: var(--vsp-text); background: var(--vsp-bg);
	border: 1px solid var(--vsp-border); transition: all .2s var(--vsp-ease);
}
.vsp-az-nav__link:hover { background: var(--vsp-primary); color: var(--vsp-on-primary); border-color: var(--vsp-primary); transform: translateY(-2px); }
.vsp-az-nav__link.is-empty { opacity: .35; pointer-events: none; background: transparent; border-color: transparent; }

.vsp-glossary-index { display: flex; flex-direction: column; gap: 40px; }
.vsp-glossary-group { display: flex; flex-direction: column; gap: 16px; scroll-margin-top: calc(var(--vsp-header-h) + 80px); }
.vsp-glossary-group__letter {
	font-size: var(--vsp-fs-h1); color: var(--vsp-primary); line-height: 1;
	padding-bottom: 10px; border-bottom: 3px solid var(--vsp-surface);
}
.vsp-glossary-group__list { display: flex; flex-wrap: wrap; gap: 16px; }
.vsp-glossary-card {
	flex: 1 1 calc(50% - 16px); max-width: calc(50% - 16px);
	display: flex; flex-direction: column; gap: 4px; padding: 18px 20px; position: relative;
	background: var(--vsp-bg); border: 1px solid var(--vsp-border); border-radius: var(--vsp-radius);
	box-shadow: var(--vsp-shadow-sm); transition: all .25s var(--vsp-ease);
}
.vsp-glossary-card:hover { transform: translateY(-4px); border-color: var(--vsp-primary); box-shadow: var(--vsp-shadow-md); }
.vsp-glossary-card__term { font-weight: 800; font-size: 17px; color: var(--vsp-text); }
.vsp-glossary-card__def { font-size: 14px; color: var(--vsp-muted); }
.vsp-glossary-card__arrow {
	position: absolute; top: 18px; right: 18px; color: var(--vsp-primary); opacity: 0;
	transform: translateX(-6px); transition: all .25s var(--vsp-ease);
}
.vsp-glossary-card:hover .vsp-glossary-card__arrow { opacity: 1; transform: translateX(0); }

/* Verbete individual */
.vsp-verbete__header { margin-bottom: 24px; }
.vsp-verbete__eyebrow {
	display: inline-flex; align-items: center; gap: 8px; font-size: 13px; font-weight: 800;
	text-transform: uppercase; letter-spacing: .05em; color: var(--vsp-accent); margin-bottom: 12px;
}
.vsp-verbete__title { font-size: var(--vsp-fs-h1); margin-bottom: 14px; }
.vsp-verbete__short {
	font-size: 19px; color: var(--vsp-text); line-height: 1.55; padding: 16px 20px;
	background: var(--vsp-surface); border-left: 4px solid var(--vsp-accent); border-radius: 0 var(--vsp-radius) var(--vsp-radius) 0;
}
.vsp-verbete__media { margin: 24px 0; border-radius: var(--vsp-radius); overflow: hidden; box-shadow: var(--vsp-shadow-md); }
.vsp-verbete__related { margin-top: 40px; padding-top: 28px; border-top: 1px solid var(--vsp-border); }
.vsp-verbete__related-list { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 16px; }
.vsp-verbete__all { margin-top: 8px; }

@media (max-width: 560px) {
	.vsp-glossary-card { flex: 1 1 100%; max-width: 100%; }
}

/* =========================================================================
   FAQ (accordion automático)
   ========================================================================= */
.vsp-faq { display: flex; flex-direction: column; gap: 12px; margin: 28px 0; }
.vsp-faq__item { border: 1px solid var(--vsp-border); border-radius: var(--vsp-radius); overflow: hidden; background: var(--vsp-bg); }
.vsp-faq__q {
	display: flex; width: 100%; align-items: center; justify-content: space-between; gap: 14px;
	padding: 16px 20px; background: var(--vsp-surface); border: none; cursor: pointer;
	font-weight: 700; font-size: 16px; color: var(--vsp-text); text-align: left; font-family: inherit;
}
.vsp-faq__q:hover { color: var(--vsp-primary); }
.vsp-faq__icon { display: inline-flex; color: var(--vsp-primary); flex: 0 0 auto; transition: transform .3s var(--vsp-ease); }
.vsp-faq__q[aria-expanded="true"] .vsp-faq__icon { transform: rotate(180deg); }
.vsp-faq__a { max-height: 0; overflow: hidden; transition: max-height .35s var(--vsp-ease); }
.vsp-faq__a-inner { padding: 16px 20px; color: var(--vsp-muted); }
.vsp-faq__a-inner > *:first-child { margin-top: 0; }

/* =========================================================================
   WHATSAPP (botão flutuante + mini-chat)
   ========================================================================= */
.vsp-wa { position: fixed; right: 24px; bottom: 24px; z-index: 320; display: flex; flex-direction: column; align-items: flex-end; gap: 14px; }
.vsp-wa__fab {
	width: 60px; height: 60px; border-radius: 50%; border: none; cursor: pointer; background: #25d366; color: #fff;
	box-shadow: var(--vsp-shadow-lg); display: flex; align-items: center; justify-content: center;
	transition: transform .25s var(--vsp-ease); order: 2;
}
.vsp-wa__fab:hover { transform: scale(1.08); }
.vsp-wa__panel {
	order: 1; width: 320px; max-width: calc(100vw - 48px); background: var(--vsp-bg); border-radius: var(--vsp-radius-lg);
	box-shadow: var(--vsp-shadow-lg); overflow: hidden; border: 1px solid var(--vsp-border);
	animation: vsp-slideup .25s var(--vsp-ease);
}
@keyframes vsp-slideup { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
.vsp-wa__header { display: flex; align-items: center; gap: 12px; padding: 14px 16px; background: #075e54; color: #fff; }
.vsp-wa__avatar { display: flex; width: 40px; height: 40px; border-radius: 50%; background: rgba(255,255,255,.2); align-items: center; justify-content: center; flex: 0 0 auto; }
.vsp-wa__id { display: flex; flex-direction: column; flex: 1; }
.vsp-wa__name { font-size: 15px; }
.vsp-wa__status { font-size: 12px; opacity: .85; }
.vsp-wa__close { background: none; border: none; color: #fff; cursor: pointer; display: flex; padding: 4px; }
.vsp-wa__body { padding: 18px 16px; display: flex; flex-direction: column; gap: 14px; background: #ece5dd; }
.vsp-wa__bubble { background: #fff; padding: 12px 14px; border-radius: 0 12px 12px 12px; box-shadow: var(--vsp-shadow-sm); color: #1f2328; font-size: 14px; }
.vsp-wa__terms { display: flex; gap: 8px; align-items: flex-start; font-size: 13px; color: #2a2f35; background: rgba(255,255,255,.65); padding: 9px 11px; border-radius: var(--vsp-radius-sm); }
.vsp-wa__terms a { color: #075e54; font-weight: 700; text-decoration: underline; }
.vsp-wa__go { background: #25d366; }
.vsp-wa__go:hover { background: #1da851; color: #fff; }
.vsp-wa__go.is-disabled { opacity: .55; pointer-events: none; }
@media (max-width: 560px) { .vsp-wa { right: 16px; bottom: 16px; } }

/* Posição do WhatsApp à esquerda (classe no <body>): botão e mini-chat à esquerda. */
.vsp-wa-pos-left .vsp-wa { right: auto; left: 24px; align-items: flex-start; }
.vsp-wa-pos-left .vsp-wa__bubble { border-radius: 0 12px 12px 12px; }

/* Anti-sobreposição com o "voltar ao topo": quando o WhatsApp ocupa a direita,
   o botão de topo migra para a esquerda; quando o WhatsApp está à esquerda, o
   botão de topo permanece à direita (padrão). Assim nunca ficam um sobre o outro. */
.vsp-wa-on.vsp-wa-pos-right .vsp-back-to-top { right: auto; left: 24px; }

@media (max-width: 560px) {
	.vsp-wa-pos-left .vsp-wa { left: 16px; right: auto; }
	.vsp-wa-on.vsp-wa-pos-right .vsp-back-to-top { left: 16px; right: auto; }
}

/* Respeita as áreas seguras (notch) no mobile para os botões flutuantes. */
@media (max-width: 560px) {
	.vsp-wa { bottom: max(16px, env(safe-area-inset-bottom)); }
	.vsp-back-to-top { bottom: max(24px, env(safe-area-inset-bottom)); }
}

/* =========================================================================
   CENTRAL DE POLÍTICAS
   ========================================================================= */
.vsp-policies__intro { margin-bottom: 32px; max-width: 75ch; }
.vsp-policies-grid { display: flex; flex-wrap: wrap; gap: 18px; }
.vsp-policy-card {
	flex: 1 1 280px; display: flex; align-items: center; gap: 16px; padding: 22px; position: relative;
	background: var(--vsp-bg); border: 1px solid var(--vsp-border); border-radius: var(--vsp-radius);
	box-shadow: var(--vsp-shadow-sm); transition: all .25s var(--vsp-ease);
}
.vsp-policy-card:hover { transform: translateY(-4px); border-color: var(--vsp-primary); box-shadow: var(--vsp-shadow-md); }
.vsp-policy-card__icon {
	flex: 0 0 auto; width: 52px; height: 52px; border-radius: var(--vsp-radius); display: flex; align-items: center; justify-content: center;
	background: color-mix(in srgb, var(--vsp-primary) 12%, transparent); color: var(--vsp-primary);
}
.vsp-policy-card__body { display: flex; flex-direction: column; gap: 4px; flex: 1; }
.vsp-policy-card__title { font-weight: 800; color: var(--vsp-text); }
.vsp-policy-card__desc { font-size: 13px; color: var(--vsp-muted); }
.vsp-policy-card__arrow { color: var(--vsp-primary); opacity: 0; transform: translateX(-6px); transition: all .25s var(--vsp-ease); }
.vsp-policy-card:hover .vsp-policy-card__arrow { opacity: 1; transform: none; }

/* =========================================================================
   PÁGINA DE CONTATO
   ========================================================================= */
.vsp-contact-cards { display: flex; flex-wrap: wrap; gap: 16px; margin: 28px 0; }
.vsp-contact-card { flex: 1 1 200px; display: flex; flex-direction: column; gap: 6px; padding: 20px; background: var(--vsp-surface); border: 1px solid var(--vsp-border); border-radius: var(--vsp-radius); }
.vsp-contact-card__icon { width: 46px; height: 46px; border-radius: var(--vsp-radius); background: var(--vsp-bg); display: flex; align-items: center; justify-content: center; color: var(--vsp-primary); box-shadow: var(--vsp-shadow-sm); }
.vsp-contact-card__label { font-size: 12px; text-transform: uppercase; letter-spacing: .05em; color: var(--vsp-muted); font-weight: 700; }
.vsp-contact-card__value { font-weight: 600; }
.vsp-contact-grid { display: flex; flex-wrap: wrap; gap: 32px; margin-top: 24px; }
.vsp-contact-form-wrap, .vsp-contact-map-wrap { flex: 1 1 360px; min-width: 0; }
.vsp-contact-form { display: flex; flex-direction: column; gap: 16px; margin-top: 16px; }
.vsp-field { display: flex; flex-direction: column; gap: 6px; font-weight: 600; font-size: 14px; }
.vsp-field input, .vsp-field textarea { padding: 12px 14px; border: 2px solid var(--vsp-border); border-radius: var(--vsp-radius); background: var(--vsp-bg); transition: border-color .2s var(--vsp-ease), box-shadow .2s var(--vsp-ease); }
.vsp-field input:focus, .vsp-field textarea:focus { outline: none; border-color: var(--vsp-primary); box-shadow: 0 0 0 4px rgba(47,111,143,.12); }
.vsp-field-row { display: flex; gap: 16px; }
.vsp-field-row .vsp-field { flex: 1; }
.vsp-contact-form__feedback { padding: 12px 16px; border-radius: var(--vsp-radius-sm); font-weight: 600; }
.vsp-contact-form__feedback.is-ok { background: color-mix(in srgb, var(--vsp-accent) 16%, transparent); color: var(--vsp-accent); }
.vsp-contact-form__feedback.is-error { background: color-mix(in srgb, #e03131 18%, transparent); color: #e03131; }
.vsp-contact-map { position: relative; height: 100%; min-height: 360px; border-radius: var(--vsp-radius); overflow: hidden; box-shadow: var(--vsp-shadow-md); }
.vsp-contact-map iframe { position: absolute; inset: 0; }
.vsp-contact-map__pin { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -100%); z-index: 2; color: var(--vsp-primary); filter: drop-shadow(0 4px 8px rgba(0,0,0,.35)); pointer-events: none; }
.vsp-contact-map__pin img { width: 48px; height: 48px; object-fit: contain; }
@media (max-width: 760px) { .vsp-field-row { flex-direction: column; } }

/* Estilos da página de Contato */
.vsp-contact--stacked { flex-direction: column; }
.vsp-contact--stacked .vsp-contact-map-wrap { order: -1; }
.vsp-contact--stacked .vsp-contact-map { min-height: 400px; }
.vsp-contact--compact .vsp-contact-map-wrap { display: none; }
.vsp-contact--compact .vsp-contact-form-wrap { max-width: 640px; margin-inline: auto; }

/* Estilos da Central de Políticas */
.vsp-policies--list .vsp-policy-card { flex: 1 1 100%; max-width: 100%; }
.vsp-policies--tiles .vsp-policy-card {
	flex: 1 1 calc(50% - 18px); max-width: calc(50% - 18px); flex-direction: column;
	align-items: flex-start; gap: 14px; padding: 32px;
}
.vsp-policies--tiles .vsp-policy-card__icon { width: 64px; height: 64px; }
.vsp-policies--tiles .vsp-policy-card__arrow { position: absolute; top: 28px; right: 28px; }
@media (max-width: 640px) { .vsp-policies--tiles .vsp-policy-card { flex-basis: 100%; max-width: 100%; } }

/* =========================================================================
   PRESETS (Home / Blog / Páginas)
   ========================================================================= */
/* Home: Revista (herói imersivo com sobreposição) */
.vsp-hero--magazine .vsp-hero__inner { display: block; position: relative; border-radius: var(--vsp-radius-lg); overflow: hidden; box-shadow: var(--vsp-shadow-lg); }
.vsp-hero--magazine .vsp-hero__media { width: 100%; aspect-ratio: 21 / 9; border-radius: 0; box-shadow: none; }
.vsp-hero--magazine .vsp-hero__body { position: absolute; left: 0; right: 0; bottom: 0; padding: clamp(20px, 4vw, 44px); background: linear-gradient(transparent, rgba(0,0,0,.78)); }
.vsp-hero--magazine .vsp-hero__title a, .vsp-hero--magazine .vsp-hero__excerpt { color: #fff; }
.vsp-hero--magazine .vsp-hero__excerpt { opacity: .92; }
.vsp-hero--magazine .vsp-meta-item, .vsp-hero--magazine .vsp-author-link { color: rgba(255,255,255,.9); }
/* Home: Vídeo (play maior) */
.vsp-hero--video .vsp-hero__play { transform: scale(1.2); }

/* Blog: Compacto */
body.vsp-blogpreset-compact { --vsp-gap: 16px; }
body.vsp-blogpreset-compact .vsp-card__body { padding: 14px 16px; gap: 6px; }
body.vsp-blogpreset-compact .vsp-card__excerpt { display: none; }
body.vsp-blogpreset-compact .vsp-card__extra-meta { display: none; }
body.vsp-blogpreset-compact .vsp-card__title { font-size: 16px; }
/* Blog: Editorial */
body.vsp-blogpreset-editorial .vsp-card__title { font-size: 21px; }
body.vsp-blogpreset-editorial .vsp-card__body { padding: 22px 24px; }
/* Blog: Revista (primeiro card em destaque) */
body.vsp-blogpreset-magazine .vsp-posts > .vsp-card:first-child { flex: 1 1 100%; max-width: 100%; }
body.vsp-blogpreset-magazine .vsp-posts > .vsp-card:first-child .vsp-card__media { aspect-ratio: 21 / 9; }
body.vsp-blogpreset-magazine .vsp-posts > .vsp-card:first-child .vsp-card__title { font-size: 24px; }

/* Cabeçalho editorial das páginas (presets sem herói) */
.vsp-page__header--editorial { margin: 8px 0 28px; }
.vsp-page__header--editorial .vsp-page__title { font-size: var(--vsp-fs-h1); line-height: 1.15; }
.vsp-page__lead { margin-top: 12px; font-size: 19px; color: var(--vsp-muted); max-width: 70ch; }
.vsp-page__rule { display: block; width: 72px; height: 5px; margin-top: 18px; border-radius: 5px; background: linear-gradient(90deg, var(--vsp-primary), var(--vsp-accent)); }
.vsp-page__media { margin: 0 0 32px; border-radius: var(--vsp-radius-lg); overflow: hidden; box-shadow: var(--vsp-shadow-md); }
.vsp-page__img { width: 100%; height: auto; display: block; transition: transform .6s var(--vsp-ease); }
.vsp-anim-on .vsp-page__media:hover .vsp-page__img { transform: scale(1.04); }

/* Páginas: Leitura / Amplo */
body.vsp-pagepreset-reading .vsp-page .vsp-content,
body.vsp-pagepreset-reading .vsp-page__header { max-width: 760px; margin-inline: auto; }
body.vsp-pagepreset-reading .vsp-content { font-size: 18px; }
body.vsp-pagepreset-wide .vsp-primary { max-width: 100%; }

/* Páginas: Herói com imagem de fundo (primeira dobra) */
.vsp-page-hero {
	position: relative; display: flex; align-items: center; justify-content: center;
	min-height: var(--vsp-hero-h, 80vh); overflow: hidden; text-align: center; isolation: isolate;
}
.vsp-page-hero__bg {
	position: absolute; inset: -8%; z-index: 0; background-size: cover; background-position: center;
	will-change: transform; animation: vsp-hero-in 1.1s var(--vsp-ease) both;
}
.vsp-page-hero--noimg { background: linear-gradient(135deg, var(--vsp-primary), var(--vsp-primary-dk)); }
.vsp-page-hero::after {
	content: ""; position: absolute; inset: 0; z-index: 1;
	background: var(--vsp-hero-ov, #0d0f13); opacity: var(--vsp-hero-op, .5);
}
.vsp-page-hero__inner {
	position: relative; z-index: 2; display: flex; flex-direction: column; align-items: center; gap: 14px;
	padding-block: 48px; color: #fff;
}
.vsp-page-hero__title { color: #fff; font-size: var(--vsp-fs-h1); text-shadow: 0 2px 18px rgba(0,0,0,.35); }
.vsp-page-hero__excerpt { color: rgba(255,255,255,.92); max-width: 60ch; font-size: 18px; text-shadow: 0 1px 10px rgba(0,0,0,.3); }
@keyframes vsp-hero-in { from { transform: scale(1.12); opacity: .4; } to { transform: scale(1); opacity: 1; } }
.vsp-pagepreset-hero .vsp-page__content { padding-top: 8px; }

/* Páginas: Card (conteúdo em caixa) */
body.vsp-pagepreset-boxed .vsp-page__content {
	background: var(--vsp-bg); border: 1px solid var(--vsp-border); border-radius: var(--vsp-radius-lg);
	padding: clamp(24px, 4vw, 44px); box-shadow: var(--vsp-shadow-md); margin-top: 8px;
}

/* =========================================================================
   HOME INSTITUCIONAL (portal)
   ========================================================================= */
.vsp-home--portal .vsp-section { margin-block: 56px; }
.vsp-section__head--center { text-align: center; align-items: center; display: flex; flex-direction: column; }
.vsp-section__eyebrow {
	display: inline-flex; align-items: center; gap: 8px; font-weight: 800; text-transform: uppercase;
	letter-spacing: .08em; font-size: 12px; color: var(--vsp-primary); margin-bottom: 8px;
}
.vsp-section__head--center .vsp-section__title::after { margin-inline: auto; }

/* Apresentação (hero institucional, full-bleed) */
.vsp-phero {
	position: relative; display: flex; align-items: center; justify-content: center; isolation: isolate;
	min-height: clamp(480px, 72vh, 760px); overflow: hidden; text-align: center; margin-bottom: 8px;
}
.vsp-phero__bg { position: absolute; inset: -8%; z-index: 0; background-size: cover; background-position: center; will-change: transform; animation: vsp-hero-in 1.1s var(--vsp-ease) both; }
.vsp-phero::before { content: ""; position: absolute; inset: 0; z-index: 0; background: linear-gradient(135deg, var(--vsp-primary-dk), #1a1410); }
.vsp-phero::after { content: ""; position: absolute; inset: 0; z-index: 1; background: var(--vsp-hero-ov, #0d0f13); opacity: var(--vsp-hero-op, .6); }
.vsp-phero__inner { position: relative; z-index: 2; display: flex; flex-direction: column; align-items: center; gap: 18px; padding-block: 64px; color: #fff; }
.vsp-phero__eyebrow {
	display: inline-flex; align-items: center; gap: 8px; padding: 7px 16px; border-radius: 999px;
	background: rgba(255,255,255,.14); backdrop-filter: blur(6px); font-weight: 700; font-size: 13px;
	text-transform: uppercase; letter-spacing: .06em;
}
.vsp-phero__title { color: #fff; font-size: clamp(28px, 4.6vw, 44px); line-height: 1.1; max-width: 16ch; text-shadow: 0 3px 24px rgba(0,0,0,.4); }
.vsp-phero__lead { color: rgba(255,255,255,.92); font-size: clamp(16px, 1.4vw, 20px); max-width: 60ch; }
.vsp-phero__actions { display: flex; flex-wrap: wrap; gap: 14px; justify-content: center; margin-top: 4px; }
.vsp-btn--glass { background: rgba(255,255,255,.12); color: #fff; border-color: rgba(255,255,255,.4); backdrop-filter: blur(6px); }
.vsp-btn--glass:hover { background: rgba(255,255,255,.22); color: #fff; transform: translateY(-2px); }
.vsp-phero__search { width: 100%; max-width: 560px; margin-top: 8px; }

/* Silos */
.vsp-silos-grid { display: flex; flex-wrap: wrap; gap: var(--vsp-gap); }
.vsp-silo-card {
	flex: 1 1 calc(25% - var(--vsp-gap)); min-width: 200px; position: relative; display: flex; flex-direction: column; gap: 8px;
	padding: 26px 22px; background: var(--vsp-bg); border: 1px solid var(--vsp-border); border-radius: var(--vsp-radius-lg);
	box-shadow: var(--vsp-shadow-sm); color: var(--vsp-text); transition: transform .3s var(--vsp-ease), box-shadow .3s var(--vsp-ease), border-color .3s var(--vsp-ease);
}
.vsp-anim-on .vsp-silo-card { transition-delay: calc(var(--vsp-i, 0) * 50ms); }
.vsp-silo-card:hover { transform: translateY(-6px); box-shadow: var(--vsp-shadow-lg); border-color: transparent; }
.vsp-silo-card__icon {
	display: inline-flex; align-items: center; justify-content: center; width: 54px; height: 54px; border-radius: var(--vsp-radius);
	background: linear-gradient(135deg, color-mix(in srgb, var(--vsp-primary) 18%, transparent), color-mix(in srgb, var(--vsp-accent) 18%, transparent));
	color: var(--vsp-primary);
}
.vsp-silo-card__name { font-weight: 800; font-size: 19px; }
.vsp-silo-card__tag { color: var(--vsp-muted); font-size: 14px; flex: 1; }
.vsp-silo-card__go { position: absolute; top: 24px; right: 22px; color: var(--vsp-primary); opacity: 0; transform: translateX(-6px); transition: all .25s var(--vsp-ease); }
.vsp-silo-card:hover .vsp-silo-card__go { opacity: 1; transform: none; }

/* Confiança / EEAT */
.vsp-trust-grid { display: flex; flex-wrap: wrap; gap: var(--vsp-gap); }
.vsp-trust-card { flex: 1 1 calc(25% - var(--vsp-gap)); min-width: 210px; display: flex; flex-direction: column; gap: 10px; padding: 28px 24px; background: var(--vsp-surface); border-radius: var(--vsp-radius-lg); text-align: left; }
.vsp-trust-card__icon { display: inline-flex; align-items: center; justify-content: center; width: 52px; height: 52px; border-radius: 50%; background: var(--vsp-bg); color: var(--vsp-primary); box-shadow: var(--vsp-shadow-sm); }
.vsp-trust-card__title { font-size: 17px; }
.vsp-trust-card__text { color: var(--vsp-muted); font-size: 14px; }

/* Passos */
.vsp-steps-grid { display: flex; flex-wrap: wrap; gap: var(--vsp-gap); counter-reset: step; }
.vsp-step { flex: 1 1 calc(33.333% - var(--vsp-gap)); min-width: 240px; position: relative; padding: 28px 26px 28px 30px; background: var(--vsp-bg); border: 1px solid var(--vsp-border); border-radius: var(--vsp-radius-lg); overflow: hidden; }
.vsp-step__num { font-size: 44px; font-weight: 900; line-height: 1; color: transparent; -webkit-text-stroke: 1.5px color-mix(in srgb, var(--vsp-primary) 55%, transparent); display: block; margin-bottom: 8px; }
.vsp-step__title { font-size: 18px; margin-bottom: 6px; }
.vsp-step__text { color: var(--vsp-muted); font-size: 15px; }
.vsp-step::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; background: linear-gradient(180deg, var(--vsp-primary), var(--vsp-accent)); }

/* Faixa de CTA (glossário) */
.vsp-cta-band {
	display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 24px;
	padding: clamp(24px, 4vw, 40px); margin-block: 56px; border-radius: var(--vsp-radius-lg);
	background: linear-gradient(120deg, color-mix(in srgb, var(--vsp-primary) 12%, var(--vsp-surface)), var(--vsp-surface));
	border: 1px solid var(--vsp-border);
}
.vsp-cta-band__body { display: flex; align-items: center; gap: 18px; }
.vsp-cta-band__icon { display: inline-flex; align-items: center; justify-content: center; width: 60px; height: 60px; border-radius: var(--vsp-radius); background: var(--vsp-bg); color: var(--vsp-primary); box-shadow: var(--vsp-shadow-sm); flex: 0 0 auto; }
.vsp-cta-band__title { font-size: var(--vsp-fs-h3); }
.vsp-cta-band__text { color: var(--vsp-muted); max-width: 60ch; }

/* Rede de Links (rodapé) — grade de atalhos configurável */
.vsp-network { padding-block: 48px 36px; border-bottom: 1px solid color-mix(in srgb, var(--vsp-footer-tx) 16%, transparent); }
.vsp-network__head { text-align: center; margin-bottom: 28px; }
.vsp-network__eyebrow { display: inline-flex; align-items: center; gap: 8px; font-weight: 800; text-transform: uppercase; letter-spacing: .08em; font-size: 12px; color: var(--vsp-primary); }
.vsp-network__title { color: var(--vsp-footer-heading); font-size: var(--vsp-fs-h3); margin-top: 8px; }
.vsp-network__grid { display: flex; flex-wrap: wrap; gap: 14px; }
.vsp-network__item { flex: 1 1 calc(33.333% - 14px); min-width: 220px; }
.vsp-network__item a {
	display: flex; align-items: center; gap: 11px; padding: 14px 16px; border-radius: var(--vsp-radius);
	background: color-mix(in srgb, var(--vsp-footer-tx) 6%, transparent);
	border: 1px solid color-mix(in srgb, var(--vsp-footer-tx) 12%, transparent);
	color: var(--vsp-footer-tx);
	transition: all .25s var(--vsp-ease);
}
.vsp-network__item a:hover { background: color-mix(in srgb, var(--vsp-footer-tx) 12%, transparent); border-color: var(--vsp-primary); transform: translateY(-3px); color: var(--vsp-footer-link-hover); }
.vsp-network__item--main a { background: color-mix(in srgb, var(--vsp-primary) 22%, transparent); border-color: color-mix(in srgb, var(--vsp-primary) 40%, transparent); }
.vsp-network__icon { display: inline-flex; align-items: center; justify-content: center; width: 42px; height: 42px; border-radius: var(--vsp-radius-sm); background: color-mix(in srgb, var(--vsp-footer-tx) 9%, transparent); color: var(--vsp-footer-heading); flex: 0 0 auto; }
.vsp-network__name { display: block; font-weight: 700; color: var(--vsp-footer-heading); }
.vsp-network__tag { display: block; font-size: 12px; opacity: .75; }

@media (max-width: 980px) {
	.vsp-silo-card, .vsp-trust-card { flex-basis: calc(50% - var(--vsp-gap)); }
	.vsp-network__item { flex-basis: calc(50% - 14px); }
}
@media (max-width: 560px) {
	.vsp-silo-card, .vsp-trust-card, .vsp-step { flex-basis: 100%; }
	.vsp-network__item { flex-basis: 100%; }
	.vsp-cta-band { flex-direction: column; align-items: flex-start; }
}

/* =========================================================================
   HOME NARRATIVA — leitura confortável (alvo WCAG AAA)
   ========================================================================= */
.vsp-home--story .vsp-section { margin-block: 56px; }

/* Blocos de texto: alto contraste, medida e entrelinha generosas */
.vsp-prose { max-width: 68ch; margin-inline: auto; }
.vsp-prose h2 { font-size: var(--vsp-fs-h2); margin-bottom: 16px; text-align: center; }
.vsp-prose p { font-size: clamp(17px, 1.15vw, 19px); line-height: 1.85; color: var(--vsp-text); }
.vsp-prose p + p { margin-top: 16px; }
.vsp-prose__highlight { font-weight: 700; font-size: clamp(18px, 1.4vw, 21px); color: var(--vsp-primary-dk); }
.vsp-center { text-align: center; }
.vsp-home--story .vsp-prose__highlight.vsp-center { max-width: 60ch; margin: 24px auto 0; }

/* Três frentes */
.vsp-pillars { display: flex; flex-wrap: wrap; gap: var(--vsp-gap); }
.vsp-pillar {
	flex: 1 1 calc(33.333% - var(--vsp-gap)); min-width: 240px; display: flex; flex-direction: column; align-items: center;
	gap: 12px; text-align: center; padding: 34px 26px; background: var(--vsp-bg); border: 1px solid var(--vsp-border);
	border-radius: var(--vsp-radius-lg); box-shadow: var(--vsp-shadow-sm); transition: transform .3s var(--vsp-ease), box-shadow .3s var(--vsp-ease);
}
.vsp-anim-on .vsp-pillar:hover { transform: translateY(-6px); box-shadow: var(--vsp-shadow-lg); }
.vsp-pillar__icon { display: inline-flex; align-items: center; justify-content: center; width: 66px; height: 66px; border-radius: 50%; background: linear-gradient(135deg, color-mix(in srgb, var(--vsp-primary) 16%, transparent), color-mix(in srgb, var(--vsp-accent) 16%, transparent)); color: var(--vsp-primary); }
.vsp-pillar__title { font-size: 21px; }
.vsp-pillar__text { color: var(--vsp-muted); font-size: 15px; }

/* "Comida boa muda o momento" */
.vsp-changes { display: flex; flex-wrap: wrap; gap: 14px; justify-content: center; margin-top: 8px; }
.vsp-change { flex: 1 1 calc(33.333% - 14px); min-width: 240px; display: flex; align-items: center; gap: 14px; padding: 18px 20px; background: var(--vsp-surface); border-radius: var(--vsp-radius); }
.vsp-change p { font-size: 16px; color: var(--vsp-text); }
.vsp-change__icon { display: inline-flex; align-items: center; justify-content: center; width: 46px; height: 46px; border-radius: var(--vsp-radius-sm); background: var(--vsp-bg); color: var(--vsp-primary); flex: 0 0 auto; box-shadow: var(--vsp-shadow-sm); }

/* Chips de categorias */
.vsp-tags-row { display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; margin: 6px 0 18px; padding: 0; list-style: none; }
.vsp-tagchip { display: inline-flex; align-items: center; gap: 8px; padding: 9px 16px; border-radius: 999px; background: var(--vsp-surface); border: 1px solid var(--vsp-border); font-weight: 600; font-size: 14px; color: var(--vsp-text); }
.vsp-tagchip .vsp-icon { color: var(--vsp-accent); }

/* Nota de responsabilidade (EEAT/YMYL) */
.vsp-note { display: flex; gap: 16px; align-items: flex-start; max-width: 760px; margin: 24px auto 0; padding: 22px 24px; background: color-mix(in srgb, var(--vsp-accent) 8%, var(--vsp-surface)); border: 1px solid color-mix(in srgb, var(--vsp-accent) 30%, transparent); border-left: 5px solid var(--vsp-accent); border-radius: var(--vsp-radius); }
.vsp-note p { color: var(--vsp-text); font-size: 15px; line-height: 1.7; }
.vsp-note__icon { color: var(--vsp-accent); flex: 0 0 auto; }

/* Lista de técnicas */
.vsp-techlist { display: flex; flex-wrap: wrap; gap: 12px; max-width: 820px; margin: 20px auto 0; padding: 0; list-style: none; }
.vsp-techlist li { flex: 1 1 calc(50% - 12px); min-width: 240px; display: flex; align-items: center; gap: 10px; padding: 14px 16px; background: var(--vsp-bg); border: 1px solid var(--vsp-border); border-radius: var(--vsp-radius); color: var(--vsp-text); font-weight: 600; }
.vsp-techlist .vsp-icon { color: var(--vsp-primary); flex: 0 0 auto; }

/* FAQ da home centralizada */
.vsp-faq--home { max-width: 820px; margin-inline: auto; }

/* CTA final */
.vsp-final-cta { text-align: center; padding: clamp(40px, 6vw, 76px) 24px; margin: 56px 0 8px; border-radius: var(--vsp-radius-lg); background: linear-gradient(135deg, var(--vsp-primary), var(--vsp-primary-dk)); color: var(--vsp-on-primary); }
.vsp-final-cta__title { color: var(--vsp-on-primary); font-size: var(--vsp-fs-h1); max-width: 22ch; margin: 0 auto 12px; }
.vsp-final-cta__text { color: color-mix(in srgb, var(--vsp-on-primary) 94%, transparent); max-width: 60ch; margin: 0 auto 24px; font-size: 18px; }
.vsp-final-cta__actions { display: flex; flex-wrap: wrap; gap: 14px; justify-content: center; }
.vsp-final-cta .vsp-btn--primary { background: #fff; color: var(--vsp-primary-dk); }
.vsp-final-cta .vsp-btn--primary:hover { background: #fff; transform: translateY(-2px); }
.vsp-final-cta .vsp-btn--ghost { background: transparent; border-color: color-mix(in srgb, var(--vsp-on-primary) 55%, transparent); color: var(--vsp-on-primary); }
.vsp-final-cta .vsp-btn--ghost:hover { border-color: var(--vsp-on-primary); color: var(--vsp-on-primary); }

@media (max-width: 860px) {
	.vsp-pillar, .vsp-change, .vsp-techlist li { flex-basis: 100%; }
}

/* =========================================================================
   RESPONSIVO
   ========================================================================= */

/* Tablet */
@media (max-width: 1024px) {
	:root { --vsp-gap: 20px; }
	.vsp-content-wrap { gap: 32px; }
	.vsp-sidebar { flex-basis: 280px; }
	.vsp-posts > .vsp-card { flex: 1 1 calc(50% - var(--vsp-gap)); max-width: calc(50% - var(--vsp-gap)); }
}

/* Mobile: menu off-canvas, fontes menores, container 97% */
@media (max-width: 860px) {
	:root {
		--vsp-fs-h1: clamp(22px, 6vw, 27px);
		--vsp-fs-h2: clamp(20px, 5vw, 23px);
		--vsp-fs-h3: clamp(18px, 4.5vw, 20px);
		/* Fallbacks mobile. O CSS dinâmico do painel é carregado depois e
		   substitui estes valores quando o projeto usa medidas próprias. */
		--vsp-header-h: 62px;
		--vsp-header-logo-h: 44px;
	}
	.vsp-container { width: var(--vsp-mobile-w, 97%); max-width: var(--vsp-mobile-w, 97%); }
	.vsp-primary-nav { display: none; }
	.vsp-menu-toggle { display: inline-flex; }
	.vsp-content-wrap { flex-direction: column; gap: 0; padding-block: 24px 48px; }
	.vsp-sidebar { flex-basis: auto; width: 100%; margin-top: 40px; }
	.vsp-sidebar__sticky { position: static; }
	.vsp-layout--sidebar-left { flex-direction: column; }
	body.vsp-menu-open { overflow: hidden; }
	body.vsp-menu-open .vsp-menu-toggle__open { display: none; }
	body.vsp-menu-open .vsp-menu-toggle__close { display: inline-flex; }
	.vsp-postnav .nav-links { flex-direction: column; }
	.vsp-author-box { --vsp-author-avatar-render-size: min(var(--vsp-author-box-image-size,112px),94px); grid-template-columns: var(--vsp-author-avatar-render-size) minmax(0,1fr); gap: 18px; padding: 21px; }
	.vsp-author-box__photo-wrap { width: var(--vsp-author-avatar-render-size); }
	.vsp-author-avatar { width: 100%; height: 100%; }
	.vsp-author-box__top { display: block; }
	.vsp-author-box__link { margin-top: 12px; }
	.vsp-author-box__footer { align-items: flex-start; flex-direction: column; }
	.vsp-author-box__posts { white-space: normal; }
	.vsp-share__label { flex-basis: 100%; margin-bottom: 8px; }
	.vsp-footer__bar-inner { flex-direction: column; text-align: center; }
}

/* Mobile pequeno: 1 coluna */
@media (max-width: 560px) {
	:root { --vsp-fs-base: 16px; }
	.vsp-author-box { display: block; padding: 21px; border-radius: max(var(--vsp-radius),20px); }
	.vsp-author-box__photo-wrap { width: min(var(--vsp-author-box-image-size,112px),104px); margin-bottom: 19px; }
	.vsp-author-avatar { width: 100%; height: 100%; }
	.vsp-author-box__bio { line-height: 1.65; }
	.vsp-author-box__link { width: 100%; }
	.vsp-posts > .vsp-card { flex: 1 1 100%; max-width: 100%; }
	.vsp-grid > * { flex-basis: 100%; }
	.vsp-quick-facts__item { flex-basis: calc(50% - 12px); }
	.vsp-icon-btn { width: 40px; height: 40px; }
	.vsp-topbar__tag { display: none; }
}

/* Telas largas: container fixo 1140px (não estoura) */
@media (min-width: 1200px) {
	.vsp-container { max-width: var(--vsp-container); }
}

/* =========================================================================
   MAPA DO SITE (HTML) — /mapa-do-site/
   ========================================================================= */
.vsp-htmlmap { padding-block: 40px 56px; }
.vsp-htmlmap__head { margin-bottom: 28px; }
.vsp-htmlmap__head h1 { font-size: var(--vsp-fs-h1); margin: 0 0 8px; }
.vsp-htmlmap__head p { color: var(--vsp-muted); margin: 0; }
.vsp-htmlmap__grid { display: grid; grid-template-columns: 1fr;; gap: 24px; }
.vsp-htmlmap__col { background: var(--vsp-surface); border: 1px solid var(--vsp-border); border-radius: var(--vsp-radius-lg, 16px); padding: 20px 22px; }
.vsp-htmlmap__col h2 { font-size: 17px; margin: 0 0 14px; padding-bottom: 10px; border-bottom: 2px solid var(--vsp-border); }
.vsp-htmlmap__col ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 2px; }
.vsp-htmlmap__col li a { display: block; padding: 7px 10px; border-radius: 8px; color: var(--vsp-text); text-decoration: none; transition: background .18s var(--vsp-ease), color .18s var(--vsp-ease), padding-left .18s var(--vsp-ease); }
.vsp-htmlmap__col li a:hover { background: color-mix(in srgb, var(--vsp-primary) 12%, transparent); color: var(--vsp-primary); padding-left: 14px; }
.vsp-htmlmap__col li a:focus-visible { outline: 2px solid var(--vsp-primary); outline-offset: 2px; }

/* =========================================================================
   NEWSLETTER (formulário no front-end) — largura total + layout editorial
   ========================================================================= */
.vsp-newsletter-box {
	--vsp-nl-bg: var(--vsp-newsletter-bg, var(--vsp-surface));
	--vsp-nl-border: var(--vsp-newsletter-border, var(--vsp-border));
	--vsp-nl-accent: var(--vsp-newsletter-accent, var(--vsp-primary));
	position: relative; width: 100%; max-width: none; margin: 42px 0 34px; padding: 0; overflow: hidden;
	border: 1px solid var(--vsp-nl-border); border-radius: max(var(--vsp-radius),22px);
	background:
		radial-gradient(circle at 7% 12%,color-mix(in srgb,var(--vsp-nl-accent) 10%,transparent),transparent 18rem),
		linear-gradient(145deg,color-mix(in srgb,var(--vsp-nl-bg) 97%,var(--vsp-bg)) 0%,var(--vsp-nl-bg) 62%,color-mix(in srgb,var(--vsp-nl-bg) 92%,var(--vsp-bg)) 100%);
	box-shadow: var(--vsp-shadow-md);
}
.vsp-newsletter-box::before {
	content: ""; position: absolute; left: 0; right: 0; top: 0; height: 2px;
	background: linear-gradient(90deg,transparent,var(--vsp-nl-accent),color-mix(in srgb,var(--vsp-nl-accent) 65%,white),transparent); opacity: .9;
}
.vsp-newsletter-inner {
	display: grid; grid-template-columns: minmax(230px,.83fr) minmax(0,1.45fr);
	gap: clamp(30px,4vw,54px); align-items: center; padding: clamp(28px,3.6vw,42px);
}
.vsp-newsletter-header { text-align: left; margin: 0; align-self: start; padding-top: 4px; }
.vsp-newsletter-kicker {
	display: inline-flex; align-items: center; gap: 8px; margin-bottom: 13px; color: var(--vsp-nl-accent);
	font-size: 11px; font-weight: 850; letter-spacing: .11em; text-transform: uppercase;
}
.vsp-newsletter-kicker::before { content: ""; width: 22px; height: 1px; background: var(--vsp-nl-accent); }
.vsp-newsletter-title {
	margin: 0 0 10px; max-width: 340px; font-family: var(--vsp-font-heading); font-size: clamp(24px,2.5vw,32px);
	font-weight: 700; line-height: 1.12; letter-spacing: -.35px; color: var(--vsp-text);
}
/*
 * O título da newsletter pode ser um H3 dentro de .vsp-content. A regra editorial
 * genérica `.vsp-content h3 { margin-top: 1.4em; }` tem maior especificidade que
 * `.vsp-newsletter-title`; por isso zeramos o topo dentro do próprio componente.
 * Mantém o ritmo dos H3 do artigo intacto e evita desalinhamento das colunas.
 */
.vsp-content .vsp-newsletter-box .vsp-newsletter-title { margin-top: 0; }
.vsp-newsletter-text { margin: 0; max-width: 360px; color: var(--vsp-muted); font-size: 14.5px; line-height: 1.65; }
.vsp-newsletter-detail { display: flex; gap: 14px; flex-wrap: wrap; margin-top: 19px; color: var(--vsp-muted); font-size: 11.5px; font-weight: 650; }
.vsp-newsletter-detail span { display: inline-flex; align-items: center; gap: 6px; }
.vsp-newsletter-detail i { width: 5px; height: 5px; border-radius: 50%; background: var(--vsp-nl-accent); box-shadow: 0 0 0 4px color-mix(in srgb,var(--vsp-nl-accent) 8%,transparent); }
.vsp-newsletter-form { position: relative; min-width: 0; }
.vsp-newsletter-fields { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1.2fr); gap: 12px; }
.vsp-newsletter-field { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.vsp-newsletter-field label { font-size: 12px; font-weight: 750; color: var(--vsp-text); }
.vsp-newsletter-field input {
	width: 100%; min-height: 48px; padding: 0 14px; font-size: 15px; color: var(--vsp-text); background: var(--vsp-bg);
	border: 1px solid var(--vsp-nl-border); border-radius: max(10px,var(--vsp-radius)); outline: none;
	transition: border-color .22s var(--vsp-ease),box-shadow .22s var(--vsp-ease),background .22s var(--vsp-ease);
}
.vsp-newsletter-field input:hover { border-color: color-mix(in srgb,var(--vsp-nl-accent) 45%,var(--vsp-nl-border)); }
.vsp-newsletter-field input:focus { border-color: var(--vsp-nl-accent); box-shadow: 0 0 0 4px color-mix(in srgb,var(--vsp-nl-accent) 12%,transparent); }
.vsp-newsletter-consent { display: flex; align-items: flex-start; gap: 10px; margin: 15px 0 17px; color: var(--vsp-muted); font-size: 12px; line-height: 1.5; cursor: pointer; }
.vsp-newsletter-consent input[type="checkbox"] { width: 17px; height: 17px; flex: 0 0 auto; margin-top: 1px; accent-color: var(--vsp-nl-accent); cursor: pointer; }
.vsp-newsletter-consent a { color: var(--vsp-nl-accent); font-weight: 650; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 2px; }
.vsp-newsletter-submit { display: flex; margin-top: 0; }
.vsp-newsletter-submit .vsp-btn {
	width: 100%; min-height: 50px; justify-content: center; padding: 12px 22px; border: 1px solid var(--vsp-primary); border-radius: 999px;
	background: var(--vsp-primary); color: var(--vsp-on-primary); font-weight: 850;
	transition: transform .28s var(--vsp-ease),background .28s var(--vsp-ease),box-shadow .28s var(--vsp-ease);
}
.vsp-newsletter-submit .vsp-btn:hover { transform: translateY(-2px); background: var(--vsp-primary-dk); box-shadow: 0 12px 28px color-mix(in srgb,var(--vsp-primary) 15%,transparent); }
.vsp-newsletter-submit .vsp-btn:focus-visible { outline: 3px solid color-mix(in srgb,var(--vsp-primary-dk) 48%,transparent); outline-offset: 3px; }
.vsp-newsletter-form.is-loading .vsp-btn { opacity: .7; cursor: progress; }
.vsp-newsletter-message { margin: 14px 0 0; padding: 12px 14px; border-radius: var(--vsp-radius); font-size: 14px; line-height: 1.5; }
.vsp-newsletter-message.is-success { background: color-mix(in srgb,#1a7f37 14%,var(--vsp-bg)); border: 1px solid color-mix(in srgb,#1a7f37 34%,transparent); color: #1a7f37; }
.vsp-newsletter-message.is-error { background: color-mix(in srgb,#b32d2e 12%,var(--vsp-bg)); border: 1px solid color-mix(in srgb,#b32d2e 34%,transparent); color: #b32d2e; }
/* Honeypot: escondido visualmente, mas acessível a bots (não a leitores de tela). */
.vsp-newsletter-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

@media (max-width: 1040px) {
	.vsp-newsletter-inner { grid-template-columns: 1fr; gap: 25px; }
	.vsp-newsletter-title, .vsp-newsletter-text { max-width: none; }
}
@media (max-width: 680px) {
	.vsp-newsletter-box { border-radius: max(var(--vsp-radius),17px); margin: 30px 0; }
	.vsp-newsletter-inner { padding: 24px 20px; }
	.vsp-newsletter-fields { grid-template-columns: 1fr; }
	.vsp-newsletter-detail { display: none; }
}

/* =========================================================================
   CARDS RELACIONADOS ("Você também pode gostar") — título no máx. 4 linhas
   ========================================================================= */
.vsp-related .vsp-card__title {
	display: -webkit-box;
	-webkit-line-clamp: 4;
	line-clamp: 4;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
.vsp-related .vsp-card__title a { display: inline; }
.vsp-related .vsp-card__excerpt {
	display: -webkit-box;
	-webkit-line-clamp: 3;
	line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

/* FAQ: headings sem margens nativas dentro do acionador. */
.vsp-faq .vsp-faq__h { margin:0; font-size:inherit; line-height:inherit; font-weight:inherit; }

/* =========================================================================
   1.11 · Tipografia independente. Variáveis opcionais: nenhum layout muda
   até que seu respectivo controle seja preenchido em Versátil Pro → Estilos.
   ========================================================================= */
h1 { color: var(--vsp-type-h1-color, var(--vsp-text)); line-height: var(--vsp-type-h1-line, 1.25em); }
h2 { color: var(--vsp-type-h2-color, var(--vsp-text)); line-height: var(--vsp-type-h2-line, 1.25em); }
h3 { color: var(--vsp-type-h3-color, var(--vsp-text)); line-height: var(--vsp-type-h3-line, 1.25em); }
.vsp-content p { font-size: var(--vsp-type-paragraph-size, inherit); line-height: var(--vsp-type-paragraph-line, inherit); color: var(--vsp-type-paragraph-color, var(--vsp-text)); }
.vsp-content ul, .vsp-content ol { font-size: var(--vsp-type-list-size, inherit); line-height: var(--vsp-type-list-line, inherit); color: var(--vsp-type-list-color, inherit); }
/* No cabeçalho e rodapé, elementos específicos não herdam tamanhos do H1 nem
   do texto comum. Preserva estados hover/ativo e contrastes dos heróis. */
.vsp-header .vsp-site-title { font-size: var(--vsp-type-header-brand-size, clamp(20px, 3vw, 28px)); line-height: var(--vsp-type-header-brand-line, inherit); }
.vsp-header .vsp-site-title a { color: var(--vsp-type-header-brand-color, var(--vsp-text)); }
.vsp-menu > li > a { font-size: var(--vsp-type-header-menu-size, inherit); line-height: var(--vsp-type-header-menu-line, inherit); color: var(--vsp-header-link, var(--vsp-type-header-menu-color, var(--vsp-text))); }
.vsp-menu .sub-menu a { font-size: var(--vsp-type-header-submenu-size, inherit); line-height: var(--vsp-type-header-submenu-line, inherit); color: var(--vsp-header-dropdown-link, var(--vsp-type-header-submenu-color, var(--vsp-header-link, var(--vsp-text)))); }
.vsp-mobile-menu a { font-size: var(--vsp-type-header-mobile-size, 17px); line-height: var(--vsp-type-header-mobile-line, inherit); color: var(--vsp-header-link, var(--vsp-type-header-mobile-color, var(--vsp-text))); }
.vsp-mobile-menu .sub-menu a { font-size: var(--vsp-type-header-mobile-size, 15px); line-height: var(--vsp-type-header-mobile-line, inherit); color: var(--vsp-header-dropdown-link, var(--vsp-type-header-mobile-color, var(--vsp-header-link, var(--vsp-text)))); }
.vsp-topbar { font-size: var(--vsp-type-header-topbar-size, 13px); line-height: var(--vsp-type-header-topbar-line, inherit); color: var(--vsp-type-header-topbar-color, var(--vsp-footer-tx)); }
.vsp-footer { font-size: var(--vsp-type-footer-body-size, inherit); line-height: var(--vsp-type-footer-body-line, inherit); color: var(--vsp-type-footer-body-color, var(--vsp-footer-tx)); }
.vsp-footer .widget-title, .vsp-footer-links__title { font-size: var(--vsp-type-footer-title-size, 15px); line-height: var(--vsp-type-footer-title-line, inherit); color: var(--vsp-type-footer-title-color, var(--vsp-footer-heading)); }
.vsp-footer-menu a { font-size: var(--vsp-type-footer-menu-size, inherit); line-height: var(--vsp-type-footer-menu-line, inherit); color: var(--vsp-type-footer-menu-color, var(--vsp-footer-tx)); }
.vsp-footer .widget ul li a, .vsp-footer-links__link, .vsp-footer-contact__link, .vsp-footer-contact__text { font-size: var(--vsp-type-footer-list-size, inherit); line-height: var(--vsp-type-footer-list-line, inherit); color: var(--vsp-type-footer-list-color, var(--vsp-footer-link, var(--vsp-footer-tx))); }
.vsp-footer__copy { font-size: var(--vsp-type-footer-copy-size, 14px); line-height: var(--vsp-type-footer-copy-line, inherit); color: var(--vsp-type-footer-copy-color, var(--vsp-footer-tx)); }
/* Preferências individuais de H1/H2/H3 se propagam também aos templates que
   usam classes de título. Presets de herói mantêm as cores especiais em branco. */
.vsp-hero__title { line-height: var(--vsp-type-h1-line, 1.15em); }
.vsp-page__title, .vsp-single__title, .vsp-author-hero__name, .vsp-verbete__title { line-height: var(--vsp-type-h1-line, 1.25em); }
.vsp-content h2 { line-height: var(--vsp-type-h2-line, 1.25em); }
.vsp-content h3 { line-height: var(--vsp-type-h3-line, 1.25em); }

.vsp-footer .widget p { color: var(--vsp-type-footer-body-color, var(--vsp-footer-tx)); }

/* Estados de interação precedem personalizações de cor do estado normal. */
.vsp-menu .sub-menu a:hover, .vsp-menu .sub-menu a:focus-visible, .vsp-menu .sub-menu .current-menu-item > a { color: var(--vsp-header-dropdown-link-hover, var(--vsp-header-link-hover)); }
.vsp-mobile-menu a:hover, .vsp-mobile-menu a:focus-visible { color: var(--vsp-header-link-hover); }

/* =========================================================================
   SINGLE · PRESET PROFISSIONAL (posts, glossário e notícias)
   ========================================================================= */

/* Primeira dobra compartilhada: a composição é independente do preset do corpo. */
.vsp-single-hero {
	position: relative; z-index: 2;
	isolation: isolate;
	width: 100%;
}
.vsp-single-hero__inner { position: relative; z-index: 2; }
.vsp-single-hero__copy { min-width: 0; }
.vsp-single-hero__kicker,
.vsp-single-minhead__kicker {
	display: flex; flex-wrap: wrap; align-items: center; gap: 10px;
	margin-bottom: 18px;
}
.vsp-single-hero__pill {
	display: inline-flex; align-items: center; min-height: 0; padding: 4px 20px;
	border: 1px solid rgba(255,255,255,.22); border-radius: 999px;
	background: rgba(255,255,255,.10); color: #fff; font-size: 13px; font-weight: 800;
	backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px);
}
.vsp-single-hero__type,
.vsp-single-minhead__type {
	font-size: 13px; font-weight: 750; letter-spacing: .06em; text-transform: uppercase;
	color: var(--vsp-muted);
}
.vsp-single-hero__title,
.vsp-single-minhead__title {
	font-family: var(--vsp-font-heading); font-size: var(--vsp-fs-h1); line-height: var(--vsp-type-h1-line, 1.18em);
	letter-spacing: -.025em; text-wrap: balance;
}
.vsp-single-hero__dek,
.vsp-single-minhead__dek {
	font-size: clamp(17px, 1.5vw, 19px); line-height: 1.7; text-wrap: balance;
}
.vsp-single-hero__meta {
	display: flex; flex-wrap: wrap; align-items: center; gap: 10px 18px;
	font-size: 16px; color: var(--vsp-muted);
}
.vsp-single-hero__author { display: inline-flex; align-items: center; gap: 9px; font-weight: 750; }
.vsp-single-hero__author a { color: inherit; }
.vsp-single-hero__avatar { width: 38px; height: 38px; border-radius: 50%; object-fit: cover; }

/* Imagem destacada como fundo: primeira dobra centralizada. */
.vsp-single-hero--background {
	min-height: var(--vsp-single-hero-h, 80vh);
	display: grid; place-items: center;
	background-color: var(--vsp-single-hero-bg, color-mix(in srgb, var(--vsp-primary) 28%, #071015));
	background-size: cover; background-position: center;
	color: #fff; overflow: hidden;
}
.vsp-single-hero--background::before {
	content: ""; position: absolute; inset: 0; z-index: -2;
	background: var(--vsp-single-hero-overlay, #0d0f13);
	opacity: var(--vsp-single-hero-opacity, .5);
}
.vsp-single-hero--background::after {
	content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
	background:
		linear-gradient(180deg, rgba(0,0,0,.06) 0%, rgba(0,0,0,.16) 48%, rgba(0,0,0,.58) 100%),
		radial-gradient(circle at 50% 44%, transparent 0%, rgba(0,0,0,.10) 45%, rgba(0,0,0,.42) 100%);
}
.vsp-single-hero--background .vsp-single-hero__inner {
	width: min(900px, calc(100% - 40px)); padding: 62px 0 78px; text-align: center;
}
.vsp-single-hero--background .vsp-breadcrumbs { margin-bottom: 28px; }
.vsp-single-hero--background .vsp-breadcrumbs__list { justify-content: center; }
.vsp-single-hero--background .vsp-breadcrumbs__item,
.vsp-single-hero--background .vsp-breadcrumbs__item a,
.vsp-single-hero--background .vsp-breadcrumbs__item [aria-current] { color: rgba(255,255,255,.76); }
.vsp-single-hero--background .vsp-breadcrumbs__sep { color: rgba(255,255,255,.38); }
.vsp-single-hero--background .vsp-single-hero__kicker { justify-content: center; }
.vsp-single-hero--background .vsp-single-hero__type { color: rgba(255,255,255,.72); }
.vsp-single-hero--background .vsp-single-hero__title { max-width: 860px; margin: 0 auto 20px; color: #fff; text-shadow: 0 4px 28px rgba(0,0,0,.34); }
.vsp-single-hero--background .vsp-single-hero__dek { max-width: 760px; margin: 0 auto 26px; color: rgba(255,255,255,.86); text-shadow: 0 2px 18px rgba(0,0,0,.26); }
.vsp-single-hero--background .vsp-single-hero__meta { justify-content: center; color: rgba(255,255,255,.74); }
.vsp-single-hero--background .vsp-single-hero__author { color: #fff; }
.vsp-single-hero--background .vsp-single-hero__avatar { border: 1px solid rgba(255,255,255,.24); }

/* Primeira dobra dividida: texto à esquerda, imagem à direita. */
.vsp-single-hero--split {
	min-height: clamp(430px, var(--vsp-single-hero-h, 72vh), 780px);
	display: flex; align-items: center;
	background: var(--vsp-single-hero-bg, var(--vsp-bg)); color: var(--vsp-text);
	border-bottom: 1px solid var(--vsp-border);
}
.vsp-single-hero--split .vsp-single-hero__inner {
	display: grid; grid-template-columns: minmax(0,1.05fr) minmax(320px,.95fr);
	gap: clamp(36px,5vw,72px); align-items: center; padding-block: clamp(48px,7vw,88px);
}
.vsp-single-hero--split.no-image .vsp-single-hero__inner { grid-template-columns: minmax(0,820px); justify-content: start; }
.vsp-single-hero--split .vsp-single-hero__copy { max-width: 690px; }
.vsp-single-hero--split .vsp-single-hero__pill {
	border-color: color-mix(in srgb,var(--vsp-primary) 26%,var(--vsp-border));
	background: color-mix(in srgb,var(--vsp-primary) 10%,transparent);
	color: var(--vsp-primary-dk);
	backdrop-filter: none; -webkit-backdrop-filter: none;
}
.vsp-single-hero--split .vsp-single-hero__title { margin: 0 0 18px; color: var(--vsp-text); }
.vsp-single-hero--split .vsp-single-hero__dek { margin: 0 0 24px; color: var(--vsp-muted); }
.vsp-single-hero__media {
	margin: 0; overflow: hidden; border-radius: max(var(--vsp-radius),18px);
	background: var(--vsp-surface); border: 1px solid var(--vsp-border); box-shadow: var(--vsp-shadow-md);
}
.vsp-single-hero__img { width: 100%; min-height: 360px; max-height: 560px; object-fit: cover; }
.vsp-single-hero__caption { padding: 10px 14px; color: var(--vsp-muted); background: var(--vsp-surface); text-align: center; font-size: 13px; }

/* Primeira dobra minimalista, usada dentro do container do preset escolhido. */
.vsp-single-minhead { max-width: 880px; padding-top: 46px; margin-bottom: 28px; }
.vsp-single-minhead .vsp-breadcrumbs { margin-bottom: 26px; }
.vsp-single-minhead__title { margin: 0 0 16px; }
.vsp-single-minhead__dek { max-width: 780px; margin: 0 0 22px; color: var(--vsp-muted); }
.vsp-single-minhead__media { margin: 0 0 38px; overflow: hidden; border-radius: max(var(--vsp-radius),18px); border: 1px solid var(--vsp-border); box-shadow: var(--vsp-shadow-md); }
.vsp-single-minhead__img { width: 100%; height: auto; }
.vsp-single-minhead__caption { padding: 10px 14px; color: var(--vsp-muted); background: var(--vsp-surface); text-align: center; font-size: 13px; }

/* Plano editorial profissional: continua usando a cor de fundo real do tema. */
.vsp-single-professional-bg {
	position: relative; z-index: 0; isolation: isolate;
	background-color: var(--vsp-bg); padding-bottom: 74px;
}
.vsp-single-professional-bg::before {
	content: ""; position: fixed; inset: 0; z-index: 0; pointer-events: none;
	background-repeat: no-repeat; transform: translateZ(0);
}
.vsp-single-professional-bg[data-vsp-single-bg-effect="none"]::before { background: none; }
.vsp-single-professional-bg[data-vsp-single-bg-effect="aura"]::before {
	background:
		radial-gradient(circle at 12% 28%, color-mix(in srgb,var(--vsp-single-bg-color,var(--vsp-primary)) var(--vsp-single-bg-a),transparent) 0%, transparent 36rem),
		radial-gradient(circle at 88% 70%, color-mix(in srgb,var(--vsp-single-bg-color,var(--vsp-primary)) var(--vsp-single-bg-b),transparent) 0%, transparent 34rem),
		radial-gradient(circle at 52% 105%, color-mix(in srgb,var(--vsp-single-bg-color,var(--vsp-primary)) var(--vsp-single-bg-c),transparent) 0%, transparent 32rem);
}
.vsp-single-professional-bg[data-vsp-single-bg-effect="ambient"]::before {
	background:
		radial-gradient(ellipse at 16% 22%, color-mix(in srgb,var(--vsp-single-bg-color,var(--vsp-primary)) var(--vsp-single-bg-b),transparent) 0%, transparent 42rem),
		linear-gradient(145deg, color-mix(in srgb,var(--vsp-single-bg-color,var(--vsp-primary)) var(--vsp-single-bg-c),transparent) 0%, transparent 34%, transparent 66%, color-mix(in srgb,var(--vsp-single-bg-color,var(--vsp-primary)) var(--vsp-single-bg-b),transparent) 100%);
}
.vsp-single-professional-bg[data-vsp-single-bg-effect="toplight"]::before {
	inset: var(--vsp-single-header-bottom,0px) 0 0;
	background: radial-gradient(ellipse 78% 34rem at 50% 0%, color-mix(in srgb,var(--vsp-single-bg-color,var(--vsp-primary)) var(--vsp-single-bg-a),transparent) 0%, color-mix(in srgb,var(--vsp-single-bg-color,var(--vsp-primary)) var(--vsp-single-bg-c),transparent) 42%, transparent 78%);
}
.vsp-single-professional,
.vsp-single-professional__after { position: relative; z-index: 1; }
.vsp-single-professional { padding-top: 42px; }

/* Resumo rápido: integrado à transição do hero, quando existir. */
.vsp-single-professional__summary .vsp-quick-facts {
	position: relative; z-index: 4; margin: 0 0 42px; padding: 20px;
	background: var(--vsp-surface); border: 1px solid var(--vsp-border); box-shadow: var(--vsp-shadow-sm);
}
.vsp-singlehero-background .vsp-single-professional__summary .vsp-quick-facts { margin-top: -72px; }
.vsp-single-professional__summary .vsp-quick-facts__item {
	padding: 14px; border-radius: max(var(--vsp-radius-sm),10px); background: var(--vsp-surface-2);
}

/* Estrutura usa integralmente o container configurado pelo usuário. */
.vsp-single-professional__layout,
.vsp-page-toc-layout {
	display: grid; grid-template-columns: minmax(190px,235px) minmax(0,1fr);
	gap: clamp(28px,3vw,42px); width: 100%; align-items: start;
}
.vsp-single-professional__layout--no-toc { grid-template-columns: minmax(0,1fr); }
.vsp-single-professional__article { min-width: 0; width: 100%; }
.vsp-page-toc-layout > .vsp-page__content { min-width: 0; width: 100%; }
.vsp-single-professional__aside,
.vsp-page-toc-layout__aside {
	position: sticky; top: calc(var(--vsp-single-header-bottom,0px) + 20px);
	align-self: start; min-width: 0;
	max-height: calc(100dvh - var(--vsp-single-header-bottom,0px) - 38px);
	display: flex; flex-direction: column; padding-top: 6px;
	transition: top .16s linear, max-height .16s linear;
}

/* TOC profissional: sem card, sem scrollbar visível, sem blur/opacidade. */
.vsp-toc--professional {
	margin: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none;
	overflow: hidden; min-height: 0; display: flex; flex-direction: column; flex: 1 1 auto;
}
.vsp-toc--professional .vsp-toc__head {
	flex: 0 0 auto; justify-content: flex-start; gap: 8px; width: 100%;
	padding: 0 0 12px; background: transparent; color: var(--vsp-muted); border: 0;
	font-size: 12px; font-weight: 850; letter-spacing: .08em; text-transform: uppercase;
	cursor: default;
}
.vsp-toc--professional .vsp-toc__head::before { content: ""; width: 20px; height: 2px; flex: 0 0 auto; background: var(--vsp-primary); }
.vsp-toc--professional .vsp-toc__toggle { display: none; margin-left: auto; padding: 5px; border: 0; background: transparent; color: var(--vsp-muted); cursor: pointer; }
.vsp-toc--professional .vsp-toc__list {
	min-width: 0; min-height: 0; max-height: none; flex: 1 1 auto;
	display: flex; flex-direction: column; gap: 0;
	padding: 10px 12px 10px 2px; overflow-y: auto; overflow-x: hidden;
	overscroll-behavior: contain; scroll-behavior: smooth;
	scrollbar-width: none; opacity: 1;
}
.vsp-toc--professional .vsp-toc__list::-webkit-scrollbar { display: none; width: 0; height: 0; }
.vsp-toc--professional[data-collapsed="true"] .vsp-toc__list { max-height: none; padding: 10px 12px 10px 2px; opacity: 1; }
.vsp-toc--professional .vsp-toc__item { min-width: 0; padding: 0; }
/*
 * A indentação dos subtópicos deve deslocar apenas o TEXTO.
 * A linha/borda esquerda precisa permanecer no mesmo eixo visual
 * para todos os itens, como na demo aprovada.
 */
.vsp-toc--professional .vsp-toc__item--h3 { padding-left: 0; }
.vsp-toc--professional .vsp-toc__item--h3 .vsp-toc__link { padding-left: 26px; }
.vsp-toc--professional .vsp-toc__link {
	--vsp-toc-size: 14px;
	position: relative; display: block; min-width: 0;
	padding: 8px 5px 8px 13px; border: 0; border-left: 2px solid var(--vsp-border); border-radius: 0;
	background: transparent; color: var(--vsp-muted);
	font-size: var(--vsp-toc-size); line-height: 1.4; font-weight: 500;
	opacity: 1; filter: none; transform: none;
	white-space: normal; overflow-wrap: anywhere; text-wrap: pretty;
	transition: color .28s var(--vsp-ease), border-color .28s var(--vsp-ease), font-size .34s var(--vsp-ease), font-weight .28s var(--vsp-ease);
}
.vsp-toc--professional .vsp-toc__link[data-depth="0"] { --vsp-toc-size: 15.25px; }
.vsp-toc--professional .vsp-toc__link[data-depth="1"] { --vsp-toc-size: 14.70px; }
.vsp-toc--professional .vsp-toc__link[data-depth="2"] { --vsp-toc-size: 14.30px; }
.vsp-toc--professional .vsp-toc__link[data-depth="3"] { --vsp-toc-size: 14.00px; }
.vsp-toc--professional .vsp-toc__link[data-depth="4"] { --vsp-toc-size: 13.80px; }
.vsp-toc--professional .vsp-toc__link[data-depth="5"] { --vsp-toc-size: 13.70px; }
.vsp-toc--professional .vsp-toc__link:hover,
.vsp-toc--professional .vsp-toc__link:focus-visible {
	--vsp-toc-size: 15px; color: var(--vsp-primary-dk); background: transparent;
	font-weight: 720; opacity: 1; filter: none; transform: none;
}
.vsp-toc--professional .vsp-toc__link.is-active,
.vsp-toc--professional .vsp-toc__link[aria-current="location"] {
	--vsp-toc-size: 15.45px; color: var(--vsp-primary-dk); border-left-color: var(--vsp-primary);
	background: transparent; font-weight: 820; opacity: 1; filter: none; transform: none; letter-spacing: -.01em;
}
.vsp-toc--professional .vsp-toc__link.is-active::after,
.vsp-toc--professional .vsp-toc__link[aria-current="location"]::after {
	content: ""; position: absolute; left: -2px; top: 50%; width: 2px; height: 58%;
	border-radius: 999px; background: var(--vsp-primary); transform: translateY(-50%);
}
.vsp-toc--professional .vsp-toc__link:focus-visible { outline: 2px solid var(--vsp-primary); outline-offset: 3px; }
.vsp-toc--professional .vsp-toc__list[data-label-mode="line"] .vsp-toc__link {
	white-space: nowrap; overflow: hidden; text-overflow: ellipsis; overflow-wrap: normal;
}

/* Compartilhamento compacto abaixo do índice. */
.vsp-share-compact {
	position: relative; flex: 0 0 auto;
	/* Sempre 2 botões lado a lado. Nunca empilha dentro do bloco compacto. */
	display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 6px;
	margin-top: 18px; padding-top: 18px; border-top: 1px solid var(--vsp-border);
}
.vsp-share-compact__btn {
	min-width: 0; min-height: 42px; padding: 9px 3px;
	border: 1px solid var(--vsp-border); border-radius: max(var(--vsp-radius-sm),10px);
	background: transparent; color: var(--vsp-muted); cursor: pointer;
	display: inline-flex; align-items: center; justify-content: center; gap: 5px;
	font-size: 11px; font-weight: 650; line-height: 1.2; letter-spacing: -.01em;
	white-space: nowrap;
	transition: transform .3s var(--vsp-ease), border-color .3s var(--vsp-ease), color .3s var(--vsp-ease), background .3s var(--vsp-ease);
}
.vsp-share-compact__btn > span {
	min-width: 0; white-space: nowrap; word-break: keep-all; overflow-wrap: normal;
}
.vsp-share-compact__btn .vsp-icon { width: 20px; height: 20px; flex: 0 0 20px; }
.vsp-share-compact__btn--share .vsp-icon { width: 21px; height: 21px; flex-basis: 21px; }
.vsp-share-compact__btn:hover,
.vsp-share-compact__btn:focus-visible { transform: translateY(-2px); border-color: color-mix(in srgb,var(--vsp-primary) 48%,var(--vsp-border)); color: var(--vsp-primary-dk); background: color-mix(in srgb,var(--vsp-primary) 6%,transparent); }
.vsp-share-compact__btn.is-copied { border-color: var(--vsp-primary); color: var(--vsp-primary-dk); background: color-mix(in srgb,var(--vsp-primary) 10%,transparent); }
.vsp-share-compact__menu {
	position: absolute; z-index: 12; left: 0; right: 0; top: calc(100% + 8px);
	display: flex; align-items: center; justify-content: center; gap: 7px;
	padding: 10px; border: 1px solid var(--vsp-border); border-radius: max(var(--vsp-radius-sm),12px);
	background: var(--vsp-surface); box-shadow: var(--vsp-shadow-md);
}
.vsp-share-compact__menu[hidden] { display: none; }
.vsp-share-compact__network {
	width: 36px; height: 36px; display: inline-flex; align-items: center; justify-content: center;
	border: 1px solid var(--vsp-border); border-radius: 50%; color: var(--vsp-muted); background: var(--vsp-bg);
	transition: transform .25s var(--vsp-ease), color .25s var(--vsp-ease), border-color .25s var(--vsp-ease);
}
.vsp-share-compact__network:hover { transform: translateY(-2px); color: var(--vsp-primary-dk); border-color: var(--vsp-primary); }
.vsp-single-professional__mobile-actions { margin: 0 0 26px; }
.vsp-single-professional__mobile-actions .vsp-share-compact { max-width: 300px; margin-top: 0; padding-top: 0; border-top: 0; }

/* Ritmo editorial do conteúdo. */
.vsp-single-professional .vsp-pubinfo { margin: 0 0 28px; background: color-mix(in srgb,var(--vsp-primary) 4%,var(--vsp-surface)); }
.vsp-professional-content { font-size: clamp(16px,1.05vw,18px); line-height: var(--vsp-lh); }
.vsp-professional-content > p:first-child { font-size: clamp(18px,1.35vw,21px); line-height: 1.72; color: var(--vsp-text); }
.vsp-professional-content h2 { position: relative; margin-top: 2.15em; }
.vsp-professional-content h2::before {
	content: ""; display: block; width: 38px; height: 2px; margin-bottom: 13px;
	background: linear-gradient(90deg,var(--vsp-primary),transparent);
}
.vsp-professional-content blockquote {
	position: relative; margin: 34px 0; padding: 28px 32px 28px 36px;
	border: 1px solid color-mix(in srgb,var(--vsp-primary) 18%,var(--vsp-border)); border-left: 1px solid color-mix(in srgb,var(--vsp-primary) 18%,var(--vsp-border));
	border-radius: max(var(--vsp-radius),18px);
	background: linear-gradient(135deg,color-mix(in srgb,var(--vsp-primary) 8%,var(--vsp-surface)),var(--vsp-surface));
}
.vsp-single-professional .vsp-author-box { border-radius: max(var(--vsp-radius),22px); }
.vsp-single-professional__after { padding-top: 10px; }
.vsp-single-professional__after .vsp-related,
.vsp-single-professional__after .news-related,
.vsp-single-professional__after .vsp-verbete__related { margin-top: 48px; }

/* O preset Profissional não herda limites internos menores que o container. */
.vsp-singlepreset-professional .vsp-content-wrap,
.vsp-singlepreset-professional .vsp-primary { max-width: none; }

@media (max-width: 1040px) {
	.vsp-single-hero--split .vsp-single-hero__inner { grid-template-columns: 1fr 1fr; gap: 30px; }
	.vsp-single-professional__layout,
	.vsp-page-toc-layout { display: block; }
	.vsp-single-professional__aside,
	.vsp-page-toc-layout__aside {
		position: static; max-height: none; margin: 0 0 34px; padding: 0 0 24px;
		border-bottom: 1px solid var(--vsp-border);
	}
	.vsp-toc--professional { overflow: visible; }
	.vsp-toc--professional .vsp-toc__toggle { display: inline-flex; }
	.vsp-toc--professional .vsp-toc__list { flex: none; max-height: 300px; }
	.vsp-toc--professional[data-collapsed="true"] .vsp-toc__list { max-height: 0; padding-block: 0; opacity: 0; overflow: hidden; }
	.vsp-share-compact { max-width: 320px; }
}

@media (max-width: 760px) {
	.vsp-single-hero--background { min-height: var(--vsp-single-hero-h,72svh); }
	.vsp-single-hero--background .vsp-single-hero__inner { width: min(100% - 28px,900px); padding: 48px 0 66px; }
	.vsp-single-hero--split { min-height: auto; }
	.vsp-single-hero--split .vsp-single-hero__inner { display: flex; flex-direction: column; align-items: stretch; padding-block: 36px 44px; }
	.vsp-single-hero--split .vsp-single-hero__copy { max-width: none; }
	.vsp-single-hero__img { min-height: 240px; max-height: 420px; }
	.vsp-single-hero__meta { gap: 8px 13px; }
	.vsp-single-minhead { padding-top: 32px; }
	.vsp-single-professional { padding-top: 30px; }
	.vsp-singlehero-background .vsp-single-professional__summary .vsp-quick-facts { margin-top: -52px; }
	.vsp-toc--professional .vsp-toc__list { max-height: 270px; }
	.vsp-share-compact { max-width: none; }
	.vsp-professional-content h2::before { margin-bottom: 10px; }
}

@media (prefers-reduced-motion: reduce) {
	.vsp-toc--professional .vsp-toc__list { scroll-behavior: auto; }
	.vsp-toc--professional .vsp-toc__link { transition: none; }
	.vsp-single-professional__aside,
	.vsp-page-toc-layout__aside { transition: none; }
}
