/* Ruthene Coach'in – animations (entrées au scroll, smooth scroll, survols).
   Tout est désactivé si l'utilisateur demande moins de mouvement. */

html { scroll-behavior: smooth; scroll-padding-top: 90px; }

/* ---------- Entrées au scroll (appliquées par animations.js) ---------- */
html.rc-js .rc-reveal {
  opacity: 0;
  transform: translate3d(0, 28px, 0);
  transition: opacity .7s cubic-bezier(.22, .61, .36, 1), transform .7s cubic-bezier(.22, .61, .36, 1);
  transition-delay: calc(var(--rc-i, 0) * 90ms);
  will-change: opacity, transform;
}
html.rc-js .rc-reveal.rc-in { opacity: 1; transform: none; }
html.rc-js .rc-reveal.rc-in.rc-done { will-change: auto; transition-delay: 0s; }
/* variantes */
html.rc-js .rc-reveal.rc-from-left  { transform: translate3d(-40px, 0, 0); }
html.rc-js .rc-reveal.rc-from-right { transform: translate3d(40px, 0, 0); }
html.rc-js .rc-reveal.rc-zoom       { transform: scale(.94); }
html.rc-js .rc-reveal.rc-in.rc-from-left,
html.rc-js .rc-reveal.rc-in.rc-from-right,
html.rc-js .rc-reveal.rc-in.rc-zoom { transform: none; }

/* Titres de section : léger balayage de bas en haut plus lent */
html.rc-js .rc-reveal.elementor-widget-heading { transition-duration: .9s; }

/* ---------- En-tête ---------- */
#masthead { transition: box-shadow .35s ease, background-color .35s ease; }
body.rc-scrolled #masthead { box-shadow: 0 6px 24px rgba(0, 0, 0, .45); }
.site-logo-img .custom-logo { transition: transform .35s cubic-bezier(.22, .61, .36, 1); }
.site-logo-img a:hover .custom-logo { transform: rotate(-6deg) scale(1.06); }

/* Liens du menu : soulignement qui glisse */
.main-header-menu > .menu-item > .menu-link { position: relative; transition: color .25s ease; }
.main-header-menu > .menu-item > .menu-link::after {
  content: ""; position: absolute; left: 1em; right: 1em; bottom: .35em; height: 2px;
  background: currentColor; transform: scaleX(0); transform-origin: left center;
  transition: transform .3s cubic-bezier(.22, .61, .36, 1);
}
.main-header-menu > .menu-item:hover > .menu-link::after,
.main-header-menu > .menu-item.current-menu-item > .menu-link::after,
.main-header-menu > .menu-item.current-menu-ancestor > .menu-link::after { transform: scaleX(1); }
.main-header-menu .sub-menu .menu-link { transition: padding-left .25s ease, color .25s ease, background-color .25s ease; }
.main-header-menu .sub-menu .menu-item:hover > .menu-link { padding-left: 1.4em; }

/* ---------- Boutons ---------- */
.elementor-button, .rc-form button {
  transition: transform .25s cubic-bezier(.22, .61, .36, 1), box-shadow .25s ease, background-color .25s ease, color .25s ease, filter .25s ease;
  will-change: transform;
}
.elementor-button:hover, .rc-form button:hover { transform: translateY(-3px); box-shadow: 0 12px 28px -8px rgba(230, 62, 79, .6); filter: brightness(1.05); }
.elementor-button:active, .rc-form button:active { transform: translateY(-1px) scale(.98); box-shadow: 0 6px 14px -6px rgba(230, 62, 79, .6); transition-duration: .1s; }
.elementor-button .elementor-button-content-wrapper { transition: letter-spacing .25s ease; }
.elementor-button:hover .elementor-button-content-wrapper { letter-spacing: .02em; }

/* ---------- Images & cartes ---------- */
.elementor-widget-image .elementor-widget-container { overflow: hidden; }
.elementor-widget-image img { transition: transform .6s cubic-bezier(.22, .61, .36, 1), filter .6s ease; }
.elementor-widget-image:hover img { transform: scale(1.04); }

