/* =====================================================================
   LAGEN — folha de estilos
   Cores, fontes e medidas ficam nas variáveis de :root, logo abaixo.
   Para ajustar a identidade visual, mude só ali.

   Motivo gráfico: o "anel" — filete duplo em vinho, eco dos anéis do
   selo. Aparece sob o cabeçalho, no topo do rodapé e na moldura do
   painel do processo seletivo. Não espalhe por outros lugares.
   ===================================================================== */

:root {
  --vinho: #6b1d2a;
  --vinho-escuro: #4e1320;
  --pergaminho: #f1e7d3;
  --pergaminho-claro: #f8f2e7;
  --tinta: #211a19;
  --grafite: #625958;
  --linha: #e2d6c1;
  --papel: #ffffff;

  --fonte-titulo: "Marcellus", "Cormorant Garamond", Georgia, "Times New Roman", serif;
  --fonte-texto: "Libre Franklin", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;

  --largura: 72rem;                   /* largura máxima do conteúdo */
  --medida: 62ch;                     /* comprimento de linha do texto corrido */
  --margem: clamp(1rem, 4vw, 2rem);   /* respiro lateral */
  --raio: 3px;
}

/* ---------------------------------------------------------------------
   Base
   --------------------------------------------------------------------- */

*, *::before, *::after { box-sizing: border-box; }
[hidden] { display: none !important; }

html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }

@media (prefers-reduced-motion: no-preference) {
  html { scroll-behavior: smooth; }
}

body {
  margin: 0;
  background: var(--papel);
  color: var(--tinta);
  font-family: var(--fonte-texto);
  font-size: 1.0625rem;
  line-height: 1.6;
}

h1, h2, h3 {
  margin: 0 0 .5em;
  font-family: var(--fonte-titulo);
  font-weight: 400;            /* a Marcellus só tem um peso */
  line-height: 1.15;
  color: var(--tinta);
  text-wrap: balance;
}
h1 { font-size: clamp(2rem, 1.55rem + 1.9vw, 3rem); }
h2 { font-size: clamp(1.5rem, 1.3rem + .8vw, 1.875rem); }
h3 { font-size: 1.25rem; }
h4, h5, h6 { margin: 1.5em 0 .5em; font-size: 1rem; font-weight: 600; }

p, ul, ol, dl { margin: 0 0 1em; }
strong, b { font-weight: 600; }

a {
  color: var(--vinho);
  text-decoration-thickness: 1px;
  text-underline-offset: .18em;
}
a:hover { color: var(--vinho-escuro); text-decoration-thickness: 2px; }

img { display: block; max-width: 100%; height: auto; }

:focus-visible { outline: 2px solid var(--vinho); outline-offset: 3px; }
main:focus { outline: none; }
:target { scroll-margin-top: 1.25rem; }

.container {
  width: min(100% - 2 * var(--margem), var(--largura));
  margin-inline: auto;
}

/* Texto só para leitores de tela */
.sr {
  position: absolute !important;
  width: 1px; height: 1px;
  margin: -1px; padding: 0; border: 0;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  white-space: nowrap;
}

/* "Pular para o conteúdo": aparece só ao navegar pelo teclado */
.pular {
  position: absolute;
  top: -10rem;
  left: var(--margem);
  z-index: 100;
  padding: .6rem 1rem;
  background: var(--tinta);
  color: var(--papel);
  text-decoration: none;
}
.pular:focus { top: .75rem; color: var(--papel); }

.vazio { color: var(--grafite); font-style: italic; }

/* ---------------------------------------------------------------------
   Mural de avisos (faixa no topo de todas as páginas)
   --------------------------------------------------------------------- */

