/*!
 * eky-icons.css — v2.3.98
 *
 * Self-hosted subset of Font Awesome 6.5.1 — ONLY the 22 glyphs actually used
 * in eky-new templates. Replaces the 273 KB CDN bundle
 * (cdnjs font-awesome/6.5.1/css/all.min.css + its solid + brands woff2).
 *
 * Weight comparison:
 *   Before: ~273 KB (CSS) + ~156 KB (fa-solid-900.woff2) + ~117 KB (fa-brands-400.woff2)  = ~546 KB
 *   After:   ~3 KB (this file) + ~3 KB (solid subset)  + ~644 B (brands subset)          = ~6.6 KB
 *   Savings: ~540 KB (~98.8%) per cold-cache visitor.
 *
 * Glyph inventory (22): arrow-up, balance-scale, bars, bolt, briefcase, building,
 * envelope, envelope-open-text, fax, file-pdf, gavel, handshake, heart, landmark,
 * lightbulb, phone, times, trophy, user-tie, users, facebook-f, linkedin-in.
 *
 * Class compatibility: we keep the Font Awesome class names (.fa, .fas, .fa-solid,
 * .fab, .fa-brands, .fa-<name>) so templates do not need to change any markup —
 * only the <link rel="stylesheet"> was swapped from the CDN to this file.
 *
 * If a new icon is needed in a future version:
 *   1. Add its codepoint to the pyftsubset invocation (see Ops note below).
 *   2. Append its class rule at the bottom of this file.
 *   3. Re-generate the two woff2 files and bump theme version.
 *
 * Subset was generated from the @fortawesome/fontawesome-free@6.5.1 npm package:
 *   pyftsubset fa-solid-900.woff2  --unicodes=U+F004,U+F00D,… --flavor=woff2
 *   pyftsubset fa-brands-400.woff2 --unicodes=U+F39E,U+F0E1   --flavor=woff2
 */

/* ─── Font faces ─────────────────────────────────────────────────────
 * font-display:swap prevents invisible text while the woff2 loads
 * (same behaviour FA ships with). The subset files are so small that
 * the swap window is usually a single frame on warm connections.
 */
@font-face {
    font-family: "eky-icons-solid";
    font-style: normal;
    font-weight: 900;
    font-display: swap;
    src: url("../fonts/eky-icons/eky-icons-solid.woff2") format("woff2");
}

@font-face {
    font-family: "eky-icons-brands";
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url("../fonts/eky-icons/eky-icons-brands.woff2") format("woff2");
}

/* ─── Shared glyph base ──────────────────────────────────────────────
 * Mirrors Font Awesome's .fa-icon-base mixin. Every icon needs:
 *   display:inline-block, line-height:1 (so icons don't inflate line
 *   boxes in paragraphs), font-style/variant normal (guards against
 *   inheritance from <em> or <abbr>), text-rendering:auto, and the
 *   font-smoothing pair for crisp edges on macOS/Windows.
 */
.fa,
.fas,
.fa-solid,
.fab,
.fa-brands,
i[class*="fa-"] {
    display: inline-block;
    font-style: normal;
    font-variant: normal;
    font-weight: 900;
    line-height: 1;
    text-rendering: auto;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

/* Solid set (default FA weight 900). */
.fa,
.fas,
.fa-solid {
    font-family: "eky-icons-solid";
    font-weight: 900;
}

/* Brands set. FA brands is always weight 400 — a lot of third-party
 * code still writes `.fab.fa-linkedin-in` with an implicit weight 900
 * from the solid rule above; we reset weight here so the @font-face
 * match resolves to the brands file.
 */
.fab,
.fa-brands {
    font-family: "eky-icons-brands";
    font-weight: 400;
}

/* ─── Size / fixed-width helpers (used by front-page hero icons) ─── */
.fa-2x  { font-size: 2em; }
.fa-3x  { font-size: 3em; }
.fa-fw  { width: 1.25em; text-align: center; }

/* ─── Pseudo-element content mapping for the 22 glyphs ───────────── */
.fa-arrow-up::before           { content: "\f062"; }
.fa-balance-scale::before      { content: "\f24e"; }
.fa-bars::before               { content: "\f0c9"; }
.fa-bolt::before               { content: "\f0e7"; }
.fa-briefcase::before          { content: "\f0b1"; }
.fa-building::before           { content: "\f1ad"; }
.fa-envelope::before           { content: "\f0e0"; }
.fa-envelope-open-text::before { content: "\f658"; }
.fa-fax::before                { content: "\f1ac"; }
.fa-file-pdf::before           { content: "\f1c1"; }
.fa-gavel::before              { content: "\f0e3"; }
.fa-handshake::before          { content: "\f2b5"; }
.fa-heart::before              { content: "\f004"; }
.fa-landmark::before           { content: "\f66f"; }
.fa-lightbulb::before          { content: "\f0eb"; }
.fa-phone::before              { content: "\f095"; }
.fa-times::before              { content: "\f00d"; }
.fa-trophy::before             { content: "\f091"; }
.fa-user-tie::before           { content: "\f508"; }
.fa-users::before              { content: "\f0c0"; }

/* Brand glyphs: the ::before rules match FA's same-name aliases. */
.fa-facebook-f::before  { content: "\f39e"; }
.fa-linkedin-in::before { content: "\f0e1"; }
