* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: 'Vazirmatn', sans-serif;
  background: #ffffff;
  -webkit-font-smoothing: antialiased;
}

/* nav underline animation */
.nav-link::after {
  content: '';
  position: absolute;
  bottom: -6px;
  right: 0;
  width: 0;
  height: 2px;
  background: #C41E3A;
  transition: width .3s ease;
}
.nav-link:hover::after { width: 100%; }

/* service arrow button flips fill on card hover */
.group:hover .arrow-btn-inner { }
.group:hover button[style*="border-color"] { }

/* reveal on scroll */
.reveal {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity .7s ease, transform .7s ease;
}
.reveal-in {
  opacity: 1;
  transform: translateY(0);
}

/* hero text reveal */
@keyframes heroRise {
  from { opacity: 0; transform: translateY(24px); }
  to { opacity: 1; transform: translateY(0); }
}
.hero-reveal > * { animation: heroRise .8s ease both; }
.hero-reveal > *:nth-child(1) { animation-delay: .05s; }
.hero-reveal > *:nth-child(2) { animation-delay: .2s; }
.hero-reveal > *:nth-child(3) { animation-delay: .35s; }
.hero-reveal > *:nth-child(4) { animation-delay: .5s; }

/* service card arrow hover fill */
.group:hover .arrow-btn-inner svg { transform: translateX(-2px); transition: transform .3s; }

/* scrollbar */
::-webkit-scrollbar { width: 10px; }
::-webkit-scrollbar-track { background: #f1f1f1; }
::-webkit-scrollbar-thumb { background: #C41E3A; border-radius: 5px; }

img { display: block; }