/* Âmago — variáveis, reset e barra de navegação. Carregado em todas as páginas. */

:root{
  --ink:#ffffff;
  --ink-2:#ffffffff;
  --ink-3:#ffffffff;
  --fundo:#022425;
  --fundo-rgb:2,36,37;
  --altura-nav:70px;   /* valor de arranque; o JS mede a navbar e atualiza-o */
  --fonte:"Jost","Century Gothic","URW Gothic","Segoe UI",system-ui,-apple-system,sans-serif;
  /* Corpo dos títulos de secção (<h2>), igual na página toda por decisão do cliente:
     "Os nossos serviços.", "Parceiros de Referência" e "Projetos de Sucesso" partilham
     este valor e não podem divergir. Está aqui na raiz e não em cada secção porque três
     valores parecidos, escritos em três sítios, mudam sempre um de cada vez.
     Atenção: entra também na CONTA da altura da grelha dos serviços (`--titulo`), por
     isso mexer-lhe muda o tamanho dos quadrados dessa secção — ver o comentário lá.
     O <h1> do hero não é um título de secção e não segue esta medida. */
  /* Ficou o corpo MENOR das duas medidas que havia: era o das faixas dos parceiros e dos
     projetos, e o cliente achou o dos serviços (que ia a 44px) grande de mais. Como este
     valor entra na conta da altura da grelha dos serviços, encolhê-lo devolve altura a
     essa secção — e nas janelas onde é a altura a mandar (3 ou 4 filas, abaixo dos
     1200px) os quadrados ficam um pouco maiores. */
  --tipo-titulo:clamp(22px,2.4vw,32px);
  /* O respiro de um título de secção: a distância do início do fundo da secção ao título
     é a MESMA que vai do título ao conteúdo (pedido do cliente a 2026-09-21, com traços
     numa captura: "os títulos têm de ter a mesma distância da parte de cima do fundo e do
     conteúdo"). Uma só medida para a página toda, usada em cima e em baixo do título nos
     projetos, nas distinções, nos parceiros e nas notícias, e como padding dos números.
     O que sobra do ecrã numa secção de ecrã inteiro vai para o FIM dela, nunca para cima
     do título. O teto (5vh) é o que deixa o fecho — distinções + parceiros — caber num
     ecrã de 900px: são cinco respiros seguidos nessa altura. */
  --respiro:clamp(28px,5vh,64px);
  /* O corpo do <h1> de uma PÁGINA — a afirmação que a abre. Vive aqui e não em cada
     folha porque é o mesmo papel em páginas diferentes: o hero da inicial e a capa das
     interiores. Estiveram em 54px e 70px, cada um na sua folha, e ninguém tinha decidido
     que fossem diferentes — divergiram sozinhos, que é o que dois números parecidos
     escritos em dois sítios fazem sempre (a mesma razão do `--tipo-titulo`, de setembro).
     NÃO é o `--tipo-titulo`: esse é dos títulos de SECÇÃO (<h2>), e um <h1> de página tem
     outro peso e outra escala. */
  --tipo-h1:clamp(26px,4.2vw,54px);
}
*{box-sizing:border-box}
html{color-scheme:light}
/* Sem overflow no body: qualquer valor diferente de visible aqui faz do body o
   contentor de scroll da navbar e o position:sticky deixa de prender. O corte horizontal
   e feito no .hero, que e quem tem conteudo a transbordar. */
body{margin:0;background:var(--fundo);color:var(--ink);font-family:var(--fonte);-webkit-font-smoothing:antialiased}
/* Sprite dos ícones: fica no documento para o <use> lhe chegar, mas sem ocupar
   espaço nem aparecer. `display:none` aqui parte o <use> em alguns motores. */
.sprite{position:absolute;width:0;height:0;overflow:hidden}
/* Botões. Vivem aqui e não no `home.css` desde 2026-09-22: começaram no hero, mas são
   hoje os mesmos do convite e das páginas interiores — e essas não carregam a folha da
   homepage, por isso apareciam como links sublinhados. As cores são as de fundo ESCURO
   (é o do site); sobre branco, quem os usa troca-as, como faz a regra `.convite .btn`. */
