/* Thrive brand typography: editorial headings, friendly interface, clean body copy. */
body,.elementor{font-family:var(--thrive-body-font);font-weight:400;}
body :is(input,textarea,select){font-family:var(--thrive-body-font);}

body :is(h1,h2,.serif,.stat strong,.event-date strong),
body .elementor :is(h1.elementor-heading-title,h2.elementor-heading-title,h1,h2,.serif,.stat strong,.event-date strong){
  font-family:var(--thrive-heading-font);
  font-weight:400;
  letter-spacing:-.025em;
}
body .quote blockquote,body .elementor .quote blockquote{
  font-family:var(--thrive-heading-font);
  font-weight:400;
}

body :is(h3,h4,h5,h6,.site-footer h3,.step h3,.prose h3,.person h3,.contact-card h3,.event-copy h3),
body .elementor :is(h3.elementor-heading-title,h4.elementor-heading-title,h5.elementor-heading-title,h6.elementor-heading-title),
body .elementor :is(.step h3,.prose h3,.person h3,.contact-card h3,.event-copy h3,.site-footer h3){
  font-family:var(--thrive-ui-font);
  font-weight:700;
}

body :is(.nav-main,.nav-links,.nav-dropdown summary,.mobile-menu summary,.mobile-links,.top-strip,.button,.more,.eyebrow,.tag,.role,.event-type,.event-date span,.event-meta,.hero-sticker,.step .number,.program-facts,.pill-grid,.families-proof-card span,.quote cite,.post-card .date,.accordion summary,.elementor-button,.elementor-tab-title,.elementor-accordion-title){
  font-family:var(--thrive-ui-font);
}
body :is(button,.button,.more,.eyebrow,.tag,.role,.event-type,.event-date span,.hero-sticker,.step .number,.program-facts span,.program-facts strong,.pill-grid,.families-proof-card span,.quote cite,.post-card .date,.accordion summary,.elementor-button,.elementor-tab-title,.elementor-accordion-title),
body .elementor :is(.button,.more,.eyebrow,.tag,.role,.event-type,.event-date span,.hero-sticker,.step .number,.program-facts span,.program-facts strong,.pill-grid,.families-proof-card span,.quote cite,.post-card .date,.accordion summary,.elementor-button,.elementor-tab-title,.elementor-accordion-title),
body :is(.nav-main,.nav-main button,.nav-dropdown summary,.mobile-menu summary,.mobile-links a,.top-strip .top-cta){
  font-family:var(--thrive-ui-font);
  font-weight:700;
}
body :is(strong,b),body .elementor :is(strong,b){font-family:var(--thrive-ui-font);font-weight:700;}
/* Restore the serif display numerals after the general emphasis rule. */
body .stat strong,body .event-date strong,body .elementor .stat strong,body .elementor .event-date strong{
  font-family:var(--thrive-heading-font);
  font-weight:400;
}
body .site-footer a{font-family:var(--thrive-ui-font);}

/* Keep clear space beneath titles in both native pages and Elementor widgets. */
body main :is(h1,.hero-copy h1,.page-hero h1),
body .elementor h1.elementor-heading-title{margin-bottom:28px;}
body main :is(h2,.section-head h2,.cta-panel h2,.post-card h2,.prose h2),
body .elementor h2.elementor-heading-title{margin-bottom:clamp(20px,1.5vw,24px);}
body main :is(h3,h4,h5,h6,.card h3,.person h3,.event-copy h3,.step h3,.prose h3,.contact-card h3),
body .elementor :is(h3.elementor-heading-title,h4.elementor-heading-title,h5.elementor-heading-title,h6.elementor-heading-title){margin-bottom:12px;}
