/* ==========================================================================
   Daniel Braga Frederico — Advocacia & Consultoria — style.css
   Reconstruído a partir do handoff README.md (pacote "Site Acento Bronze")
   ========================================================================== */

@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:wght@400;500&family=Montserrat:wght@300;400;500&display=swap');

:root{
  --graphite:    #1E2E4E;
  --nude:        #7D7872;
  --gray:        #ABAAA8;
  --rule:        #E2D6B4;
  --paper:       #F7F1E3;
  --paper-warm:  #EDE1C0;
  --accent:       #2E4A73;
  --accent-hover: #1E2E4E;
  --danger:       #6B2F2A;

  /* texto secundário — tom de ardósia/marinho suave, ~20% mais claro que o
     grafite/marinho principal, para legibilidade de corpo de texto */
     monograma, kickers, legendas e apoio decorativo) */
  --text-secondary: #46536B;

  --serif: 'Playfair Display', Georgia, serif;
  --sans:  'Montserrat', Helvetica, Arial, sans-serif;

  --max: 1440px;
  --side: 64px;
}

*, *::before, *::after{ box-sizing: border-box; }
html{ scroll-behavior: smooth; }
body{
  margin: 0;
  background: var(--paper);
  color: var(--graphite);
  font-family: var(--sans);
  font-weight: 300;
  font-size: 15px;
  line-height: 1.8;
  -webkit-font-smoothing: antialiased;
  text-wrap: pretty;
}
img{ max-width: 100%; display: block; }
a{ color: inherit; text-decoration: none; }
h1,h2,h3,h4{
  font-family: var(--serif);
  font-weight: 400;
  color: var(--graphite);
  line-height: 1.18;
  margin: 0;
  text-wrap: pretty;
}

.container{ max-width: var(--max); margin: 0 auto; padding: 0 var(--side); }

/* raio zero é decisão de marca — nada neste site tem border-radius, exceto o selo */
button, input, textarea, select{ border-radius: 0; font-family: var(--sans); }

/* foco — aplicado a todo elemento focável, nunca removido sem substituição */
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible{
  outline: none;
  border-color: var(--accent);
  box-shadow: 0 0 0 3px rgba(46,74,115,0.14);
}

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