.aviso { font-size: .975rem; line-height: 1.45; }
.aviso p { margin-block: 0; padding-block: .7rem; }
.aviso--urgente { background: var(--vinho); color: var(--pergaminho-claro); }
.aviso--urgente a { color: inherit; }
.aviso--urgente a:hover { color: var(--papel); }
.aviso--urgente :focus-visible { outline-color: var(--pergaminho-claro); }
.aviso--info { background: var(--pergaminho); color: var(--tinta); }
.aviso--info a { color: var(--vinho-escuro); }
.aviso + .aviso { border-top: 1px solid rgba(255, 255, 255, .3); }

/* ---------------------------------------------------------------------
   Cabeçalho e menu
   --------------------------------------------------------------------- */

.topo { background: var(--papel); }

.topo__barra {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: .75rem 2rem;
  padding-block: .9rem;
}

.marca {
  display: flex;
  flex: 0 1 auto;
  min-width: 0;
  align-items: center;
  gap: .75rem;
  color: var(--tinta);
  text-decoration: none;
}
.marca:hover { color: var(--tinta); }
.marca__selo { flex: none; width: 52px; height: 52px; }
.marca__texto { display: flex; flex-direction: column; min-width: 0; }
.marca__sigla {
  font-family: var(--fonte-titulo);
  font-size: 1.625rem;
  line-height: 1;
  letter-spacing: .08em;       /* caixa-alta pede espacejamento */
  color: var(--vinho);
}
.marca__nome {
  max-width: 16rem;
  margin-top: .3rem;
  font-size: .78rem;
  line-height: 1.3;
  color: var(--grafite);
}

.menu ul {
  display: flex;
  flex-wrap: wrap;
  gap: .25rem 1.75rem;
  margin: 0;
  padding: 0;
  list-style: none;
}
.menu a {
  display: block;
  padding-block: .35rem;
  border-bottom: 2px solid transparent;
  color: var(--tinta);
  font-weight: 500;
  text-decoration: none;
}
.menu a:hover { color: var(--vinho); border-bottom-color: var(--linha); }
.menu a[aria-current="page"],
.menu a.ativo { color: var(--vinho); border-bottom-color: var(--vinho); }

.menu-botao { display: none; }

.menu-botao__icone,
.menu-botao__icone::before,
.menu-botao__icone::after {
  display: block;
  width: 18px;
  height: 2px;
  background: currentColor;
  transition: transform .2s ease, background-color .2s ease;
}
.menu-botao__icone { position: relative; }
.menu-botao__icone::before,
.menu-botao__icone::after { content: ""; position: absolute; left: 0; }
.menu-botao__icone::before { top: -6px; }
.menu-botao__icone::after { top: 6px; }
.menu-botao[aria-expanded="true"] .menu-botao__icone { background-color: transparent; }
.menu-botao[aria-expanded="true"] .menu-botao__icone::before { transform: translateY(6px) rotate(45deg); }
.menu-botao[aria-expanded="true"] .menu-botao__icone::after { transform: translateY(-6px) rotate(-45deg); }

/* Celular e tablet: menu recolhido atrás do botão (só com JavaScript;
   sem ele, os links aparecem abertos embaixo da marca). */
@media (max-width: 54.99rem) {
  .js .topo__barra {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    column-gap: 1rem;
  }
  .js .marca { justify-self: start; }
  .js .menu { grid-column: 1 / -1; }
  .js .menu-botao {
    display: inline-flex;
    flex: none;
    align-items: center;
    gap: .6rem;
    padding: .55rem .85rem;
    border: 1px solid var(--linha);
    border-radius: var(--raio);
    background: var(--papel);
    color: var(--tinta);
    font: inherit;
    font-weight: 500;
    cursor: pointer;
  }
  .js .menu { display: none; }
  .js .menu.aberto { display: block; }
  .js .menu ul { flex-direction: column; gap: 0; border-top: 1px solid var(--linha); }
  .js .menu li + li { border-top: 1px solid var(--linha); }
  .js .menu a {
    padding: .8rem .75rem;
    border-bottom: 0;
    border-left: 3px solid transparent;
  }
  .js .menu a[aria-current="page"],
  .js .menu a.ativo { border-left-color: var(--vinho); }
}

