/* ================================
   ROOT COLORS (CHANGE FROM HERE)
================================ */
:root {
  --body-bg: #F9FAFB;
  --section-bg: #FFFFFF;
  --alternate-section:#F4F6FA ;

  --accent: #2563EB;
  --accent-hover: #1D4ED8;

  --text-main: #1F2937;
  --text-secondary: #3e4042;

  --card-bg: #FFFFFF;
  --card-text: #1F2937;

  --input-bg: #FFFFFF;
  --input-border: #D1D5DB;
  --input-focus: #2563EB;

  --footer-bg: #F3F4F6;
  --footer-text: #343536;
}



/* ================================
   GLOBAL STYLES
================================ */
body {
  font-family: "Poppins", sans-serif;
  background-color: var(--body-bg);
  color: var(--text-main);
  margin: 0;
  padding: 0;
}

/* ================================
   NAVBAR
================================ */
.navbar {
  background-color: var(--section-bg);
  box-shadow: 0 2px 8px rgba(0,0,0,0.08);
  position: sticky;
  top: 0;
  z-index: 999;
}
.logo{
  height: 90px;
  width: 90px;
}
.f-logo{
  height: 120px;
  width: 120px;
}
@media (min-width:320px) and (max-width:991px) {
  .logo{
    height: 70px;
  }
}
.navbar-brand {
  font-weight: bold;
  color: var(--accent) !important;
}

.nav-link {
  color: var(--text-main) !important;
  transition: color 0.3s;
}

.nav-link:hover {
  color: var(--accent-hover) !important;
}

.navbar-toggler-icon {
  filter: invert(0);
}

.navbar-toggler {
  border-color: var(--text-main) !important;
}


/* ================================
   HERO SECTION
================================ */
.hero {
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  background-image: url(assets/image/hero\ banner2.png );
  background-size: cover;
  background-position: center ;
  text-align: center;
  background-repeat: no-repeat;
  overflow: hidden;
 

  /* Hero Overlay to increase contrast */
  position: relative;
}
 /* @media  (max-width: 1000px) {
   .hero {
   
    background-image: url(assets/image/mobile\ banner.png);
   }
 } */
 @media  (min-width: 1001px) {
   .hero {
   
   background-image: url(assets/image/hero\ banner2.png );
   }
 }
/* ✔ Mobile: HASNAIN first line — AFZAL next line */
@media (max-width: 480px) {
  #afzalBreak {
    display: block !important;
  }
}

/* ✔ Desktop: both words same line */
@media (min-width: 481px) {
  #afzalBreak {
    display: inline !important;
  }
}
.hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,0.35); /* dark overlay to make text visible */
}

.hero * {
  position: relative;
  z-index: 2;
}

#typingTitle {
  font-size: 3rem;
  font-weight: bold;
  white-space: nowrap;
  overflow: hidden;
  margin-bottom: 10px;
  color: #ffffff !important;
}

.typing-text {
  font-size: 1.8rem;
  font-weight: 500;
  color: #ffffff !important;
}

#typingLoop {
  border-right: 3px solid var(--accent);
  padding-right: 5px;
}

.hero h1 {
  font-size: 3rem;
  font-weight: 700;
  color: #ffffff !important;
}

.hero p {
  font-size: 1.2rem;
  color: #f1f5f9 !important;
}

/* ================================
   BUTTON
================================ */
.btn-custom {
  background-color: var(--accent);
  border: none;
  color: #fff;
  padding: 10px 20px;
  border-radius: 5px;
  transition: background-color 0.3s;
}

.btn-custom:hover {
  background-color: var(--accent-hover);
}
/* ================================
   SERVICES SECTION
================================ */
.services{
  margin-top: 25px;
}
.service-card {
  background: var(--section-bg);
  border-radius: 12px;
  padding: 25px;
  text-align: center;
  transition: 0.4s ease;
  box-shadow: 0 4px 12px rgba(0,0,0,0.06);
  position: relative;
  overflow: hidden;
  cursor: pointer;
}

/* REMOVE extra top padding so image upar aa jaye */


/* LARGE IMAGE */
.service-img img {
  width: 100% !important;     /* ⚠ FINAL LARGE SIZE */
  height: 150px !important;    /* Fixed height for uniform look */
  object-fit: cover;           /* fills space perfectly */
  border-radius: 6px;          /* clean look */
  /* margin-bottom: 10px; */
  transition: 0.4s;
}

/* Hover zoom */
.service-card:hover img {
  transform: scale(1.15);
}

.service-card h4 {
  margin-top: 15px;
  font-weight: 600;
  color: var(--text-main);
}

.service-detail {
  opacity: 0;
  height: 0;
  margin-top: 15px;
  transition: 0.4s ease;
  color: var(--text-secondary);
}

/* HOVER EFFECT */
.service-card:hover {
  transform: translateY(-8px);
  box-shadow: 0 8px 18px rgba(0,0,0,0.10);
}

.service-card:hover img {
  transform: scale(1.15);
}

.service-card:hover .service-detail {
  opacity: 1;
  height: auto;
}
/* SERVICE CARD - OUTER GLOW EFFECT */
.service-card {
  background: var(--section-bg);
  border-radius: 12px;
  padding: 25px;
  text-align: center;
  transition: 0.4s ease;
  box-shadow: 0 4px 12px rgba(0,0,0,0.06);
  position: relative;
  cursor: pointer;

  /* JIS WAJAH SE GLOW ANDAR ATA THA — REMOVE */
  overflow: visible !important; 
  border: 2px solid transparent;
}

