/* ===== Fontes (WOFF2 em base64, subconjunto latino) ===== */
@font-face{
  font-family:'Montserrat';
  src:url(/assets/arquivos/a14f7ffbd7d9.woff2) format('woff2');
  font-weight:500 800; font-style:normal; font-display:swap;
}
@font-face{
  font-family:'Maven Pro';
  src:url(/assets/arquivos/73ce22a9ec1f.woff2) format('woff2');
  font-weight:400 900; font-style:normal; font-display:swap;
}

/* ===== Variáveis (escopadas no bloco, não em :root, para não colidir com o tema) ===== */
.baru-inst{
  /* paleta oficial Baru Financeira (fixa, não alterar) */
  --brand-teal:#299d8f;       /* principal */
  --brand-dark:#04211d;       /* principal */
  --brand-teal-dark:#10544f;  /* principal */
  --white:#ffffff;            /* neutra */
  --gray:#b4b4b4;             /* neutra */
  --black:#000000;            /* neutra */
  --sage:#a8c4af;             /* apoio */
  --amber:#e7a77a;            /* apoio */
  --cyan:#0c8f9d;             /* apoio */
  --orange:#e26432;           /* apoio */

  /* cor de destaque do Institucional (Guia de Comunicação: #10544f = Institucional) */
  --c1:var(--brand-teal-dark);
  --c1-800:var(--brand-teal-dark);
  --c1-900:var(--brand-dark);
  --accent:var(--amber);
  --ink:var(--brand-dark);
  --ink-soft:rgba(4,33,29,0.72);
  --bg-alt:rgba(4,33,29,0.045);
  --bg-alt-2:rgba(4,33,29,0.02);

  --radius-lg:28px;
  --radius-md:18px;
  --radius-sm:10px;
  --shadow-soft:0 24px 60px -20px rgba(4,33,29,0.35);

  /* tamanho único de todos os títulos de nível H1 da página (topo e Operação nacional) */
  --fs-h1:clamp(1.9rem, 2.9vw, 3rem);

  --font-title:'Montserrat', sans-serif;
  --font-body:'Maven Pro', sans-serif;

  font-family:var(--font-body);
  color:var(--ink);
  background:var(--white);
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
  overflow-x:clip;

  /* Largura total mesmo dentro do container "boxed" do tema/Elementor: o bloco
     sai da caixa e ocupa a tela de ponta a ponta. --baru-sbw é a largura da
     barra de rolagem, medida pelo script logo abaixo do bloco. */
  position:relative;
  width:calc(100vw - var(--baru-sbw, 0px));
  max-width:none;
  margin-left:calc(50% - 50vw + var(--baru-sbw, 0px) / 2);
  margin-right:0;
}
/* garantia contra rolagem lateral caso o script não rode (só nas páginas que têm este bloco) */
html:has(.baru-inst), body:has(.baru-inst){ overflow-x:clip; }
.baru-inst *, .baru-inst *::before, .baru-inst *::after{ box-sizing:border-box; margin:0; padding:0; }
.baru-inst img{ max-width:100%; height:auto; display:block; border:0; }
.baru-inst a{ text-decoration:none; color:inherit; }
.baru-inst svg{ display:block; }
.baru-inst section{ position:relative; }
.baru-inst section[id]{ scroll-margin-top:96px; }
.baru-inst .container{ width:100%; max-width:1180px; margin:0 auto; padding:0 24px; }

.baru-inst h1, .baru-inst h2, .baru-inst h3, .baru-inst h4{
  font-family:var(--font-title); font-weight:700; color:var(--ink);
  line-height:1.2; letter-spacing:-0.01em; text-transform:none;
}
.baru-inst h1{ font-size:var(--fs-h1); line-height:1.15; }
.baru-inst h1, .baru-inst h2{ text-wrap:balance; }
.baru-inst .statement, .baru-inst p{ text-wrap:pretty; }
.baru-inst h2{ font-size:clamp(1.6rem, 2.7vw, 2.3rem); }
.baru-inst p{ font-family:var(--font-body); font-size:1.02rem; line-height:1.6; color:var(--ink-soft); }

