/* =========================
ROOT VARIABLES
========================= */

:root{

  --primary:#00d4ff;
  --secondary:#7b61ff;

  --dark:#07111f;
  --dark-light:#101b2d;

  --white:#ffffff;
  --text:#d7e2f0;

  --border:
  rgba(255,255,255,0.08);

  --gradient:
  linear-gradient(
  135deg,
  #00d4ff,
  #7b61ff
  );

  --shadow:
  0 15px 40px
  rgba(0,0,0,0.28);

  --radius:22px;

  --transition:0.35s ease;

}

/* =========================
GLOBAL
========================= */

*{

  margin:0;
  padding:0;

  box-sizing:border-box;

}

html{

  scroll-behavior:smooth;

}

body{

  font-family:'Outfit',sans-serif;

  font-size:15px;

  background:var(--dark);

  color:var(--text);

  line-height:1.7;

  overflow-x:hidden;

}

img{

  width:100%;

  display:block;

}

.container{

  width:min(1180px,90%);

  margin-inline:auto;

}

.section{

  position:relative;

  padding:90px 0;

}

/* =========================
HEADINGS
========================= */

.section-heading{

  text-align:center;

  margin-bottom:55px;

}

.section-heading h2{

  font-size:
  clamp(2rem,5vw,3.8rem);

  line-height:1.2;

  margin-top:12px;

}

.section-tag{

  display:inline-flex;

  align-items:center;

  padding:8px 16px;

  border-radius:999px;

  background:
  rgba(255,255,255,0.05);

  border:
  1px solid var(--border);

}


/* =========================
SVG ICON
========================= */

.icon-svg{

width:32px;
height:32px;

stroke:var(--primary);

flex-shrink:0;

margin-bottom:18px;

transition:0.35s ease;

}

/* HOVER */

.service-card:hover .icon-svg{

transform:
translateY(-4px)
scale(1.08);

}

/* =========================
LOADER
========================= */

.loader-wrapper{

  position:fixed;

  inset:0;

  background:var(--dark);

  z-index:99999;

  display:flex;

  align-items:center;

  justify-content:center;

  transition:
  opacity 0.4s ease,
  visibility 0.4s ease;

}

.loader{

  width:55px;
  height:55px;

  border-radius:50%;

  border:4px solid
  rgba(255,255,255,0.08);

  border-top-color:
  var(--primary);

  animation:spin 0.8s linear infinite;

  will-change:transform;

}

/* =========================
LOADER HIDE
========================= */

.loader-hide{

  opacity:0;

  visibility:hidden;

  pointer-events:none;

}

/* =========================
SPIN ANIMATION
========================= */

@keyframes spin{

  to{

    transform:rotate(360deg);

  }

}

/* =========================
BACKGROUND SHAPES
========================= */

.shape{

  position:fixed;

  border-radius:50%;

  filter:blur(90px);

  opacity:0.35;

  z-index:-1;

}

.shape-1{

  width:300px;
  height:300px;

  background:#00d4ff;

  top:10%;
  left:-100px;

}

.shape-2{

  width:320px;
  height:320px;

  background:#7b61ff;

  top:35%;
  right:-100px;

}

.shape-3{

  width:220px;
  height:220px;

  background:#ff00cc;

  left:40%;
  bottom:0;

}

/* =========================
BUTTONS
========================= */

.btn{

  display:inline-flex;

  align-items:center;

  justify-content:center;

  padding:14px 26px;

  border-radius:999px;

  text-decoration:none;

  font-size:14px;

  font-weight:600;

  transition:var(--transition);

}

.btn-primary{

  background:var(--gradient);

  color:var(--white);

  box-shadow:var(--shadow);

}

.btn-outline{

  color:var(--white);

  border:
  1px solid var(--border);

  background:
  rgba(255,255,255,0.05);

}

.btn:hover{

  transform:translateY(-4px);

}

/* =========================
HEADER
========================= */

.header{

  position:fixed;

  top:0;
  left:0;

  width:100%;

  z-index:999;

  background:
  rgba(4,21,39,0.82);

  backdrop-filter:blur(14px);

  border-bottom:
  1px solid rgba(255,255,255,0.06);

}

.navbar{

  height:82px;

  display:flex;

  align-items:center;

  justify-content:space-between;

}

.logo{

  font-size:32px;

  font-weight:800;

  color:#fff;

  text-decoration:none;

}

.logo span{

  color:#00d9ff;

}

.nav-menu{

  display:flex;

  align-items:center;

  gap:34px;

}

.nav-menu a{

  position:relative;

  color:
  rgba(255,255,255,0.82);

  text-decoration:none;

  font-size:15px;

  transition:0.3s ease;

}

