/* GERADO por scripts/gerar-public-theme-lite.mjs a partir de app/public-theme.css (BRU-3594).
   Não edite: mude o public-theme.css e rode `node scripts/gerar-public-theme-lite.mjs`. */
/* ============================================================================
   PUBLIC THEME — ilha de design das páginas públicas (.acta-public).
   Gerado a partir do mock aprovado (codex/acp_codex.html): tokens + seções
   da LP, escopados sob .acta-public, fontes remapeadas para o next/font do
   app (--font-serif/sans/mono). NÃO toca nos tokens/Tailwind do dashboard.
   Adições próprias ao fim: documento legal + blog (lista/post).
============================================================================ */
.acta-public *,
.acta-public *::before,
.acta-public *::after{ box-sizing: border-box; margin: 0; padding: 0; }
.acta-public .skip-link{ position: fixed; top: 12px; left: 12px; z-index: 10000; padding: 12px 18px; background: var(--surface-cream); color: var(--ink); border: 2px solid var(--accent); transform: translateY(-200%); }
.acta-public .skip-link:focus{ transform: translateY(0); outline: 2px solid var(--ink); outline-offset: 2px; }
.acta-public{
  
  --tinta:#0b1c11;
  --serif:var(--font-serif),'Cormorant Garamond',Georgia,serif;
  --sans:var(--font-sans),'Jost',system-ui,sans-serif;
  --mono:var(--font-mono),'JetBrains Mono',monospace;
  --ease:cubic-bezier(.16,1,.3,1);
  --pad:clamp(20px,5vw,68px); --max:1180px;

  --radius-sm:8px; --radius:14px; --radius-lg:22px; --radius-pill:100px;

  
  --surface-cream:#f9f5ec; --surface-parchment:#f1ead7;
  --surface-dark-1:#132519; --surface-dark-2:#1c3824; --surface-near-black:#0b1c11;
  --surface-moss:#203728; --surface-mist:#e8dfc9;

  
  --accent:#c9a54e; --accent-bright:#e2c47a; --accent-deep:#b8923d;

  
  --ink:#0b1c11; --ink-muted:rgba(11,28,17,.62); --ink-faint:rgba(11,28,17,.45);
  --on-dark:#f9f5ec; --on-dark-muted:rgba(249,245,236,.72); --on-dark-faint:rgba(249,245,236,.5);
  --hairline:rgba(11,28,17,.12); --hairline-dark:rgba(201,165,78,.2);

  
  --sp-xxs:4px; --sp-xs:8px; --sp-sm:12px; --sp-md:17px; --sp-lg:24px;
  --sp-xl:32px; --sp-2xl:48px; --sp-section:clamp(54px,7vw,92px);

  
  --fs-hero:clamp(2.6rem,6vw,4.6rem);
  --fs-display-lg:clamp(1.95rem,4vw,3.12rem);
  --fs-display-md:clamp(1.48rem,2.7vw,2.16rem);
  --fs-lead:clamp(1.15rem,1.7vw,1.5rem);
  --fs-body:1.0625rem; --fs-body-sm:.9375rem; --fs-caption:.875rem; --fs-fine:.75rem;
  --lh-display:1.08; --lh-lead:1.34; --lh-body:1.6;
  --track-tight:0; --track-snug:0; --track-wide:.16em;

  --shadow-product:0 5px 30px 3px rgba(11,28,17,.22);

  
  --glass-bg:rgba(11,28,17,.55);
  --glass-blur:blur(18px) saturate(140%);
  --glass-border:1px solid rgba(201,165,78,.24);
  --glass-shadow:inset 0 1px 0 rgba(255,255,255,.07), 0 18px 44px -16px rgba(11,28,17,.55);
}
.acta-public ::selection{ background: rgba(201,165,78,.32); color: inherit; }
.acta-public section[id],
.acta-public #aprende{ scroll-margin-top: 92px; }
.acta-public{
  font-family: var(--sans); background: var(--surface-cream); color: var(--ink);
  line-height: var(--lh-body); overflow-x: hidden;
  -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale;
}
.acta-public::after{
  content:''; position: fixed; inset: 0; pointer-events: none; z-index: 9999; opacity:.04;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.78' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='300' height='300' filter='url(%23g)' opacity='0.6'/%3E%3C/svg%3E");
  background-size:200px 200px;
}
.acta-public nav,
.acta-public section,
.acta-public footer,
.acta-public div{ position: relative; z-index: 1; }
.acta-public .r{ opacity:0; transform: translateY(26px); transition: opacity .9s var(--ease), transform .9s var(--ease); }
.acta-public .r.on{ opacity:1; transform:none; }
.acta-public .r.d1{transition-delay:.09s}
.acta-public .r.d2{transition-delay:.18s}
.acta-public .r.d3{transition-delay:.27s}
.acta-public .r.d4{transition-delay:.36s}
.acta-public .stagger > *{opacity:0;transform:translateY(24px);transition:opacity .9s var(--ease),transform .9s var(--ease);transition-delay:calc(var(--i,0)*90ms)}
.acta-public .stagger.on > *{opacity:1;transform:none}
@keyframes acta-topo{ from { opacity:0; transform:translateY(26px); } }
@keyframes acta-topo-h1{ from { transform:translateY(26px); } }
@media (prefers-reduced-motion: reduce){
  .acta-public .r,
.acta-public .stagger>*{opacity:1!important;transform:none!important;transition:none!important}
  .acta-public *{animation-duration:.01ms!important}
}
/* Header do site. Era `.acta-public nav` — o ELEMENTO — e todo <nav>
   semântico virava header flutuante: o rodapé "Provimento anterior" apareceu
   pregado no topo do celular, cobrindo o título do post. Seletor de elemento
   pra layout de um componente específico é bomba de tempo; a classe diz de
   quem a regra é. */
.acta-public nav.site-nav{
  position: fixed; top:0; left:0; right:0; z-index:200; padding:0 var(--pad); height:68px;
  display:flex; align-items:center; justify-content:space-between; gap:24px;
  border:1px solid transparent;
  transition: background .55s var(--ease), border-color .55s var(--ease), backdrop-filter .55s var(--ease),
              height .55s var(--ease), box-shadow .55s var(--ease), top .55s var(--ease),
              left .55s var(--ease), right .55s var(--ease), border-radius .55s var(--ease), padding .55s var(--ease);
}
.acta-public nav.site-nav.solid{
  top:12px; left:clamp(12px,3vw,32px); right:clamp(12px,3vw,32px);
  padding:0 clamp(18px,2.2vw,32px); height:58px; border-radius:var(--radius-pill);
  background:rgba(11,28,17,.72); backdrop-filter:var(--glass-blur); -webkit-backdrop-filter:var(--glass-blur);
  border-color:rgba(201,165,78,.28); box-shadow:var(--glass-shadow);
}
.acta-public .nav-brand{ display:flex; align-items:center; gap:10px; text-decoration:none; }
.acta-public .brand-logo{ display:block; width:auto; height:34px; object-fit:contain; }

