/* ===================================== */
/* RESET */
/* ===================================== */

*{
  margin:0;
  padding:0;
  box-sizing:border-box;
}

html{
  scroll-behavior:smooth;
}

body{
  font-family:'Inter',sans-serif;
  background:#ffffff;
  color:#1e293b;
  overflow-x:hidden;
  transition:0.4s ease;
}

body.dark-mode{
  background:#0f172a;
  color:#f1f5f9;
}

img{
  width:100%;
  display:block;
}

.container{
  width:90%;
  max-width:1200px;
  margin:auto;
}

/* ===================================== */
/* PRELOADER */
/* ===================================== */

#preloader{
  position:fixed;
  inset:0;
  background:#0f172a;
  z-index:999999;

  display:flex;
  align-items:center;
  justify-content:center;

  transition:0.5s;
}

.loader{
  width:70px;
  height:70px;

  border:6px solid rgba(255,255,255,0.1);
  border-top:6px solid #3b82f6;

  border-radius:50%;

  animation:spin 1s linear infinite;
}

@keyframes spin{
  to{
    transform:rotate(360deg);
  }
}

/* ===================================== */
/* CUSTOM CURSOR */
/* ===================================== */

.cursor{
  position:fixed;

  width:18px;
  height:18px;

  border-radius:50%;

  background:rgba(59,130,246,0.7);

  transform:translate(-50%,-50%);

  pointer-events:none;

  z-index:99999;

  backdrop-filter:blur(3px);
}

/* ===================================== */
/* PROGRESS BAR */
/* ===================================== */

.progress-bar{
  position:fixed;

  top:0;
  left:0;

  width:0%;
  height:4px;

  background:linear-gradient(
    90deg,
    #3b82f6,
    #06b6d4
  );

  z-index:999999;
}

/* ===================================== */
/* NAVBAR */
/* ===================================== */

.navbar{
  position:fixed;
  top:0;
  width:100%;

  z-index:999;

  background:rgba(255,255,255,0.75);

  backdrop-filter:blur(14px);

  border-bottom:1px solid rgba(255,255,255,0.15);

  transition:0.4s;
}

body.dark-mode .navbar{
  background:rgba(15,23,42,0.8);
}

.navbar.scrolled{
  box-shadow:0 10px 35px rgba(0,0,0,0.1);
}

.navbar .container{
  display:flex;
  justify-content:space-between;
  align-items:center;

  padding:1rem 0;
}

.logo{
  font-size:2rem;
  font-weight:700;
  color:#1e3a8a;
}

.logo span{
  color:#3b82f6;
}

body.dark-mode .logo{
  color:#ffffff;
}

.nav-links{
  display:flex;
  gap:2rem;
  list-style:none;
}

.nav-links a{
  text-decoration:none;
  color:#1e293b;
  font-weight:500;
  position:relative;
  transition:0.3s;
}

body.dark-mode .nav-links a{
  color:#f1f5f9;
}

.nav-links a:hover,
.nav-links a.active{
  color:#3b82f6;
}

.nav-links a::after{
  content:'';

  position:absolute;

  left:0;
  bottom:-6px;

  width:0%;
  height:3px;

  background:#3b82f6;
  border-radius:10px;

  transition:0.3s;
}

.nav-links a:hover::after,
.nav-links a.active::after{
  width:100%;
}

/* ===================================== */
/* DARK BUTTON */
/* ===================================== */

.dark-btn{
  border:none;

  width:45px;
  height:45px;

  border-radius:50%;

  background:#3b82f6;
  color:white;

  cursor:pointer;

  font-size:1rem;

  transition:0.3s;
}

.dark-btn:hover{
  transform:rotate(180deg);
}

/* ===================================== */
/* HAMBURGER */
/* ===================================== */

.hamburger{
  display:none;
  flex-direction:column;
  gap:5px;
  cursor:pointer;
}

.hamburger span{
  width:28px;
  height:3px;

  background:#1e293b;

  border-radius:10px;

  transition:0.3s;
}

body.dark-mode .hamburger span{
  background:#ffffff;
}

/* ===================================== */
/* HERO */
/* ===================================== */

.hero{
  min-height:100vh;

  display:flex;
  align-items:center;

  position:relative;
  overflow:hidden;

  padding:130px 0 80px;

  background:
    linear-gradient(
      135deg,
      rgba(15,23,42,0.92),
      rgba(30,41,59,0.9)
    ),
    url('../images/herobg.jpeg')
    center/cover no-repeat;

  color:white;
}

.hero-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:4rem;
  align-items:center;
}

