/* =========================================================
   APAT Guarulhos — sistema visual
   Cores da marca APAT (azul-marinho + laranja do alvo),
   aplicadas à linguagem da Carteira de Trabalho e do carimbo.
   ========================================================= */

:root {
  --azul: #16267a;          /* azul da marca APAT */
  --azul-fundo: #0c1650;
  --azul-claro: #dfe7f4;
  --papel: #eef2ef;         /* papel de formulário */
  --papel-2: #e1e8e3;
  --branco: #fbfcfb;
  --tinta: #b4500b;         /* laranja da marca, escurecido para texto */
  --tinta-clara: #fde7d4;
  --sinal: #f07a1e;         /* laranja do alvo — ações */
  --sinal-escuro: #d4650f;
  --carimbo: #5b2e91;       /* tinta violeta do carimbo */
  --traco: #23252b;         /* traços pretos do logotipo */
  --grafite: #171b22;
  --cinza: #4a5361;
  --linha: rgba(23, 27, 34, 0.14);
  --verde: #1d7a4a;
  --vermelho: #b3261e;

  --f-display: 'Archivo', system-ui, sans-serif;
  --f-texto: 'Atkinson Hyperlegible', system-ui, sans-serif;
  --f-mono: 'IBM Plex Mono', ui-monospace, monospace;
  --f-marca: 'Tinos', 'Times New Roman', serif;

  --raio: 6px;
  --largura: 1200px;
  --gutter: clamp(16px, 4vw, 40px);
  --sombra: 0 1px 0 rgba(15, 35, 71, .06), 0 10px 30px -12px rgba(15, 35, 71, .25);
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  font-family: var(--f-texto);
  font-size: 1.0625rem;
  line-height: 1.6;
  color: var(--grafite);
  background: var(--papel);
  overflow-x: hidden;
}
img, svg { display: block; max-width: 100%; }
a { color: var(--azul); text-underline-offset: 3px; }
a:hover { color: var(--tinta); }
:focus-visible { outline: 3px solid var(--tinta); outline-offset: 3px; border-radius: 3px; }
::selection { background: var(--sinal); color: var(--grafite); }

h1, h2, h3, h4 {
  font-family: var(--f-display);
  font-stretch: 112%;
  line-height: 1.05;
  letter-spacing: -0.02em;
  margin: 0 0 .5em;
  color: var(--azul-fundo);
}
h1 { font-size: clamp(2.5rem, 6.2vw, 5rem); font-weight: 800; }
h2 { font-size: clamp(2rem, 4.2vw, 3.25rem); font-weight: 800; }
h3 { font-size: 1.3rem; font-weight: 700; font-stretch: 105%; letter-spacing: -0.01em; }
p { margin: 0 0 1em; }

.container { width: 100%; max-width: var(--largura); margin: 0 auto; padding: 0 var(--gutter); }
[hidden] { display: none !important; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.pular { position: absolute; left: -999px; top: 8px; background: var(--sinal); padding: 8px 14px; z-index: 100; font-weight: 700; }
.pular:focus { left: 8px; }

/* Rótulo de formulário — como os campos impressos da carteira */
.rotulo {
  font-family: var(--f-mono);
  font-size: .75rem;
  font-weight: 500;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--tinta);
  display: inline-flex;
  align-items: center;
  gap: .6em;
  margin-bottom: 1rem;
}
.rotulo::before { content: ''; width: 22px; height: 2px; background: currentColor; }
.claro .rotulo { color: var(--sinal); }

