/* =========================================================================
   enhancements.css — couche additive de dynamisme / poli visuel
   Ne modifie jamais style.css : ce fichier n'ajoute que des règles
   complémentaires (transitions, micro-interactions, animations d'entrée).
   Importé depuis app.jsx, donc chargé après style.css → gagne les égalités
   de spécificité sans avoir besoin de !important.
   ========================================================================= */

:root{
  --ease-smooth: cubic-bezier(.22,1,.36,1);
}

/* ---- 1. Barre de progression en haut de page pendant la navigation Inertia
   (le composant NavProgress gère déjà tout en inline-style ; rien à ajouter
   ici, cette section documente juste son existence) ---- */

/* ---- 2. Fondu doux du contenu pendant un changement de page ---- */
#app{
  transition: opacity .18s var(--ease-smooth);
}
body.is-navigating #app{
  opacity: .55;
}

/* ---- 3. Micro-interaction sur tous les boutons : petit "press" au clic ---- */
.btn{ transition: transform .18s var(--ease-smooth), box-shadow .25s var(--ease-smooth), background-color .25s var(--ease-smooth), color .25s var(--ease-smooth); }
.btn:active{ transform: scale(.96); }

/* ---- 4. Zoom doux sur les images de cartes au survol du parent ---- */
.field-card, .filiere-card, .travel-card, .destination-card, .mission-card{
  overflow: hidden;
}
.field-card .ph-wide img,
.filiere-card .ph-wide img,
.travel-card .ph-wide img,
.destination-card .ph-wide img,
.mission-card .ph-wide img,
.ph-banner img,
.ph-square img,
.ph-portrait img{
  transition: transform .6s var(--ease-smooth);
}
.field-card:hover .ph-wide img,
.filiere-card:hover .ph-wide img,
.travel-card:hover .ph-wide img,
.destination-card:hover .ph-wide img,
.mission-card:hover .ph-wide img{
  transform: scale(1.08);
}

/* ---- 5. Logos partenaires : légère mise en avant au survol ---- */
.partner-logo-link .img-placeholder img{
  transition: transform .4s var(--ease-smooth), filter .4s var(--ease-smooth);
}
.partner-logo-link:hover .img-placeholder img{
  transform: scale(1.06);
}

/* ---- 6. Compteurs de stats : petit "pop" à l'apparition ---- */
.stat-item .num{
  transition: transform .3s var(--ease-smooth);
}

/* ---- 7. Halo doré animé derrière le hero (purement décoratif, discret) --- */
.hero{
  position: relative;
  z-index: 0; /* crée un contexte d'empilement sans "isolation" (qui entre
                 en conflit avec le backdrop-filter du header sur certains
                 navigateurs et peut le faire disparaître au scroll) */
}
.hero::before{
  content: "";
  position: absolute;
  top: -20%;
  right: -10%;
  width: 480px;
  height: 480px;
  background: radial-gradient(circle, rgba(212,175,55,.16), transparent 70%);
  border-radius: 50%;
  z-index: -1;
  animation: floatOrb 9s ease-in-out infinite;
  pointer-events: none;
}
@keyframes floatOrb{
  0%, 100% { transform: translate(0, 0) scale(1); }
  50% { transform: translate(-24px, 28px) scale(1.08); }
}
@media (prefers-reduced-motion: reduce){
  .hero::before{ animation: none; }
}

/* ---- 8. Guichet featured : léger halo pulsé pour attirer l'oeil ---- */
.guichet-card.featured{
  position: relative;
}
.guichet-card.featured::after{
  content: "";
  position: absolute;
  inset: -1px;
  border-radius: inherit;
  box-shadow: 0 0 0 0 rgba(212,175,55,.45);
  animation: pulseGold 2.8s ease-out infinite;
  pointer-events: none;
}
@keyframes pulseGold{
  0% { box-shadow: 0 0 0 0 rgba(212,175,55,.35); }
  70% { box-shadow: 0 0 0 14px rgba(212,175,55,0); }
  100% { box-shadow: 0 0 0 0 rgba(212,175,55,0); }
}
@media (prefers-reduced-motion: reduce){
  .guichet-card.featured::after{ animation: none; }
}

/* ---- 9. Header : transition plus douce à l'apparition de l'ombre ---- */
.site-header{
  transition: box-shadow .3s var(--ease-smooth), background-color .3s var(--ease-smooth);
}

/* ---- 10. WhatsApp flottant : petite respiration pour capter l'attention ---- */
.wa-float{
  animation: breathe 3.2s ease-in-out infinite;
}
.wa-float:hover{ animation: none; }
@keyframes breathe{
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.07); }
}
@media (prefers-reduced-motion: reduce){
  .wa-float{ animation: none; }
}

/* ---- 11. Animations d'entrée en cascade dans les grilles de cartes ---- */
/* Chaque élément [data-reveal] d'une même grille se révèle avec un léger
   décalage plutôt que tous en même temps — donne un effet plus vivant. */
