/* ==========================================================================
   VESER — Design System (camada técnica)
   Cores, tipografias e botões editáveis ficam no Elementor > Site Settings.
   Este arquivo cuida apenas do que o Elementor não expõe: fonte local, foco,
   estados de header, proporções de imagem, movimento e acessibilidade.
   ========================================================================== */

@font-face {
	font-family: "Manrope";
	src: url("../fonts/manrope-variable-latin.woff2") format("woff2");
	font-weight: 200 800;
	font-style: normal;
	font-display: swap;
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

:root {
	--veser-ivory: #F7F7F4;
	--veser-white: #FFFFFF;
	--veser-graphite: #202326;
	--veser-slate: #59656B;
	--veser-mist: #E5E9EA;
	--veser-deep-petrol: #173A46;
	--veser-petrol: #285566;
	/* [COR DE ERRO A APROVAR] — até a aprovação, erros usam Graphite + texto explícito. */
	--veser-error: var(--veser-graphite);
	--veser-ease: cubic-bezier(.2, .6, .2, 1);
	--veser-header-offset: var(--wp-admin--admin-bar--height, 0px);
}

html,
body {
	overflow-x: clip; /* evita overflow lateral sem quebrar o header sticky */
}

body {
	font-family: "Manrope", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
	color: var(--veser-slate);
	background: var(--veser-ivory);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
}

::selection {
	background: var(--veser-petrol);
	color: var(--veser-white);
}

h1, h2, h3,
.elementor-heading-title {
	text-wrap: balance;
}

p {
	text-wrap: pretty;
}

/* --------------------------------------------------------------------------
   Acessibilidade: skip link e foco visível
   ----------------------------------------------------------------------- */
.veser-skip-link {
	position: absolute;
	left: 16px;
	top: -100px;
	z-index: 1000;
	padding: 12px 20px;
	background: var(--veser-graphite);
	color: var(--veser-white);
	font-weight: 600;
	border-radius: 4px;
	text-decoration: none;
}
.veser-skip-link:focus {
	top: calc(var(--veser-header-offset) + 12px);
	outline: 2px solid var(--veser-petrol);
	outline-offset: 2px;
}

:focus-visible {
	outline: 2px solid var(--veser-deep-petrol);
	outline-offset: 3px;
	border-radius: 2px;
}
.veser-on-dark :focus-visible {
	outline-color: var(--veser-ivory);
}
#conteudo:focus {
	outline: none;
}

/* --------------------------------------------------------------------------
   Header
   ----------------------------------------------------------------------- */
.elementor-location-header {
	position: sticky;
	top: var(--veser-header-offset);
	z-index: 100;
}
@media (max-width: 600px) {
	.admin-bar .elementor-location-header { top: 0; }
}

.veser-header {
	transition: background-color .35s var(--veser-ease), box-shadow .35s var(--veser-ease);
}
.veser-scrolled .veser-header {
	background-color: var(--veser-white) !important;
	box-shadow: 0 1px 0 var(--veser-mist);
}

.veser-logo img {
	display: block;
	height: auto;
	max-height: 40px;
	width: auto;
}
@media (max-width: 767px) {
	.veser-logo img { max-height: 32px; }
}

/* Menu principal */
.veser-nav .elementor-nav-menu--main .elementor-item.elementor-item-active,
.veser-nav .elementor-nav-menu--main .elementor-item[aria-current="page"] {
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: .45em;
}
.veser-nav .elementor-nav-menu--main .sub-menu {
	border: 1px solid var(--veser-mist);
	border-radius: 4px;
	padding: 8px 0;
	min-width: 220px;
}
.veser-nav .elementor-menu-toggle {
	min-width: 44px;
	min-height: 44px;
	justify-content: center;
	background: transparent;
}
.veser-nav .elementor-nav-menu--dropdown {
	border-top: 1px solid var(--veser-mist);
	box-shadow: 0 1px 0 var(--veser-mist);
}
.veser-nav .elementor-nav-menu--dropdown a {
	min-height: 48px;
	padding-left: 20px !important;
}

/* --------------------------------------------------------------------------
   Botões
   ----------------------------------------------------------------------- */
