/**
 * Britehouse — Phase 1 global typography (final cascade layer)
 * Hero 72–84px · Section 44–56px · Body 20–24px · Eyebrows 13–15px · Buttons 14–16px
 * Load after all page CSS · structure and copy unchanged
 */

/* -------------------------------------------------------------------------
   Hero headings — 72–84px · weight 500–600 · lh 1.0–1.08
   ------------------------------------------------------------------------- */
body main h1,
body article h1,
body main .hero-title,
body main [class*="hero-title"],
body article .art-title{
  font-weight:500;
  line-height:var(--bh-leading-hero);
}

body main [class*="hero-title__line"]:not([class*="--mass"]),
body main .hero-title__line:not(.hero-title__line--mass){
  font-size:var(--bh-type-hero-line);
  letter-spacing:var(--bh-track-hero-line);
  line-height:var(--bh-leading-hero);
  font-weight:500;
}

body main [class*="hero-title__line--mass"],
body main .hero-title__line--mass{
  font-size:var(--bh-type-hero-mass);
  letter-spacing:var(--bh-track-hero-mass);
  line-height:var(--bh-leading-hero);
  font-weight:500;
}

body main .ap-hero h1,
body main .cpa-hero h1,
body main .ct-hero__title,
body article .art-title{
  font-size:var(--bh-type-hero-display);
  letter-spacing:var(--bh-track-hero-display);
  font-weight:500;
  line-height:var(--bh-leading-hero);
}

/* -------------------------------------------------------------------------
   Section headings — 44–56px · weight 500 · lh 1.08–1.15
   ------------------------------------------------------------------------- */
body main h2,
body main h3,
body article h2,
body article h3,
body main [class*="statement"]:not([class*="__stress"]),
body main [class*="-h2"],
body main [class*="__headline"],
body article [class*="statement"],
body main .ins-h2,
body main .ins-statement,
body main .ins-feature-title,
body main .ins-doctrine__headline,
body main .ins-anchor__headline,
body main [class*="anchor__headline"],
body main [class*="anchor-dark__headline"],
body main [class*="intake__title"],
body main [class*="form-panel__title"],
body main [class*="sidebar__title"],
body article .art-pullquote p{
  font-size:var(--bh-type-h2);
  font-weight:500;
  line-height:var(--bh-leading-h2);
  letter-spacing:var(--bh-track-h2);
}

body main [class*="statement"]:not([class*="__stress"]),
body main .ins-statement,
body article .art-statement,
body article .art-pullquote p{
  font-size:var(--bh-type-statement);
  line-height:var(--bh-leading-statement);
  letter-spacing:var(--bh-track-statement);
}

body main [class*="anchor__headline"],
body main [class*="anchor-dark__headline"]{
  font-size:var(--bh-type-anchor);
  letter-spacing:var(--bh-track-anchor);
  line-height:var(--bh-leading-h2);
}

/* In-section titles — body-lede scale · editorial weight */
body main [class*="module__title"],
body main [class*="__lane-title"],
body main [class*="__name"]:not([class*="company"]),
body main [class*="dgap__title"],
body main [class*="__leaf-title"]{
  font-size:var(--bh-type-prose-lede);
  font-weight:500;
  line-height:var(--bh-leading-snug);
}

body main [class*="__claim"]{
  font-size:var(--bh-type-h2);
  font-weight:500;
  line-height:var(--bh-leading-h2);
  letter-spacing:var(--bh-track-h2);
}

/* -------------------------------------------------------------------------
   Body copy — 20–24px · weight 400 · lh 1.45–1.6
   ------------------------------------------------------------------------- */
body main p,
body main li,
body article p,
body article li,
body main [class*="prose"],
body main [class*="__body"],
body main [class*="__lead"],
body main [class*="__deck"],
body main [class*="__desc"],
body main [class*="__copy"],
body main [class*="__note"],
body main [class*="__text"],
body main [class*="__sub"],
body main [class*="__hint"],
body main [class*="__philosophy"],
body main [class*="__channel"],
body main [class*="hero-body"],
body main [class*="hero-sub"],
body main [class*="module__body"],
body main [class*="module__list"] li,
body main [class*="__list"] li,
body main [class*="__gate"],
body main [class*="flow__text"],
body main [class*="compare"] p,
body main [class*="compare"] li,
body main [class*="__legal"],
body main .ct-legal,
body main [class*="__pair"],
body main [class*="__term"],
body main [class*="__row"] p,
body article .art-subtitle,
body article .art-prose,
body article .art-body p,
body article .art-framework__body p,
body article .art-implication p,
body article .art-related li,
body article .art-end p{
  font-size:var(--bh-type-prose);
  line-height:var(--bh-leading-prose);
  font-weight:400;
}

body main [class*="prose-lede"],
body main [class*="__lede"],
body main [class*="hero-body"] p,
body main .ins-hero-body,
body main [class*="hero-sub"],
body main [class*="__stress"],
body main [class*="__resolve"]{
  font-size:var(--bh-type-prose-lede);
  line-height:var(--bh-leading-prose);
}

body main .ct-field__input,
body main .ct-field__input::placeholder,
body main textarea.ct-field__input{
  font-size:var(--bh-type-prose);
  line-height:var(--bh-leading-prose);
}

/* -------------------------------------------------------------------------
   Eyebrows / structural labels — 13–15px · uppercase · 0.08–0.12em
   ------------------------------------------------------------------------- */
body main [class*="kicker"],
body main [class*="__eyebrow"],
body main [class*="__label"]:not([for]),
body main [class*="observe__label"],
body main [class*="pattern__label"],
body main [class*="__phase"],
body main [class*="__tag"],
body main [class$="-tag"],
body main [class*="schema-id"],
body main [class*="rail-tag"],
body main [class*="__code"],
body main [class*="__idx"],
body main [class*="__meta"]:not(p),
body main [class*="__id"]:not([class*="module__id"]),
body main [class*="__cap"],
body main [class*="framework__label"],
body main [class*="implication__label"],
body main [class*="related__label"],
body article .art-kicker,
body article .art-transition,
body article .art-framework__label,
body article .art-implication__label,
body article .art-related__label,
body article .art-meta{
  font-size:var(--bh-type-schema);
  font-weight:600;
  letter-spacing:var(--bh-letter-kicker);
  text-transform:uppercase;
}

/* -------------------------------------------------------------------------
   Buttons — 14–16px · medium weight · slight tracking
   ------------------------------------------------------------------------- */
body main [class*="btn"],
body main [class*="-btn"],
body main button[type="submit"],
body main .bh-btn,
body article [class*="btn"]{
  font-size:var(--bh-text-cta);
  font-weight:var(--bh-cta-font-weight);
  letter-spacing:var(--bh-cta-track);
}
