/* ===== ABP Fermetures — design system ===== */
:root {
  --primary: #2563eb;
  --primary-dark: #1d4ed8;
  --primary-light: #3b82f6;
  --navy-1: #141e30;
  --navy-2: #243b55;
  --ink: #1f2937;
  --neutral: #6b7280;
  --surface: #f9fafb;
  --line: #e5e7eb;
}

body {
  font-family: 'Sora', system-ui, sans-serif;
  background-color: var(--surface);
  color: var(--ink);
}

.font-display {
  font-family: 'Bricolage Grotesque', system-ui, sans-serif;
}

/* Hero (identité héritée) */
.hero-gradient {
  background: linear-gradient(135deg, rgba(20,30,48,0.92) 0%, rgba(36,59,85,0.88) 100%);
}

/* Interaction */
.card-hover {
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.card-hover:hover {
  transform: translateY(-5px);
  box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
}
.transition-slow {
  transition: all 0.3s ease;
}

/* Révélation au scroll */
.reveal {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity 0.6s ease, transform 0.6s ease;
}
.reveal.visible {
  opacity: 1;
  transform: translateY(0);
}

/* Entrée en cascade du hero */
.hero-anim {
  opacity: 0;
  transform: translateY(18px);
  animation: heroFadeUp 0.7s ease forwards;
}
.hero-anim.delay-1 { animation-delay: 0.15s; }
.hero-anim.delay-2 { animation-delay: 0.3s; }
.hero-anim.delay-3 { animation-delay: 0.45s; }
@keyframes heroFadeUp {
  to { opacity: 1; transform: translateY(0); }
}

/* Liens internes actifs */
.nav-link[aria-current="page"] {
  color: var(--primary);
}

/* Focus visible */
a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible {
  outline: 2px solid var(--primary);
  outline-offset: 2px;
}