.btn{display:inline-block;text-decoration:none;border-radius:999px;padding:13px 28px;font-size:15px;font-weight:500;letter-spacing:.02em;transition:background .25s,color .25s,box-shadow .25s}
.btn.primario{background:var(--ink);color:var(--fundo)}
.btn.primario:hover{background:transparent;color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink)}
.btn.secundario{color:var(--ink);box-shadow:inset 0 0 0 1px rgba(255,255,255,.35)}
.btn.secundario:hover{box-shadow:inset 0 0 0 1px var(--ink)}

/* Entrada em fade do que traz `data-revelar` (ver `js/revelar.js`). Só OPACIDADE, sem o
   deslocamento que as métricas dos Resultados levam: foi o que o cliente escolheu depois
   de ver e recusar outras entradas. Quem esconde é o script, que põe o `a-revelar` ao
   arrancar — sem JavaScript ou com movimento reduzido estas duas regras não chegam a
   apanhar nada e o conteúdo está à vista.

   1,8s e não os 0,9s da primeira versão: o cliente disse que "às vezes nem se nota que
   tem". A DURAÇÃO era só metade do problema — a curva era a outra. Com `ease`, que
   arranca depressa, os primeiros 30% da opacidade passavam em três décimos e o resto era
   uma cauda longa já quase opaca, que não se vê. Esta curva segura o princípio e sobe a
   meio, que é onde a passagem se lê. O limiar do observador subiu com ela (ver o
   `revelar.js`): a começar cedo de mais, o fade acabava antes de a secção estar à vista. */
.a-revelar{opacity:0}
.a-revelar.visivel{opacity:1;transition:opacity 1.8s cubic-bezier(.35,0,.35,1)}


/* Texto só para leitores de ecrã: fica no fluxo de leitura, mas fora da vista. */
.so-leitor{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;
  clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* ---------- Barra de navegação ---------- */
/* Mesma cor do fundo; ao dar scroll ganha borda e sombra subtis. */
.navbar{position:sticky;top:0;z-index:900;background:transparent;
  border-bottom:1px solid transparent;transition:box-shadow .3s,border-color .3s}
.navbar.presa{background:var(--fundo);border-bottom-color:rgba(255,255,255,.12);box-shadow:0 6px 24px rgba(0,0,0,.35)}
/* Páginas BRANCAS (`<body class="pagina-clara">`: Serviços e Notícias). O `body` do site é
   verde escuro com texto branco; estas trocam-no. E a BARRA não pode ser transparente
   nelas: no topo da página ficariam o logótipo e os links brancos sobre branco —
   invisíveis. Fica com o aspeto que tem quando se prende, e assim também não salta ao dar
   o primeiro scroll. Nasceu no `servicos.css` (2026-09-24) com a nota de que qualquer
   página clara ia precisar do mesmo; passou para aqui quando a segunda chegou. */
.pagina-clara{background:#fff;color:var(--fundo)}
.pagina-clara .navbar{background:var(--fundo);border-bottom-color:rgba(255,255,255,.12);
  box-shadow:0 6px 24px rgba(0,0,0,.35)}
/* A altura da navbar tem de ser constante: o hero mede-se a partir dela, por isso
   qualquer mudanca de altura ao prender-se punha a pagina a oscilar. So muda a cor. */
.navbar .interior{position:relative;max-width:1280px;margin:0 auto;display:flex;align-items:center;
  justify-content:space-between;gap:24px;padding:14px clamp(16px,4vw,40px)}
.logo{display:block;line-height:0}
.logo img{width:clamp(104px,10vw,132px);height:auto;display:block}

.menu{display:flex;align-items:center;gap:clamp(14px,2.4vw,34px);list-style:none;margin:0;padding:0}
.menu a{color:var(--ink);text-decoration:none;font-size:15px;font-weight:300;letter-spacing:.03em;
  padding:6px 2px;position:relative;white-space:nowrap}
.menu a::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--ink);
  transform:scaleX(0);transform-origin:left;transition:transform .25s}
.menu a:hover::after,.menu a:focus-visible::after,.menu a[aria-current]::after{transform:scaleX(1)}
.menu .cta a{border:1px solid var(--ink);border-radius:999px;padding:8px 18px;font-weight:400}
.menu .cta a::after{display:none}
.menu .cta a:hover{background:var(--ink);color:var(--fundo)}
/* Dentro do Portal Cliente, a pastilha fica CHEIA — o traço por baixo, que marca a página
   atual nos outros links, está desligado nela. */
