/* ===== Seções institucionais =====
   Linguagem sóbria: fundo branco ou cinza muito claro, filetes finos no lugar de cartões coloridos,
   azul-marinho para títulos e números. Markup gerado por assets/js/components/institucional.js. */

.rotulo {
  display: block;
  margin-bottom: 12px;
  color: var(--slate-500);
  font-size: 12.5px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.bloco-escuro .rotulo {
  color: rgba(255, 255, 255, 0.65);
}

/* ===== Trilha de navegação (breadcrumb) ===== */
.trilha {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0 0 20px;
  padding: 0;
  list-style: none;
  color: var(--slate-500);
  font-size: 14px;
}

.trilha li + li::before {
  content: '/';
  margin-right: 8px;
  color: var(--slate-300);
}

.trilha a {
  color: var(--slate-600);
}

/* ===== Hero de página ===== */
.pagina-hero {
  padding-top: 56px;
  background: #fff;
  border-bottom: 1px solid var(--linha);
}

.pagina-hero-conteudo {
  max-width: 820px;
  padding-bottom: 56px;
}

.pagina-hero h1 {
  margin-bottom: 16px;
  font-size: var(--fs-h1);
  line-height: 1.1;
  letter-spacing: -0.02em;
}

.pagina-hero-lead {
  max-width: 680px;
  color: var(--slate-600);
  font-size: var(--fs-lead);
  line-height: 1.6;
}

.pagina-hero-acoes,
.acoes {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 28px;
}

.pagina-hero .fatos {
  border-bottom: 0;
}

/* Hero com foto à direita (páginas de serviço) */
.pagina-hero-grade {
  display: grid;
  grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
  align-items: center;
  gap: 64px;
  padding-bottom: 56px;
}

.pagina-hero-grade .pagina-hero-conteudo {
  padding-bottom: 0;
}

@media (max-width: 1000px) {
  .pagina-hero-grade {
    grid-template-columns: 1fr;
    gap: 32px;
  }

  .pagina-hero-grade .foto {
    aspect-ratio: 3 / 2;
  }
}

@media (max-width: 800px) {
  .pagina-hero-grade { padding-bottom: 44px; }
}

/* ===== Fatos (números) ===== */
.fatos {
  display: grid;
  gap: 1px;
  background: var(--linha);
  border-top: 1px solid var(--linha);
  border-bottom: 1px solid var(--linha);
}

.fatos-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.fatos-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.fatos-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.fatos-6 { grid-template-columns: repeat(6, minmax(0, 1fr)); }

.fato {
  min-width: 0;
  padding: 24px 24px 26px;
  background: #fff;
}

.fato strong {
  display: block;
  margin-bottom: 6px;
  color: var(--cor-primaria);
  font-size: 32px;
  line-height: 1.05;
  letter-spacing: -0.01em;
}

.fato span {
  display: block;
  color: var(--slate-600);
  font-size: 14px;
  line-height: 1.5;
}

@media (max-width: 1100px) {
  .fatos-6 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 800px) {
  .fatos-4,
  .fatos-6 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .fato { padding: 18px 16px 20px; }
  .fato strong { font-size: 26px; }
}

/* ===== Blocos (seções de largura total) ===== */
.bloco {
  padding: var(--secao-py) 0;
}

/* Seções com âncora (ex.: /en#solutions) não ficam escondidas sob o cabeçalho fixo */
.bloco[id] {
  scroll-margin-top: var(--header-altura);
}

/* Observação curta ao lado dos botões (ex.: "Offered in Portuguese") */
.acoes-nota {
  align-self: center;
  color: var(--slate-500);
  font-size: 14px;
}

.bloco-branco {
  background: #fff;
}

.bloco-suave {
  background: var(--fundo-alt);
  border-top: 1px solid var(--linha);
  border-bottom: 1px solid var(--linha);
}

.bloco-escuro {
  color: rgba(255, 255, 255, 0.82);
  background: var(--cor-primaria);
}

.bloco-escuro h2,
.bloco-escuro h3 {
  color: #fff;
}

.bloco-titulo,
.bloco-cabecalho h2,
.bloco-intro h2 {
  font-size: var(--fs-h2);
  line-height: 1.15;
  letter-spacing: -0.015em;
}

.bloco-cabecalho {
  max-width: 760px;
  margin-bottom: 36px;
}

.bloco-cabecalho p,
.bloco-intro p {
  margin-top: 14px;
  color: var(--slate-600);
  font-size: 17px;
  line-height: 1.65;
}

.bloco-escuro .bloco-cabecalho p,
.bloco-escuro .bloco-intro p {
  color: rgba(255, 255, 255, 0.78);
}

.bloco-intro .btn,
.bloco-intro .link-seta {
  margin-top: 24px;
}

.bloco-topo {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 12px 24px;
  margin-bottom: 32px;
}

/* ===== Layout dividido (título à esquerda, conteúdo à direita) ===== */
.dividido {
  display: grid;
  grid-template-columns: minmax(240px, 4fr) minmax(0, 7fr);
  align-items: start;
  gap: 64px;
}

/* Variante com foto à direita (ex.: Quem somos) */
.dividido-foto {
  grid-template-columns: minmax(0, 5fr) minmax(0, 6fr);
  align-items: center;
}

.dividido-foto .texto-corrido {
  margin-top: 20px;
}

/* ===== Espaços de foto (assets/js/fotos.js) =====
   A <img> cobre o quadro. Se o arquivo ainda não existe, o onerror remove a <img>
   e aparece o quadro tracejado com o nome do arquivo esperado. */
.foto {
  position: relative;
  margin: 0;
  overflow: hidden;
  aspect-ratio: var(--proporcao, 4 / 3);
  background: var(--slate-100);
  border-radius: var(--radius);
}

.foto img {
  position: absolute;
  inset: 0;
  z-index: 1;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* Vídeo na moldura de foto (ex.: topo da home): sem recorte, com a legenda na borda de cima,
   para não cobrir as legendas e os nomes que o próprio vídeo mostra embaixo */
.foto-video {
  overflow: visible;
  background: var(--cor-primaria);
}

.foto-video video {
  position: absolute;
  inset: 0;
  z-index: 1;
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: inherit;
}

.foto-video .foto-legenda {
  top: 0;
  bottom: auto;
  transform: translateY(-50%);
}

.foto:not(:has(img, video))::before {
  content: attr(data-espaco);
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 84px 24px 24px;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='16' rx='2'/%3E%3Ccircle cx='9' cy='10' r='1.8'/%3E%3Cpath d='M21 16l-5-5-9 9'/%3E%3C/svg%3E") no-repeat center calc(50% - 26px) / 36px 36px;
  border: 1px dashed var(--slate-300);
  border-radius: inherit;
  color: var(--slate-500);
  font-size: 13px;
  line-height: 1.6;
  text-align: center;
  white-space: pre-line;
}

.bloco-escuro .foto {
  background: rgba(255, 255, 255, 0.06);
}

/* Legenda em destaque sobre a foto (ex.: "Alguns dos nossos alunos" no topo da home) */
.foto-legenda {
  position: absolute;
  left: 16px;
  bottom: 16px;
  z-index: 2;
  padding: 8px 14px;
  background: #fff;
  border-radius: var(--radius);
  box-shadow: 0 10px 28px -14px rgba(1, 44, 102, 0.55);
  color: var(--cor-primaria);
  font-family: var(--font-titulos);
  font-size: 15px;
  font-weight: 700;
  line-height: 1.2;
}

.bloco-escuro .foto:not(:has(img, video))::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-opacity='0.6' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='16' rx='2'/%3E%3Ccircle cx='9' cy='10' r='1.8'/%3E%3Cpath d='M21 16l-5-5-9 9'/%3E%3C/svg%3E");
  border-color: rgba(255, 255, 255, 0.25);
  color: rgba(255, 255, 255, 0.7);
}

.texto-corrido p {
  margin-bottom: 18px;
  color: var(--slate-700);
  font-size: var(--fs-texto-longo);
  line-height: 1.75;
}

.texto-corrido p:last-child {
  margin-bottom: 0;
}

.texto-corrido strong {
  color: var(--cor-primaria);
}

.texto-corrido a {
  text-decoration: underline;
  text-underline-offset: 3px;
}

.texto-destaque {
  color: var(--cor-primaria);
  font-family: var(--font-titulos);
  font-size: clamp(22px, 2.4vw, 28px);
  font-weight: 600;
  line-height: 1.45;
}

.bloco-escuro .texto-destaque {
  color: #fff;
}

/* ===== Soluções e serviços (lista com ícone) ===== */
.frentes {
  border-top: 2px solid var(--cor-primaria);
}

/* Coluna do link com largura fixa: as linhas ficam alinhadas qualquer que seja o texto do link */
.frente {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) 220px;
  align-items: center;
  gap: 28px;
  padding: 22px 0;
  border-bottom: 1px solid var(--linha);
}