.veser-btn .elementor-button {
	min-height: 52px;
	display: inline-flex;
	align-items: center;
	transition: background-color .25s var(--veser-ease), color .25s var(--veser-ease), border-color .25s var(--veser-ease);
}
.veser-btn--link .elementor-button {
	min-height: 44px;
	padding-left: 0;
	padding-right: 0;
}
.veser-btn--link .elementor-button-text {
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: .35em;
}
.veser-btn--link .elementor-button:hover .elementor-button-text {
	text-decoration-thickness: 2px;
}
@media (max-width: 767px) {
	.veser-actions .veser-btn,
	.veser-actions .veser-btn .elementor-button {
		width: 100%;
		justify-content: center;
	}
}
.veser-self-start {
	align-self: flex-start;
}

/* --------------------------------------------------------------------------
   Texto
   ----------------------------------------------------------------------- */
.veser-measure { max-width: 38em; }
.veser-measure-title .elementor-heading-title { max-width: 14em; }

.veser-prose p,
.veser-final-cta .elementor-widget-text-editor p {
	margin: 0 0 1em;
}
.veser-prose p:last-child,
.elementor-widget-text-editor p:last-child {
	margin-bottom: 0;
}
.veser-prose strong {
	color: var(--veser-graphite);
	font-weight: 600;
}
.veser-cadence p { margin: 0 0 .5em; }
.veser-cadence p:last-child { margin-bottom: 0; }
.veser-cadence {
	color: var(--veser-graphite);
	padding-left: 20px;
	border-left: 2px solid var(--veser-petrol);
}
.veser-microcopy p {
	margin: 0;
}
.veser-categories p {
	margin: 0;
	letter-spacing: .01em;
}
.veser-statement p {
	margin: 0;
}
.veser-editorial-mark .elementor-heading-title {
	letter-spacing: -.5px;
}

/* --------------------------------------------------------------------------
   Leitura em camadas (01-B): título → frase principal → texto → link
   ----------------------------------------------------------------------- */
.veser-lead p { margin: 0; }
.veser-lead strong,
.veser-lead--strong strong { font-weight: 600; }
.veser-lead--stack p + p { margin-top: .35em; }
.veser-hero__title .elementor-heading-title { max-width: 10.5em; }
@media (max-width: 767px) {
	.veser-actions { margin-top: 8px; }
	.veser-hero__content .veser-microcopy { margin-top: -4px; }
}

/* --------------------------------------------------------------------------
   Três portas de entrada: o card inteiro é clicável por meio do link do
   próprio card (um único link por porta, acessível por teclado).
   ----------------------------------------------------------------------- */
.e-con.veser-door {
	position: relative;
	transition: border-color .3s var(--veser-ease), box-shadow .3s var(--veser-ease);
}
.veser-door .elementor-element,
.veser-door .elementor-widget-container {
	position: static;
}
.veser-door__cta .elementor-button::after {
	content: "";
	position: absolute;
	inset: 0;
}
.veser-door:hover,
.veser-door:focus-within {
	box-shadow: inset 0 2px 0 var(--veser-deep-petrol), 0 0 0 1px var(--veser-mist);
}
.veser-door:hover .elementor-heading-title,
.veser-door:focus-within .elementor-heading-title {
	color: var(--veser-deep-petrol);
}
.veser-door:hover .veser-door__cta .elementor-button-text {
	text-decoration-thickness: 2px;
}
.veser-door__cta .elementor-button:focus-visible {
	outline: none;
}
.veser-door:focus-within {
	outline: 2px solid var(--veser-deep-petrol);
	outline-offset: 4px;
}
.veser-door .veser-categories {
	border-top: 1px solid var(--veser-mist);
	padding-top: 16px;
}

/* --------------------------------------------------------------------------
   Imagens: proporções fixas evitam deslocamento de layout (CLS)
   ----------------------------------------------------------------------- */
.veser-media img {
	display: block;
	width: 100%;
	height: auto;
	object-fit: cover;
	border-radius: 2px;
}
.veser-media--portrait img { aspect-ratio: 4 / 5; }
.veser-media--landscape img { aspect-ratio: 3 / 2; }
@media (max-width: 1024px) {
	.veser-hero__media { max-width: 560px; }
}
@media (max-width: 767px) {
	.veser-media--portrait img { aspect-ratio: 4 / 3; }
}

/* --------------------------------------------------------------------------
   Experiência VESER: etapas
   ----------------------------------------------------------------------- */
.veser-steps {
	border-bottom: 1px solid var(--veser-slate);
}
.veser-step__num .elementor-heading-title {
	font-variant-numeric: tabular-nums lining-nums;
	font-weight: 600;
}
.veser-step__text p { margin: 0; }

