/* =============================================================================
   Valunxt — the site face

   Inter, on every page in both markets. Loaded through `site_css`, which
   HeadAssets emits LAST, and scoped by `body.vxn-uae-face` — a class the same
   helper adds, so a page can never get one without the other. See
   lib/uae-typography.ts, and lib/pages.ts for where it is applied. The class
   and file name still say "uae" — the mechanism started there (20260910) and
   widened site-wide four days later; renaming either would mean touching every
   file that reaches into this one by name for no visible difference.

   THIS SHEET NAMES A FAMILY AND ONE WEIGHT. Sizes and line heights are
   untouched by design: the market's type SCALE lives in valunxt-uae-type.css
   and applies to the home page and the services section only, as it always
   has. Every other page keeps whatever sizes it had.

   The weight is the exception, added on client instruction (20260910, the
   same day the face landed): every heading, h1 through h6, on every UAE page
   — services and sub-services included — sits at 400. It lives here rather
   than in the scale sheet because "every UAE page" is exactly this sheet's
   reach and not that one's. See THE HEADING WEIGHT at the foot.

   ---------------------------------------------------------------------------
   20260917 — INTER REPLACED SANOMAT SANS, client instruction: one family,
   site-wide, no other change. Every component file that used to set "DM Sans"
   or "Forum" directly now sets "Inter" too, so the result does not depend on
   this sheet's own cascade trick — belt and braces, not a sign the trick
   stopped working. dmsans.css and forum.css stay linked in HeadAssets; nothing
   asks either family for a glyph anymore, so neither ever fetches a font file.

   IT REPLACED TWO FAMILIES BEFORE THIS. Until 20260910 the UAE ran Forum on
   h1/h2 and Asap Sharp on everything else, from the type sheet. Both were
   dropped for Sanomat Sans on client instruction, which this sheet has in turn
   now dropped for Inter.

   ---------------------------------------------------------------------------
   THE CUTS

   One variable file per script range, in public/inter/ — Inter's own upright,
   weight-axis build (no optical-size axis, no italic, matching what Sanomat
   Sans shipped): a single `font-weight: 100 900` per face, so every weight a
   component asks for — 150, 800, whatever — is a real drawn cut, not a
   browser guess. Latin and Latin Extended are what this site's copy uses;
   Cyrillic, Greek and Vietnamese are carried over unused rather than trimmed,
   since a range nothing requests never downloads regardless.

   THERE ARE NO ITALICS, same as the Sanomat Sans build before it: an element
   set to italic still renders a synthesised oblique, not a drawn Inter Italic.
   Loading the real italic face was left out on purpose, to keep this an exact
   font-family swap rather than also picking up a rendering Sanomat Sans never
   had.

   The Latin and Latin Extended cuts are preloaded by HeadAssets — see
   UAE_FACE_PRELOAD — because between them they cover every weight this site's
   English and accented copy asks for; the other five load if a page ever
   needs that script.

   ---------------------------------------------------------------------------
   WHY THE SELECTOR IS WRITTEN THREE CLASSES DEEP

   `body.vxn-uae-face h2` would be (0,1,2). Surveyed across every stylesheet a
   UAE page can load, the strongest competing font-family declaration is

     .elementor-262 .vxn-ind-intro h2.vxn-ind-intro__title   (0,3,1) !important

   and a dozen shared sections set Forum at (0,2,1) !important — CommunitySection,
   FaqSection, LeadershipSection, PlatformSection and the rest. Those files
   render on /en-in/ too — now also set to Inter directly, see 20260917 above,
   but the survey predates that and this rule still has to win regardless of
   what any single component file says. Repeating the body class (it really is
   on <body>; it just counts three times) puts this rule at (0,3,2) and it wins
   against all of them.

   ICON FONTS ARE EXCLUDED, the same way the type sheet always excluded them.
   Font Awesome, Elementor's eicons and the theme's vamtam-theme set live at
   letter codepoints; give one of their elements this family and the icon
   renders as a letter. `<i>` is not targeted at all — it is almost always an
   icon and inherits correctly when it is not — and span/div carry the class
   guards. Pseudo-element icons declare their own face and are unaffected.
   ============================================================================= */

@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url("/inter/inter-latin-wght-normal.woff2") format("woff2-variations");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329,
    U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url("/inter/inter-latin-ext-wght-normal.woff2") format("woff2-variations");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329,
    U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url("/inter/inter-cyrillic-wght-normal.woff2") format("woff2-variations");
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url("/inter/inter-cyrillic-ext-wght-normal.woff2") format("woff2-variations");
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}

@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url("/inter/inter-greek-wght-normal.woff2") format("woff2-variations");
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}

@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url("/inter/inter-greek-ext-wght-normal.woff2") format("woff2-variations");
  unicode-range: U+1F00-1FFF;
}

@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url("/inter/inter-vietnamese-wght-normal.woff2") format("woff2-variations");
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301,
    U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}

/* =============================================================================
   THE FAMILY
   ============================================================================= */

