/* ==========================================================

   JHAPI HOTEL CARD

========================================================== */

.jhapi-hotel-card{

    display:flex;

    gap:30px;

    background:#fff;

    border-radius:16px;

    overflow:hidden;

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

    padding:25px;

    margin:30px 0;

    border:1px solid #ececec;

}
.jhapi-hotel-image{

    width:320px;

    flex-shrink:0;

}

.jhapi-hotel-image img{

    width:100%;

    height:250px;

    object-fit:cover;

    border-radius:12px;

    display:block;

}

.jhapi-hotel-image{
    overflow:hidden;

    border-radius:12px;
}

.jhapi-hotel-image img{
    transition:.45s;

}

.jhapi-hotel-card:hover .jhapi-hotel-image img{



    transform:scale(1.05);



}

.jhapi-hotel-content{

    flex:1;

}
.jhapi-hotel-title{

    font-size:30px;

    margin:0 0 10px;

    color:#222;

    font-weight:700;

    line-height:1.3;

 position:relative;

    padding-bottom:12px;

}
.jhapi-hotel-title::after{
    content:'';

    width:70px;

    height:4px;

    background:#F7921E;

    border-radius:20px;
    position:absolute;

    left:0;

    bottom:0;
}

.jhapi-stars{

    color:#f39c12;

    font-weight:600;

    margin-bottom:10px;

}

.jhapi-address{

    color:#666;

    margin-bottom:20px;

    line-height:1.6;

}

.jhapi-check-times{

    display:flex;

    gap:40px;

    margin-bottom:30px;

}

.jhapi-check-times span{

    background:#f8f9fb;

    padding:12px 18px;

    border-radius:10px;

    min-width:150px;

}

.jhapi-room-list{

    display:flex;

    flex-direction:column;

    gap:20px;

}

.jhapi-price-box small{

    display:block;

    color:#777;

    font-size:13px;

}

.jhapi-price{


    display:flex;

    align-items:flex-end;

    gap:6px;

    margin:6px 0;

}

.jhapi-currency{

    font-size:18px;

    color:#F7921E;

    font-weight:700;

}

.jhapi-amount{



    font-size:34px;

    color:#F7921E;

    font-weight:800;

    line-height:1;
}

.jhapi-room-card{

    border-left:5px solid #F7921E;

}

.jhapi-badge{
    padding:8px 14px;

    border-radius:50px;

    font-size:12px;

    letter-spacing:.5px;

    text-transform:uppercase;
}

.jhapi-book-btn{

    box-shadow:0 8px 20px rgba(247,146,30,.25);

    background: #f7921e !important;

}

.jhapi-book-btn:hover{

    transform:translateY(-2px);
}

/* ===========================================

   SEARCH CARD

=========================================== */

.jhapi-search-card{

    background:#fff;

    border-radius:16px;

    padding:30px;

    margin-bottom:35px;

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

    border:1px solid #ececec;



}

.jhapi-search-card:hover{
    box-shadow:0 18px 45px rgba(0,0,0,.10);

}

.jhapi-search-card{
    transition:.35s;
}

.jhapi-search-header{

    margin-bottom:25px;
}

.jhapi-search-header h2{



    margin:0;

    font-size:30px;

    font-weight:700;

    color:#222;
}

.jhapi-search-header p{

    margin:8px 0 0;

    color:#777;

    font-size:15px;

}
/* ===========================================

   Form Layout

=========================================== */

#jhapi-search-form{

    display:flex;

    flex-direction:column;

    gap:20px;

}

.jhapi-row{

    display:grid;

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

    gap:20px;
}

.jhapi-field{
    display:flex;

    flex-direction:column;

}

.jhapi-field label{

    margin-bottom:8px;

    font-size:14px;

    font-weight:600;

    color:#444;

 text-transform:uppercase;

    letter-spacing:.5px;
}

/* ===========================================

   Inputs

=========================================== */

.jhapi-field input,

