:root {
  --fs-text: 0.94rem;
  --fs-sub: 1.08rem;
  --fs-title: clamp(1.35rem, 1.8vw, 1.7rem);
  --fs-display: clamp(1.45rem, 2.1vw, 1.95rem);
}

/* Tamanho único para o conteúdo (menus, rodapé e slideshow ficam de fora) */
main p:not(.hero *):not(.lightbox-cap),
main li:not(.hero *):not(.quick__chips li):not(.metodo-flow li):not(.sobre-tiles li),
main blockquote,
main label,
main input,
main select,
main textarea {
  font-size: var(--fs-text) !important;
}

main h1:not(.hero *) { font-size: var(--fs-display) !important; }
main h2:not(.hero *):not(.section-title) { font-size: var(--fs-title) !important; }
main h3:not(.hero *) { font-size: var(--fs-sub) !important; }

/* Títulos que têm de caber numa linha encolhem com o ecrã */
main .sobre-story h1 { font-size: min(var(--fs-display), calc((100vw - 80px) / 30)) !important; }
main .quick__titulo { font-size: min(var(--fs-display), calc((100vw - 200px) / 31)) !important; }
main .svc-topo h1 { font-size: min(var(--fs-display), calc((100vw - 180px) / 23)) !important; }
main .svc-painel h2 { font-size: min(var(--fs-title), calc((100vw - 660px) / 34)) !important; }
main .svc-lead,
main .svc-painel li { font-size: min(var(--fs-text), calc((100vw - 660px) / 55)) !important; }
main .quick__destaques p { font-size: var(--fs-sub) !important; }
main .svc-topo__quote { font-size: var(--fs-sub) !important; }
main .bounce-cards__info h2 { font-size: 0.72rem !important; }
main .bounce-cards__info p { font-size: 0.78rem !important; }

@media (max-width: 560px) {
  main .bounce-cards__info h2 { font-size: 0.66rem !important; }
  main .bounce-cards__info p { font-size: 0.7rem !important; line-height: 1.35; }
}

@media (max-width: 1000px) {
  main .svc-painel h2 { font-size: var(--fs-sub) !important; }
  main .svc-lead,
  main .svc-painel li { font-size: var(--fs-text) !important; }
}

@media (max-width: 820px) {
  main .quick__titulo,
  main .svc-topo h1 { font-size: var(--fs-display) !important; }
  main .sobre-story h1 { font-size: var(--fs-title) !important; white-space: normal !important; line-height: 1.25 !important; }
}

/* Em ecrãs estreitos o texto justificado abre buracos entre palavras */
@media (max-width: 720px) {
  .sobre-just,
  .sobre-glow__in > p,
  .metodo-copy p,
  .sobre-mv__card p,
  .sobre-step p,
  .sobre-cta p,
  .quick__texto,
  .about-lead,
  .legal-scroll p,
  .footer-lead { text-align: left !important; text-align-last: auto !important; }

  .partners-head { padding: 0 24px; }
  .historial .section-title,
  .partners .section-title { letter-spacing: 0.1em; padding: 8px 18px; }
}
