/* ── Keyframes ── */
@keyframes scrollHint {
  0%, 100% { opacity: .4; transform: translateX(-50%) translateY(0); }
  50%       { opacity: .9; transform: translateX(-50%) translateY(7px); }
}

@keyframes dossierFloat {
  0%, 100% { transform: rotate(-3deg) translateY(0); }
  50%       { transform: rotate(-3deg) translateY(-10px); }
}

@keyframes glowPulse {
  0%, 100% { box-shadow: 0 0 20px rgba(82,182,255,.15); }
  50%       { box-shadow: 0 0 44px rgba(82,182,255,.34); }
}

@keyframes fadeUp {
  from { opacity: 0; transform: translateY(20px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* ── Shimmer text ── */
@keyframes shimmer {
  0%   { background-position: -200% center; }
  100% { background-position:  200% center; }
}

/* ── Border spin ── */
@keyframes borderSpin {
  to { --angle: 360deg; }
}

/* ── Float ── */
@keyframes floatY {
  0%, 100% { transform: translateY(0); }
  50%       { transform: translateY(-8px); }
}

/* ── Pulse ring ── */
@keyframes pulseRing {
  0%   { transform: scale(1);   opacity: .6; }
  100% { transform: scale(1.55); opacity: 0; }
}

/* ── Aurora drift ── */
@keyframes aurora {
  0%   { transform: translate(0, 0)    rotate(0deg); }
  33%  { transform: translate(3%, 2%)  rotate(3deg); }
  66%  { transform: translate(-2%, 4%) rotate(-2deg); }
  100% { transform: translate(0, 0)    rotate(0deg); }
}

/* ── Gradient text ── */
.text-gradient {
  background: linear-gradient(90deg, var(--accent), var(--accent-2), #c4a8ff, var(--accent));
  background-size: 200% auto;
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  animation: shimmer 4s linear infinite;
}

/* ── Glow card border on hover ── */
.service-card {
  position: relative;
  isolation: isolate;
}
.service-card::before {
  content: '';
  position: absolute;
  inset: -1px;
  border-radius: inherit;
  background: linear-gradient(135deg, rgba(82,182,255,.0), rgba(127,231,196,.0));
  z-index: -1;
  transition: background .4s ease;
  pointer-events: none;
}
.service-card:hover::before {
  background: linear-gradient(135deg, rgba(82,182,255,.35), rgba(127,231,196,.25));
}

/* ── Pulse ring on CTA button ── */
.btn--wa.btn--lg {
  position: relative;
}
.btn--wa.btn--lg::after {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: inherit;
  border: 2px solid rgba(37,211,102,.6);
  animation: pulseRing 2.2s ease-out infinite;
  pointer-events: none;
}

/* ── Aurora background orbs ── */
.aurora {
  position: fixed;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  overflow: hidden;
}
.aurora__orb {
  position: absolute;
  border-radius: 50%;
  filter: blur(80px);
  animation: aurora 18s ease-in-out infinite;
  opacity: .12;
}
.aurora__orb--1 {
  width: 55vw; height: 55vw;
  background: radial-gradient(circle, #1a6fff, transparent 70%);
  top: -15%; left: -10%;
  animation-duration: 22s;
}
.aurora__orb--2 {
  width: 45vw; height: 45vw;
  background: radial-gradient(circle, #7fe7c4, transparent 70%);
  top: 30%; right: -15%;
  animation-duration: 18s;
  animation-delay: -6s;
  opacity: .08;
}
.aurora__orb--3 {
  width: 40vw; height: 40vw;
  background: radial-gradient(circle, #c4a8ff, transparent 70%);
  bottom: -10%; left: 30%;
  animation-duration: 26s;
  animation-delay: -12s;
  opacity: .07;
}

/* ── Floating icon on service card ── */
.service-card:hover .service-card__icon {
  animation: floatY 2s ease-in-out infinite;
}

/* ── Glowing kicker dots ── */
.kicker {
  position: relative;
}
.kicker::before {
  content: '';
  display: inline-block;
  width: 6px; height: 6px;
  border-radius: 50%;
  background: var(--accent);
  margin-right: .5em;
  box-shadow: 0 0 8px var(--accent), 0 0 16px var(--accent);
  animation: glowPulse 2s ease-in-out infinite;
  vertical-align: middle;
}

/* ── Cursor spotlight ── */
@keyframes spotlightIn {
  from { opacity: 0; transform: scale(.6); }
  to   { opacity: 1; transform: scale(1); }
}
.cursor-spotlight {
  position: fixed;
  top: 0; left: 0;
  width: 400px; height: 400px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(82,182,255,.07) 0%, transparent 70%);
  pointer-events: none;
  z-index: 0;
  will-change: transform;
  animation: spotlightIn .6s ease forwards;
}

/* ── Sparkles ── */
@keyframes sparkleOut {
  0%   { opacity: 1; transform: translate(0,0) scale(1); }
  100% { opacity: 0;
         transform: translate(
           calc(cos(var(--angle)) * var(--dist)),
           calc(sin(var(--angle)) * var(--dist))
         ) scale(0); }
}
.sparkle {
  position: absolute;
  border-radius: 50%;
  background: var(--accent);
  box-shadow: 0 0 6px var(--accent);
  pointer-events: none;
  z-index: 999;
  animation: sparkleOut .65s ease forwards;
}

/* ── Section divider ── */
.section-divider {
  position: relative;
  z-index: 1;
  height: 1px;
  margin: 0 var(--container-pad, 2rem);
  background: linear-gradient(90deg, transparent, rgba(82,182,255,.18), rgba(127,231,196,.14), transparent);
}
.section-divider::after {
  content: '';
  position: absolute;
  top: -1px; left: 50%;
  transform: translateX(-50%);
  width: 60px; height: 3px;
  border-radius: 2px;
  background: linear-gradient(90deg, var(--accent), var(--accent-2));
  box-shadow: 0 0 12px var(--accent);
}

/* ── Nav brand glow ── */
.nav__brand {
  text-shadow: 0 0 20px rgba(82,182,255,.35);
}

/* ── Hero title glow ── */
.hero__title {
  text-shadow: 0 0 60px rgba(82,182,255,.08);
}
.hero__title em {
  text-shadow: 0 0 30px rgba(82,182,255,.25);
}

/* ── Lead magnet animated border ── */
@keyframes borderGlow {
  0%, 100% { box-shadow: 0 0 20px rgba(82,182,255,.12), inset 0 0 20px rgba(82,182,255,.03); }
  50%       { box-shadow: 0 0 45px rgba(82,182,255,.22), inset 0 0 30px rgba(82,182,255,.06); }
}
.lead-magnet {
  animation: borderGlow 4s ease-in-out infinite;
}

/* ── Process step hover accent ── */
.process-step:hover .process-step__title {
  color: var(--accent);
  text-shadow: 0 0 14px rgba(82,182,255,.3);
  transition: color .3s, text-shadow .3s;
}

/* ── FAQ glow on open ── */
.faq-item--open {
  box-shadow: 0 0 24px rgba(82,182,255,.10);
}

/* ── CTA section extra glow ── */
.section--cta .cta-block__title em {
  filter: drop-shadow(0 0 14px rgba(82,182,255,.4));
}

/* ── Scroll reveal ── */
.reveal {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity .7s var(--ease), transform .7s var(--ease);
}

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

/* Stagger in service grid */
.services-grid .service-card:nth-child(2) { transition-delay: .08s; }
.services-grid .service-card:nth-child(3) { transition-delay: .16s; }
.services-grid .service-card:nth-child(4) { transition-delay: .24s; }
.services-grid .service-card:nth-child(5) { transition-delay: .32s; }
.services-grid .service-card:nth-child(6) { transition-delay: .40s; }

/* Stagger in testimonials */
.testimonials-grid .testimonial-card:nth-child(2) { transition-delay: .1s; }
.testimonials-grid .testimonial-card:nth-child(3) { transition-delay: .2s; }

/* Stagger in portfolio */
.portfolio-list .portfolio-item:nth-child(2) { transition-delay: .07s; }
.portfolio-list .portfolio-item:nth-child(3) { transition-delay: .14s; }
.portfolio-list .portfolio-item:nth-child(4) { transition-delay: .21s; }
.portfolio-list .portfolio-item:nth-child(5) { transition-delay: .28s; }

/* Stagger hero content */
.hero__content .badge         { transition-delay: .1s; }
.hero__content .hero__title   { transition-delay: .2s; }
.hero__content .hero__lead    { transition-delay: .3s; }
.hero__content .hero__form    { transition-delay: .4s; }
.hero__content .hero__meta    { transition-delay: .5s; }
.hero__content .hero__stats   { transition-delay: .6s; }

/* ── Continuous animations ── */
.scroll-hint {
  animation: scrollHint 2.8s ease-in-out infinite;
}

.dossier__cover {
  animation: dossierFloat 4.5s ease-in-out infinite;
}

.pricing-card--featured {
  animation: glowPulse 3.2s ease-in-out infinite;
}

/* ── Input error shake ── */
@keyframes shake {
  0%, 100% { transform: translateX(0); }
  20%       { transform: translateX(-5px); }
  60%       { transform: translateX(5px); }
}

.input--error {
  animation: shake .35s var(--ease);
}
