/* =====================

   RESET & BASE

===================== */

* {

  margin: 0;

  padding: 0;

  box-sizing: border-box;

}

body {

  font-family: Arial, sans-serif;

  line-height: 1.6;

  color: #222;

  background: #ffffff;

}



/* =====================

   NAVBAR (Dark Blue)

===================== */

header {

  position: fixed;

  width: 100%;

  top: 0;

  background: #15333a;

  box-shadow: 0 2px 8px rgba(21, 51, 58, 0.5);

  z-index: 999;

  transition: background 0.3s ease-in-out;

}

header.scrolled {

  background: rgba(21, 51, 58, 0.95);

  backdrop-filter: blur(8px);

}

.navbar {

  display: flex;

  justify-content: space-between;

  align-items: center;

  padding: 0px 10%;

}

.logo img {

  max-height: 90px;

  width: auto;

  transition: transform 0.3s ease;

}

.logo img:hover {

  transform: scale(1.08);

}

.nav-links {

  display: flex;

  list-style: none;

  gap: 25px;

}

.nav-links a {

  text-decoration: none;

  color: #ffffff;

  font-weight: 500;

  padding: 8px 16px;

  border-radius: 6px;

  transition: all 0.3s ease;

}

.nav-links a:hover {

  background: #334146;

  box-shadow: 0 4px 12px rgba(51, 65, 70, 0.4);

  transform: translateY(-2px);

}

.nav-links a.active {

  background: #47606a;

  color: #fff;

  box-shadow: 0 4px 12px rgba(71, 96, 106, 0.5);

}