.nav-menu a::after{

  content:"";

  position:absolute;

  left:0;
  bottom:-8px;

  width:0;
  height:2px;

  border-radius:20px;

  background:var(--gradient);

  transition:0.3s ease;

}

.nav-menu a:hover,
.nav-menu a.active{

  color:#fff;

}

.nav-menu a:hover::after,
.nav-menu a.active::after{

  width:100%;

}

.nav-right{

  display:flex;

  align-items:center;

  gap:18px;

}

.nav-btn{

  padding:12px 24px;

  border-radius:50px;

  text-decoration:none;

  color:#fff;

  font-size:14px;

  font-weight:600;

  background:var(--gradient);

}

.menu-toggle{

  width:46px;
  height:46px;

  display:none;

  align-items:center;

  justify-content:center;

  border:none;

  border-radius:12px;

  cursor:pointer;

  color:#fff;

  font-size:22px;

  background:
  rgba(255,255,255,0.08);

}

/* =========================
HERO
========================= */

.hero{

  min-height:780px;

  display:flex;

  align-items:center;

  padding-top:120px;

}

.hero-wrapper{

  display:grid;

  grid-template-columns:
  repeat(2,1fr);

  gap:55px;

  align-items:center;

}

.hero-badge{

  display:inline-flex;

  align-items:center;

  gap:10px;

  padding:10px 18px;

  border-radius:999px;

  background:
  rgba(255,255,255,0.05);

  border:
  1px solid var(--border);

}

.hero-content h1{

  font-size:
  clamp(2.8rem,5vw,5.5rem);

  line-height:1.1;

  margin:20px 0;

}

.hero-content h1 span{

  background:var(--gradient);

  -webkit-background-clip:text;

  color:transparent;

}

.hero-content p{

  max-width:560px;

  font-size:16px;

  margin-bottom:34px;

}

.hero-buttons{

  display:flex;

  gap:16px;

  flex-wrap:wrap;

}

/* =========================
GLASS CARD
========================= */

.glass-card{

  padding:28px;

  border-radius:var(--radius);

  background:
  rgba(255,255,255,0.05);

  border:
  1px solid var(--border);

  backdrop-filter:blur(18px);

  box-shadow:var(--shadow);

}

.glass-top{

  display:flex;

  gap:8px;

  margin-bottom:24px;

}

.glass-top span{

  width:12px;
  height:12px;

  border-radius:50%;

  background:#fff;

}

/* =========================
ANALYTICS
========================= */

.analytics-grid{

  display:grid;

  grid-template-columns:
  repeat(2,1fr);

  gap:18px;

}

.analytics-card{

  padding:28px;

  border-radius:18px;

  background:
  rgba(255,255,255,0.05);

  border:
  1px solid var(--border);

}

.analytics-card h3{

  font-size:2.1rem;

  color:var(--primary);

}

.large-card{

  grid-column:span 2;

}

/* =========================
ABOUT
========================= */

.about-grid{

  display:grid;

  grid-template-columns:
  repeat(2,1fr);

  gap:60px;

  align-items:center;

}

.about-image img{

  border-radius:var(--radius);

}

.about-content h2{

  font-size:
  clamp(2rem,5vw,3.8rem);

  margin:18px 0;

  line-height:1.2;

}

.about-boxes{

  display:grid;

  gap:18px;

  margin-top:34px;

}

.about-box{

  display:flex;

  gap:18px;

  padding:22px;

  border-radius:18px;

  background:
  rgba(255,255,255,0.05);

  border:
  1px solid var(--border);

}

.about-box i{

  font-size:1.8rem;

  color:var(--primary);

}

/* =========================
SERVICES
========================= */

.services-grid{

  display:grid;

  grid-template-columns:
  repeat(3,1fr);

  gap:24px;

}

.service-card{

  padding:30px;

  border-radius:var(--radius);

  background:
  rgba(255,255,255,0.05);

  border:
  1px solid var(--border);

  transition:var(--transition);

}

.service-card:hover{

  transform:translateY(-8px);

  box-shadow:var(--shadow);

}

.service-card i{

  font-size:2rem;

  color:var(--primary);

}

.service-card h3{

  margin:20px 0 10px;

  font-size:22px;

}

/* =========================
FEATURES
========================= */

.feature-grid{

  display:grid;

  grid-template-columns:
  repeat(4,1fr);

  gap:22px;

}

.feature-card{

  text-align:center;

  padding:34px 18px;

  border-radius:var(--radius);

  background:
  rgba(255,255,255,0.05);

  border:
  1px solid var(--border);

  transition:var(--transition);

}

.feature-card:hover{

  transform:translateY(-8px);

}

.feature-card h3{

  font-size:2.3rem;

  color:var(--primary);

}

/* =========================
PRICING
========================= */

.pricing-grid{

  display:grid;

  grid-template-columns:
  repeat(3,1fr);

  gap:26px;

}