.jhapi-field select{

    width:100%;

    height:52px;

    border:1px solid #ddd;

    border-radius:10px;

    padding:0 15px;

    background:#fff;

    font-size:15px;

    transition:.3s;
}
.jhapi-field input:focus,

.jhapi-field select:focus{

    outline:none;

    border-color:#F7921E;

    box-shadow:0 0 0 4px rgba(247,146,30,.15);

}

.jhapi-field input:hover,

.jhapi-field select:hover{

    border-color:#F7921E;

}
.jhapi-field input::placeholder{

    color:#999;
}

/* ===========================================

   Search Button

=========================================== */

.jhapi-search-btn{

    display:flex;

    align-items:center;

    justify-content:center;

    gap:10px;
}

.jhapi-btn-icon{
    font-size:18px;
}

.jhapi-field button{



    width:100%;

    height:52px;

    border:none;

    border-radius:10px;

    background:#F7921E;

    color:#fff;

    font-size:16px;

    font-weight:600;

    cursor:pointer;

    transition:.3s;

}

.jhapi-field button:hover{

    background:#E97C00;

}

/* ===========================================

   Responsive

=========================================== */

@media(max-width:991px){

    .jhapi-row{

        grid-template-columns:1fr;

    }
}

/*==================================================
BOOKING REVIEW
==================================================*/

.jhapi-booking-review{

    margin:40px 0;

}

.jhapi-review-header{

    margin-bottom:30px;

}

.jhapi-review-header h2{

    margin:0 0 10px;
    font-size:36px;
    font-weight:700;
    color:#222;

}

.jhapi-review-header p{

    margin:0;
    color:#777;
    font-size:16px;

}

.jhapi-room-review{

    background:#fff;
    border:1px solid #ececec;
    border-radius:18px;
    padding:35px;
    box-shadow:0 12px 35px rgba(0,0,0,.08);

}

.jhapi-review-grid{

    display:grid;
    grid-template-columns:repeat(2,1fr);
    gap:18px;
    margin-bottom:30px;

}

.jhapi-review-item{

    display:flex;
    justify-content:space-between;
    align-items:center;

    padding:18px 20px;

    background:#f8f9fb;

    border:1px solid #ececec;
    border-radius:12px;

    transition:.3s;

}

.jhapi-review-item:hover{

    border-color:#F7921E;
    transform:translateY(-3px);
    box-shadow:0 8px 20px rgba(0,0,0,.08);

}

.jhapi-review-item span{

    color:#666;
    font-size:15px;
    font-weight:600;

}

.jhapi-review-item strong{

    color:#222;
    font-size:17px;
    font-weight:700;
    text-align:right;

}

.jhapi-review-price{

    margin:35px 0;

    text-align:center;

    background:#fff8ef;

    border:1px solid #ffd9aa;

    border-radius:14px;

    padding:25px;

}

.jhapi-review-price small{

    display:block;
    color:#777;
    font-size:14px;

}

.jhapi-review-price h3{

    margin:10px 0;

    font-size:42px;
    font-weight:800;
    color:#F7921E;
    line-height:1.2;

}

.jhapi-review-price .jhapi-currency{

    font-size:22px;
    margin-right:4px;

}

.jhapi-room-review>.jhapi-btn{

    width:100%;
    height:56px;

    border:none;
    border-radius:12px;

    background:#68b245;

    color:#fff;

    font-size:17px;
    font-weight:700;

    cursor:pointer;

    transition:.3s;

}

.jhapi-room-review>.jhapi-btn:hover{

    background:#57983a;
    transform:translateY(-2px);

}

.jhapi-booking-rules-output{

    margin-top:35px;

}

@media(max-width:767px){

    .jhapi-room-review{

        padding:22px;

    }

    .jhapi-review-grid{

        grid-template-columns:1fr;

    }

    .jhapi-review-header h2{

        font-size:30px;

    }

    .jhapi-review-price h3{

        font-size:34px;

    }

    .jhapi-review-item{

        flex-direction:column;
        align-items:flex-start;
        gap:8px;

    }

    .jhapi-review-item strong{

        text-align:left;

    }

}