/* Galerie filtrable (accueil) */
.eael-filterable-gallery-item-wrap { transition: transform .35s cubic-bezier(.22, .61, .36, 1), box-shadow .35s ease; }
.eael-filterable-gallery-item-wrap:hover { transform: translateY(-8px); box-shadow: 0 22px 40px -18px rgba(0, 0, 0, .35); }
.eael-filterable-gallery-item-wrap .gallery-item-thumbnail-wrap { overflow: hidden; }
.eael-filterable-gallery-item-wrap .gallery-item-thumbnail-wrap img { transition: transform .7s cubic-bezier(.22, .61, .36, 1); }
.eael-filterable-gallery-item-wrap:hover .gallery-item-thumbnail-wrap img { transform: scale(1.07); }
.eael-filterable-gallery-item-wrap .fg-item-title { transition: color .25s ease; }
.eael-filterable-gallery-item-wrap:hover .fg-item-title { color: #e63e4f; }

/* Conteneurs Elementor avec fond (cartes de l'équipe, blocs de services) */
.e-con.e-child[data-settings*="background_background"] { transition: transform .35s cubic-bezier(.22, .61, .36, 1), box-shadow .35s ease; }

/* Accordéon */
.eael-accordion-header { transition: background-color .25s ease, color .25s ease, padding-left .25s ease; }
.eael-accordion-header:hover { padding-left: 1.6em; }
.eael-accordion-header .eael-accordion-tab-title { transition: color .25s ease; }
.eael-accordion-header .fa-toggle, .eael-accordion-header .eael-advanced-accordion-icon-opened,
.eael-accordion-header .eael-advanced-accordion-icon-closed { transition: transform .3s ease; }
.eael-accordion-header.show-this .fa-toggle { transform: rotate(180deg); }

/* Vidéos */
.elementor-widget-video .elementor-widget-container { transition: transform .5s cubic-bezier(.22, .61, .36, 1), box-shadow .5s ease; }
.elementor-widget-video:hover .elementor-widget-container { transform: scale(1.015); box-shadow: 0 30px 60px -30px rgba(0, 0, 0, .6); }

/* Liens dans les textes et le pied de page */
.elementor-widget-text-editor a:not(.elementor-button) { position: relative; transition: color .25s ease; background-image: linear-gradient(currentColor, currentColor); background-size: 0 1px; background-position: 0 100%; background-repeat: no-repeat; transition: background-size .3s ease, color .25s ease; }
.elementor-widget-text-editor a:not(.elementor-button):hover { background-size: 100% 1px; }
.elementor-2138 a { transition: color .25s ease, opacity .25s ease; }
.elementor-2138 a:hover { opacity: .75; }

/* Bouton retour en haut */
#ast-scroll-top { transition: transform .3s cubic-bezier(.22, .61, .36, 1), opacity .3s ease, box-shadow .3s ease; }
#ast-scroll-top:hover { transform: translateY(-4px); box-shadow: 0 10px 24px -8px rgba(230, 62, 79, .7); }
#ast-scroll-top:hover .ast-arrow-svg { animation: rc-bounce .9s ease-in-out infinite; }
@keyframes rc-bounce { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-4px); } }

/* Barre de progression de lecture en haut */
.rc-progress { position: fixed; top: 0; left: 0; height: 3px; width: 0; background: #e63e4f; z-index: 100000; pointer-events: none; transition: width .15s linear; }

/* Icônes sociales / listes */
.elementor-social-icon, .elementor-icon-list-item { transition: transform .25s ease; }
.elementor-social-icon:hover { transform: translateY(-3px) scale(1.08); }
.elementor-icon-list-item:hover { transform: translateX(4px); }

/* ---------- Mobile : effets plus courts ---------- */
@media (max-width: 767px) {
  html.rc-js .rc-reveal { transform: translate3d(0, 18px, 0); transition-duration: .5s; transition-delay: calc(var(--rc-i, 0) * 50ms); }
  .elementor-widget-image:hover img, .eael-filterable-gallery-item-wrap:hover { transform: none; }
}

/* ---------- Accessibilité : réduction des animations ---------- */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  html.rc-js .rc-reveal { opacity: 1 !important; transform: none !important; transition: none !important; }
  *, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}
