/* Animations page d’accueil (.page-home) — sobres, type site agence */

.page-home .pro-why__accordions[data-reveal-block] {
  --reveal-delay: 0.1s;
}

.page-home .pro-why__showcase[data-reveal-block] {
  --reveal-delay: 0.2s;
}

.page-home .pro-home-cta__media[data-reveal-block] {
  --reveal-delay: 0.14s;
}

.page-home .home-testimonials-section {
  scroll-margin-top: calc(var(--header-h) + 0.5rem);
}

.page-home .home-testimonials {
  margin-top: clamp(1.75rem, 4vw, 2.35rem);
}

.page-home .home-testimonial {
  margin: 0;
  height: 100%;
  padding: 1.45rem 1.35rem 1.55rem;
  display: flex;
  flex-direction: column;
  text-align: left;
}

.page-home .home-testimonial__stars {
  color: #b45309;
  font-size: 0.82rem;
  letter-spacing: 0.08em;
  line-height: 1;
  margin-bottom: 0.7rem;
}

.page-home .home-testimonial blockquote {
  margin: 0 0 1rem;
  padding: 0;
  border: none;
  flex: 1;
}

.page-home .home-testimonial blockquote p {
  margin: 0;
  font-size: 0.98rem;
  line-height: 1.58;
  color: var(--ink-soft);
  font-style: italic;
}

.page-home .home-testimonial__by {
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--muted);
  font-style: normal;
}

.page-home .pro-section--dark .pro-dark-cards-grid {
  margin-top: 2.5rem;
}

.page-home .pro-section--dark .pro-card--translucent {
  background: rgba(255, 255, 255, 0.06);
  border-color: rgba(255, 255, 255, 0.12);
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.06) inset;
}

.page-home .pro-section--dark .pro-card--translucent:hover {
  border-color: rgba(94, 234, 212, 0.35);
  box-shadow:
    0 20px 40px rgba(0, 0, 0, 0.25),
    0 0 0 1px rgba(94, 234, 212, 0.2),
    0 1px 0 rgba(255, 255, 255, 0.06) inset;
}

.page-home .site-header {
  animation: home-header-in 0.65s cubic-bezier(0.22, 1, 0.36, 1) both;
}