/*==================================================
BOOKING FLOW STAGES
==================================================*/

.jhapi-stage-footer{
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:12px;
    margin-top:28px;
    flex-wrap:wrap;
}

.jhapi-stage-footer .jhapi-btn,
.jhapi-rules-next-step .jhapi-btn{
    min-height:52px;
    border-radius:10px;
    padding:0 22px;
    font-weight:700;
}

.jhapi-rules-next-step{
    margin-top:28px;
    padding:22px;
    border:1px solid #e9ecef;
    border-radius:14px;
    background:#fafafa;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
}

.jhapi-rules-next-step p{
    margin:0;
    color:#666;
}

.jhapi-passenger-stage{
    margin-top:40px;
    background:#fff;
    border:1px solid #ececec;
    border-radius:18px;
    padding:35px;
    box-shadow:0 12px 35px rgba(0,0,0,.08);
}

@media(max-width:767px){
    .jhapi-stage-footer,
    .jhapi-rules-next-step{
        flex-direction:column;
        align-items:stretch;
    }

    .jhapi-stage-footer .jhapi-btn,
    .jhapi-rules-next-step .jhapi-btn{
        width:100%;
    }

    .jhapi-passenger-stage{
        padding:22px;
    }
}

/*==================================================
BOOKING RULES
==================================================*/

.jhapi-booking-rules{

    margin-top:40px;

    background:#fff;

    border:1px solid #ececec;

    border-radius:18px;

    padding:35px;

    box-shadow:0 12px 35px rgba(0,0,0,.08);

}

.jhapi-rules-header{

    margin-bottom:30px;

    padding-bottom:20px;

    border-bottom:1px solid #ececec;

}

.jhapi-rules-header h2{

    margin:0 0 10px;

    font-size:34px;

    font-weight:700;

    color:#222;

}

.jhapi-rules-header p{

    margin:0;

    color:#777;

    font-size:16px;

}

.jhapi-rules-expiry{

    display:flex;

    align-items:center;

    gap:18px;

    background:#fff8ef;

    border:1px solid #ffd8a8;

    border-left:5px solid #F7921E;

    border-radius:14px;

    padding:20px;

    margin-bottom:30px;

}

.jhapi-rules-icon{

    width:55px;

    height:55px;

    border-radius:50%;

    background:#F7921E;

    color:#fff;

    display:flex;

    align-items:center;

    justify-content:center;

    font-size:24px;

    flex-shrink:0;

}

.jhapi-rules-expiry span{

    display:block;

    color:#777;

    font-size:14px;

    margin-bottom:6px;

}

.jhapi-rules-expiry strong{

    font-size:18px;

    color:#222;

}

.jhapi-policy-card{

    background:#f8f9fb;

    border:1px solid #ececec;

    border-radius:14px;

    padding:25px;

    margin-bottom:35px;

}

.jhapi-policy-card h3{

    margin:0 0 20px;

    font-size:22px;

    color:#222;

}

.jhapi-policy-row{

    display:flex;

    gap:12px;

    align-items:flex-start;

    padding:12px 0;

    border-bottom:1px dashed #ddd;

}

.jhapi-policy-row:last-child{

    border-bottom:none;

    padding-bottom:0;

}

.jhapi-policy-row span{

    color:#F7921E;

    font-size:20px;

    font-weight:700;

}

.jhapi-policy-row p{

    margin:0;

    color:#555;

    line-height:1.7;

}

.jhapi-passenger-card{

    border:1px solid #ececec;

    border-radius:16px;

    padding:28px;

    margin-bottom:30px;

    background:#fff;

}

.jhapi-passenger-card h3{

    margin:0 0 25px;

    font-size:24px;

    color:#222;

}

.jhapi-passenger-grid{

    display:grid;

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

    gap:22px;

}