@media (max-width: 21rem) {
  .marca__nome { display: none; }
}

@media (max-width: 34rem) {
  .subnav ul { gap: 0 1.25rem; }
  .subnav a { padding-block: .4rem .5rem; }
}

/* O anel: filete duplo, eco dos anéis do selo */
.anel {
  height: 5px;
  border-top: 1px solid var(--vinho);
  border-bottom: 1px solid var(--vinho);
}

/* ---------------------------------------------------------------------
   Páginas internas
   --------------------------------------------------------------------- */

.cabecalho-pagina {
  padding-block: clamp(2rem, 5vw, 3.5rem) clamp(1.5rem, 3vw, 2.25rem);
  border-bottom: 1px solid var(--linha);
}
.cabecalho-pagina:has(.subnav) { padding-bottom: 0; }
.cabecalho-pagina h1 { margin-bottom: .35em; }

.intro {
  max-width: 52ch;
  margin: 0;
  font-size: 1.125rem;
  color: var(--grafite);
}

.subnav { margin-top: 1.75rem; }
.subnav ul {
  display: flex;
  flex-wrap: wrap;
  gap: 0 1.75rem;
  margin: 0;
  padding: 0;
  list-style: none;
}
.subnav a {
  display: block;
  padding: .55rem 0 .7rem;
  border-bottom: 2px solid transparent;
  color: var(--grafite);
  font-size: .95rem;
  font-weight: 500;
  text-decoration: none;
}
.subnav a:hover { color: var(--vinho); border-bottom-color: var(--linha); }
.subnav a[aria-current="page"] { color: var(--vinho); border-bottom-color: var(--vinho); }

.conteudo { padding-block: clamp(2rem, 5vw, 3.5rem) clamp(3.5rem, 8vw, 6rem); }

.conteudo > p,
.conteudo > ul:not([class]),
.conteudo > ol:not([class]),
.conteudo > dl,
.conteudo > blockquote { max-width: var(--medida); }

.conteudo > ul:not([class]) li + li,
.conteudo > ol:not([class]) li + li { margin-top: .4em; }

.conteudo > h2 {
  margin-top: clamp(2.75rem, 6vw, 4rem);
  padding-top: 1.25rem;
  border-top: 1px solid var(--linha);
  color: var(--vinho);
}
.conteudo > h2:first-child,
.galeria-categoria:first-child { margin-top: 0; padding-top: 0; border-top: 0; }
.conteudo > h3 { margin-top: 2rem; }

/* Sumário automático (Painel de transparência) */
#markdown-toc {
  max-width: var(--medida);
  margin: 0 0 2.5rem;
  padding: 1rem 1.25rem 1rem 1.5rem;
  border-left: 3px solid var(--vinho);
  background: var(--pergaminho-claro);
  list-style: none;
}
#markdown-toc::before {
  content: "Sumário";
  display: block;
  margin-bottom: .35rem;
  font-weight: 600;
}
#markdown-toc li { margin: .2rem 0; }
#markdown-toc ul { padding-left: 1rem; list-style: none; }

/* Destaque de texto dentro do conteúdo:  parágrafo + {: .nota} */
.nota {
  padding: .9rem 1.1rem;
  border-left: 3px solid var(--vinho);
  background: var(--pergaminho-claro);
  font-size: .975rem;
}

/* ---------------------------------------------------------------------
   Botões
   --------------------------------------------------------------------- */

.botoes { display: flex; flex-wrap: wrap; gap: .75rem; margin: 1.75rem 0 0; }

