/* ==========================================================
   ERNANOEVENTI
   Premium Animations
   ========================================================== */


/* ==========================================================
   GLOBAL TRANSITIONS
   ========================================================== */


a,
button,
.card,
.service-card,
.highlight-card {

    transition:
    all .45s cubic-bezier(.2,.8,.2,1);

}



/* ==========================================================
   HERO INTRO
   ========================================================== */


.hero-content {

    animation:

    heroReveal 1.4s ease forwards;

}



@keyframes heroReveal {


    from {

        opacity:0;

        transform:
        translateY(50px);

    }


    to {

        opacity:1;

        transform:
        translateY(0);

    }

}



/* ==========================================================
   HERO BACKGROUND MOVEMENT
   ========================================================== */


.hero {

    animation:

    heroZoom 18s ease-in-out infinite alternate;

}



@keyframes heroZoom {


    from {

        background-size:
        100%;

    }


    to {

        background-size:
        108%;

    }

}



/* ==========================================================
   GOLD LIGHT EFFECT
   ========================================================== */


.btn-gold {

    position:relative;

    overflow:hidden;

}



.btn-gold::before {

    content:"";

    position:absolute;

    top:0;

    left:-120%;

    width:80%;

    height:100%;

    background:

    linear-gradient(
    120deg,
    transparent,
    rgba(255,255,255,.45),
    transparent
    );

    transition:
    .7s;

}



.btn-gold:hover::before {

    left:140%;

}



/* ==========================================================
   SVG DRAW EFFECT
   ========================================================== */


.service-icon svg path,
.service-icon svg circle,
.service-icon svg rect {


    stroke-dasharray:

    150;


    stroke-dashoffset:

    150;


    animation:

    drawIcon 1.8s ease forwards;


}



@keyframes drawIcon {


    to {

        stroke-dashoffset:0;

    }

}



/* ==========================================================
   REVEAL ON SCROLL
   ========================================================== */


.reveal {

    opacity:0;

    transform:

    translateY(50px);

}



.reveal.active {


    animation:

    revealUp .9s ease forwards;


}



@keyframes revealUp {


    from {

        opacity:0;

        transform:

        translateY(50px);

    }


    to {

        opacity:1;

        transform:

        translateY(0);

    }

}



/* ==========================================================
   CARD FLOAT
   ========================================================== */


.highlight-card:hover,
.service-card:hover {


    animation:

    floating .6s ease;


}



@keyframes floating {


    0% {

        transform:
        translateY(0);

    }


    50% {

        transform:
        translateY(-15px);

    }


    100% {

        transform:
        translateY(-12px);

    }

}



/* ==========================================================
   TIMELINE POINT PULSE
   ========================================================== */


.timeline-item::before {


    animation:

    pulseGold 2.5s infinite;


}



@keyframes pulseGold {


    0% {

        box-shadow:

        0 0 0 0
        rgba(196,163,90,.6);

    }


    70% {

        box-shadow:

        0 0 0 20px
        rgba(196,163,90,0);

    }


    100% {

        box-shadow:

        0 0 0 0
        rgba(196,163,90,0);

    }

}



/* ==========================================================
   GALLERY IMAGE EFFECT
   ========================================================== */


.gallery-item {


    transition:

    transform .6s ease,
    border-color .4s ease;


}



.gallery-item:hover {


    border-color:

    var(--gold);


}



/* ==========================================================
   LIGHTBOX OPEN
   ========================================================== */


.lightbox.active img {


    animation:

    imageZoom .6s ease;


}



@keyframes imageZoom {


    from {

        opacity:0;

        transform:

        scale(.85);

    }


    to {

        opacity:1;

        transform:

        scale(1);

    }

}



/* ==========================================================
   LOGO ANIMATION
   ========================================================== */


.logo-mark {


    animation:

    logoRotate 12s linear infinite;


}



@keyframes logoRotate {


    from {

        transform:
        rotate(0deg);

    }


    to {

        transform:
        rotate(360deg);

    }

}



/* ==========================================================
   GOLD TEXT GLOW
   ========================================================== */


.section-title span {


    animation:

    goldGlow 4s ease-in-out infinite;


}



@keyframes goldGlow {


    0%,
    100% {

        opacity:.7;

    }


    50% {

        opacity:1;

        text-shadow:

        0 0 15px
        rgba(196,163,90,.7);

    }

}



/* ==========================================================
   SCROLL INDICATOR HERO
   ========================================================== */


.hero-scroll span {


    display:block;

    width:2px;

    height:60px;

    background:

    var(--gold);

    animation:

    scrollLine 2s infinite;


}



@keyframes scrollLine {


    0% {

        transform:
        scaleY(0);

        transform-origin:
        top;

    }


    50% {

        transform:
        scaleY(1);

    }


    100% {

        transform:
        scaleY(0);

        transform-origin:
        bottom;

    }

}



/* ==========================================================
   REDUCE MOTION ACCESSIBILITY
   ========================================================== */


@media (prefers-reduced-motion: reduce) {


    *,
    *::before,
    *::after {

        animation-duration:
        .01ms !important;

        animation-iteration-count:
        1 !important;

        scroll-behavior:
        auto !important;

    }

}