.menu .cta a[aria-current]{background:var(--ink);color:var(--fundo)}

/* O botão da língua (2026-09-30): "EN" na página portuguesa, "PT" na inglesa. Vive dentro
   da `<nav>` mas FORA do `.menu`, por isso a `<nav>` passa a alinhar os dois numa linha.
   É de propósito mais discreto do que os links do menu (letra menor, esbatido): é um
   comando da página e não um destino — e ao lado da pastilha do "Portal Cliente" uma
   segunda pastilha competia com ela. O traço por baixo é o mesmo dos links do menu. */
.navbar nav{display:flex;align-items:center;gap:clamp(12px,1.8vw,24px)}
.lingua{color:var(--ink);text-decoration:none;font-size:13px;font-weight:400;letter-spacing:.12em;
  padding:6px 2px;position:relative;white-space:nowrap;opacity:.85;transition:opacity .2s}
.lingua:hover,.lingua:focus-visible{opacity:1}
.lingua::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--ink);
  transform:scaleX(0);transform-origin:left;transition:transform .25s}
.lingua:hover::after,.lingua:focus-visible::after{transform:scaleX(1)}

/* Botão hamburger (só em ecrãs estreitos) */
.hamburger{display:none;background:none;border:0;color:var(--ink);cursor:pointer;padding:8px;line-height:0}
.hamburger span{display:block;width:24px;height:2px;background:var(--ink);border-radius:2px;transition:transform .3s,opacity .2s}
.hamburger span + span{margin-top:6px}
.hamburger[aria-expanded=true] span:nth-child(1){transform:translateY(8px) rotate(45deg)}
.hamburger[aria-expanded=true] span:nth-child(2){opacity:0}
.hamburger[aria-expanded=true] span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}

/* Telemóvel (2026-09-23, pedido do cliente): o hamburger à ESQUERDA e o logótipo ao MEIO.
   A barra passa a uma grelha de três colunas iguais nas pontas (`1fr auto 1fr`): o botão
   na primeira, o logótipo na do meio e a `<nav>` — que fechada não ocupa nada, porque a
   gaveta é absoluta — na terceira. São as duas colunas de fora IGUAIS que centram o
   logótipo no ecrã e não só no espaço que sobra do botão. A ordem no HTML não muda
   (logótipo, botão, nav): quem os põe no sítio é a coluna da grelha. */
@media (max-width:720px){
  .navbar .interior{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:12px}
  /* `grid-row:1` nos três é obrigatório: com a coluna definida e a linha automática, a
     grelha manda para a linha SEGUINTE um item cuja coluna é menor do que a do anterior
     (o botão vem depois do logótipo no HTML e fica à esquerda dele) — o hamburger caía
     para uma segunda linha e a barra crescia de 63 para 108px. */
  .hamburger{display:block;grid-column:1;grid-row:1;justify-self:start;margin-left:-8px}
  .logo{grid-column:2;grid-row:1}
  .navbar nav{grid-column:3;grid-row:1;justify-self:end}
  /* O botão da língua é o que a `<nav>` mostra na barra do telemóvel: a gaveta é absoluta
     e não ocupa lugar. Fica sempre à vista, à direita, sem abrir o menu. A área de toque
     cresce para 40x40 (o texto é pequeno, e "PT" é mais estreito do que "EN"), e as
     margens negativas desfazem esse crescimento no layout: a da direita devolve o
     alinhamento com a borda, as de cima e de baixo impedem o botão de ser o mais alto da
     barra — sem elas a barra passava de 63 para 69px, e o hero mede-se a partir dela. */
  .lingua{font-size:14px;padding:10px 8px;min-width:40px;text-align:center;
    margin:-4px -8px -4px 0;opacity:.85}
  .lingua::after{display:none}
  /* A gaveta ABRE com animação: já não é `display:none` -> `display:flex` (que não se
     anima), é sempre flex e o que muda é a visibilidade, a opacidade e um deslize de
     10px de cima para baixo; as entradas chegam uma a uma, com 40ms entre cada. A
     `visibility` fica a transitar com ATRASO ao fechar (para o fade se ver) e sem atraso
     ao abrir; é ela que tira os links da ordem de tabulação enquanto a gaveta está
     fechada — o mesmo que o `display:none` fazia. */
  .menu{display:flex;position:absolute;left:0;right:0;top:100%;flex-direction:column;align-items:stretch;
    gap:0;background:var(--fundo);border-bottom:1px solid rgba(255,255,255,.12);
    box-shadow:0 18px 30px rgba(0,0,0,.28);
    padding:6px clamp(16px,4vw,40px) 18px;
    visibility:hidden;opacity:0;transform:translateY(-10px);pointer-events:none;
    transition:opacity .28s ease,transform .32s cubic-bezier(.2,.8,.2,1),visibility 0s .32s}
  .menu.aberto{visibility:visible;opacity:1;transform:none;pointer-events:auto;
    transition:opacity .28s ease,transform .32s cubic-bezier(.2,.8,.2,1),visibility 0s}
  .menu li{opacity:0;transform:translateY(-8px);
    transition:opacity .28s ease,transform .32s cubic-bezier(.2,.8,.2,1)}
  .menu.aberto li{opacity:1;transform:none}
  .menu.aberto li:nth-child(1){transition-delay:.04s}
  .menu.aberto li:nth-child(2){transition-delay:.08s}
  .menu.aberto li:nth-child(3){transition-delay:.12s}
  .menu.aberto li:nth-child(4){transition-delay:.16s}
  .menu.aberto li:nth-child(5){transition-delay:.20s}
  .menu a{display:block;padding:13px 0;font-size:16px}
  .menu li + li a{border-top:1px solid rgba(255,255,255,.08)}
  .menu a::after{display:none}
  .menu .cta a{text-align:center;margin-top:10px;border-top:1px solid var(--ink)}
}
@media (prefers-reduced-motion:reduce){
  .menu,.menu li,.hamburger span,.lingua,.lingua::after{transition:none}
}

