/* =========================================================
   JOSUÉ HILGEMBERG — ADVOCACIA
   Verde profundo, dourado suave e bege quente
   Serifada nos títulos, dourado com parcimônia, cantos retos.
   ========================================================= */
:root{
  --bg:          #091710;
  --bg-raised:   #073B2B;
  --bg-card:     #0B3024;
  --gold:        #EDBE6C;
  --gold-light:  #F4D49B;
  --gold-deep:   #B88A42;
  --line:        rgba(237,190,108,.14);
  --line-strong: rgba(237,190,108,.30);
  --text:        #FAF9F4;
  --text-dim:    #D7DFD6;
  --text-faint:  #A8BCAF;
  --ok:          #7FA86A;
  --erro:        #C4705C;

  --font-display: 'Cormorant Garamond', Georgia, serif;
  --font-body:    'Inter', system-ui, -apple-system, sans-serif;

  --radius: 2px;
  --radius-lg: 6px;
  --container: 1120px;
  --nav-h: 84px;
}

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  margin:0;
  background:var(--bg);
  color:var(--text);
  font-family:var(--font-body);
  font-size:16px;
  line-height:1.75;
  -webkit-font-smoothing:antialiased;
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
button{ font-family:inherit; cursor:pointer; }
::selection{ background:var(--gold); color:#091710; }
:focus-visible{ outline:2px solid var(--gold); outline-offset:3px; }

@media (prefers-reduced-motion: reduce){
  *{ animation-duration:.001ms !important; transition-duration:.001ms !important; scroll-behavior:auto !important; }
}

.container{ width:100%; max-width:var(--container); margin:0 auto; padding:0 24px; }

/* --- Tipografia --------------------------------------- */
h1,h2,h3{ font-family:var(--font-display); font-weight:600; line-height:1.12; margin:0 0 .4em; letter-spacing:-.01em; }
h1{ font-size:clamp(2.6rem,6vw,4.4rem); }
h2{ font-size:clamp(1.9rem,3.8vw,2.8rem); }
h3{ font-size:1.35rem; }
h1 em{ font-style:italic; color:var(--gold-light); }
p{ margin:0 0 1em; color:var(--text-dim); }

.eyebrow{
  font-family:var(--font-body); font-weight:500;
  text-transform:uppercase; letter-spacing:.22em; font-size:.68rem; color:var(--gold);
}
.hairline{ height:1px; background:var(--line); border:0; margin:32px 0; }

/* --- Botões ------------------------------------------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.55em;
  font-family:var(--font-body); font-weight:500;
  text-transform:uppercase; letter-spacing:.12em; font-size:.72rem;
  padding:15px 30px; border-radius:var(--radius); border:1px solid transparent;
  transition:transform .18s ease, background .18s ease, border-color .18s ease, color .18s ease;
  white-space:nowrap;
}
.btn-primary{ background:var(--gold); color:#091710; }
.btn-primary:hover{ background:var(--gold-light); transform:translateY(-1px); }
.btn-ghost{ background:transparent; color:var(--text); border-color:var(--line-strong); }
.btn-ghost:hover{ border-color:var(--gold); color:var(--gold); }
.btn-block{ width:100%; }

/* --- Marca -------------------------------------------- */
.brand{ display:flex; align-items:center; gap:12px; }
.brand-mark{
  display:grid; place-items:center; width:40px; height:40px; flex:none;
  border:1px solid var(--gold); color:var(--gold);
  font-family:var(--font-display); font-size:1.05rem; letter-spacing:.06em;
}
.brand-txt{ font-size:.95rem; font-weight:500; line-height:1.25; }
.brand-txt small{ display:block; font-size:.66rem; letter-spacing:.16em; text-transform:uppercase; color:var(--text-faint); }

/* =========================================================
   NAV
   ========================================================= */
.nav{
  position:fixed; inset:0 0 auto 0; z-index:50; height:var(--nav-h);
  display:flex; align-items:center;
  background:rgba(9,23,16,0); border-bottom:1px solid transparent;
  transition:background .3s ease, border-color .3s ease, height .3s ease;
}
.nav.scrolled{ background:rgba(9,23,16,.94); backdrop-filter:blur(10px); border-bottom-color:var(--line); height:68px; }
.nav-inner{ width:100%; max-width:1280px; margin:0 auto; padding:0 24px; display:flex; align-items:center; gap:20px; }
.nav .brand{flex-shrink:0}
.nav .brand-txt{white-space:nowrap}
.nav .brand-txt small{font-size:.57rem;letter-spacing:.08em;line-height:1.6}
.nav-cta{flex-shrink:0}
.nav-links{ display:flex; gap:18px; list-style:none; margin:0 0 0 auto; padding:0; flex-shrink:0; }
.nav-links a{white-space:nowrap}
.nav-links a{ font-size:.84rem; color:var(--text-dim); transition:color .2s; }
.nav-links a:hover{ color:var(--gold); }
.nav-cta{ display:flex; align-items:center; gap:12px; }
.nav-toggle{ display:none; background:none; border:0; color:var(--text); padding:8px; }

@media (max-width: 1200px){
  .nav-links{
    position:absolute; top:var(--nav-h); left:0; right:0;
    flex-direction:column; gap:0; margin:0;
    background:rgba(9,23,16,.98); border-top:1px solid var(--line);
    max-height:0; overflow:hidden; transition:max-height .3s ease;
  }
  .nav-links.open{ max-height:340px; }
  .nav-links li{ border-bottom:1px solid var(--line); }
  .nav-links a{ display:block; padding:15px 24px; }
  .nav-toggle{ display:block; }
  .brand-txt{ display:none; }
}

/* =========================================================
   SEÇÕES
   ========================================================= */
section{ padding:96px 0; border-top:1px solid var(--line); }
.section-head{ max-width:640px; margin-bottom:52px; }
.section-sub{ font-size:1.02rem; }

/* =========================================================
   HERO
   ========================================================= */
.hero{
  position:relative; min-height:92vh; display:flex; align-items:center;
  padding:calc(var(--nav-h) + 56px) 0 80px; overflow:hidden;
}
.hero-bg{ position:absolute; inset:-8% 0 0 0; z-index:0; }
.hero-bg img{ width:100%; height:112%; object-fit:cover; opacity:1; filter:none; }
/* Sem fade sobre a foto. Só um véu curto atrás do texto, o mínimo
   para o branco continuar legível sobre qualquer imagem. */
.hero::after{
  content:''; position:absolute; inset:0; z-index:1; pointer-events:none;
  background:linear-gradient(100deg, rgba(9,23,16,.72) 0%, rgba(9,23,16,.34) 38%, rgba(9,23,16,0) 62%);
}
.hero-content{ text-shadow:0 2px 18px rgba(9,23,16,.55); }
@media (max-width:820px){
  .hero::after{ background:linear-gradient(180deg, rgba(9,23,16,.55) 0%, rgba(9,23,16,.25) 40%, rgba(9,23,16,.75) 100%); }
}
.hero .container{ position:relative; z-index:2; }
.hero-content{ max-width:760px; }
.hero-eyebrow{ display:flex; align-items:center; gap:14px; margin-bottom:22px; }
.hero-eyebrow .dash{ width:44px; height:1px; background:var(--gold); }
.hero-sub{ font-size:1.1rem; max-width:590px; margin-bottom:34px; }
.hero-actions{ display:flex; flex-wrap:wrap; gap:14px; }
.hero-oab{ margin-top:34px; font-size:.76rem; letter-spacing:.14em; text-transform:uppercase; color:var(--text-faint); }

/* =========================================================
   ÁREAS DE ATUAÇÃO
   ========================================================= */
.area-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:1px; background:var(--line); border:1px solid var(--line); }
.area{ background:var(--bg); padding:34px 30px; transition:background .25s ease; }
.area:hover{ background:var(--bg-raised); }
.area h3{ font-size:1.28rem; margin-bottom:.5em; }
.area p{ font-size:.94rem; margin:0; }

