/* ============================================================================
   ReparteCalc — Cartão de ponto.

   Folha PRÓPRIA desta página, e não a rc-design.css do separador de verbas: o
   desenho aqui é outro — tipografia maior, cantos retos, papel creme, coluna de
   rótulo à esquerda de cada seção. Compartilhar a folha obrigaria a encher a do
   separador de exceções, e mexer numa página quebraria a outra.

   O que as duas ainda compartilham são os ARQUIVOS de fonte, em assets/fonts:
   as regras da IBM Plex Mono estão copiadas aqui, apontando para os mesmos
   woff2. Nada é buscado fora do servidor — nem fonte.
   ========================================================================= */

/* ---- fontes ---- */
@font-face {
  font-family: 'EB Garamond';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url("fonts/90da03b9-3cd9-3e27-c390-606fb95c84fc.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'EB Garamond';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url("fonts/1c2f2f35-f4a6-603d-a0a2-cc04fff7d487.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'EB Garamond';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("fonts/32947709-9d69-a1c0-0c68-4ee398f5ab63.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'EB Garamond';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("fonts/e49d8e8c-c05f-c9b0-1c40-fbe8f6e7ba3b.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'EB Garamond';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("fonts/32947709-9d69-a1c0-0c68-4ee398f5ab63.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'EB Garamond';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("fonts/e49d8e8c-c05f-c9b0-1c40-fbe8f6e7ba3b.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'EB Garamond';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("fonts/32947709-9d69-a1c0-0c68-4ee398f5ab63.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'EB Garamond';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("fonts/e49d8e8c-c05f-c9b0-1c40-fbe8f6e7ba3b.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Source Sans 3';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("fonts/e87c0c02-5d7d-c727-7d01-cf8765e14ece.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Source Sans 3';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("fonts/d514f325-bafc-3d91-0e71-5a3179ccb415.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Source Sans 3';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("fonts/e87c0c02-5d7d-c727-7d01-cf8765e14ece.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Source Sans 3';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("fonts/d514f325-bafc-3d91-0e71-5a3179ccb415.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Source Sans 3';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("fonts/e87c0c02-5d7d-c727-7d01-cf8765e14ece.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Source Sans 3';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("fonts/d514f325-bafc-3d91-0e71-5a3179ccb415.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("fonts/3dc35e11-c281-4e6e-8bef-b4aaebfda225.woff2") format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("fonts/d057218c-af8a-4b61-8064-fa08299089b4.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("fonts/6fc011f2-8fd3-4e41-ba84-0e807147f8c8.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("fonts/16eb3614-1535-4ee1-a55b-6c5eef64df05.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("fonts/2911c99c-c350-49f4-b34f-3d75720d2122.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("fonts/c69586d3-96d8-43c5-a94a-dc8da7a1781d.woff2") format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("fonts/9205db43-d020-4ad2-8a3b-efed66eff81c.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("fonts/85e27162-2e8b-4008-a4ab-124cabc74b25.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("fonts/9e3117d5-4412-4fab-9a64-f4f5ed2bf88b.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("fonts/7ac8a65e-fb8d-4147-93b5-5a64349e4722.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* ---- tokens ----------------------------------------------------------------
   Tirados do exemplo aprovado. Nomes em português para não haver dúvida de que
   esta paleta é desta página. */
:root {
  --papel: #f2f1ef;          /* fundo da página */
  --papel-claro: #fdfcfa;    /* painéis */
  --creme: #fdf6e7;          /* faixa de destaque */
  --creme-borda: #e3d3ae;
  --tinta: #201d1a;
  --tinta-titulo: #2b2620;
  --tinta-corpo: #322d27;
  --tinta-fraca: #57504a;
  --tinta-rotulo: #857b6f;
  --tinta-rodape: #6b645c;
  --marrom: #8a5a1e;
  --marrom-escuro: #6b4413;
  --marrom-claro: #fdfbf7;
  --linha: #ddd6cb;
  --linha-forte: #2b2620;
  --linha-campo: #ccc3b5;
  --tracejado: #b9ae9d;
  --vermelho: #8c2f1a;
  --vermelho-fundo: #fbf0ec;

  --serif: 'EB Garamond', Georgia, serif;
  --sans: 'Source Sans 3', system-ui, sans-serif;
  --mono: 'IBM Plex Mono', monospace;
}

/* ---- base ---- */
*, *::before, *::after { box-sizing: border-box; }
/* Uma regra só, e com !important, porque a armadilha se repete: display:flex e
   display:grid vencem o atributo hidden. Sem isto, etapa vazia aparece e modal
   invisível cobre a página inteira, engolindo todo clique. */
[hidden] { display: none !important; }
/* 18px / 1.65 — a MESMA medida do separador de verbas (rc-design.css). As
   duas páginas são a mesma ferramenta; escala diferente em cada uma faz o
   usuário achar que trocou de site. */
body {
  margin: 0;
  background: var(--papel);
  color: var(--tinta);
  font-family: var(--sans);
  font-size: 18px;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
}
a { color: var(--marrom); text-underline-offset: 3px; }
a:hover { color: var(--marrom-escuro); }
h1, h2, h3 { font-family: var(--serif); font-weight: 500; color: var(--tinta-titulo); line-height: 1.2; }

/* Corpo de texto do exemplo: justificado, com hifenização. */
.just { text-align: justify; hyphens: auto; }

.wrap { max-width: 1060px; margin: 0 auto; padding: 40px 32px 80px; }

/* ---- cabeçalho ---- */
.topo {
  display: flex; flex-wrap: wrap; gap: 24px;
  justify-content: space-between; align-items: flex-start;
  padding-bottom: 22px; border-bottom: 2px solid var(--linha-forte);
}
.marca { font-family: var(--serif); font-size: 38px; letter-spacing: 0.01em; color: var(--tinta-titulo); }
.marca span { color: var(--marrom); }
.subtitulo { font-size: 16px; color: #4a443c; margin-top: 6px; }
.meta { font-family: var(--mono); font-size: 13px; line-height: 1.9; color: var(--tinta-fraca); text-align: right; }

/* ---- faixas de topo ---- */
.faixa {
  margin-top: 34px; background: var(--creme); border: 1px solid var(--creme-borda);
  padding: 26px 28px; display: flex; flex-wrap: wrap; gap: 26px;
  align-items: center; justify-content: space-between;
}
.faixa p { margin: 0; max-width: 46em; font-size: 17px; color: var(--tinta-titulo); }
.nota {
  margin-top: 18px; background: var(--papel-claro); border: 1px solid var(--linha);
  padding: 22px 28px;
}
.nota p { margin: 0; color: var(--tinta-corpo); }

/* ---- seções: rótulo à esquerda, conteúdo à direita ---- */
.secao {
  margin-top: 34px; display: grid; grid-template-columns: 190px 1fr; gap: 24px;
  align-items: start;
}
/* Item de grid não encolhe abaixo do conteúdo, e a grade tem largura mínima:
   sem isto a página inteira rola na horizontal e o texto dos avisos sai da
   tela, em vez de rolar só a tabela. */
.secao > * { min-width: 0; }
.secao.linha-acima { padding-top: 34px; border-top: 1px solid var(--linha); }
.secao.linha-abaixo { padding-bottom: 34px; border-bottom: 1px solid var(--linha); }
.rotulo { font-family: var(--mono); font-size: 13px; letter-spacing: 0.14em; color: var(--tinta-rotulo); }
.secao h2 { font-size: 27px; margin: 4px 0 0; }
.rotulo-extra { font-size: 16px; color: var(--tinta-rotulo); margin-top: 4px; }
.coluna { display: flex; flex-direction: column; gap: 16px; }
.coluna > p { margin: 0; color: var(--tinta-corpo); }
.ressalva {
  margin: 0; color: var(--tinta-fraca); font-size: 17px;
  border-left: 3px solid var(--creme-borda); padding-left: 16px;
}
.grifo { font-weight: 600; }
.grifo-forte { font-weight: 700; }

/* ---- botões ---- */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  font-family: inherit; font-size: 17px; line-height: 1.2; text-decoration: none;
  padding: 11px 20px; border: 1px solid transparent; border-radius: 0;
  cursor: pointer; background: none; color: var(--tinta);
}
.btn:disabled { opacity: 0.45; cursor: not-allowed; }
.btn-primary { font-weight: 600; color: var(--marrom-claro); background: var(--marrom); }
.btn-primary:hover:not(:disabled) { background: var(--marrom-escuro); }
.btn-secondary { font-weight: 600; background: var(--papel-claro); border-color: var(--linha-campo); }
.btn-secondary:hover:not(:disabled) { background: #fff; border-color: var(--tinta-rotulo); }
.btn-ghost { color: var(--marrom); padding: 11px 8px; text-decoration: underline; text-underline-offset: 3px; }
.btn-ghost:hover:not(:disabled) { color: var(--marrom-escuro); }
.acoes { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }

/* ---- campos ---- */
.input {
  font-family: inherit; font-size: 17px; color: var(--tinta);
  background: #fff; border: 1px solid var(--linha-campo); border-radius: 0;
  padding: 9px 12px;
}
.input:focus { outline: 2px solid var(--marrom); outline-offset: -1px; }

/* ---- área de envio ---- */
.drop {
  background: var(--papel-claro); border: 1px dashed var(--tracejado);
  padding: 44px 30px; display: flex; flex-direction: column;
  align-items: center; gap: 18px; text-align: center;
}
.drop > p { margin: 0; }
.tipos { display: flex; gap: 10px; font-family: var(--mono); font-size: 15px; flex-wrap: wrap; }
.tipos span { border: 1px solid var(--linha); padding: 6px 12px; background: #fff; }
.tipos span.destaque { border-color: #c9b78e; background: var(--creme); }

/* ---- avisos ---- */
.aviso {
  background: var(--papel-claro); border: 1px solid var(--linha);
  border-left: 3px solid var(--creme-borda);
  padding: 14px 18px; font-size: 16px; color: var(--tinta-corpo);
}
.aviso.ruim { border-left-color: var(--vermelho); background: var(--vermelho-fundo); }

/* ---- painéis ---- */
.painel { background: var(--papel-claro); border: 1px solid var(--linha); padding: 22px 26px; }
.painel-titulo { font-size: 18px; font-weight: 600; color: var(--tinta-titulo); margin-bottom: 6px; }
.miudo { font-size: 16px; color: var(--tinta-fraca); line-height: 1.6; }

details.guia { margin-top: 38px; background: var(--papel-claro); border: 1px solid var(--linha); padding: 20px 28px; }
details.guia > summary { font-size: 18px; font-weight: 600; cursor: pointer; color: var(--tinta-titulo); }
details.dobra > summary { font-size: 17px; cursor: pointer; color: var(--marrom); }

/* ---- grade da jornada ---- */
/* Largura fixa e mínimo garantido: com 15 colunas, deixar o navegador
   distribuir espaço corta a data em "01/01," e a hora em "08:0". Passando do
   mínimo, o contêiner rola na horizontal — melhor rolar que ler pela metade. */
.rolar { overflow-x: auto; }
.grade {
  width: 100%; min-width: 1030px; table-layout: fixed;
  border-collapse: collapse; font-size: 16px; background: var(--papel-claro);
}
.grade th {
  font-family: var(--mono); font-size: 13px; letter-spacing: 0.08em;
  color: var(--tinta-rotulo); font-weight: 400; text-align: center;
  padding: 8px 2px; border-bottom: 1px solid var(--linha); white-space: nowrap;
}
.grade td { padding: 2px; border-bottom: 1px solid #eee7dc; }
.grade tr.ruim td { background: var(--vermelho-fundo); }
.grade tr.vazio td { color: var(--tinta-rotulo); }
.cel {
  width: 100%; box-sizing: border-box; border: 1px solid transparent;
  background: transparent; font-family: var(--mono); font-size: 16px;
  text-align: center; padding: 6px 1px; border-radius: 0; color: inherit;
}
.cel:hover { border-color: var(--linha-campo); }
.cel:focus { outline: none; border-color: var(--marrom); background: #fff; }
.cel.data { text-align: left; padding-left: 6px; }
.cel.obs { text-align: left; padding-left: 6px; font-family: var(--sans); font-size: 16px; color: var(--tinta-fraca); }
.prob { font-size: 15px; color: var(--vermelho); padding: 0 6px; }
/* "remover" em 30 linhas vira ruído: só aparece na linha sob o cursor. */
.prob .btn { opacity: 0; transition: opacity .12s; }
.grade tr:hover .prob .btn, .prob .btn:focus { opacity: 1; }
.grade.cartao { min-width: 0; table-layout: auto; }
.grade.cartao td { padding: 4px 10px; font-family: var(--mono); font-size: 14px; white-space: nowrap; }
.grade.cartao th { text-align: left; padding: 6px 10px; }

/* ---- seletor de colunas ---- */
.cols { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; }
.colChip {
  display: inline-flex; align-items: center; gap: 8px; cursor: pointer;
  border: 1px solid var(--linha-campo); background: #fff;
  padding: 7px 12px; font-size: 16px;
}
.colChip.on { border-color: var(--marrom); background: var(--creme); }
.colChip em {
  font-family: var(--mono); font-size: 12px; font-style: normal;
  letter-spacing: 0.06em; color: var(--tinta-rotulo); text-transform: uppercase;
}
.colChip input { margin: 0; accent-color: var(--marrom); }

/* ---- modais ---- */
.modal {
  position: fixed; inset: 0; background: rgba(32, 29, 26, 0.55);
  display: flex; align-items: center; justify-content: center; padding: 20px; z-index: 50;
}
.modal .caixa {
  background: var(--papel-claro); border: 1px solid var(--linha);
  padding: 30px 32px; max-width: 620px; width: 100%;
  max-height: 90vh; overflow: auto;
  box-shadow: 0 18px 50px rgba(32, 29, 26, 0.25);
}
.modal h2 { font-size: 27px; margin: 0 0 14px; }
.modal p { font-size: 17px; }

/* ---- rodapé ---- */
.rodape {
  margin-top: 52px; padding-top: 22px; border-top: 1px solid var(--linha);
  font-size: 16px; color: var(--tinta-rodape);
}

/* O mesmo ponto de quebra do separador de verbas. */
@media (max-width: 760px) {
  body { font-size: 17px; }
  .wrap { padding: 24px 18px 60px; }
  .secao { grid-template-columns: 1fr; gap: 14px; }
  .secao h2 { font-size: 24px; }
  .just { text-align: left; }
}