/* ---------- Rodapé ---------- */
/* Fecha todas as páginas (entra no `base.html`, a seguir ao conteúdo).
   Arranjo "Campos", escolhido pelo cliente a 2026-09-18 de entre quatro que viu em
   artefacto: a marca com as redes à esquerda e os dados em colunas CURTAS — email,
   telefone, morada e horário —, cada uma com o seu rótulo e no máximo DUAS linhas.

   As duas coisas que o definem:
   - Não leva navegação. A barra de cima é `sticky` e está sempre à vista, por isso
     repeti-la aqui era dizer a mesma coisa em dois sítios.
   - A altura é o número de LINHAS, não a folga. Foi por isso que o conteúdo se repartiu
     por quatro colunas curtas em vez de dois blocos: mede 249px numa janela de 1440,
     contra os 305px dos mesmos dados em dois blocos e os 400px da versão com navegação.
     Quem lhe acrescentar uma terceira linha a qualquer campo paga-a no rodapé inteiro.

   Vem a seguir à secção das notícias, que também é verde: daí o fio no topo, que é o que
   as separa. Numa página que acabe em branco, o fio deixa de ser preciso. */
.rodape{position:relative;z-index:2;
  background:var(--fundo);color:var(--ink);border-top:1px solid rgba(255,255,255,.14);
  font-weight:300;font-size:15px;line-height:1.5;letter-spacing:.01em}
.rodape-interior{max-width:1280px;margin:0 auto;padding-inline:clamp(16px,4vw,40px)}
.rodape p{margin:0}
.rodape ul{list-style:none;margin:0;padding:0}
.rodape address{font-style:normal;line-height:1.5}
.rodape a{color:inherit;text-decoration:none}
.rodape a:focus-visible{outline:2px solid var(--ink);outline-offset:3px;border-radius:2px}

.rodape-fila{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;
  gap:28px clamp(24px,4vw,64px);padding:clamp(28px,4.5vh,46px) 0 clamp(24px,3.6vh,36px)}

.rodape-marca{display:flex;flex-direction:column;align-items:flex-start;gap:20px}
.rodape-logo{display:block;line-height:0}
.rodape-logo img{display:block;width:clamp(140px,12vw,168px);height:auto}

.rodape-redes{display:flex;align-items:center;gap:6px;margin-left:-4px}
.rodape-redes a{display:inline-flex;padding:4px;border-radius:999px;opacity:.88;transition:opacity .25s}
.rodape-redes a:hover,.rodape-redes a:focus-visible{opacity:1}
/* ARMADILHA: um `<svg>` inline tem `overflow:hidden` por omissão, por isso um
   `border-radius` NELE corta o desenho nos cantos — e o ponto do "i" do LinkedIn fica
   precisamente no canto superior esquerdo do seu quadrado de 24. Foi assim que ele
   apareceu cortado na primeira versão. O arredondamento fica no link, que tem folga. */