/* Reveal: só oculta quando há JS, fora do editor e sem preferência por menos movimento */
@media (prefers-reduced-motion: no-preference) {
	.veser-js .veser-reveal {
		opacity: 0;
		transform: translateY(12px);
		transition: opacity .7s var(--veser-ease), transform .7s var(--veser-ease);
		transition-delay: var(--veser-delay, 0ms);
	}
	.veser-js .veser-reveal.is-visible {
		opacity: 1;
		transform: none;
	}
}
.elementor-editor-active .veser-reveal,
.elementor-editor-preview .veser-reveal {
	opacity: 1 !important;
	transform: none !important;
}
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after {
		animation-duration: .01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: .01ms !important;
		scroll-behavior: auto !important;
	}
}

/* --------------------------------------------------------------------------
   Caderno VESER: cards de artigo (aparecem só quando houver posts)
   ----------------------------------------------------------------------- */
.veser-article-cards .elementor-post {
	border-top: 1px solid var(--veser-graphite);
	padding-top: 24px;
}
.veser-article-cards .elementor-post__thumbnail img {
	border-radius: 2px;
}
.veser-article-cards .elementor-post__read-more {
	text-decoration: underline;
	text-underline-offset: .35em;
}
.veser-article-cards:not(:has(.elementor-post)) {
	display: none;
}

/* --------------------------------------------------------------------------
   Footer
   ----------------------------------------------------------------------- */
.veser-footer a {
	color: var(--veser-ivory);
}
.veser-footer a:hover {
	color: var(--veser-white);
	text-decoration: underline;
	text-underline-offset: .3em;
}
.veser-footer__label .elementor-heading-title {
	font-weight: 600;
}
.veser-footer__nav .elementor-nav-menu--main .elementor-item {
	justify-content: flex-start;
}
.veser-footer__legal .elementor-nav-menu--main .elementor-item {
	font-size: 14px;
	color: var(--veser-mist);
	padding: 4px 0;
	margin-right: 24px;
}
.veser-footer__closing .elementor-heading-title {
	max-width: 14em;
}

/* --------------------------------------------------------------------------
   Formulários (usados a partir da página Contato)
   Borda derivada do Slate: contraste ≥ 3:1 sobre branco e Ivory.
   ----------------------------------------------------------------------- */
.elementor-field-group .elementor-field-textual,
.elementor-field-group select {
	min-height: 52px;
	border: 1px solid var(--veser-slate);
	border-radius: 4px;
	background: var(--veser-white);
	color: var(--veser-graphite);
	font-size: 17px; /* ≥ 16px evita zoom automático no iOS */
}
.elementor-field-group textarea.elementor-field-textual {
	min-height: 140px;
}
.elementor-field-group .elementor-field-textual:focus,
.elementor-field-group select:focus {
	border-color: var(--veser-deep-petrol);
	outline: 2px solid var(--veser-deep-petrol);
	outline-offset: 1px;
}
.elementor-field-group .elementor-field-label {
	color: var(--veser-graphite);
	font-weight: 500;
}
.elementor-field-group.elementor-error .elementor-field-textual {
	border-color: var(--veser-error);
	border-width: 2px;
}
.elementor-message.elementor-message-danger {
	color: var(--veser-error);
	font-weight: 600;
}

/* ==========================================================================
   Entrega 01-C — Proteção em duas camadas (territórios → produtos)
   ========================================================================== */
