/* =====================================================================
   NAISHITHA GOLD — ANIMATION LAYER  (loaded after style.css)
   transform/opacity only · GPU-friendly · prefers-reduced-motion aware
   Rollback: remove the anim.css <link> + js/anim.js <script> from header.php
   ===================================================================== */

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

/* ---------- SCROLL REVEAL (hidden only when JS is active) ---------- */
html.anim-ready .reveal {
  opacity: 0;
  transform: translateY(22px);
  transition: opacity .7s var(--ease-lux), transform .7s var(--ease-lux);
  will-change: opacity, transform;
}
html.anim-ready .reveal.in-view { opacity: 1; transform: none; }

/* ---------- HERO ENTRANCE (on load, staggered) ---------- */
@keyframes luxUp  { from { opacity:0; transform:translateY(20px); } to { opacity:1; transform:none; } }
@keyframes luxImg { from { opacity:0; transform:translateY(16px) scale(.985); } to { opacity:1; transform:none; } }

html.anim-ready .hpro-tag         { animation: luxUp .70s .05s both; animation-timing-function: var(--ease-lux); }
html.anim-ready .hpro-h1          { animation: luxUp .75s .16s both; animation-timing-function: var(--ease-lux); }
html.anim-ready .hpro-sub         { animation: luxUp .75s .28s both; animation-timing-function: var(--ease-lux); }
html.anim-ready .hpro-stats       { animation: luxUp .75s .40s both; animation-timing-function: var(--ease-lux); }
html.anim-ready .hpro-btns        { animation: luxUp .75s .52s both; animation-timing-function: var(--ease-lux); }
html.anim-ready .hpro-trust-chips { animation: luxUp .75s .64s both; animation-timing-function: var(--ease-lux); }
html.anim-ready .hpro-visual      { animation: luxImg 1.0s .35s both; animation-timing-function: var(--ease-lux); }

/* ---------- GENTLE FLOAT + GLOW (continuous, very subtle) ---------- */
@keyframes floaty     { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-9px); } }
@keyframes badgeFloat { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-6px); } }
@keyframes glowPulse  { 0%,100% { opacity: .55; } 50% { opacity: 1; } }

html.anim-ready .hpro-img         { animation: floaty 5s ease-in-out 1.4s infinite; }
html.anim-ready .hpro-float-badge { animation: luxUp .7s .95s both, badgeFloat 4s ease-in-out 1.8s infinite; }
html.anim-ready .hpro-glow        { animation: glowPulse 7s ease-in-out infinite; }

/* ---------- GOLD SHIMMER on the headline accent ---------- */
@supports ((-webkit-background-clip: text) or (background-clip: text)) {
  @keyframes goldShimmer { to { background-position: 200% center; } }
  html.anim-ready .hpro-gold {
    background: linear-gradient(100deg,#B8860B 0%,#D4AF37 22%,#F6E596 45%,#D4AF37 68%,#B8860B 100%);
    background-size: 200% auto;
    -webkit-background-clip: text; background-clip: text;
    -webkit-text-fill-color: transparent; color: transparent;
    animation: goldShimmer 4.5s linear infinite;
  }
}

/* ---------- CARD HOVER POLISH ---------- */
.service-card, .step-card, .why-card, .branch-card, .blog-card {
  transition: transform .35s var(--ease-lux), box-shadow .35s var(--ease-lux), border-color .35s var(--ease-lux);
}
.service-card:hover { transform: translateY(-6px); box-shadow: 0 14px 32px rgba(184,134,11,.18); }
.why-card:hover     { transform: translateY(-5px); box-shadow: 0 12px 28px rgba(184,134,11,.16); }
.step-card:hover    { transform: translateY(-5px); }
.branch-card:hover  { transform: translateY(-5px); box-shadow: 0 14px 32px rgba(184,134,11,.16); }

.service-card .service-icon { transition: transform .45s var(--ease-lux); }
.service-card:hover .service-icon { transform: scale(1.08) rotate(-3deg); }

/* ---------- PRIMARY BUTTON SHINE SWEEP ---------- */
.hpro-btn-gold, .btn-primary { position: relative; overflow: hidden; }
.hpro-btn-gold::after, .btn-primary::after {
  content: ""; position: absolute; top: 0; left: -130%; width: 55%; height: 100%;
  background: linear-gradient(100deg, transparent, rgba(255,255,255,.5), transparent);
  transform: skewX(-20deg); pointer-events: none;
}
.hpro-btn-gold:hover::after, .btn-primary:hover::after { animation: btnShine .85s var(--ease-lux); }
@keyframes btnShine { from { left: -130%; } to { left: 140%; } }

/* ---------- TRUST STRIP ICON POP ---------- */
.trust-item svg { transition: transform .3s var(--ease-lux); }
.trust-item:hover svg { transform: translateY(-2px) scale(1.14); }

/* ---------- count-up: stable digits ---------- */
.hpro-stat strong { font-variant-numeric: tabular-nums; }

/* ---------- ease the heavy continuous loops off small phones ---------- */
@media (max-width: 768px) {
  html.anim-ready .hpro-img, html.anim-ready .hpro-glow { animation: none; }
}

/* ---------- REDUCED MOTION: hard off ---------- */
@media (prefers-reduced-motion: reduce) {
  html.anim-ready .reveal { opacity: 1 !important; transform: none !important; transition: none !important; }
  *, *::before, *::after { animation: none !important; }
  @supports ((-webkit-background-clip: text) or (background-clip: text)) {
    html.anim-ready .hpro-gold { -webkit-text-fill-color: #D4AF37; color: #D4AF37; }
  }
}