.nav-links .btn {

  background: linear-gradient(135deg, #15333a, #47606a);

  color: #fff !important;

  padding: 10px 24px;

  border-radius: 25px;

  font-weight: 600;

  text-decoration: none;

  transition: all 0.3s ease;

  box-shadow: 0 4px 10px rgba(21, 51, 58, 0.4);

  animation: pulseBtn 1.8s infinite ease-in-out;

}

.nav-links .btn:hover {

  background: linear-gradient(135deg, #47606a, #15333a);

  transform: translateY(-2px) scale(1.05);

  box-shadow: 0 6px 15px rgba(51, 65, 70, 0.5);

  animation: none;

}

@keyframes pulseBtn {

  0% { transform: scale(1); box-shadow: 0 0 0 0 rgba(71, 96, 106, 0.6); }

  50% { transform: scale(1.08); box-shadow: 0 0 15px 5px rgba(94, 123, 135, 0.4); }

  100% { transform: scale(1); box-shadow: 0 0 0 0 rgba(71, 96, 106, 0.6); }

}

.hamburger {

  display: none;

  cursor: pointer;

  font-size: 1.5rem;

  color: #fff;

}





/* ================================

   🌈 NAVIGATION HOVER GRADIENT

================================ */

.navbar a {

  position: relative;

  display: inline-block;

  padding: 8px 14px;

  color: #fff;

  text-decoration: none;

  font-weight: 500;

  transition: color 0.3s ease;

  z-index: 1;

}



.navbar a::before {

  content: '';

  position: absolute;

  inset: 0;

  border-radius: 8px;

  background: linear-gradient(135deg, #5ee7df, #b490ca);

  opacity: 0;

  transform: scaleX(0.6);

  transform-origin: center;

  transition: all 0.4s ease;

  z-index: -1;

}



.navbar a:hover::before {

  opacity: 1;

  transform: scaleX(1);

}



.navbar a:hover {

  color: #fff;

}



/* Active Link Style */

.navbar a.active::before {

  opacity: 1;

  transform: scaleX(1);

  background: linear-gradient(135deg, #6ee7b7, #3b82f6);

}



.navbar a.active {

  font-weight: 600;

  color: #fff;

}



.navbar .nav-link {

  position: relative;

  display: inline-block;

  padding: 8px 14px;

  color: #fff;

  text-decoration: none;

  font-weight: 500;

  transition: color 0.3s ease;

  z-index: 1;

}



.navbar .nav-link::before {

  content: '';

  position: absolute;

  inset: 0;

  border-radius: 8px;

  background: linear-gradient(135deg, #5ee7df, #b490ca);

  opacity: 0;

  transform: scaleX(0.6);

  transform-origin: center;

  transition: all 0.4s ease;

  z-index: -1;

}



.navbar .nav-link:hover::before {

  opacity: 1;

  transform: scaleX(1);

}



.navbar .nav-link:hover {

  color: #fff;

}



/* ✅ ACTIVE LINK */

.navbar .nav-link.active::before {

  opacity: 1;

  transform: scaleX(1);

  background: linear-gradient(135deg, #6ee7b7, #3b82f6);

}



.navbar .nav-link.active {

  font-weight: 600;

  color: #fff;

}







/* =====================

   HERO SECTION (Dark Animated)

===================== */

.hero {

  height: 100vh;

  background: linear-gradient(135deg, #15333a, #334146, #47606a);

  background-size: 300% 300%;

  animation: gradientShift 10s ease infinite;

  display: flex;

  justify-content: center;

  align-items: center;

  text-align: center;

  padding: 0 20px;

  overflow: hidden;

  color: #ffffff;

}

@keyframes gradientShift {

  0% { background-position: 0% 50%; }

  50% { background-position: 100% 50%; }

  100% { background-position: 0% 50%; }

}

.hero h1 {

  font-size: 3rem;

  color: #ffffff;

  font-weight: 700;

  animation: fadeSlide 2s ease forwards;

}

.hero h1 span {

  color: #5e7b87;

}

@keyframes fadeSlide {

  0% { opacity: 0; transform: translateY(-30px); }

  100% { opacity: 1; transform: translateY(0); }

}

.hero p {

  margin: 20px 0;

  color: #e0e0e0;

  font-size: 1.1rem;

  opacity: 0;

  transform: translateX(-40px);

  transition: all 1s ease;

}

.hero p.visible {

  opacity: 1;

  transform: translateX(0);

}

.hero-buttons .btn {

  background: linear-gradient(135deg, #334146, #47606a);

  color: #fff;

  border-radius: 30px;

  padding: 12px 28px;

  font-weight: bold;

  text-decoration: none;

  animation: pulseBtn 1.8s infinite ease-in-out;

  transition: transform 0.3s ease;

}

.hero-buttons .btn:hover {

  background: linear-gradient(135deg, #47606a, #334146);

  transform: scale(1.05);

}



/* Hero subtext animation */

#hero-subtext.animate {

  opacity: 1;

  animation: fadeSlideSub 3s infinite;

}

@keyframes fadeSlideSub {

  0% { transform: translateX(-20px); opacity: 0.5; }

  50% { transform: translateX(20px); opacity: 1; }

  100% { transform: translateX(-20px); opacity: 0.5; }

}



/* Particles canvas */

#particles {

  position: absolute;

  top: 0; left: 0;

  width: 100%; height: 100%;

  z-index: 0;

}

.hero-content {

  position: relative;

  z-index: 1;

}









/* =====================

   🧭 BUTTONS (Global)

===================== */

.btn-service {

  background: linear-gradient(135deg, #15333a, #47606a);

  color: #fff;

  padding: 12px 28px;

  border-radius: 30px;

  font-weight: bold;

  text-decoration: none;

  display: inline-flex;

  align-items: center;

  gap: 8px;

  transition: all 0.4s ease;

  box-shadow: 0 4px 10px rgba(0,0,0,0.2);

}

.btn-service:hover {

  background: linear-gradient(135deg, #47606a, #15333a);

  transform: scale(1.05);

  box-shadow: 0 6px 15px rgba(0,0,0,0.3);

}



.btn-contact {

  border: 2px solid #47606a;

  padding: 12px 28px;

  border-radius: 30px;

  font-weight: bold;

  text-decoration: none;

  color: #fbfeff66;

  margin-left: 10px;

  transition: all 0.3s ease;

}

.btn-contact:hover {

  background: #47606a;

  color: #fff;

  transform: scale(1.05);

}



.btn-submit {

  background: linear-gradient(135deg, #15333a, #47606a);

  color: #fff;

  padding: 12px;

  border-radius: 8px;

  font-size: 1rem;

  font-weight: bold;

  border: none;

  width: 100%;

  cursor: pointer;

  transition: 0.3s;

}

.btn-submit:hover {

  background: linear-gradient(135deg, #47606a, #15333a);

  box-shadow: 0 4px 12px rgba(0,0,0,0.3);

  transform: translateY(-2px);

}



/* =====================

   ✨ SECTION BASE

===================== */

section {

  padding: 80px 10%;

  text-align: center;

}

.about .cards,

.services .cards {

  display: grid;

  grid-template-columns: repeat(auto-fit,minmax(250px,1fr));

  gap: 20px;

  margin-top: 40px;

}



/* =====================

   🃏 CARD STYLING

===================== */

.card {

  background: #ffffff;

  padding: 30px;

  border-radius: 10px;

  box-shadow: 0 4px 10px rgba(0,0,0,0.08);

  transition: 0.3s;

  animation: fadeInUp 1s;

}

.card:hover {

  transform: translateY(-8px);

  box-shadow: 0 8px 20px rgba(0,0,0,0.15);

}

.card i {

  font-size: 2rem;

  color: #5e7b87;

  margin-bottom: 15px;

}



/* =====================

   🏆 MISSION SECTION

===================== */

.mission {

  margin-top: 40px;

  background: linear-gradient(135deg, #15333a, #334146);

  color: #fff;

  padding: 30px;

  border-radius: 10px;

  box-shadow: 0 4px 15px rgba(21,51,58,0.4);

}

.mission h2 {

  font-size: 1.8rem;

  margin-bottom: 15px;

}

.mission p {

  font-size: 1rem;

  line-height: 1.7;

  color: #e0e0e0;

}





/* =====================

   📩 CONTACT SECTION

===================== */

.contact {

  background: #f4f6f7;

  padding: 80px 10%;

}



.contact-container {

  display: flex;

  gap: 50px;

  margin-top: 40px;

  align-items: flex-start;

}



/* Left Side */

.contact-left {

  flex: 1;

  display: flex;

  flex-direction: column;

  gap: 25px;

}



/* Contact Info Boxes */

.contact-info {

  display: flex;

  flex-direction: column;

  gap: 15px;

}



.contact-info .info-box {

  background: #fff;

  padding: 18px 22px;

  border-radius: 10px;

  box-shadow: 0 4px 12px rgba(0,0,0,0.08);

  display: flex;

  align-items: center;

  gap: 14px;

  transition: all 0.3s ease;

}



.contact-info .info-box i {

  color: #47606a;

  font-size: 1.4rem;

  min-width: 24px;

  text-align: center;

}



.contact-info .info-box a,

.contact-info .info-box span {

  font-size: 1rem;

  color: #333;

  text-decoration: none;

  transition: color 0.3s ease;

}



.contact-info .info-box:hover {

  transform: translateX(5px);

  box-shadow: 0 6px 18px rgba(0,0,0,0.12);

}



.contact-info .info-box:hover a {

  color: #15333a;

}



/* Map Container */

.map-container {

  border-radius: 10px;

  overflow: hidden;

  box-shadow: 0 4px 15px rgba(0,0,0,0.1);

}



/* Right Side: Contact Form */

.contact-form {

  flex: 1.2;

  background: #fff;

  padding: 40px;

  border-radius: 12px;

  box-shadow: 0 6px 20px rgba(0,0,0,0.1);

  display: flex;

  flex-direction: column;

  gap: 20px;

}



.contact-form .form-group {

  display: flex;

  flex-direction: column;

  gap: 8px;

}



.contact-form input,

.contact-form textarea {

  width: 100%;

  padding: 14px 16px;

  border: 1px solid #ccc;

  border-radius: 6px;

  font-size: 1rem;

  transition: border 0.3s ease, box-shadow 0.3s ease;

}



.contact-form input:focus,

.contact-form textarea:focus {

  border-color: #47606a;

  box-shadow: 0 0 8px rgba(71, 96, 106, 0.3);

  outline: none;

}



.contact-form textarea {

  min-height: 120px;

  resize: vertical;

}



.contact-form button {

  background: linear-gradient(135deg,#15333a,#47606a);

  color: #fff;

  font-weight: bold;

  padding: 14px;

  border: none;

  border-radius: 8px;

  cursor: pointer;

  transition: all 0.3s ease;

}



.contact-form button:hover {

  background: linear-gradient(135deg,#47606a,#15333a);

  transform: translateY(-2px);

}



/* Button icon animation */

.contact-form button i {

  margin-left: 8px;

  transition: transform 0.3s ease;

  animation: planeBounce 1.5s infinite ease-in-out;

}

@keyframes planeBounce {

  0%, 100% { transform: translateX(0) rotate(0); }

  50% { transform: translateX(4px) rotate(10deg); }

}



.contact-form button:hover i {

  transform: translateX(5px) rotate(10deg);

}



/* =====================

   🌐 FOOTER SECTION

===================== */

/* =======================

   🌐 Footer Styling

======================= */

footer {

  background: #0f2c33;

  color: #fff;

  padding: 50px 5% 20px;

}



.footer-container {

  display: grid;

  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));

  gap: 30px;

  max-width: 1200px;

  margin: 0 auto;

}



.footer-col h4 {

  font-weight: 600;

  margin-bottom: 15px;

  color: #b5e0e4;

}



.footer-col ul {

  list-style: none;

  padding: 0;

  margin: 0;

}



.footer-col ul li {

  margin-bottom: 8px;

}



.footer-col ul li a {

  color: #d9e6e8;

  text-decoration: none;

  transition: color 0.3s ease;

}



.footer-col ul li a:hover {

  color: #5ee7df;

}



.footer-logo {

  width: 120px;

  margin-bottom: 10px;

  filter: brightness(1.2);

}



.footer-bottom {

  text-align: center;

  margin-top: 30px;

  font-size: 0.9rem;

  color: #ccc;

  border-top: 1px solid rgba(255, 255, 255, 0.1);

  padding-top: 15px;

}



/* ============================

   ✨ Social Media Icons 3D Hover

============================ */

.social-icons {

  display: flex;

  gap: 12px;

  margin-top: 10px;

}



.social-icon {

  display: inline-flex;

  align-items: center;

  justify-content: center;

  width: 38px;

  height: 38px;

  background: linear-gradient(135deg, #5ee7df, #b490ca);

  border-radius: 50%;

  color: white;

  font-size: 18px;

  text-decoration: none;

  box-shadow: 0 4px 12px rgba(94, 231, 223, 0.5);

  transform: translateY(0) scale(1);

  transition: transform 0.4s cubic-bezier(0.25, 1.3, 0.5, 1), box-shadow 0.3s ease;

}



.social-icon:hover {

  transform: translateY(-6px) scale(1.15) rotate(8deg);

  box-shadow: 0 8px 20px rgba(94, 231, 223, 0.8);

}



/* =====================

   ⬆️ BACK TO TOP

===================== */

#backToTop {

  position: fixed;

  bottom: 30px;

  right: 30px;

  background: linear-gradient(135deg,#15333a,#47606a);

  color: #fff;

  border: none;

  padding: 12px 15px;

  border-radius: 50%;

  cursor: pointer;

  font-size: 18px;

  display: none;

  box-shadow: 0 4px 10px rgba(0,0,0,0.3);

  transition: all 0.3s ease;

  z-index: 1000;

}

#backToTop:hover {

  background: linear-gradient(135deg,#47606a,#15333a);

  transform: translateY(-3px);

}







/* ===============================

   📱 RESPONSIVE ADJUSTMENTS

=============================== */

@media(max-width: 1024px) {

  .navbar {

    padding: 15px 5%;

  }

  .hero h1 {

    font-size: 2.4rem;

  }

  .hero p {

    font-size: 1rem;

  }

}



@media(max-width: 768px) {

  .nav-links {

    display: none;

    flex-direction: column;

    background: #15333a;

    position: absolute;

    top: 70px;

    right: 10px;

    width: 200px;

    padding: 10px 0;

    box-shadow: 0 4px 12px rgba(0,0,0,0.15);

    border-radius: 8px;

  }

  .nav-links a {

    font-size: 0.95rem;

    padding: 10px 15px;

    display: block;

  }

  .nav-links .btn {

    margin: 10px auto;

    padding: 8px 18px;

    font-size: 0.9rem;

    border-radius: 20px;

  }

  .hamburger {

    display: block;

    z-index: 1001;

  }



  .hero {

    flex-direction: column;

    padding: 120px 15px 60px;

    height: auto;

  }

  .hero h1 {

    font-size: 2rem;

    line-height: 1.3;

  }

  .hero p {

    font-size: 1rem;

    line-height: 1.5;

    margin-bottom: 15px;

  }



  .contact-container {

    flex-direction: column;

    gap: 30px;

  }

}



@media(max-width: 480px) {

  .hero h1 {

    font-size: 1.6rem;

  }

  .hero p {

    font-size: 0.95rem;

  }

  .btn-service,

  .btn-contact {

    padding: 10px 20px;

    font-size: 0.9rem;

  }

}





/* ✅ Fix modal showing at bottom */

.project-modal {

  display: none;

  position: fixed;

  inset: 0;

  background: rgba(0,0,0,0.7);

  justify-content: center;

  align-items: center;

  z-index: 10000;

}

.project-modal.show {

  display: flex;

}



/* ✅ Footer padding fix (broken image issue) */

footer {

  position: relative;

  z-index: 1;

}



/* ✅ Placeholder image fallback styling */

.modal-img {

  max-width: 100%;

  height: auto;

  object-fit: cover;

  border-radius: 10px;

}