.rodape-redes svg{display:block;width:22px;height:22px;
  fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}

/* As quatro distinções no espaço que sobrava entre a marca e os campos (EXPERIÊNCIA de
   2026-09-24). Cada uma numa PASTILHA branca: sobre o verde do rodapé, o texto preto que
   lhes dá o nome desaparece — é o problema medido em setembro, e a pastilha é a saída que
   já então ficou registada como possível.
   A `.rodape-fila` é flex com `space-between`, por isso basta o bloco existir para ele
   ocupar o meio; não há posição nenhuma escrita à mão. */
.rodape-campos{display:flex;flex-wrap:wrap;gap:24px clamp(28px,3.6vw,64px)}
.rodape-campo{display:flex;flex-direction:column;align-items:flex-start;gap:4px}
.rodape-rotulo{display:block;font-size:12px;font-weight:400;letter-spacing:.08em;
  text-transform:uppercase;color:rgba(255,255,255,.66);margin-bottom:4px}

/* O "Ver no mapa", debaixo da morada desde 2026-09-22 (era um item da linha legal).
   Mais pequeno e esbatido do que a morada — é uma ação sobre ela, não um dado a ler —,
   e a cheio quando o rato lhe toca. O afastamento é maior do que o `gap` de 4px do campo
   para não se ler como uma TERCEIRA linha da morada. Custa ~26px de altura ao rodapé, que
   é o preço de qualquer linha nova aqui: o que faz um rodapé alto é o número de linhas e
   não as folgas — ver o registo das quatro versões de 2026-09-18. */
.rodape-mapa{margin-top:6px;font-size:13px;color:rgba(255,255,255,.66);
  transition:color .25s}
.rodape-mapa:hover,.rodape-mapa:focus-visible{color:#fff}

/* A cruz por cima do Instagram, do Facebook e do Twitter, que a empresa não tem. Vive
   DENTRO do `<svg>` e não por cima dele: herda a cor, acompanha o hover e não precisa de
   um elemento a fingir de cruz. Vai em duas camadas: a primeira é a mesma cruz na cor do
   FUNDO e mais grossa, que abre um sulco no desenho do ícone; a segunda é a cruz a
   branco, mais grossa do que o traço do ícone (2.2 contra 1.6). Sem o sulco, a cruz e o
   ícone eram a mesma linha branca — foi por isso que o traço único, que aqui esteve
   até 2026-09-23, quase não se via ("que se note bem a cruz"). Pontas retas na cruz,
   para não se confundir com os cantos redondos do desenho. */
/* A cruz passa LIGEIRAMENTE para fora do símbolo (de .5 a 23.5 na caixa de 24, onde os
   desenhos ficam entre 2 e 22) e vai a 80% de opacidade — pedido do cliente (2026-09-23),
   para se ler como uma anulação POR CIMA do símbolo e não como parte dele. O sulco fica
   opaco: é ele que separa a cruz do desenho. O `overflow:visible` é obrigatório para as
   pontas: um `<svg>` inline corta por omissão o que sai da caixa. */
.rodape-redes svg{overflow:visible}
.rodape-redes svg .rodape-cruz-fundo{stroke:var(--fundo);stroke-width:3.6;stroke-linecap:butt}
.rodape-redes svg .rodape-cruz{stroke-width:2.2;stroke-linecap:butt;opacity:.8}

/* O sublinhado que cresce da esquerda, o mesmo da navbar. Prefixado (`rodape-`) porque
   `.fio`, `.marca`, `.sub` e `.rotulo` já querem dizer outras coisas no `home.css`. */
.rodape-fio{position:relative;display:inline-block}
.rodape-fio::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:1px;
  background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .25s}
.rodape-fio:hover::after,.rodape-fio:focus-visible::after{transform:scaleX(1)}

.rodape-legal{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px 24px;
  font-size:13px;color:rgba(255,255,255,.66);
  padding:16px 0 clamp(16px,2.6vh,24px);border-top:1px solid rgba(255,255,255,.14)}
.rodape-legal ul{display:flex;flex-wrap:wrap;gap:6px 22px}

