/*==================================================
HOTEL BOOKING SERVICE PAGE
LESTARI JAYA TRAVEL
==================================================*/


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

.hotel-hero,
.hotel-about,
.hotel-partner,
.hotel-benefit,
.hotel-package,
.hotel-process,
.hotel-cta{

    overflow:hidden;

}


/*==================================================
ABOUT HOTEL
==================================================*/

.hotel-about{
    background: var(--white);
}

.hotel-about-grid{
    display: grid;
    grid-template-columns: 1fr 1fr;
    align-items: center;
    gap: 70px;
}

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

.hotel-image{
    position: relative;
}

.hotel-image img{
    width: 100%;
    height: 550px;
    object-fit: cover;
    border-radius: 24px;
    display: block;
    box-shadow: 0 25px 50px rgba(0,0,0,.12);
    transition: .4s ease;
}

.hotel-image:hover img{
    transform: scale(1.02);
}

.hotel-image::before{
    content: "";
    position: absolute;
    width: 140px;
    height: 140px;
    background: var(--primary);
    border-radius: 24px;
    top: -18px;
    left: -18px;
    z-index: -1;
    opacity: .12;
}

.hotel-image::after{
    content: "";
    position: absolute;
    width: 180px;
    height: 180px;
    border: 3px solid var(--primary);
    border-radius: 24px;
    right: -18px;
    bottom: -18px;
    z-index: -1;
    opacity: .15;
}

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

.hotel-content .section-subtitle{
    display: inline-block;
    color: var(--primary);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 2px;
    margin-bottom: 15px;
}

.hotel-content h2{
    font-size: 2.7rem;
    color: var(--secondary);
    line-height: 1.25;
    margin-bottom: 25px;
}

.hotel-content p{
    color: var(--gray);
    line-height: 1.9;
    margin-bottom: 18px;
    font-size: 1.05rem;
}

/*==============================
FEATURE LIST
==============================*/

.hotel-check{
    display: grid;
    grid-template-columns: repeat(2,1fr);
    gap: 18px;
    margin-top: 35px;
}

.hotel-check div{
    display: flex;
    align-items: center;
    gap: 12px;
    background: var(--light);
    padding: 18px 20px;
    border-radius: 16px;
    border: 1px solid var(--border);
    font-weight: 600;
    color: var(--text);
    transition: .3s ease;
}

.hotel-check div:hover{
    background: var(--primary);
    color: var(--white);
    transform: translateY(-5px);
    box-shadow: 0 15px 30px rgba(22,150,232,.25);
}

.hotel-check i{
    color: var(--primary);
    font-size: 20px;
    transition: .3s;
}

.hotel-check div:hover i{
    color: var(--white);
}

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

@media(max-width:991px){

    .hotel-about-grid{
        grid-template-columns: 1fr;
        gap: 50px;
    }

    .hotel-image{
        order: -1;
    }

    .hotel-image img{
        height: 450px;
    }

    .hotel-content{
        text-align: center;
    }

    .hotel-content h2{
        font-size: 2.2rem;
    }

    .hotel-check{
        max-width: 650px;
        margin: 35px auto 0;
    }

}

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

@media(max-width:768px){

    .hotel-about-grid{
        gap: 40px;
    }

    .hotel-image img{
        height: 320px;
        border-radius: 18px;
    }

    .hotel-content h2{
        font-size: 1.8rem;
    }

    .hotel-content p{
        font-size: .96rem;
    }

    .hotel-check{
        grid-template-columns: 1fr;
    }

    .hotel-check div{
        justify-content: center;
        padding: 16px;
    }

    .hotel-image::before,
    .hotel-image::after{
        display: none;
    }

}

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

@media(max-width:480px){

    .hotel-content h2{
        font-size: 1.55rem;
    }

    .hotel-content p{
        line-height: 1.8;
    }

}
/*==================================================
HOTEL PARTNERS
==================================================*/