.skip-link{
  position: absolute;
  left: -9999px;
  top: 0;
  z-index: 100;
  background: var(--graphite);
  color: var(--paper);
  padding: 14px 20px;
  font-size: 12px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.skip-link:focus{ left: 12px; top: 12px; }

.kicker{
  display: flex; align-items: center; gap: 12px;
}
.kicker::before{
  content: ''; width: 26px; height: 1.5px; background: var(--accent); flex-shrink: 0;
}
.kicker span{
  font-family: var(--sans);
  font-size: 10.5px;
  font-weight: 500;
  letter-spacing: 0.26em;
  text-transform: uppercase;
  color: var(--accent);
}

.section-num{
  display: flex; align-items: baseline; gap: 14px; margin-bottom: 44px;
}
.section-num .num{ font-family: var(--serif); font-size: 14px; color: var(--accent); }
.section-num h2{ font-size: 30px; letter-spacing: -0.3px; }

/* ---------- botões ---------- */
.btn{
  display: inline-block;
  font-family: var(--sans);
  font-size: 10.5px;
  font-weight: 500;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  padding: 13px 24px;
  border: none;
  cursor: pointer;
  transition: background-color .15s ease-out, color .15s ease-out, border-color .15s ease-out;
}
.btn--accent{ background: var(--accent); color: var(--paper); }
.btn--accent:hover{ background: var(--accent-hover); }
/* sobre fundo grafite/marinho escuro, o botão é papel sobre grafite — nunca o acento, que perderia contraste ali */
.btn--on-graphite{ background: var(--paper); color: var(--graphite); }
.btn--on-graphite:hover{ background: var(--paper-warm); }
.btn--text{
  padding: 0 0 3px;
  color: var(--graphite);
  border-bottom: 1.5px solid var(--accent);
  background: none;
}
.btn--text:hover{ color: var(--accent); }

/* ---------- header ---------- */
.site-header{
  position: sticky; top: 0; z-index: 40;
  background: var(--paper);
  border-bottom: 1px solid var(--paper-warm);
}
.site-header .container{
  display: flex; align-items: center; justify-content: space-between;
  padding-top: 26px; padding-bottom: 26px;
}
.brand{ display: flex; align-items: center; gap: 18px; flex-shrink: 0; }
.brand-mark{ display: flex; flex-direction: column; align-items: center; width: 44px; flex-shrink: 0; }
.brand-mono{ font-family: var(--serif); font-size: 15px; font-weight: 500; line-height: 1.05; letter-spacing: 0.03em; color: var(--graphite); text-align: center; }
.brand-mark .arco{ width: 50px; height: auto; margin-top: 4px; }
.brand-mark .arco path{ fill: var(--accent); }
.brand-type{ line-height: 1.2; }
.brand-name{ display: block; font-family: var(--serif); font-weight: 500; font-size: 23px; color: var(--graphite); white-space: nowrap; }
.brand-desc{ display: block; font-family: var(--sans); font-weight: 500; font-size: 11.5px; letter-spacing: 0.15em; text-transform: uppercase; color: var(--text-secondary); margin-top: 4px; white-space: nowrap; }

.header-right{ display: flex; align-items: center; gap: 38px; }
.nav{ display: flex; align-items: center; gap: 32px; }
.nav a{
  font-size: 12.5px; font-weight: 500; letter-spacing: 0.11em; text-transform: uppercase;
  color: var(--graphite);
  padding-bottom: 5px;
  border-bottom: 1.5px solid transparent;
  transition: color .15s ease-out, border-color .15s ease-out;
  white-space: nowrap;
}
.nav a:hover{ color: var(--accent); }
.nav a[aria-current="page"], .nav a.is-active{ color: var(--accent); border-bottom-color: var(--accent); }

.nav-toggle{ display:none; background:none; border:none; cursor:pointer; width: 30px; height: 20px; position: relative; }
.nav-toggle span{ position:absolute; left:0; right:0; height:1.5px; background: var(--graphite); }
.nav-toggle span:nth-child(1){ top:0; }
.nav-toggle span:nth-child(2){ top:9px; }
.nav-toggle span:nth-child(3){ top:18px; }

@media (max-width: 1023px){
  .nav{
    position: fixed; inset: 78px 0 0 0;
    background: var(--paper);
    flex-direction: column; align-items: flex-start;
    padding: 30px var(--side); gap: 24px;
    opacity: 0; pointer-events: none; transform: translateY(-8px);
    transition: opacity .2s ease, transform .2s ease;
    border-top: 1px solid var(--paper-warm);
  }
  .nav.is-open{ opacity: 1; transform: translateY(0); pointer-events: auto; }
  .nav a{ font-size: 14px; }
  .nav-toggle{ display: block; }
  .brand-name{ font-size: 17px; }
  .brand-desc{ font-size: 9px; letter-spacing: 0.1em; }
  .brand-mark{ width: 32px; }
  .brand-mark .arco{ width: 36px; }
  .brand-mono{ font-size: 11px; }
  .header-right{ gap: 14px; }
}
@media (max-width: 520px){
  .header-right .btn--accent{ display: none; }
}
@media (max-width: 360px){
  .brand-desc{ display: none; }
}

/* ---------- hero ---------- */
.hero{
  position: relative;
  aspect-ratio: 21 / 9;
  min-height: 340px;
  overflow: hidden;
  display: flex; align-items: center;
  background: #FAFAF8 url('../assets/img/banner-institucional.jpg') right center / cover no-repeat;
  border-bottom: 1px solid var(--paper-warm);
}
.hero-content{ max-width: 600px; padding-left: var(--side); }
.hero-content .kicker{ margin-bottom: 26px; }
.hero h1{
  font-size: clamp(30px, 4vw, 58px);
  letter-spacing: -1px;
  line-height: 1.16;
}
.hero-lede{
  margin-top: 26px;
  font-family: var(--sans);
  font-weight: 400;
  font-size: 15px;
  line-height: 1.8;
  color: var(--text-secondary);
  max-width: 46ch;
}
.hero-actions{ margin-top: 38px; display: flex; align-items: center; gap: 26px; flex-wrap: wrap; }

@media (max-width: 1439px){
  :root{ --side: 40px; }
}
@media (max-width: 1280px){
  .brand-name{ font-size: 19px; }
  .brand-desc{ font-size: 10px; letter-spacing: 0.12em; }
  .brand-mark{ width: 38px; }
  .brand-mark .arco{ width: 42px; }
  .brand-mono{ font-size: 13px; }
  .header-right{ gap: 22px; }
  .nav{ gap: 18px; }
  .nav a{ font-size: 11px; letter-spacing: 0.08em; }
  .btn--accent{ padding: 12px 16px; font-size: 9.5px; }
}
@media (max-width: 1023px){
  .hero{ aspect-ratio: auto; min-height: 320px; padding: 56px 0; }
}
@media (max-width: 767px){
  .hero{ background: var(--paper); min-height: unset; padding: 96px 0 48px; }
  .hero-content{ padding-left: 0; }
}

/* ---------- section scaffolding ---------- */
.section{ padding: 78px 0; }
.section + .section{ border-top: 1px solid var(--paper-warm); }

/* ---------- áreas de atuação ---------- */
.pillars{
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1px;
  background: var(--paper-warm);
}
.pillar{
  background: var(--paper);
  padding: 34px 30px 30px;
  display: flex; flex-direction: column; gap: 13px;
}
.pillar .fio{ width: 20px; height: 1.5px; background: var(--accent); }
.pillar h3{ font-size: 19px; color: var(--graphite); }
.pillar p{ font-family: var(--sans); font-weight: 400; font-size: 12.5px; line-height: 1.8; color: var(--text-secondary); margin: 0; }
.pillar .saber-mais{
  margin-top: 6px;
  font-size: 10px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--accent);
}
.pillar a.saber-mais:hover{ color: var(--accent-hover); }

