/* Guide and fixed-page body only; loaded by the 13 document templates. */
.site-main > .document-page {
  max-width: 860px;
  margin: 0 auto;
  padding: 0;
  color: var(--text-primary);
  background: #fff;
  font-size: 16px;
  line-height: 1.8;
  overflow-wrap: anywhere;
}
.document-page *, .document-page *::before, .document-page *::after { box-sizing: border-box; }
.document-page :is(.content-header, .pricing-hero) {
  max-width: none; margin: 0 0 24px; padding: 0;
  background: #fff; border: 0; border-radius: 0; box-shadow: none; text-align: left;
}
.document-page :is(.content-header, .pricing-hero) h1 {
  margin: 0 0 16px; padding: 0; font-family: inherit;
  font-size: 30px; font-weight: 500; line-height: 1.5;
  letter-spacing: normal; color: var(--text-primary); text-align: left;
}
.document-page :is(.content-card, .pricing-comparison, .pricing-note) {
  padding: 0; border: 0; border-radius: 0; box-shadow: none; background: #fff;
}
.document-page h2, .document-page :is(.content-card, section) h2 {
  display: block; margin: 32px 0 16px; padding: 0;
  font-size: 24px; font-weight: 700; line-height: 1.5;
  color: var(--text-primary); text-align: left; border: 0; background: transparent;
}
.document-page h3, .document-page :is(.content-card, section) h3 {
  margin: 24px 0 12px; padding: 0; border: 0;
  font-size: 18px; font-weight: 600; line-height: 1.5;
  color: var(--text-primary); text-align: left;
}
.document-page :is(h2, h3)::before, .document-page :is(h2, h3)::after { content: none; }
.document-page p, .document-page :is(.content-header, .pricing-hero, .pricing-section-heading, .pricing-note, .guide-card, .privacy-text) p {
  margin: 0 0 16px; font-size: 16px; line-height: 1.8; color: var(--text-primary);
}
.document-page ul, .document-page ol { margin: 0 0 16px; padding-left: 1.5em; }
.document-page li, .document-page .guide-card li { line-height: 1.8; }
.document-page li + li { margin-top: 8px; }
.document-page li > p:last-child { margin-bottom: 0; }
.document-page a:not(.btn) { color: var(--text-primary); text-decoration: underline; text-underline-offset: 3px; }
.document-page :is(a, summary, input, textarea, button, [tabindex]):focus-visible { outline: 3px solid #537795; outline-offset: 3px; }
.document-page :is(.guide-card, .privacy-text) section + section { margin-top: 32px; padding-top: 0; }
.document-page section:first-child > h2:first-child, .document-page .content-card > h2:first-child { margin-top: 0; }
.document-page nav { display: block; }
.document-page .teacher-area-links { margin: 24px 0; padding: 16px 0; background: #fff; border-top: 1px solid var(--border-color); border-bottom: 1px solid var(--border-color); border-radius: 0; }
.document-page :is(.guide-related-nav, .guide-page-toc) {
  display: flex;
  max-width: none; margin: 0 0 24px; padding: 16px 0;
  border: 0; border-top: 1px solid var(--border-color); border-bottom: 1px solid var(--border-color);
  border-radius: 0; background: #fff; gap: 8px 16px;
}
.document-page .guide-related-nav a { padding: 4px 0; border: 0; border-radius: 0; background: #fff; font-size: 14px; font-weight: 500; }
.document-page .guide-byline { justify-content: flex-start; margin-top: 16px; }
.document-page :is(.guide-point-list, .guide-step-list) { margin: 16px 0; }
.document-page :is(.guide-point-list, .guide-step-list) h3 { margin: 0 0 12px; }
.document-page .guide-step-list span { color: var(--text-primary); background: transparent; border-radius: 0; }
.document-page .guide-table-wrap { max-width: 100%; margin: 16px 0; border: 1px solid var(--border-color); border-radius: 0; overflow-x: auto; }
.document-page .guide-table { min-width: 0; width: 100%; background: #fff; }
/* Multi-column comparisons need a readable local scroll area. Two-column distributions wrap. */
.document-page .guide-table:has(tr > :nth-child(3)) { min-width: 640px; }
.document-page .guide-table :is(th, td) { padding: 12px 16px; border-bottom: 1px solid var(--border-color); background: #fff; font-size: 16px; line-height: 1.8; }
.document-page .guide-table :is(th, td) + :is(th, td) { border-left: 1px solid var(--border-color); }
.document-page :is(.contract-data-note, .guide-legal-note) {
  margin: 16px 0; padding: 12px 16px; background: #fff;
  border: 1px solid var(--border-color); border-radius: 0; font-size: 14px; line-height: 1.8;
}
.document-page .contract-data-note p { margin: 0; font-size: 14px; }
.document-page .contract-data-note p + p { margin-top: 8px; }
.document-page p.guide-legal-note { font-size: 14px; }
.document-page .contract-data-card { padding: 16px 0; border-radius: 0; background: #fff; border-bottom: 1px solid var(--border-color); }
.document-page .public-profile-stats { padding: 16px 0; border-top: 1px solid var(--border-color); border-bottom: 1px solid var(--border-color); border-radius: 0; background: #fff; }
.document-page .public-profile-stats h2 { margin-top: 0; }
.document-page .guide-source-list { padding-left: 0; }
.document-page .guide-source-list li { padding: 16px 0; border: 0; border-bottom: 1px solid var(--border-color); border-radius: 0; }
.document-page :is(.matching-entry-card, .matching-profile-card, .matching-guide-links a, .matching-empty, .matching-stat) {
  min-width: 0; padding: 16px 0; background: #fff; border: 0;
  border-bottom: 1px solid var(--border-color); border-radius: 0;
}
.document-page .matching-stats { justify-content: flex-start; }
.document-page .matching-stat { flex: 1; }
.document-page .matching-profile-heading { flex-wrap: wrap; }
.document-page .matching-profile-heading h3 { margin: 0; }
.document-page .matching-entry-card h3 { margin-top: 0; }
.document-page :is(.guide-actions, .pricing-actions) { justify-content: flex-start; margin: 16px 0; gap: 12px; }
.document-page .btn { min-width: 0; max-width: 100%; min-height: 44px; white-space: normal; overflow-wrap: anywhere; font-weight: 500; }
.document-page .pricing-summary { gap: 16px; margin: 24px 0; }
.document-page .pricing-summary > div { min-height: 0; padding: 16px 0; text-align: left; border: 0; border-bottom: 1px solid var(--border-color); border-radius: 0; box-shadow: none; }
.document-page .pricing-summary strong { color: var(--text-primary); font-size: 30px; line-height: 1.5; }
.document-page .pricing-section-heading { text-align: left; }
.document-page .pricing-table { display: block; max-width: 100%; overflow-x: auto; padding: 0; border: 1px solid var(--border-color); }
.document-page .pricing-row { display: grid; min-width: 720px; grid-template-columns: 1fr repeat(3, minmax(0, 1.2fr)); }
.document-page .pricing-cell {
  min-height: 0; padding: 12px 16px; justify-content: flex-start; align-items: flex-start;
  background: #fff; color: var(--text-primary); font-size: 16px; line-height: 1.8;
  text-align: left; border: 0; border-bottom: 1px solid var(--border-color); border-radius: 0;
}
.document-page .pricing-cell + .pricing-cell { border-left: 1px solid var(--border-color); }
.document-page .pricing-head .pricing-cell { min-height: 0; gap: 8px; }
.document-page .pricing-plan::before { content: none; }
.document-page .pricing-plan span { position: static; color: var(--text-primary); line-height: 1.8; }
.document-page .pricing-free strong { color: var(--text-primary); font-size: 24px; }
.document-page.pricing-page .pricing-check { display: inline-flex; align-items: center; gap: 8px; min-width: 0; max-width: 100%; }
.document-page.pricing-page .pricing-check-text { min-width: 0; margin: 0; line-height: 1.8; }
.document-page.pricing-page .pricing-check .fa-circle-check { flex: 0 0 auto; margin: 0; line-height: 1; vertical-align: initial; }
.document-page .faq-content { gap: 0; border-top: 1px solid var(--border-color); }
.document-page .faq-item { border: 0; border-bottom: 1px solid var(--border-color); border-radius: 0; background: #fff; box-shadow: none; }
.document-page .faq-question { padding: 16px 40px 16px 0; line-height: 1.8; }
.document-page .faq-question::after { right: 0; color: var(--text-primary); background: transparent; border: 0; border-radius: 0; }
.document-page .faq-answer { padding: 0 0 16px; }
.document-page .guide-faq-list summary { line-height: 1.8; }
.document-page .guide-faq-list p { margin: 16px 0 0; }
.document-page .contact-form { gap: 16px; padding: 24px 0; border-top: 1px solid var(--border-color); border-bottom: 1px solid var(--border-color); }
.document-page .contact-form .form-label { font-size: 16px; font-weight: 500; color: var(--text-primary); margin-bottom: 8px; }
.document-page .contact-form .form-control { max-width: 100%; font-size: 16px; line-height: 1.8; padding: 10px 12px; border: 1px solid var(--border-color); border-radius: 3px; }
.document-page .contact-form textarea { height: auto; min-height: 0; resize: vertical; }
.document-page .contact-form .form-text { margin: 8px 0 0; font-size: 14px; color: var(--text-muted); }
.document-page .contact-form .btn { justify-self: start; padding: 10px 24px; }
.document-page .contact-alt { margin: 16px 0; text-align: left; }
.document-page :is(.guide-eyebrow, .pricing-hero .guide-eyebrow) { margin: 0 0 8px; font-size: 13px; font-weight: 500; }
.document-page img { max-width: 100%; height: auto; }
/* The same end-of-guide navigation on articles and the matching guide only. */
.document-page .guide-article-related { margin-top: 32px; }
.document-page .guide-article-related .guide-related-nav {
  margin: 0; padding: 20px 0; align-items: flex-start;
}
.document-page .guide-article-related .guide-related-nav > span {
  flex-basis: 100%; margin: 0; color: var(--text-primary); font-size: 16px;
}
.document-page .guide-article-related .guide-related-nav a { font-size: 16px; font-weight: 400; }
.document-page .guide-article-related .teacher-area-links { margin: 0; padding: 20px 0; border-top: 0; }
.document-page .guide-article-related .teacher-area-links a { font-size: 16px; font-weight: 400; }
.document-page .matching-page .guide-card[id] { scroll-margin-top: 12px; }
@media (max-width: 767.98px) {
  .site-main > .document-page { width: calc(100% - 16px); }
  .document-page :is(.content-header, .pricing-hero) h1 { font-size: 24px; margin-bottom: 8px; }
  .document-page h2, .document-page :is(.content-card, section) h2 { font-size: 22px; }
  .document-page :is(.guide-point-list, .matching-entry-grid, .matching-profile-columns, .matching-guide-links) { grid-template-columns: 1fr; }
  .document-page .guide-table :is(th, td) { padding: 12px; }
  .document-page .contact-form .btn { width: auto; }
}