body.vxn-uae-face.vxn-uae-face.vxn-uae-face,
body.vxn-uae-face.vxn-uae-face.vxn-uae-face h1,
body.vxn-uae-face.vxn-uae-face.vxn-uae-face h2,
body.vxn-uae-face.vxn-uae-face.vxn-uae-face h3,
body.vxn-uae-face.vxn-uae-face.vxn-uae-face h4,
body.vxn-uae-face.vxn-uae-face.vxn-uae-face h5,
body.vxn-uae-face.vxn-uae-face.vxn-uae-face h6,
body.vxn-uae-face.vxn-uae-face.vxn-uae-face p,
body.vxn-uae-face.vxn-uae-face.vxn-uae-face a,
body.vxn-uae-face.vxn-uae-face.vxn-uae-face li,
body.vxn-uae-face.vxn-uae-face.vxn-uae-face dt,
body.vxn-uae-face.vxn-uae-face.vxn-uae-face dd,
body.vxn-uae-face.vxn-uae-face.vxn-uae-face td,
body.vxn-uae-face.vxn-uae-face.vxn-uae-face th,
body.vxn-uae-face.vxn-uae-face.vxn-uae-face caption,
body.vxn-uae-face.vxn-uae-face.vxn-uae-face blockquote,
body.vxn-uae-face.vxn-uae-face.vxn-uae-face q,
body.vxn-uae-face.vxn-uae-face.vxn-uae-face cite,
body.vxn-uae-face.vxn-uae-face.vxn-uae-face figcaption,
body.vxn-uae-face.vxn-uae-face.vxn-uae-face label,
body.vxn-uae-face.vxn-uae-face.vxn-uae-face legend,
body.vxn-uae-face.vxn-uae-face.vxn-uae-face summary,
body.vxn-uae-face.vxn-uae-face.vxn-uae-face time,
body.vxn-uae-face.vxn-uae-face.vxn-uae-face address,
body.vxn-uae-face.vxn-uae-face.vxn-uae-face abbr,
body.vxn-uae-face.vxn-uae-face.vxn-uae-face small,
body.vxn-uae-face.vxn-uae-face.vxn-uae-face strong,
body.vxn-uae-face.vxn-uae-face.vxn-uae-face b,
body.vxn-uae-face.vxn-uae-face.vxn-uae-face em,
body.vxn-uae-face.vxn-uae-face.vxn-uae-face mark,
body.vxn-uae-face.vxn-uae-face.vxn-uae-face sup,
body.vxn-uae-face.vxn-uae-face.vxn-uae-face sub,
body.vxn-uae-face.vxn-uae-face.vxn-uae-face del,
body.vxn-uae-face.vxn-uae-face.vxn-uae-face ins,
body.vxn-uae-face.vxn-uae-face.vxn-uae-face s,
body.vxn-uae-face.vxn-uae-face.vxn-uae-face u,
body.vxn-uae-face.vxn-uae-face.vxn-uae-face button,
body.vxn-uae-face.vxn-uae-face.vxn-uae-face input,
body.vxn-uae-face.vxn-uae-face.vxn-uae-face select,
body.vxn-uae-face.vxn-uae-face.vxn-uae-face option,
body.vxn-uae-face.vxn-uae-face.vxn-uae-face textarea,
/* The two containers icons actually live in, guarded. */
body.vxn-uae-face.vxn-uae-face.vxn-uae-face span:not([class*="icon"]):not([class*="eicon"]):not([class*="fa-"]),
body.vxn-uae-face.vxn-uae-face.vxn-uae-face div:not([class*="icon"]):not([class*="eicon"]):not([class*="fa-"]) {
  font-family: "Inter", "Helvetica Neue", Arial, sans-serif !important;
}

/* =============================================================================
   THE HEADING WEIGHT — 400, h1 through h6, on every UAE page

   By client instruction. Inter ships a real Regular cut, so this is a
   designed weight on every level, not a synthesis.

   IT HAS TO WIN, and it is written to. The scale sheet used to set 500 at this
   same (0,3,2) and the survey behind that rule found nothing heavier among
   the page sheets: the service template sets its banner head at 500 and its
   strip cards at 600, both at (0,1,0) with !important; the bookkeeping page
   sets its hero at 300 at (0,2,0); the Elementor kit reaches (0,3,0) with no
   !important at all. (0,3,2) with !important clears every one of them, and
   they are now dead declarations rather than wrong ones.

   The heading widget's inner element is covered too — Elementor puts the text
   in a child of the tag, and a weight set on the child would survive the rule
   on the parent. The breadcrumb line the scale sheet holds at 500 is not a
   heading and is not touched. */
body.vxn-uae-face.vxn-uae-face.vxn-uae-face h1,
body.vxn-uae-face.vxn-uae-face.vxn-uae-face h2,
body.vxn-uae-face.vxn-uae-face.vxn-uae-face h3,
body.vxn-uae-face.vxn-uae-face.vxn-uae-face h4,
body.vxn-uae-face.vxn-uae-face.vxn-uae-face h5,
body.vxn-uae-face.vxn-uae-face.vxn-uae-face h6 {
  font-weight: 400 !important;
}

body.vxn-uae-face.vxn-uae-face.vxn-uae-face h1 .elementor-heading-title,
body.vxn-uae-face.vxn-uae-face.vxn-uae-face h2 .elementor-heading-title,
body.vxn-uae-face.vxn-uae-face.vxn-uae-face h3 .elementor-heading-title,
body.vxn-uae-face.vxn-uae-face.vxn-uae-face h4 .elementor-heading-title,
body.vxn-uae-face.vxn-uae-face.vxn-uae-face h5 .elementor-heading-title,
body.vxn-uae-face.vxn-uae-face.vxn-uae-face h6 .elementor-heading-title {
  font-weight: inherit !important;
}