.botao {
  display: inline-block;
  padding: .8rem 1.3rem;
  border: 1px solid var(--vinho);
  border-radius: var(--raio);
  background: var(--vinho);
  color: var(--papel);
  font-weight: 500;
  line-height: 1.2;
  text-decoration: none;
}
.botao:hover { border-color: var(--vinho-escuro); background: var(--vinho-escuro); color: var(--papel); }
.botao:focus-visible { outline-color: var(--tinta); }
.botao--secundario { background: transparent; color: var(--vinho); }
.botao--secundario:hover { background: var(--pergaminho-claro); color: var(--vinho-escuro); }

.botao-texto {
  padding: 0;
  border: 0;
  background: none;
  color: var(--vinho);
  font: inherit;
  font-weight: 500;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: .18em;
  cursor: pointer;
}
.botao-texto:hover { color: var(--vinho-escuro); text-decoration-thickness: 2px; }

/* ---------------------------------------------------------------------
   Página inicial: abertura
   --------------------------------------------------------------------- */

.abertura { padding-block: clamp(2.5rem, 7vw, 5rem) clamp(2.5rem, 6vw, 4rem); }

.abertura__grade { display: grid; gap: 2rem 4rem; align-items: center; }

.abertura h1 {
  max-width: 17ch;
  margin-bottom: .45em;
  font-size: clamp(2.25rem, 1.35rem + 3.3vw, 3.6rem);
  line-height: 1.08;
}

.abertura__chamada { max-width: 46ch; font-size: 1.15rem; color: var(--grafite); }
.abertura__chamada > :last-child { margin-bottom: 0; }

.abertura__selo { display: none; }

@media (min-width: 55rem) {
  .abertura__grade { grid-template-columns: minmax(0, 1fr) auto; }
  .abertura__selo { display: block; }
  .abertura__selo img { width: clamp(16rem, 27vw, 22.5rem); }
}

/* Bloco "Próxima aula" */
.proxima {
  max-width: 34rem;
  margin-top: 2.5rem;
  padding: .2rem 0 .2rem 1.25rem;
  border-left: 3px solid var(--vinho);
}
.proxima__titulo {
  margin: 0 0 .3rem;
  font-family: var(--fonte-texto);
  font-size: .95rem;
  font-weight: 600;
  line-height: 1.4;
  color: var(--vinho);
}
.proxima__item { display: block; color: var(--tinta); text-decoration: none; }
.proxima__item:hover { color: var(--tinta); }
.proxima__quando,
.proxima__local { display: block; font-size: .95rem; color: var(--grafite); }
.proxima__tema {
  display: block;
  margin: .15rem 0;
  font-family: var(--fonte-titulo);
  font-size: 1.4rem;
  line-height: 1.25;
}
.proxima__item:hover .proxima__tema {
  color: var(--vinho);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: .15em;
}

/* ---------------------------------------------------------------------
   Página inicial: processo seletivo
   --------------------------------------------------------------------- */

.selecao { padding-block: 0 clamp(3rem, 7vw, 5rem); }

.selecao__painel {
  display: grid;
  gap: 2rem 3rem;
  padding: clamp(1.75rem, 4vw, 3rem);
  border: 1px solid var(--vinho);
  outline: 1px solid var(--vinho);   /* segundo filete da moldura */
  outline-offset: -7px;
  background: var(--pergaminho);
}

@media (min-width: 55rem) {
  .selecao__painel { grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); align-items: start; }
  .selecao__painel--simples { grid-template-columns: minmax(0, 1fr); }
  .selecao__painel--aberto { grid-template-columns: minmax(0, 1fr) auto; align-items: center; }
}

.selecao h2 {
  margin: 0 0 .5rem;
  font-family: var(--fonte-texto);
  font-size: 1rem;
  font-weight: 600;
  line-height: 1.4;
  color: var(--vinho);
}
.selecao__status {
  margin: 0 0 .9rem;
  font-family: var(--fonte-titulo);
  font-size: clamp(1.85rem, 1.4rem + 1.7vw, 2.6rem);
  line-height: 1.1;
  color: var(--vinho);
  text-wrap: balance;
}
.selecao__prazo { margin: 0 0 .75rem; font-weight: 600; }
.selecao__texto > p { max-width: 48ch; }
.selecao__texto > :last-child { margin-bottom: 0; }
.selecao__alternativa { font-size: .95rem; }
.selecao__acoes { display: flex; flex-wrap: wrap; gap: .75rem; }
.selecao__form iframe {
  display: block;
  width: 100%;
  border: 0;
  border-radius: var(--raio);
  background: var(--papel);
}

