/*!
 * FontAwesome 6 → Local FA4 Compatibility Shim
 * Maps fa-solid / fa-regular / fa-brands syntax to local FontAwesome 4 webfont
 * This lets all FA6 class usage work offline with the locally hosted FA4 font.
 */

/* ── Base icon class mappings ── */
.fa-solid, .fas,
.fa-regular, .far,
.fa-light, .fal,
.fa-thin, .fat,
.fa-duotone, .fad,
.fa-brands, .fab {
    display: inline-block;
    font: normal normal normal 14px/1 FontAwesome;
    font-size: inherit;
    text-rendering: auto;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

/* ── Individual icon mappings (FA6 name → FA4 unicode) ── */

/* General / UI */
.fa-gem:before              { content: "\f3a5"; } /* diamond/gem */
.fa-university:before,
.fa-building-columns:before { content: "\f19c"; }
.fa-shield-halved:before,
.fa-shield-alt:before,
.fa-shield:before           { content: "\f132"; }
.fa-lock:before             { content: "\f023"; }
.fa-unlock:before           { content: "\f09c"; }
.fa-user:before             { content: "\f007"; }
.fa-user-tie:before         { content: "\f508"; }
.fa-users:before            { content: "\f0c0"; }
.fa-envelope:before         { content: "\f0e0"; }
.fa-phone:before            { content: "\f095"; }
.fa-globe:before            { content: "\f0ac"; }
.fa-check:before            { content: "\f00c"; }
.fa-check-circle:before     { content: "\f058"; }
.fa-times:before,
.fa-xmark:before            { content: "\f00d"; }
.fa-times-circle:before     { content: "\f057"; }
.fa-circle-check:before     { content: "\f058"; }
.fa-circle-xmark:before     { content: "\f057"; }
.fa-triangle-exclamation:before,
.fa-exclamation-triangle:before { content: "\f071"; }
.fa-info-circle:before,
.fa-circle-info:before      { content: "\f05a"; }
.fa-search:before,
.fa-magnifying-glass:before { content: "\f002"; }
.fa-cog:before,
.fa-gear:before             { content: "\f013"; }
.fa-cogs:before,
.fa-gears:before            { content: "\f085"; }
.fa-home:before,
.fa-house:before            { content: "\f015"; }
.fa-bars:before,
.fa-navicon:before          { content: "\f0c9"; }
.fa-bell:before             { content: "\f0f3"; }
.fa-sign-in:before,
.fa-right-to-bracket:before { content: "\f090"; }
.fa-sign-out:before,
.fa-right-from-bracket:before { content: "\f08b"; }
.fa-arrow-left:before       { content: "\f060"; }
.fa-arrow-right:before      { content: "\f061"; }
.fa-arrow-up:before         { content: "\f062"; }
.fa-arrow-down:before       { content: "\f063"; }
.fa-angle-left:before       { content: "\f104"; }
.fa-angle-right:before      { content: "\f105"; }
.fa-angle-up:before         { content: "\f106"; }
.fa-angle-down:before       { content: "\f107"; }
.fa-chevron-left:before     { content: "\f053"; }
.fa-chevron-right:before    { content: "\f054"; }
.fa-chevron-up:before       { content: "\f077"; }
.fa-chevron-down:before     { content: "\f078"; }
.fa-ellipsis-v:before,
.fa-ellipsis-vertical:before { content: "\f142"; }
.fa-ellipsis-h:before,
.fa-ellipsis:before         { content: "\f141"; }
.fa-plus:before             { content: "\f067"; }
.fa-plus-circle:before,
.fa-circle-plus:before      { content: "\f055"; }
.fa-minus:before            { content: "\f068"; }
.fa-edit:before,
.fa-pen-to-square:before    { content: "\f044"; }
.fa-pencil:before,
.fa-pencil-alt:before,
.fa-pen:before              { content: "\f040"; }
.fa-trash:before,
.fa-trash-alt:before        { content: "\f1f8"; }
.fa-trash-can:before        { content: "\f1f8"; }
.fa-save:before,
.fa-floppy-disk:before      { content: "\f0c7"; }
.fa-download:before         { content: "\f019"; }
.fa-upload:before           { content: "\f093"; }
.fa-file:before             { content: "\f15b"; }
.fa-file-pdf:before         { content: "\f1c1"; }
.fa-file-alt:before,
.fa-file-lines:before       { content: "\f15c"; }
.fa-folder:before           { content: "\f07b"; }
.fa-folder-open:before      { content: "\f07c"; }
.fa-eye:before              { content: "\f06e"; }
.fa-eye-slash:before        { content: "\f070"; }
.fa-link:before             { content: "\f0c1"; }
.fa-copy:before             { content: "\f0c5"; }
.fa-print:before            { content: "\f02f"; }
.fa-star:before             { content: "\f005"; }
.fa-heart:before            { content: "\f004"; }
.fa-image:before,
.fa-photo-film:before       { content: "\f03e"; }
.fa-video:before,
.fa-video-camera:before     { content: "\f03d"; }
.fa-camera:before           { content: "\f030"; }
.fa-calendar:before,
.fa-calendar-days:before    { content: "\f073"; }
.fa-clock:before,
.fa-clock-rotate-left:before { content: "\f017"; }
.fa-map-marker:before,
.fa-location-dot:before,
.fa-map-marker-alt:before   { content: "\f041"; }
.fa-phone-alt:before,
.fa-phone-flip:before       { content: "\f095"; }
.fa-comment:before          { content: "\f075"; }
.fa-comments:before         { content: "\f086"; }
.fa-headset:before          { content: "\f590"; }
.fa-id-card:before,
.fa-address-card:before     { content: "\f2c2"; }
.fa-key:before              { content: "\f084"; }
.fa-tag:before              { content: "\f02b"; }
.fa-tags:before             { content: "\f02c"; }
.fa-flag:before             { content: "\f024"; }
.fa-ban:before              { content: "\f05e"; }
.fa-spinner:before          { content: "\f110"; }
.fa-refresh:before,
.fa-rotate:before,
.fa-arrows-rotate:before    { content: "\f021"; }
.fa-filter:before           { content: "\f0b0"; }
.fa-list:before             { content: "\f03a"; }
.fa-list-check:before,
.fa-tasks:before            { content: "\f0ae"; }
.fa-th-large:before,
.fa-table-cells-large:before { content: "\f009"; }
.fa-th:before,
.fa-table-cells:before      { content: "\f00a"; }
.fa-table:before            { content: "\f0ce"; }
.fa-sort:before             { content: "\f0dc"; }
.fa-sort-up:before,
.fa-sort-asc:before         { content: "\f0de"; }
.fa-sort-down:before,
.fa-sort-desc:before        { content: "\f0dd"; }
.fa-external-link:before,
.fa-arrow-up-right-from-square:before { content: "\f08e"; }
.fa-share:before,
.fa-share-nodes:before      { content: "\f064"; }
.fa-qrcode:before           { content: "\f029"; }
.fa-barcode:before          { content: "\f02a"; }

/* Finance / Banking */
.fa-bank:before,
.fa-building-columns:before { content: "\f19c"; }
.fa-money-bill:before,
.fa-money-bill-wave:before,
.fa-money-bill-alt:before   { content: "\f0d6"; }
.fa-dollar-sign:before,
.fa-dollar:before           { content: "\f155"; }
.fa-euro-sign:before        { content: "\f153"; }
.fa-pound-sign:before       { content: "\f154"; }
.fa-credit-card:before      { content: "\f09d"; }
.fa-wallet:before           { content: "\f555"; }
.fa-piggy-bank:before       { content: "\f4d3"; }
.fa-hand-holding-dollar:before,
.fa-hand-holding-usd:before { content: "\f4c0"; }
.fa-coins:before            { content: "\f51e"; }
.fa-chart-line:before,
.fa-line-chart:before       { content: "\f201"; }
.fa-chart-bar:before,
.fa-bar-chart:before        { content: "\f080"; }
.fa-chart-pie:before,
.fa-pie-chart:before        { content: "\f200"; }
.fa-trending-up:before      { content: "\f201"; }
.fa-exchange-alt:before,
.fa-right-left:before       { content: "\f362"; }
.fa-receipt:before          { content: "\f543"; }
.fa-file-invoice:before,
.fa-file-invoice-dollar:before { content: "\f571"; }
.fa-percentage:before       { content: "\f541"; }
.fa-landmark:before         { content: "\f66f"; }
.fa-vault:before            { content: "\e2fb"; }
.fa-briefcase:before        { content: "\f0b1"; }
.fa-suitcase:before         { content: "\f0f2"; }
.fa-handshake:before        { content: "\f2b5"; }
.fa-hand-sparkles:before    { content: "\e05d"; }
.fa-donate:before           { content: "\f4b9"; }
.fa-gift:before             { content: "\f06b"; }
.fa-award:before,
.fa-trophy:before           { content: "\f091"; }

/* Communication */
.fa-bell-slash:before       { content: "\f1f6"; }
.fa-paper-plane:before      { content: "\f1d8"; }
.fa-inbox:before            { content: "\f01c"; }
.fa-at:before               { content: "\f1fa"; }

/* Social */
.fa-facebook:before,
.fa-facebook-f:before       { content: "\f09a"; }
.fa-twitter:before          { content: "\f099"; }
.fa-linkedin:before,
.fa-linkedin-in:before      { content: "\f0e1"; }
.fa-instagram:before        { content: "\f16d"; }
.fa-youtube:before          { content: "\f167"; }
.fa-whatsapp:before         { content: "\f232"; }

/* Status & Misc */
.fa-circle:before           { content: "\f111"; }
.fa-circle-notch:before     { content: "\f1ce"; }
.fa-ellipsis:before         { content: "\f141"; }
.fa-bolt:before             { content: "\f0e7"; }
.fa-fire:before             { content: "\f06d"; }
.fa-leaf:before             { content: "\f06c"; }
.fa-seedling:before         { content: "\f4d8"; }
.fa-infinity:before         { content: "\f534"; }
.fa-tachometer-alt:before,
.fa-gauge:before,
.fa-tachometer:before       { content: "\f0e4"; }
.fa-sliders-h:before,
.fa-sliders:before          { content: "\f1de"; }
.fa-wrench:before           { content: "\f0ad"; }
.fa-magic:before,
.fa-wand-magic-sparkles:before { content: "\f0d0"; }
.fa-cube:before             { content: "\f1b2"; }
.fa-cubes:before            { content: "\f1b3"; }
.fa-certificate:before      { content: "\f0a3"; }
.fa-stamp:before            { content: "\f5bf"; }
.fa-fingerprint:before      { content: "\f577"; }
.fa-wifi:before             { content: "\f1eb"; }
.fa-plug:before             { content: "\f1e6"; }
.fa-power-off:before        { content: "\f011"; }
.fa-hashtag:before          { content: "\f292"; }
.fa-at:before               { content: "\f1fa"; }
.fa-code:before             { content: "\f121"; }

/* Earth variants */
.fa-earth-americas:before,
.fa-earth:before            { content: "\f0ac"; }

/* User variants */
.fa-user-plus:before        { content: "\f234"; }
.fa-user-minus:before       { content: "\f503"; }
.fa-user-check:before       { content: "\f4fc"; }
.fa-user-slash:before       { content: "\f506"; }
.fa-users-cog:before,
.fa-users-gear:before       { content: "\f509"; }
.fa-user-shield:before      { content: "\f505"; }
.fa-user-lock:before        { content: "\f502"; }
.fa-user-clock:before       { content: "\f4fd"; }

/* Spin animation */
.fa-spin { animation: fa-spin 2s infinite linear; }
@keyframes fa-spin {
    0%   { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}

/* Size modifiers */
.fa-xs   { font-size: .75em; }
.fa-sm   { font-size: .875em; }
.fa-lg   { font-size: 1.33333em; line-height: 0.75em; vertical-align: -.0667em; }
.fa-xl   { font-size: 1.5em; }
.fa-2xl  { font-size: 2em; }
.fa-2x   { font-size: 2em; }
.fa-3x   { font-size: 3em; }
.fa-4x   { font-size: 4em; }
.fa-5x   { font-size: 5em; }
.fa-fw   { width: 1.25em; text-align: center; }
