/* ===========================================================================
   Heading weight
   Headings render at 500 across the site. Component titles set that
   themselves in the per-page stylesheets; this covers the ones that take
   their weight from the theme instead - section headings via .text-display-*
   and the hero H1.

   Restricted to actual heading elements on purpose. .states-side-heading is
   also used on body copy (the intro paragraph under each H2 carries it), and
   a bare class selector here would drag that up to 500 as well.

   :is(h1..h6).states-side-heading is (0,1,1), which clears the theme's
   .text-display-2 at (0,1,0) without needing !important.
   =========================================================================== */
:is(h1, h2, h3, h4, h5, h6).states-side-heading,
h1.entry-title {
    font-weight: 500;
}

/* ===========================================================================
   Heading case
   Headings render capitalised. Component titles set this themselves in the
   per-page stylesheets; this covers the ones that take .uppercase from the
   theme's utility classes in the markup instead.

   Restricted to heading elements and to the widget titles that are divs by
   name - a bare .uppercase rule would also flatten labels, counters and the
   marquee, which are decorative texture rather than headings and are meant to
   stay shouty.

   :is(h1..h6).uppercase is (0,1,1) against the utility's (0,1,0), and the
   widget rules are (0,2,0), so both win without !important.
   =========================================================================== */
:is(h1, h2, h3, h4, h5, h6).uppercase,
:is(h1, h2, h3, h4, h5, h6).states-side-heading,
.states-side-intro-hover-tabs__title.uppercase,
.states-side-image-accordion__title.uppercase,
.states-side-pricing-plans__title.uppercase {
    text-transform: capitalize;
}