.hero-text h1{
  font-size:4rem;
  line-height:1.1;
  margin-bottom:1.5rem;

  background:linear-gradient(
    90deg,
    #ffffff,
    #60a5fa,
    #ffffff
  );

  background-size:200% auto;

  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;

  animation:textGradient 4s linear infinite;
}

@keyframes textGradient{
  to{
    background-position:200% center;
  }
}

.subtitle{
  font-size:1.2rem;
  margin-bottom:2rem;
}

.hero-buttons{
  display:flex;
  gap:1rem;
  flex-wrap:wrap;

  margin-bottom:2rem;
}

.btn{
  border:none;
  cursor:pointer;

  border-radius:50px;

  font-weight:600;

  transition:0.4s;

  position:relative;
  overflow:hidden;
}

.primary-btn{
  padding:15px 35px;

  background:#f97316;
  color:white;

  box-shadow:
    0 0 20px rgba(249,115,22,0.5);
}

.primary-btn:hover{
  transform:translateY(-5px);

  box-shadow:
    0 0 35px rgba(249,115,22,0.8);
}

.secondary-btn{
  padding:15px 35px;

  border:2px solid white;

  background:transparent;
  color:white;
}

.secondary-btn:hover{
  background:white;
  color:#1e293b;
}

.hero-visual img{
  border-radius:25px;

  box-shadow:0 25px 60px rgba(0,0,0,0.45);

  animation:float 5s ease-in-out infinite;
}

@keyframes float{
  0%{
    transform:translateY(0px);
  }

  50%{
    transform:translateY(-20px);
  }

  100%{
    transform:translateY(0px);
  }
}

/* ===================================== */
/* FLOATING ICONS */
/* ===================================== */

.floating-shape{
  position:absolute;

  font-size:4rem;

  color:white;
  opacity:0.08;

  animation:floatShape 8s infinite ease-in-out;
}

@keyframes floatShape{

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

}

/* ===================================== */
/* PARTICLES */
/* ===================================== */

.particles::before,
.particles::after{
  content:'';

  position:absolute;

  width:300px;
  height:300px;

  border-radius:50%;

  background:rgba(255,255,255,0.05);

  animation:particleFloat 10s infinite ease-in-out;
}

.particles::after{
  right:10%;
  top:20%;
  animation-delay:5s;
}

@keyframes particleFloat{

  50%{
    transform:translateY(-40px);
  }

}

/* ===================================== */
/* SECTIONS */
/* ===================================== */

section{
  padding:100px 0;
}

.about,
.services{
  background:#f8fafc;
}

body.dark-mode .about,
body.dark-mode .services{
  background:#111827;
}

h2{
  text-align:center;

  font-size:2.8rem;

  color:#1e3a8a;

  margin-bottom:1rem;
}

body.dark-mode h2{
  color:white;
}

.section-subtitle{
  text-align:center;

  max-width:650px;
  margin:0 auto 4rem;

  color:#64748b;
}

body.dark-mode .section-subtitle{
  color:#cbd5e1;
}

/* ===================================== */
/* ABOUT */
/* ===================================== */

.about-grid{
  display:grid;
  grid-template-columns:1.1fr 1fr;
  gap:4rem;
  align-items:center;
}

.profile-img img{
  border-radius:25px;

  box-shadow:0 15px 40px rgba(0,0,0,0.12);

  transition:0.5s;
}

.profile-img img:hover{
  transform:scale(1.05);
}

/* ===================================== */
/* SERVICES */
/* ===================================== */

.services-grid,
.projects-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(320px,1fr));
  gap:2rem;
}

.service-card,
.project-card{
  background:rgba(255,255,255,0.65);

  backdrop-filter:blur(15px);

  border:1px solid rgba(255,255,255,0.2);

  border-radius:25px;

  overflow:hidden;

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

  transition:0.5s;
}

body.dark-mode .service-card,
body.dark-mode .project-card{
  background:rgba(30,41,59,0.6);
}

.service-card{
  padding:2.5rem 2rem;
  text-align:center;
}