@media (max-width: 1023px){
  .pillars{ grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 640px){
  .pillars{ grid-template-columns: 1fr; }
}

/* ---------- como o trabalho é construído ---------- */
.processo-grid{
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1px;
  background: var(--paper-warm);
}
.processo-item{
  background: var(--paper);
  padding: 30px 30px 26px;
}
.processo-item .fio{ width: 20px; height: 1.5px; background: var(--accent); margin-bottom: 13px; }
.processo-item h3{ font-size: 17px; color: var(--graphite); }
.processo-item p{ margin-top: 10px; font-family: var(--sans); font-weight: 400; font-size: 12.5px; line-height: 1.8; color: var(--text-secondary); }
@media (max-width: 640px){
  .processo-grid{ grid-template-columns: 1fr; }
}

/* ---------- publicações: filtro de categoria ---------- */
.pub-filters{ display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 34px; }
.pub-filter{
  font-family: var(--sans);
  font-size: 10.5px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--text-secondary);
  background: none;
  border: 1px solid var(--rule);
  padding: 8px 14px;
  cursor: pointer;
}
.pub-filter:hover{ border-color: var(--accent); color: var(--accent); }
.pub-filter.is-active{ background: var(--accent); border-color: var(--accent); color: var(--paper); }
.pub-item{ transition: none; }
.pub-item[hidden]{ display: none; }
.pub-tags{ margin-top: 10px; display: flex; flex-wrap: wrap; gap: 8px; }
.pub-tag{ font-size: 10px; letter-spacing: 0.06em; color: var(--gray); }
.pub-tag + .pub-tag::before{ content: '·'; margin-right: 8px; color: var(--rule); }
.pub-readtime::before{ content: '·'; margin: 0 8px; color: var(--rule); }

