/* Lex: componentes do acervo normativo.
 *
 * Regra de convivência: nenhuma regra deste arquivo redeclara seletor de
 * critical.css ou theme.css. Todo componente novo usa o prefixo `lex-`, e
 * quando precisa alcançar um elemento institucional o faz por seletor
 * composto (0,2,0), que vence a regra de classe única (0,1,0) da folha
 * institucional sem recorrer a !important.
 */

/* =========================================================
   1. Herói de busca (capa do acervo e topo dos arquivos)
   ========================================================= */
.lex-capa{margin:0 0 clamp(2rem,5vw,3rem)}
.lex-capa__busca{margin-top:1.5rem;max-width:44rem}
.lex-capa__campo{display:flex;flex-wrap:wrap;gap:.5rem}
.lex-capa__campo input[type=search]{flex:1 1 18rem;min-width:0}
.lex-capa__campo button{flex:0 0 auto}
.lex-capa__dica{margin:.75rem 0 0;font-size:var(--fm-fs--2);color:var(--fm-muted)}
.lex-capa__dica code{font:inherit;font-weight:700;color:var(--fm-ink)}

.lex-atalhos-especie{list-style:none;display:flex;flex-wrap:wrap;gap:.5rem;margin:1.5rem 0 0;padding:0}
.lex-atalhos-especie a{display:inline-flex;align-items:center;min-height:2.75rem;padding:0 1rem;
 border:1px solid var(--fm-rule);color:var(--fm-ink);text-decoration:none;font-size:var(--fm-fs--1)}
.lex-atalhos-especie a:hover{border-color:var(--fm-ink);background:var(--fm-paper-2)}
.lex-atalhos-especie span{color:var(--fm-muted);font-variant-numeric:tabular-nums;margin-left:.4rem}

/* =========================================================
   2. Facetas (coluna lateral, formulário GET, sem JavaScript)
   ========================================================= */
.lex-facetas{font-size:var(--fm-fs--1)}
.lex-facetas__grupo{border:0;margin:0 0 1.75rem;padding:0;min-width:0}
.lex-facetas__legenda{display:block;width:100%;font-size:var(--fm-fs--1);font-weight:700;
 text-transform:uppercase;letter-spacing:.14em;
 border-bottom:2px solid var(--fm-ink);padding:0 0 .5rem;margin:0 0 .75rem}
.lex-facetas__lista{list-style:none;margin:0;padding:0}
.lex-facetas__lista li{margin:0}
.lex-facetas__lista .children{list-style:none;margin:.15rem 0 .15rem .9rem;padding-left:.75rem;
 border-left:1px solid var(--fm-rule)}
.lex-opcao{display:flex;align-items:flex-start;gap:.6rem;min-height:2.75rem;padding:.35rem 0;cursor:pointer}
.lex-opcao input{flex:0 0 auto;width:1.15rem;height:1.15rem;min-height:0;margin:.35rem 0 0;
 accent-color:var(--fm-accent);border:2px solid var(--fm-rule);-webkit-appearance:auto;appearance:auto}
.lex-opcao__rotulo{flex:1 1 auto;min-width:0}
.lex-opcao__n{flex:0 0 auto;color:var(--fm-muted);font-variant-numeric:tabular-nums;font-size:var(--fm-fs--2)}
.lex-opcao:hover .lex-opcao__rotulo{box-shadow:inset 0 -.1em 0 var(--fm-accent)}
.lex-opcao input:disabled+.lex-opcao__rotulo{color:var(--fm-muted)}

.lex-intervalo{display:flex;flex-wrap:wrap;gap:.75rem}
.lex-intervalo p{flex:1 1 6rem;margin:0}
.lex-intervalo label{font-size:var(--fm-fs--2)}
.lex-intervalo input{font-variant-numeric:tabular-nums}

.lex-facetas__acoes{display:flex;flex-wrap:wrap;gap:.75rem;position:sticky;bottom:0;
 background:var(--fm-paper);padding:.75rem 0;border-top:1px solid var(--fm-rule)}
.lex-facetas__limpar{display:inline-flex;align-items:center;justify-content:center;min-height:2.75rem;
 padding:.7rem 1.25rem;border:2px solid var(--fm-ink);color:var(--fm-ink);
 text-decoration:none;font-weight:600;font-size:var(--fm-fs--1)}
.lex-facetas__limpar:hover{background:var(--fm-ink);color:var(--fm-paper)}

/* Quando o JavaScript assume o envio, o botão Aplicar some sem deixar buraco. */
.lex-js .lex-facetas__aplicar{position:absolute;width:1px;height:1px;padding:0;margin:-1px;
 overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}

/* =========================================================
   3. Cabeça dos resultados: contagem, filtros ativos, ordenação
   ========================================================= */
.lex-resumo{display:flex;flex-wrap:wrap;align-items:baseline;gap:1rem;
 padding-bottom:.75rem;border-bottom:2px solid var(--fm-ink);margin-bottom:1.5rem}
.lex-resumo__n{margin:0;font-size:var(--fm-fs--1);color:var(--fm-muted);font-variant-numeric:tabular-nums}
.lex-resumo__n strong{color:var(--fm-ink)}
.lex-resumo__ordem{margin-left:auto;display:flex;align-items:center;gap:.6rem}
.lex-resumo__ordem label{margin:0;font-size:var(--fm-fs--2);text-transform:uppercase;letter-spacing:.12em}
.lex-resumo__ordem select{width:auto;min-width:12rem}

.lex-filtros{list-style:none;display:flex;flex-wrap:wrap;gap:.5rem;margin:0 0 1.5rem;padding:0}
.lex-filtro{display:inline-flex;align-items:center;gap:.5rem;min-height:2.75rem;padding:0 .5rem 0 .85rem;
 border:1px solid var(--fm-ink);font-size:var(--fm-fs--2);background:var(--fm-paper-2)}
