/* ========================================
   Font Awesome Icons
   ======================================== */

@font-face {
  font-family: "Font Awesome 6 Brands";
  font-style: normal;
  font-weight: 400;
  font-display: block;
  src: url("../fonts/fa-brands-400.woff2") format("woff2"),
       url("../fonts/fa-brands-400.woff") format("woff"),
       url("../fonts/fa-brands-400.ttf") format("truetype");
}

@font-face {
  font-family: "Font Awesome 6 Free";
  font-style: normal;
  font-weight: 400;
  font-display: block;
  src: url("../fonts/fa-regular-400.woff2") format("woff2"),
       url("../fonts/fa-regular-400.woff") format("woff"),
       url("../fonts/fa-regular-400.ttf") format("truetype");
}

@font-face {
  font-family: "Font Awesome 6 Free";
  font-style: normal;
  font-weight: 900;
  font-display: block;
  src: url("../fonts/fa-solid-900.woff2") format("woff2"),
       url("../fonts/fa-solid-900.woff") format("woff"),
       url("../fonts/fa-solid-900.ttf") format("truetype");
}

@font-face {
  font-family: "IcoMoon";
  font-style: normal;
  font-weight: normal;
  font-display: block;
  src: url("../fonts/icomoon.ttf") format("truetype");
}

/* Font Awesome Base */
.fa, .fas, .far, .fab {
  font-family: "Font Awesome 6 Free", "Font Awesome 6 Brands", "IcoMoon";
  font-weight: 900;
}

.fa, .fas {
  font-weight: 900;
}

.far {
  font-weight: 400;
}

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

/* IcoMoon Icons */
.icon {
  font-family: "IcoMoon";
  font-style: normal;
  font-weight: normal;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* Common Icons */
.fa-calendar-alt::before { content: "\f073"; }
.fa-users::before { content: "\f0c0"; }
.fa-heart::before { content: "\f004"; }
.fa-star::before { content: "\f005"; }
.fa-check-circle::before { content: "\f058"; }
.fa-phone::before { content: "\f095"; }
.fa-envelope::before { content: "\f0e0"; }
.fa-map-marker-alt::before { content: "\f3c5"; }
.fa-clock::before { content: "\f017"; }
.fa-graduation-cap::before { content: "\f19d"; }
.fa-trophy::before { content: "\f091"; }
.fa-certificate::before { content: "\f0a3"; }
.fa-handshake::before { content: "\f2b5"; }
.fa-globe::before { content: "\f0ac"; }
.fa-book::before { content: "\f02d"; }
.fa-comments::before { content: "\f086"; }
.fa-question-circle::before { content: "\f059"; }
.fa-info-circle::before { content: "\f05a"; }
.fa-arrow-right::before { content: "\f061"; }
.fa-arrow-left::before { content: "\f060"; }
.fa-play::before { content: "\f04b"; }
.fa-pause::before { content: "\f04c"; }
.fa-bars::before { content: "\f0c9"; }
.fa-times::before { content: "\f00d"; }
.fa-search::before { content: "\f002"; }
.fa-share::before { content: "\f064"; }
.fa-facebook::before { content: "\f09a"; }
.fa-instagram::before { content: "\f16d"; }
.fa-twitter::before { content: "\f099"; }
.fa-youtube::before { content: "\f167"; }
.fa-linkedin::before { content: "\f08c"; }
.fa-whatsapp::before { content: "\f232"; }
.fa-telegram::before { content: "\f2c6"; }
.fa-snapchat::before { content: "\f2ab"; }
.fa-tiktok::before { content: "\e07b"; }

/* Icon Sizes */
.fa-xs { font-size: 0.75em; }
.fa-sm { font-size: 0.875em; }
.fa-lg { font-size: 1.33333em; line-height: 0.75em; vertical-align: -0.0667em; }
.fa-xl { font-size: 1.5em; }
.fa-2xl { font-size: 2em; }
.fa-3xl { font-size: 3em; }
.fa-4xl { font-size: 4em; }
.fa-5xl { font-size: 5em; }

/* Monochrome Icon Colors */
.icon-primary { color: var(--dark-blue); }
.icon-secondary { color: var(--middle-blue); }
.icon-accent { color: var(--light-blue); }
.icon-light { color: var(--white); }
.icon-dark { color: var(--black); }
.icon-muted { color: var(--gray-medium); }

/* Monochrome Icon Backgrounds */
.icon-bg-primary { background-color: var(--dark-blue); color: var(--white); }
.icon-bg-secondary { background-color: var(--middle-blue); color: var(--white); }
.icon-bg-accent { background-color: var(--light-blue); color: var(--dark-blue); }
.icon-bg-light { background-color: var(--white); color: var(--dark-blue); }
.icon-bg-dark { background-color: var(--black); color: var(--white); }

/* Icon Circles */
.icon-circle {
  width: 60px;
  height: 60px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.5rem;
  margin: 0 auto var(--spacing-sm);
}

.icon-circle-sm {
  width: 40px;
  height: 40px;
  font-size: 1rem;
}

.icon-circle-lg {
  width: 80px;
  height: 80px;
  font-size: 2rem;
}

.icon-circle-xl {
  width: 100px;
  height: 100px;
  font-size: 2.5rem;
}

/* Icon Animations */
.icon-bounce {
  animation: iconBounce 2s infinite;
}

.icon-pulse {
  animation: iconPulse 2s infinite;
}

.icon-rotate {
  animation: iconRotate 2s linear infinite;
}

@keyframes iconBounce {
  0%, 20%, 50%, 80%, 100% {
    transform: translateY(0);
  }
  40% {
    transform: translateY(-10px);
  }
  60% {
    transform: translateY(-5px);
  }
}

@keyframes iconPulse {
  0% {
    transform: scale(1);
  }
  50% {
    transform: scale(1.1);
  }
  100% {
    transform: scale(1);
  }
}

@keyframes iconRotate {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}

/* Hover Effects */
.icon-hover-scale:hover {
  transform: scale(1.1);
  transition: transform var(--transition-fast);
}

.icon-hover-rotate:hover {
  transform: rotate(10deg);
  transition: transform var(--transition-fast);
}

.icon-hover-bounce:hover {
  animation: iconBounce 0.6s ease;
}
