/* Groupe France Publicité — design system */

:root {
  --gfp-red: #FF5252;
  --gfp-pink: #FF4081;
  --gfp-purple: #E040FB;
  --gfp-deep-purple: #7C4DFF;
  --gfp-blue: #536DFE;
  --gfp-teal: #00BFA5;
}

html {
  scroll-behavior: smooth;
}

body {
  font-family: 'Nunito Sans', system-ui, -apple-system, sans-serif;
}

h1, h2, h3, h4, .font-display {
  font-family: 'Baloo 2', 'Nunito Sans', system-ui, sans-serif;
}

.rainbow-gradient {
  background: linear-gradient(90deg,
    var(--gfp-red) 0%,
    var(--gfp-pink) 20%,
    var(--gfp-purple) 40%,
    var(--gfp-deep-purple) 60%,
    var(--gfp-blue) 80%,
    var(--gfp-teal) 100%);
}

.happy-shadow {
  box-shadow: 0 15px 30px -5px rgba(255, 105, 180, 0.3);
}

.service-card {
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.service-card:hover {
  transform: translateY(-8px);
  box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1),
              0 10px 10px -5px rgba(255, 105, 180, 0.04);
}

.bounce {
  animation: gfp-bounce 2s infinite;
}

@keyframes gfp-bounce {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-10px); }
}

/* Révélation douce à l'intersection */
.reveal {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity 0.6s ease, transform 0.6s ease;
}

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

/* Accessibilité */
a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible {
  outline: 3px solid var(--gfp-pink);
  outline-offset: 2px;
  border-radius: 4px;
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .reveal {
    opacity: 1;
    transform: none;
    transition: none;
  }
  .bounce { animation: none; }
}