.acta-public .nav-links{
  position:absolute; left:50%; transform:translateX(-50%);
  display:flex; align-items:center; gap:4px;
  padding:6px; border-radius:var(--radius-pill);
  background:rgba(249,245,236,.07); border:1px solid rgba(249,245,236,.12);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.05);
}
.acta-public .nav-links a{
  font-family:var(--sans); font-size:.85rem; font-weight:400; letter-spacing:.01em; color:var(--on-dark-muted); text-decoration:none;
  padding:7px 13px; border-radius:var(--radius-pill); border:1px solid transparent;
  transition:color .2s, background .2s, border-color .2s;
}
.acta-public .nav-links a:hover{ color: var(--on-dark); background:rgba(249,245,236,.08); border-color:rgba(201,165,78,.18); }
.acta-public .nav-right{ display:flex; align-items:center; gap:20px; }
.acta-public .nav-login{ min-height:40px; display:inline-flex; align-items:center; color:var(--on-dark-muted); text-decoration:none; font-size:.85rem; transition:color .2s; }
.acta-public .nav-login:hover{ color:var(--on-dark); }
.acta-public .btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.55rem;
  font-family:var(--sans); font-size:.95rem; font-weight:500; letter-spacing:.01em;
  text-decoration:none; border:1px solid transparent; cursor:pointer;
  padding:.85rem 1.75rem; border-radius:var(--radius-pill);
  transition: background .25s var(--ease), color .25s var(--ease), border-color .25s var(--ease), transform .2s var(--ease);
}
.acta-public .btn:active{ transform: scale(.97); }
.acta-public .btn-gold{ background:var(--accent); color:var(--tinta); font-weight:600; }
.acta-public .btn-gold:hover{ background:var(--accent-bright); }
.acta-public .btn-ghost{ background:transparent; color:var(--on-dark); border-color:rgba(249,245,236,.4); }
.acta-public .btn-ghost:hover{ background:rgba(249,245,236,.08); border-color:rgba(249,245,236,.7); }
.acta-public .btn-nav{ padding:.6rem 1.3rem; font-size:.85rem; }
.acta-public .tile{ padding: var(--sp-section) var(--pad); }
.acta-public .tile-inner{ width:100%; max-width: var(--max); margin:0 auto; }
.acta-public .field{ position:relative; }
.acta-public .field-dark{ color:var(--on-dark);
  background:
    radial-gradient(90% 46% at 88% 8%, rgba(201,165,78,.1), transparent 55%),
    radial-gradient(70% 38% at 10% 42%, rgba(232,223,201,.07), transparent 60%),
    linear-gradient(180deg,var(--surface-near-black) 0%,#122318 30%,var(--surface-dark-1) 68%,var(--surface-near-black) 100%); }
.acta-public .h-display{ font-family:var(--serif); font-weight:600; font-size:var(--fs-display-lg); line-height:var(--lh-display); letter-spacing:var(--track-snug); text-wrap:balance; }
.acta-public .lead{ font-family:var(--sans); font-weight:300; font-size:var(--fs-lead); line-height:var(--lh-lead); color:var(--ink-muted); }
.acta-public .field-dark .lead{ color: var(--on-dark-muted); }
.acta-public .body{ font-size:var(--fs-body); line-height:var(--lh-body); color:var(--ink-muted); max-width:62ch; }
.acta-public .field-dark .body{ color: var(--on-dark-muted); }
.acta-public em.gold{ font-style:italic; color:var(--accent); }
/* Ênfase editorial: negrito sobe pra tinta cheia. */
.acta-public .body strong{ font-weight:600; color:var(--ink); }
.acta-public .field-dark .body strong{ color:var(--on-dark); }
.acta-public .body + .body{ margin-top:var(--sp-sm); }
.acta-public .bs-fog{ position:relative; margin:16px 0; padding:16px 18px; border-radius:var(--radius); background:rgba(201,165,78,.05); border:1px solid rgba(201,165,78,.14); overflow:hidden; }
.acta-public .hero{ flex:1; min-height:auto; display:flex; flex-direction:column; justify-content:center; padding-top:clamp(104px,13vh,136px); padding-bottom:clamp(44px,7vh,76px);
  background:
    radial-gradient(45% 58% at 82% 47%, rgba(201,165,78,.14), transparent 62%),
    linear-gradient(180deg, var(--surface-near-black) 0%, #10231a 46%, var(--surface-near-black) 100%); }
.acta-public .hero h1{ font-family:var(--serif); font-weight:600; font-size:clamp(2.7rem,6.6vw,5.4rem); line-height:1.05; letter-spacing:var(--track-tight); margin:0 0 clamp(22px,2.6vw,32px); text-wrap:balance; }
.acta-public .quote-sound{
  position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); z-index:2;
  display:inline-flex; align-items:center; gap:7px;
  font-family:var(--mono); font-size:.6rem; font-weight:500; letter-spacing:.08em; text-transform:uppercase;
  color:var(--on-dark); background:rgba(11,28,17,.5);
  border:1px solid rgba(249,245,236,.28); border-radius:var(--radius-pill);
  backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px);
  padding:7px 13px; cursor:pointer; transition:background .2s, border-color .2s, opacity .2s;
}
.acta-public .quote-sound:hover{ background:rgba(11,28,17,.72); border-color:rgba(201,165,78,.5); }
.acta-public .quote-sound.on{ opacity:0; pointer-events:none; visibility:hidden; }
.acta-public .method-signature{
  display:flex; align-items:center; gap:14px;
  margin-top:clamp(28px,4vw,46px); padding-top:clamp(22px,3vw,30px);
  border-top:1px solid rgba(201,165,78,.18);
}
.acta-public .method-signature img{
  width:54px; height:54px; border-radius:50%; object-fit:cover; flex-shrink:0;
  border:1px solid rgba(201,165,78,.38); box-shadow:0 10px 24px -16px rgba(0,0,0,.7);
}
.acta-public .method-signature .t{ font-size:var(--fs-body-sm); color:rgba(249,245,236,.72); line-height:1.45; max-width:46ch; }
.acta-public .method-signature .t b{ color:var(--on-dark); font-weight:500; }
@keyframes acta-steptravel{ 0%{left:16.66%;opacity:0} 12%{opacity:1} 50%{left:50%} 88%{opacity:1} 100%{left:83.34%;opacity:0} }
/* Campos do formulário real de convite: o reset universal (.acta-public *{padding:0})
   zera as utilities de padding do Tailwind (px-3, pl-9), deixando o placeholder
   colado na borda. Restaura o padding pretendido (horizontal ~1.1rem como no mock),
   preservando o recuo maior do campo de busca com ícone (ServentiaPicker). */
.acta-public form input[type="text"],
.acta-public form input[type="email"],
.acta-public form input[type="tel"],
.acta-public form select,
.acta-public form textarea{ padding: 0 1.1rem; }
.acta-public footer{ background:#061b10; color:var(--on-dark-muted); padding:clamp(60px,8vw,92px) var(--pad) clamp(54px,7vw,78px); }
.acta-public .foot-inner{ max-width:var(--max); margin:0 auto; }
.acta-public .foot-grid{ display:grid; grid-template-columns:minmax(240px,1.1fr) .62fr .62fr .62fr; gap:clamp(36px,6vw,96px); align-items:start; }
.acta-public .foot-brand{ max-width:390px; }
.acta-public .foot-logo-row{ display:flex; align-items:center; gap:16px; margin-bottom:22px; }
.acta-public .foot-logo{ display:block; width:auto; height:58px; object-fit:contain; }
.acta-public .foot-tag{ font-size:var(--fs-body-sm); color:rgba(249,245,236,.48); max-width:38ch; line-height:1.55; }
.acta-public .foot-tag span{ display:block; }
.acta-public .foot-col{ display:flex; flex-direction:column; align-items:flex-start; gap:18px; }
.acta-public .foot-title{ font-family:var(--mono); font-size:.68rem; font-weight:600; letter-spacing:.32em; text-transform:uppercase; color:var(--accent); margin-bottom:4px; }
.acta-public .foot-col a,
.acta-public .foot-copy{
  font-family:var(--sans); font-size:var(--fs-body-sm); font-weight:400; line-height:inherit;
  color:rgba(249,245,236,.68); text-decoration:none; transition:color .2s;
}
.acta-public .foot-col a:hover,
.acta-public .foot-copy:hover{ color:var(--accent); }
.acta-public .foot-copy-wrap{ position:relative; display:flex; align-items:center; }
.acta-public .foot-copy{ appearance:none; border:0; background:none; padding:0; cursor:pointer; }
.acta-public .foot-copy-status{
  position:absolute; left:calc(100% + 12px); top:50%; transform:translate(6px,-50%);
  width:max-content; padding:5px 9px; border:1px solid rgba(201,165,78,.28);
  border-radius:var(--radius-pill); background:#102519; color:var(--accent-bright);
  font-family:var(--mono); font-size:.58rem; letter-spacing:.04em;
  opacity:0; pointer-events:none; transition:opacity .2s,transform .2s;
}
.acta-public .foot-copy-status.show{ opacity:1; transform:translate(0,-50%); }
.acta-public .out-eyebrow{ display:inline-block; font-family:var(--mono); font-size:.66rem; font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:var(--accent); margin-bottom:var(--sp-sm); }
.acta-public .hero-video{ width:100%; height:100%; object-fit:contain; display:block; }
.acta-public .doc{ display:flex; align-items:center; gap:10px; padding:9px 0; border-bottom:1px solid rgba(249,245,236,.06); }
.acta-public .doc:last-child{ border-bottom:none; }
/* O corte do trilho de navegação vive num bloco só, no fim do arquivo
   (`@media (max-width:1260px)`): eram três blocos declarando as mesmas regras
   em dois cortes diferentes, e o de 1260 já cobre toda a faixa do de 1050. */
@media (max-width:1050px){
  /* Rodapé com quatro colunas: abaixo de 1050px a marca ocupa a linha inteira e as três colunas de links ficam lado a lado. */
  .acta-public .foot-grid{grid-template-columns:repeat(3,1fr);gap:34px 40px}
  .acta-public .foot-brand{grid-column:1/-1;max-width:none}
}
@media (max-width:900px){
  .acta-public .nav-links{display:none}
  .acta-public .foot-grid{grid-template-columns:1fr;gap:34px}
  .acta-public .foot-brand{max-width:none}
  /* Alvo de toque ≥44x44 (Task 8 — auditoria mobile 2026-08-08) */
  .acta-public .nav-right .btn{min-height:44px}
  .acta-public .quote-sound{min-height:44px}
  .acta-public .foot-col a,
.acta-public .foot-copy{min-height:44px;display:inline-flex;align-items:center;padding:0 6px;margin:0 -6px}
}
@media (max-width:700px){
  .acta-public{
    --fs-hero:clamp(2.45rem,12vw,3.25rem);
    --fs-display-lg:clamp(2rem,9vw,2.65rem);
    --sp-section:clamp(42px,12vw,60px);
  }
  .acta-public nav.site-nav{height:64px;gap:12px}
  .acta-public .nav-brand{gap:7px}
  .acta-public .nav-right{gap:10px}
  .acta-public .nav-right a:first-child{display:none}
  .acta-public .nav-right .btn{padding:.58rem .95rem!important;font-size:.78rem!important}
  .acta-public .hero{min-height:auto;padding-top:96px;padding-bottom:46px}
  .acta-public .tile{padding-left:clamp(18px,5vw,28px);padding-right:clamp(18px,5vw,28px)}
}
@media (max-width:560px){
  .acta-public .brand-logo{height:28px}
  .acta-public .foot-logo{height:46px}
  .acta-public .foot-logo-row{gap:12px}
}

/* ─── ADIÇÕES (não estão no mock da LP): legal + blog ─── */
.acta-public{
  /* ─── DOCUMENTO LEGAL (termos / privacidade) ─── */
  & .legal-wrap { width:min(100%,780px); margin:0 auto; }
  & .legal-head { margin-bottom:clamp(38px,5vw,58px); }
  & .legal-head .h-display { margin:0; }
  & .legal-rule { width:100%; height:1px; margin-top:clamp(28px,4vw,42px);
    background:linear-gradient(90deg,rgba(184,146,61,.42),rgba(184,146,61,.08),transparent); }
  & .legal-body { font-family:var(--sans); font-size:clamp(1rem,1.1vw,1.075rem); line-height:1.76; color:rgba(11,28,17,.74); }
  & .legal-body > section + section { margin-top:clamp(34px,4.5vw,46px); padding-top:clamp(34px,4.5vw,46px); border-top:1px solid rgba(11,28,17,.09); }
  & .legal-body .legal-summary { padding-left:clamp(18px,2.6vw,28px); border-left:2px solid rgba(184,146,61,.52); font-size:clamp(1.04rem,1.3vw,1.14rem); color:rgba(11,28,17,.8); }
  & .legal-body h2 { font-family:var(--serif); font-weight:600; font-size:clamp(1.72rem,2.6vw,2.12rem); line-height:1.14; letter-spacing:var(--track-snug); color:var(--ink); margin-bottom:clamp(14px,2vw,20px); }
  & .legal-body p + p { margin-top:clamp(14px,1.8vw,18px); }
  & .legal-body ul { display:grid; gap:10px; padding-left:0; margin-top:clamp(14px,1.8vw,18px); }
  & .legal-body ul + p { margin-top:clamp(18px,2.2vw,24px); }
  & .legal-body li + li { margin-top:0; }
  & .legal-body li::marker { color:var(--accent-deep); }
  & .legal-body .legal-dash-list { list-style:none; padding-left:1.25em; }
  & .legal-body .legal-dash-list li { position:relative; }
  & .legal-body .legal-dash-list li::before { content:'-'; position:absolute; right:calc(100% + .55em); color:var(--accent-deep); }
  & .legal-body strong { color:var(--ink); font-weight:500; }
  & .legal-body a { color:var(--accent-deep); text-decoration:underline; text-decoration-color:rgba(184,146,61,.34); text-underline-offset:4px; }
  & .legal-body a:hover { color:var(--ink); text-decoration-color:rgba(11,28,17,.32); }
  & .legal-updated { margin-top:clamp(46px,6vw,64px); padding-top:var(--sp-lg); border-top:1px solid rgba(184,146,61,.22);
    font-family:var(--mono); font-size:.78rem; font-style:italic; letter-spacing:.01em; color:rgba(11,28,17,.48); }

  /* ─── BLOG · vitrine (lista) ─── */
  & .blog-hero { padding-top:clamp(118px,13vh,156px); padding-bottom:clamp(54px,7vw,86px); }
  & .blog-title { width:max-content; max-width:100%; color:var(--on-dark); }
  & .blog-title em { display:block; white-space:nowrap; }
  & .blog-hero .lead { max-width:46ch; margin-top:clamp(18px,2.4vw,28px); color:rgba(249,245,236,.78); }
  /* Saída para o acervo: os provimentos saíram desta grade e quem chegou aqui
     atrás de norma precisa de um caminho visível para /provimentos. */
  & .blog-atalho { max-width:46ch; margin-top:clamp(12px,1.6vw,18px); font-size:.94rem; color:rgba(249,245,236,.66); }
  & .blog-atalho a { color:var(--accent); text-decoration:underline; text-underline-offset:4px; text-decoration-color:rgba(201,165,78,.45); transition:text-decoration-color .2s var(--ease); }
  & .blog-atalho a:hover, & .blog-atalho a:focus-visible { text-decoration-color:var(--accent); }
  & .blog-list { padding-top:clamp(46px,6vw,76px); padding-bottom:clamp(78px,9vw,124px); }
  & .blog-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:clamp(18px,2vw,28px); }
  /* A altura mínima existia para acomodar a capa 16/9. Sem capa ela deixava um
     vão morto entre o resumo e o "Ler artigo"; agora só vale para o cartão que
     de fato tem imagem. Os cartões da mesma fileira continuam da mesma altura
     (grade estica) e o `flex:1` do resumo mantém o "Ler artigo" no rodapé. */
  & .blog-card { display:flex; flex-direction:column; text-decoration:none; border:1px solid rgba(184,146,61,.18); border-radius:var(--radius); background:rgba(255,255,255,.48); padding:clamp(18px,2vw,24px); box-shadow:0 18px 48px -40px rgba(11,28,17,.38); transition:transform .25s var(--ease), border-color .25s var(--ease), box-shadow .25s var(--ease), background .25s var(--ease); }
  & .blog-card:hover { transform:translateY(-3px); border-color:rgba(184,146,61,.38); background:rgba(255,255,255,.68); box-shadow:0 26px 62px -42px rgba(11,28,17,.48); }
  & .blog-card:has(.blog-thumb) { min-height:360px; }
  & .blog-thumb { position:relative; aspect-ratio:16/9; margin-top:var(--sp-lg); border-radius:var(--radius-sm); overflow:hidden; border:1px solid rgba(184,146,61,.18); background:linear-gradient(135deg, rgba(11,28,17,.88), rgba(32,55,40,.82) 52%, rgba(201,165,78,.22)), repeating-linear-gradient(90deg, rgba(249,245,236,.08) 0 1px, transparent 1px 18px); }
  & .blog-thumb img { object-fit:cover; }
  & .blog-tag { display:inline-flex; width:max-content; max-width:100%; margin-bottom:var(--sp-md); font-family:var(--mono); font-size:.62rem; letter-spacing:.14em; text-transform:uppercase; color:var(--accent-deep); }
  & .blog-card h2 { font-family:var(--serif); font-size:clamp(1.55rem,2.2vw,2rem); font-weight:600; line-height:1.12; color:var(--ink); letter-spacing:var(--track-snug); margin-bottom:var(--sp-sm); transition:color .2s; }
  & .blog-card:hover h2 { color:var(--accent-deep); }
  /* Data do artigo no cartão. Mesma família e mesmo peso do rótulo de UF, um
     tom mais apagado: informa sem competir com o título. */
  & .blog-data { display:block; margin-bottom:var(--sp-sm); font-family:var(--mono); font-size:.62rem; letter-spacing:.12em; text-transform:uppercase; color:rgba(11,28,17,.46); }
  & .blog-card p { flex:1; font-size:var(--fs-body-sm); line-height:1.58; color:rgba(11,28,17,.66); display:-webkit-box; -webkit-line-clamp:3; line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
  & .blog-read { display:inline-flex; align-items:center; gap:8px; margin-top:var(--sp-lg); font-family:var(--mono); font-size:.66rem; letter-spacing:.12em; text-transform:uppercase; color:var(--accent-deep); }
  & .blog-read .arr { transition:transform .2s var(--ease); }
  & .blog-card:hover .blog-read .arr { transform:translateX(4px); }
  & .blog-empty { padding:clamp(70px,10vw,120px) 0; text-align:center; color:rgba(11,28,17,.56); }
  /* ─── Abas e busca da vitrine (BRU-185) ─── */
  & .blog-controles { display:flex; flex-direction:column; gap:var(--sp-md); margin-bottom:clamp(28px,3.6vw,44px); }
  & .blog-abas { display:inline-flex; width:max-content; max-width:100%; padding:4px; gap:4px; border:1px solid var(--hairline); border-radius:999px; background:var(--surface-cream); }
  & .blog-aba { display:inline-flex; align-items:center; gap:8px; min-height:44px; padding:0 18px; border:0; border-radius:999px; background:transparent; font-family:var(--sans); font-size:var(--fs-body-sm); font-weight:500; color:var(--ink-muted); cursor:pointer; transition:background .2s var(--ease), color .2s var(--ease); }
  & .blog-aba:hover { color:var(--ink); }
  & .blog-aba[aria-selected="true"] { background:var(--ink); color:var(--on-dark); }
  & .blog-aba:focus-visible { outline:2px solid var(--accent-deep); outline-offset:2px; }
  & .blog-aba-total { font-family:var(--mono); font-size:var(--fs-fine); letter-spacing:var(--track-wide); font-variant-numeric:tabular-nums lining-nums; opacity:.72; }
  /* O realce do .prov-item vive em z-index:-1; o isolamento o mantém sobre o
     fundo do campo, e não atrás dele. */
  & .blog-prov-lista { margin-top:0; isolation:isolate; }
  & .blog-busca-vazia { padding:clamp(40px,6vw,72px) 0; text-align:center; color:rgba(11,28,17,.56); }

  /* ─── BLOG · artigo (post) ─── */
  & .post-shell { padding-top:clamp(94px,11vh,128px); padding-bottom:clamp(78px,9vw,124px); }
  & .post-wrap { width:min(100%,760px); margin-inline:auto; }
  & .post-back { display:inline-flex; align-items:center; gap:8px; margin-bottom:clamp(22px,3vw,34px); font-family:var(--mono); font-size:.68rem; letter-spacing:.13em; text-transform:uppercase; color:var(--accent-deep); text-decoration:none; }
  & .post-back:hover { color:var(--ink); }
  & .post-meta { display:flex; flex-wrap:wrap; gap:10px 14px; margin-bottom:var(--sp-md); font-family:var(--mono); font-size:.68rem; letter-spacing:.13em; text-transform:uppercase; color:var(--accent-deep); }
  & .post-title { font-family:var(--serif); font-size:clamp(2.1rem,3.6vw,3.5rem); font-weight:500; line-height:1.04; letter-spacing:var(--track-snug); color:var(--ink); max-width:24ch; text-wrap:balance; }
  /* O teto era 4.45rem com medida de 18ch — desenho de manchete curta. Um
     título de 99 caracteres (o gerador não os limitava) virava seis linhas de
     71px e tomava a tela inteira no monitor, enquanto no celular parecia bem.
     Teto menor, medida maior e `text-wrap:balance` para as linhas saírem
     parelhas em vez de uma órfã no fim. */
  & .post-lead { max-width:42ch; margin-top:clamp(20px,3vw,30px); font-size:clamp(1.12rem,1.7vw,1.42rem); line-height:1.38; color:rgba(11,28,17,.68); }
  /* Assinatura editorial: quem responde pelo texto, logo abaixo do lead e
     acima da leitura. Filete de um lado só, sem caixa — é uma credencial, não
     um aviso. */
  & .post-assinatura { display:flex; flex-wrap:wrap; align-items:baseline; gap:4px 10px; max-width:62ch; margin-top:clamp(18px,2.4vw,26px); padding-left:14px; border-left:2px solid rgba(184,146,61,.42); font-size:var(--fs-body-sm); line-height:1.5; color:rgba(11,28,17,.62); }
  & .post-assinatura-rotulo { font-family:var(--mono); font-size:.62rem; letter-spacing:.13em; text-transform:uppercase; color:var(--accent-deep); flex-basis:100%; }
  & .post-assinatura-nome { font-weight:600; color:var(--ink); }
  & .post-assinatura-credencial { color:rgba(11,28,17,.58); }
  & .post-assinatura-revisao { flex-basis:100%; color:rgba(11,28,17,.58); }
  & .post-cover { position:relative; aspect-ratio:1200/630; margin:clamp(26px,3.5vw,40px) 0 0; border-radius:var(--radius); overflow:hidden; border:1px solid rgba(184,146,61,.22); box-shadow:0 30px 80px -58px rgba(11,28,17,.62); }
  & .post-cover img { object-fit:contain; }
  & .blog-prose { margin-top:clamp(34px,4.8vw,56px); font-size:1.09375rem; line-height:1.76; color:rgba(11,28,17,.76); }
  & .blog-prose > * + * { margin-top:1.25em; }
  & .blog-prose h2, & .blog-prose h3 { font-family:var(--serif); font-weight:500; line-height:1.08; letter-spacing:var(--track-snug); color:var(--ink); }
  & .blog-prose h2 { margin-top:2.15em; font-size:clamp(2rem,3.3vw,2.85rem); }
  & .blog-prose h3 { margin-top:1.9em; font-size:clamp(1.48rem,2.2vw,2rem); }
  & .blog-prose p { max-width:70ch; }
  & .blog-prose a { color:var(--accent-deep); text-decoration:underline; text-decoration-color:rgba(184,146,61,.32); text-underline-offset:4px; }
  & .blog-prose strong { color:var(--ink); font-weight:500; }
  & .blog-prose ul, & .blog-prose ol { padding-left:1.2em; }
  & .blog-prose li + li { margin-top:.55em; }
  & .blog-prose li::marker { color:var(--accent-deep); }
  & .blog-prose blockquote { margin:2em 0; padding:clamp(20px,3vw,30px) clamp(20px,3vw,34px); border-left:3px solid var(--accent); border-radius:0 var(--radius) var(--radius) 0; background:rgba(255,255,255,.48); box-shadow:0 18px 52px -48px rgba(11,28,17,.45); font-family:var(--serif); font-size:clamp(1.35rem,2.2vw,1.78rem); line-height:1.28; color:var(--ink); }
  & .blog-prose code { font-family:var(--mono); font-size:.86em; color:var(--ink); background:rgba(201,165,78,.14); border:1px solid rgba(184,146,61,.18); border-radius:6px; padding:.1em .38em; }
  & .blog-prose img { max-width:100%; border-radius:var(--radius-sm); border:1px solid rgba(11,28,17,.1); }
  & .post-cta { margin-top:clamp(58px,8vw,94px); padding:clamp(28px,4vw,44px); border-radius:var(--radius-lg); background:linear-gradient(135deg, rgba(19,37,25,.98), rgba(32,55,40,.96)); border:1px solid rgba(201,165,78,.24); box-shadow:var(--shadow-product); color:var(--on-dark); }
  & .post-cta h2 { max-width:16ch; font-family:var(--serif); font-size:clamp(2rem,3.4vw,3rem); font-weight:500; line-height:1.02; margin-bottom:var(--sp-md); color:var(--on-dark); }
  & .post-cta p { max-width:46ch; color:var(--on-dark-muted); margin-bottom:var(--sp-lg); }
  & .post-foot { margin-top:clamp(36px,5vw,60px); padding-top:var(--sp-xl); border-top:1px solid rgba(11,28,17,.1); }
}
@keyframes hpFio{ from { transform:scaleX(0); } to { transform:scaleX(1); } }
@keyframes hpSobe{ from { opacity:0; transform:translateY(7px); } to { opacity:1; transform:none; } }
@keyframes hpTraça{ from { stroke-dashoffset:1; } to { stroke-dashoffset:0; } }
@keyframes hpSurge{ from { opacity:0; } to { opacity:1; } }

/* ══ NAV MOBILE + BOTÃO DE MENU (2026-08-08) ══
   Antes, abaixo do corte de largura os links eram só escondidos: o celular
   ficava sem navegação nenhuma. O botão abre uma ilha escura com os mesmos
   links. O corte único está no fim do arquivo (`max-width:1260px`). */
.acta-public .nav-burger{ display:none; flex-direction:column; justify-content:center; gap:4px; width:40px; height:40px; padding:0 8px; background:transparent; border:1px solid rgba(249,245,236,.22); border-radius:10px; cursor:pointer; }
.acta-public .nav-burger span{ display:block; height:1.5px; background:var(--on-dark); border-radius:2px; transition:transform .3s var(--ease), opacity .3s var(--ease); }
.acta-public .nav-burger[aria-expanded="true"] span:nth-child(1){ transform:translateY(5.5px) rotate(45deg); }
.acta-public .nav-burger[aria-expanded="true"] span:nth-child(2){ opacity:0; }
.acta-public .nav-burger[aria-expanded="true"] span:nth-child(3){ transform:translateY(-5.5px) rotate(-45deg); }
.acta-public .nav-menu{ position:fixed; top:82px; left:clamp(12px,3vw,32px); right:clamp(12px,3vw,32px); z-index:199; display:flex; flex-direction:column; padding:10px; border-radius:var(--radius); background:rgba(11,28,17,.97); backdrop-filter:var(--glass-blur); -webkit-backdrop-filter:var(--glass-blur); border:1px solid rgba(201,165,78,.3); box-shadow:0 30px 80px -30px rgba(0,0,0,.7); animation:navMenuEntra .28s var(--ease) both; }
@keyframes navMenuEntra{ from { opacity:0; transform:translateY(-8px); } to { opacity:1; transform:none; } }
.acta-public .nav-menu a{ padding:13px 16px; border-radius:10px; text-decoration:none; color:var(--on-dark-muted); font-size:.95rem; }
.acta-public .nav-menu a:hover{ color:var(--on-dark); background:rgba(249,245,236,.07); }
.acta-public .nav-menu .nav-menu-entrar{ margin-top:6px; border-top:1px solid rgba(249,245,236,.1); border-radius:0 0 10px 10px; color:var(--accent); }
/* O botão de menu e os alvos de toque ≥44x44 (Task 8, auditoria mobile
   2026-08-08) acendem no bloco único de `max-width:1260px`, no fim do arquivo,
   junto com o corte do trilho de links. */
@media (max-width:560px){
  /* "Entrar" vive dentro do menu; fora dele não cabe ao lado do CTA. */
  .acta-public .nav-login{ display:none; }
}
@media (prefers-reduced-motion: reduce){
  .acta-public .nav-menu{ animation:none; }
}
@keyframes vtTraça{ from { stroke-dashoffset:1; } to { stroke-dashoffset:0; } }
@keyframes vtSurge{ from { opacity:0; } to { opacity:1; } }
@keyframes vtSobe{ from { opacity:0; transform:translateY(8px); } to { opacity:1; transform:none; } }
@keyframes vvTraca{ from { stroke-dashoffset:1; } to { stroke-dashoffset:0; } }
@keyframes vvCresceX{ from { transform:scaleX(0); } to { transform:scaleX(1); } }
@keyframes vvCresceY{ from { transform:scaleY(0); } to { transform:scaleY(1); } }
@keyframes vvSurge{ from { opacity:0; } to { opacity:1; } }
@keyframes conviteBrilhoA{ from { transform:translate3d(0,0,0); } to { transform:translate3d(-70px,50px,0); } }
@keyframes conviteBrilhoB{ from { transform:translate3d(0,0,0); } to { transform:translate3d(80px,-60px,0); } }
.acta-public #convite .tile-inner{ position:relative; z-index:1; }

/* ═══════════════════════════════════════════════════════════════════════════
   ACERVO DE PROVIMENTOS (/provimentos)
   ═══════════════════════════════════════════════════════════════════════════
   Referência: índice remissivo de obra jurídica impressa. Nenhuma imagem,
   nenhum cartão, nenhuma sombra — a hierarquia é tipográfica: ano em serifa
   grande, filete, número em versalete monoespaçado, título em serifa, ementa
   em duas linhas. O ouro entra em filete, foco e realce de linha; NUNCA como
   cor de texto pequeno sobre o campo claro (ver nota de contraste abaixo).

   CONTRASTE (fundo de pior caso = --surface-parchment #f1ead7):
     --ink        14,7:1  ✔   --ink-muted  4,66:1  ✔ (AA)
     --ink-faint   2,82:1 ✘   --accent     1,95:1  ✘   --accent-deep 2,42:1 ✘
   Por isso a meta, a contagem do ano e a ementa usam --ink-muted (o mínimo que
   passa AA), o número do provimento usa --ink em peso 600 (ele se destaca por
   peso, não por cor), e --ink-faint fica só nos separadores decorativos, que
   não carregam informação.
   ══════════════════════════════════════════════════════════════════════════ */
.acta-public{
  /* ─── Cabeçalho e casca ─── */
  /* O topo folgado é o que mantém o título fora da faixa da nav: a ilha vive
     em top:12px com 58px de altura (borda inferior em 70px). */
  & .prov-hero { padding-top:clamp(118px,13vh,156px); padding-bottom:clamp(54px,7vw,86px); }
  & .prov-hero .lead { max-width:52ch; margin-top:clamp(18px,2.4vw,28px); color:rgba(249,245,236,.78); }
  & .prov-shell { padding-top:clamp(40px,5vw,64px); padding-bottom:clamp(78px,9vw,124px); }

  /* ─── Busca ─── */
  & .prov-busca-linha { display:flex; flex-wrap:wrap; align-items:center; gap:var(--sp-sm) var(--sp-md); }
  & .prov-busca {
    flex:1 1 220px; min-width:0; height:48px; padding:0 var(--sp-md);
    font-family:var(--sans); font-size:var(--fs-body); color:var(--ink);
    background:var(--surface-cream); border:1px solid var(--hairline);
    border-radius:var(--radius-sm); appearance:none;
    transition:border-color .2s var(--ease), box-shadow .2s var(--ease);
  }
  & .prov-busca::placeholder { color:var(--ink-muted); }
  & .prov-busca:hover { border-color:rgba(11,28,17,.22); }
  & .prov-busca:focus-visible {
    outline:none; border-color:var(--accent);
    box-shadow:0 0 0 3px rgba(201,165,78,.3);
  }
  & .prov-contador {
    font-family:var(--mono); font-size:var(--fs-fine); letter-spacing:var(--track-wide);
    text-transform:uppercase; color:var(--ink-muted); white-space:nowrap;
    font-variant-numeric:tabular-nums lining-nums;
  }

  /* ─── Réguas de ano ─── */
  & .prov-lista { margin-top:clamp(34px,4.5vw,52px); }
  & .prov-grupo + .prov-grupo { margin-top:var(--sp-2xl); }
  & .prov-ano {
    display:flex; align-items:baseline; gap:var(--sp-md);
    margin-bottom:var(--sp-xs); scroll-margin-top:96px;
  }
  & .prov-ano-numero {
    font-family:var(--serif); font-weight:500; font-size:clamp(1.5rem,2.6vw,2.15rem);
    line-height:1; color:var(--ink); font-variant-numeric:tabular-nums lining-nums;
  }
  /* Filete com entrada dourada, no mesmo idioma da .legal-rule. */
  & .prov-ano-filete {
    flex:1 1 var(--sp-lg); min-width:var(--sp-lg); height:1px;
    background:linear-gradient(90deg, rgba(201,165,78,.55), var(--hairline) 16%, var(--hairline));
  }
  & .prov-ano-contagem {
    font-family:var(--mono); font-size:var(--fs-fine); letter-spacing:var(--track-wide);
    text-transform:uppercase; color:var(--ink-muted); white-space:nowrap;
    font-variant-numeric:tabular-nums lining-nums;
  }

  /* ─── Linha do acervo ─── */
  & .prov-item {
    position:relative; display:block; padding:var(--sp-md) 0;
    border-bottom:1px solid var(--hairline); text-decoration:none; color:inherit;
  }
  /* O realce sangra 12px para fora sem deslocar nada: assim o filete do ano e a
     borda da linha continuam alinhados à mesma coluna de texto. z-index:-1 o
     mantém atrás do conteúdo da linha, dentro do .prov-grupo. */
  & .prov-item::before {
    content:''; position:absolute; z-index:-1; inset:0 calc(var(--sp-sm) * -1);
    border-radius:var(--radius-sm); background:rgba(201,165,78,.06);
    opacity:0; transition:opacity .2s var(--ease);
  }
  & .prov-item:hover::before, & .prov-item:focus-visible::before { opacity:1; }
  & .prov-item:focus-visible { outline:2px solid var(--accent-deep); outline-offset:4px; }

  & .prov-meta {
    display:flex; flex-wrap:wrap; align-items:baseline; gap:var(--sp-xxs) var(--sp-xs);
    font-family:var(--mono); font-size:.72rem; letter-spacing:var(--track-wide);
    text-transform:uppercase; color:var(--ink-muted);
  }
  & .prov-numero { color:var(--ink); font-weight:600; font-variant-numeric:tabular-nums lining-nums; }
  & .prov-meta > span[aria-hidden="true"] { color:var(--ink-faint); }

  & .prov-titulo {
    display:block; margin-top:var(--sp-xs); max-width:62ch;
    font-family:var(--serif); font-weight:500; font-size:clamp(1.05rem,1.6vw,1.3rem);
    line-height:1.22; color:var(--ink);
    text-decoration:underline; text-decoration-color:transparent; text-underline-offset:5px;
    transition:transform .2s var(--ease), text-decoration-color .2s var(--ease);
  }
  /* Deslocamento sutil + sublinhado dourado. A cor do título NÃO muda no hover:
     trocar --ink por dourado derrubaria o contraste abaixo de AA. */
  & .prov-item:hover .prov-titulo, & .prov-item:focus-visible .prov-titulo {
    transform:translateX(3px); text-decoration-color:rgba(201,165,78,.75);
  }

  & .prov-ementa {
    display:-webkit-box; -webkit-line-clamp:2; line-clamp:2; -webkit-box-orient:vertical;
    overflow:hidden; margin-top:var(--sp-xxs); max-width:78ch;
    font-size:var(--fs-body-sm); line-height:1.55; color:var(--ink-muted);
  }

  /* ─── Selo de situação normativa ─── */
  /* Pílula de contorno, sem preenchimento: a cor do texto é quem informa, e as
     cinco passam AA sobre o pergaminho rgb(250,247,240). Contraste medido
     (fórmula WCAG 2.x, relativeLuminance) na ordem abaixo:
     vigente 8,26:1 · revogado 5,47:1 · alterado 16,52:1 · exaurido 7,44:1 ·
     suspenso 5,54:1. O dourado do "alterado" fica no contorno, onde não
     precisa de razão de texto.

     Exaurido e suspenso são os dois estados que a API do CNJ usa e que a
     tela ignorava até aqui (viravam null, sem selo — ver Global Constraints
     em normalizarSituacao). Cores escolhidas pelo SIGNIFICADO, não por
     preencher a paleta: exaurido é cinza-pardo desaturado (ato encerrou o
     efeito, tom histórico, sem alarme); suspenso é âmbar saturado (eficácia
     suspensa é estado de ATENÇÃO — mesma família de "sinal de alerta" que
     âmbar carrega em qualquer sinalização, mas sem ir a vermelho, que aqui já
     é "revogado"). Nenhuma das cinco fica perto o bastante de outra pra se
     confundir: verde / vermelho / quase-preto / cinza-pardo / âmbar. */
  & .prov-selo {
    display:inline-flex; align-items:center; padding:1px var(--sp-xs);
    border:1px solid var(--hairline); border-radius:var(--radius-sm);
    font-size:.66rem; letter-spacing:var(--track-wide); white-space:nowrap;
  }
  & .prov-selo-vigente  { color:#1f5434; border-color:rgba(31,84,52,.34); }
  & .prov-selo-revogado { color:rgba(163,45,45,.9); border-color:rgba(163,45,45,.3); }
  & .prov-selo-alterado { color:var(--ink); border-color:var(--accent-deep); }
  & .prov-selo-exaurido { color:#565049; border-color:rgba(86,80,73,.32); }
  & .prov-selo-suspenso { color:#8a5a00; border-color:rgba(138,90,0,.38); }

  /* ─── Vazio e nota de método ─── */
  & .prov-vazio {
    padding:clamp(48px,7vw,84px) 0; text-align:center;
    font-family:var(--serif); font-size:clamp(1.1rem,1.6vw,1.35rem);
    line-height:1.4; color:var(--ink-muted); max-width:56ch; margin-inline:auto;
  }
  & .prov-nota {
    max-width:72ch; margin-top:clamp(56px,8vw,96px);
    padding-top:var(--sp-xl); border-top:1px solid var(--hairline);
  }
  & .prov-nota h2 {
    font-family:var(--serif); font-weight:500; font-size:clamp(1.3rem,2vw,1.7rem);
    line-height:1.14; color:var(--ink); margin-bottom:var(--sp-md);
  }
  & .prov-nota p { font-size:var(--fs-body-sm); line-height:1.7; color:var(--ink-muted); }
  & .prov-nota p + p { margin-top:var(--sp-md); }
  & .prov-nota a {
    color:var(--ink); text-decoration:underline;
    text-decoration-color:rgba(201,165,78,.6); text-underline-offset:4px;
  }
  & .prov-nota a:hover { text-decoration-color:var(--ink); }

  /* ─── Ficha do ato (topo do post de provimento) ─── */
  /* Moldura de documento, não cartão de produto: filete de --hairline sobre
     --surface-cream (#f9f5ec, ainda mais claro que o pergaminho contra o qual
     as cores do selo foram medidas) e nenhuma sombra. Os rótulos vão em
     monoespaçado minúsculo, os valores em corpo — o olho desce a coluna da
     esquerda e para no que interessa. */
  & .prov-ficha {
    margin-top:clamp(26px,3.4vw,38px);
    padding:var(--sp-md) var(--sp-lg);
    background:var(--surface-cream);
    border:1px solid var(--hairline);
    border-radius:var(--radius-sm);
  }
  & .prov-ficha-topo {
    display:flex; flex-wrap:wrap; align-items:baseline; gap:var(--sp-xs) var(--sp-sm);
  }
  /* Destaque por peso e tamanho, nunca por dourado: --accent sobre campo claro
     dá 1,95:1 e não passa AA (ver nota de contraste no topo do bloco). */
  & .prov-ficha-numero {
    font-family:var(--serif); font-weight:500; font-size:clamp(1.1rem,1.7vw,1.35rem);
    line-height:1.2; color:var(--ink); font-variant-numeric:tabular-nums lining-nums;
  }

  & .prov-ficha-grade {
    display:grid; grid-template-columns:max-content minmax(0,1fr);
    gap:var(--sp-xs) var(--sp-lg);
    margin-top:var(--sp-md); padding-top:var(--sp-md);
    border-top:1px solid var(--hairline);
  }
  /* O filete mora na grade, não na moldura: quando não há data, fonte nem
     citação, a página não renderiza a grade e o filete some junto, em vez de
     ficar pendurado embaixo do número. */
  & .prov-ficha-grade dt {
    font-family:var(--mono); font-size:var(--fs-fine); letter-spacing:var(--track-wide);
    text-transform:uppercase; color:var(--ink-muted); line-height:1.6;
  }
  & .prov-ficha-grade dd {
    margin:0; font-size:var(--fs-body-sm); line-height:1.6; color:var(--ink);
  }
  & .prov-ficha-grade a {
    color:var(--ink); text-decoration:underline;
    text-decoration-color:rgba(201,165,78,.6); text-underline-offset:4px;
  }
  & .prov-ficha-grade a:hover { text-decoration-color:var(--ink); }
  & .prov-ficha-grade a:focus-visible { outline:2px solid var(--accent-deep); outline-offset:3px; }
  /* Separador entre atos citados: vírgula gerada pelo CSS, para o markup não
     carregar pontuação solta que o leitor de tela anuncia como conteúdo. */
  & .prov-ficha-atos span + span::before { content:", "; color:var(--ink-faint); }

  /* ─── Navegação por número, no pé do post ─── */
  & .prov-rodape {
    margin-top:clamp(36px,5vw,60px); padding-top:var(--sp-xl);
    border-top:1px solid var(--hairline);
  }
  & .prov-rodape-lados {
    display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--sp-lg);
  }
  /* Coluna fixa: com só o próximo publicado, ele continua à direita, no lado
     que o leitor procura. */
  & .prov-rodape-adiante { grid-column:2; text-align:right; }
  & .prov-rodape-item {
    display:block; padding:var(--sp-sm) 0; text-decoration:none; color:inherit;
  }
  & .prov-rodape-item:focus-visible { outline:2px solid var(--accent-deep); outline-offset:4px; }
  & .prov-rodape-rotulo {
    display:block; font-family:var(--mono); font-size:var(--fs-fine);
    letter-spacing:var(--track-wide); text-transform:uppercase; color:var(--ink-muted);
  }
  & .prov-rodape-numero {
    display:block; margin-top:var(--sp-xxs); font-family:var(--mono);
    font-size:.72rem; letter-spacing:var(--track-wide); text-transform:uppercase;
    font-weight:600; color:var(--ink); font-variant-numeric:tabular-nums lining-nums;
  }
  & .prov-rodape-titulo {
    display:-webkit-box; -webkit-line-clamp:2; line-clamp:2; -webkit-box-orient:vertical;
    overflow:hidden; margin-top:var(--sp-xxs);
    font-family:var(--serif); font-weight:500; font-size:clamp(1rem,1.4vw,1.15rem);
    line-height:1.24; color:var(--ink);
    text-decoration:underline; text-decoration-color:transparent; text-underline-offset:5px;
    transition:text-decoration-color .2s var(--ease);
  }
  & .prov-rodape-item:hover .prov-rodape-titulo,
  & .prov-rodape-item:focus-visible .prov-rodape-titulo {
    text-decoration-color:rgba(201,165,78,.75);
  }
}
/* ─── Trilho central da nav com o item "Provimentos" ───
   O trilho é absoluto em left:50%, então sua largura disponível é só metade da
   nav: com o sétimo item ele bateu no teto, encolheu os links e quebrou cinco
   deles em duas linhas — o pill passou a 73px dentro de uma ilha de 58px.
   `width:max-content` + links que não quebram devolvem a linha única.
   O trilho também passa a sair de cena mais cedo: medido, os sete itens ocupam
   720px e só ficam livres do botão "Solicitar convite" a partir de ~1234px de
   janela. O corte antigo (1050px) já era curto para os seis itens anteriores
   (617px, livres só a partir de ~1126px) — o trilho encostava no botão nessa
   faixa antes desta mudança. Abaixo do corte o menu do botão traz os mesmos
   links, "Provimentos" incluído.
   Este é o ÚNICO corte de largura da navegação: os dois blocos de 1050px que
   repetiam estas mesmas regras foram removidos (1260 cobre toda a faixa deles,
   com o mesmo resultado). Alvo de toque ≥44x44 vem da auditoria mobile de
   2026-08-08. */
.acta-public .nav-links{ width:max-content; }
.acta-public .nav-links a{ white-space:nowrap; }
@media (max-width:1260px){
  .acta-public .nav-links{ display:none; }
  .acta-public .nav-burger{ display:flex; width:45px; height:45px; }
  .acta-public .nav-brand{ min-height:44px; }
  .acta-public .nav-login{ min-height:44px; padding:0 6px; }
}
