/************************************
 * BhoomiVista Animation System v1
 * Soft / Smooth Brand Motion
 * Author: (Your Theme)
 ***********************************



<!--
============================================================
                BHOOMIVISTA ANIMATION SYSTEM
                 Documentation & Usage Guide
============================================================

GLOBAL GROUPS (All animations are modular)
------------------------------------------
1. Hover Animations
    - bv-hover-scale
    - bv-hover-up
    - bv-hover-shadow
    - bv-hover-glow
    - bv-hover-tilt

2. Load Animations (trigger once on page load)
    - bv-fade-in
    - bv-slide-up
    - bv-slide-left
    - bv-slide-right
    - Stagger helpers:
        - bv-stagger-1
        - bv-stagger-2
        - bv-stagger-3
        - bv-stagger-4

3. Scroll Animations (scroll-driven; pure CSS)
    - bv-scroll-fade
    - bv-scroll-pop

4. Ambient Animations (continuous)
    - bv-float
    - bv-pulse

5. Advanced Effects
    - bv-mask-reveal
    - bv-underline
    - bv-icon-spin
    - bv-flip

6. Timing Variables (global)
    --bv-speed-fast: 0.25s;
    --bv-speed-normal: 0.45s;
    --bv-speed-slow: 0.85s;
    --bv-ease: cubic-bezier(0.25, 0.1, 0.25, 1);
    --bv-ease-soft: cubic-bezier(0.39, 0.18, 0.25, 1);

------------------------------------------------------------
 HOW TO USE IN KADENCE
------------------------------------------------------------
For ANY block:
Kadence Block → Advanced → Additional CSS Class(es)

Example:
    bv-hover-scale
    bv-slide-up bv-stagger-2
    bv-scroll-fade bv-hover-shadow

Multiple classes allowed:
    bv-slide-up bv-hover-scale bv-stagger-3

------------------------------------------------------------
 SAFE COMBINATION RULES
------------------------------------------------------------
• You CAN combine:
    Hover + Load + Scroll + Ambient + Timing

• You CANNOT combine:
    - Two hover animations at same time
    - Two load animations at same time
    - Two scroll animations at same time

Everything else = SAFE.

------------------------------------------------------------
 HOVER COMBINATIONS
------------------------------------------------------------
1) Soft scale + shadow
    bv-hover-scale bv-hover-shadow

2) Lift + glow
    bv-hover-up bv-hover-glow

3) Tilt (optional)
    bv-hover-tilt

------------------------------------------------------------
 LOAD / PAGE-ENTRY COMBINATIONS
------------------------------------------------------------
1) Heading fade + slide
    bv-slide-up bv-stagger-2

2) Text reveal
    bv-mask-reveal bv-stagger-3

3) Left-side entrance
    bv-slide-left

------------------------------------------------------------
 SCROLL ANIMATION COMBINATIONS
------------------------------------------------------------
1) Fade on scroll
    bv-scroll-fade

2) Pop on scroll + delay
    bv-scroll-pop bv-stagger-2

3) Image scroll reveal + hover scale
    bv-scroll-fade bv-hover-scale

------------------------------------------------------------
 AMBIENT / CONTINUOUS EFFECTS
------------------------------------------------------------
1) Floating element
    bv-float

2) Pulsing CTA
    bv-pulse bv-hover-scale

------------------------------------------------------------
 ADVANCED VISUAL EFFECTS
------------------------------------------------------------
1) Mask Reveal (great for hero headings)
    bv-mask-reveal

2) Underline Sweep (links & headings)
    bv-underline

3) Spinning Icon (on hover)
    bv-icon-spin

4) Card Flip
    bv-flip

------------------------------------------------------------
 REAL-WORLD USAGE EXAMPLES
------------------------------------------------------------

HERO SECTION
------------
Hero Heading:
    bv-slide-up bv-mask-reveal bv-stagger-2

Hero Subheading:
    bv-slide-up bv-stagger-3

Hero CTA Button:
    bv-hover-scale bv-hover-shadow bv-slide-up bv-stagger-4


CARDS / GRID SECTIONS
---------------------
Card:
    bv-hover-shadow bv-hover-up bv-scroll-pop

Card Image:
    bv-scroll-fade bv-hover-scale

Card Title:
    bv-slide-up bv-stagger-1


FEATURE SECTION / CONTENT BLOCKS
--------------------------------
Paragraph:
    bv-scroll-fade bv-stagger-1

Feature Column:
    bv-scroll-pop bv-stagger-2


ICONS / SMALL ELEMENTS
----------------------
Icon with spin:
    bv-icon-spin bv-slide-up

Icon row:
    bv-scroll-fade bv-float


GALLERY / IMAGE ROWS
--------------------
Image:
    bv-scroll-fade bv-hover-up


CONTACT FORM / CTA BLOCKS
-------------------------
Form container:
    bv-slide-up

Submit button:
    bv-hover-scale bv-hover-shadow


------------------------------------------------------------
 SUMMARY
------------------------------------------------------------
- Use Additional CSS Class in Kadence to assign animations.
- Combine hover + load + scroll + ambient freely.
- Avoid using more than one animation from the SAME category.
- System is modular, scalable, and brand-aligned (soft/smooth).

============================================================
END OF BHOOMIVISTA ANIMATION SYSTEM DOCUMENTATION
============================================================
-->

/*******************************************************
 * BhoomiVista Animation System v1.1 (Optimized)
 * Brand Style: Soft / Smooth
 * Global performance tuned (GPU accelerated)
 *******************************************************/