.frente-nome {
  display: flex;
  align-items: center;
  gap: 18px;
  min-width: 0;
}

/* Tamanho fixo: o Font Awesome troca o <i> por <svg> depois do carregamento */
.frente-icone {
  display: inline-flex;
  flex-shrink: 0;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  background: #fff;
  border: 1px solid var(--linha);
  border-radius: var(--radius);
  color: var(--cor-primaria);
  font-size: 19px;
}

.frente-em-breve .frente-icone {
  color: var(--slate-500);
}

.frente h3 {
  font-size: 21px;
  line-height: 1.25;
}

.frente-selo {
  display: block;
  margin-top: 4px;
  color: var(--slate-500);
  font-size: 13.5px;
}

.frente p {
  color: var(--slate-600);
  font-size: 15.5px;
  line-height: 1.6;
}

.frente .link-seta {
  justify-self: end;
}

.frente-em-breve h3 {
  color: var(--slate-600);
}

.etiqueta {
  display: inline-block;
  padding: 4px 10px;
  border: 1px solid var(--slate-300);
  border-radius: 4px;
  color: var(--slate-600);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  white-space: nowrap;
}

.frente .etiqueta {
  justify-self: end;
}

@media (max-width: 900px) {
  .frente {
    grid-template-columns: 1fr;
    gap: 8px;
  }

  .frente-nome {
    gap: 14px;
  }

  .frente-icone {
    width: 40px;
    height: 40px;
    font-size: 17px;
  }

  /* Texto e link alinhados ao título, à direita do ícone */
  .frente > p,
  .frente > .link-seta,
  .frente > .etiqueta {
    margin-left: 54px;
  }

  .frente .link-seta,
  .frente .etiqueta {
    justify-self: start;
    margin-top: 6px;
  }
}