@media (min-width: 1025px) {
	.veser-nav .elementor-nav-menu--main > .elementor-nav-menu { position: relative; }
	.veser-nav .elementor-nav-menu--main li:has(> .veser-mega) { position: static; }

	.veser-nav .elementor-nav-menu--main .sub-menu.veser-mega {
		left: auto !important;
		right: 0 !important;
		top: 100% !important;
		margin: 8px 0 0 !important;
		width: min(920px, calc(100vw - 96px)) !important;
		min-width: 0 !important;
		max-width: none !important;
		padding: 64px 24px 32px !important;
		background: var(--veser-white);
		border: 1px solid var(--veser-mist);
		border-top: 2px solid var(--veser-petrol);
		border-radius: 0 0 4px 4px;
	}
	.veser-nav .sub-menu.veser-mega::before {
		content: attr(data-veser-label);
		position: absolute;
		top: 28px;
		left: 40px;
		font: 500 14px/1.4 "Manrope", sans-serif;
		color: var(--veser-slate);
	}
	.veser-nav .sub-menu.veser-mega::after {
		content: "";
		display: table;
		clear: both;
	}
	.veser-nav .sub-menu.veser-mega > li {
		float: left;
		width: 33.333%;
		padding: 0 16px;
		border: 0;
	}
	.veser-nav .sub-menu.veser-mega > li > a {
		display: block !important;
		padding: 0 !important;
		white-space: normal !important;
		font: 600 19px/1.3 "Manrope", sans-serif !important;
		color: var(--veser-graphite) !important;
		background: none !important;
	}
	.veser-nav .sub-menu.veser-mega > li > a:hover { color: var(--veser-petrol) !important; }
	.veser-nav .sub-menu.veser-mega .veser-menu-desc {
		display: block;
		margin-top: 6px;
		font: 400 14px/1.5 "Manrope", sans-serif;
		color: var(--veser-slate);
	}
	.veser-nav .sub-menu.veser-mega .sub-arrow { display: none !important; }

	/* 3º nível: produtos sempre visíveis dentro do painel */
	.veser-nav .sub-menu.veser-mega .sub-menu {
		display: block !important;
		position: static !important;
		width: auto !important;
		min-width: 0 !important;
		margin: 16px 0 0 !important;
		padding: 12px 0 0 !important;
		border: 0 !important;
		border-top: 1px solid var(--veser-mist) !important;
		background: none !important;
		box-shadow: none !important;
	}
	.veser-nav .sub-menu.veser-mega .sub-menu a {
		display: block !important;
		padding: 7px 0 !important;
		white-space: normal !important;
		font: 500 15px/1.4 "Manrope", sans-serif !important;
		color: var(--veser-petrol) !important;
		background: none !important;
	}
	.veser-nav .sub-menu.veser-mega .sub-menu a:hover {
		color: var(--veser-deep-petrol) !important;
		text-decoration: underline;
		text-underline-offset: .3em;
	}
}
/* Menu mobile: territórios e produtos em acordeão; descrição oculta para leitura limpa */
.veser-nav .elementor-nav-menu--dropdown .veser-menu-desc { display: none; }
.veser-nav .elementor-nav-menu--dropdown .sub-menu .sub-menu a { color: var(--veser-petrol) !important; }

/* Frente B (0.12.1): itens sem destino (agrupadores/territórios sem link) não parecem clicáveis */
.veser-nav .elementor-nav-menu a:not([href]) { cursor: default; }
@media (min-width: 1025px) {
	.veser-nav .sub-menu.veser-mega > li > a:not([href]):hover { color: var(--veser-graphite) !important; }
}
.veser-nav .elementor-nav-menu--dropdown li:not(.menu-item-has-children) > a:not([href]) {
	color: var(--veser-slate) !important;
	background: none !important;
}

/* --------------------------------------------------------------------------
   Já sabe o que procura? — atalho discreto (menos peso que marca e territórios)
   ----------------------------------------------------------------------- */
.veser-quick__title .elementor-heading-title { white-space: nowrap; }
.veser-quick__nav { width: auto; flex: 1 1 auto; }
.veser-quick__nav .elementor-nav-menu--main .elementor-nav-menu {
	flex-wrap: wrap;
	column-gap: 4px;
}
.veser-quick__nav .elementor-nav-menu--main .elementor-item {
	padding: 10px 12px !important;
	font-weight: 500;
	text-decoration: underline;
	text-decoration-color: transparent;
	text-underline-offset: .35em;
	transition: text-decoration-color .2s var(--veser-ease), color .2s var(--veser-ease);
}
.veser-quick__nav .elementor-nav-menu--main .elementor-item:hover,
.veser-quick__nav .elementor-nav-menu--main .elementor-item:focus-visible {
	text-decoration-color: currentColor;
}
@media (max-width: 1024px) {
	.veser-quick__title .elementor-heading-title { white-space: normal; }
	.veser-quick__nav .elementor-nav-menu--main .elementor-item { padding-left: 0 !important; padding-right: 24px !important; }
}
@media (max-width: 767px) {
	.veser-quick__nav { width: 100%; }
	.veser-quick__nav .elementor-nav-menu--main .elementor-nav-menu {
		display: grid !important;
		grid-template-columns: 1fr 1fr;
		column-gap: 16px;
	}
	.veser-quick__nav .elementor-nav-menu--main .elementor-nav-menu > li {
		border-top: 1px solid var(--veser-mist);
	}
	.veser-quick__nav .elementor-nav-menu--main .elementor-item {
		min-height: 48px;
		align-items: center;
		padding: 12px 0 !important;
		text-decoration: none;
	}
}

