/*
  Letvuna accessible typography layer
  Audience: adults 60+
  This file is intentionally loaded after each page's own styles.
  It enlarges the smallest text without flattening the existing hierarchy.
*/

:root {
  --letvuna-body-size: 18px;
  --letvuna-secondary-size: 17.5px;
  --letvuna-control-size: 18.5px;
  --letvuna-nav-size: 17.5px;
  --letvuna-readable-line: 1.68;
}

html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

body {
  font-size: var(--letvuna-body-size) !important;
  line-height: var(--letvuna-readable-line);
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}

p,
li,
dd,
dt,
blockquote,
summary {
  line-height: var(--letvuna-readable-line);
}

/* Keep paragraphs comfortable to scan without changing title hierarchy. */
main p,
main li,
article p,
article li,
section p,
section li {
  text-wrap: pretty;
}

/* Controls must be comfortably readable and tappable. */
input,
textarea,
select,
button,
[role="button"],
.btn,
.button,
.cta,
.submit,
.contact-submit {
  font-size: var(--letvuna-control-size) !important;
  line-height: 1.35;
}

input,
select,
button,
[role="button"],
.btn,
.button,
.cta,
.submit,
.contact-submit {
  min-height: 48px;
}

textarea {
  min-height: 120px;
}

/* Main navigation remains compact but no longer tiny. */
nav a,
.site-nav a,
.nav-links a,
.main-nav a,
.header-nav a,
.mobile-menu a,
.submenu a,
.submenu .soon,
.inner-nav a,
.nav-rail a {
  font-size: var(--letvuna-nav-size) !important;
  line-height: 1.45;
}

/* Secondary text that was 10-15px in several templates. */
small,
figcaption,
.caption,
.card-title,
.card-eyebrow,
.card-tag,
.card-tag-mini,
.card-link,
.journey-place,
.seo-note,
.menu-label,
.menu-kicker,
.menu-footer-note,
.menu-quick span,
.courses-kicker,
.courses-nav-item,
.course-eyebrow,
.course-tags span,
.course-link,
.course-pill,
.course-place,
.proof-item span,
.wisdom-core small,
.gift-node em,
.section-kicker,
.stage-row small,
.stage-row span,
.lead-note,
.module-sub,
.learning-core span,
.node span,
.map-node span,
.map-card,
.map-caption,
.conversation-card span,
.scene-caption,
.place-card span,
.place-main-card span,
.place-side-note,
.scroll-hint,
.scroll-cue,
.next-hint,
.outcome-tags span,
.growth-word,
.field-note figcaption,
.faculty-signals span,
.hero-kicker,
.hero-stat span,
.bloom-center span,
.bloom-center em,
.bloom-card,
.growth-center-card small,
.growth-center-card em,
.process-chip,
.growth-legend,
.badge,
.community-card-note,
.community-microcopy,
.courses-meter span,
.testimonials-kicker,
.testimonials-micro,
.video-caption,
.testimonial-note-eyebrow,
.testimonial-note-card p,
.courses-heading p,
.blog-kicker,
.blog-date,
.blog-sync-note,
.blog-card p,
.blog-side-note,
.partners-kicker,
.partner-card small,
.partners-chip,
.contact-kicker,
.contact-prompt span,
.contact-direct span,
.contact-direct-btn,
.contact-form-head span,
.contact-field label,
.contact-consent span,
.contact-form-note,
.contact-soft-note,
.teaser-head span,
.chapter-label,
.guide-orbit-item span,
.guide-tags span,
.more-card p:not(.more-role),
.shift-old span,
.shift-new span,
.guide-bio .bio-text,
.poster-note,
.meeting-date,
.person-tag,
.form-note,
.legal-note,
.consent,
.issue-meta,
.article-meta,
.post-meta,
.footer-note,
.microcopy {
  font-size: var(--letvuna-secondary-size) !important;
  line-height: 1.55 !important;
}

/* New Beyond the Story page: protect the detailed program from tiny copy. */
.quick-item small,
.topic p,
.meeting p,
.person p,
.check-list li,
.faq-grid details p,
.register-benefits span,
.lead-card > p {
  font-size: 18px !important;
  line-height: 1.7 !important;
}

.lead-form label,
.consent span {
  font-size: 18px !important;
  line-height: 1.58 !important;
}

.footer,
.footer a,
footer,
footer a {
  line-height: 1.6;
}

/* Focus is easier to find for keyboard and low-vision users. */
a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible,
summary:focus-visible {
  outline: 3px solid currentColor;
  outline-offset: 3px;
}

@media (max-width: 760px) {
  :root {
    --letvuna-body-size: 18px;
    --letvuna-secondary-size: 16px;
    --letvuna-control-size: 18.5px;
    --letvuna-nav-size: 17.5px;
  }

  body {
    line-height: 1.72;
  }

  p,
  li,
  dd,
  dt,
  blockquote,
  summary {
    line-height: 1.72;
  }
}

/*
  Homepage refinement
  The small explanatory copy and contact form labels require slightly more
  emphasis for the site's primary 60+ audience, without competing with titles.
*/
.contact-prompt strong {
  font-size: 18.5px !important;
  line-height: 1.3 !important;
}

.contact-prompt span,
.contact-form-head span,
.contact-direct > span {
  font-size: 17.5px !important;
  line-height: 1.62 !important;
}

.contact-field label {
  font-size: 18px !important;
  line-height: 1.45 !important;
  font-weight: 800 !important;
}

.contact-consent span,
.contact-form-note,
.contact-soft-note {
  font-size: 17.25px !important;
  line-height: 1.62 !important;
}

.contact-field input,
.contact-field select,
.contact-field textarea {
  font-size: 18.5px !important;
  line-height: 1.45 !important;
}

.contact-field input::placeholder,
.contact-field textarea::placeholder {
  font-size: 17.5px !important;
  opacity: .82;
}

@media (max-width: 760px) {
  .contact-prompt strong {
    font-size: 18px !important;
  }

  .contact-prompt span,
  .contact-form-head span,
  .contact-direct > span,
  .contact-consent span,
  .contact-form-note,
  .contact-soft-note {
    font-size: 17px !important;
    line-height: 1.65 !important;
  }

  .contact-field label {
    font-size: 17.5px !important;
  }
}