.poles-grid > [data-reveal]:nth-child(1), .fields-grid > [data-reveal]:nth-child(1), .guichet-grid > [data-reveal]:nth-child(1), .filiere-grid > [data-reveal]:nth-child(1), .destinations-grid > [data-reveal]:nth-child(1), .missions-grid > [data-reveal]:nth-child(1), .process-grid > [data-reveal]:nth-child(1), .travel-grid > [data-reveal]:nth-child(1), .partners-grid > [data-reveal]:nth-child(1), .country-row > [data-reveal]:nth-child(1), .pillar-icon-grid > [data-reveal]:nth-child(1) { transition-delay: 0ms; }
.poles-grid > [data-reveal]:nth-child(2), .fields-grid > [data-reveal]:nth-child(2), .guichet-grid > [data-reveal]:nth-child(2), .filiere-grid > [data-reveal]:nth-child(2), .destinations-grid > [data-reveal]:nth-child(2), .missions-grid > [data-reveal]:nth-child(2), .process-grid > [data-reveal]:nth-child(2), .travel-grid > [data-reveal]:nth-child(2), .partners-grid > [data-reveal]:nth-child(2), .country-row > [data-reveal]:nth-child(2), .pillar-icon-grid > [data-reveal]:nth-child(2) { transition-delay: 70ms; }
.poles-grid > [data-reveal]:nth-child(3), .fields-grid > [data-reveal]:nth-child(3), .guichet-grid > [data-reveal]:nth-child(3), .filiere-grid > [data-reveal]:nth-child(3), .destinations-grid > [data-reveal]:nth-child(3), .missions-grid > [data-reveal]:nth-child(3), .process-grid > [data-reveal]:nth-child(3), .travel-grid > [data-reveal]:nth-child(3), .partners-grid > [data-reveal]:nth-child(3), .country-row > [data-reveal]:nth-child(3), .pillar-icon-grid > [data-reveal]:nth-child(3) { transition-delay: 140ms; }
.poles-grid > [data-reveal]:nth-child(4), .fields-grid > [data-reveal]:nth-child(4), .guichet-grid > [data-reveal]:nth-child(4), .filiere-grid > [data-reveal]:nth-child(4), .destinations-grid > [data-reveal]:nth-child(4), .missions-grid > [data-reveal]:nth-child(4), .process-grid > [data-reveal]:nth-child(4), .travel-grid > [data-reveal]:nth-child(4), .partners-grid > [data-reveal]:nth-child(4), .country-row > [data-reveal]:nth-child(4), .pillar-icon-grid > [data-reveal]:nth-child(4) { transition-delay: 210ms; }
.poles-grid > [data-reveal]:nth-child(5), .fields-grid > [data-reveal]:nth-child(5), .guichet-grid > [data-reveal]:nth-child(5), .filiere-grid > [data-reveal]:nth-child(5), .destinations-grid > [data-reveal]:nth-child(5), .missions-grid > [data-reveal]:nth-child(5), .process-grid > [data-reveal]:nth-child(5), .travel-grid > [data-reveal]:nth-child(5), .partners-grid > [data-reveal]:nth-child(5), .country-row > [data-reveal]:nth-child(5), .pillar-icon-grid > [data-reveal]:nth-child(5) { transition-delay: 280ms; }
.poles-grid > [data-reveal]:nth-child(6), .fields-grid > [data-reveal]:nth-child(6), .guichet-grid > [data-reveal]:nth-child(6), .filiere-grid > [data-reveal]:nth-child(6), .destinations-grid > [data-reveal]:nth-child(6), .missions-grid > [data-reveal]:nth-child(6), .process-grid > [data-reveal]:nth-child(6), .travel-grid > [data-reveal]:nth-child(6), .partners-grid > [data-reveal]:nth-child(6), .country-row > [data-reveal]:nth-child(6), .pillar-icon-grid > [data-reveal]:nth-child(6) { transition-delay: 350ms; }
.poles-grid > [data-reveal]:nth-child(7), .fields-grid > [data-reveal]:nth-child(7), .guichet-grid > [data-reveal]:nth-child(7), .filiere-grid > [data-reveal]:nth-child(7), .destinations-grid > [data-reveal]:nth-child(7), .missions-grid > [data-reveal]:nth-child(7), .process-grid > [data-reveal]:nth-child(7), .travel-grid > [data-reveal]:nth-child(7), .partners-grid > [data-reveal]:nth-child(7), .country-row > [data-reveal]:nth-child(7), .pillar-icon-grid > [data-reveal]:nth-child(7) { transition-delay: 420ms; }
.poles-grid > [data-reveal]:nth-child(8), .fields-grid > [data-reveal]:nth-child(8), .guichet-grid > [data-reveal]:nth-child(8), .filiere-grid > [data-reveal]:nth-child(8), .destinations-grid > [data-reveal]:nth-child(8), .missions-grid > [data-reveal]:nth-child(8), .process-grid > [data-reveal]:nth-child(8), .travel-grid > [data-reveal]:nth-child(8), .partners-grid > [data-reveal]:nth-child(8), .country-row > [data-reveal]:nth-child(8), .pillar-icon-grid > [data-reveal]:nth-child(8) { transition-delay: 490ms; }
.poles-grid > [data-reveal]:nth-child(9), .fields-grid > [data-reveal]:nth-child(9), .guichet-grid > [data-reveal]:nth-child(9), .filiere-grid > [data-reveal]:nth-child(9), .destinations-grid > [data-reveal]:nth-child(9), .missions-grid > [data-reveal]:nth-child(9), .process-grid > [data-reveal]:nth-child(9), .travel-grid > [data-reveal]:nth-child(9), .partners-grid > [data-reveal]:nth-child(9), .country-row > [data-reveal]:nth-child(9), .pillar-icon-grid > [data-reveal]:nth-child(9) { transition-delay: 560ms; }
.poles-grid > [data-reveal]:nth-child(10), .fields-grid > [data-reveal]:nth-child(10), .guichet-grid > [data-reveal]:nth-child(10), .filiere-grid > [data-reveal]:nth-child(10), .destinations-grid > [data-reveal]:nth-child(10), .missions-grid > [data-reveal]:nth-child(10), .process-grid > [data-reveal]:nth-child(10), .travel-grid > [data-reveal]:nth-child(10), .partners-grid > [data-reveal]:nth-child(10), .country-row > [data-reveal]:nth-child(10), .pillar-icon-grid > [data-reveal]:nth-child(10) { transition-delay: 630ms; }