/* ----------------------------------------------------
   GLOBAL VARIABLES (timings + easings)
---------------------------------------------------- */
:root {
  --bv-speed-fast: 0.25s;
  --bv-speed-normal: 0.45s;
  --bv-speed-slow: 0.85s;

  /* Soft + premium easing curve */
  --bv-ease: cubic-bezier(0.22, 0.61, 0.36, 1);
  --bv-ease-soft: cubic-bezier(0.22, 0.61, 0.36, 1);
}

/* ----------------------------------------------------
   BASE TRANSFORM PRESETS (to prevent jump on hover)
---------------------------------------------------- */
.bv-base {
  transform: translateZ(0);
  will-change: transform;
}

/* ----------------------------------------------------
   HOVER ANIMATIONS (smooth, GPU-accelerated)
---------------------------------------------------- */

/* Smooth Scale */
.bv-hover-scale {
  transform: translateZ(0);
  will-change: transform;
  transition: transform var(--bv-speed-normal) var(--bv-ease);
}
.bv-hover-scale:hover {
  transform: scale(1.05);
}

/* Smooth Lift Up */
.bv-hover-up {
  transform: translateY(0) translateZ(0);
  will-change: transform;
  transition: transform var(--bv-speed-normal) var(--bv-ease);
}
.bv-hover-up:hover {
  transform: translateY(-6px);
}

/* Smooth Shadow Lift */
.bv-hover-shadow {
  transform: translateY(0) translateZ(0);
  will-change: transform, box-shadow;
  transition: all var(--bv-speed-normal) var(--bv-ease);
}
.bv-hover-shadow:hover {
  transform: translateY(-4px);
  box-shadow: 0 12px 28px rgba(0, 0, 0, 0.15);
}

/* Soft Glow */
.bv-hover-glow {
  transform: translateZ(0);
  will-change: box-shadow;
  transition: box-shadow var(--bv-speed-normal) var(--bv-ease);
}
.bv-hover-glow:hover {
  box-shadow: 0 0 16px rgba(255,255,255,0.45);
}

/* Soft Tilt */
.bv-hover-tilt {
  transform: translateZ(0);
  will-change: transform;
  transition: transform var(--bv-speed-normal) var(--bv-ease);
}
.bv-hover-tilt:hover {
  transform: rotate3d(1,1,0,3deg);
}

/* ----------------------------------------------------
   LOAD ANIMATIONS (page entry)
---------------------------------------------------- */

/* Fade In */
@keyframes bvFadeIn {
  from { opacity: 0; }
  to   { opacity: 1; }
}
.bv-fade-in {
  opacity: 0;
  animation: bvFadeIn var(--bv-speed-normal) var(--bv-ease) forwards;
}

/* Slide Up */
@keyframes bvSlideUp {
  from { opacity: 0; transform: translateY(22px); }
  to   { opacity: 1; transform: translateY(0); }
}
.bv-slide-up {
  opacity: 0;
  transform: translateY(22px);
  animation: bvSlideUp var(--bv-speed-normal) var(--bv-ease) forwards;
}