/* ===== Parcerias (faixa azul-marinho) ===== */
.parceria-principal {
  display: grid;
  grid-template-columns: minmax(0, 7fr) minmax(0, 4fr);
  align-items: center;
  gap: 64px;
}

.parceria-principal h2 {
  font-size: var(--fs-h2);
  line-height: 1.15;
  letter-spacing: -0.015em;
}

.parceria-principal p {
  max-width: 600px;
  margin-top: 14px;
  color: rgba(255, 255, 255, 0.8);
  font-size: 17px;
  line-height: 1.65;
}

.parceria-numero {
  padding-left: 40px;
  border-left: 1px solid rgba(255, 255, 255, 0.2);
}

.parceria-numero strong {
  display: block;
  color: #fff;
  font-size: clamp(64px, 8vw, 96px);
  line-height: 1;
  letter-spacing: -0.02em;
}

.parceria-numero span {
  display: block;
  max-width: 280px;
  margin-top: 10px;
  color: rgba(255, 255, 255, 0.8);
  font-size: 16px;
  line-height: 1.5;
}

.parceria-secundaria {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 12px 24px;
  margin-top: 56px;
  padding-top: 24px;
  border-top: 1px solid rgba(255, 255, 255, 0.18);
  color: rgba(255, 255, 255, 0.8);
  font-size: 16px;
}

.parceria-secundaria strong {
  color: #fff;
}

.link-claro {
  color: #fff;
  font-family: var(--font-titulos);
  font-weight: 700;
  white-space: nowrap;
}

.link-claro:hover {
  color: #fff;
}

/* Parceria com foto: foto à esquerda; o número fica abaixo do texto, com filete no topo */
.parceria-com-foto {
  grid-template-columns: minmax(0, 5fr) minmax(0, 6fr);
}

