/* Shared type scale: section headings, card titles, body, and supporting text. */
:root { --text-body: 17px; --text-small: 14px; --text-title: 20px; --text-section: 32px; --muted: #485f83; }
body { font-size: var(--text-body); line-height: 1.55; }
h2, .category-section h2, .category-heading h2, .trust h2, .faq h2 { font-size: var(--text-section); line-height: 1.2; letter-spacing: -.025em; }
.header nav a { font-size: 16px; font-weight: 600; }
.header nav { gap: 20px; }
.header-cta { font-size: 15px; }
.lead, .hero .lead { font-size: 18px; line-height: 1.55; }
.section-heading p, .how-wrap .section-heading > p, .trust-copy > p,
.step p, .mobile-features .feature p, .plan li, details p,
.download-copy > p { font-size: var(--text-body); line-height: 1.55; }
.event-body h3, .step h3, .mobile-features .feature h3, .plan h3 { font-size: var(--text-title); line-height: 1.3; }
.event-body h3 { font-size: 17px; }
.category, .text-link, .plan-link, summary { font-size: 16px; line-height: 1.5; }
summary { font-weight: 600; min-height: 56px; padding: 14px 18px; }
.event-caption, .tag, .free-caption, .period, .popular-label,
.sources > div, .footer, .footer p, .footer nav a, .download-stores p,
.download-copy .text-link { font-size: var(--text-small); line-height: 1.5; }
.hero .feature h3 { font-size: 15px; line-height: 1.4; }
.event-card { align-items: flex-start; }
.event-cover { height: 120px; }
.event-caption { flex-wrap: wrap; }
.step { padding: 26px 20px 26px 48px; }
.step h3 { min-height: 0; }
.plan { padding: 28px; }
.plan ul { margin-left: 0; }
.price strong { font-size: 32px; }
.mobile-features .feature h3 { min-height: 78px; }
.footer { flex-wrap: wrap; }
/* A full-width trust panel keeps four source labels readable on desktop. */
.information { grid-template-columns: 1fr; gap: 36px; margin-top: 12px; margin-bottom: 36px; }
.trust { padding: 32px; border-radius: 22px; background: linear-gradient(110deg,#edfbfd,#f1faff); }
.trust h2 { max-width: none; }
.trust-copy > p { max-width: 900px; margin-top: 14px; }
.sources { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 24px; margin-top: 28px; }
.sources > div { display: flex; align-items: center; gap: 14px; font-size: 16px; line-height: 1.4; min-width: 0; }
.sources .asset-icon { width: 52px; height: 52px; flex: 0 0 52px; background: #ddf6fb; border-radius: 50%; }
.sources > div:nth-child(2) .asset-icon { background: #e5f2ff; }
.sources > div:nth-child(3) .asset-icon { background: #e5f2ff; }
.sources > div:nth-child(4) .asset-icon { background: #eee7ff; }
.sources .asset-icon img { width: 28px; height: 28px; }
.faq h2 { margin-bottom: 22px; }
@media (min-width: 901px) and (max-width: 1200px) {
  .header-inner { gap: 20px; flex-wrap: wrap; padding-block: 12px; }
  .header nav { gap: 16px; }
  .header nav a { font-size: 15px; }
  .header-cta { display: none; }
  .hero { min-height: 740px; }
  .hero .features { gap: 12px; }
  .hero .feature h3 { font-size: 14px; }
  .plan { padding: 24px 20px; }
  .plan-heading { flex-wrap: wrap; }
}
@media (max-width: 900px) {
  .sources { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 22px; }
  .event-body h3 { font-size: 18px; }
  .event-cover { height: 110px; }
  .step { padding: 24px 18px; }
  .header nav a { font-size: 15px; }
}
@media (max-width: 760px) {
  :root { --text-body: 16px; --text-title: 18px; --text-section: 28px; }
  .header nav a { font-size: 16px; }
  .header-cta { font-size: 14px; }
  .lead, .hero .lead { font-size: 17px; line-height: 1.5; }
  .category-heading .text-link { font-size: 14px; }
  .category { font-size: 14px; }
  .mobile-features .feature h3 { min-height: 0; }
  .mobile-features .feature p { margin-top: 12px; }
  .trust { padding: 26px; }
  .sources > div { font-size: 15px; gap: 10px; }
  .sources .asset-icon { width: 44px; height: 44px; flex-basis: 44px; }
  .sources .asset-icon img { width: 26px; height: 26px; }
}
@media (max-width: 600px) {
  .event-cover { height: auto; }
  .step { padding: 26px 20px 26px 44px; }
  .step h3 { font-size: 18px; }
  .tag { font-size: 13px; }
  .trust { padding: 24px; }
  .sources { grid-template-columns: 1fr; gap: 16px; margin-top: 24px; }
  .sources > div { font-size: 16px; gap: 14px; }
  .sources .asset-icon { width: 48px; height: 48px; flex-basis: 48px; }
  .download h2 { font-size: 28px; }
}
@media (max-width: 359px) {
  .hero .lead { font-size: 16px; }
  .header-cta { font-size: 12px; }
  .category { font-size: 13px; }
  .mobile-features .feature { padding: 20px 14px; }
  .event-body h3 { font-size: 17px; }
}
@media (min-width: 1101px) { .mobile-features .feature h3 { min-height: 52px; } }
@media (max-width: 359px) { .mobile-features .features { grid-template-columns: 1fr; } .mobile-features .feature { padding: 22px; } }