.pricing-card{

  position:relative;

  padding:38px 30px;

  border-radius:var(--radius);

  background:
  rgba(255,255,255,0.05);

  border:
  1px solid var(--border);

  transition:var(--transition);

}

.pricing-card:hover{

  transform:translateY(-8px);

  box-shadow:var(--shadow);

}

.pricing-card h2{

  font-size:2.5rem;

  margin:16px 0;

  color:#fff;

}

.pricing-card ul{

  margin:22px 0;

}

.pricing-card ul li{

  margin-bottom:12px;

}

.featured{

  transform:scale(1.03);

  background:
  linear-gradient(
  145deg,
  rgba(0,212,255,0.14),
  rgba(123,97,255,0.10)
  );

}

.popular-tag{

  position:absolute;

  top:16px;
  right:16px;

  padding:8px 14px;

  border-radius:999px;

  background:var(--gradient);

  color:#fff;

  font-size:12px;

}

/* =========================
TESTIMONIALS
========================= */

.testimonial-slider{

  overflow:hidden;

}

.testimonial-track{

  display:flex;

  gap:22px;

  animation:
  scroll 18s linear infinite;

}

.testimonial-card{

  min-width:320px;

  padding:30px;

  border-radius:var(--radius);

  background:
  rgba(255,255,255,0.05);

  border:
  1px solid var(--border);

}

.testimonial-card h4{

  margin-top:18px;

  color:var(--primary);

}

@keyframes scroll{

  100%{
    transform:translateX(-50%);
  }

}

/* =========================
GALLERY
========================= */

.gallery-grid{

  display:grid;

  grid-template-columns:
  repeat(2,1fr);

  gap:22px;

}

.gallery-grid img{

  height:300px;

  object-fit:cover;

  border-radius:var(--radius);

  transition:var(--transition);

}

.gallery-grid img:hover{

  transform:scale(1.03);

}

/* =========================
CONTACT
========================= */

.contact-grid{

  display:grid;

  grid-template-columns:
  repeat(2,1fr);

  gap:45px;

}

.contact-form{

  padding:34px;

  border-radius:var(--radius);

  background:
  rgba(255,255,255,0.05);

  border:
  1px solid var(--border);

}

.input-group{

  position:relative;

  margin-bottom:22px;

}

.input-group input,
.input-group textarea{

  width:100%;

  padding:16px;

  border:none;

  outline:none;

  border-radius:16px;

  background:
  rgba(255,255,255,0.03);

  border:
  1px solid var(--border);

  color:#fff;

}

.input-group textarea{

  height:140px;

  resize:none;

}

.input-group label{

  position:absolute;

  top:16px;
  left:16px;

  pointer-events:none;

  transition:0.3s ease;

  background:var(--dark);

  padding:0 6px;

}

.input-group input:focus + label,
.input-group input:valid + label,
.input-group textarea:focus + label,
.input-group textarea:valid + label{

  top:-10px;

  font-size:12px;

}

.full-btn{

  width:100%;

  border:none;

  cursor:pointer;

}

/* =========================
REVEAL
========================= */

.reveal{

  opacity:0;

  transform:translateY(40px);

  transition:0.8s ease;

}

.reveal.active{

  opacity:1;

  transform:translateY(0);

}

/* =========================
TABLET
========================= */

@media (max-width:992px){

.nav-menu{

  position:fixed;

  top:82px;
  right:-100%;

  width:280px;
  height:100vh;

  flex-direction:column;

  align-items:flex-start;

  gap:28px;

  padding:40px 28px;

  background:#071a31;

  transition:0.4s ease;

}

.nav-menu.active{

  right:0;

}

.menu-toggle{

  display:flex;

}

.nav-btn{

  display:none;

}

.hero-wrapper,
.about-grid,
.contact-grid{

  grid-template-columns:1fr;

}

.services-grid,
.pricing-grid{

  grid-template-columns:
  repeat(2,1fr);

}

.feature-grid{

  grid-template-columns:
  repeat(2,1fr);

}

}

/* =========================
MOBILE
========================= */

@media (max-width:768px){

.section{

  padding:75px 0;

}

.logo{

  font-size:28px;

}

.navbar{

  height:76px;

}

.nav-menu{

  top:76px;

  width:100%;

}

.hero{

  min-height:auto;

  padding-top:120px;

}

.hero-content h1{

  font-size:2.8rem;

}

.hero-buttons{

  flex-direction:column;

}

.btn{

  width:100%;

}

.services-grid,
.pricing-grid,
.feature-grid,
.gallery-grid{

  grid-template-columns:1fr;

}

.analytics-grid{

  grid-template-columns:1fr;

}

.large-card{

  grid-column:span 1;

}

.contact-form{

  padding:26px;

}

.testimonial-card{

  min-width:280px;

}

}