/* ===========================================================================
   Wagner Felipe — Deputado Estadual · Acre

   Ritmo da página: escuro → claro → branco → escuro → claro. O azul é a cor
   institucional, mas usado do começo ao fim vira parede. As seções claras
   dão respiro e fazem o azul voltar a pesar quando reaparece.

   O acento OURO vem do amarelo da bandeira do Acre que ele carrega na foto —
   é a única cor quente da marca e por isso entra com parcimônia: número,
   fio, marcador, estado de hover. Nunca em bloco.

   Mobile-first: o eleitorado abre isso no celular. Media queries em 640/980.
   =========================================================================== */

:root{
  /* --- escala de azul, do quase-branco ao quase-preto.
     Um tom só, repetido, é o que deixava a página chapada. Os claros (99–90)
     são fundo de seção; os médios (70–40) são fio, borda e texto de apoio;
     os escuros (base–noite) são título e as poucas seções de impacto. */
  --azul-99:#F8FAFE;
  --azul-97:#F1F5FC;
  --azul-95:#E9F0FA;
  --azul-90:#DCE7F7;
  --azul-70:#A9C0E6;
  --azul-40:#3E63A8;
  --azul:#032970;
  --azul-med:#012E76;
  --azul-esc:#00143C;
  --azul-noite:#000E2B;

  /* sotaque: vem do amarelo da bandeira do Acre, não é cor importada */
  --ouro:#F0B429;
  --ouro-claro:#FFD166;
  --ouro-esc:#B9820A;

  --branco:#fff;
  --nevoa:var(--azul-97);
  --nevoa-2:var(--azul-90);
  --tinta:#111a27;
  --tinta-2:#4a5768;
  --borda:#E3EAF6;
  --borda-2:#CFDBEE;

  --wrap:1180px;
  --r:14px;
  /* Sombras em três camadas: contorno rente, difusão média e um halo bem
     largo de opacidade baixíssima. O halo é o que dá a sensação de o card
     pairar — sem ele a sombra "gruda" no elemento e o efeito some. */
  --sombra-s:
    0 1px 2px rgba(6,28,74,.04),
    0 6px 16px -6px rgba(6,28,74,.08),
    0 18px 40px -18px rgba(6,28,74,.10);
  --sombra:
    0 1px 3px rgba(6,28,74,.04),
    0 10px 26px -10px rgba(6,28,74,.10),
    0 34px 70px -28px rgba(6,28,74,.14);
  --sombra-g:
    0 2px 4px rgba(6,28,74,.04),
    0 18px 40px -14px rgba(6,28,74,.12),
    0 56px 110px -40px rgba(6,28,74,.20);
  --sombra-ouro:0 10px 26px -6px rgba(240,180,41,.42), 0 30px 60px -24px rgba(240,180,41,.5);
  --fonte:'Montserrat','Segoe UI',system-ui,-apple-system,Arial,sans-serif;
  --ease:cubic-bezier(.22,.61,.36,1);
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;scroll-padding-top:80px}
body{
  margin:0;font-family:var(--fonte);color:var(--tinta);background:var(--branco);
  font-size:16px;line-height:1.62;-webkit-font-smoothing:antialiased;overflow-x:hidden
}
img{max-width:100%;height:auto;display:block}
a{color:inherit}
h1,h2,h3{margin:0 0 .5em;line-height:1.06;letter-spacing:-.022em}
p{margin:0 0 1.05em}
:focus-visible{outline:3px solid var(--ouro);outline-offset:3px;border-radius:4px}

.wrap{width:100%;max-width:var(--wrap);margin-inline:auto;padding-inline:22px}

.pular{position:absolute;left:-9999px;top:0;background:var(--branco);color:var(--azul);
  padding:12px 18px;z-index:200;font-weight:700}
.pular:focus{left:12px;top:12px}

/* --------------------------------------------------- revelação no scroll */
/* Só esconde se o JS estiver vivo (a classe .js é posta no <head>). Sem essa
   trava, um erro de script deixaria a página em branco — inaceitável num site
   que vai receber tráfego de campanha. */
.js [data-reveal]{opacity:0;transform:translateY(26px);
  transition:opacity .7s var(--ease),transform .7s var(--ease)}
.js [data-reveal].visivel{opacity:1;transform:none}
[data-reveal][data-atraso="1"]{transition-delay:.08s}
[data-reveal][data-atraso="2"]{transition-delay:.16s}
[data-reveal][data-atraso="3"]{transition-delay:.24s}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *{animation-duration:.01ms!important;transition-duration:.01ms!important}
  [data-reveal]{opacity:1;transform:none}
}

/* --- conteúdo ainda não preenchido
   Precisa ser identificável (senão o site vai ao ar com rascunho) mas sem
   sequestrar a leitura. Fundo neutro, texto azul, contorno tracejado fino e um
   ponto dourado como sinal. O amarelo fica reservado ao CTA. */
[data-pendente]{
  background:var(--azul-99);color:var(--azul-40);
  border:1px dashed var(--borda-2);border-radius:8px;
  padding:.5em .8em .5em 1.9em;position:relative;display:block
}
[data-pendente]::before{
  content:"";position:absolute;left:.75em;top:1.02em;width:7px;height:7px;border-radius:50%;
  background:var(--ouro);box-shadow:0 0 0 3px rgba(240,180,41,.2)
}
.escuro [data-pendente]{
  background:rgba(255,255,255,.06);color:rgba(255,255,255,.72);
  border-color:rgba(255,255,255,.2)
}
/* em lista e grade o marcador não vira bloco */
.chips[data-pendente],.galeria[data-pendente]{padding-left:.8em;background:transparent;border-color:var(--borda)}
.chips[data-pendente]::before,.galeria[data-pendente]::before{display:none}

