/* Cohesive fintech-style polish, minimal and safe */
:root {
  --brand-emerald: #006b3c; /* Presidential Emerald */
  --brand-navy: #0f172a;
  --brand-gold: #d4af37; /* Presidential Gold */
  --glass-bg: rgba(255,255,255,0.08);
  --glass-border: rgba(255,255,255,0.18);
}

body {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* Gentle elevation for cards used across hubs */
.rounded-lg.border.bg-white {
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.08);
}

/* Hover lift for interactive cards */
.hover-card {
  transition: transform 120ms ease, box-shadow 120ms ease;
}
.hover-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 14px rgba(15, 23, 42, 0.12);
}

/* Nav link subtle emphasis */
nav a {
  transition: color 120ms ease;
}

/* Presidential hero background: flag-inspired gradient with subtle motion */
.hero-bg {
  background: radial-gradient(1200px 500px at 20% -10%, rgba(212,175,55,0.15), transparent 60%),
              radial-gradient(1200px 500px at 80% -10%, rgba(0,107,60,0.18), transparent 60%),
              linear-gradient(135deg, #f8fafc 0%, #eef2ff 100%);
  position: relative;
  overflow: hidden;
}
.hero-bg:before {
  content: '';
  position: absolute; inset: -10% -20% -20% -10%;
  background: radial-gradient(800px 300px at 10% 20%, rgba(0,107,60,0.08), transparent 50%),
              radial-gradient(800px 300px at 90% 30%, rgba(212,175,55,0.12), transparent 50%);
  filter: blur(40px);
  animation: drift 12s ease-in-out infinite alternate;
}
@keyframes drift { to { transform: translate3d(10px, -8px, 0) scale(1.02); } }

/* Glassmorphism utility */
.glass-card {
  background: var(--glass-bg);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  border: 1px solid var(--glass-border);
  box-shadow: 0 10px 30px rgba(15,23,42,0.08);
}

/* Scroll reveal */
.reveal { opacity: 0; transform: translateY(18px); transition: opacity .6s ease, transform .6s ease; }
.reveal.in { opacity: 1; transform: translateY(0); }

/* Count-up numbers emphasis */
.impact-number { font-weight: 800; letter-spacing: -0.02em; }

/* Carousel base */
.carousel { display:flex; gap:16px; overflow-x:auto; scroll-snap-type:x mandatory; }
.carousel > * { flex: 0 0 auto; scroll-snap-align:start; }

/* Partner logos */
.partner-logos img {
  height: 36px;
  width: auto;
  filter: grayscale(100%);
  opacity: 0.75;
  transition: filter .2s ease, opacity .2s ease, transform .2s ease;
}
.partner-logos img:hover { filter: grayscale(0%); opacity: 1; transform: translateY(-1px); }

/* Hero flag overlay with subtle parallax */
.hero-overlay-flag {
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(90deg, rgba(0,107,60,0.12) 0 33%, rgba(255,255,255,0.12) 33% 66%, rgba(0,107,60,0.12) 66% 100%);
  mix-blend-mode: multiply;
  transform: translate3d(0,0,0);
  will-change: transform;
}