/* --------------------------------------------------------------------------
   Painel Proteção com 4 territórios (Saúde como território próprio).
   Só age quando o painel tem 4 colunas; o painel de 3 permanece como estava.
   ----------------------------------------------------------------------- */
@media (min-width: 1025px) {
	.veser-header:has(.sub-menu.veser-mega > li:nth-child(4)) > .e-con-inner { position: relative; }
	.veser-header:has(.sub-menu.veser-mega > li:nth-child(4)) .veser-header__right,
	.veser-header:has(.sub-menu.veser-mega > li:nth-child(4)) .veser-nav,
	.veser-header:has(.sub-menu.veser-mega > li:nth-child(4)) .veser-nav .elementor-widget-container,
	.veser-header:has(.sub-menu.veser-mega > li:nth-child(4)) .veser-nav .elementor-nav-menu--main,
	.veser-nav .elementor-nav-menu--main > .elementor-nav-menu:has(> li > .veser-mega > li:nth-child(4)) { position: static; }
	.veser-nav .elementor-nav-menu--main .sub-menu.veser-mega:has(> li:nth-child(4)) {
		width: min(1120px, 100%) !important;
	}
	.veser-nav .sub-menu.veser-mega:has(> li:nth-child(4)) > li { width: 25%; }
}

/* ==========================================================================
   VERSÃO DE LANÇAMENTO (1.0.0)
   Linguagem A: seções Deep Petrol com texto claro. Linguagem B: Ivory/White.
   Cores e tipografias continuam vindo do Elementor (Global Styles); aqui só o
   que o Elementor não expõe: proporções, fios, links em fundo escuro e detalhes.
   ========================================================================== */

/* Logo oficial (composição horizontal de aplicação no Header) */
.veser-logo img { max-height: 48px; }
@media (max-width: 767px) { .veser-logo img { max-height: 36px; } }
.vx-footer__logo img { max-height: 60px; }

/* Âncoras de todas as páginas param abaixo do header fixo */
:root { --veser-anchor-gap: 116px; } /* cabeçalho compacto (92px) + 24px de respiro */
@media (max-width: 1024px) { :root { --veser-anchor-gap: 108px; } }
@media (max-width: 767px) { :root { --veser-anchor-gap: 96px; } }
.vx-page [id],
.e-con[id]:not(.veser-header) { scroll-margin-top: calc(var(--veser-header-offset) + var(--veser-anchor-gap)); }

/* Eyebrow em todas as páginas (antes só nas páginas de produto) */
.vx-eyebrow .elementor-heading-title {
	text-transform: uppercase;
	letter-spacing: .08em;
	font-weight: 600;
}

/* Fundo escuro: links e microcopy legíveis */
.vx-dark .elementor-widget-text-editor a,
.vx-footer .elementor-widget-text-editor a {
	color: var(--veser-ivory);
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: .25em;
}
.vx-dark .elementor-widget-text-editor a:hover,
.vx-footer .elementor-widget-text-editor a:hover { color: var(--veser-white); text-decoration-thickness: 2px; }
.vx-dark strong { color: var(--veser-white); font-weight: 600; }
.vx-light a, .vx-ivory .elementor-widget-text-editor a, .vx-white .elementor-widget-text-editor a {
	color: var(--veser-petrol);
	text-decoration: underline;
	text-underline-offset: .25em;
}

/* Hero */
.vx-hero__title .elementor-heading-title { max-width: 16.5em; }
.vx-hero__title .vx-soft { color: var(--veser-mist); font-weight: 500; }
.vx-hero__lead { max-width: 36rem; }
.vx-hero--compact .vx-hero__title .elementor-heading-title { max-width: 14em; }
.vx-media--hero img { display: block; width: 100%; aspect-ratio: 4 / 5; object-fit: cover; border-radius: 2px; }
@media (max-width: 1024px) {
	.vx-hero__media { max-width: 440px; }
}
@media (max-width: 767px) {
	.vx-media--hero img { aspect-ratio: 4 / 3; }
	.vx-hero__media { max-width: none; }
}

/* Duas seções escuras seguidas: fio discreto separa a abertura do posicionamento */
.vx-split--after-hero > .e-con-inner {
	border-top: 1px solid rgba(229, 233, 234, .18);
	padding-top: 96px;
}
.e-con.vx-split--after-hero { padding-top: 0 !important; }
@media (max-width: 767px) { .vx-split--after-hero > .e-con-inner { padding-top: 64px; } }