.jhapi-field{

    display:flex;

    flex-direction:column;

}

.jhapi-field label{

    margin-bottom:8px;

    font-size:14px;

    font-weight:600;

    color:#555;

}

.jhapi-field input{

    width:100%;

    height:52px;

    padding:0 16px;

    border:1px solid #ddd;

    border-radius:10px;

    background:#fff;

    transition:.3s;

    font-size:15px;

}

.jhapi-field input:focus{

    outline:none;

    border-color:#F7921E;

    box-shadow:0 0 0 4px rgba(247,146,30,.12);

}

.jhapi-rules-footer{

    margin-top:35px;

    text-align:right;

}

.jhapi-rules-footer .jhapi-btn{

    min-width:240px;

    height:56px;

    border-radius:12px;

    font-size:17px;

    font-weight:700;

}

@media(max-width:767px){

    .jhapi-booking-rules{

        padding:22px;

    }

    .jhapi-rules-header h2{

        font-size:28px;

    }

    .jhapi-passenger-grid{

        grid-template-columns:1fr;

    }

    .jhapi-rules-expiry{

        align-items:flex-start;

    }

    .jhapi-rules-footer{

        text-align:center;

    }

    .jhapi-rules-footer .jhapi-btn{

        width:100%;

    }

}

/*==================================================
BOOKING SUCCESS
==================================================*/

.jhapi-booking-success{

    margin:40px 0;

    background:#fff;

    border:1px solid #ececec;

    border-radius:18px;

    padding:40px;

    box-shadow:0 12px 35px rgba(0,0,0,.08);

}

.jhapi-success-header{

    text-align:center;

    padding-bottom:30px;

    margin-bottom:35px;

    border-bottom:1px solid #ececec;

}

.jhapi-success-icon{

    width:80px;

    height:80px;

    margin:0 auto 20px;

    border-radius:50%;

    background:#67b447;

    color:#fff;

    font-size:40px;

    display:flex;

    align-items:center;

    justify-content:center;

}

.jhapi-success-header h2{

    margin:0 0 10px;

    font-size:36px;

    color:#222;

    font-weight:700;

}

.jhapi-success-header p{

    margin:0;

    color:#777;

    font-size:16px;

}

.jhapi-success-grid{

    display:grid;

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

    gap:20px;

    margin-bottom:35px;

}

.jhapi-success-item{

    background:#f8f9fb;

    border:1px solid #ececec;

    border-radius:12px;

    padding:18px 20px;

    transition:.3s;

}

.jhapi-success-item:hover{

    border-color:#F7921E;

    transform:translateY(-3px);

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

}

.jhapi-success-item span{

    display:block;

    color:#777;

    font-size:14px;

    margin-bottom:8px;

    font-weight:600;

}

.jhapi-success-item strong{

    display:block;

    color:#222;

    font-size:18px;

    font-weight:700;

    word-break:break-word;

}

.jhapi-booking-success>.jhapi-btn{

    width:100%;

    height:58px;

    border:none;

    border-radius:12px;

    background:#67b447;

    color:#fff;

    font-size:17px;

    font-weight:700;

    cursor:pointer;

    transition:.3s;

}

.jhapi-booking-success>.jhapi-btn:hover{

    background:#57983a;

    transform:translateY(-2px);

}

@media(max-width:767px){

    .jhapi-booking-success{

        padding:24px;

    }

    .jhapi-success-header h2{

        font-size:30px;

    }

    .jhapi-success-grid{

        grid-template-columns:1fr;

    }

    .jhapi-success-icon{

        width:70px;

        height:70px;

        font-size:34px;

    }

}

/*==================================================
BOOKING DETAILS
==================================================*/

.jhapi-booking-details{

    margin:40px 0;

    background:#fff;

    border:1px solid #ececec;

    border-radius:18px;

    padding:35px;

    box-shadow:0 12px 35px rgba(0,0,0,.08);

}