/* ---------- método (AED) ---------- */
.metodo-body{ display: flex; gap: 64px; align-items: flex-start; }
.metodo-lede{ flex: 0 0 560px; max-width: 560px; }
.metodo-lede .headline{ font-family: var(--serif); font-size: 22px; line-height: 1.55; letter-spacing: -0.2px; color: var(--graphite); }
.metodo-lede p{ margin-top: 24px; font-family: var(--sans); font-weight: 400; font-size: 12.5px; line-height: 1.85; color: var(--text-secondary); }
.metodo-list{ flex: 1; }
.metodo-item{
  display: flex; gap: 20px;
  padding: 20px 0;
  border-top: 1px solid var(--paper-warm);
}
.metodo-item:last-child{ border-bottom: 1px solid var(--paper-warm); }
.metodo-item .numeral{ font-family: var(--serif); font-size: 12px; color: var(--accent); width: 20px; flex-shrink: 0; }
.metodo-item h4{ font-size: 16px; color: var(--graphite); font-weight: 400; }
.metodo-item p{ margin-top: 5px; font-family: var(--sans); font-weight: 400; font-size: 12px; line-height: 1.75; color: var(--text-secondary); }

@media (max-width: 1023px){
  .metodo-body{ flex-direction: column; gap: 40px; }
  .metodo-lede{ flex-basis: auto; max-width: none; }
}

/* ---------- destaque editorial ---------- */
.destaque{
  border-left: 1.5px solid var(--accent);
  padding: 6px 0 6px 30px;
  max-width: 820px;
}
.destaque p{
  font-family: var(--serif);
  font-size: 26px;
  line-height: 1.5;
  letter-spacing: -0.2px;
  color: var(--graphite);
  margin: 0;
}

/* ---------- faixa de contato (CTA escura) ---------- */
.faixa-contato{
  background: var(--graphite);
  padding: 56px 0;
}
.faixa-contato .container{
  display: flex; align-items: center; justify-content: space-between; gap: 48px; flex-wrap: wrap;
}
.faixa-contato h2{ font-size: 26px; color: var(--paper); }
.faixa-contato .contatos{ margin-top: 11px; font-family: var(--sans); font-weight: 300; font-size: 12.5px; color: var(--gray); }
.faixa-contato .contatos a{ color: var(--gray); }
.faixa-contato .contatos a:hover{ color: var(--paper); }

/* ---------- page-hero (páginas internas) ---------- */
.page-hero{ padding: 64px 0 56px; border-bottom: 1px solid var(--paper-warm); }
.page-hero h1{ font-size: clamp(28px, 3.6vw, 44px); margin-top: 12px; letter-spacing: -0.6px; }
.page-hero p{ margin-top: 18px; max-width: 60ch; color: var(--text-secondary); font-size: 15px; font-weight: 400; }
.breadcrumb{ font-size: 11px; color: var(--gray); letter-spacing: 0.05em; }
.breadcrumb a{ color: var(--accent); }
.breadcrumb a:hover{ color: var(--accent-hover); }

.page-hero-split{
  display: grid;
  grid-template-columns: 1fr 1fr;
  min-height: 420px;
  border-bottom: 1px solid var(--rule);
}
/* #FAFAF8 é a cor exata de fundo já embutida nas ilustrações do banner —
   usar esse tom (não branco puro) evita qualquer emenda visível entre
   caixa de texto, caixa de imagem e a própria arte. */
.page-hero-split .split-text{
  display: flex;
  align-items: center;
  background: #FAFAF8;
}
.page-hero-split .split-text .container{ max-width: 560px; margin: 0; }
.page-hero-split .split-media{
  background-color: #FAFAF8;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  min-height: 260px;
}
.page-hero-split.media-right .split-media{ order: 2; background-image: url('../assets/img/banner-institucional.jpg'); background-position: right center; }
.page-hero-split.media-right .split-text{ order: 1; }
.page-hero-split.media-left .split-media{ order: 1; background-image: url('../assets/img/banner-institucional-espelhado.jpg'); background-position: left center; }
.page-hero-split.media-left .split-text{ order: 2; }

.page-hero-split h1{ font-size: clamp(24px, 2.4vw, 32px); margin-top: 16px; letter-spacing: -0.4px; line-height: 1.22; }
.page-hero-split .kicker{ margin-top: 0; }
.page-hero-split p{ margin-top: 16px; max-width: 44ch; font-size: 14.5px; }
.page-hero-split .breadcrumb{ display: block; margin-bottom: 18px; }