/* ---------------------------------------------------------------- botões */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.6em;
  padding:16px 28px;border-radius:var(--r);font-weight:800;font-size:.95rem;
  text-decoration:none;border:2px solid transparent;cursor:pointer;position:relative;
  transition:transform .2s var(--ease),box-shadow .2s var(--ease),background .2s,color .2s;
  min-height:54px
}
.btn svg{width:17px;height:17px;transition:transform .2s var(--ease)}
.btn:hover svg{transform:translateX(4px)}
.btn--ouro{background:var(--ouro);color:#3a2600;box-shadow:0 10px 26px rgba(240,180,41,.34)}
.btn--ouro:hover{transform:translateY(-3px);box-shadow:0 16px 34px rgba(240,180,41,.44)}
.btn--claro{background:var(--branco);color:var(--azul);box-shadow:0 8px 22px rgba(0,10,40,.2)}
.btn--claro:hover{transform:translateY(-3px);box-shadow:0 14px 30px rgba(0,10,40,.3)}
.btn--vazado{border-color:rgba(255,255,255,.55);color:var(--branco)}
.btn--vazado:hover{background:rgba(255,255,255,.12);border-color:var(--branco)}
.btn--azul{background:var(--azul);color:var(--branco)}
.btn--azul:hover{background:var(--azul-med);transform:translateY(-2px)}
.btn--bloco{width:100%}
.botoes{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}

/* ------------------------------------------------------------------ olho */
.olho{
  font-size:.72rem;font-weight:800;letter-spacing:.19em;text-transform:uppercase;
  margin:0 0 16px;display:flex;align-items:center;gap:12px;color:var(--ouro)
}
.olho::before{content:"";height:3px;width:26px;background:var(--ouro);border-radius:2px;flex:0 0 auto}
.olho--azul{color:var(--ouro-esc)}
.olho--azul::before{background:var(--ouro)}

/* ------------------------------------------------------------- cabeçalho */
.topo{
  position:sticky;top:0;z-index:100;
  background:rgba(3,41,112,.96);backdrop-filter:blur(10px);
  border-bottom:1px solid rgba(255,255,255,.1);
  transition:padding .25s var(--ease),background .25s
}
.topo.encolhido{background:rgba(0,20,60,.97);box-shadow:0 8px 26px rgba(0,8,30,.3)}
.topo__in{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:66px}

/* --- logo do topo
   Entra deslizando no carregamento, acende em ouro no hover e encolhe junto
   com o cabeçalho ao rolar. O brilho é drop-shadow (segue o recorte das
   letras), não box-shadow — que desenharia um retângulo em volta do PNG. */
.topo__logo{
  display:inline-flex;flex:0 0 auto;
  transition:transform .3s var(--ease);
  animation:entraLogo .65s var(--ease) both
}
.topo__logo img{
  width:104px;height:auto;
  filter:drop-shadow(0 2px 6px rgba(0,0,0,.28));
  transition:width .3s var(--ease),filter .35s var(--ease)
}
.topo__logo:hover{transform:translateY(-2px)}
.topo__logo:hover img{
  filter:drop-shadow(0 0 3px rgba(240,180,41,.55)) drop-shadow(0 0 16px rgba(240,180,41,.45))
}
.topo__logo:active{transform:translateY(0) scale(.98)}
.topo.encolhido .topo__logo img{width:92px}

@keyframes entraLogo{
  from{opacity:0;transform:translateY(-14px)}
  to{opacity:1;transform:none}
}
@media (prefers-reduced-motion:reduce){.topo__logo{animation:none}}

.nav{
  position:fixed;inset:70px 0 auto;background:var(--azul-esc);display:none;
  flex-direction:column;padding:10px 22px 24px;box-shadow:0 20px 34px rgba(0,8,30,.4)
}
.nav.aberto{display:flex;animation:desce .28s var(--ease)}
@keyframes desce{from{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:none}}
.nav a{
  color:var(--branco);text-decoration:none;font-weight:700;font-size:1rem;
  padding:15px 0;border-bottom:1px solid rgba(255,255,255,.1)
}
.nav__cta{
  margin-top:16px;background:var(--ouro);color:#3a2600!important;border-radius:var(--r);
  text-align:center;border:0!important;padding:15px 18px!important
}

.hamb{width:46px;height:46px;background:transparent;border:0;cursor:pointer;
  display:flex;flex-direction:column;justify-content:center;gap:5px;padding:10px}
.hamb span{display:block;height:2.5px;background:var(--branco);border-radius:2px;transition:.25s var(--ease)}
.hamb[aria-expanded="true"] span:nth-child(1){transform:translateY(7.5px) rotate(45deg)}
.hamb[aria-expanded="true"] span:nth-child(2){opacity:0}
.hamb[aria-expanded="true"] span:nth-child(3){transform:translateY(-7.5px) rotate(-45deg)}

/* ------------------------------------------------------------------ hero */
.hero{
  position:relative;color:var(--branco);padding:40px 0 0;overflow:hidden;isolation:isolate;
  background:
    radial-gradient(90% 70% at 78% 18%, rgba(29,86,190,.5) 0%, transparent 62%),
    radial-gradient(120% 90% at 20% 0%, var(--azul-med) 0%, #011C52 46%, var(--azul-noite) 100%)
}
/* faixa diagonal: tira o retângulo chapado do fundo */
.hero::before{
  content:"";position:absolute;inset:-20% -40%;z-index:-2;
  background:linear-gradient(104deg,transparent 44%,rgba(255,255,255,.045) 44%,
             rgba(255,255,255,.045) 57%,transparent 57%)
}

/* --- camada 1: Rio Branco ao fundo
   A foto entra dessaturada e tingida de azul para virar a MESMA cor da marca —
   colorida ela brigaria com o retrato e derrubaria a legibilidade do texto.
   O gradiente por cima protege a coluna da esquerda, onde fica a headline. */
.hero__cidade{position:absolute;inset:0;z-index:-3;overflow:hidden}
.hero__cidade img{
  width:100%;height:100%;object-fit:cover;object-position:center 62%;
  filter:saturate(.22) contrast(1.1) brightness(.62);
  opacity:.5;mix-blend-mode:luminosity
}
.hero__cidade::after{
  content:"";position:absolute;inset:0;
  background:
    linear-gradient(96deg, var(--azul-noite) 6%, rgba(1,26,72,.9) 40%, rgba(1,34,90,.44) 72%, rgba(1,26,72,.6) 100%),
    linear-gradient(to top, var(--azul-noite) 2%, transparent 34%)
}

/* --- camada 2: painel angular
   Recorte poligonal com a cidade em cor cheia. Vive atrás do retrato e é o que
   dá profundidade — sem ele o lado direito volta a ser fundo liso. */
.hero__painel{
  position:absolute;right:-6%;top:3%;width:66%;height:82%;z-index:-2;
  /* o próprio elemento é o CONTORNO: fundo claro cortado no polígono maior */
  clip-path:polygon(26% 0, 100% 0, 100% 74%, 74% 100%, 8% 88%, 0 34%);
  background:linear-gradient(150deg,rgba(240,180,41,.85),rgba(150,190,255,.55) 55%,rgba(240,180,41,.35))
}
/* a foto usa um polígono levemente MENOR — a diferença entre os dois é a
   linha de contorno. Um traço só, sem borda falsa por cima do recorte. */
.hero__painel img{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  clip-path:polygon(26.4% 0.6%, 99.4% 0.6%, 99.4% 73.6%, 73.7% 99.2%, 8.4% 87.3%, 0.6% 34.3%);
  filter:saturate(.62) contrast(1.1) brightness(.85)
}
.hero__painel::after{
  content:"";position:absolute;inset:0;z-index:1;
  clip-path:polygon(26.4% 0.6%, 99.4% 0.6%, 99.4% 73.6%, 73.7% 99.2%, 8.4% 87.3%, 0.6% 34.3%);
  background:linear-gradient(122deg,rgba(1,24,68,.9) 0%,rgba(3,41,112,.3) 46%,rgba(0,14,43,.66) 100%)
}
/* no celular o painel fica atrás do retrato e some sob ele: vira só ruído
   e peso de download. Some abaixo de 980px. */
@media (max-width:979px){.hero__painel{display:none}}

.hero__estrela{position:absolute;top:-10%;right:-26%;width:min(120vw,780px);opacity:.07;z-index:-1;
  pointer-events:none;will-change:transform}
.hero__estrela svg{width:100%;height:auto;fill:#8fb0e8}

.hero__in{display:flex;flex-direction:column}
/* a pílula tem que caber numa linha só: quebrada em duas ela vira um bloco
   largo que compete com a headline. No celular o tracking cede primeiro. */
.selo{
  display:inline-flex;align-items:center;gap:8px;background:rgba(240,180,41,.14);
  border:1px solid rgba(240,180,41,.42);color:var(--ouro);border-radius:100px;
  padding:7px 15px;font-size:.6rem;font-weight:800;letter-spacing:.09em;
  text-transform:uppercase;margin-bottom:22px;white-space:nowrap;max-width:100%
}
@media (min-width:420px){.selo{font-size:.66rem;letter-spacing:.12em;padding:8px 17px}}
@media (min-width:980px){.selo{font-size:.7rem;letter-spacing:.13em}}
.selo::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--ouro);
  box-shadow:0 0 0 0 rgba(240,180,41,.7);animation:pulso 2.4s infinite}
@keyframes pulso{
  70%{box-shadow:0 0 0 11px rgba(240,180,41,0)}
  100%{box-shadow:0 0 0 0 rgba(240,180,41,0)}
}

.hero h1{font-size:clamp(2.1rem,8.6vw,3.2rem);font-weight:900;font-style:italic;text-transform:uppercase}
.hero h1 mark{
  background:var(--branco);color:var(--azul);padding:.02em .2em .1em;border-radius:9px;
  display:inline-block;margin-top:.1em;box-shadow:0 8px 24px rgba(0,8,40,.3)
}
.hero__sub{font-size:1.04rem;max-width:44ch;opacity:.92;font-weight:500}

.hero__foto{margin:24px auto -2px;max-width:410px;position:relative;z-index:2}
/* halo atrás do retrato: separa o recorte do fundo sem contorno duro */
.hero__foto::before{
  content:"";position:absolute;left:50%;top:14%;transform:translateX(-50%);
  width:104%;aspect-ratio:1;border-radius:50%;z-index:-1;
  background:radial-gradient(circle,rgba(120,170,255,.3) 0%,transparent 66%)
}
.hero__foto img{filter:drop-shadow(-16px 16px 38px rgba(0,6,26,.55))}

.hero__onda{position:absolute;left:0;right:0;bottom:-1px;line-height:0;z-index:1;pointer-events:none}
.hero__onda svg{width:100%;height:54px}
.hero__onda path{fill:var(--nevoa)}

/* -------------------------------------------------------- credenciais */
/* cards claros SUBINDO por cima da dobra — é o que quebra o bloco de azul */
.cred{
  background:linear-gradient(180deg,var(--azul-97) 0%,var(--azul-99) 100%);
  padding:0 0 58px;position:relative
}
.cred__grid{display:grid;grid-template-columns:repeat(2,1fr);gap:13px;margin-top:-30px;position:relative;z-index:5}
.cred__item{
  background:var(--branco);border-radius:var(--r);padding:24px 14px;text-align:center;
  box-shadow:var(--sombra);border:1px solid var(--borda);border-top:3px solid var(--ouro);
  transition:transform .28s var(--ease),box-shadow .28s var(--ease)
}
.cred__item:hover{transform:translateY(-6px);box-shadow:var(--sombra-g)}
.cred__item strong{
  display:block;font-size:clamp(1.7rem,7vw,2.3rem);font-weight:900;font-style:italic;
  line-height:1;letter-spacing:-.03em;color:var(--azul)
}
.cred__item span{display:block;margin-top:9px;font-size:.68rem;font-weight:800;
  letter-spacing:.1em;text-transform:uppercase;color:var(--tinta-2);line-height:1.35}

/* ---------------------------------------------------------------- seções */
.secao{padding:62px 0;position:relative}
.secao--nevoa{background:var(--nevoa)}

/* Seção clara. As bordas são DEGRADÊS, não linhas: a cor entra e sai por
   dissolução, então não existe o corte reto que endurecia a página.
   A seção começa e termina exatamente branca, casando com a vizinha. */
.secao--claro{
  background:linear-gradient(
    180deg,
    var(--branco) 0%,
    var(--azul-99) 9%,
    var(--azul-95) 42%,
    var(--azul-97) 74%,
    var(--branco) 100%)
}

.escuro{
  color:var(--branco);position:relative;overflow:hidden;isolation:isolate;
  background:
    radial-gradient(80% 60% at 82% 8%, rgba(29,86,190,.42) 0%, transparent 60%),
    linear-gradient(168deg,var(--azul-med) 0%,#011A4C 52%,var(--azul-noite) 100%)
}
.escuro::before{
  content:"";position:absolute;inset:-30% -30%;z-index:-1;
  background:linear-gradient(104deg,transparent 46%,rgba(255,255,255,.04) 46%,
             rgba(255,255,255,.04) 60%,transparent 60%)
}
.secao h2{font-size:clamp(1.65rem,6.5vw,2.55rem);font-weight:900;font-style:italic;
  text-transform:uppercase;color:var(--azul)}
.escuro h2{color:var(--branco)}
.secao__cab{margin-bottom:38px;max-width:60ch}
.secao__cab--centro{margin-inline:auto;text-align:center}
.secao__cab--centro .olho{justify-content:center}
.secao__intro{font-size:1.02rem;opacity:.92;max-width:52ch}
.escuro .secao__intro{opacity:.86}
.lead{font-size:1.1rem;font-weight:500}

/* ------------------------------------------------------- bloco de duas */
.duas{display:flex;flex-direction:column;gap:38px}
.duas__img{margin:0;position:relative;padding:0 12px 12px 0}
/* moldura deslocada: dá profundidade sem sombra pesada */
.duas__img::before{
  content:"";position:absolute;right:0;bottom:0;width:78%;height:78%;
  border:3px solid var(--ouro);border-radius:var(--r);z-index:0
}
.duas__img img{
  position:relative;z-index:1;border-radius:var(--r);box-shadow:var(--sombra);
  width:100%;aspect-ratio:4/5;object-fit:cover;background:var(--nevoa-2)
}
.duas__img figcaption{margin-top:14px;font-size:.85rem;color:var(--tinta-2)}

/* --- linha do tempo vertical
   O trilho é um degradê que nasce transparente e termina no dourado: a leitura
   desce e "chega" no presente, em vez de ser uma lista de itens soltos.
   Cada marco é um cartão que flutua e desliza no hover. */
.linha{list-style:none;margin:34px 0 0;padding:0;position:relative}
.linha::before{
  content:"";position:absolute;left:11px;top:10px;bottom:14px;width:2px;border-radius:2px;
  background:linear-gradient(180deg,transparent,var(--azul-90) 12%,var(--azul-70) 62%,var(--ouro) 100%)
}
.linha__item{position:relative;padding:0 0 20px 44px}
.linha__item:last-child{padding-bottom:0}
/* marcador */
.linha__item::before{
  content:"";position:absolute;left:4px;top:6px;width:16px;height:16px;border-radius:50%;
  background:var(--branco);border:3px solid var(--azul-70);z-index:1;
  transition:border-color .3s var(--ease),box-shadow .3s var(--ease),transform .3s var(--ease)
}
.linha__item:hover::before{border-color:var(--ouro);transform:scale(1.16)}
.linha__item--agora::before{
  border-color:var(--ouro);background:var(--ouro);
  box-shadow:0 0 0 6px rgba(240,180,41,.18)
}
.linha__ano{
  display:inline-block;font-size:.74rem;font-weight:800;letter-spacing:.14em;
  color:var(--azul-40);margin-bottom:9px
}
.linha__item--agora .linha__ano{color:var(--ouro-esc)}
/* ano ainda não preenchido: só esmaece. O marcador de pendência fica no
   cartão — dois marcadores no mesmo item viram caixa dentro de caixa. */
.linha__ano--vazio{color:var(--azul-70);font-style:italic;letter-spacing:.1em}
.linha__cartao{
  background:var(--branco);border:1px solid var(--borda);border-radius:var(--r);
  padding:16px 20px;box-shadow:var(--sombra-s);
  transition:transform .3s var(--ease),box-shadow .3s var(--ease),border-color .3s
}
.linha__item:hover .linha__cartao{transform:translateX(5px);box-shadow:var(--sombra);border-color:var(--borda-2)}
.linha__cartao p{margin:0;font-size:.95rem;color:var(--tinta-2)}
.linha__cartao strong{color:var(--azul);font-weight:800}
.linha__item--agora .linha__cartao{border-left:3px solid var(--ouro)}

/* ----------------------------------------------------------------- cards */
/* --- cards do mandato
   Brancos, com borda fina E sombra em duas camadas: é a combinação que faz o
   card parecer flutuar. Só sombra dá borrão; só borda dá adesivo colado. */
.cards{display:grid;grid-template-columns:1fr;gap:16px}
.card{
  background:var(--branco);border:1px solid var(--borda);border-radius:var(--r);
  padding:28px 24px;position:relative;overflow:hidden;box-shadow:var(--sombra-s);
  transition:transform .3s var(--ease),box-shadow .3s var(--ease),border-color .3s
}
/* faixa de topo que acende no hover */
.card::after{
  content:"";position:absolute;left:0;right:0;top:0;height:3px;
  background:linear-gradient(90deg,var(--ouro),var(--ouro-claro));
  transform:scaleX(0);transform-origin:left;transition:transform .35s var(--ease)
}
.card:hover{transform:translateY(-7px);box-shadow:var(--sombra-g);border-color:var(--borda-2)}
.card:hover::after{transform:scaleX(1)}
/* numeral fantasma no canto: textura, não decoração vazia */
.card__fundo{
  position:absolute;right:-6px;bottom:-32px;font-size:6.5rem;font-weight:900;font-style:italic;
  color:var(--azul-95);line-height:1;pointer-events:none;user-select:none;transition:color .3s
}
.card:hover .card__fundo{color:var(--azul-90)}
.card h3{font-size:1.08rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em;
  margin-bottom:.5em;color:var(--azul);position:relative;z-index:1}
.card h3::after{content:"";display:block;width:34px;height:3px;background:var(--ouro);
  border-radius:2px;margin-top:11px}
.card__num{font-size:1.95rem;font-weight:900;font-style:italic;margin:.5em 0 .4em;
  line-height:1;color:var(--ouro-esc);position:relative;z-index:1}
.card p:last-of-type{margin-bottom:0;font-size:.93rem;color:var(--tinta-2);position:relative;z-index:1}

.instituicoes{margin-top:48px}
.instituicoes h3{font-size:1rem;text-transform:uppercase;letter-spacing:.09em;font-weight:800;
  color:var(--azul)}
.instituicoes h3::after{content:"";display:block;width:44px;height:3px;background:var(--ouro);
  border-radius:2px;margin-top:12px}
.chips{list-style:none;display:flex;flex-wrap:wrap;gap:10px;padding:0;margin:20px 0 0}
.chips li{
  background:var(--branco);border:1px solid var(--borda);border-radius:100px;
  padding:10px 18px;font-size:.86rem;font-weight:600;color:var(--azul);
  box-shadow:var(--sombra-s);transition:.24s var(--ease)
}
.chips li:hover{background:var(--ouro);color:#3a2600;border-color:var(--ouro);
  transform:translateY(-3px);box-shadow:var(--sombra-ouro)}

/* ----------------------------------------------------------------- eixos */
.eixos{display:grid;grid-template-columns:1fr;gap:16px}
.eixo{
  border:1px solid var(--borda);border-radius:var(--r);padding:30px 24px;background:var(--branco);
  box-shadow:var(--sombra-s);position:relative;overflow:hidden;
  transition:box-shadow .3s var(--ease),transform .3s var(--ease),border-color .3s
}
/* barra que acende no hover */
.eixo::before{
  content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--ouro);
  transform:scaleY(0);transform-origin:top;transition:transform .32s var(--ease)
}
.eixo:hover{box-shadow:var(--sombra-g);transform:translateY(-5px);border-color:var(--borda-2)}
.eixo:hover::before{transform:scaleY(1)}
.eixo__n{display:block;font-size:2.1rem;font-weight:900;font-style:italic;
  color:var(--azul-90);line-height:1;margin-bottom:12px;transition:color .28s}
.eixo:hover .eixo__n{color:var(--ouro)}
.eixo h3{font-size:1.16rem;font-weight:800;color:var(--azul)}
.eixo p{margin:0;font-size:.95rem;color:var(--tinta-2)}

/* ----------------------------------------------------------------- frase */
/* --- curvas de transição entre seções
   Preenchidas com a cor da seção VIZINHA (branco), de modo que a claridade
   avança por dentro da escura. É o que dissolve o corte reto. */
.curva{position:absolute;left:0;right:0;line-height:0;z-index:3;pointer-events:none}
.curva svg{width:100%;display:block}
.curva path{fill:var(--branco)}
.curva--topo{top:-1px}
.curva--topo svg{height:76px}
.curva--base{bottom:-1px}
.curva--base svg{height:76px}
@media (min-width:980px){
  .curva--topo svg,.curva--base svg{height:120px}
}

.frase{position:relative;padding:126px 0;overflow:hidden}

/* Rio Branco ao fundo da citação, mesmo tratamento do hero: dessaturada e
   afundada no azul. Aqui o escurecimento é mais forte porque o texto passa
   pelo CENTRO da imagem — não tem coluna lateral protegida. */
.frase__cidade{position:absolute;inset:0;z-index:0}
.frase__cidade img{
  width:100%;height:100%;object-fit:cover;object-position:center 56%;
  filter:saturate(.3) contrast(1.15) brightness(.8);
  opacity:.78;mix-blend-mode:luminosity
}
/* O véu escurece o MIOLO, onde a frase passa, e alivia nas laterais para a
   cidade continuar legível. Escurecer por igual apagava a foto inteira. */
.frase__cidade::after{
  content:"";position:absolute;inset:0;
  background:
    radial-gradient(52% 70% at 50% 50%, rgba(0,14,43,.82) 0%, rgba(0,14,43,.42) 72%, rgba(0,14,43,.3) 100%),
    linear-gradient(to bottom, var(--azul-noite), transparent 26%, transparent 74%, var(--azul-noite))
}
.frase .wrap{position:relative;z-index:1}
.frase blockquote{margin:0;text-align:center;max-width:32ch;margin-inline:auto;position:relative}
.frase blockquote::before{
  content:"\201C";position:absolute;top:-.4em;left:50%;transform:translateX(-50%);
  font-size:9rem;line-height:1;color:var(--ouro);opacity:.42;font-family:Georgia,serif;pointer-events:none
}
.frase p{
  font-size:clamp(1.3rem,5.6vw,2rem);font-weight:800;font-style:italic;line-height:1.24;
  margin-bottom:.7em;position:relative;
  /* a foto atrás tem áreas claras: a sombra garante a leitura em cima delas */
  text-shadow:0 2px 18px rgba(0,10,35,.75)
}
.frase cite{font-style:normal;font-size:.74rem;font-weight:800;letter-spacing:.18em;
  text-transform:uppercase;color:var(--ouro)}

/* --------------------------------------------------------------- galeria */
/* --- mosaico assimétrico
   A grade simétrica de quadrados lê como catálogo. Aqui as peças têm pesos
   diferentes e se encaixam por spans, o que dá hierarquia: a foto grande é a
   principal, as menores respiram em volta. As proporções fecham um retângulo
   exato — mosaico com buraco parece erro, não estilo. */
.galeria{
  display:grid;grid-template-columns:repeat(2,1fr);
  grid-auto-rows:112px;gap:12px
}
.galeria figure{
  margin:0;position:relative;overflow:hidden;border-radius:var(--r);
  background:var(--nevoa-2);box-shadow:var(--sombra-s);
  transition:transform .35s var(--ease),box-shadow .35s var(--ease)
}
.galeria figure:hover{transform:translateY(-5px);box-shadow:var(--sombra-g)}
.galeria img{
  width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease)
}
.galeria figure:hover img{transform:scale(1.07)}