/* =========================================================
   PERFIL
   ========================================================= */
.perfil-inner{ display:grid; grid-template-columns:0.85fr 1.15fr; gap:60px; align-items:center; }
.perfil-foto img{ width:100%; aspect-ratio:4/5; object-fit:cover; filter:grayscale(.35); border:1px solid var(--line); }
.cred{ list-style:none; padding:0; margin:32px 0 0; border-top:1px solid var(--line); }
.cred li{ display:flex; gap:18px; padding:13px 0; border-bottom:1px solid var(--line); font-size:.92rem; }
.cred span{ min-width:120px; color:var(--text-faint); text-transform:uppercase; letter-spacing:.1em; font-size:.68rem; padding-top:.35em; }
@media (max-width:820px){ .perfil-inner{ grid-template-columns:1fr; gap:36px; } }

/* =========================================================
   ESCRITÓRIO VIRTUAL (vitrine)
   ========================================================= */
.ev{ background:var(--bg-raised); }
.ev-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:28px; }
.ev-item{ padding-left:22px; border-left:1px solid var(--gold-deep); }
.ev-item h3{ font-size:1.22rem; }
.ev-item p{ font-size:.94rem; margin:0; }
.ev-cta{ margin-top:52px; display:flex; align-items:center; gap:22px; flex-wrap:wrap; }
.ev-cta p{ margin:0; font-size:.86rem; color:var(--text-faint); }

/* =========================================================
   CONTATO
   ========================================================= */
.contato-inner{ display:grid; grid-template-columns:1.25fr .75fr; gap:60px; align-items:start; }
.contato-lista{ list-style:none; padding:0; margin:28px 0 32px; border-top:1px solid var(--line); }
.contato-lista li{ display:flex; gap:18px; padding:13px 0; border-bottom:1px solid var(--line); font-size:.94rem; color:var(--text-dim); }
.contato-lista span{ min-width:104px; color:var(--text-faint); text-transform:uppercase; letter-spacing:.1em; font-size:.68rem; padding-top:.3em; }
.contato-lista a:hover{ color:var(--gold); }
.contato-nota{ background:var(--bg-card); border:1px solid var(--line); padding:30px; }
.contato-nota h3{ font-size:1.15rem; }
.contato-nota p{ font-size:.9rem; margin-bottom:.8em; }
@media (max-width:820px){ .contato-inner{ grid-template-columns:1fr; gap:36px; } }

/* =========================================================
   RODAPÉ
   ========================================================= */
footer{ padding:64px 0 40px; border-top:1px solid var(--line); background:var(--bg-raised); }
.foot-inner{ display:flex; justify-content:space-between; gap:36px; flex-wrap:wrap; }
.foot-nome{ margin:14px 0 0; font-size:.92rem; color:var(--text); }
.foot-dim{ margin:0; font-size:.84rem; color:var(--text-faint); }
.foot-links{ display:flex; flex-wrap:wrap; gap:20px; align-items:flex-start; }
.foot-links a{ font-size:.84rem; color:var(--text-dim); }
.foot-links a:hover{ color:var(--gold); }
.foot-legal{ font-size:.76rem; color:var(--text-faint); margin:0 0 .5em; max-width:70ch; }

/* =========================================================
   ANIMAÇÕES
   ========================================================= */
.reveal{ opacity:0; transform:translateY(18px); transition:opacity .7s ease, transform .7s ease; }
.reveal.in{ opacity:1; transform:none; }
.scroll-progress{
  position:fixed; top:0; left:0; right:0; height:2px; z-index:60;
  background:var(--gold); transform:scaleX(0); transform-origin:0 50%;
}
.stagger > *{ opacity:0; transform:translateY(16px); transition:opacity .6s ease, transform .6s ease; }
.stagger.in > *{ opacity:1; transform:none; }
.stagger.in > *:nth-child(2){ transition-delay:.07s; }
.stagger.in > *:nth-child(3){ transition-delay:.14s; }
.stagger.in > *:nth-child(4){ transition-delay:.21s; }
.stagger.in > *:nth-child(5){ transition-delay:.28s; }
.stagger.in > *:nth-child(6){ transition-delay:.35s; }

/* =========================================================
   LOGIN
   ========================================================= */
.login-page{
  min-height:100vh; display:grid; place-items:center; padding:40px 20px;
  background:
    radial-gradient(900px 500px at 50% -10%, rgba(237,190,108,.10), transparent 65%),
    var(--bg);
}
.login-card{
  width:100%; max-width:400px; background:var(--bg-card);
  border:1px solid var(--line); padding:44px 38px; position:relative;
}
.login-voltar{ position:absolute; top:-32px; left:0; font-size:.8rem; color:var(--text-faint); }
.login-voltar:hover{ color:var(--gold); }
.login-mark{
  display:grid; place-items:center; width:46px; height:46px; margin-bottom:22px;
  border:1px solid var(--gold); color:var(--gold); font-family:var(--font-display); font-size:1.15rem;
}
.login-card h1{ font-size:2rem; margin-bottom:.25em; }
.login-sub{ font-size:.9rem; margin-bottom:28px; }
.login-ajuda{ margin:24px 0 0; font-size:.8rem; color:var(--text-faint); }