.jhapi-details-header{

    text-align:center;

    padding-bottom:30px;

    margin-bottom:35px;

    border-bottom:1px solid #ececec;

}

.jhapi-details-header h2{

    margin:0 0 10px;

    font-size:36px;

    font-weight:700;

    color:#222;

}

.jhapi-details-header p{

    margin:0;

    color:#777;

    font-size:16px;

}

.jhapi-details-section{

    margin-bottom:35px;

}

.jhapi-details-section h3{

    margin:0 0 22px;

    font-size:24px;

    color:#222;

    padding-bottom:12px;

    border-bottom:2px solid #f3f3f3;

}

.jhapi-details-grid{

    display:grid;

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

    gap:20px;

}

.jhapi-details-item{

    background:#f8f9fb;

    border:1px solid #ececec;

    border-radius:12px;

    padding:18px 20px;

    transition:.3s;

}

.jhapi-details-item:hover{

    border-color:#F7921E;

    transform:translateY(-3px);

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

}

.jhapi-details-item span{

    display:block;

    margin-bottom:8px;

    color:#777;

    font-size:14px;

    font-weight:600;

}

.jhapi-details-item strong{

    display:block;

    color:#222;

    font-size:17px;

    font-weight:700;

    word-break:break-word;

}

.jhapi-full{

    grid-column:1/-1;

}

.jhapi-policy-box{

    background:#fff8ef;

    border:1px solid #ffd7a3;

    border-left:5px solid #F7921E;

    border-radius:14px;

    padding:20px;

    color:#555;

    line-height:1.8;

}

.jhapi-guest-list,

.jhapi-comments{

    margin:0;

    padding-left:22px;

}

.jhapi-guest-list li,

.jhapi-comments li{

    margin-bottom:10px;

    color:#555;

}

.jhapi-details-footer{

    margin-top:40px;

    text-align:right;

}

.jhapi-details-footer .jhapi-btn{

    min-width:240px;

    height:56px;

    border-radius:12px;

    font-size:17px;

    font-weight:700;

}

@media(max-width:767px){

    .jhapi-booking-details{

        padding:22px;

    }

    .jhapi-details-header h2{

        font-size:30px;

    }

    .jhapi-details-grid{

        grid-template-columns:1fr;

    }

    .jhapi-full{

        grid-column:auto;

    }

    .jhapi-details-footer{

        text-align:center;

    }

    .jhapi-details-footer .jhapi-btn{

        width:100%;

    }

}
/*==================================================
BOOKING CANCELLED
==================================================*/

.jhapi-booking-cancelled{

    margin:40px 0;

    background:#fff;

    border:1px solid #ececec;

    border-radius:18px;

    padding:40px;

    box-shadow:0 12px 35px rgba(0,0,0,.08);

}

.jhapi-cancel-header{

    text-align:center;

    padding-bottom:30px;

    margin-bottom:35px;

    border-bottom:1px solid #ececec;

}

.jhapi-cancel-icon{

    width:80px;

    height:80px;

    margin:0 auto 20px;

    border-radius:50%;

    background:#dc3545;

    color:#fff;

    font-size:38px;

    display:flex;

    align-items:center;

    justify-content:center;

}

.jhapi-cancel-header h2{

    margin:0 0 10px;

    font-size:36px;

    font-weight:700;

    color:#222;

}

.jhapi-cancel-header p{

    margin:0;

    color:#777;

    font-size:16px;

}

.jhapi-cancel-grid{

    display:grid;

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

    gap:20px;

}

.jhapi-cancel-item{

    background:#f8f9fb;

    border:1px solid #ececec;

    border-radius:12px;

    padding:20px;

    transition:.3s;

}

.jhapi-cancel-item:hover{

    border-color:#dc3545;

    transform:translateY(-3px);

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

}

.jhapi-cancel-item span{

    display:block;

    margin-bottom:8px;

    color:#777;

    font-size:14px;

    font-weight:600;

}

