/* Typography refinement: read after site.css and mobile-compact.css. */
:root { --muted: #51445e; --gold-deep: #805d0e; }
body { font-size: 17px; line-height: 1.65; }
.lede { font-size: 20px; line-height: 1.6; }
.btn, .btn-small { font-size: 16px; min-height: 44px; }
.nav { font-size: 16px; }
.eyebrow { font-size: 14px; letter-spacing: 1.6px; }
.byline, .fact span, .fact b, .side-note, .help, .offer .sub,
.facilitator .role, .team-card .role, .person .role { font-size: 15px; }
.card p, .facilitator p, .facilitator ul, .offer ul, .path p,
.day li, .faq p, .faq summary, .team-card p { font-size: 17px; line-height: 1.6; }
.stat small, .speaker .tag, .offer .tag, .portrait span,
.preview-bar, .route-badge { font-size: 14px; }
.day time { font-size: 15px; }
.site-footer { font-size: 15px; }
.choice span, input:not([type=checkbox]):not([type=radio]), textarea, select { font-size: 17px; }
.summary div, .notice, .check, .error { font-size: 16px; }
section[id] { scroll-margin-top: 110px; }
@media (max-width: 640px) {
  body { font-size: 17px; line-height: 1.6; }
  h1 { font-size: 38px; line-height: 1.15; }
  h2 { font-size: 29px; }
  h3 { font-size: 21px; }
  .lede { font-size: 18px; line-height: 1.6; }
  .eyebrow { font-size: 14px; letter-spacing: 1.2px; }
  .site-header .wrap { gap: 12px; }
  .nav .btn-small { font-size: 16px; min-height: 44px; padding: 10px 14px; }
  .lab-home .hero .byline { font-size: 15px; }
  .fact b, .fact span { font-size: 15px; line-height: 1.45; }
  .lab-home .hero .fact { padding: 11px; }
  .lab-home #leave-with .grid-3 .card h3 { font-size: 19px; line-height: 1.3; }
  .lab-home #leave-with .grid-3 .card p { font-size: 17px; line-height: 1.55; }
  .path h3 { font-size: 19px; line-height: 1.3; }
  .path p, .day li, .facilitator p, .facilitator ul,
  .offer ul, .faq summary, .faq p, .team-card p { font-size: 17px; line-height: 1.55; }
  .day time { font-size: 15px; }
  .day li { grid-template-columns: 52px 1fr; }
  .facilitator .role, .team-card .role { font-size: 15px; }
  .facilitator blockquote { font-size: 18px; }
  .speaker .tag, .offer .tag, .preview-bar { font-size: 14px; }
  .side-note, .site-footer, .help { font-size: 15px; }
  .mobile-disclosure > summary { font-size: 18px; min-height: 54px; }
  .lab-home #join .offer:not(.featured) .price small { font-size: 14px; }
  .lab-home #join .offer:not(.featured) .btn { font-size: 16px; }
  .choice span { font-size: 17px; line-height: 1.55; }
  .summary { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .btn { transition: none; }
  .btn:hover { transform: none; }
}