/* ---------- botões ---------- */
.btn {
  --bg: var(--azul); --fg: #fff;
  display: inline-flex; align-items: center; justify-content: center; gap: .5em;
  min-height: 48px; padding: .75em 1.4em;
  font: 700 1rem/1 var(--f-display); font-stretch: 108%;
  letter-spacing: .01em;
  color: var(--fg); background: var(--bg);
  border: 2px solid var(--bg); border-radius: var(--raio);
  text-decoration: none; cursor: pointer; white-space: nowrap;
  transition: transform .15s ease, background .15s ease, box-shadow .15s ease;
}
.btn:hover { color: var(--fg); transform: translateY(-2px); box-shadow: 0 6px 0 -2px rgba(15,35,71,.25); }
.btn:active { transform: translateY(1px); box-shadow: none; }
.btn-sinal { --bg: var(--sinal); --fg: var(--grafite); }
.btn-sinal:hover { --bg: #ff8b34; }
.btn-contorno { --bg: transparent; --fg: var(--azul); border-color: currentColor; }
.btn-contorno:hover { --fg: var(--tinta); }
.claro .btn-contorno { --fg: #fff; }
.btn-pequeno { min-height: 40px; padding: .55em 1em; font-size: .9rem; }
@media (max-width: 480px) { .btn { white-space: normal; text-align: center; line-height: 1.2; } }
.btn[disabled] { opacity: .55; cursor: not-allowed; transform: none; box-shadow: none; }
.btn svg { width: 18px; height: 18px; }

/* ---------- barra superior e cabeçalho ---------- */
.barra-topo {
  background: var(--azul-fundo); color: #c9d4e8;
  font: 500 .8rem/1 var(--f-mono); letter-spacing: .04em;
}
.barra-topo .container { display: flex; justify-content: space-between; align-items: center; gap: 1rem; min-height: 38px; }
.barra-topo a { color: #fff; text-decoration: none; }
.rotulo-fone { font-weight: 400; opacity: .8; }
@media (max-width: 900px) { .barra-topo .so-desktop { display: none; } }  /* redes sociais seguem nos botões flutuantes */
.barra-topo a:hover { color: var(--sinal); }
.barra-topo .itens { display: flex; gap: 1.5rem; white-space: nowrap; }

.cabecalho { background: var(--papel); }
.cabecalho .container { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; padding-block: 1.1rem; }
.marca { display: flex; align-items: center; gap: .75rem; text-decoration: none; color: var(--azul-fundo); }
.marca:hover { color: var(--azul-fundo); }
.marca img { display: block; height: auto; width: auto; }
.cabecalho .marca img { height: 148px; }          /* logotipo grande, ~380 px de largura */
.marca-acesso img { height: auto; width: 230px; }
.painel-menu .marca img { height: auto; width: 100%; max-width: 210px; }
.painel-topo-mobile .marca img { height: 42px; }
.marca-area {
  margin: -1.25rem .5rem 0; font: 600 .72rem/1 var(--f-mono);
  letter-spacing: .12em; text-transform: uppercase; color: var(--sinal);
}

/* barra do menu: linha própria abaixo do logotipo, presa no topo ao rolar */
.barra-menu {
  position: sticky; top: 0; z-index: 50;
  background: rgba(238, 242, 239, .94); backdrop-filter: blur(10px);
  border-block: 1px solid var(--linha);
}
.barra-menu .container { position: relative; display: flex; align-items: center; justify-content: space-between; gap: 1rem; min-height: 56px; }
.nav { display: flex; align-items: center; flex-wrap: wrap; gap: .1rem; }
.nav a.link {
  font: 600 .98rem/1 var(--f-display); font-stretch: 100%;
  color: var(--grafite); text-decoration: none; white-space: nowrap;
  padding: 1.05em .95em; border-bottom: 3px solid transparent;
}
.nav a.link:hover { color: var(--azul); border-bottom-color: var(--linha); }
.nav a.link[aria-current="page"] { color: var(--azul); border-bottom-color: var(--sinal); }
@media (max-width: 1180px) { .nav a.link { padding-inline: .7em; } }  /* 8 links numa linha só em telas de ~1024 px */
.so-menu-compacto { opacity: 0; visibility: hidden; transition: opacity .2s ease; }
.barra-menu.fixa .so-menu-compacto { opacity: 1; visibility: visible; }
.menu-btn {
  display: none; height: 44px; padding: 0 1rem 0 .8rem; gap: .5rem;
  border: 2px solid var(--azul); border-radius: var(--raio);
  background: transparent; color: var(--azul); cursor: pointer; align-items: center; justify-content: center;
  font: 700 .95rem/1 var(--f-display);
}

@media (max-width: 1000px) {
  .cabecalho .container > .btn { display: none; }
  .so-menu-compacto { opacity: 1; visibility: visible; }
  .menu-btn { display: inline-flex; }
  .nav {
    position: absolute; top: 100%; left: 0; right: 0;
    max-height: calc(100vh - 70px); overflow-y: auto;
    flex-direction: column; align-items: stretch; flex-wrap: nowrap; gap: 0;
    background: var(--papel); border-bottom: 1px solid var(--linha);
    padding: .5rem var(--gutter) 1.25rem;
    box-shadow: var(--sombra);
    transform: translateY(-8px); opacity: 0; visibility: hidden;
    transition: .2s ease;
  }
  .nav.aberto { transform: none; opacity: 1; visibility: visible; }
  .nav a.link { padding: 1em .25em; border-bottom: 1px solid var(--linha); font-size: 1.05rem; }
  .nav a.link[aria-current="page"] { border-bottom-color: var(--linha); box-shadow: inset 4px 0 0 var(--sinal); padding-left: .9em; }
  .barra-topo .ocultar-mobile { display: none; }
}
@media (max-width: 520px) { .cabecalho .marca img { height: 104px; } }        /* ~266 px de largura no celular */
@media (max-width: 480px) {
  .barra-topo .so-desktop { display: none; }
  .barra-topo .itens > span:first-child { display: none; }
  .barra-topo { font-size: .72rem; letter-spacing: .01em; }
  .barra-topo .itens { gap: .9rem; flex-wrap: wrap; white-space: normal; }
  .barra-topo .itens a { white-space: nowrap; }
}

/* ---------- faixa azul de números ---------- */
.faixa-numeros { background: var(--azul-fundo); color: #fff; }
.faixa-numeros .container { display: grid; grid-template-columns: repeat(3, 1fr); }
.numero-apat {
  display: flex; align-items: center; justify-content: center; gap: .9rem;
  padding: 1.35rem 1rem; text-align: left;
}
.numero-apat + .numero-apat { border-left: 1px solid rgba(255, 255, 255, .16); }
.numero-apat strong {
  font: 800 clamp(2rem, 4vw, 3rem)/1 var(--f-display); font-stretch: 112%;
  letter-spacing: -0.02em; color: var(--sinal); font-variant-numeric: tabular-nums;
}
.numero-apat span { font: 600 .82rem/1.3 var(--f-mono); letter-spacing: .08em; text-transform: uppercase; color: #fff; max-width: 12ch; }
@media (max-width: 760px) {
  .numero-apat { flex-direction: column; gap: .4rem; text-align: center; padding: 1.1rem .4rem; }
  .numero-apat strong { font-size: clamp(1.6rem, 7vw, 2.2rem); }
  .numero-apat span { font-size: .66rem; letter-spacing: .05em; }
}

/* ---------- HERO ---------- */
.hero {
  position: relative;
  padding: clamp(3rem, 7vw, 6rem) 0 clamp(4rem, 8vw, 7rem);
  overflow: hidden;
  isolation: isolate;
}
/* guilhoché: o padrão de segurança dos documentos oficiais */
.hero::before {
  content: ''; position: absolute; inset: 0; z-index: -1;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='60' viewBox='0 0 240 60'%3E%3Cg fill='none' stroke='%231b3a72' stroke-opacity='.09' stroke-width='1'%3E%3Cpath d='M0 30 Q30 0 60 30 T120 30 T180 30 T240 30'/%3E%3Cpath d='M0 30 Q30 60 60 30 T120 30 T180 30 T240 30'/%3E%3Cpath d='M0 20 Q30 -10 60 20 T120 20 T180 20 T240 20'/%3E%3Cpath d='M0 40 Q30 70 60 40 T120 40 T180 40 T240 40'/%3E%3C/g%3E%3C/svg%3E");
  mask-image: linear-gradient(100deg, transparent 0%, #000 45%, #000 100%);
}
.hero .container { display: grid; grid-template-columns: 1.08fr .92fr; gap: clamp(2rem, 5vw, 4rem); align-items: center; }
.hero h1 { margin-bottom: .35em; }
.hero h1 em {
  font-style: normal; color: var(--tinta);
  background: linear-gradient(transparent 64%, rgba(240, 122, 30, .28) 64%, rgba(240, 122, 30, .28) 92%, transparent 92%);
}
.hero .lead { font-size: clamp(1.1rem, 1.6vw, 1.3rem); max-width: 34ch; color: var(--cinza); margin-bottom: 2rem; }
.hero .botoes { display: flex; flex-wrap: wrap; gap: .75rem; }
.hero .fatos {
  display: flex; flex-wrap: wrap; gap: .5rem 2rem; margin-top: 1.75rem; padding-top: 1.25rem;
  border-top: 1px dashed var(--linha);
  font: 500 .85rem/1.4 var(--f-mono); color: var(--cinza);
}
.hero .fatos b { color: var(--azul-fundo); font-weight: 600; }

/* ---------- A CARTEIRA (assinatura visual) ---------- */
.carteira-palco { perspective: 1800px; display: flex; justify-content: center; padding: 1rem 0; }
.carteira {
  --l: min(410px, 78vw);
  position: relative;
  width: var(--l); aspect-ratio: 10 / 14;
  transform-style: preserve-3d;
  transform: rotate(-4deg);
  transition: transform .6s ease;
}
.carteira-palco:hover .carteira { transform: rotate(-2deg) translateY(-4px); }

.pagina-interna {
  position: absolute; inset: 0;
  background:
    repeating-linear-gradient(transparent 0 31px, rgba(27,58,114,.12) 31px 32px),
    var(--branco);
  border-radius: 4px 10px 10px 4px;
  box-shadow: var(--sombra), inset 8px 0 14px -10px rgba(0,0,0,.25);
  padding: 22px 22px 22px 26px;
  font-family: var(--f-mono);
  overflow: hidden;
}
.pagina-interna .cab {
  display: flex; justify-content: space-between; align-items: baseline;
  font-size: .62rem; letter-spacing: .14em; text-transform: uppercase; color: var(--azul);
  border-bottom: 2px solid var(--azul); padding-bottom: 6px; margin-bottom: 14px;
}
.foto-3x4 {
  float: right; width: 72px; height: 92px; margin: 0 0 8px 12px;
  border: 1.5px dashed rgba(27,58,114,.45);
  display: grid; place-items: center; font-size: .55rem; color: rgba(27,58,114,.6); text-align: center;
  background: var(--azul-claro);
}
.foto-3x4 svg { width: 40px; height: 40px; color: rgba(27,58,114,.45); }
.campo { margin-bottom: 9px; }
.campo small { display: block; font-size: .56rem; letter-spacing: .12em; text-transform: uppercase; color: var(--cinza); }
.campo span { font-size: .92rem; font-weight: 500; color: var(--azul-fundo); }
.campo .datilo { border-right: 2px solid var(--carimbo); white-space: nowrap; overflow: hidden; display: inline-block; vertical-align: bottom; }

.capa {
  position: absolute; inset: 0;
  transform-origin: left center;
  transform-style: preserve-3d;
  transition: transform 1.3s cubic-bezier(.6, .05, .25, 1);
  z-index: 2;
}
.capa-frente, .capa-verso {
  position: absolute; inset: 0; backface-visibility: hidden; border-radius: 4px 12px 12px 4px;
}
.capa-frente {
  background:
    radial-gradient(120% 80% at 30% 20%, rgba(255,255,255,.12), transparent 60%),
    repeating-linear-gradient(45deg, rgba(255,255,255,.025) 0 2px, transparent 2px 5px),
    var(--azul);
  box-shadow: var(--sombra), inset -2px 0 0 rgba(255,255,255,.08), inset 6px 0 0 rgba(0,0,0,.18);
  color: #e8c97a;
  display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center;
  padding: 2rem 1.5rem;
}
[data-brasao] { display: block; }
.capa-frente [data-brasao] { width: 40%; margin-bottom: 1.4rem; }
.capa-frente .brasao { width: 100%; height: auto; filter: drop-shadow(0 1px 0 rgba(0,0,0,.3)); }
.capa-frente .t1 { font: 600 .66rem/1.5 var(--f-mono); letter-spacing: .22em; text-transform: uppercase; opacity: .9; }
.capa-frente .t2 { font: 900 1.55rem/1.05 var(--f-display); font-stretch: 125%; letter-spacing: .02em; margin: .5rem 0; text-transform: uppercase; }
.capa-frente .t3 { font: 500 .62rem/1.5 var(--f-mono); letter-spacing: .16em; text-transform: uppercase; opacity: .75; }
.capa-verso {
  transform: rotateY(180deg);
  background: var(--azul-fundo);
}
.carteira.aberta .capa {
  transform: rotateY(-158deg);
  opacity: 0;
  transition: transform 1.3s cubic-bezier(.6, .05, .25, 1), opacity .45s ease .75s;
}

/* O carimbo */
.carimbo {
  position: absolute; z-index: 3;
  right: 6%; bottom: 13%;
  width: 62%;
  color: var(--carimbo);
  transform: rotate(-14deg) scale(2.4);
  opacity: 0;
  pointer-events: none;
  mix-blend-mode: multiply;
}
.carimbo svg { width: 100%; height: auto; filter: url(#tinta-falhada); }
.carteira.carimbada .carimbo { animation: carimbar .5s cubic-bezier(.3, 1.6, .5, 1) forwards; }
@keyframes carimbar {
  0%   { opacity: 0; transform: rotate(-20deg) scale(2.4); }
  60%  { opacity: .95; transform: rotate(-13deg) scale(.94); }
  100% { opacity: .9; transform: rotate(-14deg) scale(1); }
}
.carteira.carimbada .pagina-interna { animation: tranco .25s .28s ease-out; }
@keyframes tranco { 50% { transform: translateY(3px); } }

@media (max-width: 960px) {
  .hero .container { grid-template-columns: 1fr; }
  .carteira-palco { margin-top: 1rem; }
  .carteira { --l: min(300px, 76vw); }
  .foto-3x4 { width: 56px; height: 72px; }
}

/* ---------- seções ---------- */
.secao { padding: clamp(4rem, 9vw, 7.5rem) 0; }
.secao-cab { display: grid; grid-template-columns: 1fr 1fr; gap: 2rem 4rem; align-items: end; margin-bottom: clamp(2.5rem, 5vw, 4rem); }
.secao-cab p { color: var(--cinza); font-size: 1.12rem; max-width: 46ch; margin: 0; }
.secao-cab h2 { margin: 0; }
@media (max-width: 760px) { .secao-cab { grid-template-columns: 1fr; } }

.fundo-branco { background: var(--branco); border-block: 1px solid var(--linha); }
.claro { background: var(--azul-fundo); color: #d4ddef; }
.claro h2, .claro h3 { color: #fff; }

/* ---------- serviços ---------- */
.secao-cab .faixa-lema {
  justify-self: stretch; max-width: none; margin: 0;
  background: var(--azul-fundo); color: #fff;
  border-left: 6px solid var(--sinal); border-radius: var(--raio);
  padding: 1.1rem 1.4rem;
  font: 700 clamp(1.15rem, 2vw, 1.45rem)/1.25 var(--f-display); font-stretch: 105%;
}
.servicos { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--linha); border: 1px solid var(--linha); border-radius: var(--raio); overflow: hidden; }
.servico {
  background: var(--branco);
  padding: 1.75rem 1.5rem 1.6rem;
  display: flex; flex-direction: column; gap: .5rem;
  position: relative;
  transition: background .2s ease;
}
.servico:hover { background: #fff; }
.servico .marca-servico {
  width: 60px; height: 60px; margin-bottom: .75rem;
  color: var(--tinta);
  transform: rotate(-8deg);
  transition: transform .25s cubic-bezier(.3, 1.6, .5, 1);
}
.servico:hover .marca-servico { transform: rotate(0) scale(1.08); }
.servico h3 { margin: 0; }
.servico p { color: var(--cinza); font-size: .98rem; margin: 0; }
.servico .tag {
  margin-top: auto; padding-top: .9rem;
  font: 500 .72rem/1 var(--f-mono); letter-spacing: .1em; text-transform: uppercase; color: var(--azul);
}
/* Financeiro: no computador, ocupa a linha inteira (10 cartões em 3 colunas) */
.servico-financeiro .btn { align-self: flex-start; margin-top: .9rem; }
@media (min-width: 861px) {
  .servico-financeiro:last-child:nth-child(3n+1) { grid-column: 1 / -1; flex-direction: row; align-items: center; gap: 1.5rem; }
  .servico-financeiro:last-child:nth-child(3n+1) .marca-servico { margin-bottom: 0; flex: none; }
  .servico-financeiro:last-child:nth-child(3n+1) .servico-financeiro-texto { flex: 1; display: flex; flex-direction: column; gap: .5rem; }
  .servico-financeiro:last-child:nth-child(3n+1) .tag { margin-top: .2rem; padding-top: 0; }
  .servico-financeiro:last-child:nth-child(3n+1) .btn { align-self: center; margin-top: 0; }
}
.servico-financeiro-texto { display: flex; flex-direction: column; gap: .5rem; flex: 1; }
@media (max-width: 860px) {
  .servicos { grid-template-columns: repeat(2, 1fr); }
  .servico:last-child:nth-child(odd) { grid-column: 1 / -1; }  /* sem célula vazia no fim */
}
@media (max-width: 560px) { .servicos { grid-template-columns: 1fr; } }

/* ---------- como associar-se (sequência real) ---------- */
.passos { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.25rem; counter-reset: passo; }
.passo {
  border-top: 3px solid var(--azul);
  padding-top: 1.25rem;
}
.passo::before {
  counter-increment: passo;
  content: 'Passo ' counter(passo);
  display: block;
  font: 600 .78rem/1 var(--f-mono); letter-spacing: .12em; text-transform: uppercase; color: var(--tinta);
  margin-bottom: .9rem;
}
.passo p { color: var(--cinza); margin: 0; }
@media (max-width: 760px) { .passos { grid-template-columns: 1fr; } }
.passos-rodape { margin-top: 2.5rem; display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 1.5rem; }
.passos-rodape small { color: var(--cinza); font-family: var(--f-mono); font-size: .8rem; }

/* ---------- vagas: cada vaga é um atalho para o WhatsApp ---------- */
.vagas-grade { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: .75rem; }

/* carrossel: as vagas correm na horizontal em colunas de 2 linhas (8 por tela no computador) */
.carrossel-cab { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 1rem; min-height: 44px; }
.carrossel-total { margin: 0; font: 600 .8rem var(--f-mono); letter-spacing: .1em; text-transform: uppercase; color: var(--tinta); }
.carrossel-controles { display: flex; align-items: center; gap: .6rem; }
.carrossel-pagina { font: 500 .82rem var(--f-mono); color: var(--cinza); min-width: 5.5ch; text-align: center; }
.carrossel-seta {
  width: 44px; height: 44px; border-radius: 50%; cursor: pointer;
  border: 2px solid var(--azul); background: var(--branco); color: var(--azul);
  font: 400 1.7rem/1 var(--f-display); display: grid; place-items: center; padding-bottom: 3px;
  transition: background .15s, color .15s;
}
.carrossel-seta:hover:not(:disabled) { background: var(--azul); color: #fff; }
.carrossel-seta:disabled { opacity: .3; cursor: default; }
.carrossel-trilho {
  --colunas: 4;
  grid-template-columns: none;
  grid-auto-flow: column; grid-template-rows: repeat(2, auto);
  grid-auto-columns: calc((100% - (var(--colunas) - 1) * .75rem) / var(--colunas));
  overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory;
  scrollbar-width: none; padding: 4px 2px 10px; margin: -4px -2px 0;
}
.carrossel-trilho::-webkit-scrollbar { display: none; }
.carrossel-trilho > li { scroll-snap-align: start; min-width: 0; }
.carrossel-trilho > li.vazio { grid-column: 1 / -1; grid-row: 1 / -1; }
.carrossel-pontos { display: flex; justify-content: center; gap: .5rem; margin-top: 1rem; }
.carrossel-pontos button { width: 10px; height: 10px; padding: 0; border: 0; border-radius: 999px; background: var(--linha); cursor: pointer; transition: width .2s, background .2s; }
.carrossel-pontos button[aria-current="true"] { width: 28px; background: var(--sinal); }
@media (max-width: 1080px) { .carrossel-trilho { --colunas: 3; } }
@media (max-width: 760px) { .carrossel-trilho { --colunas: 2; } }
@media (max-width: 600px) {
  .carrossel-trilho { grid-template-rows: repeat(3, auto); grid-auto-columns: 86%; }  /* a próxima coluna aparece na borda */
  .carrossel-pagina { display: none; }
}
.vaga-item {
  height: 100%; display: flex; align-items: center; justify-content: space-between; gap: 1rem;
  padding: 1rem 1.1rem; text-decoration: none; color: inherit;
  background: var(--branco); border: 1px solid var(--linha); border-left: 4px solid var(--sinal); border-radius: var(--raio);
  transition: border-color .2s, transform .2s, box-shadow .2s;
}
.vaga-item:hover { color: inherit; border-color: #1fa855; border-left-color: #1fa855; transform: translateY(-2px); box-shadow: var(--sombra); }
.vaga-item-texto { display: flex; flex-direction: column; gap: .2rem; min-width: 0; }
.vaga-item strong { font: 700 1.05rem/1.25 var(--f-display); color: var(--azul-fundo); }
.vaga-item small { font: 500 .74rem/1.3 var(--f-mono); color: var(--cinza); }
.vaga-item-desc { font-size: .88rem; color: var(--cinza); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.vaga-item-acao { flex: none; display: flex; flex-direction: column; align-items: center; gap: .25rem; color: #1a8f48; font: 600 .66rem/1.1 var(--f-mono); text-transform: uppercase; letter-spacing: .04em; text-align: center; max-width: 72px; }
.vaga-item-acao svg { width: 26px; height: 26px; }
@media (max-width: 600px) {
  .vagas-grade { gap: .5rem; }
  .vaga-item { padding: .75rem .9rem; }
  .vaga-item-acao span { display: none; }
  .vaga-item-acao svg { width: 28px; height: 28px; }
}
.vagas-rodape {
  margin-top: 1.75rem; padding: 1.25rem 1.4rem; border: 1px dashed var(--linha); border-radius: var(--raio);
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem 2rem;
}
.vagas-rodape p { margin: 0; color: var(--cinza); max-width: 60ch; }
.vagas-rodape strong { color: var(--azul-fundo); }
.chip {
  font: 500 .7rem/1 var(--f-mono); letter-spacing: .08em; text-transform: uppercase;
  padding: .45em .7em; border-radius: 3px;
  background: var(--azul-claro); color: var(--azul);
}
.chip.violeta { background: var(--tinta-clara); color: var(--tinta); }
.chip.verde { background: #dcefe4; color: var(--verde); }
.chip.amarelo { background: #fdf1c4; color: #7a5a00; }
.chip.vermelho { background: #f7dedc; color: var(--vermelho); }
.chip.cinza { background: var(--papel-2); color: var(--cinza); }

/* ---------- empresas ---------- */
.empresas .container { display: grid; grid-template-columns: 1.1fr .9fr; gap: 3rem; align-items: center; }
.empresas ul { list-style: none; padding: 0; margin: 1.5rem 0 2rem; display: grid; gap: .9rem; }
.empresas li { display: flex; gap: .8rem; align-items: flex-start; }
.empresas li svg { flex: none; width: 22px; height: 22px; color: var(--sinal); margin-top: 3px; }
.ficha {
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(255,255,255,.14);
  border-radius: var(--raio);
  padding: 1.75rem;
  font-family: var(--f-mono); font-size: .88rem;
}
.ficha .linha-ficha { display: flex; justify-content: space-between; gap: 1rem; padding: .8rem 0; border-bottom: 1px dashed rgba(255,255,255,.18); }
.ficha .linha-ficha:last-child { border-bottom: 0; }
.ficha .linha-ficha span:first-child { color: #93a4c4; text-transform: uppercase; letter-spacing: .08em; font-size: .72rem; }
.ficha .linha-ficha span:last-child { color: #fff; text-align: right; }
@media (max-width: 860px) { .empresas .container { grid-template-columns: 1fr; } }

/* ---------- quem somos ---------- */
.sobre { display: grid; grid-template-columns: .9fr 1.1fr; gap: clamp(2rem, 6vw, 5rem); align-items: start; }
.sobre .texto p { color: var(--cinza); font-size: 1.08rem; }
@media (max-width: 860px) { .sobre { grid-template-columns: 1fr; } }

/* frentes de atuação (Quem somos) */
.sobre-titulo { font-size: clamp(1.9rem, 3.4vw, 2.7rem); }
.sobre .texto .sobre-intro { font-size: clamp(1.1rem, 1.6vw, 1.25rem); color: var(--grafite); line-height: 1.65; margin: 0; }
.frentes { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1.25rem; margin-top: clamp(2.5rem, 5vw, 3.5rem); }
.frente {
  background: var(--branco); border: 1px solid var(--linha); border-top: 4px solid var(--sinal);
  border-radius: var(--raio); padding: 1.5rem 1.6rem 1.4rem;
}
.frente h3 { font-size: 1.35rem; margin-bottom: .7rem; }
.frente p { color: var(--cinza); margin: 0 0 .8rem; }
.frente p:last-child { margin-bottom: 0; }
@media (max-width: 760px) { .frentes { grid-template-columns: 1fr; } }
.tem-mais {
  margin-top: 1.25rem; padding: 1.25rem 1.5rem;
  background: var(--azul-fundo); border-left: 6px solid var(--sinal); border-radius: var(--raio);
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem 2rem;
}
.tem-mais p { margin: 0; color: #fff; font: 800 clamp(1.4rem, 2.6vw, 2rem)/1.1 var(--f-display); font-stretch: 108%; letter-spacing: -.01em; }

/* ---------- diretoria ---------- */
.diretoria { margin-top: clamp(4rem, 8vw, 6.5rem); }
.diretores { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.25rem; }
.diretor {
  background: var(--branco); border: 1px solid var(--linha); border-radius: var(--raio);
  display: flex; flex-direction: column; overflow: hidden;
}
.diretor-foto { position: relative; overflow: hidden; margin: 0; aspect-ratio: 3 / 4; background: var(--papel-2); border-bottom: 4px solid var(--sinal); }
.diretor-foto img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 20%; }
.diretor-texto { padding: 1.4rem 1.4rem 1.6rem; }
.diretor-cargo {
  font: 600 .74rem/1 var(--f-mono); letter-spacing: .12em; text-transform: uppercase;
  color: var(--tinta); margin: 0 0 .6rem;
}
.diretor h3 { font-size: 1.4rem; margin: 0 0 .75rem; }
.diretor-texto p:last-child { color: var(--cinza); font-size: .98rem; margin: 0; }
.diretoria-fecho {
  margin: 2.5rem 0 0; text-align: center;
  font: 700 clamp(1.2rem, 2.2vw, 1.5rem)/1.3 var(--f-display); color: var(--azul-fundo);
}
.diretoria-fecho strong { color: var(--sinal-escuro); }
@media (max-width: 900px) {
  .diretores { grid-template-columns: 1fr; max-width: 560px; margin-inline: auto; }
  .diretor { flex-direction: row; }
  .diretor-foto { flex: 0 0 38%; aspect-ratio: auto; border-bottom: 0; border-right: 4px solid var(--sinal); }
}
@media (max-width: 520px) {
  .diretor { flex-direction: column; }
  .diretor-foto { flex: none; aspect-ratio: 1 / 1; border-right: 0; border-bottom: 4px solid var(--sinal); }
  .diretor-foto img { object-position: center 15%; }
}

/* ---------- notícias ---------- */
.noticias-topo { position: relative; isolation: isolate; padding: clamp(3rem, 6vw, 5rem) 0 clamp(2rem, 4vw, 3rem); border-bottom: 1px solid var(--linha); }
.noticias-topo::before {
  content: ''; position: absolute; inset: 0; z-index: -1;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='60' viewBox='0 0 240 60'%3E%3Cg fill='none' stroke='%2316267a' stroke-opacity='.08' stroke-width='1'%3E%3Cpath d='M0 30 Q30 0 60 30 T120 30 T180 30 T240 30'/%3E%3Cpath d='M0 30 Q30 60 60 30 T120 30 T180 30 T240 30'/%3E%3C/g%3E%3C/svg%3E");
}
.noticias-topo h1 { font-size: clamp(2.4rem, 5.5vw, 4.2rem); margin-bottom: .3em; }
.noticias-topo .lead { color: var(--cinza); font-size: 1.15rem; margin: 0; max-width: 46ch; }
.noticias-lista { padding-top: clamp(2.5rem, 5vw, 4rem); }
.noticia { max-width: 980px; }
.noticia-meta {
  display: flex; flex-wrap: wrap; align-items: center; gap: .5rem 1rem; margin-bottom: 1rem;
  font: 500 .82rem/1.3 var(--f-mono); color: var(--cinza);
}
.noticia-meta time { color: var(--azul-fundo); font-weight: 600; }
.noticia-cab h1 { font-size: clamp(2rem, 4.4vw, 3.2rem); margin-bottom: .4em; }
.noticia-lead { font-size: clamp(1.1rem, 1.6vw, 1.3rem); color: var(--cinza); max-width: 52ch; margin-bottom: 1.75rem; }
.noticia-capa { margin: 0 0 2rem; }
.galeria-item {
  display: block; width: 100%; padding: 0; border: 0; background: var(--papel-2);
  border-radius: var(--raio); overflow: hidden; cursor: zoom-in;
}
.galeria-item img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s ease; }
.galeria-item:hover img { transform: scale(1.035); }
.noticia-capa .galeria-item { aspect-ratio: 4 / 3; border-bottom: 5px solid var(--sinal); }
.noticia-corpo { max-width: 66ch; font-size: 1.12rem; }
.noticia-corpo p { margin-bottom: 1.1em; }
.noticia-assinatura {
  font: 700 clamp(1.15rem, 2vw, 1.4rem)/1.3 var(--f-display); color: var(--azul-fundo);
  border-left: 6px solid var(--sinal); padding-left: 1rem; margin-top: 1.75rem;
}
.galeria { margin-top: clamp(2.5rem, 5vw, 3.5rem); }
.galeria h2 { font-size: 1.3rem; margin-bottom: 1rem; }
.galeria-grade { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: .75rem; }
.galeria-grade .galeria-item { aspect-ratio: 3 / 4; }
@media (max-width: 640px) { .galeria-grade { grid-template-columns: repeat(2, 1fr); gap: .5rem; } }
.noticia-rodape {
  margin-top: 2.5rem; padding-top: 1.5rem; border-top: 1px dashed var(--linha);
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem;
  font: 600 .78rem/1 var(--f-mono); letter-spacing: .1em; text-transform: uppercase; color: var(--cinza);
}
.noticia-rodape .sociais { margin: 0; }
.noticia .voltar-site, .noticias-lista > .container > .voltar-site { margin-bottom: 1.5rem; }

/* cartões de notícia (página de notícias, "outras notícias" e página inicial) */
.noticias-grade { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.25rem; }
@media (max-width: 960px) { .noticias-grade { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px) { .noticias-grade { grid-template-columns: 1fr; } }
.noticia-card {
  display: flex; flex-direction: column; text-decoration: none; color: inherit;
  background: var(--branco); border: 1px solid var(--linha); border-radius: var(--raio); overflow: hidden;
  transition: border-color .2s, transform .2s, box-shadow .2s;
}
.noticia-card:hover { color: inherit; border-color: var(--azul); transform: translateY(-3px); box-shadow: var(--sombra); }
.noticia-card figure { position: relative; margin: 0; aspect-ratio: 4 / 3; overflow: hidden; background: var(--papel-2); border-bottom: 4px solid var(--sinal); }
.noticia-card figure img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .4s ease; }
.noticia-card:hover figure img { transform: scale(1.04); }
.noticia-card-texto { padding: 1.25rem 1.25rem 1.4rem; display: flex; flex-direction: column; gap: .5rem; flex: 1; }
.noticia-card .noticia-meta { margin: 0; font-size: .74rem; }
.noticia-card h3 { font-size: 1.3rem; margin: .1rem 0 0; }
.noticia-card p { color: var(--cinza); font-size: .97rem; margin: 0; flex: 1; }
.ler-mais { font: 600 .82rem var(--f-mono); color: var(--tinta); margin-top: .4rem; }
.noticia-sem-foto { position: absolute; inset: 0; display: grid; place-items: center; background: var(--branco); }
.noticia-sem-foto img { position: static !important; width: 62% !important; height: auto !important; object-fit: contain !important; opacity: .9; }
.noticias-grade-lista .noticia-card:first-child { grid-column: 1 / -1; display: grid; grid-template-columns: 1.25fr 1fr; }
.noticias-grade-lista .noticia-card:first-child figure { aspect-ratio: auto; min-height: 340px; border-bottom: 0; border-right: 5px solid var(--sinal); }
.noticias-grade-lista .noticia-card:first-child .noticia-card-texto { padding: clamp(1.5rem, 3vw, 2.5rem); justify-content: center; }
.noticias-grade-lista .noticia-card:first-child h3 { font-size: clamp(1.6rem, 3vw, 2.3rem); }
@media (max-width: 760px) {
  .noticias-grade-lista .noticia-card:first-child { display: flex; }
  .noticias-grade-lista .noticia-card:first-child figure { aspect-ratio: 4 / 3; min-height: 0; border-right: 0; border-bottom: 4px solid var(--sinal); }
}
.outras-noticias { margin-top: clamp(3.5rem, 7vw, 5rem); padding-top: 2.5rem; border-top: 1px solid var(--linha); }
.outras-noticias h2 { font-size: clamp(1.5rem, 3vw, 2rem); margin-bottom: 1.5rem; }
.aviso-rascunho { background: #fdf1c4; color: #5c4300; text-align: center; padding: .8rem 1rem; font-weight: 700; border-bottom: 1px solid #e9d37a; }
.ultimas-noticias .secao-cab a { white-space: nowrap; }

.lightbox {
  width: 100vw; height: 100dvh; max-width: none; max-height: none; margin: 0; padding: 0; border: 0;
  background: rgba(8, 14, 48, .96); color: #fff;
}
.lightbox[open] { display: grid; grid-template-columns: 64px 1fr 64px; align-items: center; }
.lightbox::backdrop { background: rgba(8, 14, 48, .6); }
.lightbox figure { margin: 0; height: 100dvh; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .75rem; padding: 3.5rem 0 1.25rem; min-width: 0; }
.lightbox img { max-width: 100%; max-height: calc(100dvh - 9rem); object-fit: contain; border-radius: 4px; }
.lightbox figcaption { text-align: center; font-size: .95rem; color: #d4ddef; max-width: 60ch; padding: 0 .5rem; }
.lightbox-contador { display: block; margin-top: .3rem; font: 500 .78rem var(--f-mono); color: #93a4c4; }
.lightbox-nav, .lightbox-fechar {
  background: rgba(255,255,255,.1); color: #fff; border: 0; cursor: pointer;
  width: 48px; height: 48px; border-radius: 50%; font-size: 2rem; line-height: 1; justify-self: center;
}
.lightbox-nav:hover, .lightbox-fechar:hover { background: var(--sinal); color: var(--grafite); }
.lightbox-fechar { position: absolute; top: 12px; right: 12px; font-size: 1.8rem; }
@media (max-width: 640px) {
  .lightbox[open] { grid-template-columns: 1fr; }
  .lightbox-nav { position: absolute; bottom: 18px; }
  .lightbox-nav.anterior { left: 18px; }
  .lightbox-nav.proxima { right: 18px; }
  .lightbox figure { padding: 3.5rem .5rem 5rem; }
}

/* ---------- descontos e convênios ---------- */
.convenios-topo { display: grid; grid-template-columns: 1.2fr .8fr; gap: 2rem 4rem; align-items: end; }
.como-usar { margin: 0; padding: 1.25rem 1.25rem 1.25rem 2.6rem; background: var(--branco); border: 1px solid var(--linha); border-radius: var(--raio); display: grid; gap: .7rem; font-size: .98rem; color: var(--cinza); }
.como-usar li::marker { font: 700 1rem var(--f-mono); color: var(--tinta); }
.como-usar strong { color: var(--azul-fundo); }
@media (max-width: 860px) { .convenios-topo { grid-template-columns: 1fr; } }
.convenios { padding-top: clamp(2rem, 4vw, 3rem); }
.filtros { display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: 1.75rem; }
.filtro {
  font: 600 .9rem/1 var(--f-display); padding: .7em 1em; border-radius: 999px; cursor: pointer;
  border: 1.5px solid var(--linha); background: var(--branco); color: var(--azul-fundo);
  display: inline-flex; align-items: center; gap: .45em; min-height: 40px;
}
.filtro span { font: 500 .72rem var(--f-mono); color: var(--cinza); }
.filtro:hover { border-color: var(--azul); }
.filtro[aria-pressed="true"] { background: var(--azul); border-color: var(--azul); color: #fff; }
.filtro[aria-pressed="true"] span { color: #c9d4e8; }
.parceiros { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 1.1rem; }
.parceiro {
  background: var(--branco); border: 1px solid var(--linha); border-radius: var(--raio);
  display: flex; flex-direction: column; overflow: hidden; transition: border-color .2s, box-shadow .2s;
}
.parceiro:hover { border-color: var(--azul); box-shadow: var(--sombra); }
.parceiro-logo { height: 170px; display: grid; place-items: center; padding: 1.25rem; background: #fff; border-bottom: 1px solid var(--linha); }
.parceiro-logo img { max-width: 100%; max-height: 128px; width: auto; height: auto; object-fit: contain; border-radius: 6px; }
.parceiro-texto { padding: 1.1rem 1.2rem .6rem; flex: 1; display: flex; flex-direction: column; gap: .4rem; align-items: flex-start; }
.parceiro-texto h3 { font-size: 1.15rem; margin: .15rem 0 0; }
.parceiro-texto p { margin: 0; color: var(--cinza); font-size: .93rem; }
.parceiro .btn { margin: .6rem 1.2rem 1.2rem; align-self: flex-start; }
.parceiro-sem-desconto { margin: .6rem 1.2rem 1.35rem; font: 600 .74rem/1 var(--f-mono); letter-spacing: .1em; text-transform: uppercase; color: var(--cinza); }
.convenios-nota { margin: 1.75rem 0 0; font-size: .9rem; color: var(--cinza); }
.convenios-empresas .container { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1.5rem 3rem; }
.convenios-empresas h2 { margin-bottom: .3em; }
.convenios-empresas p { margin: 0; max-width: 52ch; }

/* ---------- locação de espaço ---------- */
.locacao-topo { display: grid; grid-template-columns: 1fr 1fr; gap: 2rem 3.5rem; align-items: center; }
.botoes-locacao { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 1.75rem; }
.locacao-capa { margin: 0; }
.locacao-capa .galeria-item { aspect-ratio: 611 / 548; border-bottom: 5px solid var(--sinal); box-shadow: var(--sombra); }
@media (max-width: 860px) { .locacao-topo { grid-template-columns: 1fr; } }
.locacao { padding-top: clamp(2.5rem, 5vw, 3.5rem); }
.locacao-detalhes { display: grid; grid-template-columns: 1fr 1fr; gap: 1.25rem; }
.locacao-detalhes .cartao { padding: 1.6rem 1.75rem; }
@media (max-width: 760px) { .locacao-detalhes { grid-template-columns: 1fr; } }
.recursos { list-style: none; margin: 0; padding: 0; display: grid; gap: .2rem; }
.recursos li { display: flex; align-items: center; gap: .9rem; padding: .7rem 0; border-bottom: 1px dashed var(--linha); font: 700 .98rem/1.3 var(--f-display); color: var(--azul-fundo); }
.recursos li:last-child { border-bottom: 0; }
.recursos svg { width: 30px; height: 30px; flex: none; color: var(--sinal); }
.ideal-para ul { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: .7rem 1.25rem; }
.ideal-para li { position: relative; padding-left: 1.6rem; color: var(--grafite); }
.ideal-para li::before { content: '✓'; position: absolute; left: 0; top: -.05em; color: var(--sinal); font-weight: 800; }
@media (max-width: 480px) { .ideal-para ul { grid-template-columns: 1fr; } }
.galeria-locacao { grid-template-columns: repeat(5, 1fr); }
.galeria-locacao .galeria-item { aspect-ratio: 4 / 3; }
@media (max-width: 900px) { .galeria-locacao { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 560px) { .galeria-locacao { grid-template-columns: repeat(2, 1fr); } }
.consultorio {
  margin-top: clamp(3rem, 6vw, 4.5rem); display: grid; grid-template-columns: 1fr 1fr; align-items: stretch;
  background: var(--branco); border: 1px solid var(--linha); border-radius: var(--raio); overflow: hidden;
}
.consultorio figure { margin: 0; min-height: 300px; position: relative; }
.consultorio figure img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.consultorio-texto { padding: clamp(1.5rem, 4vw, 2.75rem); display: flex; flex-direction: column; justify-content: center; align-items: flex-start; }
.consultorio-texto h2 { font-size: clamp(1.7rem, 3vw, 2.3rem); }
.consultorio-texto p:not(.rotulo) { color: var(--cinza); margin-bottom: 1.5rem; }
@media (max-width: 760px) { .consultorio { grid-template-columns: 1fr; } .consultorio figure { aspect-ratio: 4 / 3; min-height: 0; } }
.locacao-contato .container { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1.5rem 3rem; }
.locacao-contato h2 { font-size: clamp(1.5rem, 3vw, 2.2rem); max-width: 22ch; }
.locacao-contato p:not(.rotulo) { margin: 0; color: #c9d4e8; }
.locacao-contato .botoes-locacao { margin-top: 0; }

/* ---------- FAQ ---------- */
.faq { max-width: 860px; }
.faq details { border-bottom: 1px solid var(--linha); }
.faq summary {
  list-style: none; cursor: pointer;
  display: flex; justify-content: space-between; align-items: center; gap: 1rem;
  padding: 1.35rem 0;
  font: 700 1.12rem/1.3 var(--f-display); font-stretch: 104%; color: var(--azul-fundo);
}
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { content: '+'; font: 400 1.8rem/1 var(--f-mono); color: var(--tinta); transition: transform .2s; }
.faq details[open] summary::after { transform: rotate(45deg); }
.faq details p { color: var(--cinza); padding-bottom: 1.25rem; margin: 0; max-width: 70ch; }

/* ---------- contato ---------- */
.contato { display: grid; grid-template-columns: .85fr 1.15fr; gap: clamp(2rem, 5vw, 4rem); }
.info-contato { display: grid; gap: 1.5rem; align-content: start; }
.info-contato .item small { display: block; font: 500 .72rem/1 var(--f-mono); letter-spacing: .12em; text-transform: uppercase; color: var(--tinta); margin-bottom: .45rem; }
.info-contato .item p { margin: 0; font-size: 1.1rem; }
.numeros-contato { list-style: none; margin: 0; padding: 0; display: grid; gap: .6rem; }
.numeros-contato li { display: flex; align-items: center; justify-content: space-between; gap: 1rem; max-width: 340px; font-size: 1.1rem; }
.contato > form { align-self: start; }
.mapa { border: 1px solid var(--linha); border-radius: var(--raio); overflow: hidden; aspect-ratio: 4 / 3; background: var(--papel-2); }
.mapa iframe { width: 100%; height: 100%; border: 0; display: block; }
@media (max-width: 860px) { .contato { grid-template-columns: 1fr; } }

/* ---------- formulários ---------- */
.form { display: grid; gap: 1.1rem; }
.form .duas { display: grid; grid-template-columns: 1fr 1fr; gap: 1.1rem; }
@media (max-width: 560px) { .form .duas { grid-template-columns: 1fr; } }
.campo-form label {
  display: block; margin-bottom: .4rem;
  font: 600 .74rem/1 var(--f-mono); letter-spacing: .1em; text-transform: uppercase; color: var(--azul-fundo);
}
.campo-form label .opc { color: var(--cinza); font-weight: 400; text-transform: none; letter-spacing: 0; }
.campo-form input, .campo-form select, .campo-form textarea {
  width: 100%; min-height: 50px;
  padding: .75em .9em;
  font: 500 1rem/1.4 var(--f-mono);
  color: var(--grafite);
  background: var(--branco);
  border: 1.5px solid rgba(23, 27, 34, .25);
  border-bottom-width: 2.5px;
  border-radius: var(--raio);
  transition: border-color .15s, box-shadow .15s;
}
.campo-form textarea { min-height: 130px; resize: vertical; font-family: var(--f-texto); }
.campo-form input:focus, .campo-form select:focus, .campo-form textarea:focus {
  outline: none; border-color: var(--azul); box-shadow: 0 0 0 4px rgba(27, 58, 114, .15);
}
.campo-form .erro-campo { display: none; color: var(--vermelho); font-size: .88rem; margin-top: .35rem; }
.campo-form.invalido input, .campo-form.invalido select, .campo-form.invalido textarea { border-color: var(--vermelho); }
.campo-form.invalido .erro-campo { display: block; }
.ajuda-form { color: var(--cinza); font-size: .95rem; margin: 0; }
.campo-form .ajuda { font-size: .85rem; color: var(--cinza); margin-top: .35rem; }
.check { display: flex; gap: .7rem; align-items: flex-start; font-size: .95rem; color: var(--cinza); }
.check input { width: 22px; height: 22px; margin-top: 2px; accent-color: var(--azul); flex: none; }
.senha-wrap { position: relative; }
.senha-wrap button {
  position: absolute; right: 6px; top: 50%; transform: translateY(-50%);
  background: none; border: 0; padding: .5em .6em; cursor: pointer;
  font: 600 .74rem var(--f-mono); letter-spacing: .06em; text-transform: uppercase; color: var(--azul);
}
.aviso {
  display: none;
  padding: .9rem 1rem; border-radius: var(--raio);
  font-size: .97rem;
  border-left: 4px solid;
}
.aviso.mostrar { display: block; }
.aviso.erro { background: #f7dedc; border-color: var(--vermelho); color: #6b1712; }
.aviso.sucesso { background: #dcefe4; border-color: var(--verde); color: #0f4a2b; }
.hp { position: absolute; left: -9999px; }

/* ---------- avaliações do Google (uma por vez) + chamada para avaliar ---------- */
.avaliacao-google { background: var(--branco); border-top: 1px solid var(--linha); padding: clamp(3rem, 6vw, 4.5rem) 0; }
.avaliacoes { display: grid; grid-template-columns: .85fr 1.15fr; gap: 2rem clamp(2rem, 5vw, 4rem); align-items: center; }
.avaliacoes-cab h2 { font-size: clamp(1.7rem, 3.2vw, 2.5rem); }
.avaliacoes-cab p:not(.rotulo) { color: var(--cinza); max-width: 44ch; }
.avaliacoes-acoes { display: flex; flex-wrap: wrap; align-items: center; gap: .8rem 1.4rem; margin-top: 1.4rem; }
.link-ver-google { font: 600 .9rem var(--f-display); text-decoration: none; }
.link-ver-google:hover { text-decoration: underline; }
@media (max-width: 860px) { .avaliacoes { grid-template-columns: 1fr; } }

.depoimentos-lista { list-style: none; margin: 0; padding: 0; display: grid; }
/* todas as avaliações ocupam a mesma célula: a altura é a da maior, sem "pulos" ao trocar */
.depoimento { grid-area: 1 / 1; opacity: 0; visibility: hidden; transform: translateY(8px); transition: opacity .5s ease, transform .5s ease, visibility .5s; }
.depoimento[data-ativo] { opacity: 1; visibility: visible; transform: none; }
.depoimento blockquote {
  margin: 0; height: 100%; position: relative;
  background: var(--papel); border: 1px solid var(--linha); border-left: 6px solid var(--sinal); border-radius: var(--raio);
  padding: clamp(1.4rem, 3vw, 2rem) clamp(1.4rem, 3vw, 2.2rem) 1.5rem;
  display: flex; flex-direction: column; gap: .9rem;
}
.depoimento blockquote::before {
  content: '“'; position: absolute; top: -.15em; right: .35em;
  font: 800 6rem/1 var(--f-display); color: var(--azul); opacity: .08;
}
.estrelas-depoimento { color: #f5b400; letter-spacing: .12em; font-size: 1.15rem; }
.depoimento p { margin: 0; font-size: clamp(1.02rem, 1.6vw, 1.15rem); line-height: 1.6; color: var(--grafite); flex: 1; }
.depoimento footer { display: flex; align-items: center; gap: .8rem; }
.depoimento .avatar {
  width: 42px; height: 42px; border-radius: 50%; flex: none; display: grid; place-items: center;
  background: var(--azul); color: #fff; font: 700 1.05rem var(--f-display);
}
.depoimento cite { display: block; font: 700 1rem/1.2 var(--f-display); font-style: normal; color: var(--azul-fundo); }
.depoimento small { font: 500 .74rem var(--f-mono); color: var(--cinza); letter-spacing: .04em; }
.depoimentos-controles { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-top: 1rem; }
.depoimentos-pontos { display: flex; gap: .5rem; }
.depoimentos-pontos button { width: 10px; height: 10px; padding: 0; border: 0; border-radius: 999px; background: var(--linha); cursor: pointer; transition: width .2s, background .2s; }
.depoimentos-pontos button[aria-current="true"] { width: 28px; background: var(--sinal); }
.depoimentos-pausa {
  width: 36px; height: 36px; border-radius: 50%; border: 1.5px solid var(--linha); background: #fff;
  color: var(--azul-fundo); cursor: pointer; display: grid; place-items: center; padding: 0;
}
.depoimentos-pausa:hover { border-color: var(--azul); }

/* ---------- rodapé ---------- */
.rodape { background: var(--azul-fundo); color: #a9b7d1; padding: 4rem 0 2rem; font-size: .95rem; }
.rodape .grade { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1fr; gap: 2rem; }
.rodape h4 { font: 600 .74rem/1 var(--f-mono); letter-spacing: .14em; text-transform: uppercase; color: var(--sinal); margin-bottom: 1rem; }
.rodape ul { list-style: none; margin: 0; padding: 0; display: grid; gap: .55rem; }
.rodape a { color: #dfe6f3; text-decoration: none; }
.rodape a:hover { color: var(--sinal); }
.rodape .base .credito { color: #93a4c4; }
.rodape .base { margin-top: 3rem; padding-top: 1.5rem; border-top: 1px solid rgba(255,255,255,.12); display: flex; justify-content: space-between; flex-wrap: wrap; gap: 1rem; font: .8rem var(--f-mono); }
@media (max-width: 860px) { .rodape .grade { grid-template-columns: 1fr 1fr; } }
@media (max-width: 520px) { .rodape .grade { grid-template-columns: 1fr; } }

/* ---------- páginas de acesso (entrar/cadastro) ---------- */
.acesso { min-height: 100vh; display: grid; grid-template-columns: 1fr 1fr; }
.acesso-lado {
  background: var(--azul); color: #d4ddef;
  padding: 2.5rem clamp(1.5rem, 5vw, 4rem);
  display: flex; flex-direction: column; justify-content: space-between; gap: 2rem;
  position: relative; overflow: hidden;
}
.acesso-lado::before {
  content: ''; position: absolute; inset: 0;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='60' viewBox='0 0 240 60'%3E%3Cg fill='none' stroke='%23ffffff' stroke-opacity='.06' stroke-width='1'%3E%3Cpath d='M0 30 Q30 0 60 30 T120 30 T180 30 T240 30'/%3E%3Cpath d='M0 30 Q30 60 60 30 T120 30 T180 30 T240 30'/%3E%3C/g%3E%3C/svg%3E");
}
.acesso-lado > * { position: relative; }
.acesso-lado .marca { color: #fff; }
.acesso-lado h2 { color: #fff; font-size: clamp(1.8rem, 3.2vw, 2.6rem); max-width: 16ch; }
.acesso-lado ul { list-style: none; padding: 0; margin: 1.5rem 0 0; display: grid; gap: .8rem; }
.acesso-lado li { display: flex; gap: .7rem; }
.acesso-lado li svg { width: 20px; height: 20px; flex: none; color: var(--sinal); margin-top: 3px; }
.acesso-lado small { font: .78rem var(--f-mono); color: #93a4c4; }
.acesso-form { display: flex; align-items: center; justify-content: center; padding: 3rem var(--gutter); }
.acesso-form .caixa { width: 100%; max-width: 480px; }
.acesso-form h1 { font-size: clamp(2rem, 4vw, 2.75rem); }
.acesso-form .sub { color: var(--cinza); margin-bottom: 2rem; }
.acesso-form .troca { margin-top: 1.5rem; text-align: center; color: var(--cinza); }
.voltar-site { font: 600 .8rem var(--f-mono); letter-spacing: .06em; text-transform: uppercase; text-decoration: none; display: inline-flex; gap: .4em; margin-bottom: 2rem; }
@media (max-width: 900px) {
  .acesso { grid-template-columns: 1fr; }
  .acesso-lado { padding-block: 1.5rem; }
  .acesso-lado .esconder-mobile { display: none; }
}

/* ---------- área do associado ---------- */
.painel { display: grid; grid-template-columns: 260px 1fr; min-height: 100vh; }
.painel-menu {
  background: var(--azul-fundo); color: #c9d4e8;
  padding: 1.5rem 1rem; position: sticky; top: 0; height: 100vh;
  display: flex; flex-direction: column; gap: 2rem;
}
.painel-menu .marca { color: #fff; padding: 0 .5rem; }
.painel-menu nav { display: grid; gap: .2rem; }
.painel-menu nav button, .painel-menu nav a {
  display: flex; align-items: center; gap: .75rem; width: 100%;
  padding: .85rem .75rem; border: 0; border-radius: var(--raio);
  background: transparent; color: #c9d4e8; cursor: pointer; text-align: left; text-decoration: none;
  font: 600 .98rem/1 var(--f-display);
}
.painel-menu nav button svg, .painel-menu nav a svg { width: 20px; height: 20px; flex: none; }
.painel-menu nav button:hover, .painel-menu nav a:hover { background: rgba(255,255,255,.07); color: #fff; }
.painel-menu nav button[aria-current="page"] { background: var(--sinal); color: var(--grafite); }
.painel-menu .sair { margin-top: auto; }
.painel-conteudo { padding: clamp(1.5rem, 4vw, 3rem); max-width: 1100px; width: 100%; }
.painel-cab { display: flex; justify-content: space-between; align-items: flex-end; flex-wrap: wrap; gap: 1rem; margin-bottom: 2rem; }
.painel-cab h1 { font-size: clamp(1.8rem, 3.5vw, 2.6rem); margin: 0; }
.painel-cab p { margin: .35rem 0 0; color: var(--cinza); }
.aba { display: none; }
.aba.ativa { display: block; animation: surgir .3s ease; }
@keyframes surgir { from { opacity: 0; transform: translateY(6px); } }

.cartao {
  background: var(--branco); border: 1px solid var(--linha); border-radius: var(--raio);
  padding: 1.5rem;
}
.cartao h2 { font-size: 1.35rem; margin-bottom: 1rem; }
.grade-painel { display: grid; grid-template-columns: 1fr 1fr; gap: 1.25rem; }
.grade-painel .largo { grid-column: 1 / -1; }
@media (max-width: 900px) { .grade-painel { grid-template-columns: 1fr; } }

.numeros { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 1rem; margin-bottom: 1.25rem; }
.numero { background: var(--branco); border: 1px solid var(--linha); border-radius: var(--raio); padding: 1.1rem 1.25rem; }
.numero b { display: block; font: 800 2.1rem/1 var(--f-display); font-stretch: 110%; color: var(--azul-fundo); }
.numero span { font: 500 .72rem/1.3 var(--f-mono); letter-spacing: .08em; text-transform: uppercase; color: var(--cinza); }

.lista { list-style: none; margin: 0; padding: 0; }
.lista li { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: .95rem 0; border-bottom: 1px dashed var(--linha); flex-wrap: wrap; }
.lista li:last-child { border-bottom: 0; }
.lista .t { font-weight: 700; color: var(--azul-fundo); }
.lista .s { font: .82rem var(--f-mono); color: var(--cinza); }
.vazio { text-align: center; padding: 2rem 1rem; color: var(--cinza); }
.vazio p { margin-bottom: 1rem; }

.tabela-wrap { overflow-x: auto; }
table.tabela { width: 100%; border-collapse: collapse; font-size: .93rem; }
.tabela th { text-align: left; font: 600 .7rem/1 var(--f-mono); letter-spacing: .1em; text-transform: uppercase; color: var(--cinza); padding: .8rem .6rem; border-bottom: 2px solid var(--azul); white-space: nowrap; }
.tabela td { padding: .8rem .6rem; border-bottom: 1px solid var(--linha); vertical-align: top; }
.tabela td.mono { font-family: var(--f-mono); font-size: .82rem; }
.tabela select { font: .85rem var(--f-mono); padding: .35em; border-radius: 4px; border: 1px solid var(--linha); background: #fff; }

.painel-topo-mobile { display: none; }
@media (max-width: 900px) {
  .painel { grid-template-columns: 1fr; }
  .painel-menu { position: fixed; inset: 0 auto 0 0; width: 280px; z-index: 60; transform: translateX(-100%); transition: transform .25s ease; }
  .painel-menu.aberto { transform: none; box-shadow: 0 0 0 100vmax rgba(0,0,0,.4); }
  .painel-topo-mobile {
    display: flex; justify-content: space-between; align-items: center;
    padding: .75rem var(--gutter); background: var(--azul-fundo); color: #fff; position: sticky; top: 0; z-index: 40;
  }
  .painel-topo-mobile .marca { color: #fff; }
  .painel-topo-mobile .menu-btn { display: inline-flex; color: #fff; border-color: rgba(255,255,255,.4); }
}

/* WhatsApp */
.btn-whatsapp { --bg: #1fa855; --fg: #fff; }
.btn-whatsapp:hover { --bg: #178f47; }
.btn-whatsapp svg, .link-icone svg { width: 18px; height: 18px; flex: none; }
.link-icone { display: inline-flex; align-items: center; gap: .45em; }
/* ícone de WhatsApp/Facebook/Instagram inserido em qualquer link: tamanho padrão */
a[data-whatsapp] > svg:first-child, a[data-facebook] > svg:first-child, a[data-instagram] > svg:first-child { width: 1.1em; height: 1.1em; flex: none; vertical-align: -.15em; margin-right: .3em; }
.btn > svg:first-child, .link-icone > svg:first-child { margin-right: 0; }
.btn-instagram {
  --bg: #d62976; --fg: #fff; border-color: transparent;
  background: linear-gradient(45deg, #f58529 0%, #dd2a7b 50%, #8134af 100%);
}
.btn-instagram:hover { filter: brightness(1.08); }
.btn-instagram svg { width: 18px; height: 18px; flex: none; }
.btn-facebook { --bg: #1877f2; --fg: #fff; }
.btn-facebook:hover { --bg: #0f63d4; }
.btn-facebook svg { width: 18px; height: 18px; flex: none; }
.sociais { display: flex; flex-wrap: wrap; gap: .6rem; margin-top: 1.25rem; }
.sociais .btn:hover { color: #fff; }

.contato-flutuante {
  position: fixed; right: 20px; bottom: 20px; z-index: 150;
  display: flex; flex-direction: column; align-items: flex-end; gap: 12px;
  animation: whatsapp-entra .5s 1.2s cubic-bezier(.3,1.5,.5,1) both;
}
.facebook-flutuante {
  width: 52px; height: 52px; border-radius: 50%;
  display: grid; place-items: center; color: #fff; background: #1877f2;
  box-shadow: 0 10px 28px -8px rgba(12, 22, 80, .45), 0 2px 6px rgba(0,0,0,.15);
  transition: transform .2s ease, background .2s ease;
}
.facebook-flutuante:hover { color: #fff; background: #0f63d4; transform: translateY(-3px); }
.facebook-flutuante svg { width: 28px; height: 28px; }
.instagram-flutuante {
  width: 52px; height: 52px; border-radius: 50%;
  display: grid; place-items: center; color: #fff;
  background: radial-gradient(circle at 30% 107%, #fdf497 0%, #fd5949 45%, #d6249f 60%, #285aeb 90%);
  box-shadow: 0 10px 28px -8px rgba(12, 22, 80, .45), 0 2px 6px rgba(0,0,0,.15);
  transition: transform .2s ease;
}
.instagram-flutuante:hover { color: #fff; transform: translateY(-3px); }
.instagram-flutuante svg { width: 26px; height: 26px; }
.whatsapp-flutuante {
  display: inline-flex; align-items: center; gap: .6rem;
  height: 60px; padding: 0 1.3rem 0 1.05rem; border-radius: 999px;
  background: #1fa855; color: #fff; text-decoration: none;
  font: 700 1rem/1 var(--f-display); white-space: nowrap;
  box-shadow: 0 10px 28px -8px rgba(12, 22, 80, .45), 0 2px 6px rgba(0,0,0,.15);
  transition: transform .2s ease, background .2s ease;
}
.whatsapp-flutuante:hover { color: #fff; background: #178f47; transform: translateY(-3px); }
.whatsapp-flutuante svg { width: 30px; height: 30px; flex: none; }
@keyframes whatsapp-entra { from { opacity: 0; transform: translateY(20px) scale(.8); } }
@media (max-width: 640px) {
  .contato-flutuante { right: 16px; bottom: 16px; gap: 10px; }
  .whatsapp-flutuante { width: 58px; height: 58px; padding: 0; justify-content: center; }
  .instagram-flutuante, .facebook-flutuante { width: 48px; height: 48px; margin-right: 5px; }
  .whatsapp-flutuante span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .toast { bottom: 88px; }
}
@media print { .contato-flutuante { display: none; } }

/* editor de notícias no painel */
.editor-noticia { align-items: start; }
.enviar-fotos { margin: .9rem 0 .4rem; cursor: pointer; }
.enviar-fotos:focus-within { outline: 3px solid var(--tinta); outline-offset: 3px; }
.fotos-editor { list-style: none; margin: 1rem 0 0; padding: 0; display: grid; gap: .9rem; }
.fotos-editor li { display: grid; grid-template-columns: 96px 1fr; gap: .8rem; align-items: start; padding-bottom: .9rem; border-bottom: 1px dashed var(--linha); }
.fotos-editor li:last-child { border-bottom: 0; }
.fotos-editor img { width: 96px; height: 96px; object-fit: cover; border-radius: 4px; background: var(--papel-2); }
.fotos-editor .acoes-foto { display: flex; flex-wrap: wrap; gap: .4rem; margin-top: .5rem; }
.fotos-editor .acoes-foto button { font: 600 .74rem var(--f-mono); padding: .45em .7em; border-radius: 4px; border: 1px solid var(--linha); background: #fff; cursor: pointer; color: var(--azul-fundo); }
.fotos-editor .acoes-foto button:hover { border-color: var(--azul); }
.fotos-editor .acoes-foto button.perigo { color: var(--vermelho); }
.fotos-editor input { width: 100%; font: .9rem var(--f-texto); padding: .5em .6em; border: 1px solid rgba(23,27,34,.25); border-radius: 4px; }
.fotos-editor .chip { margin-bottom: .35rem; display: inline-block; }

/* toast */
.toast {
  position: fixed; left: 50%; bottom: 24px; transform: translate(-50%, 140%);
  background: var(--grafite); color: #fff; padding: .9rem 1.25rem; border-radius: var(--raio);
  font-weight: 700; z-index: 200; transition: transform .3s cubic-bezier(.3,1.4,.5,1);
  max-width: calc(100vw - 32px);
}
.toast.mostrar { transform: translate(-50%, 0); }

/* revelação ao rolar */
.revelar { opacity: 0; transform: translateY(18px); transition: opacity .7s ease, transform .7s ease; }
.revelar.visivel { opacity: 1; transform: none; }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
  .revelar { opacity: 1; transform: none; }
}
