@font-face {
  font-family: "A94 Inter";
  src: url("assets/fonts/InterVariable.woff2") format("woff2");
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
}

:root {
  --a94-font-sans: "A94 Inter", Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --a94-font-display: var(--a94-font-sans);
  --a94-title-tracking-1: -.055em;
  --a94-title-tracking-2: -.048em;
  --a94-title-tracking-3: -.035em;
}

/*
 * One typographic source of truth for public pages, account screens,
 * tutorials and both dashboard applications. Icon fonts are deliberately
 * excluded so third-party controls keep their symbols.
 */
html body {
  font-family: var(--a94-font-sans) !important;
  font-optical-sizing: auto;
  font-kerning: normal;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}

body :where(
  p, a, li, button, input, select, textarea, option, label, summary,
  caption, th, td, small, strong, b
) {
  font-family: var(--a94-font-sans) !important;
}

body :where(h1, h2, h3, h4, h5, h6),
body .elementor-heading-title,
body [class*="__title"],
body [class*="__heading"] {
  max-inline-size: 100%;
  font-family: var(--a94-font-display) !important;
  font-optical-sizing: auto;
  font-style: normal;
  text-wrap: balance;
}

/* Sentence case is the readable default. Uppercase is reserved for the
 * compact eyebrow/kicker labels below. Authored acronyms remain unchanged. */
html body h1:not(#a94-typography-priority),
html body .elementor-heading-title:is(h1):not(#a94-typography-priority) {
  font-family: var(--a94-font-display) !important;
  font-weight: 900 !important;
  line-height: .94 !important;
  letter-spacing: var(--a94-title-tracking-1) !important;
  text-transform: none !important;
}

html body h2:not(#a94-typography-priority),
html body .elementor-heading-title:is(h2):not(#a94-typography-priority) {
  font-family: var(--a94-font-display) !important;
  font-weight: 850 !important;
  line-height: .98 !important;
  letter-spacing: var(--a94-title-tracking-2) !important;
  text-transform: none !important;
}

html body h3:not(#a94-typography-priority),
html body .elementor-heading-title:is(h3):not(#a94-typography-priority) {
  font-family: var(--a94-font-display) !important;
  font-weight: 750 !important;
  line-height: 1.05 !important;
  letter-spacing: var(--a94-title-tracking-3) !important;
  text-transform: none !important;
}

/* Public marketing pages use the established Academy94 all-caps display
 * language. Account, tutorial and dashboard headings remain sentence case. */
html body.public-page h1:not(#a94-typography-priority),
html body.public-page h2:not(#a94-typography-priority),
html body.public-page .elementor-heading-title:is(h1, h2):not(#a94-typography-priority) {
  text-transform: uppercase !important;
}

html body :where(h4, h5, h6):not(#a94-typography-priority) {
  font-family: var(--a94-font-display) !important;
  font-weight: 720 !important;
  line-height: 1.12 !important;
  letter-spacing: -.022em !important;
  text-transform: none !important;
}

body :where(
  .eyebrow,
  [class*="__eyebrow"],
  [class*="-eyebrow"],
  .detail-label,
  .section-kicker,
  [class*="__kicker"],
  [class*="-kicker"]
) {
  font-family: var(--a94-font-sans) !important;
  font-weight: 820 !important;
  line-height: 1.25 !important;
  letter-spacing: .14em !important;
  text-transform: uppercase !important;
}

@media (max-width: 600px) {
  :root {
    --a94-title-tracking-1: -.048em;
    --a94-title-tracking-2: -.042em;
    --a94-title-tracking-3: -.03em;
  }

  body :where(h1, h2, h3, h4, h5, h6),
  body .elementor-heading-title {
    overflow-wrap: normal;
    word-break: normal;
    hyphens: none;
  }
}
