

/* Prevent horizontal overflow */
html, body {
  width: 100%;
  overflow-x: hidden;
}

/* Containers */
.container,
.container-fluid {
  padding-left: 16px !important;
  padding-right: 16px !important;
}

/* Images */
img {
  max-width: 100%;
  height: auto;
  display: block;
}

/* Headings */
h1 { font-size: clamp(1.9rem, 6vw, 2.6rem); }
h2 { font-size: clamp(1.6rem, 5vw, 2.2rem); }
h3 { font-size: 1.3rem; }
p  { font-size: 0.95rem; line-height: 1.6; }

/* Buttons */
.btn {
  width: 100%;
  padding: 12px 16px;
  font-size: 0.95rem;
}

/* Navbar */
.navbar {
  padding: 10px 16px;
}

.navbar-brand {
  font-size: 1.3rem;
}

.navbar-nav {
  gap: 8px;
}

/* Hero sections */
.hero,
.hero-section,
.page-header,
.header-section {
  padding: 60px 0 50px;
  text-align: center;
}

.hero-title,
.page-title {
  line-height: 1.2;
}

.hero-buttons,
.cta-group {
  display: flex;
  flex-direction: column;
  gap: 12px;
  align-items: stretch;
}

/* Grids → stack on mobile */
.grid,
.features-grid,
.services-grid,
.needs-grid,
.cards-grid,
.stats-grid {
  display: grid;
  grid-template-columns: 1fr !important;
  gap: 20px;
}

/* Cards */
.card,
.feature-card,
.service-card {
  padding: 20px;
  border-radius: 14px;
}

/* Logos / Clients */
.clients-grid,
.logos-grid {
  grid-template-columns: repeat(2, 1fr) !important;
  gap: 16px;
}

.clients-grid img,
.logos-grid img {
  object-fit: contain;
}

/* Forms */
input,
textarea,
select {
  width: 100%;
  font-size: 0.95rem;
  padding: 12px;
}

/* Tables */
.table-responsive {
  overflow-x: auto;
}

/* Reveal Animations – mobile safe */
.reveal,
.reveal-up,
.reveal-zoom {
  opacity: 1 !important;
  transform: none !important;
}

/* Footer */
footer {
  text-align: center;
}

.footer-links,
.footer-cols {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

/* ===== EXTRA SMALL DEVICES ===== */
@media (max-width: 576px) {
  section {
    padding: 50px 0;
  }

  h1 { font-size: 1.8rem; }
  h2 { font-size: 1.45rem; }

  .btn {
    font-size: 0.9rem;
  }
}
