/* hello hoovie · CSS de base
   Cores e tipos vêm dos globais do Kit do Elementor (--e-global-*). Aqui só o que o Kit não cobre.
   Nenhum valor de cor é digitado: tudo aponta para as variáveis globais. */

:root {
	--hv-marinho: var(--e-global-color-primary, #1A1F4D);
	--hv-roxo: var(--e-global-color-secondary, #812990);
	--hv-texto: var(--e-global-color-text, #33333B);
	--hv-magenta: var(--e-global-color-accent, #D1007C);
	--hv-magenta-link: var(--e-global-color-hvmglink, #C8007A);
	--hv-magenta-hover: var(--e-global-color-hvmghover, #A80066);
	--hv-lilas: var(--e-global-color-hvlilas, #F4E6EF);
	--hv-fundo: var(--e-global-color-hvfundo, #FBF7F8);
	--hv-texto-suave: var(--e-global-color-hvtxsuave, #5C5C66);
	--hv-marinho-claro: var(--e-global-color-hvmarclaro, #D8D9EA);
	--hv-linha: var(--e-global-color-hvlinha, #D9D2DA);
	--hv-linha-suave: var(--e-global-color-hvlinhasv, #EEE8EE);

	--hv-dur: 400ms;
	--hv-ease: cubic-bezier(.2, .6, .25, 1);
	--hv-stagger: 120ms;
}

body {
	font-family: Inter, system-ui, -apple-system, "Segoe UI", sans-serif;
	font-optical-sizing: auto;
	-webkit-font-smoothing: antialiased;
	background-color: var(--hv-fundo);
	color: var(--hv-texto);
}

/* Títulos equilibrados: o texto em espanhol costuma ser o mais longo (PDF p. 5). */
h1, h2, h3, .elementor-heading-title { text-wrap: balance; }
p { text-wrap: pretty; }

/* Assinatura da marca: "quem viaja" sempre roxo, "quem gerencia" sempre magenta. */
.hv-roxo { color: var(--hv-roxo); }
.hv-magenta { color: var(--hv-magenta); }
.hv-fina { font-weight: 200; }
.hv-hero-lines .hv-fina { display: block; }

/* Links de texto ("Ler o caso →"): sublinhado 1,5 px, hover magenta escuro. */
.hv-link a,
a.hv-link {
	color: var(--hv-magenta-link);
	font-weight: 500;
	text-decoration: underline;
	text-decoration-thickness: 1.5px;
	text-underline-offset: 4px;
	transition: color 150ms var(--hv-ease);
}
.hv-link a:hover,
a.hv-link:hover { color: var(--hv-magenta-hover); }
.hv-on-dark .hv-link a,
.hv-on-dark a.hv-link { color: #fff; }

/* Foco visível em tudo que é interativo (WCAG 2.1 AA). */
:where(a, button, [role="tab"], summary, input, select, textarea):focus-visible {
	outline: 2px solid var(--hv-magenta);
	outline-offset: 3px;
	border-radius: 4px;
}
.hv-on-dark :where(a, button, [role="tab"]):focus-visible { outline-color: #fff; }

/* ---------- Animações por classe ----------
   O estado inicial só se aplica com JS ativo (html.hv-js) e fora do editor.
   prefers-reduced-motion: sem movimento, só aparece. */

html.hv-js body:not(.elementor-editor-active) .hv-reveal:not(.hv-in),
html.hv-js body:not(.elementor-editor-active) .hv-stagger:not(.hv-in) > *,
html.hv-js body:not(.elementor-editor-active) .hv-stagger:not(.hv-in) > .e-con-inner > * {
	opacity: 0;
	transform: translateY(24px);
}
.hv-reveal,
.hv-stagger > *,
.hv-stagger > .e-con-inner > * {
	transition: opacity var(--hv-dur) var(--hv-ease), transform var(--hv-dur) var(--hv-ease);
	transition-delay: calc(var(--hv-i, 0) * var(--hv-stagger));
}

/* Imagem assenta de 104% (105% no hero da Home) para 100%. Aplicar no widget de imagem. */
.hv-settle { overflow: hidden; }
.hv-settle img { transition: transform 1200ms var(--hv-ease); transform: scale(1); }
html.hv-js body:not(.elementor-editor-active) .hv-settle:not(.hv-in) img { transform: scale(1.04); }
html.hv-js body:not(.elementor-editor-active) .hv-settle.hv-settle-105:not(.hv-in) img { transform: scale(1.05); }

/* Hero: linha Bold entra, depois a fina (300 ms). */
.hv-hero-lines .hv-line { display: block; transition: opacity 500ms var(--hv-ease), transform 500ms var(--hv-ease); }
.hv-hero-lines .hv-line + .hv-line { transition-delay: 300ms; }
html.hv-js body:not(.elementor-editor-active) .hv-hero-lines:not(.hv-in) .hv-line { opacity: 0; transform: translateY(24px); }

/* Infinito: metades entram de lados opostos (40 px). */
.hv-infinity .hv-inf-left,
.hv-infinity .hv-inf-right { transition: opacity 700ms var(--hv-ease), transform 700ms var(--hv-ease); }
html.hv-js body:not(.elementor-editor-active) .hv-infinity:not(.hv-in) .hv-inf-left { opacity: 0; transform: translateX(-40px); }
html.hv-js body:not(.elementor-editor-active) .hv-infinity:not(.hv-in) .hv-inf-right { opacity: 0; transform: translateX(40px); }

/* Texto que acende palavra a palavra (45% → 100% de branco). */
.hv-words .hv-w { opacity: var(--hv-w-op, 1); transition: opacity 200ms linear; }

/* Número animado: o valor final fica no HTML para SEO e leitor de tela. */
.hv-sr {
	position: absolute !important;
	width: 1px; height: 1px; padding: 0; margin: -1px;
	overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}

@media (prefers-reduced-motion: reduce) {
	.hv-reveal, .hv-stagger > *, .hv-stagger > .e-con-inner > *,
	.hv-settle img, .hv-hero-lines .hv-line, .hv-infinity .hv-inf-left, .hv-infinity .hv-inf-right {
		transition: none !important;
		transform: none !important;
		opacity: 1 !important;
	}
	.hv-words .hv-w { opacity: 1 !important; }
}

/* ---------- Pesos dentro de títulos (o título usa um global; o trecho muda só o peso) ---------- */
.hv-w200 { font-weight: 200; }
.hv-w300 { font-weight: 300; }
.hv-w500 { font-weight: 500; }
.hv-w600 { font-weight: 600; }
.hv-w700 { font-weight: 700; }
.hv-block { display: block; }
.hv-roxo-claro { color: var(--e-global-color-hvroxoclaro, #E7A9EF); }
.hv-magenta-claro { color: var(--e-global-color-hvmgclaro, #FF8ACB); }

/* ---------- Header sobre a primeira dobra ---------- */
.hv-header { position: absolute; top: 0; left: 0; right: 0; z-index: 50; }
.admin-bar .hv-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .hv-header { top: 46px; } }
.hv-header--solid { position: relative; }

/* Dobras com foto (hero, manifesto, fechamento, faixas de formulário): foto, véu e enquadramento por dispositivo
   ficam no próprio container, em Estilo → Plano de fundo e Sobreposição de fundo. Nenhum CSS aqui. */

/* ---------- Infinito em duas metades ---------- */
.hv-infinity { display: flex; justify-content: center; align-items: center; }
.hv-infinity .hv-inf-left, .hv-infinity .hv-inf-right { flex: 1 1 50%; }
.hv-infinity img { display: block; width: 100%; height: auto; }

/* ---------- Grade de 4 colunas tipográficas com divisória no topo ---------- */
.hv-cols > .e-con-inner > .e-con, .hv-cols > .e-con { border-top: 1px solid var(--hv-linha); padding-top: 24px !important; }
.hv-on-dark.hv-cols > .e-con-inner > .e-con, .hv-on-dark .hv-cols > .e-con { border-top-color: rgba(255,255,255,.3); }

/* ---------- Cards ---------- */
.hv-card { background: #fff; border-radius: 24px; }

/* ---------- Abas (Nested Tabs) ---------- */
.hv-tabs .e-n-tabs-heading { background: #F2EEF2; border-radius: 999px; padding: 6px; gap: 4px !important; width: max-content; max-width: 100%; overflow-x: auto; }
.hv-tabs .e-n-tab-title { border: 0 !important; border-radius: 999px !important; padding: 8px 18px !important; background: transparent !important; color: var(--hv-marinho) !important; font: 500 15px/22px Inter, system-ui, sans-serif !important; white-space: nowrap; }
.hv-tabs .e-n-tab-title[aria-selected="true"] { background: var(--hv-marinho) !important; color: #fff !important; }
.hv-tabs .e-n-tab-title:hover:not([aria-selected="true"]) { background: rgba(26,31,77,.06) !important; }
.hv-tabs--perfil .e-n-tab-title:first-child[aria-selected="true"] { background: var(--hv-roxo) !important; }
.hv-tabs .e-n-tabs-content > .e-con { border: 0 !important; }
.hv-tabs--right .e-n-tabs-heading { margin-left: auto; }

/* ---------- FAQ (Nested Accordion) ---------- */
.hv-faq .e-n-accordion-item { border-top: 1px solid var(--hv-linha); }
.hv-faq .e-n-accordion-item:last-child { border-bottom: 1px solid var(--hv-linha); }
.hv-faq .e-n-accordion-item-title { padding: 24px 0 !important; border: 0 !important; background: transparent !important; justify-content: space-between; }
.hv-faq .e-n-accordion-item-title-text { font: 500 18px/26px Inter, system-ui, sans-serif; color: var(--hv-marinho); }
.hv-faq .e-n-accordion-item-title-icon { width: 40px !important; min-width: 40px; height: 40px; box-sizing: border-box; border: 1px solid var(--hv-marinho); border-radius: 999px; display: inline-flex !important; align-items: center; justify-content: center; flex: none; }
.hv-faq .e-n-accordion-item-title-icon > span { display: inline-flex; align-items: center; justify-content: center; }
.hv-faq .e-n-accordion-item-title-icon svg, .hv-faq .e-n-accordion-item-title-icon i { width: 12px; height: 12px; font-size: 12px; fill: var(--hv-marinho); color: var(--hv-marinho); }
.hv-faq .e-n-accordion-item > .e-con { border: 0 !important; padding: 0 0 28px !important; }


/* ---------- Botão como link de texto ---------- */
.hv-btn-link .elementor-button { background: transparent !important; padding: 0 !important; text-decoration: underline; text-decoration-thickness: 1.5px; text-underline-offset: 4px; min-height: 0; border-radius: 0 !important; }
.hv-link .elementor-heading-title { text-decoration: underline; text-decoration-thickness: 1.5px; text-underline-offset: 4px; }
.hv-link .elementor-heading-title a { color: inherit; }
.hv-link .elementor-heading-title a:hover { color: var(--hv-magenta-hover); }
.hv-on-dark .hv-link .elementor-heading-title, .hv-link.hv-link--claro .elementor-heading-title { color: #fff !important; }

/* ---------- Moldura de navegador com tela do produto ---------- */
.hv-browser { border-radius: 16px; overflow: hidden; background: #fff; box-shadow: 0 30px 70px rgba(26,31,77,.3); }
.hv-browser::before { content: ""; display: block; height: 36px; background: #F2EEF2 radial-gradient(circle at 18px 18px, #D3CBD4 5px, transparent 6px) , radial-gradient(circle at 36px 18px, #D3CBD4 5px, transparent 6px); }
.hv-browser img { display: block; width: 100%; height: auto; }
.hv-screen img { box-shadow: 0 12px 40px rgba(26,31,77,.12); border-radius: 16px; }

/* ---------- Tabela 2 colunas (Produto: O que trava / Como resolve) ---------- */
.hv-compare .hv-compare__row { border-bottom: 1px solid var(--hv-linha-suave); }

/* ---------- Pílula de etiqueta ---------- */
.hv-pill-tag .elementor-heading-title { display: inline-block; border: 1px solid currentColor; border-radius: 999px; padding: 1px 10px; }
.hv-pill-tag--dashed .elementor-heading-title { border-style: dashed; }
.hv-pill-tag--solid .elementor-heading-title { background: var(--hv-marinho); color: #fff !important; border-color: var(--hv-marinho); }

/* ---------- Seções escondidas quando o conteúdo dinâmico está vazio ---------- */
.hv-hide-empty:has(.hv-empty-flag) { display: none !important; }

/* ---------- Barra fixa de conversão (Demonstração) ---------- */
.hv-sticky-bar { position: sticky; bottom: 24px; z-index: 40; }

/* ---------- Mobile: grades viram coluna ---------- */
@media (max-width: 767px) {
	.hv-m-stack { flex-direction: column !important; }
}
.e-con.hv-auto { --width: auto; width: auto; flex: none; }

/* ---------- Tablet em pé ----------
   Nenhum container passa da largura da tela (ex.: cartão do vídeo com 1080 px).
   Divisões em duas colunas (.hv-split, geradas pelo pacote) empilham entre 768 e 900 px,
   onde as colunas ficariam estreitas demais. No celular, o empilhamento vem do próprio Elementor. */
.e-con { max-width: 100%; }
@media (min-width: 768px) and (max-width: 900px) {
	.e-con.hv-split { flex-direction: column !important; align-items: stretch !important; }
	.e-con.hv-split > .e-con, .e-con.hv-split > .e-con-inner > .e-con { --width: 100%; width: 100% !important; }
	.e-con.hv-split > .elementor-widget, .e-con.hv-split > .e-con-inner > .elementor-widget { width: 100% !important; max-width: 100% !important; }
}

/* Faixa de formulário: filetes claros entre os passos */
.hv-lines-light .hv-row-line { border-top: 1px solid rgba(255,255,255,.35); }

/* FAQ: ícone de 46 px (layout) */
.hv-faq .e-n-accordion-item-title-icon { width: 46px !important; min-width: 46px; height: 46px; }
.hv-faq .e-n-accordion-item-title { padding: 24px 0 !important; }

/* ---------- Para empresas · abas por perfil ao lado do título (layout) ---------- */
.hv-tabs--beside { --n-tabs-gap: 40px; }
.hv-tabs--beside .e-n-tabs-heading { padding: 6px; }
.hv-tabs--beside .e-n-tab-title { padding: 8px 18px !important; }
@media (min-width: 1025px) {
	.elementor-widget.hv-tabs--beside { margin-top: -90px; }
	.hv-tabs--beside .e-n-tabs-heading { margin-left: auto; }
}
.hv-perfil-card { border: 1px solid #E6DEE5 !important; }

/* ---------- Governança: linhas entre módulos e entre itens configuráveis ---------- */
.hv-gov-row { border-top: 1px solid rgba(255,255,255,.25); }
.hv-cfg-item { border-top: 1px solid rgba(255,255,255,.15); padding: 8px 0; }
.hv-link--mg-line a, a.hv-link--mg-line { text-decoration-color: #FF8ACB !important; }

/* ---------- Números com fio forte (Para empresas · Quem está por trás) ---------- */
.hv-num--strong .hv-num__item { border-top: 2px solid var(--hv-navy, #1A1F4D); padding-top: 24px; }
.hv-num--strong .hv-num__value { line-height: 66px; }

/* ---------- Parágrafos: o Hello põe ~14 px abaixo de cada <p>; o layout não tem esse respiro.
   O espaço entre blocos vem só do espaçamento dos containers (como no layout). ---------- */
.elementor-widget-text-editor p:last-child { margin-bottom: 0; }
.elementor-widget-text-editor p { margin-top: 0; }
@media (min-width: 768px) { .hv-link .elementor-heading-title, a.hv-link { white-space: nowrap; } }

/* Cartão com faixa de cabeçalho (Para agências · perguntas): o fundo da faixa respeita os cantos. */
.e-con.hv-card--clip { overflow: hidden; }
/* Etiqueta em caixa alta (Disponível / Previsto). */
.hv-pill-tag--caps .elementor-heading-title { text-transform: uppercase; letter-spacing: .12em; padding: 2px 10px; font-size: 14px; line-height: 20px; font-weight: 500; }
.hv-on-dark .hv-pill-tag .elementor-heading-title { color: #fff !important; }
.hv-on-dark .hv-pill-tag--solid .elementor-heading-title { background: #fff; color: var(--hv-marinho) !important; border-color: #fff; }

/* Quebra de linha como no layout: títulos marcados com equilíbrio; parágrafos sem palavra órfã. */
.elementor-widget-text-editor p { text-wrap: pretty; }

/* Segurança: diagrama e link de e-mail em destaque. */
.hv-diagram > .elementor-widget, .hv-diagram > .e-con-inner > .elementor-widget { width: 100%; }
.hv-diagram .hv-rede { width: 100%; }
.hv-note-line p { font-style: italic; }
.hv-note-line a { color: inherit; text-decoration: none; }
.hv-dot { display: inline-block; width: 10px; height: 10px; border-radius: 50%; background: #1E7A4F; margin-right: 10px; vertical-align: 0; }
.hv-span-2 { grid-column: span 2; }
a.hv-strong-link { color: var(--hv-marinho); font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }
.elementor-heading-title { text-wrap: pretty; }
.hv-balance .elementor-heading-title { text-wrap: balance; }

/* Moldura de navegador (Produto e Home): barra real com pontos e endereço. */
.e-con.hv-browser { overflow: hidden; }
.hv-dots { display: inline-flex; gap: 7px; vertical-align: middle; }
.hv-dots i { width: 11px; height: 11px; border-radius: 50%; background: #D3CBD4; display: block; }
.hv-browser__url p { display: inline-block; background: #fff; border-radius: 6px; padding: 0 12px; }
.hv-browser__img img { display: block; width: 100%; height: auto; }
.hv-cap-dot { display: inline-block; width: 10px; height: 10px; border-radius: 50%; background: var(--hv-marinho); margin-top: 7px; }
.hv-cap-dot--o { background: transparent; border: 2px solid var(--hv-marinho); box-sizing: border-box; }
.hv-cap-dot-w { flex: none; }

/* Navegação interna do Produto: pílula marinho no item ativo. */
.hv-subnav a.hv-subnav__a { display: inline-block; padding: 8px 18px; border-radius: 999px; font: 500 15px/22px Inter, system-ui, sans-serif; color: var(--hv-marinho); text-decoration: none; }
.hv-subnav a.hv-subnav__a.is-active { background: var(--hv-marinho); color: #fff; font-weight: 600; }
.hv-subnav a.hv-subnav__a:hover:not(.is-active) { background: #F2EEF2; }

/* Abas alinhadas ao título (desktop): a trilha sobe para a linha do título. */
@media (min-width: 1025px) {
	/* A trilha de abas fica na linha do título, alinhada à base dele (seção com 40 px entre título e abas). */
	.elementor-widget.hv-tabs--right { position: relative; }
	.hv-tabs--right .e-n-tabs-heading { position: absolute; right: 0; top: -90px; margin: 0 !important; }
}
.e-con.hv-video-frame { overflow: hidden; max-width: 100%; aspect-ratio: 4 / 3; }
.hv-video-frame .elementor-widget-video, .hv-video-frame .elementor-wrapper { height: 100%; width: 100%; }
.hv-video-frame video { width: 100%; height: 100%; object-fit: cover; }

/* Linhas de lista (filete de 1 px entre itens), como no layout. */
.hv-row { border-top: 1px solid #E6DEE5; }
.hv-rows--closed > .hv-row:last-child, .hv-rows--closed > .e-con-inner > .hv-row:last-child { border-bottom: 1px solid #E6DEE5; }
.hv-on-dark .hv-row, .hv-lines-light .hv-row { border-top-color: rgba(255,255,255,.25); }
.hv-on-dark .hv-rows--closed > .hv-row:last-child { border-bottom-color: rgba(255,255,255,.25); }
.hv-on-lilas .hv-row { border-top-color: #DCC3D3; }

/* Formulário que abre por link (Integrações · aviso da API): fechado até o link ser clicado. */
.hv-on-target { display: none !important; }
.hv-on-target:target, .hv-on-target.is-open { display: flex !important; }
.hv-on-dark a.hv-reveal-link { color: #fff; text-decoration: none; border-bottom: 1.5px solid #fff; }

/* Faixa "Material" (Blog): capa marinho sobre a folha branca, saindo pela borda direita. */
.e-con.hv-material { overflow: hidden; }
.e-con.hv-deck-stack { position: relative; min-height: 360px; overflow: visible; }
.e-con.hv-deck-front { position: absolute !important; left: 0; top: 0; width: 640px !important; height: 360px; box-shadow: 0 30px 70px rgba(26,31,77,.25); z-index: 2; }
.e-con.hv-deck-back { position: absolute !important; left: 48px; top: -62px; width: 664px !important; height: 404px; box-shadow: 0 20px 50px rgba(26,31,77,.12); z-index: 1; }
@media (max-width: 1024px) {
	.e-con.hv-deck-stack { min-height: 0; }
	.e-con.hv-deck-back { display: none; }
	.e-con.hv-deck-front { position: relative !important; width: 100% !important; height: auto; min-height: 240px; }
}


/* Barra "Gostou do que viu?" (Demonstração): acompanha a rolagem no rodapé da tela enquanto a demo está à vista. */
.e-con.hv-sticky-bar { position: sticky; bottom: 24px; z-index: 40; box-shadow: 0 20px 40px rgba(26,31,77,.25); }
/* Capa inclinada (Apresentação). */
.e-con.hv-tilt { transform: rotate(-2deg); }
/* Carrossel horizontal com setas (Apresentação · prévia). */
.e-con.hv-hscroll { flex-wrap: nowrap !important; overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding-inline: 96px; scrollbar-width: none; }
@media (max-width: 767px) { .e-con.hv-hscroll { scroll-padding-inline: 24px; } }
.e-con.hv-hscroll::-webkit-scrollbar { display: none; }
.e-con.hv-hscroll > .hv-hscroll__item { flex: 0 0 auto; scroll-snap-align: start; max-width: calc(100vw - 48px); }
.hv-hscroll__nav { display: flex; gap: 12px; }
html body .elementor .hv-hscroll__btn { appearance: none; width: 58px; height: 58px; border-radius: 50%; border: 1px solid var(--hv-marinho); background: transparent; color: var(--hv-marinho); font: 500 22px/32px Inter, system-ui, sans-serif; cursor: pointer; padding: 0; }
html body .elementor .hv-hscroll__btn:hover:not([disabled]) { background: var(--hv-marinho); color: #fff; }
html body .elementor .hv-hscroll__btn[disabled] { opacity: .35; cursor: default; }
@media (max-width: 767px) { .hv-hscroll__arrows { display: none; } }
@media (max-width: 767px) { .e-con.hv-api-row { align-items: flex-start !important; } }

/* Animações de entrada (foto a 104%, metades do infinito vindo de fora) nunca criam rolagem lateral. */
body { overflow-x: clip; }
.elementor-widget-image.hv-settle { overflow: hidden; }
.elementor > .e-con { overflow-x: clip; }

/* Integrações: a última lista termina a 24 px do fim (respiro de 144 px até a faixa da API, como no layout). */
.hv-int .hv-int__section:last-of-type { margin-bottom: 24px; }

/* ---------- Compatibilidade: dobras com foto no formato antigo (até a versão 1.1)
   Páginas instaladas antes da 1.2 ainda têm a foto como widget de Imagem (.hv-bg-photo) e o véu num container (.hv-veil).
   Estas regras só valem para esse formato e deixam de ter efeito quando a página é atualizada pelo Instalador
   (a foto passa para Estilo → Plano de fundo). */
.hv-bleed:has(> .hv-bg-photo), .hv-bleed:has(> .e-con-inner > .hv-bg-photo) { position: relative; overflow: hidden; isolation: isolate; }
.hv-bleed:has(.hv-bg-photo) > .e-con-inner { position: static; }
.hv-bleed .hv-bg-photo { position: absolute !important; inset: 0; z-index: -2; width: 100% !important; height: 100%; margin: 0 !important; }
.hv-bleed .hv-bg-photo .elementor-widget-container, .hv-bleed .hv-bg-photo img { width: 100% !important; height: 100% !important; max-width: none !important; object-fit: cover; display: block; }
.hv-bleed .hv-veil { position: absolute !important; inset: 0; z-index: -1; pointer-events: none; padding: 0 !important; min-height: 0 !important; }
.hv-veil--claro { background: linear-gradient(90deg, rgba(251,247,248,.94) 0%, rgba(251,247,248,.78) 42%, rgba(251,247,248,0) 72%); }
.hv-veil--marinho { background: linear-gradient(90deg, rgba(26,31,77,.97) 0%, rgba(26,31,77,.92) 40%, rgba(26,31,77,.35) 68%, rgba(26,31,77,0) 88%); }
.hv-veil--marinho-leve { background: linear-gradient(90deg, rgba(26,31,77,.92) 0%, rgba(26,31,77,.72) 38%, rgba(26,31,77,0) 68%); }
.hv-veil--roxo { background: linear-gradient(90deg, rgba(129,41,144,.96) 0%, rgba(129,41,144,.88) 42%, rgba(129,41,144,.2) 72%, rgba(129,41,144,0) 100%); }
.hv-veil--faixa { background: linear-gradient(90deg, rgba(129,41,144,.55) 0%, rgba(129,41,144,.82) 36%, #812990 54%, #812990 100%); }
.hv-bleed--half .hv-bg-photo { right: auto !important; width: 58% !important; }
@media (min-width: 768px) and (max-width: 1024px) {
	.hv-veil--claro { background: linear-gradient(90deg, rgba(251,247,248,.96) 0%, rgba(251,247,248,.9) 50%, rgba(251,247,248,.35) 78%, rgba(251,247,248,0) 100%); }
}
@media (max-width: 767px) {
	.hv-bleed:has(.hv-bg-photo) { display: flex; flex-direction: column; }
	.hv-bleed .hv-bg-photo { position: relative !important; inset: auto; height: 165px; z-index: 0; order: -2; }
	.hv-bleed .hv-veil { display: none !important; }
	.hv-bleed--half .hv-bg-photo { width: 100% !important; }
	.hv-bleed--hero .hv-bg-photo { order: 3; height: 242px; }
	.hv-bleed--hero .hv-veil { display: none; }
	.hv-bleed--v-marinho, .hv-bleed--v-marinho-leve { background-color: #1A1F4D; }
	.hv-bleed--v-roxo, .hv-bleed--half { background-color: #812990; }
	.hv-bleed--v-claro { background-color: var(--hv-fundo, #FBF7F8); }
}

/* reCAPTCHA v3 sem chaves configuradas: o aviso do Elementor Pro dentro do formulário não aparece para visitantes
   (o administrador logado continua vendo, e o painel do WordPress mostra um aviso para cadastrar as chaves). */
body:not(.logged-in) .elementor-field-type-recaptcha_v3 .elementor-alert,
body:not(.logged-in) .elementor-field-type-recaptcha .elementor-alert { display: none !important; }
body:not(.logged-in) .elementor-field-type-recaptcha_v3:has(.elementor-alert) { display: none !important; }