/* ---------------------------------------------------------------------
   Página inicial: perguntas frequentes
   --------------------------------------------------------------------- */

.faq { padding-block: clamp(3rem, 7vw, 5rem); border-top: 1px solid var(--linha); }
.faq__grade { display: grid; gap: 1.5rem 4rem; }

@media (min-width: 55rem) {
  .faq__grade { grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); }
}

.faq__intro p { max-width: 32ch; color: var(--grafite); }
.faq__lista { border-bottom: 1px solid var(--linha); }
.faq__item { border-top: 1px solid var(--linha); }
.faq__item summary {
  position: relative;
  display: block;
  padding: 1.1rem 2.75rem 1.1rem 0;
  font-weight: 500;
  cursor: pointer;
  list-style: none;
}
.faq__item summary::-webkit-details-marker { display: none; }
.faq__item summary:hover { color: var(--vinho); }

/* Sinal de "+" que vira "−" ao abrir */
.faq__item summary::before,
.faq__item summary::after {
  content: "";
  position: absolute;
  top: 50%;
  right: .4rem;
  width: 14px;
  height: 2px;
  margin-top: -1px;
  background: var(--vinho);
  transition: transform .2s ease;
}
.faq__item summary::before { transform: rotate(90deg); }
.faq__item[open] summary::before { transform: rotate(0deg); }

.faq__resposta { max-width: var(--medida); padding: 0 2.75rem 1.25rem 0; color: var(--grafite); }
.faq__resposta > :last-child { margin-bottom: 0; }

/* ---------------------------------------------------------------------
   A Liga: diretoria
   --------------------------------------------------------------------- */

.diretoria {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 17rem), 1fr));
  gap: 0 2.5rem;
  margin: 1.5rem 0 0;
  padding: 0;
  list-style: none;
}
.diretor {
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: 1.1rem 0;
  border-top: 1px solid var(--linha);
}
.diretor__foto {
  flex: none;
  width: 68px;
  height: 68px;
  border-radius: 50%;
  object-fit: cover;
}
.diretor__foto--iniciais {
  display: grid;
  place-items: center;
  border: 1px solid var(--vinho);
  background: var(--pergaminho-claro);
  box-shadow: inset 0 0 0 3px var(--pergaminho-claro), inset 0 0 0 4px var(--vinho);
  color: var(--vinho);
  font-family: var(--fonte-titulo);
  font-size: 1.35rem;
  letter-spacing: .04em;
}
.diretor__dados { min-width: 0; }
.diretor__nome { margin: 0 0 .1rem; font-size: 1.2rem; }
.diretor__cargo { margin: 0; font-size: .95rem; color: var(--grafite); }
.diretor__contato {
  display: flex;
  flex-wrap: wrap;
  gap: 0 1rem;
  margin: .3rem 0 0;
  font-size: .9rem;
}
.diretor__contato a { overflow-wrap: anywhere; }

/* ---------------------------------------------------------------------
   Transparência: estatuto
   --------------------------------------------------------------------- */

.documento { margin: 1rem 0 1.5rem; }
.documento p { margin-bottom: .5rem; }
.documento__versao { font-size: .9rem; color: var(--grafite); }

/* ---------------------------------------------------------------------
   Ensino e Prática: cronograma
   --------------------------------------------------------------------- */

.cronograma-bloco { margin-top: 1.5rem; }
.cronograma__alternar { margin: 0 0 1rem; }

