html {
  scroll-behavior: smooth;
}
body {
  -webkit-font-smoothing: antialiased;
}

/* ── NAV SCROLL STATE ── */
.nav-scrolled {
  background: rgba(255, 255, 255, 0.98);
  box-shadow: 0 4px 24px rgba(0, 0, 0, 0.1);
}

/* ── HERO DECORATIVE ── */
.hero-glow::before {
  content: "";
  position: absolute;
  top: -30%;
  right: -10%;
  width: 70vw;
  height: 70vw;
  background: radial-gradient(
    circle,
    rgba(26, 109, 224, 0.12) 0%,
    transparent 70%
  );
  border-radius: 50%;
  pointer-events: none;
}
.hero-glow::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 1px;
  background: linear-gradient(
    90deg,
    transparent,
    rgba(255, 255, 255, 0.1),
    transparent
  );
}
.hero-grid::before,
.hero-grid::after {
  content: "";
  position: absolute;
  background: #fff;
  top: 0;
  bottom: 0;
  width: 1px;
}
.hero-grid::before {
  left: 25%;
}
.hero-grid::after {
  left: 50%;
}

/* ── HERO TAG LINE ── */
.hero-tag::before {
  content: "";
  display: block;
  width: 32px;
  height: 1.5px;
  background: #4a91f0;
}

/* ── SECTION LABEL LINE ── */
.section-label::before {
  content: "";
  display: block;
  width: 24px;
  height: 1.5px;
  background: #1155b8;
}

/* ── SERVICE CARD BOTTOM BAR ── */
.service-card::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 2.5rem;
  right: 2.5rem;
  height: 0;
  background: #1155b8;
  transition: height 0.4s cubic-bezier(0.16, 1, 0.3, 1);
  border-radius: 2px 2px 0 0;
}
.service-card:hover::after {
  height: 3px;
}

/* ── SERVICE LIST DOTS ── */
.service-list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.55em;
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: #4a91f0;
}

/* ── ABOUT VISUAL GRID PATTERN ── */
.about-pattern::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(135deg, rgba(26, 109, 224, 0.15) 0%, transparent 60%),
    repeating-linear-gradient(
      0deg,
      transparent,
      transparent 40px,
      rgba(255, 255, 255, 0.02) 40px,
      rgba(255, 255, 255, 0.02) 41px
    ),
    repeating-linear-gradient(
      90deg,
      transparent,
      transparent 40px,
      rgba(255, 255, 255, 0.02) 40px,
      rgba(255, 255, 255, 0.02) 41px
    );
}

/* ── VISION GLOW ── */
.vision-glow::before {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(
    ellipse at 50% 0%,
    rgba(26, 109, 224, 0.18) 0%,
    transparent 60%
  );
  pointer-events: none;
}

/* ── ANIMATIONS ── */
@keyframes fadeUp {
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
@keyframes fadeIn {
  to {
    opacity: 1;
  }
}
.anim-fade-up {
  opacity: 0;
  transform: translateY(20px);
}
.anim-fade-up-lg {
  opacity: 0;
  transform: translateY(30px);
}
.anim-fade-in {
  opacity: 0;
}
.anim-d1 {
  animation: fadeUp 0.8s 0.3s forwards;
}
.anim-d2 {
  animation: fadeUp 0.8s 0.5s forwards;
}
.anim-d3 {
  animation: fadeUp 0.8s 0.7s forwards;
}
.anim-d4 {
  animation: fadeUp 0.8s 0.9s forwards;
}
.anim-d5 {
  animation: fadeIn 0.8s 1.2s forwards;
}

/* ── SCROLL REVEAL ── */
.reveal {
  opacity: 0;
  transform: translateY(16px);
  transition:
    opacity 0.6s ease-out,
    transform 0.6s ease-out;
}
.reveal.visible {
  opacity: 1;
  transform: translateY(0);
}

/* ── MOBILE MENU ── */
.mobile-menu {
  display: none;
}
.mobile-menu.open {
  opacity: 1;
  pointer-events: all;
}
@media (max-width: 900px) {
  .mobile-menu {
    display: flex;
  }
}
