/* =====================================================
                    PACKAGES PAGE
===================================================== */

.packages-hero{
    padding:190px 0 120px;
    position:relative;
    overflow:hidden;
    background:
        radial-gradient(circle at 15% 20%, rgba(79,141,255,.18), transparent 30%),
        radial-gradient(circle at 85% 50%, rgba(139,92,246,.16), transparent 32%),
        linear-gradient(135deg,#F8FBFF,#EEF5FF);
}

.packages-hero::before{
    content:"";
    position:absolute;
    width:500px;
    height:500px;
    border-radius:50%;
    background:rgba(79,141,255,.12);
    filter:blur(90px);
    top:-200px;
    right:-120px;
    animation:packagesFloat 8s ease-in-out infinite;
}

@keyframes packagesFloat{
    0%,100%{ transform:translate(0,0); }
    50%{ transform:translate(-40px,45px); }
}

.packages-hero-content{
    max-width:850px;
    position:relative;
    z-index:2;
}

@keyframes heroReveal{
    from{
        opacity:0;
        transform:translateY(35px);
        filter:blur(12px);
    }

    to{
        opacity:1;
        transform:translateY(0);
        filter:blur(0);
    }
}

.packages-hero h1{
    font-size:clamp(52px,7vw,88px);
    line-height:1.05;
    margin:25px 0;
}

.packages-hero h1 span{
    background:linear-gradient(135deg,#4F8DFF,#8B5CF6);
    -webkit-background-clip:text;
    -webkit-text-fill-color:transparent;
}

.packages-hero p{
    max-width:680px;
    font-size:20px;
    line-height:1.8;
    color:#64748B;
}

.packages-hero-stats{
    display:flex;
    gap:45px;
    margin-top:45px;
}

.packages-hero-stats div{
    display:flex;
    flex-direction:column;
    gap:5px;
}

.packages-hero-stats strong{
    font-size:28px;
}

.packages-hero-stats span{
    color:#64748B;
    font-size:15px;
}


/* =====================================================
                    ALL PACKAGES
===================================================== */

.all-packages{
    padding:130px 0;
    background:#F8FBFF;
}

.packages-grid{
    display:grid;
    grid-template-columns:repeat(3, minmax(0,1fr));
    gap:35px;
}


/* =====================================================
                    PACKAGE CARD
===================================================== */

.package-card{
    position:relative;
    overflow:hidden;
    border-radius:30px;
    background:rgba(255,255,255,.62);
    border:1px solid rgba(255,255,255,.9);
    backdrop-filter:blur(20px);
    -webkit-backdrop-filter:blur(20px);
    box-shadow:0 20px 50px rgba(70,90,140,.10);
    transition:
        transform .55s cubic-bezier(.2,.8,.2,1),
        box-shadow .55s ease;
}

/* Glass shine */

.package-card::before{
    content:"";
    position:absolute;
    top:0;
    left:-120%;
    width:70%;
    height:100%;
    background:linear-gradient(
        90deg,
        transparent,
        rgba(255,255,255,.55),
        transparent
    );
    transform:skewX(-18deg);
    transition:left .8s ease;
    z-index:3;
    pointer-events:none;
}

.package-card:hover::before{
    left:140%;
}

.package-card:hover{
    transform:translateY(-14px);
    box-shadow:0 35px 80px rgba(70,90,140,.18);
}


/* =====================================================
                    IMAGE
===================================================== */

.package-image{
    position:relative;
    overflow:hidden;
    height:270px;
}

.package-image::after{
    content:"";
    position:absolute;
    inset:0;
    background:linear-gradient(
        to top,
        rgba(20,30,55,.20),
        transparent 55%
    );
    pointer-events:none;
}

.package-image img{
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
    transition:transform .8s cubic-bezier(.2,.8,.2,1);
}

.package-card:hover .package-image img{
    transform:scale(1.09);
}


/* =====================================================
                    BADGE
===================================================== */

.package-badge{
    position:absolute;
    top:18px;
    left:18px;
    z-index:2;

    padding:9px 15px;

    border-radius:50px;

    background:rgba(255,255,255,.70);

    backdrop-filter:blur(14px);

    font-size:13px;
    font-weight:700;

    color:#334155;

    box-shadow:0 8px 25px rgba(0,0,0,.08);
}


/* =====================================================
                    CONTENT
===================================================== */

.package-content{
    padding:26px;
}

.package-type{
    display:inline-block;

    color:#4F8DFF;

    font-size:13px;
    font-weight:700;
    letter-spacing:.5px;

    margin-bottom:10px;
}

.package-content h3{
    font-size:28px;
    margin-bottom:12px;
    color:#1E293B;
}

.package-content p{
    color:#64748B;
    font-size:16px;
    line-height:1.75;
    min-height:84px;
}


/* =====================================================
                    CARD FOOTER
===================================================== */

.package-footer{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:15px;

    margin-top:25px;
    padding-top:20px;

    border-top:1px solid rgba(100,116,139,.12);
}

.duration{
    display:flex;
    align-items:center;
    gap:8px;

    color:#64748B;
    font-size:14px;
    font-weight:600;
}

.duration i{
    color:#4F8DFF;
}

.package-footer a{
    display:inline-flex;
    align-items:center;
    gap:8px;

    padding:11px 18px;

    border-radius:50px;

    background:linear-gradient(
        135deg,
        #4F8DFF,
        #8B5CF6
    );

    color:white;

    font-size:14px;
    font-weight:700;

    transition:.35s ease;
}

.package-footer a:hover{
    transform:translateX(4px);
}


/* =====================================================
                    SCROLL REVEAL
===================================================== */

.reveal{
    opacity:0;
    transform:translateY(45px) scale(.97);
    filter:blur(10px);
    transition:
        opacity .8s ease,
        transform .8s cubic-bezier(.2,.8,.2,1),
        filter .8s ease;
}

.reveal.active{
    opacity:1;
    transform:translateY(0) scale(1);
    filter:blur(0);
}


/* Beautiful stagger effect */

.package-card:nth-child(3n+1){
    transition-delay:.05s;
}

.package-card:nth-child(3n+2){
    transition-delay:.15s;
}

.package-card:nth-child(3n+3){
    transition-delay:.25s;
}


/* =====================================================
                    CTA
===================================================== */

.packages-cta{
    padding:110px 0;
    background:#F8FBFF;
}

.packages-cta-box{
    position:relative;
    overflow:hidden;
    text-align:center;
    padding:85px 30px;
    border-radius:40px;

    background:
        radial-gradient(circle at 20% 20%,rgba(79,141,255,.18),transparent 35%),
        radial-gradient(circle at 80% 80%,rgba(139,92,246,.18),transparent 35%),
        rgba(255,255,255,.65);

    backdrop-filter:blur(25px);

    border:1px solid rgba(255,255,255,.9);

    box-shadow:0 25px 70px rgba(70,90,140,.12);
}

.packages-cta-box h2{
    font-size:clamp(40px,5vw,64px);
    margin:20px 0;
}

.packages-cta-box p{
    max-width:650px;
    margin:0 auto 35px;
    font-size:18px;
    line-height:1.8;
    color:#64748B;
}
/* =========================================
       PACKAGES HERO ENTRANCE ANIMATION
========================================= */

/* Badge starts hidden */

.hero-badge{
    opacity:0;
    transform:translateX(-60px);
    filter:blur(12px);

    animation:
        slideBlurIn .9s cubic-bezier(.2,.8,.2,1)
        .2s forwards;
}


/* Main heading words */

.hero-title{
    overflow:hidden;
}

.hero-title span{
    display:inline-block;

    opacity:0;

    transform:
        translateY(70px)
        scale(.95);

    filter:blur(14px);

    animation:
        wordReveal .75s
        cubic-bezier(.2,.8,.2,1)
        forwards;
}


/* Each word comes one after another */

.hero-title span:nth-child(1){
    animation-delay:.45s;
}

.hero-title span:nth-child(2){
    animation-delay:.65s;
}

.hero-title span:nth-child(3){
    animation-delay:.85s;
}

.hero-title span:nth-child(4){
    animation-delay:1.05s;
}


/* Paragraph */

.hero-description{
    opacity:0;

    transform:translateY(45px);

    filter:blur(12px);

    animation:
        slideBlurUp .9s
        cubic-bezier(.2,.8,.2,1)
        1.3s forwards;
}


/* Stats */

.hero-stat{
    opacity:0;

    transform:translateY(40px);

    filter:blur(10px);

    animation:
        statReveal .7s
        cubic-bezier(.2,.8,.2,1)
        forwards;
}

.hero-stat:nth-child(1){
    animation-delay:1.55s;
}

.hero-stat:nth-child(2){
    animation-delay:1.7s;
}

.hero-stat:nth-child(3){
    animation-delay:1.85s;
}


/* =========================================
                KEYFRAMES
========================================= */

@keyframes slideBlurIn{

    from{
        opacity:0;
        transform:translateX(-60px);
        filter:blur(12px);
    }

    to{
        opacity:1;
        transform:translateX(0);
        filter:blur(0);
    }

}


@keyframes wordReveal{

    from{
        opacity:0;

        transform:
            translateY(70px)
            scale(.95);

        filter:blur(14px);
    }

    to{
        opacity:1;

        transform:
            translateY(0)
            scale(1);

        filter:blur(0);
    }

}


@keyframes slideBlurUp{

    from{
        opacity:0;
        transform:translateY(45px);
        filter:blur(12px);
    }

    to{
        opacity:1;
        transform:translateY(0);
        filter:blur(0);
    }

}


@keyframes statReveal{

    from{
        opacity:0;
        transform:translateY(40px);
        filter:blur(10px);
    }

    to{
        opacity:1;
        transform:translateY(0);
        filter:blur(0);
    }

}
.package-card .package-image {
    width: 100%;
    height: 260px; /* change only if your card needs a different height */
    overflow: hidden;
}

.package-card .package-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block;
}