/* eyebrow (letras menores acima do título). Também usado em h2 quando a
   seção tem o título em tamanho de eyebrow ("Quem somos", "Operação nacional"). */
.baru-inst .eyebrow, .baru-inst h2.eyebrow{
  display:inline-flex; align-items:center; gap:8px;
  font-family:var(--font-title); font-weight:700; font-size:0.75rem; line-height:1.3;
  letter-spacing:0.14em; text-transform:uppercase; color:var(--c1);
  margin-bottom:14px;
}
.baru-inst .eyebrow::before{ content:''; width:8px; height:8px; border-radius:50%; background:var(--accent); flex-shrink:0; }

/* frase de destaque (parágrafo principal das seções com título-eyebrow) */
.baru-inst .statement{
  font-family:var(--font-title); font-weight:600; color:var(--ink);
  font-size:clamp(1.3rem, 2vw, 1.75rem); line-height:1.4; letter-spacing:-0.01em;
}
.baru-inst .statement strong{ font-weight:700; color:var(--brand-teal); }
.baru-inst .statement-md{ font-size:clamp(1.15rem, 1.65vw, 1.5rem); }

/* título de seção no tamanho do h1 (semântica h2: a página tem um único h1) */
.baru-inst h2.h1-size{ font-size:var(--fs-h1); line-height:1.15; }
/* parágrafo de abertura, maior que o corpo; destaque em verde teal da marca */
.baru-inst p.lead{ font-size:1.18rem; line-height:1.6; }
.baru-inst p.lead strong{ font-weight:700; color:var(--brand-teal); }

/* contraste sobre fundo escuro */
.baru-inst .on-dark h1, .baru-inst .on-dark h2, .baru-inst .on-dark h3{ color:var(--white); }
.baru-inst .on-dark p{ color:rgba(255,255,255,0.82); }
.baru-inst .on-dark .eyebrow{ color:var(--sage); }

/* glass */
.baru-inst .glass{
  background:rgba(255,255,255,0.10);
  border:1px solid rgba(255,255,255,0.24);
  backdrop-filter:blur(18px) saturate(140%);
  -webkit-backdrop-filter:blur(18px) saturate(140%);
}

/* botões (Institucional: âmbar com texto escuro) */
.baru-inst .btn{
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  font-family:var(--font-body); font-weight:700; font-size:0.95rem; line-height:1.2;
  letter-spacing:normal; text-transform:none; white-space:nowrap;
  padding:15px 28px; border-radius:999px; border:none; cursor:pointer;
  transition:transform .18s ease, filter .18s ease, box-shadow .18s ease;
}
.baru-inst .btn svg{ width:18px; height:18px; flex-shrink:0; }
.baru-inst .btn-primary{ background:var(--accent); color:var(--ink); box-shadow:0 14px 30px -10px rgba(231,167,122,0.55); }
.baru-inst .btn-primary:hover{ transform:translateY(-2px); filter:brightness(0.9); color:var(--ink); }
.baru-inst .on-dark .btn-primary{ box-shadow:0 14px 30px -10px rgba(0,0,0,0.45); }
.baru-inst a:focus-visible{ outline:3px solid var(--c1); outline-offset:3px; }
.baru-inst .on-dark a:focus-visible{ outline-color:var(--white); }

/* fotos */
.baru-inst .brand-shape-photo{ width:100%; height:auto; display:block; }
.baru-inst .section-photo{
  width:100%; aspect-ratio:4/4.6; object-fit:cover; display:block;
  border-radius:var(--radius-lg); box-shadow:var(--shadow-soft);
}
.baru-inst .section-photo.is-wide{ aspect-ratio:3/2; }

/* ===================== HERO (largura total, 850px de altura) ===================== */
/* 850px a partir de ~1510px de largura; abaixo disso a altura acompanha a
   proporção 16:9 da foto, para ela nunca ser cortada nas laterais (o texto é
   posicionado em % da largura da foto e depende disso). */