@media (max-width: 1023px){
  .page-hero-split{ grid-template-columns: 1fr; min-height: auto; }
  .page-hero-split .split-media{ order: -1 !important; min-height: 220px; }
  .page-hero-split .split-text{ order: 0 !important; padding: 40px 0; }
  .page-hero-split .split-text .container{ max-width: none; }
}

/* ---------- timeline (o escritório) ---------- */
.timeline{ border-top: 1px solid var(--paper-warm); }
.timeline-item{
  display: grid; grid-template-columns: 160px 1fr; gap: 24px;
  padding: 26px 0; border-bottom: 1px solid var(--paper-warm);
}
.timeline-item .kicker-label{ font-size: 10.5px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--accent); }
.timeline-item h3{ font-size: 17px; }
.timeline-item p{ margin-top: 8px; font-size: 13px; font-weight: 400; color: var(--text-secondary); max-width: 56ch; }
@media (max-width: 640px){
  .timeline-item{ grid-template-columns: 1fr; gap: 6px; }
}

.two-col{ display: grid; grid-template-columns: 0.85fr 1.15fr; gap: 64px; }
@media (max-width: 1023px){ .two-col{ grid-template-columns: 1fr; gap: 40px; } }
.lede-large{ font-family: var(--serif); font-size: 22px; line-height: 1.5; color: var(--graphite); max-width: 42ch; }
.text-block p + p{ margin-top: 16px; }
.text-block p{ font-size: 13px; font-weight: 400; color: var(--text-secondary); max-width: 62ch; line-height: 1.85; }

/* ---------- publicações ---------- */
.pub-list{ border-top: 1px solid var(--paper-warm); }
.pub-item{ padding: 26px 0; border-bottom: 1px solid var(--paper-warm); }
.pub-item .kicker-label{ font-size: 10.5px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--accent); }
.pub-item h3{ font-size: 17px; margin-top: 10px; font-weight: 400; }
.pub-item .desc{ margin-top: 8px; font-size: 13px; font-weight: 400; color: var(--text-secondary); max-width: 62ch; }
.pub-item .pub-meta{ margin-top: 10px; font-size: 11px; letter-spacing: 0.05em; color: var(--gray); }

/* ---------- form (contato) ---------- */
.form-grid{ display: grid; grid-template-columns: 1fr 1fr; gap: 22px; }
.form-grid .full{ grid-column: 1 / -1; }
label{ display: block; font-size: 11px; font-weight: 600; letter-spacing: 0.13em; text-transform: uppercase; color: var(--graphite); margin-bottom: 8px; }
input, textarea, select{
  width: 100%;
  font-size: 13px; font-weight: 500;
  color: var(--graphite);
  background: var(--paper);
  border: 1px solid var(--rule);
  padding: 13px 14px;
}
input::placeholder, textarea::placeholder{ color: var(--gray); font-weight: 400; }
input:focus, textarea:focus, select:focus{
  outline: none; border-color: var(--accent);
  box-shadow: 0 0 0 3px rgba(46,74,115,0.14);
  color: var(--graphite);
}
textarea{ resize: vertical; min-height: 130px; }
.field.has-error input, .field.has-error textarea{ border-color: var(--danger); }
.field-error{ display: none; margin-top: 6px; font-size: 11.5px; font-weight: 600; color: var(--danger); line-height: 1.6; }
.field.has-error .field-error{ display: block; }
input:disabled, textarea:disabled{ background: var(--paper-warm); color: var(--gray); border: none; }
.form-note{ margin-top: 18px; font-size: 12px; font-weight: 500; color: var(--text-secondary); }

.contact-info{ display: grid; grid-template-columns: repeat(3, 1fr); gap: 64px; margin-top: 52px; padding-top: 44px; border-top: 1px solid var(--paper-warm); }
.contact-info h5{ font-size: 10.5px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--accent); margin: 0 0 10px; font-weight: 500; }
.contact-info p, .contact-info a{ font-size: 14px; color: var(--graphite); }
.map-embed{ margin-top: 44px; border: 1px solid var(--paper-warm); filter: grayscale(0.35) contrast(1.02); }
.map-embed iframe{ width: 100%; height: 340px; border: 0; display: block; }
@media (max-width: 720px){
  .form-grid{ grid-template-columns: 1fr; }
  .contact-info{ grid-template-columns: 1fr; gap: 28px; }
}