.cronograma {
  margin: 0 0 1rem;
  padding: 0;
  border-bottom: 1px solid var(--linha);
  list-style: none;
}
.cronograma--ocultar .aula--anterior { display: none; }

.aula {
  display: grid;
  grid-template-columns: 4.25rem minmax(0, 1fr);
  gap: 1.25rem;
  padding: 1.25rem 0;
  border-top: 1px solid var(--linha);
}
.aula__data { margin: 0; padding-top: .1rem; line-height: 1.15; text-align: center; }
.aula__dia {
  display: block;
  font-family: var(--fonte-titulo);
  font-size: 2.1rem;
  line-height: 1;
  color: var(--vinho);
}
.aula__mes { display: block; margin-top: .2rem; font-size: .9rem; font-weight: 600; color: var(--vinho); }
.aula__semana { display: block; font-size: .85rem; color: var(--grafite); }

.aula__tema { margin: 0 0 .5rem; font-size: 1.3rem; }
.aula__info { display: flex; flex-wrap: wrap; gap: .35rem 1.75rem; margin: 0; font-size: .95rem; }
.aula__info div { display: flex; gap: .4rem; }
.aula__info dt { color: var(--grafite); }
.aula__info dt::after { content: ":"; }
.aula__info dd { margin: 0; font-weight: 500; }
.aula__obs { margin: .5rem 0 0; font-size: .95rem; font-style: italic; color: var(--grafite); }

.aula--anterior,
.aula--anterior .aula__dia,
.aula--anterior .aula__mes,
.aula--anterior .aula__tema { color: var(--grafite); }

.aula--proxima {
  margin-inline: -1rem;
  padding-inline: 1rem;
  border-top-color: var(--vinho);
  background: var(--pergaminho-claro);
}
.aula__selo {
  display: inline-block;
  margin-bottom: .45rem;
  padding: .05rem .65rem;
  border: 1px solid var(--vinho);
  border-radius: 999px;
  background: var(--papel);
  color: var(--vinho);
  font-size: .8rem;
  font-weight: 600;
}
.aula--hoje .aula__selo { background: var(--vinho); color: var(--papel); }

/* Planilha e formulários incorporados */
.embed {
  margin: 1.5rem 0 .75rem;
  overflow: hidden;
  border: 1px solid var(--linha);
  border-radius: var(--raio);
  background: var(--papel);
}
.embed iframe { display: block; width: 100%; border: 0; }
.embed__alternativa { margin: 0; font-size: .95rem; }

/* ---------------------------------------------------------------------
   Ensino e Prática: biblioteca
   --------------------------------------------------------------------- */

.biblioteca__tipo { margin: 2rem 0 .35rem; font-size: 1.25rem; }

.biblioteca,
.fontes {
  max-width: 48rem;
  margin: 0;
  padding: 0;
  border-bottom: 1px solid var(--linha);
  list-style: none;
}
.material { padding: .9rem 0; border-top: 1px solid var(--linha); }
.material p { margin: 0; }
.material__titulo { font-size: 1.05rem; font-weight: 500; }
.material__formato {
  display: inline-block;
  margin-left: .35rem;
  padding: 0 .4rem;
  border: 1px solid var(--linha);
  border-radius: var(--raio);
  color: var(--grafite);
  font-size: .75rem;
  font-weight: 600;
  vertical-align: .1em;
}
.material__meta { margin-top: .15rem !important; font-size: .9rem; color: var(--grafite); }
.material__meta:empty { display: none; }
.material__descricao { margin-top: .35rem !important; font-size: .95rem; }
.fontes li { padding: .7rem 0; border-top: 1px solid var(--linha); }

/* ---------------------------------------------------------------------
   Galeria
   --------------------------------------------------------------------- */

.galeria-categoria {
  margin-top: clamp(2.75rem, 6vw, 4rem);
  padding-top: 1.25rem;
  border-top: 1px solid var(--linha);
}
.galeria-categoria h2 { color: var(--vinho); }

