/* Ribeiro Mesquita Advogados — estilo das páginas legais */

:root {
  --teal-900:#0E3B3A;
  --teal-800:#175756;
  --teal-600:#1E6E6C;
  --gold-600:#DEB180;
  --gold-700:#A0703A;
  --gold-cta:#D9A441;
  --gold-ink:#15332F;
  --cream:#F7F5F1;
  --ink:#20262B;
  --muted:#5C6670;
  --line:#E4E0D8;
  --white:#FFFFFF;
  --radius:6px;
  --serif:"Cormorant Garamond", Georgia, "Times New Roman", serif;
  --sans:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}

*,*::before,*::after { box-sizing:border-box; }
html { -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior:auto; } }

body {
  margin:0;
  font-family:var(--sans);
  color:var(--ink);
  background:var(--cream);
  font-size:16px;
  line-height:1.7;
  -webkit-font-smoothing:antialiased;
}
img { max-width:100%; display:block; }
a { color:var(--teal-600); }
a:hover, a:focus-visible { color:var(--teal-800); }
:focus-visible { outline:2px solid var(--gold-cta); outline-offset:3px; border-radius:2px; }

.container { max-width:1180px; margin:0 auto; padding:0 24px; }

/* Ligação de salto */
.skip {
  position:absolute; left:-9999px; top:0;
  background:var(--teal-800); color:var(--white);
  padding:12px 16px; z-index:1000; font-weight:600;
}
.skip:focus { left:12px; top:12px; }

/* Cabeçalho */
.site-header {
  position:sticky; top:0; z-index:50;
  background:rgba(247,245,241,.94);
  backdrop-filter:saturate(140%) blur(8px);
  -webkit-backdrop-filter:saturate(140%) blur(8px);
  border-bottom:1px solid var(--line);
}
.site-header .inner {
  display:flex; align-items:center; justify-content:space-between;
  gap:20px; height:76px;
}
.brand { display:inline-flex; align-items:center; gap:14px; color:var(--teal-800); text-decoration:none; }
.brand-mark { width:42px; height:42px; flex:0 0 auto; }
.brand-name span:first-child {
  display:block; font-size:1.02rem; font-weight:500;
  text-transform:uppercase; letter-spacing:.15em; line-height:1.15;
}
.brand-name small {
  display:block; font-size:.62rem; color:var(--muted); font-weight:500;
  letter-spacing:.3em; text-transform:uppercase; margin-top:3px;
}
.back-link {
  font-size:.9rem; font-weight:600; text-decoration:none;
  display:inline-flex; align-items:center; gap:8px; white-space:nowrap;
}
.back-link svg { width:16px; height:16px; }

/* Cabeçalho do documento */
.doc-head { background:var(--teal-900); color:var(--white); padding:72px 0 64px; }
.doc-head .container { max-width:820px; }
.doc-head .eyebrow {
  font-size:.75rem; font-weight:600; letter-spacing:.16em;
  text-transform:uppercase; color:var(--gold-600); margin:0 0 12px;
}
.doc-head h1 {
  font-family:var(--serif); font-weight:600; line-height:1.1;
  font-size:clamp(2rem, 4vw, 3rem); margin:0 0 16px; color:var(--white);
}
.doc-head .updated { margin:0; color:rgba(255,255,255,.7); font-size:.9rem; }

/* Corpo do documento */
.doc { padding:64px 0 88px; }
.doc .container { max-width:820px; }
.doc h2 {
  font-family:var(--serif); font-weight:600; color:var(--teal-900);
  font-size:1.6rem; line-height:1.25; margin:48px 0 4px;
  padding-top:28px; border-top:1px solid var(--line);
}
.doc h2:first-of-type { margin-top:0; padding-top:0; border-top:0; }
.doc h3 { font-family:var(--sans); font-size:1rem; color:var(--teal-800); margin:28px 0 6px; }
.doc p { margin:0 0 1em; }
.doc ul, .doc ol { margin:0 0 1.2em; padding-left:22px; }
.doc li { margin-bottom:.5em; }
.doc .lede { font-family:var(--serif); font-size:1.2rem; color:var(--muted); }