/* ---------- tabela de siglas ---------- */
.table-wrap{ overflow-x: auto; border-top: 1px solid var(--paper-warm); }
table.dbf-table{ width: 100%; border-collapse: collapse; font-size: 13px; }
table.dbf-table th{
  text-align: left; font-family: var(--sans); font-size: 10.5px; letter-spacing: 0.12em; text-transform: uppercase;
  color: var(--accent); padding: 16px 18px; border-bottom: 2px solid var(--accent);
}
table.dbf-table td{ padding: 16px 18px; border-bottom: 1px solid var(--paper-warm); color: var(--graphite); font-weight: 300; }
table.dbf-table tr:nth-child(even) td{ background: var(--paper-warm); }

/* ---------- footer ---------- */
.site-footer{ background: var(--graphite); color: var(--paper-warm); padding: 64px 0 30px; }
.footer-grid{ display: grid; grid-template-columns: 1.3fr 1fr 1fr 1fr; gap: 64px; padding-bottom: 44px; border-bottom: 1px solid rgba(255,255,255,0.14); }
.footer-brand .brand-name{ color: var(--paper); font-size: 17px; display: block; }
.footer-brand .brand-desc-line{ display: block; font-family: var(--sans); font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--gray); margin-top: 4px; }
.footer-brand p{ margin-top: 14px; color: var(--gray); font-size: 12.5px; max-width: 34ch; font-weight: 300; }
.footer-col h5{ font-size: 10.5px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--gray); margin: 0 0 14px; font-weight: 500; }
.footer-col a, .footer-col li{ display: block; font-size: 12.5px; color: var(--paper-warm); margin-bottom: 9px; list-style: none; font-weight: 300; }
.footer-col a:hover{ color: var(--accent); }
.footer-bottom{ display: flex; justify-content: space-between; flex-wrap: wrap; gap: 10px; padding-top: 24px; font-size: 11px; letter-spacing: 0.05em; color: var(--gray); }
.footer-bottom a{ color: var(--gray); }
.footer-bottom a:hover{ color: var(--paper); }
@media (max-width: 880px){ .footer-grid{ grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px){ .footer-grid{ grid-template-columns: 1fr; } }

/* ---------- artigo individual ---------- */
.article-meta{ display: flex; flex-wrap: wrap; gap: 10px; align-items: center; margin-top: 18px; font-size: 11px; letter-spacing: 0.05em; color: var(--gray); }
.article-meta .cat{ color: var(--accent); text-transform: uppercase; letter-spacing: 0.12em; }
.article-body{ max-width: 68ch; }
.article-body p{ font-size: 14px; font-weight: 400; line-height: 1.9; color: var(--text-secondary); margin: 0 0 22px; }
.article-body h2{ font-size: 22px; margin: 44px 0 16px; }
.article-body h3{ font-size: 17px; margin: 32px 0 12px; color: var(--graphite); }
.article-toc{
  border: 1px solid var(--paper-warm);
  padding: 24px 26px;
  margin: 0 0 40px;
  max-width: 40ch;
}
.article-toc h5{ font-size: 10.5px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--accent); margin: 0 0 12px; }
.article-toc a{ display: block; font-size: 13px; color: var(--graphite); padding: 5px 0; }
.article-toc a:hover{ color: var(--accent); }
.article-cta{
  margin-top: 56px;
  padding: 34px 38px;
  background: var(--paper-warm);
  border-left: 3px solid var(--accent);
}
.article-cta p{ font-size: 14px; color: var(--graphite); margin: 0 0 18px; max-width: 56ch; }

/* ---------- privacidade / legal ---------- */
.legal-body{ max-width: 70ch; }
.legal-body h2{ font-size: 19px; margin: 36px 0 12px; }
.legal-body p, .legal-body li{ font-size: 13.5px; font-weight: 400; line-height: 1.85; color: var(--text-secondary); }
.legal-body ul{ padding-left: 20px; }
.legal-body li{ margin-bottom: 8px; }
