/* Páginas institucionais — sistema visual comum (O Império, Casa Imperial,
   Chancelaria, Diplomacia, Nobreza, Nomeações). Cores e fontes do portal:
   azul, ouro e marfim; Cinzel, Cormorant Garamond e EB Garamond. */

.inst { --i-azul: var(--azul, #152035); --i-azul-m: var(--azul-medio, #1E3054); --i-ouro: var(--ouro, #B8962E); --i-ouro-c: var(--ouro-claro, #D4AF5A);
  --i-ouro-p: var(--ouro-pale, #EDD98A); --i-marfim: var(--marfim, #F4EFE4); --i-papel: #fbf8f0; --i-texto: var(--texto, #2C2016);
  --i-suave: var(--texto-suave, #5C4A30); --i-borda: var(--borda, #C9B98A); --i-borda-s: var(--borda-suave, #DDD0B0); --i-larg: 1120px;
  background: var(--i-marfim); color: var(--i-texto); font-family: "EB Garamond", Georgia, serif; font-size: 1.06rem; line-height: 1.7; overflow-x: clip; }
:where(.inst) *, :where(.inst) *::before, :where(.inst) *::after { box-sizing: border-box; }
:where(.inst) a { color: var(--i-azul); text-decoration-color: var(--i-ouro); text-underline-offset: .2em; }
:where(.inst) a:focus-visible { outline: 3px solid var(--i-ouro); outline-offset: 3px; }
:where(.inst) p { margin: 0 0 1rem; }
.inst-rot { display: block; font-family: "Cinzel", Georgia, serif; font-size: .7rem; letter-spacing: .3em; text-transform: uppercase; color: var(--i-ouro); }

/* ── Capa ─────────────────────────────────────────────────────────────── */
.inst-capa { position: relative; isolation: isolate; text-align: center; color: var(--i-marfim); padding: 4.6rem 1.5rem 4.2rem;
  background: radial-gradient(60% 70% at 50% 20%, var(--azul-claro, #2A4070), var(--i-azul) 72%); border-bottom: 3px solid var(--i-ouro); }
.inst-capa::before, .inst-capa::after { content: ""; position: absolute; inset: 18px; border: 1px solid rgba(212, 175, 90, .3); pointer-events: none; z-index: -1; }
.inst-capa::after { inset: 25px; border-color: rgba(212, 175, 90, .12); }
.inst-trilha { font-family: "Cinzel", Georgia, serif; font-size: .64rem; letter-spacing: .2em; text-transform: uppercase; color: rgba(244, 239, 228, .6); margin: 0 0 1.8rem; }
.inst-trilha a { color: inherit; text-decoration: none; }
.inst-trilha a:hover { color: var(--i-ouro-p); }
.inst-trilha span { margin: 0 .6rem; color: var(--i-ouro); }
.inst-capa__emblema { display: block; width: 104px; height: 104px; object-fit: contain; margin: 0 auto 1.4rem; filter: drop-shadow(0 10px 22px rgba(0, 0, 0, .45)); }
.inst-capa .inst-rot { color: var(--i-ouro-c); margin-bottom: 1rem; }
.inst-capa h1 { font-family: "Cormorant Garamond", Georgia, serif; font-weight: 500; font-size: clamp(2.5rem, 6vw, 4.4rem); line-height: 1.05; letter-spacing: -.01em; margin: 0; color: #fbf6ea; }
.inst-capa__lede { max-width: 40rem; margin: 1.2rem auto 0; font-family: "Cormorant Garamond", Georgia, serif; font-style: italic; font-size: clamp(1.15rem, 2.2vw, 1.42rem); line-height: 1.5; color: rgba(244, 239, 228, .82); }
.inst-orn { display: flex; align-items: center; justify-content: center; gap: .8rem; margin: 1.6rem auto 0; width: min(320px, 70%); color: var(--i-ouro-c); }
.inst-orn::before, .inst-orn::after { content: ""; flex: 1; height: 1px; background: linear-gradient(90deg, transparent, var(--i-ouro-c)); }
.inst-orn::after { background: linear-gradient(90deg, var(--i-ouro-c), transparent); }

/* ── Índice da página ─────────────────────────────────────────────────── */
.inst-indice { background: var(--i-papel); border-bottom: 1px solid var(--i-borda-s); }
.inst-indice ol { list-style: none; margin: 0 auto; padding: .7rem 1.5rem; max-width: var(--i-larg); display: flex; gap: .4rem 1.6rem; flex-wrap: wrap; justify-content: center; counter-reset: idx; }
.inst-indice li { counter-increment: idx; }
.inst-indice a { font-family: "Cinzel", Georgia, serif; font-size: .66rem; letter-spacing: .14em; text-transform: uppercase; text-decoration: none; color: var(--i-azul-m); }
.inst-indice a::before { content: counter(idx, upper-roman) " · "; color: var(--i-ouro); }
.inst-indice a:hover { color: var(--i-ouro); }

/* ── Seções ───────────────────────────────────────────────────────────── */
.inst-secao { max-width: var(--i-larg); margin: 0 auto; padding: 4.6rem 1.5rem; scroll-margin-top: 6.5rem; }
.inst-secao--papel { max-width: none; background: var(--fundo-secao, #EDE6D6); border-block: 1px solid var(--i-borda-s); }
.inst-secao--papel > * { max-width: var(--i-larg); margin-left: auto; margin-right: auto; }
.inst-secao--azul { max-width: none; background: radial-gradient(70% 80% at 50% 0%, var(--azul-claro, #2A4070), var(--i-azul) 75%); color: var(--i-marfim); }
.inst-secao--azul > * { max-width: var(--i-larg); margin-left: auto; margin-right: auto; }
.inst-cab { text-align: center; margin-bottom: 2.6rem; }
.inst-cab h2 { font-family: "Cormorant Garamond", Georgia, serif; font-weight: 500; font-size: clamp(1.9rem, 3.6vw, 2.75rem); line-height: 1.1; margin: .55rem 0 0; color: var(--i-azul); }
.inst-cab p { max-width: 40rem; margin: .8rem auto 0; color: var(--i-suave); font-size: 1.08rem; }
.inst-cab::after { content: "✦"; display: block; margin-top: 1rem; color: var(--i-ouro); font-size: .8rem; }
.inst-secao--azul .inst-cab h2 { color: #fbf6ea; }
.inst-secao--azul .inst-cab p { color: rgba(244, 239, 228, .75); }
.inst-secao--azul .inst-rot { color: var(--i-ouro-c); }

/* ── Prosa ────────────────────────────────────────────────────────────── */
.inst-prosa { max-width: 46rem; margin: 0 auto; font-size: 1.16rem; line-height: 1.82; }
.inst-prosa p { text-wrap: pretty; }
.inst-abertura::first-letter { float: left; font-family: "Cormorant Garamond", Georgia, serif; font-size: 4.6rem; line-height: .8; margin: .5rem .7rem 0 0; color: var(--i-ouro); }
.inst-citacao { max-width: 46rem; margin: 2.4rem auto 0; padding: 1.6rem 2rem; border-left: 3px solid var(--i-ouro); background: var(--i-papel); box-shadow: inset 0 0 0 1px var(--i-borda-s); }
.inst-citacao p { font-family: "Cormorant Garamond", Georgia, serif; font-style: italic; font-size: 1.32rem; line-height: 1.55; color: var(--i-azul); margin-bottom: .6rem; }
.inst-citacao footer { font-family: "Cinzel", Georgia, serif; font-size: .64rem; letter-spacing: .18em; text-transform: uppercase; color: var(--i-suave); }

/* ── Números ──────────────────────────────────────────────────────────── */
.inst-numeros { list-style: none; margin: 3rem auto 0; padding: 0; max-width: var(--i-larg); display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); border-block: 1px solid var(--i-azul); }
.inst-numeros li { padding: 1.4rem 1rem; text-align: center; }
.inst-numeros li + li { border-left: 1px solid var(--i-borda-s); }
.inst-numeros b { display: block; font-family: "Cormorant Garamond", Georgia, serif; font-weight: 500; font-size: 2.6rem; line-height: 1; color: var(--i-ouro); }
.inst-numeros span { display: block; margin-top: .45rem; font-family: "Cinzel", Georgia, serif; font-size: .62rem; letter-spacing: .16em; text-transform: uppercase; color: var(--i-suave); }

/* ── Artigos numerados (atribuições, pilares, ordens) ─────────────────── */
.inst-artigos { list-style: none; margin: 0 auto; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr)); gap: 1.2rem; }
.inst-artigo { position: relative; padding: 2rem 1.8rem 1.8rem; background: var(--i-papel); border: 1px solid var(--i-borda-s); box-shadow: inset 0 0 0 5px var(--i-papel), inset 0 0 0 6px rgba(184, 150, 46, .22); }
.inst-artigo__num { display: block; font-family: "Cormorant Garamond", Georgia, serif; font-size: 2.4rem; line-height: 1; color: var(--i-ouro); margin-bottom: .6rem; }
.inst-artigo h3 { font-family: "Cormorant Garamond", Georgia, serif; font-weight: 600; font-size: 1.45rem; line-height: 1.2; margin: 0 0 .7rem; color: var(--i-azul); }
.inst-artigo .inst-rot { margin-bottom: .5rem; font-size: .6rem; letter-spacing: .2em; }
.inst-artigo p:last-child { margin-bottom: 0; }
.inst-artigo__lema { margin-top: 1rem !important; padding-top: .8rem; border-top: 1px solid var(--i-borda-s); font-family: "Cinzel", Georgia, serif; font-size: .64rem; letter-spacing: .14em; text-transform: uppercase; color: var(--i-suave); }
.inst-secao--azul .inst-artigo { background: rgba(255, 255, 255, .04); border-color: rgba(212, 175, 90, .25); box-shadow: none; color: rgba(244, 239, 228, .85); }
.inst-secao--azul .inst-artigo h3 { color: #fbf6ea; }
/* Sobre o azul, o lema e os links não podem herdar o marrom e o azul do papel. */
.inst-secao--azul .inst-artigo__lema { color: var(--i-ouro-c); border-top-color: rgba(212, 175, 90, .3); }
.inst-artigo__lema + p > a:only-child { display: inline-block; margin-top: .9rem; font-family: "Cinzel", Georgia, serif; font-size: .68rem; letter-spacing: .16em;
  text-transform: uppercase; text-decoration: none; border-bottom: 1px solid currentColor; padding-bottom: .15rem; }
.inst-secao--azul :is(.inst-artigo, .inst-prosa, .inst-cab, .inst-citacao) a { color: var(--i-ouro-p); text-decoration-color: rgba(212, 175, 90, .55); }
.inst-secao--azul :is(.inst-artigo, .inst-prosa, .inst-cab, .inst-citacao) a:hover { color: #fff; }
/* Quatro cartões em duas linhas de dois, nunca três e um sozinho. */
.inst-artigos:has(> li:nth-child(4):last-child) { grid-template-columns: repeat(auto-fit, minmax(min(100%, 400px), 1fr)); max-width: 60rem; }

.inst-artigos--apos { margin-top: 2.6rem; }
.inst-secao--azul .inst-citacao { background: rgba(255, 255, 255, .05); box-shadow: none; border-left-color: var(--i-ouro-c); }
.inst-secao--azul .inst-citacao p { color: #fbf6ea; }
.inst-secao--azul .inst-citacao footer { color: rgba(244, 239, 228, .65); }
.inst-secao--azul .inst-ligacoes a { color: var(--i-ouro-p); border-color: rgba(212, 175, 90, .6); }
.inst-secao--azul .inst-ligacoes a:hover { background: rgba(212, 175, 90, .15); color: #fff; }

/* ── Linha do tempo ───────────────────────────────────────────────────── */
.inst-linha { list-style: none; margin: 0 auto; padding: 0; max-width: 54rem; position: relative; }
.inst-linha::before { content: ""; position: absolute; left: 8.2rem; top: .6rem; bottom: .6rem; width: 1px; background: linear-gradient(var(--i-ouro), rgba(184, 150, 46, .2)); }
.inst-linha li { display: grid; grid-template-columns: 7rem 1fr; gap: 2.4rem; padding: 0 0 2.4rem; position: relative; }
.inst-linha li::before { content: ""; position: absolute; left: 7.9rem; top: .5rem; width: 11px; height: 11px; border-radius: 50%; background: var(--i-marfim); border: 2px solid var(--i-ouro); }
.inst-linha time { text-align: right; font-family: "Cormorant Garamond", Georgia, serif; font-size: 1.5rem; line-height: 1.15; color: var(--i-azul); }
.inst-linha time small { display: block; font-family: "Cinzel", Georgia, serif; font-size: .58rem; letter-spacing: .16em; text-transform: uppercase; color: var(--i-ouro); }
.inst-linha h3 { font-family: "Cormorant Garamond", Georgia, serif; font-weight: 600; font-size: 1.42rem; line-height: 1.2; margin: 0 0 .6rem; color: var(--i-azul); }

/* ── Ficha (dados institucionais) ─────────────────────────────────────── */
.inst-ficha { max-width: 52rem; margin: 0 auto; border-top: 2px solid var(--i-azul); }
.inst-ficha > div { display: grid; grid-template-columns: 13rem 1fr; gap: 1.4rem; padding: 1rem .4rem; border-bottom: 1px solid var(--i-borda-s); }
.inst-ficha dt { font-family: "Cinzel", Georgia, serif; font-size: .68rem; letter-spacing: .16em; text-transform: uppercase; color: var(--i-suave); padding-top: .25rem; }
.inst-ficha dd { margin: 0; font-family: "Cormorant Garamond", Georgia, serif; font-size: 1.3rem; line-height: 1.35; color: var(--i-azul); overflow-wrap: anywhere; }

/* ── Ofício (titular de um órgão) ─────────────────────────────────────── */
.inst-oficio { max-width: 52rem; margin: 0 auto; display: grid; grid-template-columns: auto 1fr; gap: 2rem; align-items: center; padding: 2.2rem 2.4rem;
  background: var(--i-papel); border: 1px solid var(--i-borda); box-shadow: inset 0 0 0 6px var(--i-papel), inset 0 0 0 7px rgba(184, 150, 46, .3); }
.inst-oficio img { width: 110px; height: 110px; object-fit: contain; }
.inst-oficio h3 { font-family: "Cormorant Garamond", Georgia, serif; font-weight: 600; font-size: 1.8rem; margin: .3rem 0 .6rem; color: var(--i-azul); }
.inst-oficio p:last-child { margin-bottom: 0; }

/* ── Documentos ───────────────────────────────────────────────────────── */
.inst-docs { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 250px), 1fr)); gap: 1px; background: var(--i-borda-s); border: 1px solid var(--i-borda-s); }
.inst-docs a { height: 100%; display: flex; flex-direction: column; gap: .5rem; padding: 1.7rem 1.5rem; background: var(--i-marfim); text-decoration: none; color: var(--i-texto); transition: background .25s; }
.inst-docs a:hover { background: var(--i-papel); }
.inst-docs strong { font-family: "Cormorant Garamond", Georgia, serif; font-weight: 600; font-size: 1.35rem; line-height: 1.2; color: var(--i-azul); }
.inst-docs span:not(.inst-rot) { flex: 1; color: var(--i-suave); font-size: 1rem; line-height: 1.55; }
.inst-docs em { font-style: normal; font-family: "Cinzel", Georgia, serif; font-size: .64rem; letter-spacing: .16em; text-transform: uppercase; color: var(--i-ouro); }

/* ── Registros (coleções dinâmicas) ───────────────────────────────────── */
.inst-registro { max-width: 52rem; margin: 0 auto 3rem; }
.inst-registro:last-child { margin-bottom: 0; }
.inst-registro__cab { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; padding-bottom: .7rem; margin-bottom: .2rem; border-bottom: 2px solid var(--i-azul); }
.inst-registro__cab h3 { font-family: "Cormorant Garamond", Georgia, serif; font-weight: 600; font-size: 1.55rem; margin: 0; color: var(--i-azul); }
.inst-registro__cab p { margin: 0; font-family: "Cinzel", Georgia, serif; font-size: .64rem; letter-spacing: .16em; text-transform: uppercase; color: var(--i-ouro); white-space: nowrap; }
.inst-registro__intro { color: var(--i-suave); margin: .8rem 0 1rem; }
.inst-registro .si-registro { background: var(--i-papel) !important; border-color: var(--i-borda-s) !important; }
.inst-registro .si-registro:hover { border-color: var(--i-ouro) !important; }
.inst-registro > p:not(.inst-registro__intro), .inst-registro .vazio { padding: 1.4rem; text-align: center; font-style: italic; color: var(--i-suave); background: var(--i-papel); border: 1px dashed var(--i-borda); margin: 0; }

/* ── Tabelas ──────────────────────────────────────────────────────────── */
.inst-tabela-wrap { max-width: 56rem; margin: 0 auto; overflow-x: auto; }
.inst-tabela { width: 100%; border-collapse: collapse; background: var(--i-papel); border: 1px solid var(--i-borda-s); }
.inst-tabela th { font-family: "Cinzel", Georgia, serif; font-weight: 400; font-size: .64rem; letter-spacing: .16em; text-transform: uppercase; text-align: left; color: var(--i-ouro-p); background: var(--i-azul); padding: .9rem 1.1rem; }
.inst-tabela td { padding: .95rem 1.1rem; border-top: 1px solid var(--i-borda-s); vertical-align: top; }
.inst-tabela td:first-child { font-family: "Cormorant Garamond", Georgia, serif; font-weight: 600; font-size: 1.18rem; color: var(--i-azul); white-space: nowrap; }
.inst-tabela tr:nth-child(even) td { background: rgba(237, 230, 214, .45); }

/* ── Nota e fecho ─────────────────────────────────────────────────────── */
.inst-nota { max-width: 46rem; margin: 2.6rem auto 0; padding: 1.4rem 1.8rem; text-align: center; border-block: 1px solid var(--i-borda); font-style: italic; color: var(--i-suave); }
.inst-nota::before { content: "✦"; display: block; color: var(--i-ouro); font-style: normal; margin-bottom: .5rem; }
.inst-fecho { text-align: center; padding: 3.4rem 1.5rem 4rem; background: var(--marfim-escuro, #E8E0CC); border-top: 1px solid var(--i-borda-s); }
.inst-fecho img { width: 60px; height: 60px; object-fit: contain; display: block; margin: 0 auto 1rem; }
.inst-fecho p { font-family: "Cinzel", Georgia, serif; font-size: .64rem; letter-spacing: .26em; text-transform: uppercase; color: var(--i-suave); margin-bottom: 1.4rem; }
.inst-ligacoes { display: flex; flex-wrap: wrap; justify-content: center; gap: .6rem; }
.inst-ligacoes a { font-family: "Cinzel", Georgia, serif; font-size: .66rem; letter-spacing: .16em; text-transform: uppercase; text-decoration: none; color: var(--i-azul); padding: .7rem 1.1rem; border: 1px solid var(--i-azul); transition: background .25s, color .25s; }
.inst-ligacoes a:hover { background: var(--i-azul); color: var(--i-ouro-p); }
.inst-ligacoes--centro { justify-content: center; margin-top: 2rem; }

@media (max-width: 760px) {
  .inst { font-size: 1.02rem; }
  .inst-capa { padding: 3.2rem 1.1rem 3rem; }
  .inst-capa::before { inset: 9px; } .inst-capa::after { inset: 14px; }
  .inst-capa__emblema { width: 82px; height: 82px; }
  .inst-indice ol { justify-content: flex-start; flex-wrap: nowrap; overflow-x: auto; padding: .7rem 1.1rem; }
  .inst-indice li { flex-shrink: 0; }
  .inst-secao { padding: 3.2rem 1.1rem; }
  .inst-prosa { font-size: 1.08rem; }
  .inst-citacao { padding: 1.2rem 1.2rem; }
  .inst-numeros li + li { border-left: 0; }
  .inst-numeros { grid-template-columns: repeat(2, 1fr); }
  .inst-linha::before { left: .35rem; }
  .inst-linha li { grid-template-columns: 1fr; gap: .3rem; padding-left: 1.8rem; }
  .inst-linha li::before { left: 0; }
  .inst-linha time { text-align: left; }
  .inst-ficha > div { grid-template-columns: 1fr; gap: .2rem; }
  .inst-oficio { grid-template-columns: 1fr; text-align: center; padding: 1.6rem 1.2rem; }
  .inst-oficio img { margin: 0 auto; }
  .inst-registro__cab { flex-wrap: wrap; }
  .inst-tabela td:first-child { white-space: normal; }
}
@media (prefers-reduced-motion: reduce) { .inst * { transition: none !important; } }