/* Tabelas */
.doc table {
  width:100%; border-collapse:collapse; margin:8px 0 24px;
  font-size:.92rem; background:var(--white);
  border:1px solid var(--line); border-radius:8px; overflow:hidden;
}
.doc th, .doc td { text-align:left; padding:12px 14px; border-bottom:1px solid var(--line); vertical-align:top; }
.doc th { background:#EFEBE3; font-weight:600; color:var(--teal-900); }
.doc tr:last-child td { border-bottom:0; }
.table-wrap { overflow-x:auto; }

/* Caixas de destaque */
.callout {
  background:var(--white); border:1px solid var(--line);
  border-left:3px solid var(--gold-cta);
  border-radius:8px; padding:20px 22px; margin:0 0 24px;
}
.callout p:last-child { margin-bottom:0; }
.callout strong { color:var(--teal-900); }

/* Bloco de identificação */
.identity {
  background:var(--white); border:1px solid var(--line);
  border-radius:8px; padding:24px 26px; margin:0 0 28px;
}
.identity dl { margin:0; display:grid; grid-template-columns:190px 1fr; gap:10px 20px; }
.identity dt { font-size:.75rem; letter-spacing:.12em; text-transform:uppercase; color:var(--muted); padding-top:3px; }
.identity dd { margin:0; }

/* Campos por preencher */
.todo {
  background:#FBEFD4; color:#7A5310;
  border:1px dashed #C79A3C; border-radius:4px;
  padding:1px 7px; font-size:.85em; font-weight:600;
  white-space:nowrap;
}

/* Rodapé */
footer { background:#0B2E2D; color:rgba(255,255,255,.7); padding:56px 0 40px; font-size:.85rem; }
.footer-lockup { text-align:center; padding-bottom:36px; }
.footer-lockup img { width:132px; height:auto; margin:0 auto; opacity:.92; }
.footer-divider { height:1px; background:rgba(255,255,255,.14); margin-bottom:28px; border:0; }
footer .inner { display:flex; justify-content:space-between; gap:24px; flex-wrap:wrap; align-items:center; }
footer a { color:rgba(255,255,255,.75); text-decoration:none; }
footer a:hover { color:var(--gold-cta); }
.legal-links { display:flex; gap:20px; flex-wrap:wrap; }

@media (max-width: 720px) {
  .identity dl { grid-template-columns:1fr; gap:2px 0; }
  .identity dd { margin-bottom:12px; }
  .brand-name span:first-child { font-size:.9rem; letter-spacing:.12em; }
  .brand-mark { width:38px; height:38px; }
  .back-link span { display:none; }
  .doc { padding:48px 0 64px; }
  .doc-head { padding:56px 0 48px; }
}

/* ---------------------------------------------------------------
   Páginas de área de prática
   --------------------------------------------------------------- */

.breadcrumb { margin:0 0 22px; }
.breadcrumb ol {
  list-style:none; margin:0; padding:0;
  display:flex; flex-wrap:wrap; align-items:center; gap:8px;
  font-size:.78rem; letter-spacing:.06em; text-transform:uppercase;
  color:rgba(255,255,255,.6);
}
.breadcrumb li { display:flex; align-items:center; gap:8px; }
.breadcrumb li + li::before { content:"›"; opacity:.5; }
.breadcrumb a { color:rgba(255,255,255,.78); text-decoration:none; }
.breadcrumb a:hover { color:var(--gold-cta); }
.breadcrumb [aria-current="page"] { color:var(--gold-600); }

.area-icon {
  display:grid; place-items:center;
  width:54px; height:54px; border-radius:50%;
  background:rgba(255,255,255,.08); color:var(--gold-600);
  margin-bottom:20px;
}
.area-icon svg { width:26px; height:26px; }

.doc-lead {
  font-family:var(--serif); font-size:1.25rem; line-height:1.5;
  color:rgba(255,255,255,.82); max-width:56ch; margin:14px 0 0;
}

/* Lista de serviços */
.servicos { list-style:none; margin:0 0 8px; padding:0; display:grid; gap:2px; }
.servicos li {
  padding:20px 0; border-bottom:1px solid var(--line); margin:0;
}
.servicos li:last-child { border-bottom:0; }
.servicos h3 { margin:0 0 4px; font-size:1rem; color:var(--teal-800); }
.servicos p { margin:0; color:var(--muted); }

/* Perguntas frequentes */
.faq-lista { counter-reset:pergunta; }
.faq {
  background:var(--white); border:1px solid var(--line);
  border-radius:8px; margin-bottom:10px; overflow:hidden;
}
.faq summary {
  cursor:pointer; padding:18px 22px; list-style:none;
  font-weight:600; color:var(--teal-900);
  display:flex; align-items:flex-start; gap:14px;
  counter-increment:pergunta;
}
.faq summary::before {
  content:counter(pergunta) ".";
  flex:0 0 auto; min-width:1.5em;
  color:var(--gold-700); font-variant-numeric:tabular-nums;
}
.faq summary::-webkit-details-marker { display:none; }
.faq summary::after {
  content:"+"; flex:0 0 auto; margin-left:auto;
  font-size:1.3rem; line-height:1; color:var(--gold-700);
  transition:transform .2s ease;
}
.faq[open] summary::after { content:"–"; }
.faq summary:hover { background:#FBFAF7; }
.faq-body { padding:0 22px 20px 58px; color:var(--muted); }
.faq-body p { margin:0; }

/* Caixa de contacto */
.cta-box {
  background:var(--teal-900); color:var(--white);
  border-radius:12px; padding:38px 34px; margin:44px 0 0;
}
.cta-box h2 {
  color:var(--white); border-top:0; padding-top:0; margin:0 0 8px; font-size:1.5rem;
}
.cta-box p { color:rgba(255,255,255,.78); margin:0 0 22px; max-width:52ch; }
.cta-actions { display:flex; gap:12px; flex-wrap:wrap; }
.btn {
  display:inline-flex; align-items:center; gap:10px;
  padding:14px 24px; border-radius:var(--radius);
  font-weight:600; font-size:.95rem; text-decoration:none;
  border:1px solid transparent; cursor:pointer;
  transition:background .2s ease, color .2s ease, border-color .2s ease;
}
.btn-primary { background:var(--gold-cta); color:var(--gold-ink); }
.btn-primary:hover { background:var(--gold-cta-dark); color:var(--gold-ink); }
.btn-ghost-dark { background:transparent; color:var(--white); border-color:rgba(255,255,255,.45); }
.btn-ghost-dark:hover { background:rgba(255,255,255,.08); color:var(--white); }

/* Ligações para as outras áreas */
.area-chips { display:flex; flex-wrap:wrap; gap:10px; margin-bottom:8px; }
.area-chip {
  display:inline-flex; align-items:center;
  padding:10px 18px; border-radius:999px;
  background:var(--white); border:1px solid var(--line);
  color:var(--teal-800); font-size:.9rem; font-weight:500; text-decoration:none;
  transition:border-color .2s ease, color .2s ease;
}
.area-chip:hover { border-color:var(--gold-cta); color:var(--teal-900); }

.disclaimer {
  margin-top:40px; padding-top:22px; border-top:1px solid var(--line);
  font-size:.82rem; color:var(--muted);
}

@media (max-width: 720px) {
  .cta-box { padding:28px 24px; }
  .cta-actions .btn { flex:1 1 100%; justify-content:center; }
  .doc-lead { font-size:1.1rem; }
}
