/* ═══════════════════════════════
   css/base.css
═══════════════════════════════ */
*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { font-family:var(--font-main); color:var(--dark); background:var(--white); line-height:1.6; overflow-x:hidden; }
img  { max-width:100%; display:block; }
a    { text-decoration:none; color:inherit; }
button { cursor:pointer; font-family:var(--font-main); }
ul { list-style:none; }
textarea { resize:vertical; }

@keyframes fadeUp {
  from { opacity:0; transform:translateY(24px); }
  to   { opacity:1; transform:translateY(0); }
}
.fade-up  { animation:fadeUp .6s ease forwards; }
.delay-1  { animation-delay:.1s; }
.delay-2  { animation-delay:.2s; }
.delay-3  { animation-delay:.3s; }


/* ═══════════════════════════════
   css/layout.css
═══════════════════════════════ */
.container { max-width:1200px; margin:0 auto; padding:0 20px; }
.section   { padding:80px 0; }

.grid-2 { display:grid; grid-template-columns:repeat(2,1fr); gap:28px; }
.grid-3 { display:grid; grid-template-columns:repeat(3,1fr); gap:28px; }
.grid-4 { display:grid; grid-template-columns:repeat(4,1fr); gap:24px; }

/* Section header helpers */
.section-title {
  font-size:clamp(1.6rem,3vw,2.4rem);
  font-weight:800; color:var(--navy);
  text-align:center; margin-bottom:12px;
}
.section-subtitle {
  text-align:center; color:var(--gray);
  font-size:1rem; margin-bottom:50px;
  max-width:600px; margin-left:auto; margin-right:auto;
}
.badge {
  display:inline-block;
  background:rgba(26,86,219,.1); color:var(--blue);
  font-size:.75rem; font-weight:700;
  letter-spacing:.08em; text-transform:uppercase;
  padding:5px 14px; border-radius:50px; margin-bottom:14px;
}
.badge-light {
  background:rgba(255,255,255,.15); color:#fff;
  border:1px solid rgba(255,255,255,.2);
}