/* celular: 2 colunas — a primeira é destaque de largura cheia */
.galeria figure:nth-child(1){grid-column:span 2;grid-row:span 2}
.galeria figure:nth-child(2){grid-row:span 2}
.galeria figure:nth-child(3){grid-row:span 2}
.galeria figure:nth-child(4){grid-column:span 2;grid-row:span 2}
.galeria figure:nth-child(5){grid-row:span 2}
.galeria figure:nth-child(6){grid-row:span 2}
.galeria figcaption{
  position:absolute;left:0;right:0;bottom:0;padding:26px 14px 12px;color:var(--branco);
  font-size:.78rem;font-weight:600;
  background:linear-gradient(transparent,rgba(0,10,40,.85));
  transform:translateY(100%);transition:transform .35s var(--ease)
}
.galeria figure:hover figcaption{transform:none}
/* no toque não existe hover: a legenda fica sempre visível */
@media (hover:none){.galeria figcaption{transform:none}}

/* -------------------------------------------------------------- cadastro */
.cadastro__in{display:flex;flex-direction:column;gap:34px}
.cadastro__txt p{color:var(--tinta-2)}
.cadastro__nota{font-size:.85rem;color:var(--tinta-2);margin:0}
.cadastro__lista{list-style:none;padding:0;margin:22px 0 0}
.cadastro__lista li{display:flex;gap:12px;align-items:flex-start;margin-bottom:13px;
  font-size:.94rem;font-weight:600;color:var(--tinta)}
