:root{
  --bg:#F2F2F7;
  --surface:#FFFFFF;
  --ink:#1C1C1E;
  --ink-soft:#6E6E73;
  --azul:#004E89;
  --azul-soft:#EAF1F8;
  --laranja:#FF6B35;
  --laranja-soft:#FFF1EA;
  --verde:#00C49A;
  --linha:#E5E5EA;

  /* SF Pro é a família nativa da Apple; nos navegadores fora do ecossistema
     Apple, a pilha abaixo cai para a fonte de sistema equivalente de cada
     plataforma, mantendo sempre a fonte nativa do dispositivo do usuário. */
  --sistema: -apple-system, BlinkMacSystemFont, "SF Pro Text", "SF Pro Display",
             "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}

*{box-sizing:border-box;}

html{
  /* nunca fixar o tamanho da fonte raiz em px: preserva o Dynamic Type
     e o "Tamanho de Texto" do sistema/Safari */
  -webkit-text-size-adjust:auto;
  text-size-adjust:auto;
}

body{
  margin:0;
  font-family:var(--sistema);
  color:var(--ink);
  background:var(--bg);
  line-height:1.55;
  font-size:1.0625rem; /* 17pt/17px — corpo padrão recomendado pela Apple */
  -webkit-font-smoothing:antialiased;
}

/* ---------- Cabeçalho ---------- */

header.topo{
  background:var(--surface);
  border-bottom:1px solid var(--linha);
}

header.topo .marca-wrap{
  max-width:680px;
  margin:0 auto;
  padding:22px 20px 18px;
  text-align:center; /* título curto: alinhamento central é aceitável aqui */
}

header.topo .marca{
  display:inline-flex;
  align-items:center;
  gap:9px;
  justify-content:center;
}

header.topo .bolinha{
  width:10px;height:10px;border-radius:50%;
  background:var(--laranja);
  flex-shrink:0;
}

header.topo h1{
  font-size:1.1875rem; /* 19pt */
  font-weight:700;
  letter-spacing:-0.01em;
  margin:0;
  color:var(--ink);
}

header.topo p.subtitulo{
  margin:6px 0 0;
  color:var(--ink-soft);
  font-size:0.9375rem; /* 15pt */
  font-weight:400;
}

/* ---------- Corpo ---------- */

main{
  max-width:680px;
  margin:0 auto;
  padding:32px 20px 90px;
}

.doc-titulo{
  text-align:center; /* título curto */
  font-size:1.375rem; /* 22pt */
  font-weight:700;
  letter-spacing:-0.01em;
  line-height:1.3;
  margin:0 0 6px;
  color:var(--ink);
}

.data-atualizacao{
  text-align:center;
  color:var(--ink-soft);
  font-size:0.9375rem; /* 15pt — acima do mínimo de 11pt exigido */
  margin-bottom:2em;
}

.aviso{
  background:var(--laranja-soft);
  border-left:3px solid var(--laranja);
  padding:16px 18px;
  border-radius:10px;
  font-size:0.9375rem; /* 15pt */
  line-height:1.55;
  margin-bottom:2.2em;
  color:var(--ink);
  text-align:left;
}

.aviso strong{color:#B8501F; font-weight:600;}

/* Cláusulas — corpo sempre alinhado à esquerda, nunca justificado nem
   centralizado, para evitar fadiga de leitura em telas estreitas */
h2{
  color:var(--ink);
  font-size:1.0625rem; /* 17pt, mesmo tamanho do corpo — hierarquia dada
                          pelo peso e pela cor, não por um salto de escala */
  font-weight:700;
  text-align:left;
  margin-top:1.9em;
  margin-bottom:0.7em;
  padding-bottom:8px;
  border-bottom:1px solid var(--linha);
}

h2::before{
  content:"";
  display:inline-block;
  width:4px;
  height:4px;
}

p{
  margin:0.85em 0;
  font-size:1rem; /* 17pt */
  color:var(--ink);
  text-align:left;
  max-width:68ch; /* evita linhas longas demais em telas largas/horizontais */
}

strong{color:var(--ink); font-weight:700;}

/* ---------- Tabelas ---------- */

.tabela-wrap{
  overflow-x:auto; /* rola na horizontal em vez de espremer o texto */
  margin:1.2em 0;
  border:1px solid var(--linha);
  border-radius:10px;
}

table{
  border-collapse:collapse;
  width:100%;
  font-size:0.9375rem;
}

th, td{
  text-align:left;
  padding:10px 14px;
  border-bottom:1px solid var(--linha);
  vertical-align:top;
}

th{
  background:var(--bg);
  font-weight:600;
  white-space:nowrap;
}

tr:last-child td{border-bottom:none;}

/* ---------- Listas de itens (cláusulas) ---------- */

main ul{
  margin:0.85em 0;
  padding-left:1.3em;
}

main li{
  margin:0.4em 0;
  font-size:1rem;
  text-align:left;
}

/* ---------- Campos pendentes de preenchimento ---------- */

.preencher{
  background:var(--laranja-soft);
  color:#B8501F;
  font-weight:600;
  padding:1px 6px;
  border-radius:4px;
  font-size:0.9em;
}

/* ---------- Sumário (lista estilo iOS agrupado) ---------- */

nav.sumario{
  background:var(--surface);
  border:1px solid var(--linha);
  border-radius:12px;
  padding:4px 0;
  margin-bottom:2.2em;
  font-size:0.9375rem;
  overflow:hidden;
}

nav.sumario summary{
  cursor:pointer;
  font-weight:600;
  color:var(--ink);
  list-style:none;
  padding:12px 18px;
}

nav.sumario summary::-webkit-details-marker{display:none;}

nav.sumario ol{
  margin:0;
  padding:0;
  list-style:none;
  border-top:1px solid var(--linha);
}

nav.sumario li{
  border-bottom:1px solid var(--linha);
}

nav.sumario li:last-child{border-bottom:none;}

nav.sumario a{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:11px 18px;
  color:var(--ink);
  text-decoration:none;
  text-align:left;
  font-size:0.9375rem;
}

nav.sumario a::after{
  content:"›";
  color:var(--ink-soft);
  font-size:1.1em;
  flex-shrink:0;
}

nav.sumario a:active,
nav.sumario a:hover{
  background:var(--bg);
}

/* ---------- Rodapé ---------- */

footer.rodape{
  text-align:center;
  color:var(--ink-soft);
  font-size:0.875rem; /* 14pt — acima do mínimo de 11pt */
  padding:28px 20px 56px;
  border-top:1px solid var(--linha);
  margin-top:2em;
  max-width:680px;
  margin-left:auto;
  margin-right:auto;
}

footer.rodape a{color:var(--azul); text-decoration:none;}
footer.rodape a:hover{text-decoration:underline;}

/* ---------- Índice geral (index.html) ---------- */

.lista-docs{
  list-style:none;
  padding:0;
  margin:1.6em 0;
  display:flex;
  flex-direction:column;
  gap:1px;
  background:var(--linha);
  border-radius:12px;
  overflow:hidden;
  border:1px solid var(--linha);
}

.lista-docs a{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  font-weight:600;
  font-size:1rem;
  color:var(--ink);
  background:var(--surface);
  padding:16px 18px;
  text-decoration:none;
  text-align:left;
}

.lista-docs a::after{
  content:"›";
  color:var(--ink-soft);
  font-size:1.2em;
  flex-shrink:0;
}

.lista-docs a:active,
.lista-docs a:hover{
  background:var(--bg);
}

/* ---------- Responsivo ---------- */

@media (min-width:640px){
  header.topo h1{font-size:1.3125rem;}
  .doc-titulo{font-size:1.625rem;}
}

@media (max-width:400px){
  main{padding:26px 16px 70px;}
}

/* Telas largas/horizontais: nunca deixar o parágrafo esticar por toda a
   largura — mantém a coluna de leitura estreita mesmo em landscape */
@media (min-width:900px){
  main{max-width:680px;}
}

/* ---------- Impressão ---------- */

@media print{
  header.topo{border-bottom:1px solid #000;}
  nav.sumario{display:none;}
  body{background:#fff;}
}
