/* =========================================================================
   BRV Brasil — PROPOSTA DE DESIGN NOVO.

   A linha é a mesma: o azul #025581, o verde da marca, a Montserrat, a
   fotografia de fábrica. O que muda é a arquitetura visual — hierarquia,
   respiro, escala tipográfica e o modo de apresentar produto.

   Convive com o theme.css (a versão fiel ao site publicado). São dois
   arquivos separados de propósito: dá para comparar os dois lado a lado e
   escolher, sem que um estrague o outro.

   Regra de ouro, a mesma: o que o Elementor controla (display, direção,
   gap, padding, largura, alinhamento) NÃO mora aqui. Só pele.
   ========================================================================= */

/* ------------------------------------------------------------------ fontes */
@font-face {
	font-family: "Giga Sans";
	src: url("../fonts/giga-sans-extra-bold.otf") format("opentype");
	font-weight: 800;
	font-style: normal;
	font-display: swap;
}

/* ------------------------------------------------------------------ tokens */
:root {
	/* os dois da marca, intactos */
	--brv-primary: var(--e-global-color-primary, #025581);
	--brv-accent-claro: var(--e-global-color-brvgreenclaro, #01a84c);

	/* derivados: um azul mais profundo para as faixas escuras e o rodapé */
	--brv-secondary: var(--e-global-color-secondary, #01344f);
	--brv-dark: var(--e-global-color-brvdark, #06222f);

	/*
	 * O verde de TEXTO é o escuro. O #01a84c da marca dá 3,13:1 com branco e
	 * reprova em botão e em texto pequeno; o #017a37 dá 5,47:1 e é o mesmo
	 * verde um tom abaixo. O claro fica para filete, ícone e realce.
	 */
	--brv-accent: var(--e-global-color-accent, #017a37);
	--brv-accent-luz: var(--e-global-color-brvgreenluz, #7fe3a8);

	--brv-text: var(--e-global-color-text, #14212a);
	--brv-muted: var(--e-global-color-brvmuted, #59707e);
	--brv-bg: var(--e-global-color-brvbg, #ffffff);
	--brv-light: var(--e-global-color-brvlight, #f4f6f7);
	--brv-line: var(--e-global-color-brvline, #dce3e7);

	--brv-font: var(--e-global-typography-text-font-family, "Montserrat"), system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
	--brv-display: "Giga Sans", var(--brv-font);

	--brv-wrap: 1220px;
	--brv-gut: 24px;
	--brv-radius: 4px;
	--brv-header-h: 78px;
	--brv-sombra: 0 10px 40px rgba(2, 42, 66, .10);
	--brv-sombra-forte: 0 18px 60px rgba(2, 42, 66, .18);
}

/* ------------------------------------------------------------------- base */
* { box-sizing: border-box; }

html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

body.brv {
	margin: 0;
	font-family: var(--brv-font);
	font-size: 1.0625rem;
	line-height: 1.7;
	color: var(--brv-text);
	background: var(--brv-bg);
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}

.brv img { max-width: 100%; height: auto; }
.brv a { color: var(--brv-primary); }
.brv a:hover { color: var(--brv-accent); }

.brv-skip {
	position: absolute; left: -9999px; top: 0; z-index: 1000;
	padding: 12px 18px; background: var(--brv-primary); color: #fff; text-decoration: none;
}
.brv-skip:focus { left: 8px; top: 8px; color: #fff; }
.brv :focus-visible { outline: 3px solid var(--brv-accent); outline-offset: 2px; }

.screen-reader-text, .brv .brv-so-leitor {
	position: absolute !important; width: 1px; height: 1px;
	overflow: hidden; clip: rect(1px, 1px, 1px, 1px); white-space: nowrap;
}

.brv-wrap {
	width: 100%; max-width: var(--brv-wrap);
	margin-inline: auto; padding-inline: var(--brv-gut);
}

/* -------------------------------------------------- barra fina de contato */
/* Resolve o buraco do site atual: hoje o telefone só aparece no rodapé. */
.brv-topo {
	background: var(--brv-secondary);
	color: rgba(255, 255, 255, .86);
	font-size: .8rem;
	line-height: 1;
}
.brv-topo__bar {
	display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between;
	gap: 10px 26px; padding-block: 10px;
}
.brv-topo ul { display: flex; flex-wrap: wrap; gap: 22px; list-style: none; margin: 0; padding: 0; }
.brv-topo a { color: #fff; text-decoration: none; }
.brv-topo a:hover { color: var(--brv-accent-luz); }
.brv-topo__nota { margin: 0; letter-spacing: .06em; text-transform: uppercase; font-size: .72rem; }
@media (max-width: 767px) { .brv-topo { display: none; } }

/* ---------------------------------------------------------------- cabeçalho */
.brv-header {
	position: sticky; top: 0; z-index: 900;
	background: #fff;
	border-bottom: 1px solid var(--brv-line);
}
.brv-header__bar {
	display: flex; align-items: center; justify-content: space-between;
	gap: 24px; min-height: var(--brv-header-h);
}
.brv-header__brand { display: inline-flex; align-items: center; flex: 0 0 auto; }
.brv-header__brand img { display: block; width: auto; max-height: 46px; }

.brv-nav { margin-inline-start: auto; }
.brv-nav ul { display: flex; align-items: center; gap: 2px; list-style: none; margin: 0; padding: 0; }
.brv-nav li { position: relative; }
.brv-nav a {
	display: block; padding: 10px 14px;
	font-size: .8rem; font-weight: 600; letter-spacing: .06em;
	text-transform: uppercase; color: var(--brv-primary); text-decoration: none;
	position: relative;
}
.brv-nav a::after {
	content: ""; position: absolute; left: 14px; right: 14px; bottom: 4px;
	height: 2px; background: var(--brv-accent-claro);
	transform: scaleX(0); transform-origin: left; transition: transform .18s ease;
}
.brv-nav a:hover::after,
.brv-nav .current-menu-item > a::after { transform: scaleX(1); }

.brv-burger {
	display: none; width: 44px; height: 44px; padding: 11px 9px;
	background: transparent; border: 1px solid var(--brv-line); border-radius: var(--brv-radius);
	cursor: pointer;
}
.brv-burger span { display: block; height: 2px; background: var(--brv-primary); transition: transform .2s, opacity .2s; }
.brv-burger span + span { margin-top: 5px; }
.brv-burger[aria-expanded="true"] span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.brv-burger[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.brv-burger[aria-expanded="true"] span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* ------------------------------------------------- barra lateral do celular */
/*
 * `[hidden]` primeiro e com `!important`: a regra de classe logo abaixo tem
 * mais peso que o atributo, e sem esta linha a barra apareceria no primeiro
 * pintar de cada página, antes de o JS chegar.
 */
.brv-drawer[hidden] { display: none !important; }
.brv-drawer { position: fixed; inset: 0; z-index: 1000; display: block; }

.brv-drawer__fundo {
	position: absolute; inset: 0;
	background: rgba(6, 34, 47, .55);
	opacity: 0; transition: opacity .25s ease;
}
.brv-drawer.is-open .brv-drawer__fundo { opacity: 1; }

.brv-drawer__painel {
	position: absolute; inset-block: 0; inset-inline-end: 0;
	width: min(340px, 86vw);
	display: flex; flex-direction: column; gap: 22px;
	padding: 20px 24px 34px;
	background: #fff;
	box-shadow: var(--brv-sombra-forte);
	overflow-y: auto; overscroll-behavior: contain;
	transform: translateX(100%); transition: transform .28s cubic-bezier(.22, .61, .36, 1);
}
.brv-drawer.is-open .brv-drawer__painel { transform: translateX(0); }

.brv-drawer__topo { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.brv-drawer__marca img { display: block; width: auto; max-height: 42px; }
.brv-drawer__x {
	flex: 0 0 auto; width: 40px; height: 40px;
	display: inline-flex; align-items: center; justify-content: center;
	background: transparent; color: var(--brv-primary);
	border: 1px solid var(--brv-line); border-radius: var(--brv-radius); cursor: pointer;
}
.brv-drawer__x:hover { background: var(--brv-light); }

.brv-drawer__nav ul { list-style: none; margin: 0; padding: 0; }
.brv-drawer__nav a {
	display: block; padding: 13px 0;
	font-size: .82rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase;
	color: var(--brv-primary); text-decoration: none;
	border-bottom: 1px solid var(--brv-line);
}
.brv-drawer__nav a:hover,
.brv-drawer__nav .current-menu-item > a { color: var(--brv-accent); }

.brv-drawer .brv-drawer__cta { width: 100%; }

/* auto-fit e nao `1fr 1fr`: sem o WhatsApp cadastrado sobra um item so, e
   com duas colunas fixas ele ficaria com meia largura, torto. */
.brv-drawer__rapido { display: grid; grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)); gap: 10px; }
.brv-drawer__rapido a {
	display: inline-flex; align-items: center; justify-content: center; gap: 8px;
	padding: 12px 8px;
	font-size: .76rem; font-weight: 700; letter-spacing: .05em; text-transform: uppercase;
	color: var(--brv-primary); text-decoration: none;
	background: var(--brv-light); border-radius: var(--brv-radius);
}
.brv-drawer__rapido a:hover { background: var(--brv-primary); color: #fff; }
.brv-drawer__rapido svg { flex: 0 0 auto; }

.brv-drawer__olho {
	margin: 0 0 10px;
	font-size: .7rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase;
	color: var(--brv-accent);
}
.brv-drawer__contato { margin-top: auto; padding-top: 20px; border-top: 1px solid var(--brv-line); }
.brv-drawer__contato ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.brv-drawer__contato li { font-size: .84rem; line-height: 1.5; color: var(--brv-muted); }
.brv-drawer__contato a { color: var(--brv-primary); font-weight: 600; text-decoration: none; }
.brv-drawer__contato a:hover { color: var(--brv-accent); }

.brv-drawer__redes { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 18px; }
.brv-drawer__redes a { font-size: .78rem; font-weight: 600; color: var(--brv-primary); text-decoration: none; }
.brv-drawer__redes a:hover { color: var(--brv-accent); }

/* Com a barra aberta, a página atrás não rola. */
body.brv-travado { overflow: hidden; }

/*
 * Para quem está logado, a barra do WordPress fica POR CIMA de qualquer
 * `position: fixed` no topo — e comia o logo da barra lateral. Só o admin vê
 * isto, mas o admin é o cliente conferindo o site.
 */
body.admin-bar .brv-drawer,
body.admin-bar .brv-modal { inset-block-start: 32px; }
@media screen and (max-width: 782px) {
	body.admin-bar .brv-drawer,
	body.admin-bar .brv-modal { inset-block-start: 46px; }
}

@media (prefers-reduced-motion: reduce) {
	.brv-drawer__fundo, .brv-drawer__painel { transition: none; }
}

@media (max-width: 1024px) {
	.brv-header .brv-nav,
	.brv-header .brv-header__cta { display: none; }
	.brv-header .brv-burger { display: block; }
}

/* ------------------------------------------------------------------ botões */
/*
 * Cada variante começa com `.brv`: sem isso a especificidade fica abaixo do
 * `.brv a` e o texto do botão sai na cor do link.
 */
.brv-btn,
.brv .elementor-button {
	display: inline-flex; align-items: center; justify-content: center; gap: 10px;
	padding: 15px 28px;
	font-family: var(--brv-font); font-size: .8rem; font-weight: 700;
	letter-spacing: .08em; line-height: 1; text-transform: uppercase; text-decoration: none;
	border: 2px solid transparent; border-radius: var(--brv-radius); cursor: pointer;
	transition: background-color .18s, color .18s, border-color .18s, transform .18s;
}
.brv-btn:hover, .brv .elementor-button:hover { transform: translateY(-2px); }

.brv .brv-btn--accent,
.brv .brv-cta-verde .elementor-button { background: var(--brv-accent); border-color: var(--brv-accent); color: #fff; }
.brv .brv-btn--accent:hover,
.brv .brv-cta-verde .elementor-button:hover { background: var(--brv-primary); border-color: var(--brv-primary); color: #fff; }

.brv .brv-btn--primary,
.brv .brv-cta-azul .elementor-button { background: var(--brv-primary); border-color: var(--brv-primary); color: #fff; }
.brv .brv-btn--primary:hover,
.brv .brv-cta-azul .elementor-button:hover { background: var(--brv-accent); border-color: var(--brv-accent); color: #fff; }

.brv .brv-cta-linha .elementor-button { background: transparent; border-color: var(--brv-primary); color: var(--brv-primary); }
.brv .brv-cta-linha .elementor-button:hover { background: var(--brv-primary); color: #fff; }

.brv .brv-cta-vazada .elementor-button { background: transparent; border-color: rgba(255, 255, 255, .55); color: #fff; }
.brv .brv-cta-vazada .elementor-button:hover { background: #fff; border-color: #fff; color: var(--brv-primary); }

.brv .brv-cta-clara .elementor-button { background: #fff; border-color: #fff; color: var(--brv-primary); }
.brv .brv-cta-clara .elementor-button:hover { background: var(--brv-accent); border-color: var(--brv-accent); color: #fff; }

/* -------------------------------------------------------------- tipografia */
.brv h1, .brv h2, .brv h3, .brv h4 { margin: 0; }
.brv p { margin: 0 0 1rem; }
.brv p:last-child { margin-bottom: 0; }

.brv .brv-h1 .elementor-heading-title {
	font-size: clamp(2.2rem, 1.3rem + 2.8vw, 3.4rem);
	font-weight: 700; line-height: 1.1; letter-spacing: -.022em;
	color: var(--brv-text);
}
.brv .brv-h2 .elementor-heading-title {
	font-size: clamp(1.7rem, 1.2rem + 1.7vw, 2.35rem);
	font-weight: 700; line-height: 1.18; letter-spacing: -.015em;
	color: var(--brv-text);
}
.brv .brv-h3 .elementor-heading-title {
	font-size: 1.15rem; font-weight: 700; line-height: 1.35;
	letter-spacing: -.005em; color: var(--brv-text);
}

/* o olho da seção: filete curto + caixa alta, no verde da marca */
.brv .brv-olho p {
	display: inline-flex; align-items: center; gap: 12px;
	font-size: .74rem; font-weight: 700; letter-spacing: .18em;
	text-transform: uppercase; color: var(--brv-accent); margin: 0;
}
.brv .brv-olho p::before {
	content: ""; width: 28px; height: 3px;
	background: var(--brv-accent-claro); border-radius: 2px;
}

.brv .brv-lead p { font-size: 1.15rem; line-height: 1.65; color: var(--brv-muted); }
.brv .brv-texto strong { font-weight: 700; color: var(--brv-primary); }
.brv .brv-centro p, .brv .brv-centro .elementor-heading-title { text-align: center; }
.brv .brv-micro p { font-size: .8rem; color: var(--brv-muted); }

.brv .brv-em { color: var(--brv-primary); }
.brv .brv-em-verde { color: var(--brv-accent); }

/* sobre fundo escuro */
.brv .brv-escuro .elementor-heading-title,
.brv .brv-escuro p, .brv .brv-escuro li { color: #fff; }
.brv .brv-escuro .brv-lead p { color: rgba(255, 255, 255, .78); }
.brv .brv-escuro .brv-olho p { color: var(--brv-accent-luz); }
.brv .brv-escuro .brv-olho p::before { background: var(--brv-accent-luz); }
.brv .brv-escuro .brv-texto strong { color: var(--brv-accent-luz); }
.brv .brv-escuro a:not(.elementor-button) { color: #fff; }
/* o verde de destaque sobre azul e o CLARO: o escuro some no fundo */
.brv .brv-escuro .brv-em-verde { color: var(--brv-accent-luz); }
.brv .brv-escuro .brv-em { color: #fff; }

/* ------------------------------------------------------------------ herói */
.brv .brv-hero { position: relative; overflow: hidden; }
.brv .brv-hero__midia { position: absolute; inset: 0; z-index: 0; overflow: hidden; }
.brv .brv-hero__midia video,
.brv .brv-hero__midia img { width: 100%; height: 100%; object-fit: cover; display: block; }
/*
 * O véu é AZUL, não preto: é o que faz a fotografia de fábrica virar marca em
 * vez de virar foto escura. Denso à esquerda, onde mora o texto; aberto à
 * direita, onde a foto tem de aparecer.
 */
.brv .brv-hero__midia::after {
	content: "";
	position: absolute; inset: 0;
	background: linear-gradient(100deg,
		rgba(6, 34, 47, .93) 0%,
		rgba(2, 85, 129, .82) 42%,
		rgba(2, 85, 129, .34) 72%,
		rgba(2, 85, 129, .12) 100%);
}
.brv .brv-hero > .e-con-inner { position: relative; z-index: 1; }
.brv .brv-hero .brv-h1 .elementor-heading-title { color: #fff; }
.brv .brv-hero .brv-lead p { color: rgba(255, 255, 255, .88); }

/* as credenciais coladas no pé do herói */
.brv .brv-credencial { border-left: 3px solid var(--brv-accent-claro); }
.brv .brv-credencial .brv-credencial__num .elementor-heading-title {
	font-size: 1.6rem; font-weight: 700; line-height: 1.1; color: #fff;
}
.brv .brv-credencial .brv-credencial__rot p {
	font-size: .72rem; font-weight: 600; letter-spacing: .12em;
	text-transform: uppercase; color: rgba(255, 255, 255, .72); margin: 0;
}

/* --------------------------------------------------------- faixa de normas */
.brv .brv-norma { border-right: 1px solid var(--brv-line); }
.brv .brv-norma:last-child { border-right: 0; }
.brv .brv-norma .brv-norma__valor .elementor-heading-title {
	font-size: 1.05rem; font-weight: 700; color: var(--brv-primary); line-height: 1.3;
}
.brv .brv-norma .brv-norma__rot p {
	font-size: .72rem; font-weight: 600; letter-spacing: .12em;
	text-transform: uppercase; color: var(--brv-muted); margin: 0;
}
@media (max-width: 1024px) {
	.brv .brv-norma { border-right: 0; border-bottom: 1px solid var(--brv-line); }
}

/* ------------------------------------------------------------ foto grande */
.brv .brv-foto img { display: block; width: 100%; border-radius: var(--brv-radius); }
/* moldura deslocada: dá profundidade sem sombra pesada */
.brv .brv-foto-moldura { position: relative; }
.brv .brv-foto-moldura::before {
	content: "";
	position: absolute; inset: 22px -22px -22px 22px;
	border: 3px solid var(--brv-accent-claro);
	border-radius: var(--brv-radius);
	z-index: -1;
}
@media (max-width: 767px) { .brv .brv-foto-moldura::before { display: none; } }

/* -------------------------------------------------- cartão de linha (ficha) */
.brv .brv-ficha {
	background: #fff;
	border: 1px solid var(--brv-line);
	border-radius: var(--brv-radius);
	overflow: hidden;
	transition: border-color .2s, box-shadow .2s, transform .2s;
}
.brv .brv-ficha:hover {
	border-color: transparent;
	box-shadow: var(--brv-sombra-forte);
	transform: translateY(-4px);
}
.brv .brv-ficha .elementor-widget-image img {
	display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover;
}
.brv .brv-ficha__tag p {
	display: inline-block; margin: 0;
	padding: 5px 10px;
	font-size: .68rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase;
	color: var(--brv-primary); background: var(--brv-light);
	border-radius: 2px;
}
.brv .brv-ficha__spec .elementor-icon-list-items { list-style: none; margin: 0; padding: 0; }
.brv .brv-ficha__spec .elementor-icon-list-item {
	padding: 7px 0; border-top: 1px solid var(--brv-line);
	font-size: .84rem; color: var(--brv-muted);
}
.brv .brv-ficha__spec .elementor-icon-list-icon { display: none; }
.brv .brv-ficha .elementor-button {
	padding: 0; background: none; border: 0; color: var(--brv-accent);
	font-size: .78rem; letter-spacing: .1em;
}
.brv .brv-ficha .elementor-button:hover { background: none; color: var(--brv-primary); transform: none; }
.brv .brv-ficha .elementor-button::after { content: "→"; font-size: 1rem; }

/* ------------------------------------------------- os quatro motivos (01–04) */
.brv .brv-motivo { border-top: 2px solid rgba(255, 255, 255, .22); }
.brv .brv-motivo .brv-motivo__num p {
	margin: 0;
	font-family: var(--brv-display);
	font-size: 2.6rem; font-weight: 800; line-height: 1;
	/* 42% dá 3,54:1 sobre o azul — ornamento, mas ainda é texto e precisa
	   passar dos 3:1 que a WCAG pede para tamanho grande. A 22% dava 1,96. */
	color: rgba(255, 255, 255, .42);
}

/* ---------------------------------------------------------- segmento (lista) */
.brv .brv-segmento { border-bottom: 1px solid var(--brv-line); }
.brv .brv-segmento .brv-ico .elementor-icon {
	display: inline-flex; align-items: center; justify-content: center;
	width: 44px; height: 44px; color: var(--brv-accent);
	background: rgba(1, 168, 76, .10); border-radius: var(--brv-radius);
}
.brv .brv-segmento .brv-ico svg { width: 22px; height: 22px; }

/* ------------------------------------------------------- pastilha das linhas */
.brv .brv-pastilha .elementor-button {
	width: 100%; justify-content: space-between;
	padding: 14px 16px;
	background: #fff; border: 1px solid var(--brv-line); color: var(--brv-primary);
	font-size: .82rem; font-weight: 600; letter-spacing: 0; text-transform: none; text-align: left;
}
.brv .brv-pastilha .elementor-button:hover {
	background: var(--brv-primary); border-color: var(--brv-primary); color: #fff; transform: none;
}
.brv .brv-pastilha .elementor-button::after { content: "→"; opacity: .5; }
.brv .brv-pastilha .elementor-button:hover::after { opacity: 1; }

/* ------------------------------------------------------------ lista técnica */
.brv .brv-check .elementor-icon-list-items { list-style: none; margin: 0; padding: 0; }
.brv .brv-check .elementor-icon-list-item {
	position: relative; padding: 9px 0 9px 30px; line-height: 1.55; font-size: .97rem;
}
.brv .brv-check .elementor-icon-list-item::before {
	content: ""; position: absolute; left: 2px; top: 16px;
	width: 9px; height: 5px;
	border-left: 2px solid var(--brv-accent-claro);
	border-bottom: 2px solid var(--brv-accent-claro);
	transform: rotate(-45deg);
}
.brv .brv-check .elementor-icon-list-icon { display: none; }

.brv .brv-specs .elementor-icon-list-items { list-style: none; margin: 0; padding: 0; }
.brv .brv-specs .elementor-icon-list-item {
	display: flex; justify-content: space-between; gap: 18px;
	padding: 12px 0; border-bottom: 1px solid var(--brv-line); font-size: .92rem;
}
.brv .brv-escuro .brv-specs .elementor-icon-list-item { border-bottom-color: rgba(255, 255, 255, .18); }
.brv .brv-specs .elementor-icon-list-icon { display: none; }

/* ------------------------------------------------------------- catálogo */
.brv .brv-pdf { border-bottom: 1px solid var(--brv-line); }
.brv .brv-pdf .elementor-button {
	width: 100%; justify-content: space-between; padding: 16px 0;
	background: none; border: 0; color: var(--brv-text);
	font-size: .95rem; font-weight: 600; letter-spacing: 0; text-transform: none; text-align: left;
}
.brv .brv-pdf .elementor-button:hover { background: none; color: var(--brv-accent); transform: none; }
.brv .brv-pdf .elementor-button::after { content: "↓ PDF"; font-size: .72rem; letter-spacing: .1em; opacity: .6; }

/* ---------------------------------------------- página interna e texto longo */
.brv .brv-trilha p { font-size: .8rem; letter-spacing: .04em; color: rgba(255, 255, 255, .72); margin: 0; }
.brv .brv-trilha a { color: #fff; text-decoration: none; }
.brv .brv-trilha a:hover { text-decoration: underline; }

.brv .brv-artigo .elementor-widget-text-editor { font-size: 1.0625rem; line-height: 1.75; }
.brv .brv-artigo .elementor-heading-title {
	font-size: 1.3rem; font-weight: 700; line-height: 1.3;
	color: var(--brv-primary); text-align: left;
}
.brv .brv-artigo strong { font-weight: 700; color: var(--brv-primary); }

.brv .brv-lateral { position: sticky; top: calc(var(--brv-header-h) + 20px); }
@media (max-width: 1024px) { .brv .brv-lateral { position: static; } }

.brv .brv-caixa {
	background: var(--brv-light); border-radius: var(--brv-radius);
	border-top: 3px solid var(--brv-accent-claro);
}
.brv .brv-caixa--azul { background: var(--brv-primary); border-top-color: var(--brv-accent-luz); }

/* ------------------------------------------------------------------- mapa */
.brv .brv-mapa iframe { display: block; width: 100%; height: 440px; border: 0; }
@media (max-width: 767px) { .brv .brv-mapa iframe { height: 300px; } }

/* ---------------------------------------------------------------- rodapé */
.brv-footer { padding-block: 64px 26px; background: var(--brv-dark); color: rgba(255, 255, 255, .74); }
.brv-footer__grid { display: grid; grid-template-columns: 1.5fr 1fr 1.2fr 1.3fr; gap: 40px; }
@media (max-width: 1024px) { .brv-footer__grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 600px) { .brv-footer__grid { grid-template-columns: 1fr; gap: 30px; } }

.brv-footer__logo { width: auto; max-height: 52px; margin-bottom: 18px; filter: brightness(0) invert(1); }
.brv-footer__about { font-size: .88rem; line-height: 1.7; margin: 0 0 18px; }
.brv-footer__h {
	margin: 0 0 14px; font-size: .74rem; font-weight: 700;
	letter-spacing: .16em; text-transform: uppercase; color: #fff;
}
.brv-footer ul { list-style: none; margin: 0; padding: 0; }
.brv-footer li { margin-bottom: 9px; font-size: .9rem; line-height: 1.6; }
.brv-footer a { color: rgba(255, 255, 255, .74); text-decoration: none; }
.brv-footer a:hover { color: var(--brv-accent-luz); }
.brv-footer__redes { display: flex; gap: 18px; margin-top: 16px; }
.brv-footer__redes li { margin: 0; }

.brv-footer__bottom {
	display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between;
	gap: 12px 20px; margin-top: 48px; padding-top: 22px;
	border-top: 1px solid rgba(255, 255, 255, .14);
}
.brv-footer .brv-micro, .brv-footer__bottom p { margin: 0; font-size: .78rem; color: rgba(255, 255, 255, .56); }
.brv-credito a { display: inline-flex; align-items: center; gap: 9px; }
.brv-credito img { max-height: 20px; width: auto; opacity: .7; }
.brv-credito a:hover img { opacity: 1; }

/* -------------------------------------------------------------- WhatsApp */
.brv-wa {
	position: fixed; right: 20px; bottom: 20px; z-index: 950;
	display: inline-flex; align-items: center; justify-content: center;
	width: 56px; height: 56px; border-radius: 50%;
	background: #25d366; color: #fff; box-shadow: 0 8px 24px rgba(0, 0, 0, .22);
}
.brv-wa:hover { color: #fff; background: #1eb457; }

/* ------------------------------------------------------- entrada ao rolar */
.brv .brv-rise { opacity: 0; transform: translateY(18px); transition: opacity .6s ease, transform .6s ease; }
.brv .brv-rise.is-in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
	.brv .brv-rise { opacity: 1; transform: none; transition: none; }
}
.brv-anchor { position: absolute; top: calc(var(--brv-header-h) * -1 - 8px); }

/* -------------------------------------------------- Elementor: correções */
.brv .elementor-widget-image figure { margin: 0; }
.brv .elementor-widget-text-editor > .elementor-widget-container > *:first-child { margin-top: 0; }
.brv .elementor-widget-container > *:last-child { margin-bottom: 0; }

/* =========================================================================
   O que as outras 37 páginas usam
   ========================================================================= */

/* título de bloco dentro do texto longo */
.brv .brv-h2--esq .elementor-heading-title {
	font-size: 1.3rem; font-weight: 700; line-height: 1.3;
	color: var(--brv-primary); text-align: left;
}

/* ------------------------------------------------------------- formulários */
.brv-form { margin: 0; }
.brv-form__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 18px 20px;
}
@media (max-width: 767px) { .brv-form__grid { grid-template-columns: 1fr; } }

.brv-field { margin: 0; display: flex; flex-direction: column; gap: 7px; }
.brv-field--largo { grid-column: 1 / -1; }
.brv-field__label {
	font-size: .74rem; font-weight: 700; letter-spacing: .12em;
	text-transform: uppercase; color: var(--brv-muted);
}
.brv-field__label span { color: var(--brv-accent); }

.brv-form input,
.brv-form select,
.brv-form textarea {
	width: 100%;
	padding: 13px 14px;
	font-family: var(--brv-font); font-size: .95rem;
	color: var(--brv-text); background: #fff;
	border: 1px solid var(--brv-line); border-radius: var(--brv-radius);
	outline: none;
}
.brv-form textarea { resize: vertical; min-height: 140px; }
.brv-form input:focus,
.brv-form select:focus,
.brv-form textarea:focus {
	border-color: var(--brv-primary);
	box-shadow: 0 0 0 3px rgba(2, 85, 129, .14);
}

.brv-form__foot { margin: 24px 0 10px; }
.brv-form .brv-micro { margin: 0; font-size: .8rem; color: var(--brv-muted); }

.brv-form__ok,
.brv-form__erro {
	margin: 0 0 20px; padding: 14px 18px;
	border-radius: var(--brv-radius);
	font-size: .94rem; font-weight: 600;
	border-left: 3px solid currentColor;
}
.brv-form__ok { background: rgba(1, 168, 76, .10); color: var(--brv-accent); }
.brv-form__erro { background: rgba(178, 40, 40, .09); color: #a32020; }

/* honeypot: fora da tela, mas não display:none — robô ignora display:none */
.brv-hp {
	position: absolute !important; left: -9999px;
	width: 1px; height: 1px; overflow: hidden;
}

/* a caixa que envolve o formulário */
.brv .brv-caixa-form {
	background: #fff;
	border: 1px solid var(--brv-line);
	border-radius: var(--brv-radius);
	box-shadow: var(--brv-sombra);
}

/* formulário dentro de um bloco escuro */
.brv .brv-escuro .brv-field__label { color: rgba(255, 255, 255, .78); }
.brv .brv-escuro .brv-form input,
.brv .brv-escuro .brv-form select,
.brv .brv-escuro .brv-form textarea {
	background: rgba(255, 255, 255, .08);
	border-color: rgba(255, 255, 255, .24);
	color: #fff;
}
.brv .brv-escuro .brv-form input::placeholder,
.brv .brv-escuro .brv-form textarea::placeholder { color: rgba(255, 255, 255, .55); }

.brv-busca { display: flex; gap: 10px; margin-top: 18px; }
.brv-busca input {
	flex: 1 1 auto; padding: 13px 14px;
	border: 1px solid var(--brv-line); border-radius: var(--brv-radius);
	font-family: var(--brv-font);
}

/* --------------------------------------- páginas que o Elementor não montou */
/* (busca, 404, post do blog — o tema tem de se virar sozinho nelas) */
.brv-page-head {
	padding-block: 64px 24px;
	background: var(--brv-light);
	border-bottom: 1px solid var(--brv-line);
}
.brv-page-head .brv-h1 {
	font-size: clamp(2rem, 1.3rem + 2.2vw, 2.8rem);
	font-weight: 700; line-height: 1.15; letter-spacing: -.02em;
}
.brv-prosa { padding-block: 44px 76px; }
.brv-prosa h2 { margin: 1.6em 0 .5em; color: var(--brv-primary); font-size: 1.3rem; }
.brv-prosa ul, .brv-prosa ol { padding-left: 1.3em; }
.brv-lista { padding-block: 44px 76px; }
.brv-lista .brv-card { margin-bottom: 28px; }
.brv-card__titulo { font-size: 1.15rem; font-weight: 700; margin: 0 0 6px; }
.brv-card__titulo a { text-decoration: none; }
.brv-card__texto { color: var(--brv-muted); margin: 0; }

.brv-404 { padding-block: 96px 120px; text-align: center; }
.brv-404 .brv-h1 { font-size: clamp(2rem, 1.3rem + 2.2vw, 2.8rem); font-weight: 700; line-height: 1.15; }
.brv-404 .brv-eyebrow {
	font-size: .74rem; font-weight: 700; letter-spacing: .18em;
	text-transform: uppercase; color: var(--brv-accent);
}
.brv-404 .brv-lead { font-size: 1.1rem; color: var(--brv-muted); }
.brv-404__acoes { display: flex; flex-wrap: wrap; gap: 14px; justify-content: center; margin: 30px 0; }
.brv-404 .brv-busca { max-width: 460px; margin-inline: auto; }

.brv-comentarios { padding-block: 40px 60px; }
.brv-comentarios__lista { list-style: none; padding: 0; }

/* ------------------------------------------- herói: o bloco de contenção
 * O Elementor 4 dá `position: relative` a TODO widget. A mídia do herói vive
 * dentro de um widget de HTML, então era ele — e não o herói — o bloco de
 * contenção do `inset: 0`. Como o widget não tem altura própria, a foto e o
 * vídeo ficavam com 0px e a primeira dobra saía branca, com o título branco
 * por cima. Na prévia estática isso não aparece: lá a mídia é filha direta do
 * herói. Devolver o widget para `static` faz a mídia medir-se pelo herói.
 */
.brv .brv-hero > .elementor-widget-html,
.brv .brv-hero > .elementor-widget-html > .elementor-widget-container { position: static; }

/* O herói é `e-con-full`: não existe `.e-con-inner` para receber o z-index
 * que põe o texto acima do véu. Quem recebe é o container filho. */
.brv .brv-hero > .e-con { position: relative; z-index: 1; }

/* ------------------------------------------------ trilha: sem <p> por baixo
 * O widget de texto do Elementor 4 só embrulha o conteúdo em <p> quando ele
 * começa em texto puro. A trilha começa com <a>, então não havia <p> — e a
 * regra `.brv-trilha p` não pegava: o "Flanges" saía na tinta escura sobre a
 * faixa azul. A cor e o tamanho passam a valer no próprio widget.
 */
.brv .brv-trilha { font-size: .8rem; letter-spacing: .04em; color: rgba(255, 255, 255, .72); }
.brv .brv-trilha span { color: inherit; }

/* ------------------------------------------------- popup de orçamento */
/*
 * Mesma armadilha da barra lateral: `[hidden]` precisa de `!important` para
 * não perder para `.brv-modal { display: flex }`.
 */
.brv-modal[hidden] { display: none !important; }
.brv-modal {
	position: fixed; inset: 0; z-index: 1000;
	display: flex; align-items: flex-start; justify-content: center;
	padding: clamp(12px, 4vh, 48px) 16px;
	overflow-y: auto; overscroll-behavior: contain;
}
.brv-modal__fundo { position: fixed; inset: 0; background: rgba(6, 34, 47, .60); opacity: 0; transition: opacity .2s ease; }
.brv-modal.is-open .brv-modal__fundo { opacity: 1; }

.brv-modal__caixa {
	position: relative;
	width: min(640px, 100%);
	margin: auto;
	padding: clamp(24px, 4vw, 40px);
	background: #fff;
	border-radius: var(--brv-radius);
	box-shadow: var(--brv-sombra-forte);
	opacity: 0; transform: translateY(14px);
	transition: opacity .2s ease, transform .2s ease;
}
.brv-modal.is-open .brv-modal__caixa { opacity: 1; transform: none; }

.brv-modal__x {
	position: absolute; inset-block-start: 12px; inset-inline-end: 12px;
	width: 40px; height: 40px;
	display: inline-flex; align-items: center; justify-content: center;
	background: transparent; color: var(--brv-muted);
	border: 1px solid var(--brv-line); border-radius: var(--brv-radius); cursor: pointer;
}
.brv-modal__x:hover { background: var(--brv-light); color: var(--brv-primary); }

.brv-modal__olho {
	margin: 0 0 6px;
	font-size: .7rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase;
	color: var(--brv-accent);
}
.brv-modal__titulo {
	margin: 0 0 8px; padding-inline-end: 44px;
	font-family: var(--brv-display);
	font-size: clamp(1.35rem, 3.4vw, 1.9rem); line-height: 1.15; color: var(--brv-primary);
}
.brv-modal__sub { margin: 0 0 22px; font-size: .92rem; line-height: 1.6; color: var(--brv-muted); }
.brv-modal .brv-form__grid { grid-template-columns: 1fr 1fr; }
.brv-modal .brv-form textarea { min-height: 104px; }
.brv-modal .brv-form__foot .brv-btn { width: 100%; }

@media (max-width: 600px) {
	.brv-modal .brv-form__grid { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) {
	.brv-modal__fundo, .brv-modal__caixa { transition: none; }
}