/* Cards com imagem (áreas de atuação) */
.vx-media--card img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 2px; }
.vx-card .vx-card__phrase p,
.vx-card .vx-card__text p,
.vx-card .vx-card__contact p { margin: 0; }
.vx-card__contact { padding-top: 8px; border-top: 1px solid var(--veser-mist); margin-top: 4px; }
.vx-card__links .elementor-button { min-height: 40px; }
.e-con.vx-card.veser-door:hover,
.e-con.vx-card.veser-door:focus-within { box-shadow: none; }
.vx-card.veser-door:hover .vx-media--card img { opacity: .92; }
.vx-areas__more p { margin: 0; }

/* Colunas com fio superior */
.vx-pillar p { margin: 0; }
.vx-note { max-width: 52rem; }
.vx-note p { margin: 0; }

/* Linhas numeradas */
.vx-step .veser-step__num .elementor-heading-title { font-weight: 500; }

/* Lista de definição */
.vx-def-list { border-bottom: 1px solid var(--veser-mist); }
.vx-def-row p { margin: 0; }

/* Dados institucionais */
.vx-data p { margin: 0 0 .75em; }
.vx-data p:last-child { margin-bottom: 0; }
.vx-inline-links .elementor-button { min-height: 40px; }

/* Formulários em seções claras */
.vx-form-wrap .veser-form-privacy p { margin: 0; }
.vx-form-wrap .veser-form-privacy a { color: var(--veser-petrol); text-decoration: underline; text-underline-offset: .25em; }

/* Encerramento */
.vx-final .veser-microcopy p { margin: 0; }
.vx-final__title .elementor-heading-title { max-width: 18em; }

/* Páginas legais */
.vx-narrow { max-width: 760px; }
.vx-legal__h2 { margin-top: 24px; }
.vx-legal__text ul { margin: 0 0 1em; padding-left: 1.2em; }
.vx-legal__text li { margin-bottom: .4em; }
.vx-legal__text a { color: var(--veser-petrol); text-decoration: underline; text-underline-offset: .25em; }

/* Footer */
.vx-footer ul.vx-list { list-style: none; margin: 0; padding: 0; }
.vx-footer ul.vx-list li { margin: 0 0 10px; }
.vx-footer ul.vx-list li:last-child { margin-bottom: 0; }
.vx-footer .elementor-widget-text-editor p { margin: 0 0 .9em; }
.vx-footer .elementor-widget-text-editor p:last-child { margin-bottom: 0; }
.vx-footer__about { max-width: 26rem; }
.vx-footer__regulatory { max-width: 60rem; }
.vx-footer__legal a { text-decoration: none !important; }
.vx-footer__legal a:hover { text-decoration: underline !important; }
.vx-footer__closing .elementor-heading-title { max-width: none; }

/* WhatsApp sempre visível (botão flutuante do tema) */
.vx-wa {
	position: fixed;
	right: 20px;
	bottom: 20px;
	z-index: 90;
	display: inline-flex;
	align-items: center;
	gap: 10px;
	min-height: 52px;
	padding: 0 20px 0 16px;
	border-radius: 999px;
	background: var(--veser-deep-petrol);
	color: var(--veser-white);
	font: 600 15px/1 "Manrope", sans-serif;
	text-decoration: none;
	box-shadow: 0 0 0 1px rgba(247, 247, 244, .28), 0 8px 24px rgba(23, 58, 70, .28);
	transition: background-color .25s var(--veser-ease), transform .25s var(--veser-ease);
}
.vx-wa:hover { background: var(--veser-petrol); color: var(--veser-white); }
.vx-wa:focus-visible { outline: 2px solid var(--veser-deep-petrol); outline-offset: 3px; }
.vx-wa svg { width: 22px; height: 22px; flex: none; }
@media (max-width: 767px) {
	.vx-wa { right: 16px; bottom: 16px; padding: 0; width: 56px; height: 56px; justify-content: center; }
	.vx-wa__label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
	.elementor-location-footer { padding-bottom: 72px; background: var(--veser-deep-petrol); }
}
@media print { .vx-wa { display: none; } }

/* Footer logo após fechamento escuro: fio separa os dois blocos Deep Petrol */
.e-con.vx-footer > .e-con-inner { border-top: 1px solid rgba(229, 233, 234, .18); padding-top: 72px; }
.e-con.vx-footer { padding-top: 0 !important; }
@media (max-width: 767px) { .e-con.vx-footer > .e-con-inner { padding-top: 56px; } }