@keyframes home-header-in {
  from {
    opacity: 0;
    transform: translateY(-16px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* Hero : entrée en cascade */
.page-home .pro-hero {
  position: relative;
  overflow: hidden;
}

.page-home .pro-hero::before {
  content: "";
  position: absolute;
  width: 140%;
  height: 80%;
  top: -20%;
  left: -20%;
  background: radial-gradient(ellipse 50% 40% at 70% 30%, rgba(15, 118, 110, 0.09), transparent 70%);
  pointer-events: none;
  animation: home-hero-mesh 20s ease-in-out infinite alternate;
}

@keyframes home-hero-mesh {
  from {
    transform: translate(0, 0) scale(1);
    opacity: 0.7;
  }
  to {
    transform: translate(-4%, 3%) scale(1.05);
    opacity: 1;
  }
}

@keyframes home-hero-line-in {
  from {
    opacity: 0;
    transform: translateY(26px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.page-home .pro-hero__copy > * {
  opacity: 0;
  animation: home-hero-line-in 0.75s cubic-bezier(0.22, 1, 0.36, 1) both;
}

.page-home .pro-hero__copy > *:nth-child(1) {
  animation-delay: 0.08s;
}

.page-home .pro-hero__copy > *:nth-child(2) {
  animation-delay: 0.16s;
}

.page-home .pro-hero__copy > *:nth-child(3) {
  animation-delay: 0.24s;
}

.page-home .pro-hero__copy > *:nth-child(4) {
  animation-delay: 0.32s;
}

.page-home .pro-hero__copy > *:nth-child(5) {
  animation-delay: 0.4s;
}

.page-home .pro-hero__visual {
  opacity: 0;
  animation: home-hero-visual-in 0.9s cubic-bezier(0.22, 1, 0.36, 1) 0.28s both;
}

@keyframes home-hero-visual-in {
  from {
    opacity: 0;
    transform: translateY(24px) scale(0.97);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

.page-home .pro-hero__visual img {
  animation: home-hero-float 7s ease-in-out 1.1s infinite;
}

@keyframes home-hero-float {
  0%,
  100% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-8px);
  }
}

/* Blocs révélés au scroll */
[data-reveal-block] {
  opacity: 0;
  transform: translateY(36px);
  transition:
    opacity 0.7s cubic-bezier(0.22, 1, 0.36, 1),
    transform 0.7s cubic-bezier(0.22, 1, 0.36, 1);
  transition-delay: var(--reveal-delay, 0s);
}

[data-reveal-block].is-revealed {
  opacity: 1;
  transform: translateY(0);
}

/* Section sombre : halo animé + cartes */
.page-home .pro-section--dark {
  position: relative;
  overflow: hidden;
}

.page-home .pro-section--dark::after {
  content: "";
  position: absolute;
  inset: -30% -10%;
  background: radial-gradient(ellipse 60% 50% at 85% 80%, rgba(94, 234, 212, 0.12), transparent 55%),
    radial-gradient(ellipse 50% 40% at 10% 20%, rgba(91, 33, 182, 0.1), transparent 50%);
  pointer-events: none;
  z-index: 0;
  animation: home-dark-aurora 16s ease-in-out infinite alternate;
}

@keyframes home-dark-aurora {
  from {
    transform: translateX(-2%) rotate(0deg);
    opacity: 0.85;
  }
  to {
    transform: translateX(2%) rotate(1deg);
    opacity: 1;
  }
}

.page-home .pro-section--dark > .container {
  position: relative;
  z-index: 1;
}

.page-home .pro-section--dark .pro-card.is-revealed {
  transition:
    transform 0.45s cubic-bezier(0.22, 1, 0.36, 1),
    box-shadow 0.45s ease,
    border-color 0.35s ease,
    background 0.35s ease;
}

.page-home .pro-section--dark .pro-card.is-revealed:hover {
  transform: translateY(-8px);
  border-color: rgba(94, 234, 212, 0.35);
  box-shadow:
    0 20px 50px rgba(0, 0, 0, 0.25),
    0 0 0 1px rgba(94, 234, 212, 0.15);
  background: rgba(255, 255, 255, 0.09) !important;
}

.page-home .pro-section--dark .pro-card.is-revealed:hover .pro-card__icon {
  transform: scale(1.1) translateY(-3px);
}

/* Boutons CTA : reflet au survol */
.page-home .btn--primary {
  transition:
    transform 0.3s cubic-bezier(0.22, 1, 0.36, 1),
    box-shadow 0.35s ease,
    filter 0.25s ease;
}

.page-home .btn--primary:hover {
  filter: brightness(1.06);
  box-shadow: 0 10px 32px rgba(15, 118, 110, 0.42);
}

/* Bloc contact accueil : illustration colorée + texte centré verticalement */
.page-home .pro-section--home-cta .pro-split {
  align-items: center;
}

/* Illustration locale : dégradé déjà intégré au PNG — pas de multiply ni calque supplémentaire */
.page-home .pro-home-cta__media {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  background: #fff;
  border: 1px solid var(--line);
  box-shadow: var(--shadow);
}

.page-home .pro-home-cta__media::before {
  display: none;
}

.page-home .pro-home-cta__media img {
  position: relative;
  z-index: 1;
  display: block;
  width: 100%;
  height: auto;
  mix-blend-mode: normal;
  filter: none;
}

/* Médias (split) : léger zoom au scroll reveal */
.page-home .pro-split__media {
  transition: transform 0.5s cubic-bezier(0.22, 1, 0.36, 1), box-shadow 0.45s ease;
}

.page-home [data-reveal-block].is-revealed .pro-split__media:not(.pro-home-cta__media),
.page-home .pro-split__media[data-reveal-block].is-revealed:not(.pro-home-cta__media) {
  animation: home-media-settle 0.8s cubic-bezier(0.22, 1, 0.36, 1) both;
}

@keyframes home-media-settle {
  from {
    transform: scale(0.98);
    box-shadow: 0 8px 24px rgba(15, 23, 42, 0.06);
  }
  to {
    transform: scale(1);
    box-shadow:
      0 1px 2px rgba(15, 23, 42, 0.06),
      0 12px 40px rgba(15, 23, 42, 0.08);
  }
}

.page-home .pro-home-cta__media[data-reveal-block].is-revealed {
  animation: home-cta-media-settle 0.8s cubic-bezier(0.22, 1, 0.36, 1) both;
}

@keyframes home-cta-media-settle {
  from {
    transform: scale(0.98);
    box-shadow: 0 8px 24px rgba(15, 23, 42, 0.06);
  }
  to {
    transform: scale(1);
    box-shadow: var(--shadow);
  }
}

.page-home .pro-split__media:hover {
  transform: scale(1.02);
  box-shadow: 0 20px 48px rgba(15, 23, 42, 0.12);
}

.page-home .pro-home-cta__media:hover {
  box-shadow: 0 20px 48px rgba(15, 23, 42, 0.12);
}

/* Cadre vitrine « Pourquoi » */
.page-home .pro-why__frame {
  transition: transform 0.5s cubic-bezier(0.22, 1, 0.36, 1), box-shadow 0.45s ease;
}

.page-home [data-reveal-block].is-revealed .pro-why__frame {
  animation: home-frame-in 0.85s cubic-bezier(0.22, 1, 0.36, 1) both;
}

@keyframes home-frame-in {
  from {
    opacity: 0.85;
    transform: translateY(16px) scale(0.98);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

.page-home .pro-why__showcase.is-revealed .pro-why__frame:hover {
  transform: translateY(-4px);
  box-shadow:
    0 28px 60px rgba(15, 23, 42, 0.14),
    0 0 0 1px rgba(15, 118, 110, 0.12);
}

@media (prefers-reduced-motion: reduce) {
  .page-home .site-header,
  .page-home .pro-hero__copy > *,
  .page-home .pro-hero__visual,
  .page-home .pro-hero__visual img {
    animation: none !important;
  }

  .page-home .pro-hero__copy > *,
  .page-home .pro-hero__visual {
    opacity: 1 !important;
    transform: none !important;
  }

  .page-home .pro-hero::before,
  .page-home .pro-section--dark::after {
    animation: none !important;
  }

  .page-home .btn--primary:hover {
    filter: none;
  }

  .page-home .pro-split__media:hover,
  .page-home .pro-why__showcase.is-revealed .pro-why__frame:hover {
    transform: none;
  }

  .page-home .pro-split__media[data-reveal-block].is-revealed {
    animation: none !important;
  }

  [data-reveal-block] {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
}
