/* HELEOS canonical typography root — v26 / Onest full weight range
   Single source of truth for font family, weight, line-height and tracking.
   This file is intentionally loaded AFTER every page stylesheet. */
:root {
  --type-ui: "Onest", -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
  --type-display: "Onest", -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
  --type-weight-thin: 100;
  --type-weight-extra-light: 200;
  --type-weight-light: 300;
  --type-weight-regular: 400;
  --type-weight-medium: 500;
  --type-weight-semi-bold: 600;
  --type-weight-bold: 700;
  --type-weight-extra-bold: 700;
  --type-weight-black: 900;
  --type-letter-spacing: 0;
  --type-body-line-height: 1.47;
  --type-h1-line-height: 1.08;
  --type-h2-line-height: 1.12;
  --type-h3-line-height: 1.18;
  --type-h4-line-height: 1.25;
  --type-small-line-height: 1.40;
  --type-label-line-height: 1.35;
  --type-ui-line-height: 1.20;
  --type-display-line-height: 1.08;
  --type-heading-weight: var(--type-weight-semi-bold);
  --type-h1-weight: var(--type-weight-extra-bold);
}

html { -webkit-text-size-adjust: 100%; }
body {
  font-family: var(--type-ui);
  font-size: 16px;
  line-height: var(--type-body-line-height);
  letter-spacing: var(--type-letter-spacing);
  font-weight: var(--type-weight-regular);
  font-kerning: normal;
  text-rendering: optimizeLegibility;
}

button, input, textarea, select { font-family: inherit; }

/* Headings: no page-specific tracking or compressed line-height. */
h1 {
  font-family: var(--type-display) !important;
  font-weight: var(--type-h1-weight) !important;
  line-height: var(--type-h1-line-height) !important;
  letter-spacing: var(--type-letter-spacing) !important;
}
h2 {
  font-family: var(--type-display) !important;
  font-weight: var(--type-heading-weight) !important;
  line-height: var(--type-h2-line-height) !important;
  letter-spacing: var(--type-letter-spacing) !important;
}
h3 {
  font-family: var(--type-display) !important;
  font-weight: var(--type-heading-weight) !important;
  line-height: var(--type-h3-line-height) !important;
  letter-spacing: var(--type-letter-spacing) !important;
}
h4, h5, h6 {
  font-family: var(--type-display) !important;
  font-weight: var(--type-heading-weight) !important;
  line-height: var(--type-h4-line-height) !important;
  letter-spacing: var(--type-letter-spacing) !important;
}

/* Descriptive/body copy uses one rhythm everywhere. */
p, li, dd, dt, blockquote, figcaption {
  line-height: var(--type-body-line-height) !important;
  letter-spacing: var(--type-letter-spacing) !important;
}
small {
  line-height: var(--type-small-line-height) !important;
  letter-spacing: var(--type-letter-spacing) !important;
}
label {
  line-height: var(--type-label-line-height) !important;
  letter-spacing: var(--type-letter-spacing) !important;
}

/* Form/UI text may keep component sizing, but never custom tracking. */
button, input, textarea, select {
  letter-spacing: var(--type-letter-spacing) !important;
}

/* v25: Onest is the canonical site typeface.
   This root file is loaded last, so legacy page-level font-family rules cannot override it. */
body,
button, input, textarea, select, option,
h1, h2, h3, h4, h5, h6,
p, a, span, strong, b, em, i,
li, dt, dd, small, label, blockquote, figcaption,
th, td {
  font-family: var(--type-ui) !important;
}

h1, h2, h3, h4, h5, h6 {
  font-family: var(--type-display) !important;
}



/* v26: all Onest weights are available through the variable 100–900 axis. */
strong, b { font-weight: var(--type-weight-bold); }
.font-onest-thin { font-weight: var(--type-weight-thin) !important; }
.font-onest-extra-light { font-weight: var(--type-weight-extra-light) !important; }
.font-onest-light { font-weight: var(--type-weight-light) !important; }
.font-onest-regular { font-weight: var(--type-weight-regular) !important; }
.font-onest-medium { font-weight: var(--type-weight-medium) !important; }
.font-onest-semi-bold { font-weight: var(--type-weight-semi-bold) !important; }
.font-onest-bold { font-weight: var(--type-weight-bold) !important; }
.font-onest-extra-bold { font-weight: var(--type-weight-extra-bold) !important; }
.font-onest-black { font-weight: var(--type-weight-black) !important; }


/* v27: stronger hero-slider titles using the site emphasis weight 700.
   This sits after the canonical heading rule so the slider is intentionally bolder. */
.home-slider-copy h1,
.home-slider-copy h2 {
  font-weight: var(--type-weight-extra-bold) !important;
}


/* v30: every page H1 uses canonical strong H1 weight 700.
   The canonical root is loaded last, so page-level 600/650/700 values cannot weaken the primary page title. */
h1 { font-weight: var(--type-h1-weight) !important; }
