/* Readable text sizes throughout public, kiosk, and admin pages.
   Keep headings and decorative icons at their page-defined sizes. */
html { font-size: 18px !important; }
body { font-size: 18px !important; line-height: 1.6; }

:where(
  li, dt, dd, label, input, select, textarea, button, a, td, th, small, summary,
  .btn, .card-sub, .subtitle, .sub, .badge, .alert, .err, .field-error,
  .field-opt, .field-label, .stat-label, .summary-label, .summary-row,
  .intro-para, .role-option, .age-option, .back-link, .autocomplete-item,
  .member-label, .member-remove, .consent-toggle-label, .consent-note,
  .consent-toggle-hint, .consent-check-label, .consent-error,
  .terms-box, .terms-summary-text, .link-row, .lang-btn, .loading-wrap,
  .empty-state, .event-banner-registration, .event-banner-name,
  .event-banner-date, .event-banner-description, .social-proof-text,
  .cta-band-text, .cta-band-link, .success-detail-row, .top-bar-sub,
  .page-sub, .email-chip, .footer-note, .note, .error, .msg, .btn-sm,
  .logo p, .step-header p, .page-header p, .body-text, .scroll-hint
) {
  font-size: max(16px, 1em) !important;
}

/* Inline helper text is common in older pages and generated form rows. */
:where(
  [style*="font-size:10px"], [style*="font-size: 10px"],
  [style*="font-size:11px"], [style*="font-size: 11px"],
  [style*="font-size:11.5px"], [style*="font-size: 11.5px"],
  [style*="font-size:12px"], [style*="font-size: 12px"],
  [style*="font-size:12.5px"], [style*="font-size: 12.5px"],
  [style*="font-size:13px"], [style*="font-size: 13px"],
  [style*="font-size:13.5px"], [style*="font-size: 13.5px"],
  [style*="font-size:14px"], [style*="font-size: 14px"],
  [style*="font-size:15px"], [style*="font-size: 15px"]
) {
  font-size: 16px !important;
}

:where(p, li, dt, dd, label, td, th, small, .card-sub, .subtitle, .sub,
  .alert, .err, .field-error, .intro-para, .consent-note, .terms-box,
  .event-banner-description) {
  line-height: 1.5;
}

:where(input, select, textarea, button) { min-width: 0; }