.baru-inst .hero-inst{
  height:min(850px, calc((100vw - var(--baru-sbw, 0px)) * 0.5625));
  overflow:hidden; background:var(--c1-800); isolation:isolate;
}
.baru-inst .hero-inst-media{ position:absolute; inset:0; z-index:-1; }
.baru-inst .hero-inst-media img{ width:100%; height:100%; object-fit:cover; object-position:50% 40%; }
.baru-inst .hero-inst-media::after{
  content:''; position:absolute; inset:0;
  background:linear-gradient(90deg, rgba(4,33,29,0) 58%, rgba(4,33,29,0.30) 100%);
}
/* o texto fica na faixa de degradê verde da própria foto (lado direito),
   posicionado em % da largura da foto para nunca cobrir as pessoas */
.baru-inst .hero-inst-copy{ position:absolute; top:47%; left:70.5%; right:5%; transform:translateY(-50%); }
.baru-inst .hero-inst-copy .eyebrow{ margin-bottom:18px; }
.baru-inst .hero-inst-copy h1{ font-size:var(--fs-h1); }
.baru-inst .hero-inst-copy h1 .hl{ color:var(--sage); }
.baru-inst .hero-inst-scroll{
  position:absolute; left:70.5%; bottom:7%;
  width:48px; height:48px; border-radius:50%;
  display:flex; align-items:center; justify-content:center; color:var(--white);
  transition:background .18s ease, transform .18s ease;
}
.baru-inst .hero-inst-scroll:hover{ background:rgba(255,255,255,0.2); transform:translateY(2px); }
.baru-inst .hero-inst-scroll svg{ width:22px; height:22px; }

@media (max-width:979px){
  .baru-inst .hero-inst{ height:auto; }
  .baru-inst .hero-inst-media{ position:relative; inset:auto; z-index:auto; aspect-ratio:16/9; }
  .baru-inst .hero-inst-media img{ object-position:50% 50%; }
  .baru-inst .hero-inst-media::after{ background:linear-gradient(180deg, rgba(16,84,79,0) 60%, rgba(16,84,79,1) 100%); }
  .baru-inst .hero-inst-copy{ position:relative; top:auto; left:auto; right:auto; transform:none; padding:8px 24px 64px; max-width:680px; }
  .baru-inst{ --fs-h1:clamp(1.75rem, 6vw, 2.4rem); }
  .baru-inst .hero-inst-scroll{ display:none; }
}
@media (max-width:600px){
  .baru-inst .hero-inst-media{ aspect-ratio:4/3; }
  .baru-inst .hero-inst-media img{ object-position:34% 50%; }
  .baru-inst .hero-inst-copy{ padding:4px 20px 52px; }
}

/* ===================== QUEM SOMOS ===================== */
.baru-inst .about{ padding:104px 0; background:var(--white); }
.baru-inst .about-grid{ display:grid; grid-template-columns:1.15fr 0.85fr; gap:64px; align-items:center; }
.baru-inst .about-visual{ width:100%; max-width:440px; margin:0 auto; }
.baru-inst .about-copy h2{ margin-bottom:20px; }
.baru-inst .about-copy .lead{ max-width:560px; }
/* selo institucional abaixo do texto do Quem somos */
.baru-inst .selo{
  display:flex; align-items:center; gap:16px; margin-top:30px; max-width:520px;
  background:var(--white); border-radius:var(--radius-md); padding:20px 22px;
  border:1px solid rgba(4,33,29,0.08); box-shadow:0 16px 40px -18px rgba(4,33,29,0.22);
}
.baru-inst .selo-icon{
  width:48px; height:48px; border-radius:14px; flex-shrink:0;
  background:var(--c1); color:var(--white); display:flex; align-items:center; justify-content:center;
}
.baru-inst .selo-icon svg{ width:24px; height:24px; }
.baru-inst .selo-title{ font-family:var(--font-title); font-weight:700; font-size:1rem; line-height:1.3; color:var(--ink); margin-bottom:4px; }
.baru-inst .selo-text{ font-size:0.92rem; line-height:1.5; }

/* ===================== OPERAÇÃO NACIONAL ===================== */
/* A arte do mapa vem cortada na borda esquerda e na base: ela fica colada na
   lateral esquerda da página e na base da seção, sem card e sem borda. O texto
   fica à direita, alinhado ao container das outras seções. */
