/* ============================================================
   FOOTER — o CSS do rodapé modular, numa fonte só
   ------------------------------------------------------------
   O CONTEÚDO do rodapé já vinha de um arquivo só (embed/footer.html,
   injetado por js/embed.js). O ESTILO, não: a home tinha uma cópia, as
   quinze páginas de mestrado tinham outra, e a página de programas não
   tinha nenhuma — por isso ela nasceu com o rodapé claro, o fundo do tema
   em vez do azul quase preto, e o escudo branco invisível sobre ele
   (16/9/2026).

   Este arquivo é a cópia da home, que é a que casa com a marcação atual.
   Carregue-o DEPOIS de css/agtu.css, que é quem define o .footer base:

     <link rel="stylesheet" href="css/agtu.css" />
     <link rel="stylesheet" href="css/footer.css" />

   O rodapé é escuro nos dois temas, então as cores são explícitas e não
   tokens: um token viraria claro no tema claro e apagaria o texto.

   As páginas de mestrado continuam com a cópia local delas; trocá-las por
   este arquivo é uma limpeza para outro dia, e está em
   RULES/HOME-INVENTARIO.md.
   ============================================================ */

/* ============================================================
   RODAPÉ — o modular de embed/footer.html, com o mesmo visual das
   páginas de mestrado: escuro nos dois temas (cores explícitas, não
   tokens), o escudo grande, as cinco colunas, o bloco de disclosures.
   ============================================================ */
.footer { position:relative; overflow:hidden; border-top:0; background:#070d1c; color:#b9c4da; }
/* O ESCUDO NO FIM DO RODAPÉ (16/9/2026, pedido do Carlos): centrado, no
   pé, com a ponta saindo pela borda de baixo — é a última coisa da página
   e fecha como assinatura. Pequeno de propósito: grande, ele caía sobre a
   lista de disclosures e as listras do "E" viravam caixas soltas no meio
   do texto. Máscara, não imagem, então a cor vem do CSS. O caminho é
   absoluto porque este arquivo serve páginas em profundidades diferentes
   (/en/, /programs.html, /programs/<curso>/). */
.footer::after {
  content:""; position:absolute; z-index:0; pointer-events:none;
  left:50%; bottom:-10%; transform:translateX(-50%);
  width:min(30vw, 340px); aspect-ratio:181.49/208.19;
  background:#8fc2ff; opacity:.06;
  -webkit-mask:url("/logos/agtu-crest-outline.svg") center/contain no-repeat;
          mask:url("/logos/agtu-crest-outline.svg") center/contain no-repeat;
}
.footer > .wrap { position:relative; z-index:1; }
.footer h5, .footer h3 { color:#8fa0c0; font-size:.78rem; letter-spacing:.14em; text-transform:uppercase; margin:0 0 14px; font-weight:700; }
.footer ul { list-style:none; margin:0; padding:0; }
.footer ul a, .footer .about p, .footer address { color:#aab6cf; }
.footer ul a:hover { color:#8fc2ff; }
.footer .lic { color:#7f8caa; }
.footer .about .footer-shield { opacity:.8; filter:none; }
.footer-contact .fc-k { display:block; font-size:.7rem; letter-spacing:.12em; text-transform:uppercase; color:#7f8caa; margin-bottom:2px; }
.footer address { margin-top:14px; }
.footer-social a { color:#aab6cf; }
.footer-social a:hover { color:#fff; }
.footer-tm { color:#7f8caa; }
.footer-bottom { border-top:0; color:#8fa0c0; background-image:linear-gradient(90deg, transparent, rgba(255,255,255,.16) 22%, rgba(255,255,255,.16) 78%, transparent); background-size:100% 1px; background-repeat:no-repeat; background-position:top; }
/* no desktop as quatro colunas de links esticam até a altura da coluna
   do escudo e distribuem os itens — sem o vazio embaixo das listas */
@media (min-width:769px){
  .footer { padding-top:64px; }
  /* a coluna do escudo fica com escudo + missão; a linha de licença sai
     dela e atravessa a grade inteira logo abaixo, como texto legal — é o
     que deixa as cinco colunas na mesma faixa de altura */
  .footer-grid { grid-template-rows:auto auto; row-gap:30px; }
  .footer .about { display:contents; }
  .footer .about .footer-shield { grid-column:1; grid-row:1; height:150px; margin:0 0 20px; align-self:start; }
  .footer .about p:not(.lic) { grid-column:1; grid-row:1; margin-top:170px; max-width:38ch; }
  .footer .about p.lic { grid-column:1 / -1; grid-row:2; max-width:none; margin:0; padding-top:22px; border-top:1px solid rgba(255,255,255,.08); font-size:.82rem; line-height:1.6; }
  .footer h5 { margin-bottom:24px; }
  .footer-grid > div:not(.about) > ul { display:flex; flex-direction:column; gap:24px; }
  .footer-grid > div:not(.about) > ul > li { margin:0; line-height:1.45; }
  .footer-contact .fc-k { margin-bottom:4px; }
  .footer address { margin-top:22px; line-height:1.6; }
}
.footer-disclosures { margin-top:34px; padding-top:26px; border-top:1px solid rgba(255,255,255,.10); }
.footer-disclosures h5 { margin:0 0 10px; }
.footer-disclosures .fd-note { max-width:70ch; margin:0 0 18px; font-size:.82rem; line-height:1.6; color:#8fa0c0; }
.footer-disclosures .fd-list { display:grid; gap:8px 30px; margin:0; padding:0; list-style:none; grid-template-columns:repeat(auto-fill, minmax(230px, 1fr)); }
.footer-disclosures .fd-list a { font-size:.85rem; line-height:1.45; color:#c2cde3; border-bottom:1px solid transparent; }
.footer-disclosures .fd-list a:hover { color:#8fc2ff; border-bottom-color:rgba(143,194,255,.5); }
@media (max-width:768px){
  .footer-grid { display:grid; grid-template-columns:1fr; gap:22px; justify-items:start; }
  .footer-grid > div { width:100%; align-self:start; }
  .footer .about .footer-shield { height:150px; margin:0 auto 18px; }
  .footer h5, .footer h3 { margin-bottom:4px; font-size:.66rem; }
  .footer-grid ul li { margin:0; }
  .footer-grid ul li a { display:inline-flex; align-items:center; min-height:34px; font-size:.85rem; line-height:1.3; padding:4px 0; }
  .footer .about p { margin-bottom:10px; }
  .footer .about p:last-of-type { font-size:.8rem; }
  .footer address { font-size:.86rem; line-height:1.5; }
  .footer-bottom { margin-top:22px; padding-top:18px; flex-direction:column; gap:10px; align-items:flex-start; }
  .footer-disclosures { margin-top:26px; padding-top:22px; }
  .footer-disclosures .fd-list { grid-template-columns:1fr; gap:0; }
  .footer-disclosures .fd-list li { border-bottom:1px solid rgba(255,255,255,.07); }
  .footer-disclosures .fd-list a { display:block; padding:12px 0; }
  .footer-disclosures .fd-list li:last-child { border-bottom:0; }
}

/* /pt no celular (31/10/2026, print do Carlos): o brasão de 150px
   centralizado ficava solto sobre o texto alinhado à esquerda. No /pt ele
   acompanha o texto; o /en continua como estava */
@media (max-width:768px) {
  html[lang="pt-BR"] .footer .about .footer-shield { height:96px; margin:0 0 18px; }
}