/* ==========================================================================
   AJUSTES 1.0.1
   ========================================================================== */

/* Slogan como assinatura da marca (mesma lógica da assinatura do logotipo:
   maiúsculas espaçadas precedidas de um fio curto). Mesma fonte e paleta. */
.vx-slogan .elementor-heading-title,
.vx-footer__closing .elementor-heading-title {
	text-transform: uppercase;
	letter-spacing: .16em;
	font-weight: 600;
}
.vx-slogan .elementor-heading-title::before,
.vx-footer__closing .elementor-heading-title::before {
	content: "";
	display: block;
	width: 40px;
	height: 1px;
	margin-bottom: 16px;
	background: currentColor;
	opacity: .7;
}
.vx-dark .vx-slogan .elementor-heading-title { color: var(--veser-ivory) !important; }
.vx-footer__closing .elementor-heading-title {
	font-size: 22px !important;
	line-height: 1.4 !important;
	color: var(--veser-ivory) !important;
}
@media (max-width: 767px) {
	.vx-footer__closing .elementor-heading-title { font-size: 17px !important; letter-spacing: .12em; }
}

/* WhatsApp: cor ajustada automaticamente ao fundo; recolhe sobre botões, campos e rodapé */
.vx-wa {
	box-shadow: 0 0 0 2px var(--veser-white), 0 6px 20px rgba(23, 58, 70, .32);
	transition: background-color .25s var(--veser-ease), color .25s var(--veser-ease), box-shadow .25s var(--veser-ease), opacity .25s var(--veser-ease), transform .25s var(--veser-ease);
}
.vx-wa.vx-wa--on-dark {
	background: var(--veser-ivory);
	color: var(--veser-deep-petrol);
	box-shadow: 0 0 0 2px var(--veser-deep-petrol), 0 8px 24px rgba(0, 0, 0, .35);
}
.vx-wa.vx-wa--on-dark:hover { background: var(--veser-white); color: var(--veser-deep-petrol); }
.vx-wa.vx-wa--on-dark:focus-visible { outline-color: var(--veser-ivory); }
.vx-wa.vx-wa--away { opacity: 0; transform: translateY(16px); pointer-events: none; }
.vx-wa.vx-wa--away:focus-visible { opacity: 1; transform: none; pointer-events: auto; }
@media (max-width: 767px) {
	.vx-wa { width: 52px; height: 52px; right: 12px; bottom: calc(12px + env(safe-area-inset-bottom, 0px)); }
}
@media (prefers-reduced-motion: reduce) { .vx-wa { transition: none; } }

/* Confirmação de envio dos formulários: destaque e assinatura */
.elementor-widget-form .elementor-message.elementor-message-success {
	position: relative;
	margin: 20px 0 0;
	padding: 20px 24px 20px 64px;
	background: var(--veser-white);
	border: 1px solid var(--veser-mist);
	border-left: 4px solid var(--veser-deep-petrol);
	border-radius: 4px;
	color: var(--veser-graphite);
	font: 600 17px/1.5 "Manrope", sans-serif;
	box-shadow: 0 8px 24px rgba(23, 58, 70, .08);
}
.elementor-widget-form .elementor-message.elementor-message-success:focus { outline: none; } /* foco só para leitores de tela; não é interativo */
.elementor-widget-form .elementor-message.elementor-message-success::before {
	content: "";
	position: absolute;
	left: 20px;
	top: 20px;
	width: 28px;
	height: 28px;
	margin: 0;
	border-radius: 50%;
	background: var(--veser-deep-petrol) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23F7F7F4' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round' d='M6 12.5l4 4 8-9'/%3E%3C/svg%3E") center / 18px no-repeat;
	font-family: inherit;
}
.elementor-widget-form .elementor-message.elementor-message-success::after {
	content: "Cuidamos daquilo que importa.";
	display: block;
	margin-top: 10px;
	color: var(--veser-petrol);
	font: 600 12px/1.4 "Manrope", sans-serif;
	letter-spacing: .14em;
	text-transform: uppercase;
}

