/* Public-page typography. Functional markup and external payment widgets stay intact. */
body.partners-page,
body.journal-page { zoom: 1; }

.partners-page .partner-hero h1,
.journal-hero h1,
.journal-article-heading-layout h1,
.legal-intro h1,
.checkout-heading h1,
.checkout-status-card h1,
.stripe-offers-heading h1 {
  font-size: clamp(2.25rem, 3.45vw, 3rem);
  line-height: 1.08;
  letter-spacing: -0.045em;
  white-space: normal;
  overflow-wrap: break-word;
}

.partners-page .partner-section-heading h2,
.partner-final-cta h2,
.journal-section-heading h2,
.journal-article-body h2,
.legal-section > h2,
.diagnostic-page .diagnostic-step h2,
.diagnostic-page .diagnostic-loading h2,
.diagnostic-page .diagnostic-result > h2 {
  font-size: 2.5rem;
  line-height: 1.1;
  letter-spacing: -0.04em;
}

.partners-page .partner-feature-card h3,
.partners-page .partner-type-card h3,
.partners-page .partner-value-grid h3,
.partner-process-list h3,
.journal-card h3,
.journal-feature-panel h3,
.journal-feature-article-copy h3,
.journal-case-copy h3,
.checkout-card-heading h2,
.checkout-summary h2,
.checkout-empty h2,
.legal-search-panel h2 {
  font-size: 1.4375rem;
  line-height: 1.2;
  letter-spacing: -0.02em;
}

.partner-hero-copy > p,
.partner-section-heading p,
.partner-final-cta p,
.journal-hero p,
.journal-section-heading p,
.journal-article-subtitle,
.legal-intro p,
.checkout-heading > p,
.stripe-offers-heading p {
  max-width: 660px;
  font-size: 1.125rem;
  line-height: 1.5;
}

.partners-page .partner-type-card .partner-type-summary,
.partners-page .partner-type-card ul,
.partner-feature-card p,
.partner-value-grid p,
.partner-process-list p,
.partner-faq-list details p,
.journal-card p,
.journal-feature-panel p,
.journal-feature-article-copy p,
.journal-case-copy p,
.journal-faq-list details p,
.legal-section p,
.legal-section li,
.checkout-card-heading p,
.checkout-fields label,
.checkout-fields input,
.checkout-summary-block p,
.checkout-summary-block li,
.checkout-empty p,
.checkout-status-card > p {
  font-size: 1rem;
  line-height: 1.5;
}

.journal-article-body p,
.journal-article-body li { font-size: 1.125rem; line-height: 1.65; }
.legal-section h3 { font-size: 1.4375rem; line-height: 1.25; }
.partners-page .form-modal-heading h2,
.journal-page .form-modal-heading h2 { font-size: 2rem; line-height: 1.15; }
.partners-page .partner-application-form :is(input, select, textarea),
.partners-page .commercial-partner-form :is(input, select, textarea),
.journal-page .resource-download-form input { font-size: 1rem; }

/* The recommendation must remain as readable as the offer on the home page. */
.diagnostic-page .diagnostic-offer-full .offer-card-heading h3 { font-size: 1.4375rem; }
.diagnostic-page .diagnostic-offer-full .price { font-size: 2.25rem; }
.diagnostic-page .diagnostic-offer-full .price > span:not(.price-amount):not(.price-currency),
.diagnostic-page .diagnostic-offer-full .offer-highlight-copy small,
.diagnostic-page .diagnostic-offer-full .popular-badge { font-size: 0.9375rem; line-height: 1.4; }
.diagnostic-page .diagnostic-offer-full .offer-description,
.diagnostic-page .diagnostic-offer-full .offer-included-note,
.diagnostic-page .diagnostic-offer-full .offer-commitment,
.diagnostic-page .diagnostic-offer-full .offer-inherited-row,
.diagnostic-page .diagnostic-offer-full .offer-highlight-row,
.diagnostic-page .diagnostic-offer-full .pricing-list-title,
.diagnostic-page .diagnostic-offer-full .offer-more-title,
.diagnostic-page .diagnostic-offer-full .btn { font-size: 1rem; line-height: 1.45; }
.diagnostic-page .diagnostic-offer-full .btn { min-height: 50px; }
.diagnostic-page .diagnostic-offer-full .offer-description { min-height: 0; }

@media (min-width: 981px) {
  body:not(.main-page) {
    --site-width: 1152px;
    --site-gutter: 80px;
  }
  .partners-main,
  .journal-main { padding-block: 30px 80px; }
  .partners-page .partner-hero { min-height: 520px; padding: 48px; }
  .partners-page .partner-hero-copy { max-width: 660px; }
  .journal-hero { min-height: 460px; padding: 48px; }
  .journal-hero h1 { max-width: 720px; }
  .partner-section,
  .journal-section { padding-top: 80px; }
  .partner-section-heading { max-width: 840px; margin-bottom: 48px; }
  .partner-feature-card { padding: 24px; min-height: 0; }
  .journal-feature-panel { padding: 28px; min-height: 280px; }
  .journal-article-heading-layout { gap: 32px; }
  .journal-article-cover { height: clamp(240px, 30vw, 420px); margin-top: 40px; }
  .journal-article-body { max-width: 760px; margin-top: 56px; }
  .legal-document-page .legal-shell { max-width: 1152px; }
  .legal-main { padding-top: 52px; }
  .checkout-main { padding-inline: 0; }
  .checkout-shell { width: min(var(--site-width), calc(100% - var(--site-gutter))); }
  .diagnostic-page .diagnostic-page-shell { max-width: 1152px; }
  .diagnostic-page .diagnostic-result-offer { position: static; }
  .diagnostic-page .diagnostic-offer-full { padding: 20px; }
}

@media (max-width: 640px) {
  .partners-page .partner-hero h1,
  .journal-hero h1,
  .journal-article-heading-layout h1,
  .legal-intro h1,
  .checkout-heading h1,
  .checkout-status-card h1,
  .stripe-offers-heading h1 { font-size: 2.25rem; }
  .partners-page .partner-section-heading h2,
  .partner-final-cta h2,
  .journal-section-heading h2 { font-size: 2.25rem; }
  .journal-article-body h2,
  .legal-section > h2,
  .diagnostic-page .diagnostic-step h2,
  .diagnostic-page .diagnostic-loading h2,
  .diagnostic-page .diagnostic-result > h2 { font-size: 2rem; }
  .partner-hero-copy > p,
  .partner-section-heading p,
  .partner-final-cta p,
  .journal-hero p,
  .journal-section-heading p,
  .journal-article-subtitle,
  .legal-intro p,
  .checkout-heading > p,
  .stripe-offers-heading p { font-size: 1rem; }
}