.parceria-com-foto .parceria-numero {
  display: flex;
  align-items: center;
  gap: 20px;
  max-width: none;
  margin-top: 28px;
  padding: 22px 0 0;
  border-left: 0;
  border-top: 1px solid rgba(255, 255, 255, 0.2);
}

.parceria-com-foto .parceria-numero strong {
  flex-shrink: 0;
  font-size: clamp(56px, 6vw, 80px);
}

.parceria-com-foto .parceria-numero span {
  margin-top: 0;
}

@media (max-width: 900px) {
  .parceria-principal {
    grid-template-columns: 1fr;
    gap: 28px;
  }

  .parceria-numero {
    padding: 24px 0 0;
    border-left: 0;
    border-top: 1px solid rgba(255, 255, 255, 0.2);
  }
}

/* ===== Mapa de aprovações (assets/js/components/mapaAprovados.js) =====
   Contorno fixo (assets/img/mapa-eua.svg) e pontos posicionados em porcentagem. O balão de cada
   ponto abre só com CSS: mouse, toque (o toque ativa o :hover) e foco pelo teclado. */
.mapa {
  position: relative;
  aspect-ratio: 975 / 610;
}

.mapa-base {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

/* O botão é a área de toque (28px); o ponto visível é o ::before */
.mapa-ponto {
  position: absolute;
  z-index: 1;
  width: 28px;
  height: 28px;
  margin: -14px 0 0 -14px;
  padding: 0;
  background: none;
  border: 0;
  border-radius: 50%;
}

.mapa-ponto::before {
  content: '';
  position: absolute;
  top: 8px;
  left: 8px;
  width: 12px;
  height: 12px;
  background: var(--cor-primaria);
  border: 2px solid #fff;
  border-radius: 50%;
  box-shadow: 0 1px 3px rgba(1, 44, 102, 0.35);
  transition: transform 0.15s ease, background-color 0.15s ease;
}

.mapa-ponto:hover,
.mapa-ponto:focus-visible {
  z-index: 3;
}

.mapa-ponto:hover::before,
.mapa-ponto:focus-visible::before {
  background: var(--cor-secundaria);
  transform: scale(1.3);
}

.mapa-ponto:focus-visible {
  outline-offset: -2px;
}

.mapa-balao {
  position: absolute;
  bottom: 100%;
  left: 50%;
  display: none;
  width: max-content;
  max-width: 260px;
  padding: 12px 14px;
  background: #fff;
  border: 1px solid var(--linha);
  border-radius: var(--radius);
  box-shadow: var(--sombra-elevada);
  color: var(--slate-600);
  font-family: var(--font-textos);
  font-size: 13.5px;
  font-weight: 400;
  line-height: 1.45;
  text-align: left;
  white-space: normal;
  transform: translateX(-50%);
  pointer-events: none;
}

.mapa-balao span {
  display: block;
}

.mapa-balao strong {
  display: block;
  color: var(--cor-primaria);
  font-family: var(--font-titulos);
  font-size: 16px;
  font-weight: 700;
  line-height: 1.25;
}

.mapa-balao .mapa-local {
  margin: 2px 0 8px;
  color: var(--slate-500);
  font-size: 12.5px;
}

.mapa-ponto:hover .mapa-balao,
.mapa-ponto:focus-visible .mapa-balao {
  display: block;
}

/* Com outro ponto sob o mouse, só o balão dele aparece */
.mapa:has(.mapa-ponto:hover) .mapa-ponto:not(:hover) .mapa-balao {
  display: none;
}

.mapa-ponto.balao-direita .mapa-balao {
  left: 0;
  transform: none;
}

.mapa-ponto.balao-esquerda .mapa-balao {
  left: auto;
  right: 0;
  transform: none;
}

.mapa-ponto.balao-abaixo .mapa-balao {
  top: 100%;
  bottom: auto;
}

/* Título do mapa: menor que os outros h2 e centralizado na altura do mapa */
.dividido-mapa {
  align-items: center;
}

.bloco-intro .mapa-titulo {
  font-size: clamp(22px, 2.2vw, 28px);
  line-height: 1.25;
}

.bloco-intro .mapa-dica {
  margin-top: 20px;
  color: var(--slate-500);
  font-size: 14px;
}

@media (max-width: 560px) {
  .mapa-balao { max-width: 220px; }
}

/* ===== Consultoria e educação (home): as duas frentes da empresa, lado a lado ===== */
.pilares {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 48px;
}

.pilar-tela {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 2 / 1;
  object-fit: cover;
  /* Telas mais largas que a moldura mostram o lado esquerdo, onde fica o título da página */
  object-position: left top;
  background: var(--fundo-alt);
  border: 1px solid var(--linha);
  border-radius: var(--radius);
}

.pilar h3 {
  margin-top: 24px;
  font-size: 26px;
  line-height: 1.2;
}

.pilar p {
  margin-top: 10px;
  color: var(--slate-600);
  font-size: 16px;
  line-height: 1.65;
}

.pilar-links {
  margin: 20px 0 0;
  padding: 0;
  list-style: none;
  border-top: 2px solid var(--cor-primaria);
}

.pilar-links li {
  border-bottom: 1px solid var(--linha);
}

.pilar-link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 14px 0;
  color: var(--cor-primaria);
  font-family: var(--font-titulos);
  font-size: 17px;
  font-weight: 700;
}

