/**
 * Custom Font Awesome Subset - Self-Hosted
 * Only includes icons used on this site
 * Based on Font Awesome 6.0.0 Free
 */

/* Font Face Definitions */
@font-face {
    font-family: 'Font Awesome 6 Free';
    font-style: normal;
    font-weight: 900;
    font-display: swap;
    src: url('fa-solid-900.woff2') format('woff2');
}

@font-face {
    font-family: 'Font Awesome 6 Free';
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url('fa-regular-400.woff2') format('woff2');
}

@font-face {
    font-family: 'Font Awesome 6 Brands';
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url('fa-brands-400.woff2') format('woff2');
}

/* Base Icon Styles */
.fa, .fas, .far, .fab {
    -moz-osx-font-smoothing: grayscale;
    -webkit-font-smoothing: antialiased;
    display: inline-block;
    font-style: normal;
    font-variant: normal;
    line-height: 1;
    text-rendering: auto;
}

.fa, .fas {
    font-family: 'Font Awesome 6 Free';
    font-weight: 900;
}

.far {
    font-family: 'Font Awesome 6 Free';
    font-weight: 400;
}

.fab {
    font-family: 'Font Awesome 6 Brands';
    font-weight: 400;
}

/* ========================================
   SOLID ICONS (fas)
   ======================================== */
.fa-square::before { content: "\f0c8"; }
.fa-plus::before { content: "\f067"; }
.fa-minus::before { content: "\f068"; }
.fa-ticket::before,
.fa-ticket-alt::before { content: "\f3ff"; }
.fa-envelope::before { content: "\f0e0"; }
.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-external-link::before,
.fa-external-link-alt::before,
.fa-up-right-from-square::before { content: "\f35d"; }
.fa-universal-access::before { content: "\f29a"; }
.fa-pause::before { content: "\f04c"; }
.fa-play::before { content: "\f04b"; }
.fa-adjust::before,
.fa-circle-half-stroke::before { content: "\f042"; }
.fa-text-height::before { content: "\f034"; }
.fa-mouse-pointer::before,
.fa-arrow-pointer::before { content: "\f245"; }
.fa-info-circle::before,
.fa-circle-info::before { content: "\f05a"; }
.fa-calendar::before { content: "\f133"; }
.fa-calendar-alt::before,
.fa-calendar-days::before { content: "\f073"; }
.fa-link::before { content: "\f0c1"; }
.fa-image::before { content: "\f03e"; }
.fa-spinner::before { content: "\f110"; }
.fa-times::before,
.fa-xmark::before { content: "\f00d"; }
.fa-chevron-left::before { content: "\f053"; }
.fa-chevron-right::before { content: "\f054"; }
.fa-map-marker-alt::before,
.fa-location-dot::before { content: "\f3c5"; }

/* ========================================
   REGULAR ICONS (far)
   ======================================== */
.fa-clock::before { content: "\f017"; }

/* ========================================
   BRAND ICONS (fab)
   ======================================== */
.fa-soundcloud::before { content: "\f1be"; }
.fa-instagram::before { content: "\f16d"; }
.fa-facebook::before { content: "\f09a"; }
.fa-facebook-f::before { content: "\f39e"; }

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

/* Utility class for active state */
.gig-icon-active {
    color: var(--accent-color);
}
