/* ===========================================================================
   02 · TYPE
   Warbler Text all caps for H1-H4. Aktiv Grotesk for everything else.

   ALL CAPS IS APPLIED HERE, VIA text-transform. Never type a heading in
   capitals in Divi: it changes what screen readers announce and it breaks the
   heading if the text is ever reused in a sentence-case context.
   =========================================================================== */

#page-container h1, #page-container h2, #page-container h3, #page-container h4,
#et-boc .et-l h1, #et-boc .et-l h2, #et-boc .et-l h3, #et-boc .et-l h4 {
  font-family: var(--display) !important;
  font-weight: 400;
  text-transform: uppercase;
  color: var(--ink);
  margin: 0;
  padding: 0;
  text-wrap: balance;
}

#page-container h1, #et-boc .et-l h1 {
  font-size: var(--fs-h1);
  letter-spacing: var(--ls-h1);
  line-height: var(--lh-h1);
  max-width: var(--measure-h1);
}
#page-container h2, #et-boc .et-l h2 {
  font-size: var(--fs-h2);
  letter-spacing: var(--ls-h2);
  line-height: var(--lh-h2);
  max-width: var(--measure-h2);
}
#page-container h3, #et-boc .et-l h3 {
  font-size: var(--fs-h3);
  letter-spacing: var(--ls-h3);
  line-height: var(--lh-h3);
}
#page-container h4, #et-boc .et-l h4 {
  font-size: var(--fs-h4);
  letter-spacing: var(--ls-h4);
  line-height: var(--lh-h4);
}

/* H5 and H6 are not display type. They are labels, set in the text face. */
#page-container h5, #page-container h6 {
  font-family: var(--text) !important;
  font-size: var(--fs-caption);
  font-weight: 600;
  letter-spacing: 0.10em;
  text-transform: uppercase;
  color: var(--ink);
  margin: 0;
}

/* Centred headings need their measure released or they sit off-centre. */
.text-center h1, .text-center h2,
#page-container .et_pb_text_align_center h1,
#page-container .et_pb_text_align_center h2 {
  max-width: none;
  margin-left: auto;
  margin-right: auto;
}

/* ---------------------------------------------------------------------------
   Warbler vs fallback tracking

   Source Serif 4 sets wider than Warbler Text at the same tracking. When the
   fallback is live, pull the display letter-spacing in slightly so the caps
   lockups do not drift past the measure.
   --------------------------------------------------------------------------- */
body.no-warbler {
  --ls-h1: 0.06em;
  --ls-h2: 0.055em;
  --ls-h3: 0.05em;
}


/* ===========================================================================
   BODY COPY
   =========================================================================== */

#page-container p, #et-boc .et-l p {
  font-family: var(--text);
  font-size: var(--fs-body);
  line-height: var(--lh-body);
  color: var(--ink);
  max-width: var(--measure-body);
  margin: 0 0 var(--sp-5);
}
#page-container p:last-child { margin-bottom: 0; }

.lead, #page-container .lead p {
  font-size: var(--fs-lead);
  line-height: var(--lh-lead);
  max-width: var(--measure-lead);
}

.caption, #page-container .caption p {
  font-size: var(--fs-caption);
  letter-spacing: 0.01em;
  line-height: 1.6;
}

.micro, #page-container .micro p {
  font-size: var(--fs-micro);
  letter-spacing: 0.02em;
  line-height: 1.55;
}

/* Release the measure where a module is deliberately full width. */
.measure-none, .measure-none p { max-width: none; }


/* ---------------------------------------------------------------------------
   Eyebrow

   12px caps. Walnut on light grounds, Ivory Stone on River Slate.
   NEVER Antique Brass: 3.28:1 fails AA at this size and it looks correct,
   which makes it the most likely accessibility defect in the build.
   --------------------------------------------------------------------------- */
.eyebrow, #page-container .eyebrow p {
  font-family: var(--text);
  font-size: var(--fs-eyebrow);
  font-weight: 500;
  letter-spacing: var(--ls-eyebrow);
  line-height: 1.4;
  text-transform: uppercase;
  color: var(--ink);
  max-width: none;
  margin: 0 0 var(--sp-5);
}
.surface-slate .eyebrow, .on-contrast .eyebrow,
.section-hero .eyebrow,
.surface-slate .eyebrow p, .on-contrast .eyebrow p {
  color: var(--gv-field);
}


/* ---------------------------------------------------------------------------
   Display accent · Antique Brass, 24px and up only
   Permitted on Ivory Stone (3.28:1) and River Slate (3.61:1).
   NOT permitted on Linen: 2.78:1 fails at every size.
   --------------------------------------------------------------------------- */
.display-brass,
#page-container .display-brass h1,
#page-container .display-brass h2,
#page-container .display-brass h3 {
  color: var(--ink-display);
}
/* Guard: kill the accent if it lands on Linen. */
.surface-linen .display-brass,
#page-container .surface-linen .display-brass h2,
#page-container .surface-linen .display-brass h3 {
  color: var(--ink);
}


/* ---------------------------------------------------------------------------
   Ink inversion on contrast grounds
   --------------------------------------------------------------------------- */
.surface-slate, .on-contrast, .blenn-footer { color: var(--ink-on-contrast); }

.surface-slate h1, .surface-slate h2, .surface-slate h3, .surface-slate h4,
.surface-slate p, .surface-slate li,
.on-contrast h1, .on-contrast h2, .on-contrast h3, .on-contrast h4,
.on-contrast p, .on-contrast li,
#page-container .surface-slate h1, #page-container .surface-slate h2,
#page-container .surface-slate h3, #page-container .surface-slate h4,
#page-container .surface-slate p,
#page-container .on-contrast h2, #page-container .on-contrast p {
  color: var(--ink-on-contrast);
}


/* ---------------------------------------------------------------------------
   Lists
   --------------------------------------------------------------------------- */
#page-container ul, #page-container ol {
  max-width: var(--measure-body);
  padding-left: var(--sp-5);
  margin: 0 0 var(--sp-5);
}
#page-container li {
  font-size: var(--fs-body);
  line-height: var(--lh-body);
  margin-bottom: var(--sp-2);
}