.pilar-link:hover {
  color: var(--cor-secundaria);
  text-decoration: none;
}

.pilares-nota {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px;
  margin-top: 40px;
  color: var(--slate-600);
  font-size: 15px;
}

@media (max-width: 900px) {
  .pilares { grid-template-columns: 1fr; }
  .pilar h3 { font-size: 23px; }
}

/* ===== Passos (como funciona, nas páginas de serviço) =====
   Lado a lado, um passo por coluna (--passos = quantidade, definida no markup); 2 colunas no tablet
   e 1 no celular. */
.passos {
  display: grid;
  grid-template-columns: repeat(var(--passos, 4), minmax(0, 1fr));
  gap: 32px;
  margin: 0;
  padding: 0;
  list-style: none;
  counter-reset: passo;
}

.passos li {
  padding-top: 18px;
  border-top: 2px solid var(--cor-primaria);
  counter-increment: passo;
}

.passos li::before {
  content: counter(passo, decimal-leading-zero);
  display: block;
  margin-bottom: 12px;
  color: var(--slate-400);
  font-family: var(--font-titulos);
  font-size: 20px;
  font-weight: 700;
  line-height: 1;
}

.passos strong {
  display: block;
  color: var(--cor-primaria);
  font-family: var(--font-titulos);
  font-size: 19px;
  font-weight: 700;
  line-height: 1.3;
}

.passos span {
  display: block;
  margin-top: 8px;
  color: var(--slate-600);
  font-size: 15px;
  line-height: 1.6;
}

.passos + .acoes {
  margin-top: 40px;
}