/* Menu mobile: níveis com recuo moderado, divisórias finas e áreas de toque maiores */
@media (max-width: 1024px) {
	.veser-nav .elementor-nav-menu--dropdown {
		max-height: calc(100vh - 96px);
		overflow-y: auto;
		background: var(--veser-white);
	}
	.veser-nav .elementor-nav-menu--dropdown li { border-bottom: 1px solid var(--veser-mist); }
	.veser-nav .elementor-nav-menu--dropdown li:last-child { border-bottom: 0; }
	.veser-nav .elementor-nav-menu--dropdown a {
		border-inline-start: 0 !important;
		display: flex !important;
		align-items: center;
		justify-content: space-between;
	}
	.veser-nav .elementor-nav-menu--dropdown .elementor-nav-menu > li > a {
		min-height: 56px;
		padding: 0 20px !important;
		font-weight: 600 !important;
		font-size: 18px !important;
		color: var(--veser-graphite) !important;
	}
	.veser-nav .elementor-nav-menu--dropdown .sub-menu {
		margin: 0 !important;
		padding: 0 !important;
		background: var(--veser-ivory);
		border-top: 1px solid var(--veser-mist);
	}
	.veser-nav .elementor-nav-menu--dropdown .sub-menu > li > a {
		min-height: 52px;
		padding: 0 20px 0 36px !important;
		font-weight: 600 !important;
		font-size: 16px !important;
		color: var(--veser-graphite) !important;
	}
	.veser-nav .elementor-nav-menu--dropdown .sub-menu .sub-menu { background: var(--veser-white); }
	.veser-nav .elementor-nav-menu--dropdown .sub-menu .sub-menu > li > a {
		min-height: 48px;
		padding: 0 20px 0 52px !important;
		font-weight: 500 !important;
		font-size: 15px !important;
		color: var(--veser-petrol) !important;
	}
	.veser-nav .elementor-nav-menu--dropdown .sub-arrow {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		min-width: 44px;
		min-height: 44px;
		margin-right: -12px;
	}
}


/* ==========================================================================
   AJUSTES 1.0.2
   ========================================================================== */

/* Cabeçalho em dois estados. Topo da página: assinatura horizontal completa (logotipo oficial com o
   slogan). Após a rolagem (classe veser-compact): o logotipo aprovado da 1.0.0, cabeçalho compacto.
   O arquivo do logotipo nunca é recortado nem distorcido: só a largura muda, com transição suave. */
.veser-header { transition: background-color .35s var(--veser-ease), box-shadow .35s var(--veser-ease), padding .35s var(--veser-ease); }
.veser-header .veser-logo img {
	height: auto;
	max-height: none;
	transition: width .35s var(--veser-ease);
	animation: vx-logo-in .35s var(--veser-ease);
}
body:not(.veser-compact) .e-con.veser-header { padding-top: 18px !important; padding-bottom: 18px !important; }
.veser-header .elementor-widget.veser-logo { flex-shrink: 0; max-width: 100%; }
.veser-compact .veser-header .veser-logo img {
	content: url("../img/veser-logo-header.svg");
	width: 224px !important;
	animation-name: vx-logo-in-compact;
}
@keyframes vx-logo-in { from { opacity: .35; } to { opacity: 1; } }
@keyframes vx-logo-in-compact { from { opacity: .35; } to { opacity: 1; } }
@media (max-width: 1024px) {
	body:not(.veser-compact) .e-con.veser-header { padding-top: 14px !important; padding-bottom: 14px !important; }
	.veser-compact .veser-header .veser-logo img { width: 200px !important; }
}
@media (max-width: 767px) {
	body:not(.veser-compact) .e-con.veser-header { padding-top: 12px !important; padding-bottom: 12px !important; }
	.veser-header .veser-logo img { max-width: calc(100vw - 100px); }
	.veser-compact .veser-header .veser-logo img { width: 164px !important; }
}
@media (prefers-reduced-motion: reduce) {
	.veser-header, .veser-header .veser-logo img { transition: none; animation: none; }
}

/* WhatsApp em áreas claras: símbolo e texto em Ivory (vence a cor de link do Elementor) e contorno mais firme. */
body a.vx-wa,
body a.vx-wa:hover,
body a.vx-wa:focus,
body a.vx-wa:visited { color: var(--veser-ivory); }
body a.vx-wa:not(.vx-wa--on-dark) {
	box-shadow: 0 0 0 2.5px var(--veser-ivory), 0 0 0 3.5px rgba(23, 58, 70, .35), 0 6px 20px rgba(23, 58, 70, .32);
}
body a.vx-wa.vx-wa--on-dark,
body a.vx-wa.vx-wa--on-dark:hover,
body a.vx-wa.vx-wa--on-dark:focus,
body a.vx-wa.vx-wa--on-dark:visited { color: var(--veser-deep-petrol); }
