.elementor-kit-6{--e-global-color-primary:#0F0853;--e-global-color-secondary:#098F6A;--e-global-color-text:#4A5260;--e-global-color-accent:#FB7836;--e-global-color-pgnavy7:#1A1470;--e-global-color-pgnavy9:#080330;--e-global-color-pgorg60:#E45F1C;--e-global-color-pggrn60:#07785A;--e-global-color-pgmuted:#7A8290;--e-global-color-pgline0:#E7E9F0;--e-global-color-pgbgsft:#F6F7FA;--e-global-color-pgbgsnd:#F3F2F0;--e-global-color-pgfootr:#0A0A26;--e-global-typography-primary-font-family:"Montserrat";--e-global-typography-primary-font-weight:800;--e-global-typography-secondary-font-family:"DM Sans";--e-global-typography-secondary-font-weight:400;--e-global-typography-text-font-family:"DM Sans";--e-global-typography-text-font-weight:400;--e-global-typography-accent-font-family:"Montserrat";--e-global-typography-accent-font-weight:600;--e-global-typography-pgh1her-font-family:"Montserrat";--e-global-typography-pgh1her-font-size:clamp(32px,4.6vw,54px);--e-global-typography-pgh1her-font-weight:800;--e-global-typography-pgh1her-text-transform:none;--e-global-typography-pgh1her-line-height:1.1;--e-global-typography-pgh1her-letter-spacing:-0.02em;--e-global-typography-pgh1her-word-spacing:normal;--e-global-typography-pgh2sec-font-family:"Montserrat";--e-global-typography-pgh2sec-font-size:clamp(30px,4vw,46px);--e-global-typography-pgh2sec-font-weight:800;--e-global-typography-pgh2sec-text-transform:none;--e-global-typography-pgh2sec-line-height:1.08;--e-global-typography-pgh2sec-letter-spacing:-0.025em;--e-global-typography-pgh2sec-word-spacing:normal;--e-global-typography-pgbantt-font-family:"Montserrat";--e-global-typography-pgbantt-font-size:clamp(22px,2.6vw,32px);--e-global-typography-pgbantt-font-weight:700;--e-global-typography-pgbantt-text-transform:none;--e-global-typography-pgbantt-line-height:1.18;--e-global-typography-pgbantt-letter-spacing:-0.02em;--e-global-typography-pgbantt-word-spacing:normal;--e-global-typography-pgbanqs-font-family:"Montserrat";--e-global-typography-pgbanqs-font-size:clamp(16px,2.2vw,27px);--e-global-typography-pgbanqs-font-weight:700;--e-global-typography-pgbanqs-text-transform:none;--e-global-typography-pgbanqs-line-height:1.18;--e-global-typography-pgbanqs-letter-spacing:-0.02em;--e-global-typography-pgbanqs-word-spacing:normal;--e-global-typography-pgcardt-font-family:"Montserrat";--e-global-typography-pgcardt-font-size:17px;--e-global-typography-pgcardt-font-weight:700;--e-global-typography-pgcardt-text-transform:none;--e-global-typography-pgcardt-line-height:1.35;--e-global-typography-pgcardt-letter-spacing:-0.01em;--e-global-typography-pgcardt-word-spacing:normal;--e-global-typography-pgcardu-font-family:"Montserrat";--e-global-typography-pgcardu-font-size:15px;--e-global-typography-pgcardu-font-weight:700;--e-global-typography-pgcardu-text-transform:uppercase;--e-global-typography-pgcardu-line-height:1.35;--e-global-typography-pgcardu-letter-spacing:0.04em;--e-global-typography-pgcardu-word-spacing:normal;--e-global-typography-pgcarda-font-family:"Montserrat";--e-global-typography-pgcarda-font-size:14px;--e-global-typography-pgcarda-font-weight:700;--e-global-typography-pgcarda-text-transform:uppercase;--e-global-typography-pgcarda-line-height:1.35;--e-global-typography-pgcarda-letter-spacing:0.07em;--e-global-typography-pgcarda-word-spacing:normal;--e-global-typography-pgfeatt-font-family:"Montserrat";--e-global-typography-pgfeatt-font-size:18px;--e-global-typography-pgfeatt-font-weight:700;--e-global-typography-pgfeatt-text-transform:none;--e-global-typography-pgfeatt-line-height:1.3;--e-global-typography-pgfeatt-letter-spacing:-0.01em;--e-global-typography-pgfeatt-word-spacing:normal;--e-global-typography-pgcardx-font-family:"DM Sans";--e-global-typography-pgcardx-font-size:15px;--e-global-typography-pgcardx-font-weight:400;--e-global-typography-pgcardx-text-transform:none;--e-global-typography-pgcardx-line-height:1.72;--e-global-typography-pgcardx-letter-spacing:normal;--e-global-typography-pgcardx-word-spacing:normal;--e-global-typography-pgintro-font-family:"DM Sans";--e-global-typography-pgintro-font-size:17px;--e-global-typography-pgintro-font-weight:400;--e-global-typography-pgintro-text-transform:none;--e-global-typography-pgintro-line-height:1.78;--e-global-typography-pgintro-letter-spacing:normal;--e-global-typography-pgintro-word-spacing:normal;--e-global-typography-pgprose-font-family:"DM Sans";--e-global-typography-pgprose-font-size:17px;--e-global-typography-pgprose-font-weight:400;--e-global-typography-pgprose-text-transform:none;--e-global-typography-pgprose-line-height:1.8;--e-global-typography-pgprose-letter-spacing:normal;--e-global-typography-pgprose-word-spacing:normal;--e-global-typography-pgcardh-font-family:"Montserrat";--e-global-typography-pgcardh-font-size:13px;--e-global-typography-pgcardh-font-weight:700;--e-global-typography-pgcardh-text-transform:uppercase;--e-global-typography-pgcardh-line-height:1.5;--e-global-typography-pgcardh-letter-spacing:0.09em;--e-global-typography-pgcardh-word-spacing:normal;--e-global-typography-pgformh-font-family:"Montserrat";--e-global-typography-pgformh-font-size:20px;--e-global-typography-pgformh-font-weight:700;--e-global-typography-pgformh-text-transform:none;--e-global-typography-pgformh-line-height:1.5;--e-global-typography-pgformh-letter-spacing:-0.01em;--e-global-typography-pgformh-word-spacing:normal;--e-global-typography-pgcontat-font-family:"DM Sans";--e-global-typography-pgcontat-font-size:14.5px;--e-global-typography-pgcontat-font-weight:400;--e-global-typography-pgcontat-text-transform:none;--e-global-typography-pgcontat-line-height:1.5;--e-global-typography-pgcontat-letter-spacing:normal;--e-global-typography-pgcontat-word-spacing:normal;--e-global-typography-pgformlb-font-family:"DM Sans";--e-global-typography-pgformlb-font-size:13.5px;--e-global-typography-pgformlb-font-weight:600;--e-global-typography-pgformlb-text-transform:none;--e-global-typography-pgformlb-line-height:1.5;--e-global-typography-pgformlb-letter-spacing:normal;--e-global-typography-pgformlb-word-spacing:normal;--e-global-typography-pglogon-font-family:"Montserrat";--e-global-typography-pglogon-font-size:22px;--e-global-typography-pglogon-font-weight:800;--e-global-typography-pglogon-text-transform:none;--e-global-typography-pglogon-line-height:1;--e-global-typography-pglogon-letter-spacing:0.01em;--e-global-typography-pglogon-word-spacing:normal;--e-global-typography-pglogot-font-family:"Montserrat";--e-global-typography-pglogot-font-size:9px;--e-global-typography-pglogot-font-weight:600;--e-global-typography-pglogot-text-transform:uppercase;--e-global-typography-pglogot-line-height:1;--e-global-typography-pglogot-letter-spacing:0.3em;--e-global-typography-pglogot-word-spacing:normal;--e-global-typography-pgnavlk-font-family:"DM Sans";--e-global-typography-pgnavlk-font-size:14.5px;--e-global-typography-pgnavlk-font-weight:500;--e-global-typography-pgnavlk-text-transform:none;--e-global-typography-pgnavlk-line-height:1.5;--e-global-typography-pgnavlk-letter-spacing:normal;--e-global-typography-pgnavlk-word-spacing:normal;--e-global-typography-pgfoott-font-family:"Montserrat";--e-global-typography-pgfoott-font-size:17px;--e-global-typography-pgfoott-font-weight:700;--e-global-typography-pgfoott-text-transform:none;--e-global-typography-pgfoott-line-height:1.5;--e-global-typography-pgfoott-letter-spacing:-0.01em;--e-global-typography-pgfoott-word-spacing:normal;--e-global-typography-pgfootp-font-family:"DM Sans";--e-global-typography-pgfootp-font-size:14.5px;--e-global-typography-pgfootp-font-weight:400;--e-global-typography-pgfootp-text-transform:none;--e-global-typography-pgfootp-line-height:1.7;--e-global-typography-pgfootp-letter-spacing:normal;--e-global-typography-pgfootp-word-spacing:normal;--e-global-typography-pgfootl-font-family:"DM Sans";--e-global-typography-pgfootl-font-size:14.5px;--e-global-typography-pgfootl-font-weight:400;--e-global-typography-pgfootl-text-transform:none;--e-global-typography-pgfootl-line-height:1.5;--e-global-typography-pgfootl-letter-spacing:normal;--e-global-typography-pgfootl-word-spacing:normal;--e-global-typography-pgfootg-font-family:"DM Sans";--e-global-typography-pgfootg-font-size:12.5px;--e-global-typography-pgfootg-font-weight:400;--e-global-typography-pgfootg-text-transform:none;--e-global-typography-pgfootg-line-height:1.7;--e-global-typography-pgfootg-letter-spacing:normal;--e-global-typography-pgfootg-word-spacing:normal;}.elementor-kit-6 e-page-transition{background-color:#FFBC7D;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1200px;}.e-con{--container-max-width:1200px;--container-default-padding-top:0;--container-default-padding-right:clamp(20px,4.2vw,40px);--container-default-padding-bottom:0;--container-default-padding-left:clamp(20px,4.2vw,40px);}.elementor-widget:not(:last-child){--kit-widget-spacing:24px;}.elementor-element{--widgets-spacing:24px 24px;--widgets-spacing-row:24px;--widgets-spacing-column:24px;}{}h1.entry-title{display:var(--page-title-display);}.site-header .site-branding{flex-direction:column;align-items:stretch;}.site-header{padding-inline-end:0px;padding-inline-start:0px;}.site-footer .site-branding{flex-direction:column;align-items:stretch;}@media(max-width:1024px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:767px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}
/* Start custom CSS *//* ============================================================
   PGMP — tokens do design system (transportados do index.html)
   ============================================================ */
:root{
  --navy:var(--e-global-color-primary,#0F0853);
  --navy-700:var(--e-global-color-pgnavy7,#1A1470);
  --navy-900:var(--e-global-color-pgnavy9,#080330);
  --ink:#232B32;
  --orange:var(--e-global-color-accent,#FB7836);
  --orange-600:var(--e-global-color-pgorg60,#E45F1C);
  --green:var(--e-global-color-secondary,#098F6A);
  --green-600:var(--e-global-color-pggrn60,#07785A);
  --text:var(--e-global-color-text,#4A5260);
  --muted:var(--e-global-color-pgmuted,#7A8290);
  --line:var(--e-global-color-pgline0,#E7E9F0);
  --line-soft:#EFEDE9;
  --bg:#FFFFFF;
  --bg-soft:var(--e-global-color-pgbgsft,#F6F7FA);
  --bg-sand:var(--e-global-color-pgbgsnd,#F3F2F0);
  --footer:var(--e-global-color-pgfootr,#0A0A26);
  /* Tons intermediários do gradiente do hero: não constam da paleta de 13 do briefing,
     então continuam como token local. */
  --hero-a:#221A7E;
  --hero-b:#130C5E;
  --font-primary:var(--e-global-typography-primary-font-family,'Montserrat'),sans-serif;
  --font-secondary:var(--e-global-typography-secondary-font-family,'DM Sans'),sans-serif;
  --radius:18px;
  --radius-lg:24px;
  --radius-sm:12px;
  --shadow-xs:0 1px 2px rgba(15,8,83,.05), 0 6px 16px rgba(15,8,83,.05);
  --shadow-md:0 16px 40px rgba(15,8,83,.11);
  --shadow-cta:0 22px 50px rgba(15,8,83,.24);
  --container:1200px;
  --gutter:clamp(20px,4.2vw,40px);
  --pg-gutter:clamp(20px,4.2vw,40px);
  --section:clamp(64px,7vw,104px);
  --ease:cubic-bezier(.22,.61,.36,1);
}

/* ------------------------------------------------------------
   Geometria do container: replica .pg-container exatamente.
   O Elementor põe o padding lateral no .e-con externo e limita o
   .e-con-inner por --content-width, o que daria 1200px de conteúdo.
   No original o max-width de 1200px INCLUI o gutter (conteúdo=1120).
   Subtrair o gutter aqui alinha os dois em qualquer viewport, e o
   campo "Largura do conteúdo" do painel continua valendo 1200.
   ------------------------------------------------------------ */
.e-con{--content-width:min(100%,calc(var(--container-max-width,1200px) - 2 * var(--pg-gutter)));}

/* Padding vertical de seção. Escrevemos --padding-top/bottom (e não
   --padding-block-*) para que a edição pelo painel, que tem
   especificidade maior, continue prevalecendo. */
.e-con.pg-section{--padding-top:var(--section);--padding-bottom:var(--section);}
.e-con.pg-section--tight{--padding-top:0px;}
.e-con.pg-section--flush{--padding-bottom:clamp(40px,4vw,56px);}

/* O gutter do kit é o recuo do container "boxed" — é ele que faz o papel de
   .pg-container. Todo container de largura total (seções, grades, cabeçalhos
   de card) precisa começar com recuo lateral zero, senão o gutter se soma a
   cada nível de aninhamento e estreita o conteúdo: uma grade de 3 cards dentro
   de um boxed de 1120px cairia para 1040px úteis, e cada card perderia 26px.
   As regras que dão padding próprio (.pg-card, .pg-cta) vêm DEPOIS deste
   reset e por isso prevalecem — a ordem no arquivo é significativa. */
.e-con.e-con-full{--padding-left:0px;--padding-right:0px;}

/* A pilha de blocos de uma seção (H2, intro, grades, banner) tem espaçamentos
   diferentes entre cada par, que vêm das margens do original. O gap padrão de
   24px do kit se somaria a todos eles — numa página com 5 blocos são 96px de
   altura a mais. Quem tem gap próprio é cada grade, definido logo abaixo. */
.e-con.pg-section>.e-con{--gap:0px;--row-gap:0px;--column-gap:0px;}

/* ---------------------------- Hero ---------------------------- */
.e-con.pg-hero{
  position:relative;overflow:hidden;
  min-height:min(76vh,700px);
  --padding-top:clamp(72px,9vw,116px);
  --padding-bottom:clamp(72px,9vw,116px);
  --justify-content:center;
  background:radial-gradient(120% 130% at 8% 0%,var(--hero-a) 0%,var(--hero-b) 42%,var(--navy-900) 100%);
}
.pg-hero__inner{position:relative;z-index:2;}
.pg-hero__content{align-items:flex-start;}

.pg-hero__layers{position:absolute;inset:0;pointer-events:none;z-index:1;}
.pg-hero__glow{position:absolute;border-radius:50%;filter:blur(90px);opacity:.5;pointer-events:none;}
.pg-hero__glow--a{width:520px;height:520px;background:rgba(251,120,54,.45);top:-180px;right:-120px;}
.pg-hero__glow--b{width:460px;height:460px;background:rgba(9,143,106,.42);bottom:-200px;left:-140px;}
.pg-hero__grid{position:absolute;inset:0;pointer-events:none;opacity:.16;
  background-image:linear-gradient(rgba(255,255,255,.35) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.35) 1px,transparent 1px);
  background-size:74px 74px;
  mask-image:radial-gradient(70% 70% at 30% 30%,#000 0%,transparent 100%);
  -webkit-mask-image:radial-gradient(70% 70% at 30% 30%,#000 0%,transparent 100%);}

/* Tipografia do H1 vem do token global "H1 hero"; aqui só a caixa.
   Dentro de containers o Elementor zera a margem dos widgets
   (.e-con .elementor-widget.elementor-widget{margin:0}, especificidade 0-3-0)
   porque o espaçamento idiomático é o `gap` do flex. Por isso o vão entre os
   blocos do hero é gap, e não margin. */
/* As larguras máximas vão no elemento de texto, não no wrapper do widget: o
   Elementor força max-width:100% no wrapper, e no caso do `ch` a medida só
   fecha com o original se for calculada sobre a font-size real do parágrafo
   (17,28px aqui) em vez dos 16px herdados pelo wrapper. */
.pg-hero__title .elementor-heading-title{max-width:900px;}
.pg-hero__desc p{max-width:62ch;}
.pg-hero__desc,.pg-hero__desc p{
  color:rgba(255,255,255,.78);font-size:clamp(16px,1.35vw,18.5px);line-height:1.7;margin:0;}
/* h1 -> descrição = 24px (gap); descrição -> botões = 24 + 16 = 40px, como no
   original. A margem extra precisa de 0-3-0 para vencer o reset do Elementor. */
.e-con.pg-hero__content{--gap:24px;--row-gap:24px;--column-gap:24px;}
.e-con .pg-hero__desc.elementor-widget{margin-block-end:16px;}
.e-con.pg-hero__actions{--flex-direction:row;--flex-wrap:wrap;--gap:16px;--row-gap:16px;--column-gap:16px;--width:auto;}
@media (max-width:640px){
  .e-con.pg-hero__actions{--flex-direction:column;--align-items:stretch;--width:100%;}
}

/* ---------------------------- Botões ---------------------------- */
.pg-btn .elementor-button{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  height:54px;padding:0 30px;border-radius:999px;border:2px solid transparent;
  font-family:var(--font-primary);font-size:15px;font-weight:600;letter-spacing:.01em;
  text-decoration:none;cursor:pointer;
  transition:transform .3s var(--ease),box-shadow .3s var(--ease),background .3s,color .3s;}
.pg-btn .elementor-button-content-wrapper{display:flex;align-items:center;gap:10px;width:100%;}
/* Espaçador espelhado: compensa a largura da seta à direita para que o
   rótulo fique opticamente centralizado, como no CSS original. */
.pg-btn .elementor-button-content-wrapper::before{content:'';flex:0 0 18px;height:1px;}
/* A ordem é forçada por `order` e não pela marcação: o widget Botão pode
   emitir o ícone antes do texto conforme a configuração, e o espaçador
   espelhado só centraliza o rótulo se a sequência for espaçador > texto > seta. */
.pg-btn .elementor-button-content-wrapper::before{order:1;}
.pg-btn .elementor-button-text{flex:1 1 auto;text-align:center;order:2;}
.pg-btn .elementor-button-icon{flex:0 0 auto;display:inline-flex;order:3;}
.pg-btn .elementor-button-icon svg{width:18px;height:18px;transition:transform .3s var(--ease);}
.pg-btn .elementor-button:hover{transform:translateY(-2px);}
.pg-btn .elementor-button:hover svg{transform:translateX(4px);}
.pg-btn--primary .elementor-button{background:linear-gradient(135deg,var(--orange),var(--orange-600));color:#fff;box-shadow:0 12px 28px rgba(251,120,54,.34);}
.pg-btn--primary .elementor-button:hover{box-shadow:0 18px 34px rgba(251,120,54,.42);}
.pg-btn--light .elementor-button{background:#fff;color:var(--navy);box-shadow:0 12px 28px rgba(0,0,0,.18);}
.pg-btn--light .elementor-button:hover{background:#F4F6FF;}
@media (max-width:640px){.pg-btn,.pg-btn .elementor-button{width:100%;}}

/* ---------------------------- Prosa ---------------------------- */
/* Tipografia e cor vêm do token global "Texto institucional". */
.pg-prose p{margin:0 0 22px;}
.pg-prose p:last-child{margin-bottom:0;}

/* ---------------------------- Cards ---------------------------- */
/* A largura dos filhos deriva de --pg-grid-gap, e NÃO de --column-gap.
   Motivo: --column-gap é redefinido pelo próprio filho para espaçar o conteúdo
   interno dele (.pg-card usa 14px, .pg-feature usa 12px). Como o calc() do
   --width é resolvido no filho, ele leria o gap interno em vez do gap da grade
   e os cards saíam com a largura errada. --pg-grid-gap só é escrito na grade. */
.e-con.pg-grid{--pg-grid-gap:24px;--gap:24px;--row-gap:24px;--column-gap:24px;--flex-direction:row;--flex-wrap:wrap;--align-items:stretch;}
.e-con.pg-grid--wide{--pg-grid-gap:clamp(28px,3.4vw,44px);--gap:clamp(28px,3.4vw,44px);--row-gap:clamp(28px,3.4vw,44px);--column-gap:clamp(28px,3.4vw,44px);}
.e-con.pg-grid--3>.e-con{--width:calc((100% - 2 * var(--pg-grid-gap,24px)) / 3);}
.e-con.pg-grid--2>.e-con{--width:calc((100% - var(--pg-grid-gap,24px)) / 2);}
@media (max-width:1024px){.e-con.pg-grid--3>.e-con{--width:calc((100% - var(--pg-grid-gap,24px)) / 2);}}
@media (max-width:767px){.e-con.pg-grid--3>.e-con,.e-con.pg-grid--2>.e-con{--width:100%;}}

.e-con.pg-card{
  position:relative;overflow:hidden;
  /* Gap zero de propósito: no original o respiro de 14px é a margem inferior do
     h3, que fica DENTRO do .pg-card-head e portanto concorre com a altura do
     ícone. Como `gap` fica do lado de fora do cabeçalho, ele somaria à altura
     sempre que o título fosse mais baixo que o ícone. */
  --gap:0px;--row-gap:0px;--column-gap:0px;
  background:#fff;border:1px solid var(--line);border-radius:var(--radius);
  --padding-top:clamp(24px,2.4vw,32px);--padding-bottom:clamp(24px,2.4vw,32px);
  --padding-left:clamp(24px,2.4vw,32px);--padding-right:clamp(24px,2.4vw,32px);
  box-shadow:var(--shadow-xs);
  transition:transform .38s var(--ease),box-shadow .38s var(--ease),border-color .38s;}
.e-con.pg-card::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;
  background:linear-gradient(90deg,var(--orange),var(--green));
  transform:scaleX(0);transform-origin:left;transition:transform .45s var(--ease);z-index:2;}
.e-con.pg-card:hover{transform:translateY(-5px);box-shadow:var(--shadow-md);border-color:#DCE0EC;}
.e-con.pg-card:hover::before{transform:scaleX(1);}
.e-con.pg-card--soft{background:var(--bg-sand);border-color:#E6E4DF;}
.e-con.pg-card--soft:hover{background:#fff;}

.e-con.pg-card-head{--flex-direction:row;--align-items:flex-start;--justify-content:flex-start;--gap:14px;--column-gap:14px;--row-gap:14px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}
.pg-card-icon{flex:0 0 auto;width:26px;height:26px;margin-top:-1px;
  transition:transform .35s var(--ease);}
.pg-card-icon svg,.pg-card-icon .e-font-icon-svg{width:26px;height:26px;
  stroke:url(#pgIconGrad);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;fill:none;}
.e-con.pg-card:hover .pg-card-icon svg{stroke:url(#pgIconGradHover);}
.e-con.pg-card:hover .pg-card-icon{transform:translateY(-2px);}
@media (max-width:480px){.pg-card-icon,.pg-card-icon svg{width:24px;height:24px;}}

/* Tipografia dos títulos e textos de card vem dos tokens globais "Título de
   card maiúsculo" e "Corpo de card" (Elementor emite em (0,3,0)). Aqui ficam
   só as propriedades de caixa, que não têm campo global. */
.pg-card-title{flex:1 1 auto;min-width:0;}
.e-con .pg-card-title.elementor-widget{margin-block-end:14px;}
/* O limite de 21ch precisa ficar no próprio h3, onde vale a font-size de 15px
   do token; no wrapper ele mediria contra os 16px herdados e daria outra largura. */
.pg-card-title--upper .elementor-heading-title{text-wrap:wrap;max-width:21ch;min-height:2.7em;}
@media (max-width:767px){.pg-card-title--upper .elementor-heading-title{max-width:none;min-height:0;}}
.pg-card-text,.pg-card-text p{margin:0;}

/* ------------------- Títulos de seção e intro ------------------- */
/* Tipografia vem dos tokens "H2 seção" e "Texto de intro". O filete em
   gradiente é um ::after no wrapper do widget, como o ::after do .pg-h2. */
.pg-h2 .elementor-heading-title{text-align:left;}
.pg-h2::after{content:'';display:block;width:76px;height:4px;border-radius:4px;margin:22px 0 0;
  background:linear-gradient(90deg,var(--orange),var(--green));}
/* Margens de widget dentro de container precisam de 0-3-0 para vencer o reset
   do Elementor (ver comentário do hero). */
.e-con .pg-h2.elementor-widget{margin-block-end:clamp(36px,4.4vw,56px);}
.e-con .pg-intro.elementor-widget{margin-block-end:clamp(40px,5vw,60px);}
.pg-intro{text-align:left;}
.pg-intro p{margin:0 0 20px;}
.pg-intro p:last-child{margin-bottom:0;}

/* ------------------------- Diferenciais ------------------------- */
.e-con.pg-feature{
  position:relative;
  --padding-left:22px;
  /* Mesma razão do .pg-card: os 12px são margem do título, dentro do cabeçalho. */
  --gap:0px;--row-gap:0px;--column-gap:0px;
  transition:transform .35s var(--ease);}
.e-con.pg-feature::before{content:'';position:absolute;left:0;top:6px;bottom:6px;width:3px;
  border-radius:3px;background:linear-gradient(180deg,var(--orange),var(--green));opacity:.9;}
.pg-feature__title{flex:1 1 auto;min-width:0;}
.e-con .pg-feature__title.elementor-widget{margin-block-end:12px;}
.e-con.pg-feature:hover .pg-card-icon svg{stroke:url(#pgIconGradHover);}
.e-con.pg-feature:hover .pg-card-icon{transform:translateY(-2px);}

/* ---------------------------- CTA ---------------------------- */
.e-con.pg-cta-wrap{--margin-top:clamp(48px,6vw,76px);}
/* Em Quem Somos o banner fica entre dois blocos e leva o mesmo respiro embaixo
   (no original isso era um style inline no .pg-cta-wrap). */
.e-con.pg-cta-wrap--spaced{--margin-bottom:clamp(48px,6vw,76px);}
.e-con.pg-cta{
  position:relative;overflow:hidden;border-radius:var(--radius-lg);
  /* 16px = margem inferior do h3 do banner no original. */
  --gap:16px;--row-gap:16px;--column-gap:16px;
  --padding-top:clamp(32px,4.6vw,60px);--padding-bottom:clamp(32px,4.6vw,60px);
  --padding-left:clamp(32px,4.6vw,60px);--padding-right:clamp(32px,4.6vw,60px);
  background:linear-gradient(125deg,#150D63 0%,#1A3A6E 100%);
  box-shadow:var(--shadow-cta);
  transition:transform .38s var(--ease),box-shadow .38s var(--ease);}
.e-con.pg-cta::after{content:'';position:absolute;width:420px;height:420px;right:-120px;top:-160px;
  border-radius:50%;background:radial-gradient(circle,rgba(251,120,54,.42),transparent 68%);pointer-events:none;}
.e-con.pg-cta:hover{transform:translateY(-4px);box-shadow:0 28px 60px rgba(15,8,83,.30);}
.e-con.pg-cta>.e-con-inner,.e-con.pg-cta>a{position:relative;z-index:2;}
/* Tipografia vem do token global "Título de banner". */
.pg-cta__title{position:relative;z-index:2;}
.pg-cta__title .elementor-heading-title{color:#fff;}
.pg-cta__text,.pg-cta__text p{color:rgba(255,255,255,.75);font-size:clamp(15px,1.2vw,16.5px);
  line-height:1.7;margin:0;position:relative;z-index:2;}

/* ---------------------------- Contato ---------------------------- */
/* Grid 7fr/3fr do original, reproduzido em flex: as larguras descontam o gap. */
.e-con.pg-contact-grid{
  --pg-grid-gap:clamp(28px,3.4vw,48px);
  --gap:clamp(28px,3.4vw,48px);--row-gap:clamp(28px,3.4vw,48px);--column-gap:clamp(28px,3.4vw,48px);
  --flex-direction:row;--flex-wrap:wrap;--align-items:flex-start;
  --margin-bottom:clamp(36px,4vw,52px);}
.e-con.pg-contact-grid>.pg-contact-text{--width:calc((100% - var(--pg-grid-gap)) * 0.7);}
.e-con.pg-contact-grid>.pg-contact-card{--width:calc((100% - var(--pg-grid-gap)) * 0.3);}
@media (max-width:1024px){
  .e-con.pg-contact-grid>.pg-contact-text,.e-con.pg-contact-grid>.pg-contact-card{--width:100%;}
}
.pg-contact-text p{margin:0 0 20px;}
.pg-contact-text p:last-child{margin-bottom:0;}

.e-con.pg-contact-card{
  background:var(--bg-sand);border:1px solid var(--line-soft);border-radius:var(--radius);
  --padding-top:28px;--padding-bottom:28px;--padding-left:28px;--padding-right:28px;
  --gap:0px;--row-gap:0px;--column-gap:0px;}
.e-con .pg-contact-card__titulo.elementor-widget{margin-block-end:22px;}

/* O filete separador não pode usar :first-of-type como no original: ali os itens
   ficam num <div> só deles, aqui são irmãos do título do card, e :first-of-type
   casaria com o título. O irmão adjacente resolve sem depender da posição. */
.e-con.pg-contact-item{
  --flex-direction:row;--align-items:center;
  --gap:14px;--row-gap:14px;--column-gap:14px;
  --padding-top:0px;--padding-bottom:12px;--padding-left:0px;--padding-right:0px;
  border-top:0;
  overflow-wrap:break-word;}
.e-con.pg-contact-item + .e-con.pg-contact-item{
  border-top:1px solid rgba(15,8,83,.08);--padding-top:12px;}
.pg-contact-valor,.pg-contact-valor p{margin:0;}
/* Os ícones de contato são verdes chapados no original, não em degradê.
   line-height:0 no wrapper para que a linha tenha a altura do texto (21,75px)
   e não a do ícone com entrelinha herdada. */
.pg-contact-icon{flex:0 0 auto;line-height:0;}
.pg-contact-icon .elementor-icon,.pg-contact-icon .elementor-icon-wrapper{display:flex;align-items:center;line-height:0;}
.pg-contact-icon svg{width:18px;height:18px;stroke:var(--green);stroke-width:1.6;fill:none;}

/* ---------------------------- Formulário ---------------------------- */
.e-con.pg-formbox{
  background:var(--bg-sand);border:1px solid var(--line-soft);border-radius:var(--radius);
  --padding-top:clamp(26px,3.2vw,44px);--padding-bottom:clamp(26px,3.2vw,44px);
  --padding-left:clamp(26px,3.2vw,44px);--padding-right:clamp(26px,3.2vw,44px);
  --gap:0px;--row-gap:0px;--column-gap:0px;}
.e-con .pg-formbox__titulo.elementor-widget{margin-block-end:28px;}

/* O espaçamento entre campos vem dos controles column_gap/row_gap do widget
   Form (20px, como no original). Sobrescrever margem e padding aqui somaria
   ao que ele já gera com especificidade maior, e o formulário ficava 221px
   mais alto que o original. */
/* line-height normal (e não o 1 que o Elementor aplica no rótulo): no original
   o .pg-label herda a entrelinha do corpo, dando 20,3px de altura. Sem isto
   cada campo fica 6,8px mais baixo — 40px no formulário inteiro. */
.pg-form .elementor-field-label{
  display:block;font-size:13.5px;line-height:1.5;font-weight:600;
  color:var(--navy);margin-bottom:8px;padding:0;}
.pg-form .elementor-field-textual{
  width:100%;height:52px;padding:0 16px;font-family:var(--font-secondary);font-size:15px;
  color:var(--navy);background:#fff;border:1px solid #DDE1EA;border-radius:12px;outline:none;
  transition:border-color .25s,box-shadow .25s;}
/* O formulário fica 7px mais baixo que o do index.html. Lá o <textarea> é
   inline e gera um vão de linha de base sob si; aqui o grupo de campo do
   Elementor é flex, então o textarea é item flex e esse vão não existe.
   Reproduzir isso exigiria desmontar o layout do widget para recriar um
   artefato de renderização — não compensa. Diferença conhecida e aceita. */
.pg-form textarea.elementor-field-textual{height:150px;padding:14px 16px;resize:vertical;line-height:1.6;}
.pg-form .elementor-field-textual::placeholder{color:#A9B0BC;}
.pg-form .elementor-field-textual:focus{border-color:var(--green);box-shadow:0 0 0 4px rgba(9,143,106,.15);}
.pg-form .elementor-button[type="submit"]{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  height:54px;padding:0 30px;border:0;border-radius:999px;
  font-family:var(--font-primary);font-size:15px;font-weight:600;letter-spacing:.01em;
  background:var(--green);color:#fff;box-shadow:0 12px 26px rgba(9,143,106,.28);
  transition:background .25s,box-shadow .3s var(--ease),transform .3s var(--ease);cursor:pointer;}
.pg-form .elementor-button[type="submit"]:hover{
  background:var(--green-600);box-shadow:0 16px 32px rgba(9,143,106,.34);transform:translateY(-2px);}
.pg-form .elementor-button[type="submit"] svg{width:16px;height:16px;stroke:#fff;fill:none;stroke-width:1.6;}

/* Quebra de linha que some no mobile, como no original. */
.pg-br{display:inline;}
@media (max-width:767px){.pg-br{display:none;}}

/* ============================================================
   HEADER (Theme Builder)
   ============================================================ */
.e-con.pg-header{
  position:sticky;top:0;left:0;width:100%;z-index:60;
  background:rgba(255,255,255,.86);
  backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);
  border-bottom:1px solid rgba(15,8,83,.07);
  --padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;
  transition:box-shadow .3s var(--ease),background .3s var(--ease);}
.e-con.pg-header.is-scrolled{box-shadow:0 10px 30px rgba(15,8,83,.10);background:rgba(255,255,255,.95);}
.e-con.pg-header__inner{
  --flex-direction:row;--align-items:center;--justify-content:space-between;
  --gap:24px;--row-gap:24px;--column-gap:24px;
  min-height:76px;}
@media (max-width:767px){.e-con.pg-header__inner{min-height:66px;}}

.e-con.pg-logo{
  --flex-direction:row;--align-items:center;--width:auto;
  --gap:12px;--row-gap:12px;--column-gap:12px;
  --padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;
  text-decoration:none;cursor:pointer;}
/* Lockup da marca: altura fixa e largura automática, como no index.html.
   O `flex:none` no wrapper impede que o widget de imagem encolha como item flex
   do .pg-logo; e `max-width:none` no <img> anula o max-width:100% que o Elementor
   aplica, que aqui esmagaria o lockup por ele ser bem mais largo que alto. */
.pg-logo__lockup{flex:none;width:auto;}
.pg-logo__lockup img{height:44px;width:auto;max-width:none;flex:none;
  transition:transform .45s var(--ease);}
.e-con.pg-logo:hover .pg-logo__lockup img{transform:scale(1.03);}
@media (max-width:767px){.pg-logo__lockup img{height:38px;}}
@media (max-width:400px){.pg-logo__lockup img{height:34px;}}

/* Só o símbolo, usado no rodapé ao lado do nome da marca. */
.pg-logo__symbol{flex:0 0 38px;width:38px;}
.pg-logo__symbol img{width:38px;height:38px;flex:none;max-width:none;}

/* Menu: sublinhado em gradiente que cresce no hover, como o ::after do .nav-link. */
.pg-nav .elementor-nav-menu{gap:clamp(18px,2.4vw,34px);}
.pg-nav .elementor-nav-menu a.elementor-item{
  position:relative;padding:6px 0;color:var(--navy);
  font-family:var(--font-secondary);font-size:14.5px;font-weight:500;line-height:1.5;
  transition:color .3s var(--ease);}
.pg-nav .elementor-nav-menu a.elementor-item::after{
  content:'';position:absolute;left:0;bottom:0;width:0;height:2px;border-radius:2px;
  background:linear-gradient(90deg,var(--orange),var(--green));
  transition:width .35s var(--ease);}
.pg-nav .elementor-nav-menu a.elementor-item:hover{color:var(--green);}
.pg-nav .elementor-nav-menu a.elementor-item:hover::after,
.pg-nav .elementor-nav-menu a.elementor-item.elementor-item-active::after{width:100%;}
.pg-nav .elementor-nav-menu a.elementor-item.elementor-item-active{color:var(--green);font-weight:600;}

/* Hambúrguer abaixo de 900px. */
.pg-nav-mobile .elementor-menu-toggle{
  display:inline-flex;align-items:center;justify-content:center;
  width:44px;height:44px;border:1px solid var(--line);border-radius:12px;
  background:#fff;color:var(--navy);cursor:pointer;
  transition:border-color .3s,color .3s;}
.pg-nav-mobile .elementor-menu-toggle:hover{border-color:var(--green);color:var(--green);}
.pg-nav-mobile .elementor-nav-menu--dropdown{
  border-top:1px solid var(--line);background:#fff;box-shadow:0 18px 30px rgba(15,8,83,.10);}
.pg-nav-mobile .elementor-nav-menu--dropdown a.elementor-item{
  padding:13px 4px;font-family:var(--font-secondary);font-size:15px;font-weight:500;
  color:var(--navy);border-bottom:1px solid var(--line-soft);
  transition:color .25s,padding-left .25s;}
.pg-nav-mobile .elementor-nav-menu--dropdown li:last-child a.elementor-item{border-bottom:0;}
.pg-nav-mobile .elementor-nav-menu--dropdown a.elementor-item:hover,
.pg-nav-mobile .elementor-nav-menu--dropdown a.elementor-item.elementor-item-active{
  color:var(--green);padding-left:10px;background:transparent;}

/* ============================================================
   FOOTER (Theme Builder)
   ============================================================ */
.e-con.pg-footer{
  position:relative;
  --padding-top:clamp(56px,6.5vw,84px);--padding-bottom:clamp(36px,4vw,52px);
  --padding-left:0px;--padding-right:0px;}
.e-con.pg-footer::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;
  background:linear-gradient(90deg,var(--orange),var(--green),#4B37C8);}
.e-con.pg-footer>.e-con{--gap:0px;--row-gap:0px;--column-gap:0px;}

.e-con.pg-footer__grid{
  --pg-grid-gap:clamp(28px,3.6vw,48px);
  --gap:clamp(28px,3.6vw,48px);--row-gap:clamp(28px,3.6vw,48px);--column-gap:clamp(28px,3.6vw,48px);
  --flex-direction:row;--flex-wrap:wrap;--align-items:flex-start;
  --padding-bottom:8px;}
/* Proporções 1.5fr 1fr 1fr 1.3fr do grid original (soma 4.8). */
.e-con.pg-footer__grid>.footer-col{--width:calc((100% - 3 * var(--pg-grid-gap)) / 4.8);--gap:0px;--row-gap:0px;--column-gap:0px;
  --padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}
.e-con.pg-footer__grid>.footer-col:nth-child(1){--width:calc((100% - 3 * var(--pg-grid-gap)) * 1.5 / 4.8);}
.e-con.pg-footer__grid>.footer-col:nth-child(4){--width:calc((100% - 3 * var(--pg-grid-gap)) * 1.3 / 4.8);}
@media (max-width:1024px){
  .e-con.pg-footer__grid>.footer-col,
  .e-con.pg-footer__grid>.footer-col:nth-child(1),
  .e-con.pg-footer__grid>.footer-col:nth-child(4){--width:calc((100% - var(--pg-grid-gap)) / 2);}
}
@media (max-width:600px){
  .e-con.pg-footer__grid>.footer-col,
  .e-con.pg-footer__grid>.footer-col:nth-child(1),
  .e-con.pg-footer__grid>.footer-col:nth-child(4){--width:100%;text-align:left;}
}

.e-con.pg-footer__brand{--flex-direction:row;--align-items:center;--width:100%;
  --gap:12px;--row-gap:12px;--column-gap:12px;
  --padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;
  --margin-bottom:20px;}
.pg-footer__logo img{width:38px;height:38px;}
/* O h3 da marca não leva o filete das outras colunas. */
.pg-footer__brand-nome .elementor-heading-title{padding-bottom:0;}
.pg-footer__brand-nome::after{display:none;}

.pg-footer__titulo,.pg-footer__brand-nome{position:relative;}
.e-con .pg-footer__titulo.elementor-widget{margin-block-end:22px;padding-bottom:12px;}
.pg-footer__titulo::after{content:'';position:absolute;left:0;bottom:0;width:30px;height:2px;
  border-radius:2px;background:linear-gradient(90deg,var(--orange),var(--green));}

.pg-footer__texto,.pg-footer__texto p{color:rgba(255,255,255,.70);margin:0;}
.e-con .pg-footer__texto.elementor-widget{margin-block-end:20px;}
.pg-footer__legal,.pg-footer__legal p{color:rgba(255,255,255,.45);margin:0;}

/* No layout vertical o Elementor deixa a <ul> como block, então `gap` sozinho
   não faz nada — o original é flex-column com 12px entre os links.
   A altura da linha do <li> é a herdada do corpo (16px x 1.5 = 24px), maior que
   a do próprio link (14,5 x 1.5 = 21,75). É ela que define a caixa de linha no
   original; sem reproduzir, cada item fica ~2px fora e o rodapé desalinha. */
.pg-footer__nav .elementor-nav-menu{display:flex;flex-direction:column;gap:12px;}
/* O clearfix ::after da <ul> vira item flex e cria um vão extra de 12px no fim
   da lista — some sem ele, já que aqui não há float para limpar. */
.pg-footer__nav .elementor-nav-menu::after{display:none;}
/* A família também importa: o link é inline-block e se apoia na linha de base
   da <li>, cuja posição vem das métricas da fonte dela. Com outra família a
   caixa de linha cresce ~0,8px por item. */
/* margin:0 porque o Elementor deixa margem no item do menu vertical; em flex
   ela não colapsa e sobrava 12px no fim da lista. Quem espaça é o gap. */
.pg-footer__nav .elementor-nav-menu li{font-family:var(--font-secondary);font-size:16px;line-height:1.5;margin:0;}
.pg-footer__nav .elementor-nav-menu a.elementor-item{
  display:inline-block;padding:0;color:rgba(255,255,255,.72);
  font-family:var(--font-secondary);font-size:14.5px;font-weight:400;line-height:1.5;
  transition:color .25s,transform .25s;}
.pg-footer__nav .elementor-nav-menu a.elementor-item:hover,
.pg-footer__nav .elementor-nav-menu a.elementor-item.elementor-item-active{
  color:var(--orange);transform:translateX(3px);background:transparent;}

/* Newsletter: campo e botão empilhados, como o .pg-news do original. */
.pg-news .elementor-form-fields-wrapper{flex-direction:column;}
.pg-news .elementor-field-textual{
  height:48px;padding:0 16px;font-family:var(--font-secondary);font-size:14.5px;
  color:var(--navy);background:#fff;border:1px solid transparent;border-radius:12px;
  outline:none;transition:box-shadow .25s;}
.pg-news .elementor-field-textual:focus{box-shadow:0 0 0 4px rgba(9,143,106,.3);}
.pg-news .elementor-button[type="submit"]{
  width:100%;height:48px;border:0;border-radius:12px;
  font-family:var(--font-primary);font-size:14.5px;font-weight:700;color:#fff;
  cursor:pointer;transition:background .25s,transform .25s;}
.pg-news .elementor-button[type="submit"]:hover{background:var(--green-600);transform:translateY(-2px);}

/* ============================================================
   Voltar ao topo
   ============================================================ */
.pg-top{
  position:fixed;right:22px;bottom:22px;z-index:70;width:50px;height:50px;
  display:flex;align-items:center;justify-content:center;
  border:0;border-radius:50%;background:var(--navy);color:#fff;cursor:pointer;
  opacity:0;visibility:hidden;transform:translateY(12px);
  box-shadow:0 12px 28px rgba(15,8,83,.32);
  transition:all .35s var(--ease);}
.pg-top.is-visible{opacity:1;visibility:visible;transform:none;}
.pg-top:hover{background:var(--orange);}
.pg-top svg{width:20px;height:20px;stroke:#fff;fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;}

@media (prefers-reduced-motion:reduce){
  *{animation-duration:.01ms!important;transition-duration:.01ms!important;}
  html{scroll-behavior:auto;}
}

.pg-icon-defs{position:absolute;width:0;height:0;overflow:hidden;pointer-events:none;}/* End custom CSS */