/* Font Awesome Subset - Only icons used in portfolio */
/* Self-hosted minimal version for professional developer portfolio */

@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");
}

@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");
}

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

/* Solid icons */
.fa-solid, .fas, .fa {
  font-family: "Font Awesome 6 Free";
  font-weight: 900;
}

/* Brand icons */
.fa-brands, .fab {
  font-family: "Font Awesome 6 Brands";
  font-weight: 400;
}

/* Navigation Icons */
.fa-bars::before { content: "\f0c9"; }
.fa-user::before { content: "\f007"; }
.fa-chalkboard-user::before { content: "\f51c"; }
.fa-pencil::before { content: "\f303"; }
.fa-address-card::before { content: "\f2bb"; }

/* Action Icons */
.fa-calendar-check::before { content: "\f274"; }
.fa-envelope::before { content: "\f0e0"; }
.fa-location-dot::before { content: "\f3c5"; }
.fa-link::before { content: "\f0c1"; }
.fa-newspaper::before { content: "\f1ea"; }

/* Content Icons */
.fa-share::before { content: "\f064"; }
.fa-play::before { content: "\f04b"; }
.fa-file-powerpoint::before { content: "\f1c4"; }
.fa-presentation-screen::before { content: "\f685"; }

/* Brand Icons */
.fa-github::before { content: "\f09b"; }
.fa-linkedin::before { content: "\f08c"; }
.fa-mastodon::before { content: "\f4f6"; }
.fa-slack::before { content: "\f198"; }
.fa-x-twitter::before { content: "\e61b"; }
.fa-youtube::before { content: "\f167"; }

/* Custom icons for missing ones */
.fa-bluesky::before { 
  content: "🦋"; 
  font-family: system-ui, -apple-system, sans-serif;
}

.fa-slides::before { content: "\f1c4"; } /* PowerPoint file icon */

/* Icon spacing and styling */
.fa, .fas, .fa-solid, .fab, .fa-brands {
  margin-right: 0.3em;
}

/* Specific adjustments */
.fa-bars {
  margin-right: 0;
  font-size: 1.2em;
}

/* Ensure proper alignment */
.w3-bar .fa, .w3-button .fa {
  vertical-align: middle;
}

/* Mobile navigation specific styling */
.mobile-nav-toggle .fa {
  margin-right: 0;
}

/* Timeline and content icons */
.timeline-item .fa,
.event-meta .fa {
  margin-right: 0.25em;
}

/* Contact section icons */
#contact .fa {
  margin-right: 0.4em;
  color: inherit;
}

/* CTA Button fixes for consistent appearance */
.w3-button.w3-large.w3-block {
  min-height: 54px !important;
  height: 54px;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  text-align: center;
  line-height: 1.3;
  padding: 12px 24px !important;
  box-sizing: border-box;
  white-space: nowrap;
  overflow: hidden;
}

/* CTA Button icons */
.w3-button.w3-large.w3-block .fa {
  margin-right: 8px;
  vertical-align: middle;
  display: inline-block;
  width: 16px;
  height: 16px;
  flex-shrink: 0;
  text-align: center;
  line-height: 16px;
  font-size: 14px;
}

/* Ensure text doesn't wrap in CTA buttons */
.w3-button.w3-large.w3-block {
  font-size: 16px !important;
  font-weight: 500;
}

/* Fix for mobile responsiveness */
@media (max-width: 600px) {
  .w3-button.w3-large.w3-block {
    font-size: 15px !important;
    min-height: 50px !important;
    height: 50px;
  }
  
  .w3-button.w3-large.w3-block .fa {
    font-size: 13px;
    margin-right: 6px;
  }
}