.baru-inst .operacao{ background:var(--bg-alt); overflow:hidden; }
.baru-inst .operacao-grid{
  display:grid; grid-template-columns:minmax(0, 1.15fr) minmax(0, 0.85fr); column-gap:56px;
  padding-right:max(24px, calc((100% - 1180px) / 2 + 24px));
}
.baru-inst .operacao-visual{ align-self:end; padding-top:72px; }
.baru-inst .operacao-visual img{ width:100%; max-width:1040px; height:auto; margin-bottom:-1px; }
.baru-inst .operacao-copy{ align-self:center; padding:80px 0; }
.baru-inst .operacao-copy .h1-size{ margin-bottom:22px; max-width:540px; }
.baru-inst .operacao-copy .lead{ max-width:540px; }

/* ===================== NÚMEROS ===================== */
/* A faixa começa no mesmo teal (#299d8f) da base da arte do mapa, então a
   forma da foto continua dentro dela; desce para #10544f. Retícula de pontos
   e contorno de semente repetem os grafismos das artes Baru. */
.baru-inst .numeros{
  padding:64px 0 88px; overflow:hidden; isolation:isolate;
  background:linear-gradient(180deg, var(--brand-teal) 0%, var(--brand-teal-dark) 68%, var(--brand-teal-dark) 100%);
}
.baru-inst .numeros::before{
  content:''; position:absolute; inset:0; z-index:-1;
  background-image:radial-gradient(rgba(255,255,255,0.16) 1.2px, transparent 1.7px);
  background-size:13px 13px;
  -webkit-mask-image:radial-gradient(ellipse 55% 90% at 100% 100%, #000 0%, transparent 100%);
  mask-image:radial-gradient(ellipse 55% 90% at 100% 100%, #000 0%, transparent 100%);
}
.baru-inst .numeros::after{
  content:''; position:absolute; z-index:-1; width:560px; height:560px; right:-170px; top:-120px;
  border:2px solid rgba(255,255,255,0.16); border-radius:0 72% 0 72%; transform:rotate(10deg);
}
.baru-inst .numeros-grid{ display:grid; grid-template-columns:repeat(3, 1fr); gap:20px; }
.baru-inst .stat-card{
  border-radius:var(--radius-md); padding:30px 28px; display:flex; flex-direction:column;
}
/* glass escuro: garante contraste do texto branco sobre o teal */
.baru-inst .numeros .stat-card.glass{
  background:linear-gradient(180deg, rgba(4,33,29,0.22) 0%, rgba(4,33,29,0.38) 100%); border-color:rgba(255,255,255,0.18);
  box-shadow:0 20px 40px -24px rgba(4,33,29,0.6);
}
/* traço âmbar no topo de cada card (substitui os ícones) */
.baru-inst .stat-card::before{
  content:''; display:block; width:32px; height:3px; border-radius:2px;
  background:var(--accent); margin-bottom:22px;
}
.baru-inst .stat-value{
  font-family:var(--font-title); font-weight:800; color:var(--white); letter-spacing:-0.02em;
  font-size:clamp(1.9rem, 2.8vw, 2.5rem); line-height:1.1;
  margin-bottom:12px;
}
.baru-inst .stat-value.is-text{ font-weight:700; font-size:clamp(1.2rem, 1.7vw, 1.45rem); line-height:1.25; letter-spacing:-0.01em; }
.baru-inst .stat-label{ font-size:0.95rem; line-height:1.5; color:rgba(255,255,255,0.9); }

/* ===================== PORTFÓLIO / NOSSAS SOLUÇÕES ===================== */
/* sem padding inferior de propósito: a base da foto encosta na seção seguinte */
.baru-inst .solucoes{ padding:104px 0 0; background:var(--white); overflow:hidden; }
.baru-inst .solucoes-grid{ display:grid; grid-template-columns:1.1fr 0.9fr; gap:56px; align-items:end; }
.baru-inst .solucoes-copy{ align-self:center; padding-bottom:104px; }
.baru-inst .solucoes-copy h2{ margin-bottom:18px; }
.baru-inst .solucoes-copy p{ max-width:560px; margin-bottom:32px; }
.baru-inst .solucoes-ctas{ display:flex; flex-wrap:wrap; gap:14px; }
.baru-inst .solucoes-visual{ width:100%; max-width:460px; justify-self:center; }
.baru-inst .solucoes-visual img{ margin-bottom:-1px; }

/* ===================== JEITO DE SER BARU ===================== */
.baru-inst .jeito-baru{
  padding:112px 0; overflow:hidden; isolation:isolate;
  background:linear-gradient(135deg, var(--c1-800) 0%, var(--c1-900) 100%);
}
.baru-inst .jeito-grid{ display:grid; grid-template-columns:1fr 1fr; gap:72px; align-items:center; }
.baru-inst .jeito-visual{ position:relative; }
.baru-inst .jeito-visual::before{
  content:''; position:absolute; z-index:0; width:58%; aspect-ratio:1; left:-9%; top:-14%;
  background:var(--brand-teal); border-radius:0 72% 0 72%; opacity:0.55;
}
.baru-inst .jeito-visual .section-photo{ position:relative; z-index:1; box-shadow:0 30px 70px -24px rgba(0,0,0,0.55); }
.baru-inst .jeito-copy h2{ margin-bottom:18px; }
.baru-inst .jeito-copy p{ max-width:520px; margin-bottom:32px; }

/* ===================== CONTATO ===================== */
/* fechamento discreto: fundo branco, sem painel, faixa mais baixa que as demais */
.baru-inst .contato{ padding:64px 0; background:var(--white); }
.baru-inst .contato-card{
  display:grid; grid-template-columns:minmax(0, 1.3fr) minmax(0, 0.7fr); gap:48px; align-items:center;
}
.baru-inst .contato-copy .lead{ max-width:600px; margin-bottom:26px; }
.baru-inst .contato-visual{ width:100%; max-width:250px; justify-self:center; }

/* ===================== RESPONSIVO ===================== */
@media (max-width:979px){
  .baru-inst .about{ padding:72px 0; }
  .baru-inst .about-grid, .baru-inst .operacao-grid, .baru-inst .solucoes-grid, .baru-inst .jeito-grid{ grid-template-columns:1fr; }
  .baru-inst .about-grid{ gap:36px; }
  .baru-inst .about-visual{ max-width:340px; }
  .baru-inst .operacao-grid{ padding-right:0; }
  .baru-inst .operacao-copy{ order:-1; padding:72px 24px 8px; max-width:680px; }
  .baru-inst .operacao-visual{ padding-top:24px; padding-right:24px; }
  .baru-inst .numeros{ padding:48px 0 64px; }
  .baru-inst .numeros-grid{ gap:14px; }
  .baru-inst .stat-card{ padding:24px 20px; }
  .baru-inst .solucoes{ padding-top:72px; }
  .baru-inst .solucoes-grid{ gap:36px; }
  .baru-inst .solucoes-copy{ padding-bottom:0; }
  .baru-inst .solucoes-visual{ max-width:360px; }
  .baru-inst .jeito-baru{ padding:80px 0; }
  .baru-inst .jeito-grid{ gap:52px; }
  .baru-inst .jeito-visual{ max-width:560px; margin-left:4%; }
  .baru-inst .contato{ padding:56px 0; }
  .baru-inst .contato-card{ grid-template-columns:1fr; gap:28px; }
  .baru-inst .contato-visual{ max-width:220px; }
}
@media (max-width:719px){
  .baru-inst .numeros-grid{ grid-template-columns:1fr; }
  .baru-inst .stat-value{ min-height:0; }
}
@media (max-width:480px){
  .baru-inst .container{ padding:0 20px; }
  .baru-inst .solucoes-ctas .btn{ flex:1 1 100%; }
  .baru-inst .jeito-copy .btn, .baru-inst .contato-copy .btn{ width:100%; }
}
@media (prefers-reduced-motion:reduce){
  .baru-inst .btn, .baru-inst .hero-inst-scroll{ transition:none; }
  .baru-inst .btn-primary:hover, .baru-inst .hero-inst-scroll:hover{ transform:none; }
}