/* SiteFlyer type scale, normalised.
 *
 * The generated Beaver Builder CSS sets heading sizes per node, so the same
 * heading level renders at different sizes on different pages: h1 measured at
 * 60, 40, 38, 37, 36 and 28px across the site, and the /locations/ pages did not
 * scale down on mobile at all. Sizes like 37px are not chosen by a designer.
 *
 * This file styles explicit visual roles. Semantic heading levels remain free
 * to describe document structure without forcing every title into one look.
 *
 * Loaded last and uses !important deliberately: it has to beat ~9,100
 * node-scoped rules, and specificity games against generated selectors are not
 * maintainable.
 *
 * Scoped to main content. The header nav, footer and buttons keep their own
 * sizes, which are already consistent.
 *
 * Breakpoints match Beaver Builder's own: 992px and 767px.
 */

/* ---------- desktop, above 992px ------------------------------------- */
#fl-main-content .sf-page-title, #fl-main-content .sf-page-title .fl-heading-text {
  color: var(--sf-navy);
  font-family: var(--sf-font-heading) !important;
  font-size: var(--sf-h1) !important;  line-height: var(--sf-h1-lh) !important;
  font-weight: var(--sf-h1-weight) !important;
}
#fl-main-content .sf-section-title, #fl-main-content .sf-section-title .fl-heading-text {
  color: var(--sf-navy);
  font-family: var(--sf-font-heading) !important;
  font-size: var(--sf-h2) !important;  line-height: var(--sf-h2-lh) !important;
  font-weight: var(--sf-h2-weight) !important;
}
#fl-main-content .sf-subsection-title, #fl-main-content .sf-subsection-title .fl-heading-text {
  color: var(--sf-navy);
  font-family: var(--sf-font-heading) !important;
  font-size: var(--sf-h3) !important;  line-height: var(--sf-h3-lh) !important;
  font-weight: var(--sf-h3-weight) !important;
}
#fl-main-content .sf-supporting-title, #fl-main-content .sf-supporting-title .fl-heading-text {
  color: var(--sf-navy);
  font-family: var(--sf-font-body) !important;
  font-size: var(--sf-h4) !important;  line-height: var(--sf-h4-lh) !important;
  font-weight: var(--sf-h4-weight) !important;
}
#fl-main-content .sf-editorial-title, #fl-main-content .sf-editorial-title .fl-heading-text,
#fl-main-content .alt-heading, #fl-main-content .alt-heading .fl-heading-text,
#fl-main-content .fl-heading-text .alt-heading {
  color: var(--sf-accent);
  font-family: var(--sf-font-alt) !important;
  font-size: var(--sf-alt) !important;  line-height: var(--sf-alt-lh) !important;
  font-weight: var(--sf-alt-weight) !important;
}
#fl-main-content .sf-title-on-dark,
#fl-main-content .sf-title-on-dark .fl-heading-text {
  color: var(--sf-white) !important;
}
#fl-main-content .col-pricing-top .alt-heading {
  color: var(--sf-white) !important;
}
#fl-main-content .sf-section-dark .alt-heading {
  color: var(--sf-light-blue) !important;
}
#fl-main-content .sf-section-dark .sml-title {
  color: var(--sf-white) !important;
}
#fl-main-content .sf-eyebrow {
  color: var(--sf-accent) !important;
  font-family: var(--sf-font-body) !important;
  font-size: var(--sf-eyebrow) !important;
  font-weight: var(--sf-eyebrow-weight) !important;
  letter-spacing: .08em;
  line-height: var(--sf-eyebrow-lh) !important;
  text-transform: uppercase;
}
/* ---------- tablet, 768 to 992 --------------------------------------- */
@media (max-width: 992px) {
  #fl-main-content .sf-page-title, #fl-main-content .sf-page-title .fl-heading-text {
    font-size: 44px !important; line-height: 50px !important; }
  #fl-main-content .sf-section-title, #fl-main-content .sf-section-title .fl-heading-text {
    font-size: 34px !important; line-height: 38px !important; }
  #fl-main-content .sf-subsection-title, #fl-main-content .sf-subsection-title .fl-heading-text {
    font-size: 26px !important; line-height: 31px !important; }
  #fl-main-content .sf-supporting-title, #fl-main-content .sf-supporting-title .fl-heading-text {
    font-size: 20px !important; line-height: 24px !important; }
  #fl-main-content .sf-editorial-title, #fl-main-content .sf-editorial-title .fl-heading-text,
  #fl-main-content .alt-heading, #fl-main-content .alt-heading .fl-heading-text,
  #fl-main-content .fl-heading-text .alt-heading {
    font-size: 28px !important; line-height: 33px !important; }
}

/* ---------- phone, 767 and below -------------------------------------- */
@media (max-width: 767px) {
  #fl-main-content .sf-page-title, #fl-main-content .sf-page-title .fl-heading-text {
    font-size: var(--sf-h1-sm) !important; line-height: var(--sf-h1-sm-lh) !important; }
  #fl-main-content .sf-section-title, #fl-main-content .sf-section-title .fl-heading-text {
    font-size: var(--sf-h2-sm) !important; line-height: var(--sf-h2-sm-lh) !important; }
  #fl-main-content .sf-subsection-title, #fl-main-content .sf-subsection-title .fl-heading-text {
    font-size: var(--sf-h3-sm) !important; line-height: var(--sf-h3-sm-lh) !important; }
  #fl-main-content .sf-supporting-title, #fl-main-content .sf-supporting-title .fl-heading-text {
    font-size: var(--sf-h4-sm) !important; line-height: var(--sf-h4-sm-lh) !important; }
  #fl-main-content .sf-editorial-title, #fl-main-content .sf-editorial-title .fl-heading-text,
  #fl-main-content .alt-heading, #fl-main-content .alt-heading .fl-heading-text,
  #fl-main-content .fl-heading-text .alt-heading {
    font-size: var(--sf-alt-sm) !important; line-height: var(--sf-alt-sm-lh) !important; }
  #fl-main-content .sf-eyebrow {
    font-size: var(--sf-eyebrow-sm) !important;
    line-height: var(--sf-eyebrow-sm-lh) !important; }
}
