/*--- ICONS ---*/
@font-face {
    font-family: 'custom_ico';
    src: url('../fonts/custom_ico.woff2') format('woff2');
    font-weight: normal;
    font-style: normal;
}

.far, .fas, .fab {
    font-family: 'custom_ico' !important;
    font-weight: normal;
    font-style: normal;
}

/*--- CUSTOM ICONS ---*/
.i_download::before {content: "\e900";}
.i_heart::before {content: "\e901";}
.i_eye::before {content: "\e902";}
.i_calendar::before {content: "\e903";}
.i_user::before {content: "\e904";}
.i_search::before {content: "\e905";}
.i_arrow-right::before {content: "\e906";}
.i_arrow-left::before {content: "\e907";}
.i_arrow-up::before {content: "\e908";}
.i_arrow-down::before {content: "\e909";}
.i_plus::before {content: "\e90a";}
.i_minus::before {content: "\e90b";}
.i_close::before {content: "\e90c";}
.i_menu::before {content: "\e90d";}
.i_home::before {content: "\e90e";}
.i_settings::before {content: "\e90f";}
.i_info::before {content: "\e910";}
.i_warning::before {content: "\e911";}
.i_error::before {content: "\e912";}
.i_success::before {content: "\e913";}
.i_edit::before {content: "\e914";}
.i_delete::before {content: "\e915";}
.i_bookmark::before {content: "\e916";}
.i_share::before {content: "\e917";}
.i_comment::before {content: "\e918";}
.i_like::before {content: "\e919";}
.i_dislike::before {content: "\e91a";}
.i_play::before {content: "\e91b";}
.i_pause::before {content: "\e91c";}
.i_stop::before {content: "\e91d";}
.i_volume::before {content: "\e91e";}
.i_mute::before {content: "\e91f";}
.i_fullscreen::before {content: "\e920";}
.i_minimize::before {content: "\e921";}
.i_maximize::before {content: "\e922";}
.i_restore::before {content: "\e923";}
.i_refresh::before {content: "\e924";}
.i_sync::before {content: "\e925";}
.i_download-cloud::before {content: "\e926";}
.i_upload::before {content: "\e927";}
.i_folder::before {content: "\e928";}
.i_file::before {content: "\e929";}
.i_image::before {content: "\e92a";}
.i_video::before {content: "\e92b";}
.i_audio::before {content: "\e92c";}
.i_document::before {content: "\e92d";}
.i_archive::before {content: "\e92e";}
.i_code::before {content: "\e92f";}
.i_terminal::before {content: "\e930";}
.i_database::before {content: "\e931";}
.i_server::before {content: "\e932";}
.i_network::before {content: "\e933";}
.i_wifi::before {content: "\e934";}
.i_bluetooth::before {content: "\e935";}
.i_battery::before {content: "\e936";}
.i_plug::before {content: "\e937";}
.i_lightbulb::before {content: "\e938";}
.i_flash::before {content: "\e939";}
.i_fire::before {content: "\e93a";}
.i_water::before {content: "\e93b";}
.i_earth::before {content: "\e93c";}
.i_air::before {content: "\e93d";}
.i_sun::before {content: "\e93e";}
.i_moon::before {content: "\e93f";}
.i_star::before {content: "\e940";}
.i_planet::before {content: "\e941";}
.i_rocket::before {content: "\e942";}
.i_satellite::before {content: "\e943";}
.i_ufo::before {content: "\e944";}
.i_alien::before {content: "\e945";}
.i_robot::before {content: "\e946";}
.i_cyborg::before {content: "\e947";}
.i_human::before {content: "\e948";}
.i_animal::before {content: "\e949";}
.i_plant::before {content: "\e94a";}
.i_tree::before {content: "\e94b";}
.i_flower::before {content: "\e94c";}
.i_grass::before {content: "\e94d";}
.i_leaf::before {content: "\e94e";}
.i_seed::before {content: "\e94f";}
.i_fruit::before {content: "\e950";}
.i_vegetable::before {content: "\e951";}
.i_grain::before {content: "\e952";}
.i_bread::before {content: "\e953";}
.i_meat::before {content: "\e954";}
.i_fish::before {content: "\e955";}
.i_egg::before {content: "\e956";}
.i_milk::before {content: "\e957";}
.i_cheese::before {content: "\e958";}
.i_yogurt::before {content: "\e959";}
.i_butter::before {content: "\e95a";}
.i_oil::before {content: "\e95b";}
.i_salt::before {content: "\e95c";}
.i_sugar::before {content: "\e95d";}
.i_honey::before {content: "\e95e";}
.i_spice::before {content: "\e95f";}
.i_herb::before {content: "\e960";}
.i_tea::before {content: "\e961";}
.i_coffee::before {content: "\e962";}
.i_juice::before {content: "\e963";}
.i_soda::before {content: "\e964";}
.i_beer::before {content: "\e965";}
.i_wine::before {content: "\e966";}
.i_cocktail::before {content: "\e967";}
.i_shot::before {content: "\e968";}
.i_bottle::before {content: "\e969";}
.i_glass::before {content: "\e96a";}
.i_cup::before {content: "\e96b";}
.i_mug::before {content: "\e96c";}
.i_plate::before {content: "\e96d";}
.i_bowl::before {content: "\e96e";}
.i_fork::before {content: "\e96f";}
.i_knife::before {content: "\e970";}
.i_spoon::before {content: "\e971";}
.i_chopsticks::before {content: "\e972";}
.i_pot::before {content: "\e973";}
.i_pan::before {content: "\e974";}
.i_grill::before {content: "\e975";}
.i_oven::before {content: "\e976";}
.i_microwave::before {content: "\e977";}
.i_refrigerator::before {content: "\e978";}
.i_freezer::before {content: "\e979";}
.i_dishwasher::before {content: "\e97a";}
.i_washing-machine::before {content: "\e97b";}
.i_dryer::before {content: "\e97c";}
.i_vacuum::before {content: "\e97d";}
.i_broom::before {content: "\e97e";}
.i_mop::before {content: "\e97f";}
.i_sponge::before {content: "\e980";}
.i_soap::before {content: "\e981";}
.i_detergent::before {content: "\e982";}
.i_bleach::before {content: "\e983";}
.i_fabric-softener::before {content: "\e984";}
.i_laundry-basket::before {content: "\e985";}
.i_clothes-hanger::before {content: "\e986";}
.i_iron::before {content: "\e987";}
.i_sewing-machine::before {content: "\e988";}
.i_scissors::before {content: "\e989";}
.i_needle::before {content: "\e98a";}
.i_thread::before {content: "\e98b";}
.i_button::before {content: "\e98c";}
.i_zipper::before {content: "\e98d";}
.i_velcro::before {content: "\e98e";}
.i_snap::before {content: "\e98f";}
.i_hook::before {content: "\e990";}
.i_eyelet::before {content: "\e991";}
.i_grommet::before {content: "\e992";}
.i_buckle::before {content: "\e993";}
.i_belt::before {content: "\e994";}
.i_shoe::before {content: "\e995";}
.i_boot::before {content: "\e996";}
.i_sandal::before {content: "\e997";}
.i_slipper::before {content: "\e998";}
.i_sock::before {content: "\e999";}
.i_glove::before {content: "\e99a";}
.i_hat::before {content: "\e99b";}
.i_cap::before {content: "\e99c";}
.i_helmet::before {content: "\e99d";}
.i_mask::before {content: "\e99e";}
.i_glasses::before {content: "\e99f";}
.i_sunglasses::before {content: "\e9a0";}
.i_contact-lens::before {content: "\e9a1";}
.i_earring::before {content: "\e9a2";}
.i_necklace::before {content: "\e9a3";}
.i_bracelet::before {content: "\e9a4";}
.i_ring::before {content: "\e9a5";}
.i_watch::before {content: "\e9a6";}
.i_clock::before {content: "\e9a7";}
.i_alarm::before {content: "\e9a8";}
.i_timer::before {content: "\e9a9";}
.i_stopwatch::before {content: "\e9aa";}
.i_hourglass::before {content: "\e9ab";}
.i_sundial::before {content: "\e9ac";}
.i_compass::before {content: "\e9ad";}
.i_map::before {content: "\e9ae";}
.i_globe::before {content: "\e9af";}
.i_atlas::before {content: "\e9b0";}
.i_gps::before {content: "\e9b1";}
.i_location::before {content: "\e9b2";}
.i_marker::before {content: "\e9b3";}
.i_flag::before {content: "\e9b4";}
.i_banner::before {content: "\e9b5";}
.i_pennant::before {content: "\e9b6";}
.i_streamer::before {content: "\e9b7";}
.i_confetti::before {content: "\e9b8";}
.i_balloon::before {content: "\e9b9";}
.i_party-hat::before {content: "\e9ba";}
.i_cake::before {content: "\e9bb";}
.i_candle::before {content: "\e9bc";}
.i_gift::before {content: "\e9bd";}
.i_present::before {content: "\e9be";}
.i_wrapping-paper::before {content: "\e9bf";}
.i_ribbon::before {content: "\e9c0";}
.i_bow::before {content: "\e9c1";}
.i_tag::before {content: "\e9c2";}
.i_label::before {content: "\e9c3";}
.i_sticker::before {content: "\e9c4";}
.i_badge::before {content: "\e9c5";}
.i_medal::before {content: "\e9c6";}
.i_trophy::before {content: "\e9c7";}
.i_crown::before {content: "\e9c8";}
.i_scepter::before {content: "\e9c9";}
.i_orb::before {content: "\e9ca";}
.i_throne::before {content: "\e9cb";}
.i_castle::before {content: "\e9cc";}
.i_palace::before {content: "\e9cd";}
.i_mansion::before {content: "\e9ce";}
.i_villa::before {content: "\e9cf";}
.i_cottage::before {content: "\e9d0";}
.i_cabin::before {content: "\e9d1";}
.i_hut::before {content: "\e9d2";}
.i_tent::before {content: "\e9d3";}
.i_caravan::before {content: "\e9d4";}
.i_rv::before {content: "\e9d5";}
.i_camper::before {content: "\e9d6";}
.i_yacht::before {content: "\e9d7";}
.i_sailboat::before {content: "\e9d8";}
.i_speedboat::before {content: "\e9d9";}
.i_submarine::before {content: "\e9da";}
.i_cruise-ship::before {content: "\e9db";}
.i_ferry::before {content: "\e9dc";}
.i_canoe::before {content: "\e9dd";}
.i_kayak::before {content: "\e9de";}
.i_raft::before {content: "\e9df";}
.i_surfboard::before {content: "\e9e0";}
.i_skateboard::before {content: "\e9e1";}
.i_roller-skates::before {content: "\e9e2";}
.i_ice-skates::before {content: "\e9e3";}
.i_ski::before {content: "\e9e4";}
.i_snowboard::before {content: "\e9e5";}
.i_sled::before {content: "\e9e6";}
.i_toboggan::before {content: "\e9e7";}
.i_bicycle::before {content: "\e9e8";}
.i_motorcycle::before {content: "\e9e9";}
.i_scooter::before {content: "\e9ea";}
.i_moped::before {content: "\e9eb";}
.i_car::before {content: "\e9ec";}
.i_truck::before {content: "\e9ed";}
.i_van::before {content: "\e9ee";}
.i_bus::before {content: "\e9ef";}
.i_train::before {content: "\e9f0";}
.i_subway::before {content: "\e9f1";}
.i_tram::before {content: "\e9f2";}
.i_monorail::before {content: "\e9f3";}
.i_cable-car::before {content: "\e9f4";}
.i_funicular::before {content: "\e9f5";}
.i_elevator::before {content: "\e9f6";}
.i_escalator::before {content: "\e9f7";}
.i_stairs::before {content: "\e9f8";}
.i_ramp::before {content: "\e9f9";}
.i_ladder::before {content: "\e9fa";}
.i_step-ladder::before {content: "\e9fb";}
.i_scaffold::before {content: "\e9fc";}
.i_crane::before {content: "\e9fd";}
.i_forklift::before {content: "\e9fe";}
.i_bulldozer::before {content: "\e9ff";}
.i_excavator::before {content: "\ea00";}
.i_steam::before {content: "\ea01";}
.i_upd::before {content: "\ea02";}
.i_square-up::before {content: "\ea03";}
.i_catupd::before {content: "\ea04";}