.service-card:hover,
.project-card:hover{
  transform:
    perspective(1000px)
    rotateX(4deg)
    rotateY(-4deg)
    translateY(-10px);

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

.service-card i{
  font-size:3rem;
  color:#3b82f6;

  margin-bottom:1.5rem;

  transition:0.5s;
}

.service-card:hover i{
  transform:rotateY(180deg) scale(1.1);
}

.project-img{
  overflow:hidden;
}

.project-img img{
  height:230px;
  object-fit:cover;

  transition:0.6s;
}

.project-card:hover .project-img img{
  transform:scale(1.1);
}

.project-info{
  padding:1.5rem;
}

.tech{
  color:#3b82f6;
  margin:0.5rem 0 1rem;
}

/* ===================================== */
/* CONTACT */
/* ===================================== */

.contact-grid{
  display:grid;
  grid-template-columns:1fr 1.2fr;
  gap:4rem;
}

.contact-form input,
.contact-form textarea{
  width:100%;

  padding:15px;
  margin-bottom:1rem;

  border:none;

  border-radius:12px;

  background:#f1f5f9;

  font-family:inherit;
}

body.dark-mode .contact-form input,
body.dark-mode .contact-form textarea{
  background:#1e293b;
  color:white;
}

.social-links{
  display:flex;
  gap:1rem;
  margin-top:1rem;
}

.social-links a{
  width:45px;
  height:45px;

  border-radius:50%;

  background:#3b82f6;
  color:white;

  display:flex;
  align-items:center;
  justify-content:center;

  text-decoration:none;

  transition:0.4s;
}

.social-links a:hover{
  transform:
    translateY(-8px)
    rotate(8deg);
}

/* ===================================== */
/* PREMIUM FOOTER */
/* ===================================== */

.footer{

  background:
    linear-gradient(
      135deg,
      #020617,
      #0f172a,
      #111827
    );

  color:white;

  padding:
    5rem 0 2rem;

  position:relative;

  overflow:hidden;
}

.footer::before{

  content:'';

  position:absolute;

  top:-120px;
  right:-120px;

  width:300px;
  height:300px;

  background:
    rgba(59,130,246,0.08);

  border-radius:50%;

  filter:blur(40px);
}

.footer::after{

  content:'';

  position:absolute;

  bottom:-100px;
  left:-100px;

  width:260px;
  height:260px;

  background:
    rgba(249,115,22,0.08);

  border-radius:50%;

  filter:blur(40px);
}

.footer-top{

  display:grid;

  grid-template-columns:
    1.5fr
    1fr
    1fr
    1.2fr;

  gap:3rem;

  padding-bottom:3rem;

  border-bottom:
    1px solid
    rgba(255,255,255,0.08);
}

/* LOGO */

.footer-logo{

  font-size:2rem;
  font-weight:700;

  margin-bottom:1rem;

  color:white;
}

.footer-logo span{

  color:#3b82f6;
}

.footer-description{

  color:#cbd5e1;

  line-height:1.8;

  max-width:320px;
}

/* LINKS */

.footer-links h3,
.footer-contact h3{

  font-size:1.3rem;

  margin-bottom:1.5rem;

  position:relative;
}

.footer-links h3::after,
.footer-contact h3::after{

  content:'';

  position:absolute;

  left:0;
  bottom:-8px;

  width:45px;
  height:3px;

  background:#3b82f6;

  border-radius:20px;
}

.footer-links ul{

  list-style:none;
}

.footer-links ul li{

  margin-bottom:1rem;

  color:#cbd5e1;

  transition:0.3s;
}

.footer-links ul li a{

  text-decoration:none;

  color:#cbd5e1;

  transition:0.3s;
}

.footer-links ul li:hover,
.footer-links ul li a:hover{

  color:#3b82f6;

  transform:translateX(5px);
}

/* CONTACT */

.footer-contact p{

  margin-bottom:1rem;

  color:#cbd5e1;

  display:flex;
  align-items:center;

  gap:12px;
}

.footer-contact i{

  color:#3b82f6;
}

/* SOCIAL */

.footer-social{

  display:flex;

  justify-content:center;

  gap:1rem;

  padding:2.5rem 0;
}

.footer-social a{

  width:52px;
  height:52px;

  border-radius:50%;

  display:flex;
  align-items:center;
  justify-content:center;

  background:
    rgba(255,255,255,0.06);

  border:
    1px solid
    rgba(255,255,255,0.08);

  color:white;

  font-size:1.2rem;

  text-decoration:none;

  transition:0.4s;

  backdrop-filter:blur(10px);
}

.footer-social a:hover{

  transform:
    translateY(-8px)
    scale(1.08);

  background:#3b82f6;

  box-shadow:
    0 10px 25px
    rgba(59,130,246,0.45);
}

/* FOOTER BOTTOM */

.footer-bottom{

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

  padding-top:2rem;

  display:flex;

  justify-content:space-between;

  align-items:center;

  flex-wrap:wrap;

  gap:1rem;

  text-align:center;
}

.footer-bottom p{

  color:#94a3b8;

  font-size:0.95rem;
}

/* ===================================== */
/* RESPONSIVE */
/* ===================================== */

@media(max-width:992px){

  .footer-top{

    grid-template-columns:
      repeat(2,1fr);
  }

}

@media(max-width:768px){

  .footer-top{

    grid-template-columns:1fr;

    text-align:center;
  }

  .footer-description{

    margin:auto;
  }

  .footer-links h3::after,
  .footer-contact h3::after{

    left:50%;

    transform:translateX(-50%);
  }

  .footer-contact p{

    justify-content:center;
  }

  .footer-bottom{

    flex-direction:column;
  }

}

@media(max-width:480px){

  .footer-social{

    flex-wrap:wrap;
  }

  .footer-social a{

    width:48px;
    height:48px;
  }

}

/* ===================================== */
/* WHATSAPP */
/* ===================================== */

.whatsapp-btn{
  position:fixed;

  right:30px;
  bottom:95px;

  width:60px;
  height:60px;

  border-radius:50%;

  background:#25D366;
  color:white;

  display:flex;
  align-items:center;
  justify-content:center;

  font-size:1.8rem;

  text-decoration:none;

  z-index:999;

  box-shadow:0 10px 35px rgba(37,211,102,0.4);

  animation:pulse 3s infinite;
}

.back-to-top{
  position:fixed;

  right:30px;
  bottom:25px;

  width:50px;
  height:50px;

  border:none;
  border-radius:50%;

  background:#3b82f6;
  color:white;

  display:none;
  align-items:center;
  justify-content:center;

  cursor:pointer;

  z-index:999;

  box-shadow:0 10px 35px rgba(59,130,246,0.4);

  animation:pulse 3s infinite;
}

.back-to-top.show{
  display:flex;
}

@keyframes pulse{

  50%{
    transform:scale(1.08);
  }

}

/* ===================================== */
/* ANIMATIONS */
/* ===================================== */

.section-animate{
  opacity:0;
  transform:translateY(80px);

  transition:0.9s;
}

.section-animate.visible{
  opacity:1;
  transform:translateY(0);
}

/* ===================================== */
/* RESPONSIVE */
/* ===================================== */

@media(max-width:992px){

  .hero-grid,
  .about-grid,
  .contact-grid{
    grid-template-columns:1fr;
    text-align:center;
  }

  .hero-buttons,
  .social-links{
    justify-content:center;
  }

}

@media(max-width:768px){

  .hamburger{
    display:flex;
  }

  .nav-links{
    position:fixed;

    top:80px;
    left:-100%;

    width:100%;
    height:calc(100vh - 80px);

    background:white;

    flex-direction:column;

    align-items:center;

    padding-top:3rem;

    transition:0.4s;
  }

  body.dark-mode .nav-links{
    background:#0f172a;
  }

  .nav-links.active{
    left:0;
  }

  .hero-grid{
    grid-template-columns:1fr;
    text-align:center;
  }

  .hero-text h1{
    font-size:2.7rem;
  }

  .hero-buttons{
    flex-direction:column;
  }

  .btn{
    width:100%;
  }

  .floating-shape{
    display:none;
  }

  .services-grid,
  .projects-grid{
    grid-template-columns:1fr;
  }

}

@media(max-width:480px){

  .hero-text h1{
    font-size:2.1rem;
  }

  h2{
    font-size:2rem;
  }

  .service-card{
    padding:2rem 1.3rem;
  }

  .whatsapp-btn,
  .back-to-top{
    width:50px;
    height:50px;

    font-size:1.3rem;
  }

}


.pricing{
  padding:100px 0;
  background:#f8fafc;
}

.pricing-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(320px,1fr));
  gap:30px;
  margin-top:50px;
}

.pricing-card{

  background:white;

  border-radius:20px;

  padding:40px 30px;

  text-align:center;

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

  transition:.4s;

  position:relative;
}

.pricing-card:hover{

  transform:translateY(-10px);

}

.pricing-card h3{

  font-size:28px;

  margin-bottom:20px;
}

.price{

  font-size:42px;

  font-weight:700;

  color:#2563eb;

  margin-bottom:25px;
}

.pricing-card ul{

  list-style:none;

  margin-bottom:30px;
}

.pricing-card ul li{

  padding:10px 0;

  border-bottom:1px solid #eee;
}

.featured{

  border:3px solid #2563eb;

  transform:scale(1.05);
}

.popular{

  position:absolute;

  top:-12px;

  left:50%;

  transform:translateX(-50%);

  background:#2563eb;

  color:white;

  padding:8px 20px;

  border-radius:30px;

  font-size:14px;
}


