/* NULYNULY type hierarchy: one source of truth for all editorial text.
 * Role                 PC     Tablet    Mobile   Weight
 * Main title           56     40        32       700
 * Section title        44     36        28       700
 * Sub title            32     28        24       700
 * Item title           24     22        20       700
 * Body                 22     19        18       400
 * Caption / footnote   14     13        12       400
 * Action               20     18        16       700
 * Compact navigation   16     15        12       500
 * Brand wordmarks are artwork and keep their independent display sizes.
 */
@media (min-width:1025px){
  :root{--type-main:56px;--type-section:44px;--type-sub:32px;--type-item:24px;--type-body:22px;--type-caption:14px;--type-action:20px;--type-nav:16px}
}
@media (min-width:768px) and (max-width:1024px){
  :root{--type-main:40px;--type-section:36px;--type-sub:28px;--type-item:22px;--type-body:19px;--type-caption:13px;--type-action:18px;--type-nav:15px}
}
@media (max-width:767px){
  :root{--type-main:32px;--type-section:28px;--type-sub:24px;--type-item:20px;--type-body:18px;--type-caption:12px;--type-action:16px;--type-nav:12px}
}
:root{
  --body-size:var(--type-body);--form-body-size:var(--type-body);
  --card-title-size:var(--type-item);--feature-size:var(--type-sub);
  --channel-title-size:var(--type-sub);
}
body{font-size:var(--type-body);line-height:1.8}
#main h1{font-size:var(--type-main);font-weight:700;line-height:1.3;letter-spacing:-.05em}
#main .hero-lead,#main .hero-message{font-size:inherit;white-space:normal;text-wrap:balance}
#main h2:not(.channel-name):not(#provided-values-title){
  font-size:var(--type-section);font-weight:700;line-height:1.4;letter-spacing:-.045em
}
#main h3,#main .channel-name,#main .discovery-copy h4>span{
  font-size:var(--type-sub);font-weight:700;line-height:1.4;letter-spacing:-.035em
}
#main h4,#main .concern-row h3,#main .concern-number,
#main .service-scope-link,#main .service-scope-item>summary,#main .scope-detail-grid dt{
  font-size:var(--type-item);font-weight:700;line-height:1.5;letter-spacing:-.03em
}
#main p,#main .section-heading>p,#main .channel-description,
#main .hero-description,#main .promise-description,#main .channel-strategy-intro p,
#main .branding-output p,#main .youtube-format-card p,#main .discovery-copy>p,
#main .scope-detail-grid dd,#main .scope-description,#main .scope-benefit,
#main .consultation-form label,#main .consultation-form input,#main .consultation-form textarea{
  font-size:var(--type-body);font-weight:400;line-height:1.8;letter-spacing:-.025em
}
#main .consultation-form label>span{font-weight:400}
/* The promise is a headline even though its two lines use paragraph markup. */
#main .concerns-closing p{font-size:var(--type-section);font-weight:700;line-height:1.4;letter-spacing:-.045em}
#main .discovery-example figcaption,#main .discovery-footnote,
#main .threads-results-footnote,#main .channel-footnote,#main .scope-note,
#main .scope-benefit>span,#main .discovery-touchpoint,#main .form-result{
  font-size:var(--type-caption);font-weight:400;line-height:1.7;letter-spacing:-.02em
}
#main .threads-results-footnote{font-size:calc(var(--type-caption) + .5pt)}
#main .primary-button{font-size:var(--type-action);font-weight:700;line-height:1.5;letter-spacing:-.025em}
.site-header .header-nav>a,.site-header .header-contact{font-size:var(--type-nav);line-height:1.5}
#main .promise-channels .channel-label,#main .channel-hashtags{font-size:var(--type-item);font-weight:700;line-height:1.5}
#main .tape-word{font-size:var(--type-sub);line-height:1.25}