/* =========================================================
   FORMULÁRIOS
   ========================================================= */
.form{ display:flex; flex-direction:column; gap:16px; }
.form-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:16px 20px; }
.campo-largo{ grid-column:1/-1; }
.campo-acao{ grid-column:1/-1; }
.campo{ display:flex; flex-direction:column; gap:7px; }
.campo > span{ font-size:.72rem; text-transform:uppercase; letter-spacing:.13em; color:var(--text-faint); }
.campo input, .campo select, .campo textarea{
  font-family:var(--font-body); font-size:.95rem; color:var(--text);
  background:var(--bg); border:1px solid var(--line-strong); border-radius:var(--radius);
  padding:12px 14px; width:100%; transition:border-color .2s ease;
}
.campo input:focus, .campo select:focus, .campo textarea:focus{ border-color:var(--gold); outline:none; }
.campo textarea{ resize:vertical; }
.campo-check{ flex-direction:row; align-items:center; gap:10px; }
.campo-check span{ font-size:.85rem; text-transform:none; letter-spacing:0; color:var(--text-dim); }
.form-compacto{ margin-top:22px; padding-top:22px; border-top:1px solid var(--line); }

.alerta{ padding:13px 16px; border-radius:var(--radius); font-size:.9rem; margin-bottom:20px; border:1px solid; }
.alerta-erro{ border-color:rgba(196,112,92,.5); background:rgba(196,112,92,.12); color:#EBB6A8; }
.alerta-ok{ border-color:rgba(127,168,106,.5); background:rgba(127,168,106,.12); color:#BEDCAE; }

/* =========================================================
   APP — ÁREA LOGADA
   ========================================================= */
.app{ background:var(--bg); }
.app-bar{ background:var(--bg-raised); border-bottom:1px solid var(--line); position:sticky; top:0; z-index:40; }
.app-bar-inner{
  max-width:var(--container); margin:0 auto; padding:14px 24px;
  display:flex; align-items:center; gap:24px; flex-wrap:wrap;
}
.app-brand{ display:flex; align-items:center; gap:12px; }
.app-brand-mark{
  display:grid; place-items:center; width:36px; height:36px; flex:none;
  border:1px solid var(--gold); color:var(--gold); font-family:var(--font-display);
}
.app-brand-txt{ font-size:.9rem; font-weight:500; line-height:1.25; }
.app-brand-txt small{ display:block; font-size:.64rem; letter-spacing:.16em; text-transform:uppercase; color:var(--text-faint); }
.app-nav{ margin-left:auto; display:flex; gap:22px; align-items:center; }
.app-nav a{ font-size:.85rem; color:var(--text-dim); padding-bottom:3px; border-bottom:1px solid transparent; }
.app-nav a:hover{ color:var(--text); }
.app-nav a.on{ color:var(--gold); border-bottom-color:var(--gold); }
.app-sair{ color:var(--text-faint) !important; }

.app-main{ padding-top:44px; padding-bottom:80px; min-height:70vh; }
.app-head{ margin-bottom:36px; }
.app-head h1{ font-size:clamp(2rem,4vw,2.8rem); margin:.15em 0 .2em; }
.app-head-sub{ font-size:.95rem; margin:0; }
.voltar{ display:inline-block; font-size:.82rem; color:var(--text-faint); margin-bottom:20px; }
.voltar:hover{ color:var(--gold); }

.app-foot{ border-top:1px solid var(--line); padding:28px 0 40px; background:var(--bg-raised); }
.app-foot p{ margin:0 0 .4em; font-size:.84rem; color:var(--text-faint); }
.app-foot-nota{ max-width:72ch; font-size:.76rem !important; }

.bloco{ background:var(--bg-card); border:1px solid var(--line); padding:32px; margin-bottom:26px; }
.bloco-titulo{ font-size:1.4rem; margin-bottom:.6em; }
.bloco-proc-topo{ display:flex; justify-content:space-between; gap:20px; align-items:flex-start; flex-wrap:wrap; }
.vazio{ background:var(--bg-card); border:1px dashed var(--line-strong); padding:52px 32px; text-align:center; }
.vazio h2{ font-size:1.5rem; }
.vazio p{ margin:0; }
.vazio-inline{ font-size:.92rem; color:var(--text-faint); }

/* --- Lista de casos --- */
.caso-lista{ list-style:none; padding:0; margin:0; display:grid; gap:16px; }
.caso{
  display:block; background:var(--bg-card); border:1px solid var(--line);
  border-left:2px solid var(--gold-deep); padding:26px 28px;
  transition:border-color .2s ease, transform .2s ease;
}
.caso:hover{ border-left-color:var(--gold); transform:translateX(3px); }
.caso h2{ font-size:1.5rem; margin:.2em 0 .25em; }
.caso-meta{ font-size:.86rem; color:var(--text-faint); margin:0 0 .3em; }
.caso-ultimo{ font-size:.88rem; margin:0 0 .8em; }
.caso-abrir{ font-size:.76rem; text-transform:uppercase; letter-spacing:.12em; color:var(--gold); }
.caso-sit{
  display:inline-block; font-size:.66rem; text-transform:uppercase; letter-spacing:.14em;
  padding:4px 10px; border:1px solid var(--line-strong); color:var(--text-dim);
}
.sit-em_andamento{ border-color:var(--gold-deep); color:var(--gold-light); }
.sit-encerrado{ opacity:.65; }

/* --- Cabeçalho do processo --- */
.proc-head{ margin-bottom:40px; }
.proc-head h1{ font-size:clamp(1.9rem,4vw,2.7rem); margin:.25em 0 .5em; }
.proc-dados{ display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:1px; background:var(--line); border:1px solid var(--line); margin:0 0 24px; }
.proc-dados > div{ background:var(--bg); padding:16px 18px; }
.proc-dados dt{ font-size:.66rem; text-transform:uppercase; letter-spacing:.14em; color:var(--text-faint); margin-bottom:4px; }
.proc-dados dd{ margin:0; font-size:.92rem; }
.proc-resumo{ max-width:70ch; }

/* --- ASSINATURA: linha do tempo --- */
.timeline{ list-style:none; margin:0; padding:0 0 0 30px; position:relative; }
.timeline::before{ content:''; position:absolute; left:5px; top:8px; bottom:8px; width:1px; background:var(--line-strong); }
.timeline li{ position:relative; padding:0 0 32px; }
.timeline li:last-child{ padding-bottom:0; }
.timeline-no{
  position:absolute; left:-30px; top:7px; width:11px; height:11px;
  border:1px solid var(--gold-deep); background:var(--bg); border-radius:50%;
}
.timeline li.atual .timeline-no{ background:var(--gold); border-color:var(--gold); box-shadow:0 0 0 4px rgba(237,190,108,.16); }
.timeline time{ font-size:.72rem; text-transform:uppercase; letter-spacing:.14em; color:var(--text-faint); }
.timeline h3{ font-size:1.2rem; margin:.2em 0 .3em; }
.timeline li.atual h3{ color:var(--gold-light); }
.timeline p{ font-size:.94rem; margin:0; max-width:68ch; }
.timeline li.interno{ opacity:.7; }
.tag-interno{
  font-family:var(--font-body); font-size:.6rem; text-transform:uppercase; letter-spacing:.14em;
  border:1px solid var(--line-strong); padding:2px 7px; margin-left:8px; vertical-align:middle; color:var(--text-faint);
}

/* --- Documentos --- */
.doc-lista{ list-style:none; padding:0; margin:0; border-top:1px solid var(--line); }
.doc-lista li{ border-bottom:1px solid var(--line); }
.doc-lista a{ display:block; padding:16px 4px; transition:padding-left .2s ease, background .2s ease; }
.doc-lista a:hover{ padding-left:12px; background:rgba(237,190,108,.05); }
.doc-nome{ display:block; font-size:1rem; }
.doc-meta{ display:block; font-size:.78rem; color:var(--text-faint); }

/* --- Tabelas e filtros (admin) --- */
.tabela{ width:100%; border-collapse:collapse; font-size:.9rem; }
.tabela th{
  text-align:left; font-size:.66rem; text-transform:uppercase; letter-spacing:.14em;
  color:var(--text-faint); font-weight:500; padding:0 14px 12px 0; border-bottom:1px solid var(--line-strong);
}
.tabela td{ padding:14px 14px 14px 0; border-bottom:1px solid var(--line); vertical-align:top; }
.td-dim{ font-size:.78rem; color:var(--text-faint); }
.link-acao{ color:var(--gold); font-size:.85rem; }
.link-acao:hover{ color:var(--gold-light); }
.filtros{ display:flex; gap:8px; flex-wrap:wrap; margin-bottom:26px; }
.filtros a{
  font-size:.76rem; text-transform:uppercase; letter-spacing:.1em;
  padding:7px 14px; border:1px solid var(--line); color:var(--text-dim);
}
.filtros a.on, .filtros a:hover{ border-color:var(--gold); color:var(--gold); }

@media (max-width:640px){
  section{ padding:68px 0; }
  .bloco{ padding:24px 20px; }
  .caso{ padding:22px 20px; }
  .app-nav{ gap:16px; width:100%; margin-left:0; }
  .tabela thead{ display:none; }
  .tabela tr{ display:block; border-bottom:1px solid var(--line); padding:12px 0; }
  .tabela td{ display:block; border:0; padding:3px 0; }
}

/* =========================================================
   URGÊNCIA (faixa dentro de Atuação)
   ========================================================= */
.urgencia{
  margin-top:44px; padding:30px 32px;
  background:var(--bg-card); border:1px solid var(--line); border-left:2px solid var(--gold);
  display:flex; align-items:center; justify-content:space-between; gap:26px; flex-wrap:wrap;
}
.urgencia h3{ font-size:1.3rem; margin-bottom:.25em; }
.urgencia p{ margin:0; font-size:.94rem; max-width:60ch; }

/* =========================================================
   NA MÍDIA
   ========================================================= */
.midia{ background:var(--bg-raised); }
.midia-lista{ list-style:none; padding:0; margin:0; display:grid; gap:18px; }
.midia-item{ border:1px solid var(--line); background:var(--bg-card); transition:border-color .2s ease, transform .2s ease; }
.midia-item:hover{ border-color:var(--gold); transform:translateY(-2px); }
.midia-link{ display:grid; grid-template-columns:200px 1fr; gap:22px; align-items:center; padding:16px; }
.midia-thumb{
  position:relative; aspect-ratio:16/9; overflow:hidden;
  background:var(--bg-raised); border:1px solid var(--line);
}
.midia-thumb img{ width:100%; height:100%; object-fit:cover; position:relative; z-index:1; }
.midia-thumb.midia-logo{background:#fff}
.midia-thumb.midia-logo img{object-fit:contain;padding:18px}

/* Contatos circulares: ícones vetoriais e ondas que não capturam cliques. */
.sociais-flutuantes{position:fixed;right:30px;bottom:calc(28px + env(safe-area-inset-bottom));z-index:65;display:flex;flex-direction:column;gap:24px}
.social-circulo{--social-cor:#18c900;position:relative;isolation:isolate;display:grid;place-items:center;width:62px;height:62px;border-radius:50%;background:var(--social-cor);color:#fff;box-shadow:0 5px 20px #0004;text-decoration:none;transition:transform .2s}
.social-circulo svg{width:32px;height:32px;position:relative;z-index:1}
.social-instagram{--social-cor:#d62c7f;background:radial-gradient(circle at 25% 100%,#ffce65,#ed6945 35%,#ce287d 65%,#7043c1)}
.social-circulo::before,.social-circulo::after{content:'';position:absolute;inset:0;z-index:-1;border:1px solid var(--social-cor);border-radius:50%;pointer-events:none;animation:social-onda 2.8s ease-out infinite}
.social-circulo::after{animation-delay:1.4s}
.social-circulo:hover{transform:translateY(-3px)}
.social-circulo:focus-visible{outline:3px solid #fff;outline-offset:5px}
.social-legenda{position:absolute;right:calc(100% + 14px);padding:5px 12px;background:#073B2B;color:#fff;font-size:.8rem;border-radius:4px;white-space:nowrap;opacity:0;visibility:hidden;transition:opacity .2s;pointer-events:none}
.social-circulo:hover .social-legenda,.social-circulo:focus-visible .social-legenda{opacity:1;visibility:visible}
@keyframes social-onda{0%{transform:scale(1);opacity:.55}100%{transform:scale(1.65);opacity:0}}
@media(max-width:640px){.sociais-flutuantes{right:22px;bottom:calc(22px + env(safe-area-inset-bottom));gap:20px}.social-circulo{width:54px;height:54px}.social-circulo svg{width:29px;height:29px}.social-circulo::before,.social-circulo::after{animation-name:social-onda-mobile}}
@keyframes social-onda-mobile{0%{transform:scale(1);opacity:.5}100%{transform:scale(1.45);opacity:0}}
@media(prefers-reduced-motion:reduce){.social-circulo::before,.social-circulo::after{animation:none;opacity:.25;inset:-6px}.social-circulo::after{inset:-12px}}
.midia-fallback{
  position:absolute; inset:0; display:none; place-items:center;
  font-family:var(--font-display); font-size:1.6rem; letter-spacing:.1em; color:var(--gold);
}
.midia-thumb.sem-imagem .midia-fallback{ display:grid; }
.midia-veiculo{ font-size:.64rem; text-transform:uppercase; letter-spacing:.18em; color:var(--gold); }
.midia-item h3{ font-size:1.22rem; margin:.3em 0 .25em; }
.midia-item p{ font-size:.9rem; margin:0 0 .5em; max-width:66ch; }
.midia-item time{ font-size:.74rem; color:var(--text-faint); letter-spacing:.06em; }
.midia-nota{ margin-top:26px; font-size:.8rem; color:var(--text-faint); max-width:72ch; }
@media (max-width:620px){
  .midia-link{ grid-template-columns:1fr; gap:14px; }
  .midia-thumb{ aspect-ratio:16/8; }
}

/* =========================================================
   BLOG — cards, listagem e artigo
   ========================================================= */
.post-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:26px; }
.post-card{
  background:var(--bg-card); border:1px solid var(--line);
  display:flex; flex-direction:column; transition:border-color .22s ease, transform .22s ease;
}
.post-card:hover{ border-color:var(--line-strong); transform:translateY(-3px); }
.post-cover{ position:relative; aspect-ratio:16/9; overflow:hidden; background:var(--bg-raised); }
.post-cover img{ width:100%; height:100%; object-fit:cover; filter:grayscale(.3); transition:transform .5s ease; }
.post-card:hover .post-cover img{ transform:scale(1.04); }
.post-cat{
  position:absolute; left:12px; bottom:12px;
  background:rgba(9,23,16,.86); border:1px solid var(--line-strong); color:var(--gold-light);
  font-size:.62rem; text-transform:uppercase; letter-spacing:.14em; padding:4px 9px;
}
.post-cat.estatico{ position:static; display:inline-block; margin-bottom:14px; }
.post-body{ padding:24px 24px 26px; display:flex; flex-direction:column; gap:8px; flex:1; }
.post-date{ font-size:.7rem; text-transform:uppercase; letter-spacing:.14em; color:var(--text-faint); }
.post-body h3{ font-size:1.3rem; margin:0; }
.post-summary{ font-size:.92rem; margin:0; flex:1; }
.post-readmore{ font-size:.72rem; text-transform:uppercase; letter-spacing:.14em; color:var(--gold); }
.home-blog-status{ color:var(--text-faint); font-size:.92rem; grid-column:1/-1; }
.artigos-cta{ margin-top:40px; }

.blog-hero{ padding:calc(var(--nav-h) + 60px) 0 50px; border-bottom:1px solid var(--line); }
.blog-hero h1{ font-size:clamp(2.3rem,5vw,3.6rem); margin:.2em 0 .3em; }
.blog-hero p{ max-width:60ch; }
.blog-busca{ display:flex; gap:10px; margin-top:26px; max-width:460px; }
.blog-busca input{
  flex:1; font-family:var(--font-body); font-size:.95rem; color:var(--text);
  background:var(--bg-card); border:1px solid var(--line-strong); border-radius:var(--radius); padding:12px 14px;
}
.blog-busca input:focus{ border-color:var(--gold); outline:none; }
.blog-main{ padding:56px 24px 90px; }

.artigo{ padding:calc(var(--nav-h) + 50px) 0 90px; }
.artigo-topo{ max-width:760px; }
.artigo-topo h1{ font-size:clamp(2.1rem,4.6vw,3.3rem); margin:.15em 0 .3em; }
.artigo-meta{ font-size:.8rem; color:var(--text-faint); letter-spacing:.04em; }
.artigo-capa{ width:100%; max-width:900px; aspect-ratio:16/8; object-fit:cover; margin:34px auto; filter:grayscale(.25); }
.artigo-corpo{ max-width:680px; font-size:1.04rem; }
.artigo-corpo h2{ font-size:1.7rem; margin:1.6em 0 .5em; }
.artigo-corpo p{ margin-bottom:1.15em; }
.artigo-corpo ul, .artigo-corpo ol{ color:var(--text-dim); padding-left:1.2em; margin-bottom:1.15em; }
.artigo-corpo li{ margin-bottom:.4em; }
.artigo-corpo a{ color:var(--gold); text-decoration:underline; text-underline-offset:3px; }
.artigo-corpo blockquote{
  border-left:2px solid var(--gold-deep); margin:1.6em 0; padding:.2em 0 .2em 22px;
  font-family:var(--font-display); font-size:1.25rem; font-style:italic; color:var(--text);
}
.artigo-aviso{
  margin:42px 0 26px; padding:18px 20px; font-size:.86rem;
  background:var(--bg-card); border:1px solid var(--line); color:var(--text-faint);
}
.artigo-outros{ max-width:900px; margin-top:80px; padding-top:40px; border-top:1px solid var(--line); }
.artigo-outros h2{ font-size:1.6rem; margin-bottom:26px; }

/* Editor no admin */
.editor{ font-family:ui-monospace, SFMono-Regular, Menlo, monospace; font-size:.86rem; line-height:1.6; }
.link-perigo{ background:none; border:0; padding:0; margin-left:12px; color:var(--erro); cursor:pointer; font-family:inherit; }

/* =========================================================
   WHATSAPP FLUTUANTE
   ========================================================= */
.zap{
  position:fixed; right:20px; bottom:20px; z-index:70;
  display:flex; align-items:center; gap:10px;
  opacity:0; visibility:hidden; transform:translateY(14px);
  transition:opacity .3s ease, transform .3s ease, visibility .3s;
}
.zap.show{ opacity:1; visibility:visible; transform:none; }
.zap-btn{
  order:2; position:relative; display:grid; place-items:center; width:56px; height:56px; border-radius:50%;
  background:#25D366; color:#0B1F12; box-shadow:0 10px 26px -8px rgba(0,0,0,.6);
  transition:transform .2s ease;
}
.zap-btn:hover{ transform:scale(1.06); }
.zap-btn::after{
  content:''; position:absolute; width:56px; height:56px; border-radius:50%;
  border:1px solid rgba(37,211,102,.55); animation:zapPulso 2.6s ease-out infinite;
}
@keyframes zapPulso{
  0%{ transform:scale(1); opacity:.7; }
  70%{ transform:scale(1.55); opacity:0; }
  100%{ opacity:0; }
}
.zap-tip{
  order:1; background:var(--bg-card); border:1px solid var(--line-strong);
  color:var(--text); font-size:.78rem; padding:8px 13px; white-space:nowrap;
  border-radius:var(--radius); box-shadow:0 8px 20px -10px rgba(0,0,0,.7);
}
.zap-fechar{
  order:3; position:absolute; top:-6px; right:-4px; z-index:2;
  width:22px; height:22px; border-radius:50%; line-height:1;
  background:var(--bg-raised); border:1px solid var(--line-strong); color:var(--text-faint);
  font-size:.9rem; display:grid; place-items:center; padding:0;
}
.zap-fechar:hover{ color:var(--text); border-color:var(--gold); }

@media (max-width:640px){
  .zap{ right:14px; bottom:14px; }
  .zap-tip{ display:none; }
  .zap-btn::after{ animation:none; }
  .urgencia{ padding:24px 20px; }
  .artigo-corpo{ font-size:1rem; }
}
@media (prefers-reduced-motion: reduce){
  .zap-btn::after{ animation:none; }
}

/* =========================================================
   TEMA CLARO POR SEÇÃO
   .claro redefine os tokens localmente — todos os componentes
   internos (cards, listas, tabelas, botões) se adaptam sozinhos.
   ========================================================= */
.claro{
  --bg:          #EBD6BB;
  --bg-raised:   #E2C7A4;
  --bg-card:     #FAF3E7;
  --gold:        #76501C;
  --gold-light:  #644117;
  --gold-deep:   #AD8244;
  --line:        rgba(7,59,43,.13);
  --line-strong: rgba(7,59,43,.26);
  --text:        #073B2B;
  --text-dim:    #294B3D;
  --text-faint:  #52654D;

  background:var(--bg);
  color:var(--text);
  border-top:1px solid var(--line-strong);
}
.claro .btn-primary{ background:#073B2B; color:#FAF9F4; border-color:#073B2B; }
.claro .btn-primary:hover{ background:#0B4D38; border-color:#0B4D38; }
.claro .btn-ghost{ color:var(--text); border-color:var(--line-strong); }
.claro .btn-ghost:hover{ border-color:var(--gold); color:var(--gold); }
.claro ::selection{ background:var(--gold); color:#FFF; }
.claro .area{ background:var(--bg-card); }
.claro .area:hover{ background:var(--bg-raised); }
.claro .area-grid{ background:var(--line-strong); border-color:var(--line-strong); }
.claro .post-cover img{ filter:grayscale(.15); }
.claro .post-cat{ background:rgba(255,255,255,.92); color:var(--gold); }
.claro .midia{ background:var(--bg); }
.claro .contato-nota{ background:var(--bg-card); }
.claro .urgencia{ background:var(--bg-card); }
.claro .artigo-corpo blockquote{ color:var(--text); }

/* A seção .midia já tinha fundo próprio; no modo claro ele cede */
.midia.claro{ background:var(--bg); }

/* =========================================================
   LOGO
   ========================================================= */
.brand-logo{ height:38px; width:auto; flex:none; }
.nav.scrolled .brand-logo{ height:32px; transition:height .3s ease; }
.foot-logo{ height:44px; width:auto; margin-bottom:14px; }
@media (max-width:1200px){ .brand-logo{ height:32px; } }

/* =========================================================
   SPLASH DE ABERTURA
   Some sozinho por CSS: se o JS falhar, ninguém fica preso.
   ========================================================= */
.splash{
  position:fixed; inset:0; z-index:999;
  display:grid; place-items:center;
  background:var(--bg);
  animation:splashSaida .6s ease 2.05s forwards;
}
.splash-inner{ display:flex; flex-direction:column; align-items:center; gap:18px; text-align:center; padding:24px; }
.splash-logo{
  width:min(240px,58vw); height:auto;
  opacity:0; transform:translateY(10px) scale(.97);
  animation:splashLogo 1s cubic-bezier(.22,.61,.36,1) .15s forwards;
}
.splash-linha{
  display:block; width:180px; height:1px; background:var(--gold);
  transform:scaleX(0); transform-origin:50% 50%;
  animation:splashLinha .9s cubic-bezier(.22,.61,.36,1) .75s forwards;
}
.splash-oab{
  font-size:.66rem; text-transform:uppercase; letter-spacing:.24em; color:var(--text-faint);
  opacity:0; animation:splashTexto .7s ease 1.1s forwards;
}
@keyframes splashLogo{ to{ opacity:1; transform:none; } }
@keyframes splashLinha{ to{ transform:scaleX(1); } }
@keyframes splashTexto{ to{ opacity:1; } }
@keyframes splashSaida{ to{ opacity:0; visibility:hidden; pointer-events:none; } }

/* Enquanto o splash está na tela, trava a rolagem */
body.splash-ativo{ overflow:hidden; }

@media (prefers-reduced-motion: reduce){
  .splash{ animation:splashSaida .2s linear .3s forwards; }
  .splash-logo, .splash-linha, .splash-oab{ animation:none; opacity:1; transform:none; }
}

/* =========================================================
   ÍCONES DAS ÁREAS DE ATUAÇÃO
   ========================================================= */
.area-icone{
  display:grid; place-items:center; width:44px; height:44px; margin-bottom:18px;
  border:1px solid var(--line-strong); color:var(--gold);
  transition:border-color .25s ease, background .25s ease, transform .25s ease;
}
.area-icone svg{ width:22px; height:22px; }
.area:hover .area-icone{ border-color:var(--gold); background:rgba(237,190,108,.08); transform:translateY(-2px); }
.claro .area:hover .area-icone{ background:rgba(118,80,28,.08); }

/* =========================================================
   CONTATO URGENTE FLUTUANTE
   Fica no canto esquerdo para não brigar com o WhatsApp,
   pulsa devagar e para de pulsar em prefers-reduced-motion.
   ========================================================= */
.urgente-flutua{
  position:fixed; left:20px; bottom:22px; z-index:70;
  display:inline-flex; align-items:center; gap:9px;
  background:var(--bg-card); color:var(--text);
  border:1px solid var(--gold); border-radius:999px;
  padding:11px 20px 11px 16px;
  font-size:.76rem; font-weight:500; text-transform:uppercase; letter-spacing:.1em;
  box-shadow:0 10px 26px -10px rgba(0,0,0,.7);
  opacity:0; visibility:hidden; transform:translateY(14px);
  transition:opacity .3s ease, transform .3s ease, visibility .3s, background .2s ease, color .2s ease;
}
.urgente-flutua.show{ opacity:1; visibility:visible; transform:none; }
.urgente-flutua:hover{ background:var(--gold); color:#091710; }
.urgente-ponto{
  width:9px; height:9px; border-radius:50%; background:var(--gold); flex:none;
  animation:urgentePisca 1.7s ease-in-out infinite;
}
.urgente-flutua:hover .urgente-ponto{ background:#091710; animation:none; }
@keyframes urgentePisca{
  0%, 100%{ opacity:1; box-shadow:0 0 0 0 rgba(237,190,108,.55); }
  50%     { opacity:.45; box-shadow:0 0 0 7px rgba(237,190,108,0); }
}

@media (max-width:640px){
  .urgente-flutua{ left:14px; bottom:16px; padding:10px 15px 10px 13px; font-size:.7rem; }
}
@media (prefers-reduced-motion: reduce){
  .urgente-ponto{ animation:none; }
}

/* --- Grade das áreas: borda por card, sem célula fantasma --- */
.area-grid{ background:transparent; border:0; gap:14px; }
.area{ border:1px solid var(--line); }
.claro .area-grid{ background:transparent; border:0; }
.claro .area{ border-color:var(--line-strong); }

/* --- Miniatura carregando --- */
.midia-thumb.carregando::before{
  content:''; position:absolute; inset:0; z-index:2;
  background:linear-gradient(100deg, transparent 20%, rgba(255,255,255,.10) 50%, transparent 80%);
  background-size:220% 100%;
  animation:thumbBrilho 1.2s linear infinite;
}
@keyframes thumbBrilho{ to{ background-position:-120% 0; } }
@media (prefers-reduced-motion: reduce){ .midia-thumb.carregando::before{ animation:none; } }

/* --- Demonstração estática: logo no login e capa ausente --- */
.login-logo{ width:150px; height:auto; margin-bottom:22px; }
.post-cover.sem-imagem{ display:grid; place-items:center; }
.post-cover.sem-imagem::after{
  content:'JH'; font-family:var(--font-display); font-size:1.8rem; color:var(--gold); opacity:.5;
}

/* Plataforma integrada e atendimento guiado */
[hidden]{display:none!important}
.skip-link{position:absolute;top:-100px;left:16px;z-index:1000;background:var(--gold);color:#091710;padding:12px}
.skip-link:focus{top:12px}
.public-page,.intake-page{padding-top:130px;padding-bottom:70px;min-height:70vh}
.public-page{max-width:880px}
.intake-heading{max-width:850px;margin-bottom:40px}.intake-heading h1{font-size:clamp(2.2rem,4.5vw,3.8rem)}
.intake-shell{display:grid;grid-template-columns:280px minmax(0,1fr);gap:40px;align-items:start}
.intake-aside{position:sticky;top:100px}.intake-aside h2{font-size:1.5rem}.intake-aside ol{padding-left:22px;color:var(--text-dim)}.intake-aside li{margin-bottom:16px}.intake-aside p{font-size:.88rem}.intake-aside a,.campo a{color:var(--gold-light);text-decoration:underline}
.intake-card{background:var(--bg-card);border:1px solid var(--line-strong);padding:36px;min-width:0}
.intake-card fieldset{border:0;padding:0;margin:0;min-width:0}.intake-card legend{font-family:var(--font-display);font-size:1.8rem;margin-bottom:24px;width:100%;line-height:1.2}
.intake-card .campo{margin-bottom:20px}.intake-progress{font-size:.78rem;text-transform:uppercase;letter-spacing:.14em}
.intake-track{height:3px;background:var(--line);margin-bottom:32px}.intake-track span{display:block;height:100%;background:var(--gold);transition:width .2s}
.intake-actions{display:flex;gap:12px;justify-content:space-between;flex-wrap:wrap;margin-top:28px}
.intake-report{white-space:pre-wrap;overflow-wrap:anywhere;font-family:var(--font-body);font-size:.9rem;line-height:1.8;background:var(--bg);border:1px solid var(--line);padding:22px;max-height:550px;overflow:auto}
button:disabled{opacity:.45;cursor:not-allowed}.flow-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:30px;margin:32px 0}.flow-grid article{border-top:1px solid var(--line-strong);padding-top:20px}.flow-grid article>span{color:var(--gold);font-size:.8rem}
.atendimento-flutuante{position:fixed;right:20px;bottom:22px;z-index:60;background:var(--gold);color:#091710;padding:13px 19px;box-shadow:0 5px 24px #0005;font-weight:600;font-size:.85rem;border-radius:4px}
.app-bar-inner,.app-nav{flex-wrap:wrap}.app-nav{row-gap:12px}.app-bar{height:auto;min-height:80px;padding:16px 0}.app-nav a{white-space:nowrap}.admin-actions{display:flex;gap:12px;flex-wrap:wrap;align-items:center}
.pagination{display:flex;gap:18px;align-items:center;margin:32px 0}.pagination a{color:var(--gold-light)}.post-cover img{object-fit:cover;width:100%;height:100%}
.btn,.proc-dados dd{overflow-wrap:anywhere}.post-card h3{overflow-wrap:anywhere}.form fieldset{min-width:0}.form textarea{resize:vertical}
@media(max-width:760px){.intake-shell{grid-template-columns:1fr;gap:20px}.intake-aside{position:static}.intake-aside ol{display:none}.intake-card{padding:24px 18px}.flow-grid{grid-template-columns:1fr}.intake-actions .btn{white-space:normal;padding:13px 18px;flex:1}.public-page,.intake-page{padding-top:110px}.app-nav{gap:12px}.atendimento-flutuante{right:12px;bottom:12px}.intake-report{padding:14px}.nav-cta .btn{padding:12px 15px}.blog-busca{flex-wrap:wrap}}

.andamento-editor,.post-admin{padding:20px 0;border-bottom:1px solid var(--line)}.andamento-editor summary{cursor:pointer;color:var(--gold-light);margin-bottom:18px}.andamento-editor form{margin:16px 0}.link-perigo{background:none;border:0;padding:0;color:var(--erro);cursor:pointer}.blog-busca .campo{min-width:160px}.blog-busca select{max-width:100%}

.intake-card legend{scroll-margin-top:96px}input[type=date]{color-scheme:dark}@media(max-width:760px){.intake-aside{grid-row:2}.intake-card{grid-row:1}}@media(max-width:1200px){.nav.scrolled .nav-links{top:68px}}

.area-editor-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:24px}
.area-editor{min-width:0;margin:0;padding:24px}
.area-editor h2{font-size:1.7rem;margin-bottom:20px}
.area-editor-preview{width:100%;height:auto;aspect-ratio:16/10;object-fit:cover;border-radius:4px;margin-bottom:20px}
.area-editor-empty{display:grid;place-items:center;gap:10px;aspect-ratio:16/10;background:var(--bg);border:1px dashed var(--line-strong);margin-bottom:20px;padding:20px;text-align:center}
.area-editor-empty svg{width:40px;height:40px;fill:none;stroke:var(--gold);stroke-width:1.2;stroke-linecap:round;stroke-linejoin:round}
.area-editor-empty p{margin:0;font-size:.8rem}
.area-editor input[type=file]{font-size:.85rem;padding:12px;min-width:0}
.area-remove{margin-top:18px}.area-remove button{min-height:44px;text-align:left}

/* Celular: leitura, toque e conteúdo sem largura mínima excessiva. */
html{scroll-padding-top:96px}
.campo,.perfil-inner>*,.contato-inner>*,.post-grid>*,.flow-grid>*{min-width:0}
.campo-check input[type=checkbox]{width:20px;height:20px;flex:0 0 20px}
.campo-check{align-items:flex-start}
.campo-check input{margin-top:4px}
.artigo-corpo .btn{color:#091710;text-decoration:none}
@media(max-width:1200px){
  .nav-inner{gap:12px;justify-content:space-between}
  .nav-toggle{width:44px;height:44px;display:grid;place-items:center;flex:none}
  .nav-links{visibility:hidden;pointer-events:none}
  .nav-links.open{visibility:visible;pointer-events:auto;max-height:calc(100dvh - var(--nav-h));overflow-y:auto;overscroll-behavior:contain}
  .nav.scrolled .nav-links.open{max-height:calc(100dvh - 68px)}
  .nav-links a{min-height:48px}
}
@media(max-width:640px){
  :root{--nav-h:72px}
  html{scroll-padding-top:84px}
  .container{padding-left:18px;padding-right:18px}
  .nav-inner{padding:0 16px;gap:10px}
  .nav-cta{gap:6px;margin-left:auto}
  .nav-cta .btn{font-size:.65rem;letter-spacing:.06em;padding:10px 12px;min-height:44px}
  .brand-logo{max-width:110px;object-fit:contain}
  h1{font-size:clamp(2rem,9vw,3rem);overflow-wrap:anywhere}
  h2{font-size:clamp(1.65rem,7vw,2.15rem)}
  p,li,dd,a{overflow-wrap:anywhere}
  section{padding:52px 0}
  .section-head{margin-bottom:30px}
  .hero{min-height:0;padding:calc(var(--nav-h) + 42px) 0 52px}
  .hero::after{background:linear-gradient(180deg,rgba(9,23,16,.65),rgba(9,23,16,.8))}
  .hero-bg img{object-position:60% center}
  .hero-eyebrow{gap:10px;margin-bottom:18px}
  .hero-eyebrow .dash{width:24px;flex:none}
  .eyebrow{letter-spacing:.13em;line-height:1.6}
  .hero-sub{font-size:1rem;margin-bottom:24px}
  .hero-oab{margin-top:24px;letter-spacing:.08em}
  .btn{min-height:48px;white-space:normal;text-align:center;letter-spacing:.08em;padding:13px 18px;max-width:100%}
  .hero-actions{flex-direction:column;gap:12px}
  .hero-actions .btn,.public-page>.btn,.artigo-corpo>.btn,.ev-cta .btn{width:100%}
  .area-grid,.ev-grid,.post-grid,.form-grid{grid-template-columns:minmax(0,1fr)}
  .area{padding:26px 22px}
  .perfil-inner,.contato-inner{gap:28px}
  .perfil-foto{max-width:360px;width:100%;margin:0 auto}
  .cred li,.contato-lista li{flex-direction:column;gap:4px}
  .cred span,.contato-lista span{min-width:0}
  .contato-nota,.urgencia{padding:24px 20px}
  .urgencia .btn{width:100%}
  .public-page,.intake-page{padding-top:100px;padding-bottom:48px}
  .intake-heading{margin-bottom:26px}
  .intake-heading h1{font-size:clamp(2rem,8vw,2.8rem)}
  .intake-page>.bloco{padding:22px 18px}
  .intake-card legend{font-size:1.6rem}
  .campo input,.campo select,.campo textarea,.blog-busca input,.blog-busca select{font-size:16px;min-width:0;max-width:100%}
  .campo input:not([type=checkbox]),.campo select{min-height:48px}
  .campo>span{line-height:1.5;letter-spacing:.08em}
  .intake-actions .btn{flex:1 1 120px}
  .intake-report{max-height:55svh;font-size:.95rem}
  .login-page{min-height:100svh;padding:52px 18px 32px}
  .login-card{padding:30px 22px}
  .app-bar{position:static;padding:0}
  .app-bar-inner{padding:16px 18px;gap:16px}
  .app-nav{gap:6px 14px}
  .app-nav a{display:inline-flex;align-items:center;min-height:44px}
  .app-main{padding-top:28px;padding-bottom:48px}
  .admin-actions{align-items:stretch}
  .admin-actions .link-acao,.filtros a{display:inline-flex;align-items:center;min-height:44px}
  .tabela td,.doc-nome{overflow-wrap:anywhere}
  .blog-busca{gap:12px}
  .blog-busca input,.blog-busca .campo,.blog-busca .btn{flex:1 1 100%;width:100%}
  .blog-hero{padding:100px 0 32px}
  .artigo{padding:100px 0 48px}
  .artigo-topo h1{font-size:clamp(2rem,8vw,2.8rem)}
  .artigo-corpo{font-size:1rem}
  .pagination{flex-wrap:wrap;gap:12px}
  .pagination a{display:inline-flex;align-items:center;min-height:44px}
  footer{padding:40px 0 calc(80px + env(safe-area-inset-bottom))}
  .foot-links{gap:6px 18px;margin-top:16px}
  .foot-links a{display:inline-flex;align-items:center;min-height:44px}
  .atendimento-flutuante{bottom:calc(12px + env(safe-area-inset-bottom));max-width:calc(100% - 24px);min-height:44px}
}