@media (max-width: 1000px) {
  .passos { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 560px) {
  .passos { grid-template-columns: 1fr; gap: 28px; }
}

/* ===== Itens em colunas (valores) ===== */
.itens {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 32px;
}

.item {
  padding-top: 18px;
  border-top: 2px solid var(--cor-primaria);
}

.item h3 {
  margin-bottom: 8px;
  font-size: 19px;
}

.item p {
  color: var(--slate-600);
  font-size: 15px;
  line-height: 1.6;
}

@media (max-width: 1000px) {
  .itens { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 560px) {
  .itens { grid-template-columns: 1fr; gap: 24px; }
}

/* ===== Liderança ===== */
.lideranca {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 48px;
}

.lider {
  display: grid;
  grid-template-columns: 180px minmax(0, 1fr);
  align-items: start;
  gap: 28px;
}

.lider-foto {
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 5;
  object-fit: cover;
  object-position: center top;
  border-radius: var(--radius);
  background: var(--slate-100);
}

.lider-nome {
  margin-bottom: 4px;
  font-size: 22px;
}

.lider-cargo {
  display: block;
  margin-bottom: 12px;
  color: var(--slate-500);
  font-size: 14px;
  font-weight: 600;
}

.lider-bio {
  color: var(--slate-600);
  font-size: 15px;
  line-height: 1.7;
}

.lider-bio strong {
  color: var(--cor-primaria);
}

.lider-linkedin {
  display: inline-flex;
  margin-top: 12px;
  font-family: var(--font-titulos);
  font-weight: 700;
}

@media (max-width: 1100px) {
  .lideranca { grid-template-columns: 1fr; }
}

@media (max-width: 560px) {
  .lider { grid-template-columns: 1fr; }
  .lider-foto { max-width: 280px; }
}

/* ===== Galeria da plataforma ===== */
.plataforma-galeria {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 28px;
}

.plataforma-item {
  margin: 0;
}

.plataforma-item img {
  width: 100%;
  height: auto;
  aspect-ratio: 2 / 1;
  object-fit: cover;
  object-position: top center;
  background: var(--fundo-alt);
  border: 1px solid var(--linha);
  border-radius: var(--radius);
}

.plataforma-item figcaption {
  margin-top: 12px;
  color: var(--cor-primaria);
  font-family: var(--font-titulos);
  font-size: 16px;
  font-weight: 700;
}

@media (max-width: 900px) {
  .plataforma-galeria { grid-template-columns: 1fr; }
}

/* ===== Dados institucionais (tabela) ===== */
.dados-empresa {
  border-top: 2px solid var(--cor-primaria);
}

.dados-empresa dl > div {
  display: grid;
  grid-template-columns: 210px minmax(0, 1fr);
  gap: 16px;
  padding: 14px 0;
  border-bottom: 1px solid var(--linha);
}

.dados-empresa dt {
  color: var(--slate-500);
  font-size: 14px;
  font-weight: 600;
}

.dados-empresa dd {
  color: var(--texto-principal);
  font-size: 15.5px;
  overflow-wrap: anywhere;
}

@media (max-width: 560px) {
  .dados-empresa dl > div { grid-template-columns: 1fr; gap: 2px; }
}

/* ===== Canais de contato ===== */
.canais {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  border-top: 2px solid var(--cor-primaria);
}

.canal {
  padding: 26px 28px 28px 0;
}

.canal + .canal {
  padding-left: 28px;
  border-left: 1px solid var(--linha);
}

.canal-rotulo {
  display: block;
  color: var(--slate-500);
  font-size: 14px;
  font-weight: 600;
}

.canal-valor {
  display: block;
  margin: 6px 0 14px;
  color: var(--cor-primaria);
  font-size: 22px;
  line-height: 1.3;
  overflow-wrap: anywhere;
}

.canal-acoes {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 22px;
}

.canais-nota {
  margin-top: 22px;
  color: var(--slate-600);
  font-size: 15px;
}

@media (max-width: 960px) {
  .canais { grid-template-columns: 1fr; }
  .canal { padding-right: 0; }

  .canal + .canal {
    padding-left: 0;
    border-left: 0;
    border-top: 1px solid var(--linha);
  }
}

/* ===== Lista de apoio (links institucionais) ===== */
.lista-apoio {
  margin-top: 22px;
  padding: 0;
  list-style: none;
  border-top: 1px solid var(--linha);
}

.lista-apoio li {
  padding: 13px 0;
  border-bottom: 1px solid var(--linha);
  color: var(--slate-600);
  font-size: 15px;
}

/* ===== Linha de chamada final (título + botões) ===== */
.cta-linha {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 24px 40px;
}

.cta-linha h2 {
  max-width: 640px;
  font-size: var(--fs-h2);
  line-height: 1.15;
  letter-spacing: -0.015em;
}

.cta-linha .acoes {
  margin-top: 0;
}

/* ===== Página em branco (aguardando conteúdo) ===== */
.pagina-vazia {
  min-height: 280px;
}

/* ===== Responsivo geral ===== */
@media (max-width: 1000px) {
  .dividido {
    grid-template-columns: 1fr;
    gap: 32px;
  }
}

@media (max-width: 800px) {
  .pagina-hero { padding-top: 40px; }
  .pagina-hero-conteudo { padding-bottom: 44px; }
  .pagina-hero-lead { font-size: 17px; }
  .bloco-cabecalho { margin-bottom: 28px; }
}

@media (max-width: 520px) {
  .pagina-hero-acoes .btn,
  .acoes .btn { width: 100%; }
}
