/* Mobile reading and touch refinements. Loaded after the page styles. */
@media (max-width: 740px) {
  .header-inner { gap: 8px; }
  .header-inner .brand { flex: 1 1 180px; min-width: 0; width: auto; }
  .header-inner .brand-image { width: 180px; max-width: 100%; height: auto; }
  .header-contact { flex: 0 0 auto; min-height: 44px; margin: 0; padding: 8px 10px; gap: 8px; font-size: 12px; }
  .menu-toggle { flex: 0 0 44px; width: 44px; height: 44px; padding: 10px; }
  #navigation a { min-height: 48px; }

  .home-masthead h1 { font-size: clamp(32px, 8.8vw, 38px); }
  .home-name { font-size: 13px; }
  .home-kicker, .home-leadership .home-kicker { font-size: 11px; line-height: 1.7; }
  .home-lead,
  .home-section-head p:not(.home-kicker),
  .home-lead-story-copy p,
  .home-side-stories p,
  .home-festival-heading p:not(.home-kicker),
  .home-festival-editions p,
  .home-youth-copy > p:not(.home-kicker),
  .home-president-copy p,
  .home-resource-grid p { font-size: 14px; line-height: 1.85; }
  .home-section-head { flex-wrap: wrap; gap: 12px; }
  .home-section-head p:not(.home-kicker) { max-width: none; }
  .home-section-head .text-link { margin-top: 0; }
  .home-renewal .text-link,
  .home-renewal .button,
  .home-inline-link,
  .home-youth-links a,
  .org-link-arrow { font-size: 13px; min-height: 44px; }
  .home-masthead .button-row { flex-wrap: wrap; gap: 10px 20px; }
  .home-masthead .button { padding: 11px 16px; gap: 18px; }
  .home-carousel-stage { height: 350px; }
  .home-slide-caption { bottom: 78px; }
  .home-slide-caption > span,
  .home-slide-caption p,
  .home-slide-count { font-size: 12px; }
  .home-slide-caption h2 { font-size: 20px; line-height: 1.5; }
  .home-carousel-controls { gap: 6px; bottom: 16px; }
  .home-carousel-controls > button,
  .home-carousel-controls > .home-carousel-pause { width: 44px; height: 44px; font-size: 16px; }
  .home-carousel-thumbs { gap: 6px; }
  .home-carousel-thumbs > button { min-width: 0; min-height: 66px; }
  .home-thumb-label { display: block; font-size: 11px; line-height: 1.4; white-space: normal; overflow-wrap: anywhere; }
  .home-news-label,
  .home-small-category,
  .home-lead-story-copy time,
  .home-lead-story-image > span,
  .home-festival-editions section > span,
  .home-festival-location,
  .home-youth-main > span,
  .home-youth-small figcaption,
  .home-youth-links time,
  .home-year-heading > span,
  .home-year-line time > span,
  .home-president-name > span,
  .home-resource-grid span,
  .home-resource-grid small { font-size: 12px; line-height: 1.6; }
  .home-news-strip .wrap > a:not(.text-link) { font-size: 13px; line-height: 1.65; }
  .home-lead-story { grid-template-columns: 1fr; }
  .home-lead-story-image { min-height: 0; height: 230px; }
  .home-lead-story-copy { padding: 22px; }
  .home-lead-story-copy h3 { font-size: 25px; }
  .home-side-stories > a { grid-template-columns: 88px minmax(0, 1fr); align-items: start; }
  .home-side-stories h3 { font-size: 16px; line-height: 1.55; }
  .home-side-stories p { -webkit-line-clamp: 3; }
  .home-side-stories > a > img { height: 106px; }
  .home-small-category i { margin: 0 3px; }
  .home-festival-editions section > span { display: block; }
  .home-festival-editions i { display: block; margin: 3px 0 0; padding-left: 0; border: 0; }
  .home-youth-links a { padding: 12px 0; }
  .home-year-line p { font-size: 12px; max-width: none; }
  .home-org-link { flex-wrap: wrap; }
  .home-org-link p { font-size: 13px; line-height: 1.8; }
  .home-org-link .org-link-arrow { display: inline-flex; align-items: center; }
  .home-president-name > span { display: block; margin: 4px 0 0; }
  .home-resource-grid > a { min-width: 0; }
  .home-resource-grid > a > div:not(.home-resource-icon) { min-width: 0; flex: 1; }
  .home-resource-icon { flex: 0 0 35px; }

  .festival-page .fest-kicker,
  .festival-page .fest-section-heading .fest-kicker,
  .festival-page .fest-edition-copy .fest-kicker,
  .festival-page .fest-proclamation .fest-kicker { font-size: 11px; line-height: 1.7; }
  .festival-page .fest-hero h1 { font-size: clamp(54px, 16vw, 65px); }
  .festival-page .fest-hero-description,
  .festival-page .fest-section-heading > p,
  .festival-page .fest-edition-description,
  .festival-page .fest-proclamation-copy > p:not(.fest-kicker),
  .festival-page .fest-scene p,
  .festival-page .fest-contact p:not(.fest-kicker) { font-size: 14px; line-height: 1.85; }
  .festival-page .fest-hero-actions .button,
  .festival-page .fest-contact .button,
  .festival-page .fest-external,
  .festival-page .fest-report-link { min-height: 44px; font-size: 13px; }
  .festival-page .fest-external,
  .festival-page .fest-report-link { display: inline-flex; align-items: center; }
  .festival-page .fest-hero-actions { flex-wrap: wrap; gap: 10px 18px; }
  .festival-page .fest-hero-caption > span,
  .festival-page .fest-hero-caption small,
  .festival-page .fest-edition-jumps > a > span,
  .festival-page .fest-edition-jumps small,
  .festival-page .fest-photo-caption,
  .festival-page .fest-date-stamp small,
  .festival-page .fest-date-stamp > span,
  .festival-page .fest-edition-details dt,
  .festival-page .fest-edition-details small,
  .festival-page .fest-organizers strong,
  .festival-page .fest-organizers > span,
  .festival-page .fest-proclamation figcaption,
  .festival-page .fest-scene > span,
  .festival-page .fest-credits { font-size: 12px; line-height: 1.7; }
  .festival-page .fest-edition-details > div { font-size: 14px; grid-template-columns: 35px minmax(0, 1fr); gap: 12px; }
  .festival-page .fest-date-stamp { max-width: calc(100% - 24px); }
  .festival-page .fest-scene i { top: 250px; }
  .festival-page .fest-contact p:not(.fest-kicker) { max-width: none; }

  .article-text.imported-body { font-size: 15px; line-height: 1.95; }
  .article-title { font-size: clamp(24px, 6.5vw, 30px); overflow-wrap: anywhere; }
  .article-meta,
  .article-hero figcaption,
  .article-text.imported-body figcaption,
  .article-actions .source-link,
  .adjacent-posts small { font-size: 12px; line-height: 1.8; }
  .article-actions .source-link { display: inline-flex; align-items: center; min-height: 44px; overflow-wrap: anywhere; }
  .adjacent-posts span { font-size: 14px; line-height: 1.8; }
  .greeting-text, .greeting-text p:first-child { font-size: 14px; line-height: 1.95; }
  .news-excerpt { font-size: 13px; }
  .news-row h3 { font-size: 16px; }
  .news-row .news-date, .news-category, .card-meta { font-size: 12px; }
  .story-card p { font-size: 14px; line-height: 1.85; }
  .filter, .year-filter, .archive-pagination button { min-height: 44px; font-size: 12px; }
  .archive-pagination { flex-wrap: wrap; }
  .archive-search input, .year-select-label select { font-size: 16px; min-height: 44px; }
  .archive-search button { font-size: 13px; min-height: 44px; }
  .page-intro > div > p:not(.breadcrumb):not(.eyebrow) { font-size: 14px; }
  .about-summary p, .program-intro, .work-card p { font-size: 14px; line-height: 1.85; }
  .footer-sub, .site-footer .footer-sub, .footer-main > div, .footer-bottom, .visit-note { font-size: 12px; }
  .footer-contact { display: inline-flex; align-items: center; min-height: 44px; font-size: 12px; }
  .footer-top { flex-wrap: wrap; gap: 12px; }
  .site-footer .footer-sub { max-width: none; }
}

@media (max-width: 380px) {
  .header-contact { padding: 8px; }
  .header-contact > span { display: none; }
  .home-year-line { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .leadership-home { grid-template-columns: 85px minmax(0, 1fr); gap: 15px; }
  .home-president-photo img { height: 135px; }
  .home-president-copy h2 { overflow-wrap: anywhere; }
  .archive-heading-tools { grid-template-columns: 1fr; }
  .year-select-label { max-width: 180px; }
}
