/* Escala tipográfica final: reduz títulos internos no desktop e preserva o hero da home. */
@media (min-width: 821px) {
  .page-hero h1,
  .page-hero .page-title,
  .campaign-hero h1,
  .participation-hero h1,
  .proposals-hero h1,
  .about-hero h1 {
    font-size: clamp(3rem, 4.8vw, 4.5rem);
    line-height: .92;
  }

  .section-heading h2,
  .split-copy h2,
  .campaign-section h2,
  .participation-section h2,
  .proposals-section h2,
  .about-section h2 {
    font-size: clamp(2.35rem, 3.7vw, 3.5rem);
    line-height: .96;
  }

  .page-lead,
  .section-lead,
  .about-intro,
  .campaign-intro,
  .participation-intro,
  .proposals-intro {
    font-size: clamp(1.08rem, 1.45vw, 1.4rem);
  }

  .content-rich h2,
  .story-copy h2,
  .proposal-copy h2,
  .participation-copy h2,
  .campaign-copy h2 {
    font-size: clamp(1.95rem, 3vw, 2.75rem);
  }

  .content-rich h3,
  .story-copy h3,
  .proposal-copy h3,
  .participation-copy h3,
  .campaign-copy h3 {
    font-size: clamp(1.45rem, 2vw, 2rem);
  }

  blockquote,
  .story-quote,
  .campaign-quote {
    font-size: clamp(1.35rem, 2.1vw, 1.9rem);
  }

  .fact-card strong,
  .stat-card strong,
  .number-card strong {
    font-size: clamp(3rem, 4.8vw, 4.15rem);
  }

  .fact-card.is-yellow strong,
  .stat-card.is-yellow strong,
  .number-card.is-yellow strong {
    font-size: clamp(2.8rem, 4.3vw, 3.7rem);
  }

  .proposal-card h3,
  .participation-card h3,
  .campaign-card h3,
  .action-card h3 {
    font-size: clamp(1.35rem, 1.75vw, 1.7rem);
  }

  .error-code {
    font-size: clamp(7rem, 14vw, 10.5rem);
  }

  .error-page h1,
  .page-404 h1 {
    font-size: clamp(2.7rem, 4.6vw, 3.9rem);
  }

  .footer-candidate-lockup strong {
    font-size: clamp(2.35rem, 3.7vw, 3.35rem);
  }

  .footer-candidate-lockup b {
    font-size: clamp(3rem, 4.8vw, 4.15rem);
  }

  .blog-hero h1 {
    font-size: clamp(3rem, 5vw, 4.8rem);
    line-height: .91;
  }

  .blog-section-title h2 {
    font-size: clamp(2.25rem, 3.8vw, 3.55rem);
  }

  .blog-empty h2,
  .blog-state h1 {
    font-size: clamp(2.4rem, 4.1vw, 3.85rem);
  }

  .blog-article-header h1 {
    font-size: clamp(2.65rem, 4vw, 4.4rem);
    line-height: .96;
  }

  .blog-featured-card h2 {
    font-size: clamp(1.55rem, 2.05vw, 2.5rem);
  }

  .blog-card h2 {
    font-size: clamp(1.4rem, 1.8vw, 1.9rem);
  }

  .blog-article-body h2 {
    font-size: clamp(1.85rem, 2.8vw, 2.65rem);
  }

  .blog-article-body h3 {
    font-size: clamp(1.45rem, 2.1vw, 1.95rem);
  }
}

/* Limites finais encontrados na auditoria de desktop das páginas institucionais. */
@media (min-width: 821px) {
  .page-quem-e .page-hero h1,
  .page-propostas .page-hero h1,
  .page-campanha .page-hero h1,
  .page-participe .page-hero h1 {
    font-size: clamp(2.9rem, 4.2vw, 4rem);
  }

  .page-home main section:not(.hero-home) h2,
  .page-quem-e main section:not(.page-hero) h2,
  .page-propostas main section:not(.page-hero) h2,
  .page-campanha main section:not(.page-hero) h2,
  .page-participe main section:not(.page-hero) h2 {
    font-size: clamp(2.05rem, 3.2vw, 3rem);
    line-height: .98;
  }

  .article-content h2,
  .proposal-detail h2,
  .participation-list h2 {
    font-size: clamp(1.9rem, 2.8vw, 2.65rem);
  }

  .instagram-media > a {
    font-size: clamp(1.35rem, 2vw, 2rem);
  }
}

@media (max-width: 590px) {
  .page-hero h1 {
    font-size: clamp(2rem, 8.5vw, 2.3rem);
  }
}