/* Telemóvel (2026-09-23, queixa do cliente: "está muito grande e as coisas não estão bem
   organizadas"). Em coluna, o rodapé do computador media 455px num ecrã de 390: a marca
   em cima, as redes por baixo dela, os três campos uns a seguir aos outros e a linha legal
   em três linhas. Aqui arruma-se em quatro andares curtos:
   - a marca à esquerda e as redes à DIREITA, na mesma linha;
   - o email e o telefone lado a lado, cada um na sua coluna;
   - a morada por baixo, a toda a largura, com o "Ver no mapa" logo a seguir;
   - a linha legal numa coluna, sem o "Todos os direitos reservados" (ver o parcial).
   A regra de 2026-09-18 continua a valer — o que faz um rodapé alto é o número de
   LINHAS —, e é por isso que se juntam coisas na mesma linha em vez de se apertar
   folgas. Passa de 455 para ~320px. */
@media (max-width:640px){
  .rodape{font-size:14px}
  .rodape-fila{gap:22px;padding:22px 0 20px}
  .rodape-marca{width:100%;flex-direction:row;align-items:center;justify-content:space-between;gap:16px}
  .rodape-logo img{width:132px}
  .rodape-redes{margin-left:0;margin-right:-4px}
  .rodape-campos{width:100%;display:grid;grid-template-columns:1fr 1fr;gap:18px 16px}
  .rodape-campo:last-child{grid-column:1 / -1}
  .rodape-rotulo{margin-bottom:2px;font-size:11px}
  .rodape-mapa{margin-top:4px;font-size:12px}
  .rodape-legal{flex-direction:column;gap:8px;padding:14px 0 18px;font-size:12px}
  .rodape-legal ul{gap:6px 16px}
  .rodape-direitos{display:none}
}

/* ---------- A chamada ao contacto que fecha as páginas interiores ----------
   Nasceu na página de Serviços (2026-09-25) e passou para aqui a 2026-09-28, quando a
   Sobre passou a usar o mesmo bloco. Vive sobre fundo BRANCO: daí os botões com as cores
   trocadas em relação aos `.btn` do hero. */
/* ---------------------------------------------------------------- o fecho
   A página acabava no último cartão: quem lesse os serviços e ficasse convencido não
   tinha para onde ir. O véu é o mesmo da capa, com outra forma — aqui o bloco é mais
   alto do que largo. */
/* A cor do texto vai declarada porque a secção é sempre BRANCA e o `body` do site é verde
   com texto branco: na página Sobre, que não troca a cor do `body` como a de Serviços, o
   título saía branco sobre branco — invisível. Apanhado numa captura a 2026-09-28. */
.chamada{position:relative;z-index:1;color:var(--fundo);
  padding:clamp(70px,13vh,140px) clamp(16px,4vw,40px)}
.chamada-veu{position:absolute;inset:0;z-index:0;pointer-events:none;
  background:radial-gradient(ellipse 46% 62% at 50% 50%,
    #fff 0%,#fff 52%,rgba(255,255,255,.86) 74%,rgba(255,255,255,0) 100%)}
.chamada-interior{position:relative;z-index:1;display:grid;justify-items:center;
  gap:clamp(16px,2.4vh,28px);text-align:center}
.chamada h2{margin:0;max-width:20ch;text-wrap:balance;text-transform:uppercase;
  font-weight:200;letter-spacing:.02em;line-height:1.12;font-size:clamp(26px,3.4vw,44px)}
.chamada p{margin:0;max-width:52ch;text-wrap:balance;
  font-size:clamp(15px,1.25vw,18px);font-weight:300;line-height:1.66;
  color:rgba(2,36,37,.72)}
.chamada-botoes{display:flex;flex-wrap:wrap;gap:12px;justify-content:center}

/* Os `.btn` do `base.css` são feitos para secções ESCURAS: usam o branco como cor do
   texto e o verde como fundo. Numa página branca ficariam brancos sobre branco, por isso
   levam aqui as cores trocadas. */
.chamada .btn.primario{background:var(--fundo);color:#fff}
.chamada .btn.primario:hover{background:transparent;color:var(--fundo);
  box-shadow:inset 0 0 0 1px var(--fundo)}
.chamada .btn.secundario{color:var(--fundo);box-shadow:inset 0 0 0 1px rgba(2,36,37,.3)}
.chamada .btn.secundario:hover{box-shadow:inset 0 0 0 1px var(--fundo)}