.lex-filtro__campo{text-transform:uppercase;letter-spacing:.1em;color:var(--fm-muted)}
.lex-filtro__fechar{display:inline-flex;align-items:center;justify-content:center;
 width:2rem;height:2rem;color:var(--fm-accent-text);text-decoration:none;font-weight:700;line-height:1}
.lex-filtro__fechar:hover{background:var(--fm-accent);color:#fff}

/* =========================================================
   4. Resultados
   ========================================================= */
.lex-resultados{list-style:none;margin:0;padding:0}
.lex-resultado{padding:1.5rem 0;border-top:1px solid var(--fm-rule)}
.lex-resultado:first-child{border-top:0;padding-top:.25rem}
.lex-resultado__chapeu{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem;margin:0 0 .4rem;
 font-size:var(--fm-fs--2);font-weight:600;text-transform:uppercase;letter-spacing:.14em}
.lex-resultado__especie{color:var(--fm-accent-text)}
.lex-resultado__orgao{color:var(--fm-muted)}
.lex-resultado__titulo{font-size:var(--fm-fs-1);margin:0 0 .5rem;line-height:1.25}
.lex-resultado__titulo a{color:var(--fm-ink);text-decoration:none}
.lex-resultado__titulo a:hover{box-shadow:inset 0 -.1em 0 var(--fm-accent)}
.lex-resultado__ementa{margin:0 0 .75rem;font-size:var(--fm-fs--1);color:var(--fm-muted);
 max-width:var(--fm-medida)}
.lex-resultado__pe{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem;margin:0;
 font-size:var(--fm-fs--2);color:var(--fm-muted);font-variant-numeric:tabular-nums}
.lex-resultado__guia{display:inline-flex;align-items:center;gap:.4rem;color:var(--fm-accent-text);
 font-weight:600;text-decoration:none}
.lex-resultado__guia:hover{text-decoration:underline}
.lex-resultado__guia::before{content:"";width:.5rem;height:.5rem;background:var(--fm-accent)}
.lex-realce{background:var(--fm-paper-2);box-shadow:inset 0 -.35em 0 var(--fm-paper-2);font-weight:600;color:var(--fm-ink)}

/* =========================================================
   5. Situação da norma
   ========================================================= */
.lex-situacao{display:inline-flex;align-items:center;gap:.45rem;
 font-size:var(--fm-fs--2);font-weight:700;text-transform:uppercase;letter-spacing:.12em}
.lex-situacao::before{content:"";width:.55rem;height:.55rem;background:currentColor}
.lex-situacao--vigor{color:#1b7f3b}
.lex-situacao--vacatio{color:#8a6508}
.lex-situacao--suspensa{color:#8a6508}
.lex-situacao--revogada,.lex-situacao--caduca,.lex-situacao--exaurida{color:var(--fm-accent-text)}
.lex-situacao--revogada::before,.lex-situacao--caduca::before,.lex-situacao--exaurida::before{
 height:2px;width:.9rem}

/* =========================================================
   6. Ficha do ato normativo
   ========================================================= */
.lex-ficha{margin:0 0 2.5rem;border-top:2px solid var(--fm-ink)}
.lex-ficha__par{display:grid;gap:.15rem 1.5rem;padding:.85rem 0;border-bottom:1px solid var(--fm-rule)}
@media(min-width:40rem){.lex-ficha__par{grid-template-columns:14rem minmax(0,1fr);align-items:baseline}}
.lex-ficha dt{font-size:var(--fm-fs--2);font-weight:700;text-transform:uppercase;letter-spacing:.12em;
 color:var(--fm-muted);margin:0}
.lex-ficha dd{margin:0;font-size:var(--fm-fs--1);font-variant-numeric:tabular-nums;max-width:var(--fm-medida)}
.lex-ficha dd a{color:var(--fm-ink)}
.lex-ficha__urn{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:var(--fm-fs--2);
 word-break:break-all}

.lex-ementa{margin:0 0 2rem;padding:1.25rem 1.5rem;background:var(--fm-paper-2);
 border-left:.25rem solid var(--fm-accent);max-width:var(--fm-medida)}
.lex-ementa__rotulo{display:block;font-size:var(--fm-fs--2);font-weight:700;text-transform:uppercase;
 letter-spacing:.12em;color:var(--fm-muted);margin-bottom:.4rem}
.lex-ementa p{margin:0}

.lex-fonte{display:flex;flex-wrap:wrap;gap:1rem;align-items:center;margin:0 0 2.5rem}

/* =========================================================
   7. Relações normativas
   ========================================================= */
.lex-relacoes{margin:0 0 2.5rem}
.lex-relacoes__grupo+.lex-relacoes__grupo{margin-top:1.5rem}
.lex-relacoes__rotulo{display:flex;align-items:baseline;gap:.75rem;margin:0 0 .5rem;
 font-size:var(--fm-fs--2);font-weight:700;text-transform:uppercase;letter-spacing:.14em;
 color:var(--fm-muted)}
.lex-relacoes__rotulo::before{content:"";flex:0 0 1.25rem;height:1px;background:var(--fm-ink);
 transform:translateY(-.25em)}
.lex-relacoes__lista{list-style:none;margin:0;padding:0}
.lex-relacoes__lista li{padding:.5rem 0;border-bottom:1px solid var(--fm-rule);font-size:var(--fm-fs--1)}
.lex-relacoes__lista a{color:var(--fm-ink);text-decoration:none}
.lex-relacoes__lista a:hover{color:var(--fm-accent-text);text-decoration:underline}

/* =========================================================
   8. Anexos
   ========================================================= */
.lex-anexos{margin:2.5rem 0 0;padding-top:1.5rem;border-top:2px solid var(--fm-ink)}
.lex-anexos__lista{list-style:none;margin:1rem 0 0;padding:0;display:grid;gap:1rem;
 grid-template-columns:repeat(auto-fill,minmax(min(100%,18rem),1fr))}
.lex-anexo{display:grid;grid-template-columns:4rem minmax(0,1fr);gap:1rem;align-items:start;
 padding:.85rem;border:1px solid var(--fm-rule)}
.lex-anexo:hover{border-color:var(--fm-ink);background:var(--fm-paper-2)}
.lex-anexo__miniatura img{width:100%;aspect-ratio:3/4;object-fit:cover;border:1px solid var(--fm-rule)}
.lex-anexo__extensao{display:flex;align-items:center;justify-content:center;aspect-ratio:3/4;
 background:var(--fm-ink);color:var(--fm-paper);font-size:var(--fm-fs--2);font-weight:700;letter-spacing:.08em}
.lex-anexo__titulo{margin:0 0 .25rem;font-size:var(--fm-fs--1);font-weight:600;line-height:1.3}
.lex-anexo__titulo a{color:var(--fm-ink);text-decoration:none}
.lex-anexo__titulo a::after{content:"";position:absolute;inset:0}
.lex-anexo{position:relative}
.lex-anexo__meta{margin:0;font-size:var(--fm-fs--2);color:var(--fm-muted);
 font-variant-numeric:tabular-nums;text-transform:uppercase;letter-spacing:.08em}

/* =========================================================
   9. Guia prático
   ========================================================= */
.lex-guia__responsabilidade{margin:0 0 2.5rem;padding:1.25rem 1.5rem;border:1px solid var(--fm-rule)}
.lex-guia__responsabilidade dl{display:grid;gap:1rem;margin:0 0 .85rem;
 grid-template-columns:repeat(auto-fit,minmax(9rem,1fr))}
.lex-guia__responsabilidade dt{font-size:var(--fm-fs--2);font-weight:700;text-transform:uppercase;
 letter-spacing:.12em;color:var(--fm-muted);margin-bottom:.2rem}
.lex-guia__responsabilidade dd{margin:0;font-size:var(--fm-fs--1);font-variant-numeric:tabular-nums}
.lex-guia__aviso{margin:0;font-size:var(--fm-fs--2);color:var(--fm-muted);max-width:70ch}

.lex-vinculo{display:block;margin:0 0 2.5rem;padding:1.25rem 1.5rem;text-decoration:none;
 border-left:.25rem solid var(--fm-ink);background:var(--fm-paper-2)}
.lex-vinculo:hover{border-left-color:var(--fm-accent)}
.lex-vinculo__rotulo{display:block;font-size:var(--fm-fs--2);font-weight:700;text-transform:uppercase;
 letter-spacing:.14em;color:var(--fm-muted);margin-bottom:.35rem}
.lex-vinculo__epigrafe{display:block;font-size:var(--fm-fs-1);font-weight:var(--fm-peso-titulo);
 letter-spacing:-.02em;color:var(--fm-ink);line-height:1.2}
.lex-vinculo__ementa{display:block;margin-top:.5rem;font-size:var(--fm-fs--1);color:var(--fm-muted);
 max-width:var(--fm-medida)}

.lex-sumario{margin:0 0 2.5rem;padding:1.25rem 1.5rem;border:1px solid var(--fm-rule);
 max-width:var(--fm-medida)}
.lex-sumario__titulo{margin:0 0 .75rem;font-size:var(--fm-fs--2);font-weight:700;
 text-transform:uppercase;letter-spacing:.14em;color:var(--fm-muted)}
.lex-sumario ol{margin:0;padding-left:1.25rem;font-size:var(--fm-fs--1)}
.lex-sumario li{padding:.2rem 0}
.lex-sumario a{color:var(--fm-ink)}

.lex-chamada{margin:3rem 0 0;padding:clamp(1.5rem,4vw,2.5rem);background:var(--fm-ink);color:var(--fm-paper)}
.lex-chamada__titulo{margin:0 0 .5rem;font-size:var(--fm-fs-2);color:var(--fm-paper)}
.lex-chamada__texto{margin:0 0 1.5rem;color:rgba(255,255,255,.8);max-width:var(--fm-medida)}
.lex-chamada .fm-btn--solido{background:var(--fm-paper);color:var(--fm-ink);border-color:var(--fm-paper)}
.lex-chamada .fm-btn--solido:hover{background:var(--fm-accent);border-color:var(--fm-accent);color:#fff}
.lex-chamada :focus-visible{outline-color:var(--fm-paper)}

/* =========================================================
   10. Estado vazio e avisos de administração
   ========================================================= */
.lex-vazio{padding:2.5rem 0;border-top:2px solid var(--fm-ink);max-width:var(--fm-medida)}
.lex-vazio__titulo{font-size:var(--fm-fs-2);margin:0 0 .5rem}
.lex-vazio p{color:var(--fm-muted)}
.lex-vazio__sugestoes{list-style:none;margin:1.5rem 0 0;padding:0;display:flex;flex-wrap:wrap;gap:.5rem}
.lex-vazio__sugestoes a{display:inline-flex;align-items:center;min-height:2.75rem;padding:0 1rem;
 border:1px solid var(--fm-rule);color:var(--fm-ink);text-decoration:none;font-size:var(--fm-fs--1)}
.lex-vazio__sugestoes a:hover{border-color:var(--fm-ink)}

/* =========================================================
   11. Rodapé: aviso de uso de inteligência artificial
   ---------------------------------------------------------
   Branco pleno e sem limite de medida, distinto do aviso do Provimento
   (.fm-aviso-oab), que permanece em 70ch e opacidade reduzida.
   ========================================================= */
.lex-aviso-ia{color:#fff;max-width:none;margin:.75rem 0 0;font-size:var(--fm-fs--2)}

/* =========================================================
   12. Impressão dos componentes do acervo
   ========================================================= */
@media print{
 .lex-facetas,.lex-resumo__ordem,.lex-filtros,.lex-capa__busca,.lex-atalhos-especie,
 .lex-chamada,.lex-vazio__sugestoes{display:none !important}
 .lex-ementa,.lex-vinculo,.lex-guia__responsabilidade{background:none;border-color:#000}
 .lex-situacao{color:#000}
 .lex-ficha__par{break-inside:avoid}
}

/* =========================================================
   13. Espaçamento de seção na capa
   ========================================================= */
.lex-secao{margin-top:clamp(2rem,5vw,3.5rem)}
.lex-secao__mais{margin-top:2rem}

/* =========================================================
   14. Guia prático dentro do registro
   ---------------------------------------------------------
   A fusão dos tipos pôs a norma e o comentário no mesmo documento. O leitor
   precisa saber, a cada linha, se lê a lei ou quem a comenta: daí o corte
   tipográfico marcado, com fio de tinta cheia e recuo à esquerda, que a
   ficha (fios de 1px, versalete cinza) não tem.
   ========================================================= */
.lex-guia{margin-top:clamp(2.5rem,6vw,4rem);padding-top:1.5rem;border-top:.375rem solid var(--fm-ink)}
.lex-guia>.fm-artigo__corpo{border-left:1px solid var(--fm-rule);padding-left:clamp(1rem,3vw,1.75rem)}
@media(max-width:40rem){.lex-guia>.fm-artigo__corpo{border-left:0;padding-left:0}}
.lex-guia .lex-guia__responsabilidade{background:var(--fm-paper-2);border-color:var(--fm-rule)}

/* Selo do registro comentado na lista: sem ligação própria, porque o cartão
   inteiro já leva ao mesmo lugar. */
.lex-resultado__pe .lex-resultado__guia{color:var(--fm-accent-text);font-weight:600}

@media print{
 .lex-guia{border-top-width:2pt}
 .lex-guia>.fm-artigo__corpo{border-left:0;padding-left:0}
}

/* =========================================================
   15. Âncoras sob cabeçalho fixo
   ---------------------------------------------------------
   Com o cabeçalho pregado ao topo, clicar no sumário levava o título para
   debaixo da barra: o leitor caía no meio do parágrafo anterior sem saber
   por quê. `scroll-margin-top` reserva a altura da barra mais uma folga.
   ========================================================= */
.fm-artigo__corpo h2[id],.fm-artigo__corpo h3[id],.lex-guia h2[id]{scroll-margin-top:7rem}
.lex-diagrama,.fm-tabela-scroll{scroll-margin-top:7rem}

/* =========================================================
   16. Fluxogramas em caracteres
   ---------------------------------------------------------
   Os guias desenham a dinâmica postulatória em blocos de código. Sem
   tratamento, o desenho estoura a largura do celular e empurra a página
   inteira para o lado. Aqui ele ganha caixa própria, rolagem alcançável por
   teclado e, no papel, quebra de linha.
   ========================================================= */
.lex-diagrama{overflow-x:auto;-webkit-overflow-scrolling:touch;
 margin:2rem 0;padding:1.25rem 1.5rem;background:var(--fm-paper-2);
 border-left:.25rem solid var(--fm-ink);
 font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,"Liberation Mono",monospace;
 font-size:var(--fm-fs--2);line-height:1.55;white-space:pre;tab-size:2}
.lex-diagrama:focus-visible{outline:3px solid var(--fm-focus);outline-offset:2px}
.lex-diagrama code{font:inherit;background:none;padding:0}

/* Sinal de que há mais coisa à direita, em quem rola. */
.lex-rolagem,.lex-diagrama{background-image:
 linear-gradient(to right,var(--fm-paper-2) 30%,rgba(255,255,255,0)),
 linear-gradient(to right,rgba(255,255,255,0),var(--fm-paper-2) 70%),
 linear-gradient(to right,rgba(0,0,0,.12),rgba(0,0,0,0)),
 linear-gradient(to left,rgba(0,0,0,.12),rgba(0,0,0,0));
 background-position:0 0,100% 0,0 0,100% 0;
 background-repeat:no-repeat;background-color:var(--fm-paper-2);
 background-size:2.5rem 100%,2.5rem 100%,.75rem 100%,.75rem 100%;
 background-attachment:local,local,scroll,scroll}

.lex-rolagem{margin:2rem 0}
.lex-rolagem table{min-width:44rem}
.lex-rolagem:focus-visible{outline:3px solid var(--fm-focus);outline-offset:2px}

/* =========================================================
   17. Verbetes do guia
   ---------------------------------------------------------
   O quadro terminológico é uma sucessão de "Gênero:", "Espécie:",
   "Diferença específica:". Recuo pendente separa o rótulo da definição sem
   exigir nenhuma mudança no texto já publicado.
   ========================================================= */
.lex-guia__corpo ul li>strong:first-child,
.lex-guia__corpo ul li>b:first-child{color:var(--fm-ink)}
.lex-guia__corpo>ul>li,.lex-guia__corpo>ul ul>li{padding-left:.15em}
.lex-guia__corpo li+li{margin-top:.5em}
.lex-guia__corpo ul ul,.lex-guia__corpo ol ul{margin-top:.5em}
.lex-guia__corpo em{font-style:italic}

/* =========================================================
   18. Sumário do guia
   ---------------------------------------------------------
   Guia de cinco seções e vinte subtítulos, lido de cabo a rabo, faz perder o
   lugar. Em tela larga o sumário vira coluna fixa ao lado do texto; em tela
   estreita continua bloco no alto, porque coluna fixa em celular rouba a
   tela que serve à leitura.
   ========================================================= */
.lex-guia__leitura{display:block}
.lex-sumario__item--n3{margin-left:1rem;font-size:var(--fm-fs--2)}
.lex-sumario__item--n3::marker{color:var(--fm-muted)}
.lex-sumario a[aria-current]{font-weight:700;box-shadow:inset 0 -.1em 0 var(--fm-accent)}

@media(min-width:78rem){
 .lex-guia--com-sumario .lex-guia__leitura{display:grid;
  grid-template-columns:16rem minmax(0,1fr);gap:clamp(2rem,4vw,3.5rem);align-items:start}
 .lex-guia--com-sumario .lex-sumario{position:sticky;top:7rem;margin:0;
  max-height:calc(100vh - 9rem);overflow:auto;border:0;border-left:2px solid var(--fm-ink);
  padding:.25rem 0 .25rem 1.25rem}
 .lex-guia--com-sumario .lex-sumario ol{padding-left:1.1rem}
}

.lex-guia__topo{margin:2.5rem 0 0;padding-top:1rem;border-top:1px solid var(--fm-rule);
 font-size:var(--fm-fs--2)}
.lex-guia__topo a{color:var(--fm-muted)}

/* =========================================================
   19. Como citar
   ---------------------------------------------------------
   Quem lê a norma vai citá-la em peça. A referência já formatada evita a
   transcrição manual, que é onde nascem os erros de data e de veículo.
   ========================================================= */
.lex-citar{margin:0 0 2.5rem;padding:1.25rem 1.5rem;border:1px solid var(--fm-rule)}
.lex-citar__titulo{display:flex;flex-wrap:wrap;align-items:baseline;gap:.75rem;margin:0 0 .85rem;
 font-size:var(--fm-fs--2);font-weight:700;text-transform:uppercase;letter-spacing:.14em;
 color:var(--fm-muted)}
.lex-citar__norma{margin-left:auto;font-weight:400;letter-spacing:.08em}
.lex-citar__referencia{margin:0 0 1rem;font-size:var(--fm-fs--1);line-height:1.7;
 max-width:var(--fm-medida);text-indent:-1.5rem;padding-left:1.5rem}
.lex-citar__acoes{display:flex;flex-wrap:wrap;gap:.75rem;margin:0}
.lex-citar .lex-copiar{background:none;color:var(--fm-ink);border:2px solid var(--fm-ink);
 font-size:var(--fm-fs--2);padding:.55rem 1rem}
.lex-citar .lex-copiar:hover{background:var(--fm-ink);color:var(--fm-paper);border-color:var(--fm-ink)}
.lex-citar__aviso{margin:.75rem 0 0;font-size:var(--fm-fs--2);color:var(--fm-accent-text);min-height:1.2em}

@media print{
 .lex-citar__acoes,.lex-guia__topo,.lex-sumario{display:none !important}
 .lex-citar{border-color:#000}
 /* No papel não há rolagem: o desenho quebra em vez de sumir na margem. */
 .lex-diagrama{white-space:pre-wrap;background:none;border-left:2pt solid #000;font-size:8pt}
 .lex-rolagem{overflow:visible;background:none}
 .lex-rolagem table{min-width:0}
}

/* Contagem regressiva da vacatio, discreta ao lado da data. */
.lex-contagem{color:var(--fm-accent-text);font-weight:600;white-space:nowrap}
.lex-contagem::before{content:"· "}

/* =========================================================
   20. Envoltório do herói
   ---------------------------------------------------------
   Defeito corrigido: o herói é impresso fora de `.fm-principal--pagina`, e a
   folha institucional só dá largura contida à variante `--faixa`. Resultado
   em produção: título centralizado no meio da janela e campo de busca colado
   à borda esquerda, sem margem alguma. O envoltório abaixo devolve ao herói a
   mesma medida e o mesmo recuo do conteúdo que vem depois, de modo que as
   duas colunas de texto se alinhem pela mesma vertical.
   ========================================================= */
.lex-capa:not(.fm-heroi-pagina--faixa) .fm-heroi-pagina__interno{
 max-width:1280px;margin-inline:auto;padding-inline:clamp(1rem,4vw,3rem)}

/* =========================================================
   21. Respiro entre o cabeçalho e o conteúdo
   ---------------------------------------------------------
   Três degraus, à escolha do administrador. O vão morto de antes vinha da
   soma de duas folgas que ninguém somou: a margem inferior do herói mais o
   recuo superior do conteúdo. Agora o herói abre o respiro e o conteúdo que
   o segue não repete o seu.
   ========================================================= */
:root{--lex-respiro:clamp(2rem,5vw,3.25rem);--lex-respiro-fim:clamp(1.5rem,4vw,2.5rem)}
.lex-espaco--compacto{--lex-respiro:clamp(1.25rem,3vw,2rem);--lex-respiro-fim:clamp(1rem,2.5vw,1.5rem)}
.lex-espaco--amplo{--lex-respiro:clamp(3rem,8vw,5rem);--lex-respiro-fim:clamp(2.5rem,6vw,4rem)}

.lex-capa{padding-top:var(--lex-respiro);margin-bottom:var(--lex-respiro-fim)}
.lex-capa.fm-heroi-pagina--faixa{padding-top:0}
.lex-capa+.fm-principal--pagina,
.lex-capa+.fm-envolucro{padding-top:0}
.lex-capa .fm-migalhas ol{margin-bottom:1rem}

/* Sem barra de acessibilidade, o cabeçalho encosta no topo da janela: o
   respiro passa a nascer aqui. */
.lex-sem-barra-a11y .fm-cabecalho{border-top:0}

/* =========================================================
   22. Barra de acessibilidade
   ========================================================= */
/* Barra sem controles visíveis não é barra: some por completo, restando os
   atalhos, que só aparecem ao receber foco. */
.lex-atalhos--mudos{background:none;font-size:0;line-height:0}
.lex-atalhos--mudos li a{font-size:1rem;line-height:1.5}

/* Variante discreta: mesma função, sem a faixa preta no alto da página. */
.lex-atalhos--discreta{background:var(--fm-paper-2);color:var(--fm-ink);
 border-bottom:1px solid var(--fm-rule)}
.lex-atalhos--discreta .fm-atalhos__controles button{border-color:var(--fm-rule);color:var(--fm-ink)}
.lex-atalhos--discreta .fm-atalhos__controles button:hover{background:var(--fm-ink);color:var(--fm-paper)}
.lex-atalhos--discreta li a{background:var(--fm-ink);color:var(--fm-paper)}

/* =========================================================
   23. Marca reduzida
   ========================================================= */
.lex-marca--muda{gap:0}
.lex-glifo-link{display:inline-flex;align-items:center;text-decoration:none}
.lex-glifo-link:hover .fm-glifo{border-color:var(--fm-accent-text);
 border-top-color:transparent;border-right-color:transparent}

/* =========================================================
   24. Estilos da listagem
   ---------------------------------------------------------
   Mesma marcação, três leituras. A lista serve ao acervo pequeno, em que a
   ementa cabe; os cartões, à navegação exploratória; a compacta, à varredura
   de milhares de registros, em que o que importa é número, data e situação.
   ========================================================= */

/* Cartões */
.lex-resultados--cartoes{display:grid;gap:clamp(1.25rem,3vw,2rem);
 grid-template-columns:repeat(auto-fill,minmax(min(100%,20rem),1fr))}
.lex-resultados--cartoes .lex-resultado{display:flex;flex-direction:column;gap:.6rem;
 border:1px solid var(--fm-rule);border-top:.25rem solid var(--fm-ink);
 padding:1.25rem;margin:0}
.lex-resultados--cartoes .lex-resultado:first-child{padding-top:1.25rem}
.lex-resultados--cartoes .lex-resultado:hover{border-color:var(--fm-ink);
 border-top-color:var(--fm-accent)}
.lex-resultados--cartoes .lex-resultado__titulo{font-size:var(--fm-fs-0)}
.lex-resultados--cartoes .lex-resultado__ementa{margin:0;font-size:var(--fm-fs--2)}
.lex-resultados--cartoes .lex-resultado__pe{margin-top:auto;padding-top:.75rem;
 border-top:1px solid var(--fm-rule)}

/* Compacta */
.lex-resultados--compacta .lex-resultado{display:grid;align-items:baseline;
 gap:.15rem .85rem;padding:.7rem 0;
 grid-template-columns:minmax(0,1fr) auto}
.lex-resultados--compacta .lex-resultado__chapeu{grid-column:1;margin:0;
 font-size:.6875rem;letter-spacing:.1em}
.lex-resultados--compacta .lex-resultado__titulo{grid-column:1;grid-row:2;
 font-size:var(--fm-fs--1);margin:0}
.lex-resultados--compacta .lex-resultado__ementa{display:none}
.lex-resultados--compacta .lex-resultado__pe{grid-column:2;grid-row:1/3;
 justify-content:flex-end;text-align:right;margin:0;gap:.5rem}
@media(max-width:40rem){
 .lex-resultados--compacta .lex-resultado{grid-template-columns:minmax(0,1fr)}
 .lex-resultados--compacta .lex-resultado__pe{grid-column:1;grid-row:auto;
  justify-content:flex-start;text-align:left}
}

@media print{
 .lex-resultados--cartoes{display:block}
 .lex-resultados--cartoes .lex-resultado{border:0;border-top:1pt solid #000;padding:.5rem 0}
}

/* =========================================================
   25. Barra lateral de widgets
   ---------------------------------------------------------
   A coluna vem da folha institucional: `.fm-envolucro:has(.fm-lateral)`
   abre 18rem à direita a partir de 64rem e, abaixo disso, empilha a lateral
   como bloco, com fio de tinta acima. Aqui só se acrescenta o que falta:
   fixação ao rolar em tela larga (a lista de publicações é longa, e widget
   que sobe junto com ela vira espaço morto) e o cuidado de não fixar nada
   quando a lateral for mais alta que a janela.
   ========================================================= */
.lex-lateral{min-width:0}
.lex-lateral .fm-widget{margin-bottom:2rem}
.lex-lateral .fm-widget:last-child{margin-bottom:0}

@media(min-width:64rem){
 .lex-lateral{position:sticky;top:7rem;max-height:calc(100vh - 9rem);overflow:auto;
  overscroll-behavior:contain}
}
@media(max-width:63.99rem){
 .lex-lateral{position:static;max-height:none;overflow:visible}
}

/* Widgets do núcleo, contidos na medida da coluna. */
.lex-lateral img,.lex-lateral iframe{max-width:100%;height:auto}
.lex-lateral .wp-block-search__inside-wrapper{display:flex;gap:.5rem}
.lex-lateral .wp-block-latest-posts,
.lex-lateral .wp-block-categories,
.lex-lateral .wp-block-archives{list-style:none;margin:0;padding:0}
.lex-lateral .wp-block-tag-cloud a{display:inline-block;margin:0 .25rem .35rem 0;
 padding:.35rem .7rem;border:1px solid var(--fm-rule);font-size:var(--fm-fs--2) !important;
 color:var(--fm-ink);text-decoration:none}
.lex-lateral .wp-block-tag-cloud a:hover{border-color:var(--fm-ink);background:var(--fm-paper-2)}

/* A capa sem lateral conserva o recuo de página; com lateral, o envoltório
   institucional já o traz, e repeti-lo dobraria a margem. */
.lex-capa-corpo{padding-top:0}

@media print{
 .lex-lateral{display:none !important}
}

/* =========================================================
   26. Facetas: altura sob controle
   ---------------------------------------------------------
   Defeito corrigido: seis facetas, uma delas com quarenta e cinco
   descritores, faziam a coluna lateral medir milhares de pixels contra uma
   lista de cinco resultados. A grade adota a altura do item mais alto, e
   sobrava um descampado branco ao lado dos resultados e depois deles. Agora
   cada faceta mostra os primeiros termos e recolhe o resto, e a coluna
   inteira tem teto: nunca passa da altura da janela.
   ========================================================= */
.lex-facetas__mais{margin:.35rem 0 0}
.lex-facetas__mais>summary{cursor:pointer;display:inline-flex;align-items:center;gap:.4rem;
 min-height:2.75rem;font-size:var(--fm-fs--2);font-weight:600;text-transform:uppercase;
 letter-spacing:.1em;color:var(--fm-accent-text);list-style:none}
.lex-facetas__mais>summary::-webkit-details-marker{display:none}
.lex-facetas__mais>summary::before{content:"+";font-size:1.1em;line-height:1;font-weight:700}
.lex-facetas__mais[open]>summary::before{content:"–"}
.lex-facetas__mais>summary:hover{text-decoration:underline}
.lex-facetas__mais>summary:focus-visible{outline:3px solid var(--fm-focus);outline-offset:3px}

/* Sem rolagem, em largura alguma. Rolagem dentro de rolagem esconde o que
   existe, some com o rodapé e não resolve o problema de fundo, que é lista
   longa demais para servir de via de acesso. A coluna encurtou na origem: só
   os termos mais frequentes sobem, o excedente fica recolhido, e vocabulário
   largo ganha busca própria. */
.lex-facetas{position:static;max-height:none;overflow:visible}
.lex-facetas__grupo{margin-bottom:1.5rem}

/* =========================================================
   27. Contenção do sangramento lateral
   ---------------------------------------------------------
   As variantes de tinta cheia usam `width:100vw`, que em navegador com barra
   de rolagem visível mede mais que a área útil e abre uma faixa de rolagem
   horizontal, com área branca ao pé da página. `clip` corta o excesso sem
   quebrar posicionamento fixo nem `position:sticky`, o que `hidden` faria.
   ========================================================= */
/* Só na raiz: `overflow` declarado na raiz propaga para a janela e continua
   valendo como área de rolagem, de modo que os elementos fixados por rolagem
   (facetas e sumário) seguem funcionando. Repetir a regra no corpo faria dele
   um contexto de corte próprio e quebraria justamente esses dois. */
html{overflow-x:clip}

/* =========================================================
   28. Reserva de espaço: o que a medição apontou
   ---------------------------------------------------------
   O relatório acusou troca de layout de 0,429 no celular, com o elemento
   nomeado: o bloco da ementa, dentro de `.fm-principal--pagina`, saltando
   duas vezes. A causa principal era o diferimento do CSS, já desligado em
   inc/enqueue.php. O que sobra é reserva de espaço para o que carrega depois
   ou muda de estado.
   ========================================================= */

/* Logomarca: proporção declarada em CSS, para o navegador reservar a caixa
   antes de o arquivo chegar. */
.fm-marca img,.custom-logo{aspect-ratio:1/1}
.fm-marca--logo img,.fm-marca--logo .custom-logo{aspect-ratio:1/1}

/* Barra de acessibilidade e faixa: altura mínima declarada, para que o
   cabeçalho não desça quando elas pintam. */
.fm-atalhos__controles{min-height:3.45rem}
.fm-faixa p{min-height:2.7rem}

/* O selo de situação e a contagem entram no fluxo com altura previsível. */
.lex-situacao{min-height:1.2em}
.lex-resultado__pe{min-height:2.75rem;align-items:center}

/* Detalhes recolhidos não empurram nada ao abrir: o salto é resposta a
   interação do leitor, e interação não conta para CLS, mas a reserva evita
   que o rodapé pule sob o dedo. */
.lex-facetas__mais{contain:layout}

/* Texto livre da capa, escrito no editor de blocos. */
.lex-capa-texto{max-width:var(--fm-medida)}
.lex-capa-texto>*+*{margin-top:1.15em}

/* =========================================================
   29. Facetas de vocabulário largo
   ========================================================= */
.lex-facetas__busca{margin:0 0 .75rem}
.lex-facetas__busca input[type=search]{font-size:var(--fm-fs--1)}
.lex-facetas__largura{display:block;margin-top:.3rem;font-size:var(--fm-fs--2);
 color:var(--fm-muted);font-variant-numeric:tabular-nums}
.lex-facetas__nivel{margin:0 0 .6rem;font-size:var(--fm-fs--2);color:var(--fm-muted)}
.lex-facetas__todos{margin:.6rem 0 0;font-size:var(--fm-fs--2)}
.lex-facetas__todos a{color:var(--fm-accent-text)}

/* =========================================================
   30. Termos do vocabulário
   ========================================================= */
.lex-termos{list-style:none;display:flex;flex-wrap:wrap;gap:.5rem;margin:0;padding:0}
.lex-termos a{display:inline-flex;align-items:center;gap:.5rem;min-height:2.75rem;
 padding:0 .9rem;border:1px solid var(--fm-rule);text-decoration:none;
 font-size:var(--fm-fs--1);color:var(--fm-ink)}
.lex-termos a:hover{border-color:var(--fm-ink);background:var(--fm-paper-2)}
.lex-termos__n{color:var(--fm-muted);font-variant-numeric:tabular-nums;font-size:var(--fm-fs--2)}
.lex-termos--discreta a{border-color:transparent;border-bottom-color:var(--fm-rule);padding-inline:.35rem}
.lex-termos--discreta a:hover{border-color:var(--fm-ink);background:none}

@media print{
 .lex-termos--discreta{display:none !important}
}

/* =========================================================
   31. Índice do vocabulário
   ---------------------------------------------------------
   Uma página por taxonomia. O que se pede aqui é varredura: o olho corre a
   coluna procurando um termo que ele já conhece pelo nome. Daí a grade
   estreita, a contagem alinhada à direita em algarismos de largura fixa, e a
   barra alfabética no alto, que em tesauro de milhares de descritores é a
   única via de acesso que não exige saber a grafia exata.
   ========================================================= */
.lex-indice__abertura{max-width:var(--fm-medida);margin-bottom:clamp(2rem,5vw,3rem)}
.lex-indice__abertura>*+*{margin-top:1.15em}

.lex-indice__navegacao{display:grid;gap:1.25rem;margin:0 0 1.5rem;
 padding-bottom:1.25rem;border-bottom:2px solid var(--fm-ink)}
@media(min-width:56rem){
 .lex-indice__navegacao{grid-template-columns:minmax(0,22rem) minmax(0,1fr);align-items:end}
}
.lex-indice__busca label{font-size:var(--fm-fs--2);text-transform:uppercase;letter-spacing:.12em}

.lex-indice__alfabeto ul{list-style:none;display:flex;flex-wrap:wrap;gap:.35rem;margin:0;padding:0}
.lex-indice__alfabeto a{display:inline-flex;align-items:center;justify-content:center;
 min-width:2.75rem;min-height:2.75rem;padding:0 .6rem;border:1px solid var(--fm-rule);
 color:var(--fm-ink);text-decoration:none;font-weight:700;font-size:var(--fm-fs--1)}
.lex-indice__alfabeto a:hover{border-color:var(--fm-ink);background:var(--fm-paper-2)}
.lex-indice__alfabeto a[aria-current]{background:var(--fm-ink);color:var(--fm-paper);border-color:var(--fm-ink)}

.lex-indice__resumo{margin:0 0 1.25rem;font-size:var(--fm-fs--1);color:var(--fm-muted);
 font-variant-numeric:tabular-nums}
.lex-indice__resumo strong{color:var(--fm-ink)}
.lex-indice__limpar{margin-left:.75rem;color:var(--fm-accent-text)}
.lex-indice__vazio{color:var(--fm-muted);padding:2rem 0;border-top:1px solid var(--fm-rule)}

.lex-indice__lista{list-style:none;margin:0;padding:0}
.lex-indice__item{min-width:0}
.lex-indice__termo{display:flex;align-items:baseline;gap:.75rem;
 padding:.6rem 0;color:var(--fm-ink);text-decoration:none;border-bottom:1px solid var(--fm-rule)}
.lex-indice__termo:hover .lex-indice__nome{box-shadow:inset 0 -.1em 0 var(--fm-accent)}
.lex-indice__nome{flex:1 1 auto;min-width:0}
.lex-indice__n{flex:0 0 auto;color:var(--fm-muted);font-variant-numeric:tabular-nums;
 font-size:var(--fm-fs--2)}
.lex-indice__nota{margin:.35rem 0 .85rem;font-size:var(--fm-fs--2);color:var(--fm-muted);
 max-width:var(--fm-medida)}

/* Grade: colunas que nascem conforme a largura, sem quebrar termo longo. */
.lex-indice__lista--grade{display:grid;gap:0 clamp(1.5rem,4vw,3rem);
 grid-template-columns:repeat(auto-fill,minmax(min(100%,20rem),1fr))}

/* Árvore: genérico em versalete, específicos recuados sob ele. */
.lex-indice__lista--arvore{display:grid;gap:1.75rem clamp(1.5rem,4vw,3rem);
 grid-template-columns:repeat(auto-fill,minmax(min(100%,22rem),1fr))}
.lex-indice__lista--arvore>.lex-indice__item>.lex-indice__termo{
 border-bottom-width:2px;border-bottom-color:var(--fm-ink);
 font-weight:700;text-transform:uppercase;letter-spacing:.1em;font-size:var(--fm-fs--2)}
.lex-indice__filhos{list-style:none;margin:.5rem 0 0;padding:0}
.lex-indice__filhos li{padding:.25rem 0}
.lex-indice__filhos a{display:flex;align-items:baseline;gap:.75rem;
 color:var(--fm-ink);text-decoration:none;font-size:var(--fm-fs--1)}
.lex-indice__filhos a:hover{color:var(--fm-accent-text);text-decoration:underline}

/* Lista: uma coluna só, para vocabulário curto ou leitura sequencial. */
.lex-indice__lista--lista{max-width:var(--fm-medida)}

@media print{
 .lex-indice__navegacao,.lex-indice__limpar{display:none !important}
 .lex-indice__lista--grade,.lex-indice__lista--arvore{display:block}
}

/* =========================================================
   32. Rodapé: telefone, e-mail e dados legais
   ---------------------------------------------------------
   Estrutura idêntica à do sítio institucional. As classes do rodapé são as
   da folha institucional (fm-rodape__tit, fm-rodape__col, fm-rodape__menu,
   fm-rodape__expediente, fm-redes, fm-aviso-oab), e o que se acrescenta aqui
   é só o que a folha não previa: telefone e e-mail acionáveis e o bloco de
   dados legais.
   ========================================================= */
.lex-rodape__tel{margin:0 0 .25rem;font-size:var(--fm-fs-1);letter-spacing:-.02em;
 font-variant-numeric:tabular-nums}
.lex-rodape__tel a{text-decoration:none}
.lex-rodape__tel a:hover{text-decoration:underline;text-decoration-color:var(--fm-accent);
 text-decoration-thickness:.14em}
.lex-rodape__email{margin:0 0 1rem;font-size:var(--fm-fs--1);word-break:break-word}
.lex-rodape__legal{margin:0;font-size:var(--fm-fs--1);line-height:1.7;
 font-variant-numeric:tabular-nums;color:rgba(255,255,255,.85)}
.lex-rodape__legal strong{color:var(--fm-paper);letter-spacing:.06em}

@media print{
 .lex-rodape__tel,.lex-rodape__email,.lex-rodape__legal{color:#000}
}

/* =========================================================
   33. Widgets no rodapé
   ---------------------------------------------------------
   Cada widget da área "Rodapé: colunas" é uma coluna da grade institucional,
   e por isso recebe as classes dela. O que se acrescenta aqui é o mínimo para
   que os widgets do núcleo (menu de navegação, lista de páginas, texto) saiam
   com a mesma pinta do menu de reserva: sem marcador, respiro curto entre
   itens, sublinhado só ao passar.
   ========================================================= */
.fm-rodape .fm-widget{margin:0}
.fm-rodape .fm-widget__titulo{border-bottom:0;padding:0;margin:0 0 1rem}
.fm-rodape .fm-widget ul,
.fm-rodape .fm-widget ol{list-style:none;margin:0;padding:0}
.fm-rodape .fm-widget li{padding:.3rem 0}
.fm-rodape .fm-widget li ul{padding-left:1rem;border-left:1px solid rgba(255,255,255,.25);margin-top:.3rem}
.fm-rodape .fm-widget p{margin:0 0 .75rem}
.fm-rodape .fm-widget p:last-child{margin-bottom:0}
.fm-rodape .fm-widget .current-menu-item>a{box-shadow:inset 0 -.12em 0 var(--fm-accent)}
.fm-rodape .fm-widget img{max-width:100%;height:auto}
.fm-rodape .fm-widget select,
.fm-rodape .fm-widget input{width:100%}
