/* Shared reading scale. Keep this after page styles so mobile copy stays readable. */
:root {
  --text-body: 16px;
  --text-card: 15px;
  --text-action: 14px;
  --text-note: 13px;
  --text-label: 11px;
}

/* Paragraphs and descriptions: retain the existing display-heading scale. */
.hero p,
.section-intro,
.body-copy,
.welcome-panel .body-copy,
.heading-aside p,
.team-intro > p,
.profile-bio,
.team-next p,
.catalog-intro p,
.session-panel p,
.services-next p,
.assessment-intro > p,
.connection-intro > p,
.contact-hero .connection-intro > p,
.contact-channel p,
.message-copy > p,
.contact-more > p,
.stories-next p,
.archive-copy > p {
  font-size: var(--text-body);
  line-height: 1.75;
}

.service-card p,
.service-card:nth-child(-n+2) p,
.catalog-card p,
.session-routes p,
.context-grid p,
.newsletter-bridge p,
.start-routes p,
.faq-list details p,
.question-hint,
.welcome-points,
.result-route p,
.care-note,
.result-setting,
.result-next > p,
.check-in-explained p,
.assessment-questions > div > p,
.immediate-support p,
.testimonial-card blockquote p {
  font-size: var(--text-card);
  line-height: 1.75;
}

/* Actions and answer choices need to be as easy to read as their descriptions. */
main .button,
.connection-page .button,
.welcome-panel .button,
.team-next-actions .button,
.next-actions .button,
.check-in-panel .button,
.question-actions .button,
.mobile-check-in-start {
  font-size: var(--text-action);
  line-height: 1.5;
  max-width: 100%;
}
main .arrow-link,
.profile .arrow-link,
.catalog-intro .arrow-link,
.newsletter-bridge .arrow-link,
.message-copy .arrow-link,
.featured-story .arrow-link,
.stories-next-actions .arrow-link,
.archive-copy .arrow-link,
main .card-link,
.catalog-card .card-link,
.text-link,
.all-services,
.route-cta,
.contact-explore-links a,
.contact-hero-actions > a:not(.button),
.intro-support,
.quiet-button,
.question-actions .quiet-button,
.skip-question,
.result-secondary,
.choice-review,
.story-details summary,
.immediate-links a {
  font-size: var(--text-action);
  line-height: 1.6;
}
.faq-list summary,
.option-label,
.answer-options-multi .option-label {
  font-size: var(--text-card);
  line-height: 1.55;
}
.option-detail {
  font-size: var(--text-note);
  line-height: 1.65;
}

/* Names, credentials, captions and supporting information. */
.profile-role,
.team-preview p,
.person-caption p,
.testimonial-author h3,
.featured-quote figcaption,
.story figcaption,
.hours-block dl > div {
  font-size: var(--text-card);
  line-height: 1.6;
}
.person-focus,
.preview-caption > span,
.person-caption h3 span,
.specialties li,
.team-opening-note,
.team-next-actions p,
.welcome-location,
.catalog-heading p,
.context-note,
.context-grid a,
.assessment-intro .privacy-note,
.check-in-scope,
.panel-support,
.result-route .route-reason,
.result-next .handoff-note,
.choice-review dt,
.immediate-links .support-source,
.connection-heading > p,
.channel-caption,
.message-copy .form-handoff,
.contact-support,
.stories-context,
.featured-quote figcaption span,
.testimonial-author p,
.story figcaption > span > span {
  font-size: var(--text-note);
  line-height: 1.7;
}
.check-in-facts,
.check-in-topline,
#progress-label {
  font-size: 12px;
  line-height: 1.6;
}
.check-in-topline { flex-wrap: wrap; }
.panel-support { flex-wrap: wrap; }
.result-secondary { flex-wrap: wrap; }

.eyebrow,
.section-label,
.connection-intro .section-label,
.connection-heading .section-label,
.message-copy .section-label,
.contact-practical .section-label,
.featured-story .section-label,
.stories-next .section-label,
.archive-copy .section-label,
.catalog-heading h2,
.support-label,
.profile-kind,
.profile-visual figcaption,
.check-in-explained article > span,
.excerpt-label {
  font-size: var(--text-label);
  line-height: 1.6;
}

/* Footer links remain readable at the same size on desktop and phones. */
.site-footer a:not(.footer-brand),
.footer-contact p {
  font-size: var(--text-action);
  line-height: 1.75;
}
.site-footer .footer-bottom,
.site-footer .footer-bottom a,
.site-footer .replay {
  font-size: 12px;
  line-height: 1.7;
}
.footer-label { font-size: var(--text-label); line-height: 1.6; }
.footer-brand span { font-size: 9px; letter-spacing: 1.6px; line-height: 1.6; }
.footer-main > * { min-width: 0; }
.footer-contact > a { overflow-wrap: anywhere; }

@media (min-width: 701px) and (max-width: 1000px) {
  .footer-main { grid-template-columns: 1fr 1fr; }
  .footer-intro { grid-column: 1 / -1; }
}
@media (max-width: 700px) {
  .hero p { max-width: 300px; }
  .section-intro { line-height: 1.6; }
  .preview-caption { flex-wrap: wrap; }
  .person-caption h3 { flex-wrap: wrap; }
  .section-label { letter-spacing: 1.7px; }
  .check-in-topline { letter-spacing: .6px; }
}
@media (max-width: 520px) {
  .footer-main { grid-template-columns: 1fr; row-gap: 30px; }
  .footer-intro { grid-column: auto; display: block; }
  .site-footer .replay { margin-top: 20px; }
  .footer-nav { display: grid; grid-template-columns: 1fr 1fr; column-gap: 20px; }
  .footer-nav .footer-label { grid-column: 1 / -1; }
  .social-links { flex-direction: row; flex-wrap: wrap; }
}

/* Keep the small journey progress label legible over every sky frame. */
.chapter{opacity:1;color:#342e4b}