/* Slide Left */
@keyframes bvSlideLeft {
  from { opacity: 0; transform: translateX(30px); }
  to   { opacity: 1; transform: translateX(0); }
}
.bv-slide-left {
  opacity: 0;
  transform: translateX(30px);
  animation: bvSlideLeft var(--bv-speed-normal) var(--bv-ease) forwards;
}

/* Slide Right */
@keyframes bvSlideRight {
  from { opacity: 0; transform: translateX(-30px); }
  to   { opacity: 1; transform: translateX(0); }
}
.bv-slide-right {
  opacity: 0;
  transform: translateX(-30px);
  animation: bvSlideRight var(--bv-speed-normal) var(--bv-ease) forwards;
}

/* Stagger */
.bv-stagger-1 { animation-delay: 0.1s; }
.bv-stagger-2 { animation-delay: 0.2s; }
.bv-stagger-3 { animation-delay: 0.3s; }
.bv-stagger-4 { animation-delay: 0.4s; }

/* ----------------------------------------------------
   SCROLL ANIMATIONS (CSS Scroll Timeline)
---------------------------------------------------- */

/* Scroll Fade */
@keyframes bvScrollFade {
  from { opacity: 0; transform: translateY(24px); }
  to   { opacity: 1; transform: translateY(0); }
}
.bv-scroll-fade {
  opacity: 0;
  transform: translateY(24px);
  animation: bvScrollFade var(--bv-speed-slow) var(--bv-ease) forwards;
  animation-timeline: view();
  animation-range: entry 0% cover 30%;
}

/* Scroll Pop */
@keyframes bvScrollPop {
  from { opacity: 0; transform: scale(0.9); }
  to   { opacity: 1; transform: scale(1); }
}
.bv-scroll-pop {
  opacity: 0;
  transform: scale(0.9);
  animation: bvScrollPop var(--bv-speed-normal) var(--bv-ease) forwards;
  animation-timeline: view();
  animation-range: entry 0% cover 25%;
}

/* ----------------------------------------------------
   AMBIENT ANIMATIONS (continuous, subtle)
---------------------------------------------------- */

/* Gentle Float */
@keyframes bvFloat {
  0%   { transform: translateY(0); }
  50%  { transform: translateY(-6px); }
  100% { transform: translateY(0); }
}
.bv-float {
  transform: translateZ(0);
  will-change: transform;
  animation: bvFloat 4s ease-in-out infinite;
}

/* Pulse (soft) */
@keyframes bvPulse {
  0%   { transform: scale(1); }
  50%  { transform: scale(1.06); }
  100% { transform: scale(1); }
}
.bv-pulse {
  transform: translateZ(0);
  will-change: transform;
  animation: bvPulse 2.6s ease-in-out infinite;
}

/* ----------------------------------------------------
   ADVANCED EFFECTS
---------------------------------------------------- */

/* Mask Reveal */
@keyframes bvMaskReveal {
  from { clip-path: inset(0 100% 0 0); }
  to   { clip-path: inset(0 0 0 0); }
}
.bv-mask-reveal {
  opacity: 0;
  animation: bvMaskReveal var(--bv-speed-normal) var(--bv-ease) forwards;
}

/* Underline Sweep */
.bv-underline {
  position: relative;
}
.bv-underline:after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -4px;
  width: 100%;
  height: 2px;
  background: currentColor;
  transform: scaleX(0);
  transform-origin: left;
  transition: transform var(--bv-speed-fast) var(--bv-ease);
}
.bv-underline:hover:after {
  transform: scaleX(1);
}

/* Icon Spin (hover) */
@keyframes bvIconSpin {
  from { transform: rotate(0); }
  to   { transform: rotate(360deg); }
}
.bv-icon-spin:hover {
  transform: translateZ(0);
  will-change: transform;
  animation: bvIconSpin 1.2s linear infinite;
}

/* Card Flip */
.bv-flip {
  transform-style: preserve-3d;
  will-change: transform;
  transition: transform var(--bv-speed-normal) var(--bv-ease);
}
.bv-flip:hover {
  transform: rotateY(180deg);
}