.albuns {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 16rem), 1fr));
  gap: 2rem 1.5rem;
  margin: 1.25rem 0 0;
  padding: 0;
  list-style: none;
}
.album__link { display: block; color: var(--tinta); text-decoration: none; }
.album__link:hover { color: var(--tinta); }
.album__capa {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 3;
  border-radius: var(--raio);
  background: var(--pergaminho-claro);
  object-fit: cover;
}
/* Álbum ainda sem capa: dois anéis finos, como no selo */
.album__capa--vazia {
  background:
    radial-gradient(circle at 50% 50%,
      transparent 0 38px,
      var(--vinho) 38px 39px,
      transparent 39.5px 44px,
      var(--vinho) 44px 45px,
      transparent 45.5px),
    var(--pergaminho-claro);
}
.album__titulo { display: block; margin-top: .7rem; font-weight: 500; line-height: 1.35; }
.album__meta { display: block; font-size: .9rem; color: var(--grafite); }
a.album__link:hover .album__titulo {
  color: var(--vinho);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: .15em;
}

/* ---------------------------------------------------------------------
   Rodapé
   --------------------------------------------------------------------- */

.rodape { background: var(--pergaminho); font-size: .95rem; }
.rodape a { color: var(--vinho-escuro); }

.rodape__grade { display: grid; gap: 2rem; padding-block: 2.5rem 2.25rem; }

@media (min-width: 48rem) {
  .rodape__grade { grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr) minmax(0, 1fr); }
}

.rodape__marca { display: flex; align-items: flex-start; gap: 1rem; }
.rodape__marca img { flex: none; width: 84px; height: 84px; }
.rodape__marca p { margin: 0; line-height: 1.5; }
.rodape__marca strong {
  font-family: var(--fonte-titulo);
  font-size: 1.35rem;
  font-weight: 400;
  letter-spacing: .08em;
  color: var(--vinho);
}
.rodape__links ul { display: grid; gap: .35rem; margin: 0; padding: 0; list-style: none; }
.rodape__links a { text-decoration: none; }
.rodape__links a:hover { text-decoration: underline; }
.rodape__contato p { margin: 0 0 .35rem; }
.rodape__contato a { overflow-wrap: anywhere; }
.rodape__atualizado { margin-top: 1rem !important; font-size: .875rem; color: var(--grafite); }
.rodape__responsaveis { margin-top: .35rem; font-size: .875rem; color: var(--grafite); }
.rodape__instagram-link { display: inline-flex; align-items: center; gap: .45rem; text-decoration: none; }
.rodape__instagram-icone { transition: transform .15s ease, color .15s ease; }
.rodape__instagram-link:hover, .rodape__instagram-link:focus-visible {
  text-decoration: underline;
}
.rodape__instagram-link:hover .rodape__instagram-icone,
.rodape__instagram-link:focus-visible .rodape__instagram-icone {
  color: var(--vinho);
  transform: scale(1.12);
}

/* ---------------------------------------------------------------------
   Movimento reduzido e impressão
   --------------------------------------------------------------------- */

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    transition: none !important;
    animation: none !important;
    scroll-behavior: auto !important;
  }
}

@media print {
  .avisos, .menu, .menu-botao, .subnav, .anel, .pular, .botoes,
  .rodape__links, .embed, .selecao__form, .cronograma__alternar { display: none !important; }
  body { font-size: 11pt; }
  a { color: inherit; }
  .cronograma--ocultar .aula--anterior { display: grid; }
  .rodape { background: none; }
}

/* Subseções dentro de uma categoria da galeria (ex.: Ações Comunitárias) */
.galeria-subsecao { margin-top: 2rem; }
.galeria-subsecao:first-child { margin-top: 1.25rem; }
.galeria-subsecao h3 { margin: 0 0 .25rem; color: var(--vinho); }
