/* ==========================================================
   GSAP Class Effects — CSS
   v1.1.0
   ========================================================== */

/* Word Reveal */
.reveal-text {
    overflow: hidden;
}

.reveal-text .word {
    overflow: hidden;
}

.reveal-text .word-inner {
    display: inline-block;
    will-change: transform;
}

/* Paragraph Reveal */
.paragraph-reveal .word {
    will-change: opacity;
}

/* Cards / listings */
.reveal-card,
.listing-reveal .jet-listing-grid__item,
.hover-card-lift,
.magnetic-button {
    transform-origin: center;
}

/* Text swap button — Elementor Classic + V4 Atomic */
.text-swap-button .gce-swap-text-stage {
    position: relative;
    display: inline-block;
    overflow: hidden;
    white-space: nowrap;
    line-height: inherit;
    vertical-align: middle;
}

.text-swap-button .gce-swap-text-layer {
    display: inline-flex;
    align-items: baseline;
    white-space: nowrap;
    line-height: inherit;
}

.text-swap-button .gce-swap-text-original {
    position: relative;
}

.text-swap-button .gce-swap-text-clone {
    position: absolute;
    inset: 0;
    pointer-events: none;
}

.text-swap-button .gce-swap-char {
    display: inline-block;
    will-change: transform;
}

.text-swap-button .gce-swap-icon-stage {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    vertical-align: middle;
    flex: 0 0 auto;
}

.text-swap-button .gce-swap-icon-original,
.text-swap-button .gce-swap-icon-clone {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    will-change: transform;
}

.text-swap-button .gce-swap-icon-clone {
    position: absolute;
    inset: 0;
    pointer-events: none;
}

/* Cleanup for hot-reloaded v1.0 editor markup */
.text-swap-button .swap-text-clone,
.text-swap-button .swap-icon-clone {
    pointer-events: none;
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
    .reveal-text .word-inner,
    .paragraph-reveal .word,
    .reveal-card,
    .listing-reveal .jet-listing-grid__item,
    .hover-card-lift,
    .magnetic-button,
    .text-swap-button * {
        animation: none !important;
        transition: none !important;
        transform: none !important;
        opacity: 1 !important;
    }
}