/* Outer Glow */
.service-card::before {
  content: "";
  position: absolute;

  /* Container se BAHR nikalne ke liye  */
  top: -10px;
  left: -10px;
  right: -10px;
  bottom: -10px;

  border-radius: 16px;
  border: 2px solid var(--accent);

  /* OUTER NEON GLOW */
  box-shadow: 
    0 0 25px rgba(37, 99, 235, 0.8),
    0 0 60px rgba(37, 99, 235, 0.6),
    0 0 90px rgba(37, 99, 235, 0.4);

  opacity: 0;
  transition: 0.35s ease;
  pointer-events: none;
}

.service-card:hover::before {
  opacity: 1;
}

/* IMAGE */
.service-img img {
  width: 80px;
  transition: 0.4s;
}

/* TITLE */
.service-card h4 {
  margin-top: 15px;
  font-weight: 600;
  color: var(--text-main);
}

/* DESCRIPTION */
.service-detail {
  opacity: 0;
  height: 0;
  margin-top: 15px;
  transition: 0.4s ease;
  color: var(--text-secondary);
}

.service-card:hover .service-detail {
  opacity: 1;
  height: auto;
}

.service-card:hover img {
  transform: scale(1.15);
}

.service-card:hover {
  transform: translateY(-8px);
}

/* ================================
   SECTIONS
================================ */
section {
  padding: 80px 0;
}

.services,.contact,
#projects{
  background-color: var(--body-bg);
}


.about,.skills,.faq-section{
  background-color: var(--alternate-section);
}
/* ================================
   SKILLS
================================ */
.skills .progress {
  height: 10px;
  background-color: #E5E7EB;
}

.skills .progress-bar {
  background-color: var(--accent);
}
.skills{
  margin-top: 100px;
}

/* ================================
   CARDS
================================ */
/* PROJECT GRID */
.project-container {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 25px;
    margin: auto;
    margin-top: 20px;
}

/* PROJECT CARD */
.project-card {
    background: #1a1a1a;
    border-radius: 12px;
    overflow: hidden;
    height: 400px;
    cursor: pointer;
    position: relative;
}

.image-wrapper {
    height: 399px;
    overflow: hidden;
    position: relative;
}

.image-wrapper img {
    width: 100%;
    height: auto;
    transform: translateY(0);
    transition: transform 7s linear;
    display: block;
}

/* DESKTOP hover effect */
.project-card:hover img {
    transform: translateY(calc(-100% + 400px));
}

/* MOBILE AUTO SCROLL */
@media (max-width: 768px) {

    .project-container {
        grid-template-columns: 1fr;
    }

    .image-wrapper img {
        animation: autoScroll 5s 1s infinite; 
    }

    @keyframes autoScroll {
        from { transform: translateY(0); }
        to { transform: translateY(calc(-100% + 400px)); }
    }
}

/* faq */


.faq-section h2 {
  font-size: 32px;
  color: #002b5b;
}

.faq-item {
  border-radius: 10px;
  /* overflow: hidden; */
}

.faq-question {
  font-size: 17px;
  font-weight: bold;
  color: #000000;
  transition: all 0.3s ease;
}

.faq-question:hover {
  background: #f4f4f4;
}

.faq-answer {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.4s ease;
  background: #fff;
}

.faq-answer p {
  color: #444;
  line-height: 1.6;
  padding: 15px 0;
  margin: 0;
  text-align: left;
}

.faq-question.active + .faq-answer {
  max-height: 300px;
}

.icon {
  font-size: 20px;
  color: var(--accent);
  transition: transform 0.3s;
}

.faq-question.active .icon {
  transform: rotate(45deg);
}
/* ================================
   CONTACT FORM
================================ */
.contact-wrapper {
        background: #fff;
        border-radius: 8px;
        padding: 30px;
        border: 1px solid #ddd;
      }

      /* Desktop view me vertical center */
      @media (min-width: 992px) {
        .equal-section {
          display: flex;
          align-items: center;
        }
      }


.ser-para {
  max-width: 500px;
  font-size: 20px;
}

@media (max-width: 768px) {
  .ser-para {
    max-width: 100%;
    font-size: 18px;
  }
}
/* ================================
   FOOTER
================================ */
footer {
  background-color: var(--footer-bg);
  padding: 50px 0;
}

.footer-link {
  color: var(--footer-text);
  text-decoration: none;
  transition: 0.3s;
}

.footer-link:hover {
  color: var(--accent);
}

.footer-social {
  color: var(--footer-text);
  transition: 0.3s;
}

.footer-social:hover {
  color: var(--accent);
  transform: translateY(-3px);
}

#f-brand {
  color: var(--accent) !important;
}

.social-icons a {
  color: var(--text-main);
  margin: 0 10px;
  font-size: 1.5rem;
  transition: color 0.3s;
}

.social-icons a:hover {
  color: var(--accent);
}

/* ================================
   ANIMATIONS
================================ */
.fade-in {
  opacity: 0;
  animation: fadeIn 1s ease-in-out forwards;
}

@keyframes fadeIn {
  to {
    opacity: 1;
  }
}