.hotel-partner{
    background: linear-gradient(180deg,var(--light) 0%,#ffffff 100%);
}

.hotel-partner .section-header{
    max-width:760px;
    margin:0 auto 70px;
    text-align:center;
}

.hotel-partner .section-header h2{
    font-size:2.8rem;
    color:var(--secondary);
    margin:15px 0;
}

.hotel-partner .section-header p{
    color:var(--gray);
    line-height:1.9;
    font-size:1.05rem;
}

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

.hotel-grid{

    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:35px;

}

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

.hotel-card{

    background:var(--white);

    border-radius:var(--radius);

    overflow:hidden;

    box-shadow:var(--shadow-sm);

    transition:var(--transition);

    border:1px solid var(--border);

}

.hotel-card:hover{

    transform:translateY(-12px);

    box-shadow:var(--shadow-lg);

}

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

.hotel-image{

    position:relative;

    overflow:hidden;

}

.hotel-image img{

    width:100%;
    height:260px;
    object-fit:cover;

    display:block;

    transition:.6s;

}

.hotel-card:hover img{

    transform:scale(1.08);

}

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

.hotel-badge{

    position:absolute;

    top:20px;
    left:20px;

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

    color:var(--secondary);

    padding:8px 16px;

    border-radius:50px;

    font-size:13px;

    font-weight:700;

    backdrop-filter:blur(10px);

}

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

.hotel-card-content{

    padding:28px;

}

.hotel-location{

    display:flex;

    align-items:center;

    gap:8px;

    color:var(--primary);

    font-size:14px;

    margin-bottom:12px;

    font-weight:600;

}

.hotel-location i{

    font-size:15px;

}

.hotel-card h3{

    color:var(--secondary);

    font-size:1.45rem;

    margin-bottom:15px;

    line-height:1.4;

}

.hotel-card p{

    color:var(--gray);

    line-height:1.8;

    margin-bottom:25px;

}

/*==================================================
FOOTER
==================================================*/

.hotel-footer{

    display:flex;

    justify-content:space-between;

    align-items:center;

    gap:15px;

}

.rating{

    color:#FFC107;

    font-size:18px;

    letter-spacing:2px;

}

.hotel-btn{

    background:var(--primary);

    color:#fff;

    padding:12px 22px;

    border-radius:50px;

    text-decoration:none;

    font-weight:600;

    transition:var(--transition);

}

.hotel-btn:hover{

    background:var(--primary-dark);

}

/*==================================================
BOTTOM CTA
==================================================*/

.hotel-action{

    margin-top:90px;

    background:linear-gradient(135deg,
    var(--primary),
    var(--primary-dark));

    border-radius:32px;

    padding:70px;

    text-align:center;

    color:#fff;

    position:relative;

    overflow:hidden;

}

/* Decoration */

.hotel-action::before{

    content:"";

    position:absolute;

    width:350px;
    height:350px;

    border-radius:50%;

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

    right:-120px;
    top:-120px;

}

.hotel-action::after{

    content:"";

    position:absolute;

    width:250px;
    height:250px;

    border-radius:50%;

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

    left:-90px;
    bottom:-90px;

}

.hotel-action>*{

    position:relative;

    z-index:2;

}

.hotel-action h3{

    font-size:2.2rem;

    margin-bottom:20px;

}

.hotel-action p{

    max-width:700px;

    margin:auto;

    color:rgba(255,255,255,.92);

    line-height:1.9;

    margin-bottom:40px;

}

.hotel-action .btn{

    padding:18px 36px;

    border-radius:50px;

    background:#fff;

    color:var(--primary);

    display:inline-flex;

    align-items:center;

    gap:10px;

    font-weight:700;

    transition:var(--transition);

}

.hotel-action .btn:hover{

    background:var(--secondary);

    color:#fff;

    transform:translateY(-4px);

}

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

@media(max-width:991px){

.hotel-grid{

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

}

.hotel-partner .section-header h2{

font-size:2.3rem;

}

.hotel-action{

padding:55px 35px;

}

.hotel-action h3{

font-size:1.9rem;

}

}

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

@media(max-width:768px){

.hotel-grid{

grid-template-columns:1fr;

}

.hotel-partner .section-header{

margin-bottom:50px;

}

.hotel-partner .section-header h2{

font-size:1.9rem;

}

.hotel-card-content{

padding:22px;

}

.hotel-image img{

height:240px;

}

.hotel-footer{

flex-direction:column;

align-items:stretch;

}

.hotel-btn{

width:100%;

text-align:center;

}

.hotel-action{

padding:45px 25px;

}

.hotel-action h3{

font-size:1.7rem;

}

.hotel-action p{

font-size:.95rem;

}

.hotel-action .btn{

width:100%;

justify-content:center;

}

}

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

@media(max-width:480px){

.hotel-partner .section-header h2{

font-size:1.65rem;

}

.hotel-card h3{

font-size:1.25rem;

}

.hotel-image img{

height:220px;

}

.hotel-action h3{

font-size:1.45rem;

}

}

/*==============================
BENEFIT
==============================*/


.hotel-benefit{

    background:white;

}



.benefit-grid{


    display:grid;

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

    gap:25px;

}



.benefit-grid article{


    text-align:center;

    padding:35px 25px;

    border-radius:20px;

    background:#f8fafc;

    transition:.3s;

}



.benefit-grid article:hover{


    transform:translateY(-10px);

}



.benefit-grid i{


    font-size:35px;

    color:#d4af37;

    margin-bottom:20px;

}



.benefit-grid h3{

    margin-bottom:15px;

}



.benefit-grid p{

    color:#6b7280;

    line-height:1.6;

}





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


.hotel-package{


    background:

    linear-gradient(
        135deg,
        #111827,
        #1f2937
    );

}



.package-box{


    text-align:center;

    color:white;

}



.package-box h2{

    font-size:42px;

    margin-bottom:20px;

}



.package-box p{

    color:#d1d5db;

}



.package-list{


    margin-top:40px;

    display:flex;

    justify-content:center;

    gap:20px;

    flex-wrap:wrap;

}



.package-list span{


    padding:15px 25px;

    background:white;

    color:#111827;

    border-radius:50px;

    font-weight:600;

}





/*==============================
PROCESS
==============================*/


.process-grid{


    display:grid;

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

    gap:25px;

}



.process-grid div{


    text-align:center;

}



.process-grid span{


    width:70px;

    height:70px;

    display:flex;

    align-items:center;

    justify-content:center;

    margin:auto;

    border-radius:50%;

    background:#d4af37;

    color:white;

    font-size:24px;

    font-weight:700;

}



.process-grid h3{


    margin-top:20px;

}


/*==================================================
WHY CHOOSE US
==================================================*/

.hotel-benefit{
    background: var(--light);
}

.benefit-grid{
    display: grid;
    grid-template-columns: repeat(4,1fr);
    gap: 30px;
    margin-top: 60px;
}

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

.benefit-grid article{
    background: var(--white);
    padding: 40px 30px;
    border-radius: 22px;
    text-align: center;
    border: 1px solid var(--border);
    transition: .35s ease;
    position: relative;
    overflow: hidden;
    box-shadow: 0 10px 30px rgba(15, 23, 42, .05);
}

.benefit-grid article::before{
    content: "";
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 5px;
    background: linear-gradient(90deg,var(--primary),var(--primary-dark));
    transition: .35s;
}

.benefit-grid article:hover::before{
    left: 0;
}

.benefit-grid article:hover{
    transform: translateY(-10px);
    box-shadow: 0 20px 45px rgba(22,150,232,.18);
}

/*====================================
ICON
====================================*/

.benefit-grid article i{
    width: 80px;
    height: 80px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(22,150,232,.1);
    color: var(--primary);
    border-radius: 50%;
    font-size: 32px;
    margin-bottom: 25px;
    transition: .35s;
}

.benefit-grid article:hover i{
    background: var(--primary);
    color: var(--white);
    transform: rotateY(180deg);
}

/*====================================
TEXT
====================================*/

.benefit-grid article h3{
    font-size: 1.35rem;
    color: var(--secondary);
    margin-bottom: 15px;
    font-weight: 700;
}

.benefit-grid article p{
    color: var(--gray);
    line-height: 1.8;
    font-size: .98rem;
}

/*====================================
SECTION HEADER
====================================*/

.hotel-benefit .section-header{
    text-align: center;
    max-width: 760px;
    margin: auto;
}

.hotel-benefit .section-subtitle{
    display: inline-block;
    color: var(--primary);
    text-transform: uppercase;
    font-weight: 700;
    letter-spacing: 2px;
    margin-bottom: 15px;
}

.hotel-benefit .section-header h2{
    font-size: 2.6rem;
    color: var(--secondary);
    margin-bottom: 20px;
}

.hotel-benefit .section-header p{
    color: var(--gray);
    line-height: 1.8;
    font-size: 1.05rem;
}

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

@media(max-width:991px){

    .benefit-grid{
        grid-template-columns: repeat(2,1fr);
        gap: 25px;
    }

    .hotel-benefit .section-header h2{
        font-size: 2.2rem;
    }

}

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

@media(max-width:768px){

    .benefit-grid{
        grid-template-columns: 1fr;
    }

    .benefit-grid article{
        padding: 35px 25px;
    }

    .hotel-benefit .section-header h2{
        font-size: 1.9rem;
    }

    .hotel-benefit .section-header p{
        font-size: .95rem;
    }

    .benefit-grid article i{
        width: 70px;
        height: 70px;
        font-size: 28px;
    }

}

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

@media(max-width:480px){

    .hotel-benefit .section-header h2{
        font-size: 1.65rem;
    }

    .benefit-grid article h3{
        font-size: 1.2rem;
    }

}

/*==================================================
COMPLETE TRAVEL PACKAGE
==================================================*/

.hotel-package{
    background: linear-gradient(180deg,#f8fbff 0%,#ffffff 100%);
}

.package-wrapper{
    background: #fff;
    border-radius: 30px;
    padding: 70px 60px;
    box-shadow: 0 25px 60px rgba(15,23,42,.08);
}

.package-header{
    max-width: 760px;
    margin: auto;
    text-align: center;
}

.package-header h2{
    font-size: 2.7rem;
    color: var(--secondary);
    margin: 15px 0 20px;
}

.package-header p{
    color: var(--gray);
    line-height: 1.8;
    font-size: 1.05rem;
}

.package-grid{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:30px;
    margin-top:60px;
}

.package-card{
    text-align:center;
    padding:35px 25px;
    border-radius:20px;
    background:#fff;
    border:1px solid var(--border);
    transition:.35s;
}

.package-card:hover{
    transform:translateY(-10px);
    box-shadow:0 20px 40px rgba(22,150,232,.15);
    border-color:var(--primary);
}

.package-icon{
    width:85px;
    height:85px;
    margin:auto;
    border-radius:50%;
    display:flex;
    justify-content:center;
    align-items:center;
    background:rgba(22,150,232,.1);
    color:var(--primary);
    font-size:34px;
    margin-bottom:25px;
    transition:.35s;
}

.package-card:hover .package-icon{
    background:var(--primary);
    color:#fff;
    transform:rotateY(180deg);
}

.package-card h3{
    margin-bottom:15px;
    font-size:1.3rem;
    color:var(--secondary);
}

.package-card p{
    color:var(--gray);
    line-height:1.8;
}

.package-footer{
    text-align:center;
    margin-top:60px;
}

.package-footer .btn{
    padding:16px 35px;
    border-radius:50px;
    font-weight:600;
    font-size:16px;
}

/*==============================
RESPONSIVE
==============================*/

@media(max-width:991px){

    .package-wrapper{
        padding:50px 35px;
    }

    .package-grid{
        grid-template-columns:repeat(2,1fr);
    }

    .package-header h2{
        font-size:2.2rem;
    }

}

@media(max-width:768px){

    .package-wrapper{
        padding:40px 25px;
    }

    .package-grid{
        grid-template-columns:1fr;
    }

    .package-header h2{
        font-size:1.8rem;
    }

    .package-header p{
        font-size:.95rem;
    }

    .package-icon{
        width:75px;
        height:75px;
        font-size:30px;
    }

}

@media(max-width:480px){

    .package-header h2{
        font-size:1.6rem;
    }

}

/*==================================================
BOOKING PROCESS
==================================================*/

.hotel-process{
    background: linear-gradient(180deg,#ffffff 0%,#f8fbff 100%);
}

.hotel-process .section-header{
    max-width:700px;
    margin:0 auto 70px;
    text-align:center;
}

.hotel-process .section-header h2{
    font-size:2.7rem;
    color:var(--secondary);
    margin:15px 0 20px;
}

.hotel-process .section-header p{
    color:var(--gray);
    line-height:1.8;
}

.process-grid{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:30px;
    position:relative;
}

/* garis penghubung */
.process-grid::before{
    content:"";
    position:absolute;
    top:45px;
    left:8%;
    right:8%;
    height:3px;
    background:linear-gradient(to right,
        var(--primary),
        rgba(22,150,232,.3));
    z-index:0;
}

/* Card */

.process-grid > div{
    position:relative;
    background:#fff;
    border-radius:22px;
    padding:75px 30px 35px;
    text-align:center;
    border:1px solid var(--border);
    box-shadow:0 15px 40px rgba(15,23,42,.05);
    transition:.35s;
    z-index:2;
}

.process-grid > div:hover{
    transform:translateY(-12px);
    box-shadow:0 25px 50px rgba(22,150,232,.18);
    border-color:var(--primary);
}

/* Number */

.process-grid span{
    position:absolute;
    top:-22px;
    left:50%;
    transform:translateX(-50%);
    width:72px;
    height:72px;
    border-radius:50%;
    background:linear-gradient(135deg,
        var(--primary),
        var(--primary-dark));
    display:flex;
    align-items:center;
    justify-content:center;
    color:#fff;
    font-size:22px;
    font-weight:700;
    box-shadow:0 15px 35px rgba(22,150,232,.35);
}

.process-grid h3{
    margin-bottom:18px;
    color:var(--secondary);
    font-size:1.3rem;
}

.process-grid p{
    color:var(--gray);
    line-height:1.8;
    font-size:.96rem;
}

/*==================================================
CTA
==================================================*/

.hotel-cta{
    padding:90px 0;
}

.hotel-cta .container{

    background:linear-gradient(135deg,
        var(--primary),
        var(--primary-dark));

    color:#fff;
    text-align:center;
    border-radius:28px;
    padding:80px 50px;
    position:relative;
    overflow:hidden;
}

/* Decoration */

.hotel-cta .container::before{

    content:"";
    position:absolute;
    width:350px;
    height:350px;
    background:rgba(255,255,255,.08);
    border-radius:50%;
    top:-140px;
    right:-120px;

}

.hotel-cta .container::after{

    content:"";
    position:absolute;
    width:250px;
    height:250px;
    background:rgba(255,255,255,.05);
    border-radius:50%;
    left:-80px;
    bottom:-80px;

}

.hotel-cta h2{

    position:relative;
    z-index:2;
    color:#fff;
    font-size:2.8rem;
    margin-bottom:20px;

}

.hotel-cta p{

    position:relative;
    z-index:2;
    max-width:700px;
    margin:auto;
    color:rgba(255,255,255,.9);
    line-height:1.9;
    margin-bottom:40px;

}

.hotel-cta .btn{

    position:relative;
    z-index:2;
    display:inline-flex;
    align-items:center;
    gap:10px;

    padding:18px 35px;
    border-radius:50px;
    background:#fff;
    color:var(--primary);
    font-weight:700;
    text-decoration:none;
    transition:.35s;
}

.hotel-cta .btn:hover{

    transform:translateY(-5px);
    background:var(--secondary);
    color:#fff;

}

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

@media(max-width:991px){

.process-grid{

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

}

.process-grid::before{

display:none;

}

.hotel-process .section-header h2{

font-size:2.2rem;

}

.hotel-cta h2{

font-size:2.2rem;

}

.hotel-cta .container{

padding:60px 35px;

}

}

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

@media(max-width:768px){

.process-grid{

grid-template-columns:1fr;
gap:50px;

}

.process-grid>div{

padding:70px 25px 30px;

}

.hotel-process .section-header{

margin-bottom:50px;

}

.hotel-process .section-header h2{

font-size:1.9rem;

}

.hotel-cta{

padding:70px 0;

}

.hotel-cta h2{

font-size:1.8rem;

}

.hotel-cta p{

font-size:.95rem;

}

.hotel-cta .container{

padding:50px 25px;

}

.hotel-cta .btn{

width:100%;
justify-content:center;

}

}

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

@media(max-width:480px){

.hotel-process .section-header h2{

font-size:1.6rem;

}

.hotel-cta h2{

font-size:1.55rem;

}

.process-grid span{

width:65px;
height:65px;
font-size:20px;

}

}