html { zoom: 0.9; overflow-x: hidden; }
*, *::before, *::after { box-sizing: border-box; }
body { font-family: 'Poppins', sans-serif; overflow-x: hidden; }
::-webkit-scrollbar { display: none; }
* { scrollbar-width: none; }

.grid-bg {
  background-image:
    linear-gradient(rgba(165,147,129,0.3) 1px, transparent 1px),
    linear-gradient(90deg, rgba(165,147,129,0.3) 1px, transparent 1px);
  background-size: 42.75px 42.75px;
}

/* Section tabs (index.html) */
.tab-btn {
  padding: 12px 16px;
  font-size: 15px;
  color: #121212;
  letter-spacing: -0.36px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  border-radius: 9999px;
  transition: background 0.2s, border 0.2s;
}
@media (min-width: 768px) {
  .tab-btn { padding: 15px 30px; font-size: 18px; }
}
.tab-btn.active { background-color: #003159; border: 1px solid #003159; color: #ffffff; }

.solutions-panel { display: none; }
.solutions-panel.active { display: block; }

.check-icon {
  display: inline-flex; align-items: center; justify-content: center;
  width: 22px; height: 22px; background: #000000; border-radius: 50%; flex-shrink: 0; margin-top: 3px;
}
.check-icon::after {
  content: '';
  display: block; width: 8px; height: 5px;
  border-left: 1.5px solid white; border-bottom: 1.5px solid white;
  transform: rotate(-45deg) translateY(-1px);
}

/* ── CTA Buttons ─────────────────────────────────────────────────────── */

/* Primary — navy fill, white text */
.btn-primary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background-color: #A37B52;
  color: #fff;
  padding: 16px 28px;
  border-radius: 9999px;
  font-weight: 500;
  font-size: 16px;
  line-height: 1.4;
  white-space: nowrap;
  transition: background 0.25s ease, transform 0.2s ease, box-shadow 0.25s ease;
}
@media (min-width: 768px) {
  .btn-primary { padding: 18px 36px; font-size: 18px; }
}
.btn-primary:hover  {     background: #8B6946;
  transform: translateY(-2px);
  box-shadow: 0px 0px 5px rgba(12, 52, 88, 0.6); }
.btn-primary:active { transform: translateY(0); box-shadow: none; }

/* Navbar desktop button — pair with "hidden lg:flex" */
.btn-primary--nav {
  background-color: #0c3458;
  padding: 12px 24px;
  font-size: 16px;
  gap: 12px;
  line-height: 1.47;
  letter-spacing: -0.36px;
}
.btn-primary--nav:hover {
  background-color: #003159;
}

/* Mobile menu button — used inside the full-screen overlay */
.btn-primary--menu {
  background-color: #0c3458;
  padding: 20px 24px 20px 28px;
  font-size: 18px;
  gap: 10px;
  line-height: 1.75;
}
.btn-primary--menu:hover {
  background-color: #003159;
}

/* Form submit / uppercase variant */
.btn-primary--submit {
  font-weight: 600;
  letter-spacing: 0.05em;
}

/* Secondary — white fill, navy text */
.btn-secondary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  background-color: #ffffff;
  color: #0c3458;
  padding: 16px 28px;
  border-radius: 9999px;
  font-weight: 500;
  font-size: 16px;
  line-height: 1.4;
  white-space: nowrap;
  transition: background 0.25s ease, transform 0.2s ease, box-shadow 0.25s ease;
}
@media (min-width: 768px) {
  .btn-secondary { padding: 18px 36px; font-size: 18px; }
}
.btn-secondary:hover  { background-color: #f0ece6; transform: translateY(-2px); box-shadow: 0 0 5px rgba(255, 255, 255, 0.6); }
.btn-secondary:active { transform: translateY(0); box-shadow: none; }

/* Navy — compact, used for standalone links (e.g. team section) */
.btn-navy {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  background-color: #0c3458;
  color: #ffffff;
  padding: 12px 24px;
  border-radius: 9999px;
  font-size: 16px;
  line-height: 1.47;
  letter-spacing: -0.36px;
  white-space: nowrap;
  transition: background 0.25s ease, transform 0.2s ease, box-shadow 0.25s ease;
}
.btn-navy:hover  { background-color: #003159; transform: translateY(-2px); box-shadow: 0 0 5px rgba(12, 52, 88, 0.6); }
.btn-navy:active { transform: translateY(0); box-shadow: none; }

/* Audience filter tabs (platform.html) */
.audience-btn {
  display: inline-flex;
  align-items: center;
  padding: 8px 16px;
  border-radius: 9999px;
  font-size: 13px;
  font-weight: 500;
  white-space: nowrap;
  transition: background 0.2s, color 0.2s, border-color 0.2s;
}
@media (min-width: 768px) {
  .audience-btn { font-size: 14px; }
}
.audience-btn.active { background-color: #003159; color: #ffffff; }

/* ── Nav link color switching ── */
.nav-link {
  color: #121212;
  transition: color 0.3s ease;
}
.nav-link-home {
  background: #121212;
  color: #ffffff;
  transition: color 0.3s ease, background 0.3s ease;
}

nav.nav-on-dark .nav-link {
  color: #ffffff;
}
nav.nav-on-dark .nav-link-home {
  background: #ffffff;
  color: #121212;
}

/* ── Scroll animations ── */
.reveal {
  opacity: 0;
  transform: translateY(40px);
  transition: opacity 0.75s cubic-bezier(0.16, 1, 0.3, 1),
              transform 0.75s cubic-bezier(0.16, 1, 0.3, 1);
  will-change: transform, opacity;
}
.reveal.reveal--up    { transform: translateY(50px); }
.reveal.reveal--left  { transform: translateX(-50px) translateY(0); }
.reveal.reveal--right { transform: translateX(50px) translateY(0); }
.reveal.reveal--scale { transform: scale(0.92) translateY(20px); }

.reveal.visible {
  opacity: 1;
  transform: translateY(0) translateX(0) scale(1);
}

.reveal-delay-1 { transition-delay: 0.1s; }
.reveal-delay-2 { transition-delay: 0.2s; }
.reveal-delay-3 { transition-delay: 0.3s; }
.reveal-delay-4 { transition-delay: 0.4s; }
.reveal-delay-5 { transition-delay: 0.5s; }

/* ── Hamburger icon ── */
.hamburger-icon {
  color: #121212;
  transition: color 0.3s ease;
}
nav.nav-on-dark .hamburger-icon {
  color: #ffffff;
}

/* ── Mobile full-screen menu ── */
#mobile-menu {
  transform: translateX(100%);
  transition: transform 0.35s cubic-bezier(0.4, 0, 0.2, 1);
}
#mobile-menu.open {
  transform: translateX(0);
}
body.menu-open {
  overflow: hidden;
}

/* ---- Footer responsive ---- */
footer.footer-responsive {
  margin: 16px;
  padding: 40px 24px;
}
@media (min-width: 640px) {
  footer.footer-responsive {
    margin: 24px;
    padding: 48px 32px;
  }
}
@media (min-width: 1024px) {
  footer.footer-responsive {
    margin: 32px;
    padding: 48px 40px;
  }
}
