/* ==========================================
   PACKAGES CONTENT SECTION
========================================== */

.packages-content-section{

    position:relative;

    width:100%;

    background:#f8fbff;

    padding:70px 0 120px;

}

.packages-container{

    width:90%;

    max-width:1320px;

    margin:auto;

}

/* ==========================================
   FILTER
========================================== */

.packages-filter{

    display:flex;

    align-items:center;

    justify-content:center;

    gap:15px;

    flex-wrap:wrap;

    margin-bottom:55px;

}

.package-filter{

    border:none;

    outline:none;

    background:#ffffff;

    color:#444;

    padding:13px 24px;

    border-radius:999px;

    cursor:pointer;

    font-size:15px;

    font-weight:600;

    transition:.35s;

    box-shadow:0 10px 25px rgba(0,0,0,.05);

}

.package-filter:hover{

    background:#2b6cff;

    color:#ffffff;

    transform:translateY(-2px);

}

.package-filter.active{

    background:#2b6cff;

    color:#ffffff;

}

/* ==========================================
   GRID
========================================== */

.packages-grid{

    display:grid;

    grid-template-columns:repeat(3,1fr);

    gap:32px;

}

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

.package-card{

    background:#ffffff;

    border-radius:24px;

    overflow:hidden;

    box-shadow:0 15px 40px rgba(0,0,0,.05);

    transition:
        transform .35s,
        box-shadow .35s,
        opacity .7s,
        filter .35s;

}

.package-card:hover{

    transform:translateY(-10px);

    box-shadow:0 30px 70px rgba(0,0,0,.12);

}

/* ==========================================
   IMAGE
========================================== */

.package-image{

    position:relative;

    overflow:hidden;

}

.package-image img{

    width:100%;

    height:270px;

    object-fit:cover;

    display:block;

    transition:.6s;

}

.package-card:hover .package-image img{

    transform:scale(1.08);

}

.package-image::after{

    content:"";

    position:absolute;

    inset:0;

    background:linear-gradient(

        to top,

        rgba(0,0,0,.35),

        rgba(0,0,0,0)

    );

    opacity:0;

    transition:.35s;

}

.package-card:hover .package-image::after{

    opacity:1;

}

/* ==========================================
   BADGE
========================================== */

.package-badge{

    position:absolute;

    top:18px;

    left:18px;

    padding:8px 16px;

    border-radius:999px;

    background:#2b6cff;

    color:#ffffff;

    font-size:12px;

    font-weight:700;

    letter-spacing:1px;

    z-index:2;

}

.package-badge.private{

    background:#111111;

}

/* ==========================================
   DURATION
========================================== */

.package-duration{

    position:absolute;

    top:18px;

    right:18px;

    display:flex;

    align-items:center;

    justify-content:center;

    padding:8px 16px;

    background:rgba(255,255,255,.9);

    backdrop-filter:blur(10px);

    border-radius:999px;

    font-size:12px;

    font-weight:700;

    color:#111;

    letter-spacing:.5px;

    box-shadow:0 8px 20px rgba(0,0,0,.08);

}

/* ==========================================
   CONTENT
========================================== */

.package-content{

    padding:26px;

}

.package-rating{

    color:#f7b500;

    font-size:15px;

    font-weight:600;

    margin-bottom:14px;

}

.package-rating span{

    color:#888;

    font-weight:400;

}

.package-content h3{

    font-size:28px;

    color:#111;

    margin-bottom:12px;

}

.package-location{

    color:#777;

    font-size:15px;

    margin-bottom:20px;

}

.package-info{

    display:flex;

    gap:10px;

    flex-wrap:wrap;

    margin-bottom:22px;

}

.package-info span{

    background:#eef4ff;

    color:#2b6cff;

    padding:8px 14px;

    border-radius:999px;

    font-size:13px;

    font-weight:600;

}

.package-feature{

    list-style:none;

    margin:0 0 28px;

    padding:0;

}

.package-feature li{

    margin-bottom:10px;

    color:#555;

    font-size:15px;

}

/* ==========================================
   PACKAGE BOTTOM
========================================== */

.package-bottom{

    display:flex;

    justify-content:space-between;

    align-items:flex-end;

    gap:20px;

    border-top:1px solid #edf1f7;

    padding-top:22px;

}

.package-bottom small{

    display:block;

    color:#888;

    margin-bottom:6px;

    font-size:13px;

}

.package-bottom h4{

    font-size:28px;

    font-weight:700;

    color:#111;

    line-height:1;

}

.package-bottom a{

    display:flex;

    align-items:center;

    justify-content:center;

    text-decoration:none;

    background:#2b6cff;

    color:#ffffff;

    padding:14px 24px;

    border-radius:14px;

    font-size:15px;

    font-weight:600;

    transition:.35s;

}

.package-bottom a:hover{

    background:#174ee8;

    transform:translateY(-3px);

}

/* ==========================================
   LOAD MORE
========================================== */

.packages-load{

    display:flex;

    justify-content:center;

    margin-top:70px;

}

.packages-load-btn{

    border:none;

    outline:none;

    background:#2b6cff;

    color:#ffffff;

    padding:18px 42px;

    border-radius:999px;

    font-size:16px;

    font-weight:600;

    cursor:pointer;

    transition:.35s;

}

.packages-load-btn:hover{

    background:#174ee8;

    transform:translateY(-3px);

}

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

.package-card{

    opacity:0;

    transform:translateY(40px);

}

.package-card.show{

    opacity:1;

    transform:translateY(0);

}

/* ==========================================
   EMPTY STATE
========================================== */

.packages-empty{

    grid-column:1/-1;

    text-align:center;

    padding:80px 20px;

}

.packages-empty h3{

    font-size:28px;

    color:#111;

    margin-bottom:10px;

}

.packages-empty p{

    color:#777;

    font-size:16px;

}

/* ==========================================
   TABLET
========================================== */

@media(max-width:992px){

    .packages-grid{

        grid-template-columns:repeat(2,1fr);

    }

    .package-content h3{

        font-size:24px;

    }

}

/* ==========================================
   MOBILE
========================================== */

@media(max-width:768px){

    .packages-content-section{

        padding:60px 0 80px;

    }

    .packages-filter{

        justify-content:center;

        gap:10px;

    }

    .package-filter{

        flex:1 1 calc(50% - 10px);

        text-align:center;

    }

    .packages-grid{

        grid-template-columns:1fr;

    }

    .package-image img{

        height:240px;

    }

    .package-content{

        padding:22px;

    }

    .package-content h3{

        font-size:22px;

    }

    .package-bottom{

        flex-direction:column;

        align-items:flex-start;

    }

    .package-bottom a{

        width:100%;

    }

    .packages-load-btn{

        width:100%;

        max-width:320px;

    }

}