.jhapi-cancel-item strong{

    display:block;

    color:#dc3545;

    font-size:18px;

    font-weight:700;

    word-break:break-word;

}

@media(max-width:767px){

    .jhapi-booking-cancelled{

        padding:24px;

    }

    .jhapi-cancel-header h2{

        font-size:30px;

    }

    .jhapi-cancel-grid{

        grid-template-columns:1fr;

    }

    .jhapi-cancel-icon{

        width:70px;

        height:70px;

        font-size:34px;

    }

}
/*=============================
BOOKING COUNTDOWN
==============================*/

.jhapi-expiry-content{

    display:flex;

    flex-direction:column;

}

.jhapi-countdown{

    font-size:34px;

    font-weight:700;

    color:#F7921E;

    margin:8px 0;

    letter-spacing:2px;

}

.jhapi-expiry-content small{

    color:#777;

    font-size:13px;

}

.jhapi-countdown.warning{

    color:#ff9800;

}

.jhapi-countdown.danger{

    color:#dc3545;

    animation:pulse 1s infinite;

}

@keyframes pulse{

    0%{

        transform:scale(1);

    }

    50%{

        transform:scale(1.08);

    }

    100%{

        transform:scale(1);

    }

}
.jhapi-warning-box{

    background:#fff8e5;
    color:#9a6700;
    border:1px solid #f3d27a;
    border-left:4px solid #f7921e;
    padding:14px 16px;
    border-radius:8px;
    margin:18px 0;
    font-size:15px;
    font-weight:600;

}
.jhapi-cancel-warning{

    margin-top:30px;
    padding:20px;

    background:#fff8e8;

    border-left:5px solid #f59e0b;

    border-radius:10px;

}
.jhapi-cancel-warning{
    grid-column:1 / -1;
}

.jhapi-cancel-warning h3{

    margin-bottom:10px;

    color:#9a6700;

}

.jhapi-cancel-warning p{

    margin-bottom:12px;

}

.jhapi-warning-meta{

    font-weight:600;

}

/* Certification-ready room search controls */
.jhapi-room-search-card{
    border:1px solid #e7e7e7;
    border-radius:12px;
    padding:16px;
    margin:12px 0;
    background:#fff;
}

.jhapi-room-search-title{
    margin-bottom:10px;
    font-size:16px;
}

.jhapi-room-search-card .jhapi-child-age-wrapper{
    display:flex;
    flex-wrap:wrap;
    gap:12px;
    flex:1 1 100%;
}

.jhapi-room-search-card .jhapi-child-age-wrapper .jhapi-field{
    min-width:130px;
}

.jhapi-search-actions{
    margin-top:16px;
}

.jhapi-selected-rooms{
    margin-top:18px;
}

.jhapi-room-passenger-group{
    border:1px solid #e7e7e7;
    border-radius:12px;
    padding:16px;
    margin-top:16px;
}

.jhapi-room-passenger-group h3{
    margin:0 0 12px;
}

.jhapi-passenger-card h4{
    margin:0 0 12px;
}

.jhapi-loading{
    padding:18px;
    text-align:center;
    border-radius:8px;
    background:#f7f7f7;
}

.jhapi-error{
    padding:16px;
    border-radius:8px;
    background:#fff5f5;
    border:1px solid #f1b8b8;
    color:#a40000;
}

.jhapi-details-section{
    margin-top:20px;
}

.jhapi-details-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:12px;
}

.jhapi-details-item{
    padding:12px;
    border:1px solid #eee;
    border-radius:8px;
}

.jhapi-details-item span{
    display:block;
    font-size:12px;
    color:#777;
    margin-bottom:4px;
}

.jhapi-details-item strong{
    display:block;
}

.jhapi-full{
    grid-column:1/-1;
}

@media(max-width:700px){
    .jhapi-details-grid{
        grid-template-columns:1fr;
    }

    .jhapi-combination-room{
        flex-direction:column;
    }

    .jhapi-selected-room{
        flex-direction:column;
    }
}