/*--- ICON SIZES ---*/
.icon-xs {font-size: 12px;}
.icon-sm {font-size: 14px;}
.icon-md {font-size: 16px;}
.icon-lg {font-size: 18px;}
.icon-xl {font-size: 20px;}
.icon-xxl {font-size: 24px;}

/*--- ICON COLORS ---*/
.icon-primary {color: #4a84c4;}
.icon-secondary {color: #6c757d;}
.icon-success {color: #28a745;}
.icon-danger {color: #dc3545;}
.icon-warning {color: #ffc107;}
.icon-info {color: #17a2b8;}
.icon-light {color: #f8f9fa;}
.icon-dark {color: #343a40;}
.icon-muted {color: #6c757d;}

/*--- ICON ANIMATIONS ---*/
.icon-spin {animation: spin 1s linear infinite;}
.icon-pulse {animation: pulse 1s ease-in-out infinite;}
.icon-bounce {animation: bounce 1s ease-in-out infinite;}
.icon-flash {animation: flash 1s ease-in-out infinite;}
.icon-shake {animation: shake 1s ease-in-out infinite;}
.icon-tada {animation: tada 1s ease-in-out infinite;}
.icon-heartbeat {animation: heartbeat 1s ease-in-out infinite;}

@keyframes pulse {
    0%, 100% {transform: scale(1);}
    50% {transform: scale(1.1);}
}

@keyframes bounce {
    0%, 20%, 50%, 80%, 100% {transform: translateY(0);}
    40% {transform: translateY(-10px);}
    60% {transform: translateY(-5px);}
}

@keyframes flash {
    0%, 50%, 100% {opacity: 1;}
    25%, 75% {opacity: 0;}
}

@keyframes shake {
    0%, 100% {transform: translateX(0);}
    10%, 30%, 50%, 70%, 90% {transform: translateX(-5px);}
    20%, 40%, 60%, 80% {transform: translateX(5px);}
}

@keyframes tada {
    0% {transform: scale(1);}
    10%, 20% {transform: scale(0.9) rotate(-3deg);}
    30%, 50%, 70%, 90% {transform: scale(1.1) rotate(3deg);}
    40%, 60%, 80% {transform: scale(1.1) rotate(-3deg);}
    100% {transform: scale(1) rotate(0);}
}

@keyframes heartbeat {
    0% {transform: scale(1);}
    14% {transform: scale(1.3);}
    28% {transform: scale(1);}
    42% {transform: scale(1.3);}
    70% {transform: scale(1);}
} 