/* =====================================================================
   animations.css — cinematic motion (toggled via JS)
   Enabled only when body has data-anim="on"
   ===================================================================== */

body[data-anim="on"] [data-reveal]{
  opacity:0; transform:translateY(30px);
  transition:opacity .8s var(--easing), transform .8s var(--easing);
  will-change:opacity, transform;
}
body[data-anim="on"] [data-reveal="left"]{ transform:translateX(-40px); }
body[data-anim="on"] [data-reveal="right"]{ transform:translateX(40px); }
body[data-anim="on"] [data-reveal="zoom"]{ transform:scale(.9); }
body[data-anim="on"] [data-reveal="rotate"]{ transform:rotate(-4deg) translateY(30px); }
body[data-anim="on"] [data-reveal].in{
  opacity:1; transform:none;
}

body[data-anim="on"] [data-reveal-stagger] > *{
  opacity:0; transform:translateY(20px);
  transition:opacity .6s var(--easing), transform .6s var(--easing);
}
body[data-anim="on"] [data-reveal-stagger].in > *{
  opacity:1; transform:none;
}
body[data-anim="on"] [data-reveal-stagger].in > *:nth-child(1){ transition-delay:.05s; }
body[data-anim="on"] [data-reveal-stagger].in > *:nth-child(2){ transition-delay:.15s; }
body[data-anim="on"] [data-reveal-stagger].in > *:nth-child(3){ transition-delay:.25s; }
body[data-anim="on"] [data-reveal-stagger].in > *:nth-child(4){ transition-delay:.35s; }
body[data-anim="on"] [data-reveal-stagger].in > *:nth-child(5){ transition-delay:.45s; }
body[data-anim="on"] [data-reveal-stagger].in > *:nth-child(6){ transition-delay:.55s; }
body[data-anim="on"] [data-reveal-stagger].in > *:nth-child(7){ transition-delay:.65s; }
body[data-anim="on"] [data-reveal-stagger].in > *:nth-child(8){ transition-delay:.75s; }

/* parallax */
body[data-parallax="on"] [data-parallax]{
  transition:transform .1s linear;
  will-change:transform;
}

/* sticky header shrink on scroll */
body[data-sticky="on"] .site-header.is-scrolled{
  height:calc(var(--header-h) * .85);
}
body[data-sticky="on"] .site-header.is-scrolled .brand__logo,
body[data-sticky="on"] .site-header.is-scrolled .brand__logo-img{
  transform:scale(.92);
}

/* counters count-up */
.count-up{ display:inline-block; }

/* hero entrance */
body[data-anim="on"] .hero__eyebrow{ animation:fadeUp .8s var(--easing) both; }
body[data-anim="on"] .hero__title span{ animation:fadeUp 1s var(--easing) both; }
body[data-anim="on"] .hero__title span:nth-child(2){ animation-delay:.1s; }
body[data-anim="on"] .hero__title span:nth-child(3){ animation-delay:.2s; }
body[data-anim="on"] .hero__sub{ animation:fadeUp 1s var(--easing) .3s both; }
body[data-anim="on"] .hero__cta{ animation:fadeUp 1s var(--easing) .5s both; }

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

/* image hover zoom inside cards */
.package-card__img-wrap{ overflow:hidden; }
.package-card__img{ height:100%; background-size:cover; background-position:center;
  transition:transform .8s var(--easing); }
.package-card:hover .package-card__img{ transform:scale(1.08); }

/* =====================================================================
   CARD HOVER MICRO-INTERACTIONS (site-wide)
   ===================================================================== */

