/* Camada única de renderização; mantém tamanhos, cores e hierarquia do projeto. */
:root {
  --body-font: "Poppins", Arial, sans-serif;
  --title-font: "Playfair Display", Georgia, serif;
}
html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
  font-synthesis: none;
}
body {
  font-family: var(--body-font);
  font-weight: 400;
  font-kerning: normal;
}
input, textarea, select, button { font-family: var(--body-font); }
p, .box-text, .sec-text, .case-text li, .post-body li {
  letter-spacing: normal;
  text-rendering: auto;
}
/* Melhorias específicas de plataforma; a nitidez depende primeiro das fontes reais. */
@supports (-webkit-font-smoothing: antialiased) {
  body { -webkit-font-smoothing: antialiased; }
}
@supports (-moz-osx-font-smoothing: grayscale) {
  body { -moz-osx-font-smoothing: grayscale; }
}
/* Evita estados de hover presos e composição de texto em movimento em telas touch. */
@media (hover: none), (pointer: coarse) {
  .pillar:hover, .kpi:hover, .honor-card:hover, .blog-card:hover { transform: none; }
}
/* Leitura mobile: apenas descrições; títulos, navegação e ações mantêm seus estilos. */
@media (max-width: 767px) {
  main :is(.sec-text, .hero-desc, .closing, .closing-note, .art-lede, .art-sub),
  main :is(.pillar, .service-card, .price-card, .testi-block, .honor-card, .contact-form, .blog-hero, .blog-card-body) p:not(.pub-scope):not(.box-desig):not(.post-by),
  .case-feature .case-text :is(p, li),
  .art-body :is(p, li), .post-body :is(p, li),
  main .checklist li, main .callout p,
  .footer-wrapper .about-text {
    text-align: left !important;
    line-height: 1.75;
    text-wrap: pretty;
    word-break: normal;
    overflow-wrap: break-word;
    hyphens: manual;
  }
  main :is(.sec-text, .hero-desc, .closing, .closing-note, .art-lede),
  main :is(.pillar, .service-card, .price-card, .testi-block, .honor-card, .contact-form, .blog-hero, .blog-card-body) p:not(.pub-scope):not(.box-desig):not(.post-by),
  .case-feature .case-text p, .art-body p, .post-body p {
    margin-bottom: 18px;
  }
  main :is(.pillar, .service-card .box-content, .case-text) p:last-child {
    margin-bottom: 0;
  }
  /* Mantém o respiro existente de 24px sem estreitar novamente o conteúdo. */
  main .hero-desc { padding-inline: 0; }
}