body {
  font-family: 'Poppins', sans-serif !important;
  font-size: clamp(14px, 2vw, 26px) !important;
  line-height: 1.7 !important;
}

h1, h2, h3, h4, h5, h6 {
  font-weight: 600 !important;
}

h1 { font-size: clamp(1.8rem, 5vw, 5rem) !important; line-height: 1.2 !important; }
h2 { font-size: clamp(1.4rem, 3.5vw, 3.25rem) !important; line-height: 1.3 !important; }
h3 { font-size: clamp(1.1rem, 2.5vw, 2.2rem) !important; line-height: 1.3 !important; }
h4 { font-size: clamp(1rem, 2vw, 1.8rem) !important; line-height: 1.3 !important; }

p, li, span, a, td, th, label, input, textarea, button {
  font-size: inherit;
  line-height: inherit;
}

.fade-up {
  opacity: 0;
  transform: translateY(40px);
  transition: opacity 0.7s ease-out, transform 0.7s ease-out;
}
.fade-up.visible {
  opacity: 1;
  transform: translateY(0);
}
.fade-up.delay-1 { transition-delay: 0.1s; }
.fade-up.delay-2 { transition-delay: 0.2s; }
.fade-up.delay-3 { transition-delay: 0.3s; }
.fade-up.delay-4 { transition-delay: 0.4s; }

.hero-bg {
  background-image: linear-gradient(rgba(10,10,10,0.75), rgba(10,10,10,0.75)), url('../assets/images/hero-bg.jpg');
  background-size: cover;
  background-position: center;
}

.cta-bg {
  background-image: linear-gradient(rgba(0,0,0,0.55), rgba(0,0,0,0.65)), url('../assets/images/cta-bg.jpg');
  background-size: cover;
  background-position: center;
}

.strengths-bg {
  background-image: linear-gradient(rgba(185,152,96,0.55), rgba(185,152,96,0.55)), url('../assets/images/section3-2.jpg');
  background-size: cover;
  background-position: center;
}

.footer-bg {
  background-image: linear-gradient(rgba(0,0,0,0.75), rgba(0,0,0,0.85)), url('../assets/images/footer-bg.jpg');
  background-size: cover;
  background-position: center;
}

.topbar-bg { background-color: #2b2b2b; }

.stats-bg {
  background-image: linear-gradient(rgba(20,15,5,0.75), rgba(20,15,5,0.8)), url('../assets/images/stats-bg.jpg');
  background-size: cover;
  background-position: center;
}

.proj-card { position: relative; overflow: hidden; }
.proj-card img { width: 100%; height: 100%; object-fit: cover; display: block; }
.proj-overlay { position: absolute; inset: 0; background: linear-gradient(to top, rgba(0,0,0,0.85), rgba(0,0,0,0.05) 55%, transparent); }