/* 1 — shine sweep across package cards */
.package-card{ overflow:hidden; }
.package-card::before{
  content:''; position:absolute; inset:0; z-index:4;
  background:linear-gradient(105deg, transparent 42%, rgba(255,255,255,.22) 50%, transparent 58%);
  transform:translateX(-130%) skewX(-8deg);
  transition:transform 1s var(--easing);
  pointer-events:none;
}
.package-card:hover::before{ transform:translateX(130%) skewX(-8deg); }
.package-card:hover{
  border-color:color-mix(in srgb, var(--primary) 40%, transparent);
}
.package-card__category{
  transition:transform .35s var(--ease-bounce), background .35s var(--easing);
}
.package-card:hover .package-card__category{
  transform:translateY(3px) scale(1.07);
  background:#fff;
}
.package-card__title{ transition:color .3s var(--easing); }
.package-card:hover .package-card__title{ color:var(--primary); }
.package-card__price{ transition:transform .3s var(--ease-bounce); }
.package-card:hover .package-card__price{ transform:scale(1.06); }

/* 2 — testimonial cards: quote swell + author avatar spin */
.testi-card .quote{
  transition:transform .45s var(--ease-bounce), opacity .45s var(--easing);
}
.testi-card:hover .quote{
  transform:scale(1.2) rotate(-8deg);
  opacity:.22;
}
.testi-card__avatar{ transition:transform .4s var(--ease-bounce); }
.testi-card:hover .testi-card__avatar{ transform:rotate(-10deg) scale(1.1); }
.testi-card:hover .star{ animation:starPop .45s var(--ease-bounce) both; }
.testi-card:hover .star:nth-child(1){ animation-delay:.02s; }
.testi-card:hover .star:nth-child(2){ animation-delay:.06s; }
.testi-card:hover .star:nth-child(3){ animation-delay:.10s; }
.testi-card:hover .star:nth-child(4){ animation-delay:.14s; }
.testi-card:hover .star:nth-child(5){ animation-delay:.18s; }
@keyframes starPop{
  0%{ transform:scale(1); } 55%{ transform:scale(1.35) rotate(8deg); } 100%{ transform:scale(1); }
}

/* 3 — feature cards (Why Choose Us): icon float-in */
.testi-card > svg{
  transition:transform .4s var(--ease-bounce);
}
.testi-card:hover > svg{
  transform:translateY(-5px) scale(1.1) rotate(-3deg);
}

/* 4 — stat blocks */
.stat{
  padding:1.1rem .8rem; border-radius:var(--radius);
  transition:transform .35s var(--ease-bounce), background .35s var(--easing);
}
.stat:hover{ transform:translateY(-5px); background:color-mix(in srgb, var(--primary) 6%, transparent); }
.stat__num{ transition:color .3s var(--easing), text-shadow .3s var(--easing); }
.stat:hover .stat__num{ color:var(--accent); }

/* 5 — Google reviews badge */
.gr-badge{
  transition:transform .35s var(--ease-bounce), box-shadow .35s var(--easing);
}
.gr-badge:hover{
  transform:translateY(-5px) scale(1.02);
  box-shadow:var(--shadow-lg);
}

/* 6 — brand text color flip on hover */
.brand__text b{ transition:color .25s var(--easing); }
.brand:hover .brand__text b{ color:var(--accent); }

/* 7 — form card gentle lift (only on hover-capable devices) */
.form-card{ transition:box-shadow .4s var(--easing); }
@media (hover:hover){
  .form-card:hover{ box-shadow:var(--shadow-lg); }
}

/* 8 — hero slide morph transition (zoom + blur + crossfade) lives in base.css */

/* scroll progress bar at top */
.scroll-progress{
  position:fixed; top:0; left:0; height:3px; z-index:120;
  background:linear-gradient(90deg, var(--primary), var(--accent));
  width:0%; transition:width .1s linear;
}

/* prefers reduced motion */
@media (prefers-reduced-motion: reduce){
  body[data-anim="on"] [data-reveal],
  body[data-anim="on"] [data-reveal-stagger] > *{
    opacity:1 !important; transform:none !important; transition:none !important;
  }
  body[data-anim="on"] .hero__eyebrow,
  body[data-anim="on"] .hero__title span,
  body[data-anim="on"] .hero__sub,
  body[data-anim="on"] .hero__cta{ animation:none !important; }
  .testi-card:hover .star{ animation:none !important; }
  html{ scroll-behavior:auto; }
}