/* o check ganha disco próprio: vira ícone, não risco solto */
.cadastro__lista svg{
  width:26px;height:26px;flex:0 0 auto;padding:5px;border-radius:50%;
  background:var(--ouro);color:#3a2600;box-shadow:0 3px 10px rgba(240,180,41,.4)
}

/* --- cartão do formulário
   Desce por cima do rodapé (margin negativa) para quebrar a linha reta entre
   a seção e o bloco escuro. O rodapé compensa com padding-top; sem isso o
   conteúdo dele passaria por baixo do cartão. */
.form{
  background:var(--branco);color:var(--tinta);border-radius:24px;padding:30px 22px;
  box-shadow:var(--sombra-g);border:1px solid var(--borda);position:relative;
  z-index:6;margin-bottom:-96px
}
/* fita dourada no topo: sinaliza que ali é a ação principal */
.form::before{
  content:"";position:absolute;left:26px;right:26px;top:0;height:4px;border-radius:0 0 4px 4px;
  background:linear-gradient(90deg,var(--ouro),var(--ouro-claro))
}
.campo{margin-bottom:18px}
.campo-linha{display:grid;grid-template-columns:1fr;gap:0}
label{display:block;font-weight:700;font-size:.85rem;margin-bottom:8px;color:var(--azul)}
.opc{font-weight:500;color:var(--tinta-2)}

/* campos: canto suave, borda fina, fundo off-white.
   O placeholder fica em cinza-azulado — cinza puro sobre off-white cai abaixo
   do contraste mínimo e some para quem enxerga menos. */
input[type=text],input[type=tel]{
  width:100%;padding:16px 18px;border:1px solid var(--borda-2);border-radius:14px;
  font-family:inherit;font-size:16px; /* 16px trava o zoom automático do iOS */
  background:var(--azul-99);color:var(--tinta);
  transition:border-color .2s var(--ease),box-shadow .2s var(--ease),background .2s
}
input::placeholder{color:#8494ab;opacity:1}
input:hover{border-color:var(--azul-70)}
input:focus{
  border-color:var(--azul);background:var(--branco);
  box-shadow:0 0 0 4px rgba(3,41,112,.1);outline:none
}
input[aria-invalid="true"]{border-color:#c92a2a;background:#fffafa}
.erro{display:none;color:#c92a2a;font-size:.82rem;font-weight:600;margin-top:6px}
.erro.ativo{display:block}
.check{display:flex;gap:12px;align-items:flex-start;font-weight:500;font-size:.9rem;
  cursor:pointer;color:var(--tinta-2)}
.check input{margin-top:3px;width:20px;height:20px;flex:0 0 auto;accent-color:var(--azul)}

/* botão: pílula, com sombra dourada dando volume */
#enviar{
  margin-top:24px;border-radius:100px;padding:17px 30px;font-size:1rem;
  box-shadow:var(--sombra-ouro)
}
#enviar[disabled]{opacity:.6;cursor:progress;transform:none;box-shadow:none}
.mel{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.form__msg{margin:16px 0 0;font-weight:700;font-size:.92rem;display:none;padding:13px 15px;border-radius:var(--r)}
.form__msg.ok{display:block;color:#14622f;background:#e6f6ec}
.form__msg.ruim{display:block;color:#a51c1c;background:#fdecec}

/* ---------------------------------------------------------------- rodapé */
/* padding-top generoso: é o espaço que o cartão do formulário invade */
.rodape{
  background:linear-gradient(180deg,var(--azul-esc) 0%,var(--azul-noite) 60%);
  color:var(--branco);padding:140px 0 0;position:relative
}
.rodape__in{display:flex;flex-direction:column;gap:36px;padding-bottom:38px}
.rodape__marca img{width:158px}
.rodape__marca p{margin:16px 0 0;font-weight:800;font-style:italic;color:var(--ouro);font-size:1.02rem}

.rodape h4{font-size:.7rem;letter-spacing:.17em;text-transform:uppercase;
  margin:0 0 16px;color:var(--azul-70);font-weight:800}

.rodape__nav ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:11px}
.rodape__nav a{
  text-decoration:none;font-size:.93rem;font-weight:600;opacity:.85;
  transition:opacity .2s,color .2s,padding-left .2s var(--ease)
}
.rodape__nav a:hover{opacity:1;color:var(--ouro);padding-left:5px}

/* redes: círculos vazados de traço fino, sem bloco de cor */
.redes{display:flex;gap:12px}
.redes a{
  width:46px;height:46px;border-radius:50%;border:1px solid rgba(255,255,255,.32);
  display:grid;place-items:center;color:var(--branco);
  transition:border-color .25s var(--ease),color .25s,transform .25s var(--ease),background .25s
}
.redes svg{width:21px;height:21px}
.redes a:hover{
  border-color:var(--ouro);color:var(--ouro);transform:translateY(-3px);
  background:rgba(240,180,41,.1)
}
.rodape__arroba{margin:16px 0 0;font-size:.85rem;font-weight:600;color:var(--azul-70)}

.rodape__legal{border-top:1px solid rgba(255,255,255,.1);padding-block:24px;
  display:flex;flex-direction:column;gap:6px}
.rodape__legal p{margin:0;font-size:.75rem;color:rgba(255,255,255,.5);letter-spacing:.03em}

/* ============================================================ ≥ 640px */
@media (min-width:640px){
  .cred__grid{grid-template-columns:repeat(4,1fr);gap:14px}
  .cards{grid-template-columns:repeat(2,1fr)}
  .eixos{grid-template-columns:repeat(2,1fr)}
  .campo-linha{grid-template-columns:1fr 1fr;gap:0 14px}

  /* mosaico em 4 colunas × 3 faixas, fechando retângulo:
     ┌───────┬───┬───┐   1 = grande (2×2)
     │   1   │ 2 │ 3 │   3 = alta (1×2)
     │       ├───┤   │
     ├───┬───┤ 4 │   │
     │  5    │ 6 │   │
     └───────┴───┴───┘ */
  .galeria{grid-template-columns:repeat(4,1fr);grid-auto-rows:150px;gap:14px}
  .galeria figure:nth-child(1){grid-column:span 2;grid-row:span 2}
  .galeria figure:nth-child(2){grid-column:span 1;grid-row:span 1}
  .galeria figure:nth-child(3){grid-column:span 1;grid-row:span 2}
  .galeria figure:nth-child(4){grid-column:span 1;grid-row:span 1}
  .galeria figure:nth-child(5){grid-column:span 2;grid-row:span 1}
  .galeria figure:nth-child(6){grid-column:span 2;grid-row:span 1}
  .form{padding:34px 32px}
  .secao{padding:80px 0}
  .rodape__legal{flex-direction:row;justify-content:space-between;align-items:center}
  .botoes{gap:14px}
}

/* ============================================================ ≥ 980px */
@media (min-width:980px){
  body{font-size:17px}

  .hamb{display:none}
  .nav{position:static;display:flex;flex-direction:row;align-items:center;gap:30px;
    background:none;padding:0;box-shadow:none;inset:auto;animation:none}
  .nav a{padding:0;border:0;font-size:.92rem;opacity:.88;position:relative}
  .nav a:not(.nav__cta)::after{
    content:"";position:absolute;left:0;right:0;bottom:-7px;height:2px;background:var(--ouro);
    transform:scaleX(0);transform-origin:left;transition:transform .28s var(--ease)
  }
  .nav a:not(.nav__cta):hover::after{transform:scaleX(1)}
  .nav a:hover{opacity:1}
  .nav__cta{margin:0;padding:12px 22px!important;font-size:.87rem}
  .topo__logo img{width:124px}
  .topo.encolhido .topo__logo img{width:106px}
  .topo__in{min-height:78px}
  .topo.encolhido .topo__in{min-height:66px}

  .hero{padding-top:64px}
  .hero__in{flex-direction:row;align-items:end;justify-content:space-between;gap:44px;min-height:600px}
  .hero__txt{flex:1 1 53%;padding-bottom:104px}
  .hero h1{font-size:clamp(2.9rem,4.5vw,3.85rem)}
  .hero__foto{flex:0 0 43%;max-width:530px;margin:0}
  .hero__onda svg{height:86px}
  .hero__estrela{width:860px;right:-9%;top:-16%}

  .cred__grid{margin-top:-46px}
  .cred__item{padding:30px 18px}

  .duas{flex-direction:row;align-items:flex-start;gap:64px}
  .duas__txt{flex:1 1 54%}
  .duas__img{flex:1 1 46%;position:sticky;top:118px}

  .cards{grid-template-columns:repeat(4,1fr)}
  .eixos{grid-template-columns:repeat(4,1fr)}

  .cadastro__in{flex-direction:row;align-items:flex-start;gap:66px}
  .cadastro__txt{flex:1 1 45%;padding-top:8px}
  .form{flex:1 1 55%;padding:38px 36px;margin-bottom:-120px}
  #enviar{padding:18px 34px}

  /* rodapé em 3 colunas: marca | navegação | redes */
  .rodape{padding-top:172px}
  .rodape__in{
    display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:48px;align-items:start;
    padding-bottom:46px
  }
  .rodape__redes{justify-self:end;text-align:right}
  .rodape__redes .redes{justify-content:flex-end}
}

/* ============================================================== impressão */
@media print{
  .topo,.hamb,.nav,.botoes,.form,.hero__onda,.hero__estrela,.galeria{display:none}
  .hero,.escuro,.rodape{background:none!important;color:#000!important}
  [data-reveal]{opacity:1!important;transform:none!important}
  body{font-size:11pt}
}

/* ===========================================================================
   DIREÇÃO VISUAL 2026
   A interface passa a trabalhar por camadas de luz e não por blocos de cor.
   As transições são dissolvidas em gradientes longos; curvas duras, recortes
   diagonais e excesso de contornos dão lugar a um sistema mais editorial.
   =========================================================================== */

:root{
  --azul:#062d72;
  --azul-med:#0b3d8f;
  --azul-esc:#031a4b;
  --azul-noite:#010f31;
  --azul-99:#f8faff;
  --azul-97:#f2f6fd;
  --azul-95:#e8f0fc;
  --azul-90:#d8e5f8;
  --azul-70:#9cb9e6;
  --azul-40:#4269ac;
  --ouro:#f6bd2d;
  --ouro-claro:#ffe096;
  --ouro-esc:#ae7500;
  --tinta:#14213a;
  --tinta-2:#5d6b80;
  --borda:rgba(20,58,119,.11);
  --borda-2:rgba(20,58,119,.2);
  --wrap:1200px;
  --r:18px;
  --sombra-s:0 2px 5px rgba(7,33,85,.03),0 12px 28px -15px rgba(7,33,85,.14);
  --sombra:0 4px 12px rgba(7,33,85,.04),0 26px 52px -26px rgba(7,33,85,.22);
  --sombra-g:0 8px 24px rgba(7,33,85,.06),0 38px 76px -30px rgba(7,33,85,.28);
}

body{
  background:linear-gradient(180deg,#fff 0%,var(--azul-99) 50%,#fff 100%);
  color:var(--tinta);
}

.wrap{padding-inline:clamp(20px,4vw,32px)}
h1,h2,h3{letter-spacing:-.04em}

/* ---------------------------------------------------------------- cabeçalho */
.topo{
  background:linear-gradient(100deg,rgba(2,24,68,.97),rgba(6,45,114,.92) 55%,rgba(9,54,126,.88));
  border-bottom:1px solid rgba(255,255,255,.1);
  box-shadow:0 8px 28px rgba(0,13,42,.1);
  overflow:hidden;
}
.topo::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(45% 170% at 78% -60%,rgba(115,174,255,.28),transparent 72%);
}
.topo.encolhido{
  background:linear-gradient(100deg,rgba(1,17,49,.98),rgba(4,35,91,.96));
  box-shadow:0 12px 34px rgba(0,12,38,.25);
}
.topo__in{position:relative;min-height:74px;gap:18px}
.topo__logo{position:relative;z-index:1}
.topo__logo img{width:112px;filter:drop-shadow(0 3px 9px rgba(0,5,25,.32))}
.topo.encolhido .topo__logo img{width:98px}
.topo__contexto{
  display:none;margin:0 auto 0 0;padding-left:17px;border-left:1px solid rgba(255,255,255,.22);
  color:rgba(255,255,255,.72);font-size:.61rem;font-weight:700;line-height:1.35;
  text-transform:uppercase;letter-spacing:.12em;
}
.topo__contexto span,.topo__contexto strong{display:block}
.topo__contexto strong{margin-top:2px;color:var(--ouro);font-size:.58rem;letter-spacing:.15em}
.topo__progresso{
  position:absolute;left:0;right:0;bottom:0;height:2px;z-index:2;transform:scaleX(0);
  transform-origin:left;background:linear-gradient(90deg,var(--ouro),#ffe8a4,rgba(255,255,255,.85));
  box-shadow:0 0 12px rgba(246,189,45,.85);transition:transform .12s linear;
}
.nav a{font-size:.88rem;letter-spacing:.01em}
.nav__cta{
  background:linear-gradient(135deg,var(--ouro),#ffd661)!important;
  box-shadow:0 8px 20px rgba(0,15,48,.25),inset 0 1px rgba(255,255,255,.48);
}
.nav__cta:hover{filter:brightness(1.04)}
@media (min-width:980px){
  .nav a:not(.nav__cta)[aria-current="page"]::after{transform:scaleX(1)}
  .nav a:not(.nav__cta)[aria-current="page"]{color:var(--branco);opacity:1}
}

/* --------------------------------------------------------------------- hero */
.hero{
  min-height:620px;padding:56px 0 132px;
  background:
    radial-gradient(48% 72% at 78% 29%,rgba(78,143,255,.42) 0%,transparent 68%),
    radial-gradient(40% 60% at 92% 88%,rgba(246,189,45,.17),transparent 70%),
    linear-gradient(116deg,#020e2e 0%,#062d72 48%,#0a438f 100%);
}
.hero::before{
  inset:0;z-index:-1;
  background:
    linear-gradient(90deg,rgba(1,13,43,.58) 0%,rgba(1,16,51,.16) 56%,rgba(4,28,77,.5) 100%),
    radial-gradient(70% 90% at 50% 100%,transparent 28%,rgba(0,8,29,.32) 100%);
}
.hero::after{
  content:"";position:absolute;left:0;right:0;bottom:-1px;height:220px;z-index:4;pointer-events:none;
  background:linear-gradient(180deg,rgba(242,246,253,0) 0%,rgba(242,246,253,.44) 42%,var(--azul-97) 100%);
}
.hero__cidade img{filter:saturate(.45) contrast(1.04) brightness(.72);opacity:.5;mix-blend-mode:soft-light}
.hero__cidade::after{
  background:linear-gradient(90deg,rgba(0,13,44,.94) 0%,rgba(3,29,79,.7) 43%,rgba(3,31,81,.2) 76%,rgba(2,20,58,.65) 100%);
}
.hero__painel{
  display:block;right:-8%;top:4%;width:65%;height:82%;z-index:-2;overflow:hidden;
  clip-path:none;border-radius:52% 48% 39% 61% / 48% 40% 60% 52%;
  background:linear-gradient(140deg,rgba(255,225,145,.92),rgba(102,164,255,.72) 54%,rgba(246,189,45,.55));
  box-shadow:0 0 0 1px rgba(255,255,255,.3),0 38px 80px rgba(0,11,43,.28);
  transform:rotate(-5deg);
}
.hero__painel img{clip-path:none;border-radius:inherit;inset:4px;width:calc(100% - 8px);height:calc(100% - 8px);filter:saturate(.8) contrast(1.04) brightness(.86)}
.hero__painel::after{
  clip-path:none;border-radius:inherit;inset:4px;
  background:linear-gradient(125deg,rgba(2,26,73,.74),rgba(4,50,124,.18) 56%,rgba(2,17,50,.44));
}
.hero__estrela{opacity:.1;right:-21%;top:-13%;width:min(120vw,840px)}
.hero__luz{position:absolute;border-radius:50%;pointer-events:none;filter:blur(20px);z-index:-1}
.hero__luz--ouro{width:270px;height:270px;right:19%;bottom:14%;background:rgba(246,189,45,.17)}
.hero__luz--azul{width:330px;height:330px;left:38%;top:-22%;background:rgba(104,164,255,.19)}
.hero__in{position:relative;z-index:5}
.hero__txt{position:relative;z-index:2}
.selo{
  background:rgba(255,255,255,.09);border-color:rgba(255,223,145,.48);color:#ffe7a0;
  box-shadow:inset 0 1px rgba(255,255,255,.09),0 10px 22px rgba(0,8,31,.1);
}
.selo::before{background:var(--ouro);box-shadow:0 0 0 0 rgba(246,189,45,.72)}
.hero h1{font-size:clamp(2.45rem,9vw,4.7rem);line-height:.98;max-width:11.4ch;text-wrap:balance}
.hero h1 mark{
  color:var(--azul);border-radius:14px;padding:.08em .25em .12em;margin-left:-.25em;
  background:linear-gradient(135deg,#fff 0%,#e6efff 100%);
  box-shadow:0 16px 34px rgba(0,9,35,.26),inset 0 1px rgba(255,255,255,.85);
}
.hero__sub{max-width:43ch;font-size:1.02rem;line-height:1.68;color:rgba(255,255,255,.82)}
.botoes{margin-top:32px;gap:13px}
.btn{border-radius:999px;padding:15px 24px;min-height:52px}
.btn--ouro{background:linear-gradient(135deg,var(--ouro),#ffd96d);box-shadow:0 12px 26px rgba(246,189,45,.25),inset 0 1px rgba(255,255,255,.52)}
.btn--vazado{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.25);backdrop-filter:blur(10px)}
.hero__foto{max-width:420px;margin:24px auto -66px}
.hero__foto::before{width:115%;aspect-ratio:1;background:radial-gradient(circle,rgba(143,190,255,.39),rgba(126,169,255,.13) 45%,transparent 70%)}
.hero__foto img{filter:drop-shadow(-16px 25px 34px rgba(0,7,29,.56))}
.hero__onda{display:none}

/* ---------------------------------------------------------- transições */
.cred{
  padding:76px 0 106px;position:relative;
  background:
    radial-gradient(70% 44% at 14% 4%,rgba(205,222,250,.72),transparent 75%),
    linear-gradient(180deg,var(--azul-97) 0%,#fff 62%,var(--azul-99) 100%);
}
.cred::after,.secao::after{
  content:"";position:absolute;left:0;right:0;bottom:-1px;height:150px;pointer-events:none;z-index:-1;
  background:linear-gradient(180deg,transparent,rgba(248,250,255,.94));
}
.cred__grid{margin-top:-106px;gap:14px}
.cred__item{
  border:1px solid rgba(255,255,255,.72);border-top:0;border-radius:20px;padding:25px 14px 22px;
  background:linear-gradient(145deg,rgba(255,255,255,.96),rgba(244,248,255,.9));
  box-shadow:0 2px 4px rgba(5,32,84,.03),0 22px 45px -28px rgba(4,36,97,.42),inset 0 1px rgba(255,255,255,.9);
}
.cred__item::before{content:"";display:block;width:28px;height:3px;margin:0 auto 16px;border-radius:3px;background:linear-gradient(90deg,var(--ouro),#ffe5a0)}
.cred__item strong{font-size:clamp(1.75rem,7vw,2.5rem)}
.cred__item span{font-size:.64rem;letter-spacing:.13em}

.secao{padding:88px 0;isolation:isolate;overflow:hidden;background:linear-gradient(180deg,#fff 0%,#fbfcff 80%,#fff 100%)}
.secao::before{
  content:"";position:absolute;width:540px;height:540px;right:-290px;top:7%;z-index:-1;border-radius:50%;
  background:radial-gradient(circle,rgba(219,231,250,.7),rgba(242,247,255,0) 69%);
}
.secao--claro{
  background:
    radial-gradient(70% 90% at 8% 50%,rgba(225,236,253,.8),transparent 68%),
    radial-gradient(55% 85% at 95% 10%,rgba(246,189,45,.08),transparent 72%),
    linear-gradient(180deg,#fff 0%,#f4f8ff 26%,#edf4ff 68%,#fff 100%);
}
.secao--claro::before{left:-300px;right:auto;top:auto;bottom:-230px;background:radial-gradient(circle,rgba(178,206,247,.42),transparent 70%)}
.secao h2{font-size:clamp(1.85rem,6vw,3.08rem);line-height:1.01;text-wrap:balance}
.secao__cab{margin-bottom:43px}
.olho{color:var(--ouro-esc);gap:10px;letter-spacing:.16em}
.olho::before{width:34px;height:2px;background:linear-gradient(90deg,var(--ouro),var(--ouro-claro))}

/* --------------------------------------------------------------- conteúdo */
.duas{gap:46px}
.duas__txt{position:relative;z-index:1}
.duas__img{padding:0;margin:0;overflow:visible}
.duas__img::before{
  width:76%;height:67%;right:-13px;bottom:-13px;border:0;border-radius:32px;
  background:linear-gradient(145deg,var(--ouro),rgba(255,224,143,.2));opacity:.9;
}
.duas__img::after{
  content:"";position:absolute;left:-18px;top:12%;width:45%;height:64%;border:1px solid rgba(6,45,114,.22);border-radius:30px;z-index:0;
}
.duas__img img{
  border-radius:30px;aspect-ratio:4/5;object-fit:cover;object-position:center 15%;
  background:linear-gradient(145deg,var(--azul-esc),var(--azul-med));box-shadow:var(--sombra-g);
}
.duas__img figcaption{margin:16px 6px 0;font-size:.78rem;line-height:1.5;color:var(--tinta-2)}
[data-pendente]{
  border:0;border-left:2px solid rgba(246,189,45,.76);border-radius:0;background:rgba(242,247,255,.72);
  color:var(--tinta-2);padding:.7em .85em .7em 1.05em;font-size:.89em;line-height:1.55;
}
[data-pendente]::before{display:none}
.linha{margin-top:38px}
.linha::before{left:13px;background:linear-gradient(180deg,rgba(192,212,244,.08),var(--azul-70) 18%,var(--ouro) 100%)}
.linha__item{padding-left:48px;padding-bottom:23px}
.linha__item::before{left:5px;width:18px;height:18px;border-color:#c4d6f1;background:#fff;box-shadow:0 0 0 5px rgba(255,255,255,.66)}
.linha__cartao{border:1px solid rgba(19,57,116,.08);border-radius:14px;padding:14px 17px;background:rgba(255,255,255,.8);box-shadow:var(--sombra-s)}
.linha__item--agora .linha__cartao{border-left-color:var(--ouro)}

.cards,.eixos{gap:18px}
.card,.eixo{
  border:1px solid rgba(255,255,255,.75);border-radius:22px;
  background:linear-gradient(145deg,rgba(255,255,255,.96),rgba(244,248,255,.82));
  box-shadow:var(--sombra-s);overflow:hidden;
}
.card{padding:30px 23px 27px}
.card::after{height:4px;background:linear-gradient(90deg,var(--ouro),#ffe7a4,transparent 82%);transform:scaleX(1)}
.card h3{font-size:1rem;letter-spacing:.025em}
.card__fundo{color:rgba(141,174,224,.14);font-size:6.9rem}
.card__num{color:var(--ouro-esc)}
.card:hover,.eixo:hover{transform:translateY(-7px);border-color:rgba(70,111,179,.22);box-shadow:var(--sombra-g)}
.instituicoes{margin-top:52px}
.chips li{border:1px solid rgba(22,65,132,.1);padding:9px 15px;background:rgba(255,255,255,.74);box-shadow:none}

.eixo{padding:29px 23px 28px}
.eixo::before{width:4px;background:linear-gradient(180deg,var(--ouro),transparent);transform:scaleY(1);opacity:.72}
.eixo__n{color:#c9daf4;font-size:2.45rem}
.eixo h3{font-size:1.14rem;margin-bottom:.65em}
.eixo p{font-size:.9rem;line-height:1.62}

/* ---------------------------------------------------------- seção-frase */
.curva{display:none}
.frase{
  margin:8px 0;min-height:480px;padding:154px 0 160px;
  background:
    radial-gradient(62% 72% at 50% 50%,rgba(20,72,151,.76),rgba(2,17,51,.96) 76%),
    linear-gradient(135deg,#031b51,#010d2b);
}
.frase::before{inset:0;z-index:1;background:linear-gradient(180deg,#fff 0%,rgba(255,255,255,0) 23%,rgba(1,13,43,.08) 64%,#fff 100%)}
.frase::after{content:"";position:absolute;left:0;right:0;bottom:0;height:136px;z-index:2;background:linear-gradient(transparent,#fff);pointer-events:none}
.frase__cidade{z-index:0;opacity:.88}
.frase__cidade img{filter:saturate(.45) contrast(1.1) brightness(.72);mix-blend-mode:luminosity}
.frase__cidade::after{background:radial-gradient(54% 68% at 50% 51%,rgba(0,11,40,.68),rgba(0,11,40,.26) 70%,rgba(0,11,40,.68))}
.frase .wrap{z-index:3}
.frase blockquote{max-width:28ch}
.frase blockquote::before{color:var(--ouro);opacity:.34}
.frase p{font-size:clamp(1.55rem,4.3vw,2.45rem);line-height:1.16}

/* --------------------------------------------------------------- galeria */
.galeria{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:142px;gap:14px}
.galeria figure,.galeria__manifesto{margin:0;position:relative;overflow:hidden;border-radius:24px;box-shadow:var(--sombra-s)}
.galeria figure{background:var(--azul-90)}
.galeria figure:hover{transform:translateY(-5px);box-shadow:var(--sombra-g)}
.galeria figure:nth-child(1),.galeria figure:nth-child(2){grid-column:auto;grid-row:auto}
.galeria__cidade{grid-column:span 2;grid-row:span 2!important}
.galeria__panorama{grid-row:span 2!important}
.galeria img{filter:saturate(.84) contrast(1.03);transition:transform .7s var(--ease),filter .5s var(--ease)}
.galeria figure:hover img{transform:scale(1.05);filter:saturate(1.02) contrast(1.06)}
.galeria figcaption{transform:none;padding:40px 16px 14px;background:linear-gradient(transparent,rgba(0,19,61,.78));font-size:.78rem;line-height:1.38}
.galeria__manifesto{
  display:flex;flex-direction:column;justify-content:space-between;padding:20px;
  background:linear-gradient(145deg,#0b3d8f,#031a4b);color:#fff;
}
.galeria__manifesto::after{content:"";position:absolute;width:160px;height:160px;right:-65px;bottom:-80px;border:1px solid rgba(255,255,255,.18);border-radius:50%}
.galeria__manifesto span{position:relative;z-index:1;color:var(--ouro);font-size:.76rem;font-weight:800;letter-spacing:.13em}
.galeria__manifesto p{position:relative;z-index:1;margin:0;max-width:19ch;font-size:.96rem;font-weight:800;line-height:1.18;letter-spacing:-.025em}
.galeria__manifesto--ouro{color:var(--azul);background:linear-gradient(145deg,#ffd968,#f2b528)}
.galeria__manifesto--ouro span{color:var(--azul)}
.galeria__manifesto--ouro::after{border-color:rgba(6,45,114,.18)}

/* --------------------------------------------------------- formulário */
.cadastro{padding-top:112px}
.cadastro__in{gap:44px}
.cadastro__txt p{max-width:48ch}
.cadastro__lista li{font-size:.92rem}
.cadastro__lista svg{background:linear-gradient(135deg,var(--ouro),#ffe18d);box-shadow:0 5px 14px rgba(246,189,45,.26)}
.form{
  border:1px solid rgba(255,255,255,.78);border-radius:28px;background:linear-gradient(145deg,#fff,#f5f8ff);
  padding:31px 22px;box-shadow:var(--sombra-g),inset 0 1px rgba(255,255,255,.9);
}
.form::before{left:32px;right:32px;height:3px;background:linear-gradient(90deg,transparent,var(--ouro),transparent)}
input[type=text],input[type=tel]{border-radius:12px;background:rgba(242,247,255,.82);padding:15px 16px}
#enviar{background:linear-gradient(135deg,var(--ouro),#ffda6f);box-shadow:0 12px 28px rgba(246,189,45,.31),inset 0 1px rgba(255,255,255,.45)}

/* ---------------------------------------------------------------- rodapé */
.rodape{
  position:relative;background:
    radial-gradient(62% 100% at 86% 0%,rgba(21,73,154,.5),transparent 68%),
    linear-gradient(135deg,#031a4b,#010d2c 72%);
}
.rodape::before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,var(--ouro),transparent);opacity:.8}
.rodape__marca p{color:#ffe19a}

@media (min-width:640px){
  .cred__grid{gap:16px}
  .galeria{grid-template-columns:repeat(6,minmax(0,1fr));grid-auto-rows:150px}
  .galeria__cidade{grid-column:span 4;grid-row:span 2!important}
  .galeria__panorama{grid-column:span 2;grid-row:span 2!important}
  .galeria__manifesto{grid-column:span 3;grid-row:span 1}
}

@media (min-width:980px){
  .topo__contexto{display:block}
  .topo__in{min-height:82px}
  .topo.encolhido .topo__in{min-height:68px}
  .topo__logo img{width:120px}
  .topo.encolhido .topo__logo img{width:104px}
  .nav{gap:27px}
  .nav a{font-size:.84rem}
  .nav__cta{padding:12px 20px!important}
  .hero{min-height:695px;padding:56px 0 142px}
  .hero__in{min-height:605px;align-items:center;gap:22px}
  .hero__txt{flex-basis:54%;padding:34px 0 104px}
  .hero h1{font-size:clamp(3.2rem,4.75vw,4.95rem)}
  .hero__foto{flex-basis:44%;max-width:555px;margin:22px -10px -104px 0;align-self:end}
  .hero__painel{right:-4%;width:57%;height:76%;top:7%}
  .cred{padding-bottom:126px}
  .cred__grid{margin-top:-105px}
  .secao{padding:118px 0}
  .secao__cab{margin-bottom:52px}
  .duas{gap:88px}
  .duas__img{top:130px}
  .cards,.eixos{gap:16px}
  .card{padding:33px 22px 30px}
  .eixo{padding:32px 21px}
  .frase{min-height:520px;padding:170px 0 180px}
  .galeria{grid-template-columns:repeat(12,minmax(0,1fr));grid-auto-rows:184px;gap:18px}
  .galeria__cidade{grid-column:span 7;grid-row:span 2!important}
  .galeria__panorama{grid-column:span 5;grid-row:span 1!important}
  .galeria__manifesto{grid-column:span 2;grid-row:span 1}
  .galeria__manifesto--ouro{grid-column:span 3}
  .cadastro{padding-top:132px}
}

@media (max-width:979px){
  .topo__contexto{display:none}
  .nav{background:linear-gradient(155deg,#031b4e,#010e30);border-bottom:1px solid rgba(255,255,255,.1)}
  .nav.aberto{box-shadow:0 24px 44px rgba(0,8,31,.38)}
  body.menu-aberto{overflow:hidden}
  .hero__painel{display:none}
}

/* ------------------------------------------------ galeria com fotos reais */
.galeria{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:146px;gap:14px}
.galeria figure:nth-child(n){grid-column:auto;grid-row:auto}
.galeria figure{
  isolation:isolate;border-radius:24px;background:var(--azul-esc);box-shadow:var(--sombra-s);
}
.galeria figure::after{
  content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  background:linear-gradient(180deg,rgba(1,15,45,0) 38%,rgba(1,16,51,.18) 58%,rgba(1,16,51,.88) 100%);
}
.galeria img{position:relative;z-index:-1;object-position:center 15%;filter:saturate(.93) contrast(1.04)}
.galeria figcaption{z-index:1;padding:48px 17px 15px;color:#fff;font-size:.75rem;letter-spacing:.005em}
.galeria__destaque{grid-column:span 2!important;grid-row:span 2!important}
.galeria__destaque img{object-position:center 18%}
.galeria__retrato--gesto,.galeria__retrato--camisa{grid-row:span 2!important}
.galeria__retrato--firmeza{grid-column:span 2!important;grid-row:span 2!important}
.galeria__retrato--terno img{object-position:center 12%}
.galeria figure:hover img{filter:saturate(1.08) contrast(1.07)}

@media (min-width:640px){
  .galeria{grid-template-columns:repeat(6,minmax(0,1fr));grid-auto-rows:150px}
  .galeria__destaque{grid-column:span 4!important;grid-row:span 2!important}
  .galeria__retrato--gesto{grid-column:span 2!important;grid-row:span 2!important}
  .galeria__retrato--camisa,.galeria__retrato--coracao{grid-column:span 3!important;grid-row:span 2!important}
  .galeria__retrato--firmeza{grid-column:span 2!important;grid-row:span 2!important}
  .galeria__retrato--terno{grid-column:span 4!important;grid-row:span 2!important}
}

@media (min-width:980px){
  .galeria{grid-template-columns:repeat(12,minmax(0,1fr));grid-auto-rows:138px;gap:18px}
  .galeria__destaque{grid-column:span 5!important;grid-row:span 3!important}
  .galeria__retrato--gesto{grid-column:span 3!important;grid-row:span 2!important}
  .galeria__retrato--camisa{grid-column:span 4!important;grid-row:span 1!important}
  .galeria__retrato--coracao{grid-column:span 4!important;grid-row:span 1!important}
  .galeria__retrato--firmeza{grid-column:span 3!important;grid-row:span 1!important}
  .galeria__retrato--terno{grid-column:span 4!important;grid-row:span 1!important}
  .galeria figcaption{font-size:.78rem}
}
