/* =====================================================
   MODAL
   Joy Travels & Vacations
===================================================== */
/* Hidden by default */
.modal{
    display:none;
    position:fixed;
    z-index:9999;
    left:0;
    top:0;
    width:100%;
    height:100%;
    overflow-y:auto;
    background:rgba(0,0,0,.75);
    animation:fadeIn .3s ease;
}

/* Popup Box */
.modal-content{
    background:#fff;
    width:90%;
    max-width:850px;
    margin:60px auto;
    padding:40px;
    border-radius:12px;
    box-shadow:0 20px 50px rgba(0,0,0,.3);
    position:relative;
    animation:slideDown .35s ease;
}

/* Close Button */
.close{
    position:absolute;
    right:20px;
    top:15px;
    font-size:36px;
    font-weight:bold;
    cursor:pointer;
    color:#777;
    transition:.3s;
}

.close:hover{
    color:#D4AF37;
}

/* Titles */
.modal-content h2{
    color:#222;
    margin-bottom:20px;
}

.modal-content h3{
    margin-top:25px;
    color:#D4AF37;
}

.modal-content p{
    margin-bottom:15px;
    line-height:1.8;
}

/* Divider */
.modal-content hr{
    margin:25px 0;
    border:none;
    border-top:1px solid #ddd;
}

/* Button */
.modal-content .btn{
    margin-top:20px;
}

/* Scrollbar */
.modal::-webkit-scrollbar{
    width:8px;
}
.modal::-webkit-scrollbar-thumb{
    background:#D4AF37;
    border-radius:10px;
}
/* Animations */
@keyframes fadeIn{
    from{
        opacity:0;
    }
    to{
        opacity:1;
    }
}
@keyframes slideDown{
    from{
        transform:translateY(-40px);
        opacity:0;
    }
    to{
        transform:translateY(0);
        opacity:1;
    }
}
/* ==========================================
   EXCURSION DETAILS MODAL
========================================== */
.excursion-modal{
    position:fixed;
    inset:0;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:30px;
    visibility:hidden;
    opacity:0;
    z-index:9999;
    transition:
        opacity .35s ease,
        visibility .35s ease;
}
/* ==========================================
   ACTIVE MODAL
========================================== */
.excursion-modal.active{
    visibility:visible;
    opacity:1;
}
/* ==========================================
   MODAL OVERLAY
========================================== */
.excursion-modal-overlay{
    position:absolute;
    inset:0;
    background:rgba(0,0,0,.75);
    backdrop-filter:blur(5px);
}
/* ==========================================
   MODAL CONTENT
========================================== */
.excursion-modal-content{
    position:relative;
    width:100%;
    max-width:950px;
    max-height:90vh;
    background:#ffffff;
    border-radius:20px;
    overflow:hidden;
    box-shadow:
        0 25px 70px rgba(0,0,0,.35);
    transform:translateY(30px) scale(.96);
    transition:
        transform .35s ease;
    overflow-y:auto;
    z-index:2;
}
.excursion-modal.active
.excursion-modal-content{
    transform:translateY(0) scale(1);
}
/* ==========================================
   CLOSE BUTTON
========================================== */
.excursion-modal-close{
    position:absolute;
    top:15px;
    right:15px;
    width:45px;
    height:45px;
    display:flex;
    align-items:center;
    justify-content:center;
    border:none;
    border-radius:50%;
    background:rgba(0,0,0,.65);
    color:#ffffff;
    font-size:30px;
    line-height:1;
    cursor:pointer;
    z-index:5;
    transition:.3s;
}
.excursion-modal-close:hover{
    background:var(--primary);
    transform:rotate(90deg);
}
/* ==========================================
   MODAL IMAGE
========================================== */
.excursion-modal-image{
    width:100%;
    height:380px;
    overflow:hidden;
}
.excursion-modal-image img{
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
}
/* ==========================================
   MODAL BODY
========================================== */
.excursion-modal-body{
    padding:40px;
}
.excursion-modal-category{
    display:inline-block;
    margin-bottom:12px;
    color:var(--primary);
    font-size:14px;
    font-weight:700;
    letter-spacing:2px;
    text-transform:uppercase;
}
.excursion-modal-body h2{
    margin:0 0 15px;
    font-size:38px;
    color:var(--dark);
}
/* ==========================================
   META INFORMATION
========================================== */
.excursion-modal-meta{
    display:flex;
    flex-wrap:wrap;
    gap:25px;
    margin-bottom:25px;
    color:#666;
    font-size:15px;
}
/* ==========================================
   DESCRIPTION
========================================== */
.excursion-modal-description{
    margin-bottom:30px;
    font-size:17px;
    line-height:1.8;
    color:var(--text);
}
/* ==========================================
   HIGHLIGHTS
========================================== */
.excursion-modal-highlights{
    margin-bottom:30px;
}
.excursion-modal-highlights h3{
    margin-bottom:15px;
    font-size:22px;
}
.excursion-modal-highlights ul{
    display:grid;
    grid-template-columns:
        repeat(2,1fr);
    gap:10px 25px;
    padding:0;
    margin:0;
    list-style:none;
}
.excursion-modal-highlights li{
    position:relative;
    padding-left:25px;
    color:var(--text);
}
.excursion-modal-highlights li::before{
    content:"✓";
    position:absolute;
    left:0;
    color:var(--primary);
    font-weight:bold;
}

/* ==========================================
   MODAL FOOTER
========================================== */
.excursion-modal-footer{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:25px;
    padding-top:25px;
    border-top:1px solid #eee;
}

/* ==========================================
   MODAL PRICE
========================================== */
.excursion-modal-price{
    display:flex;
    flex-direction:column;
}
.excursion-modal-price small{
    font-size:12px;
    color:#888;
    letter-spacing:1px;
}
.excursion-modal-price strong{
    font-size:25px;
    color:var(--primary);
}
/* ==========================================
   PREVENT BACKGROUND SCROLL
========================================== */
body.modal-open{
    overflow:hidden;
}
/* ==========================================
   MODAL RESPONSIVE
========================================== */
@media(max-width:768px){
    .excursion-modal{
        padding:15px;
    }
    .excursion-modal-content{
        max-height:92vh;
        border-radius:15px;
    }
    .excursion-modal-image{
        height:250px;
    }
    .excursion-modal-body{
        padding:25px;
    }
    .excursion-modal-body h2{
        font-size:28px;
    }
    .excursion-modal-highlights ul{
        grid-template-columns:1fr;
    }
    .excursion-modal-footer{
        flex-direction:column;
        align-items:stretch;
    }
    .excursion-modal-footer .btn{
        width:100%;
        text-align:center;
    }
}
/* ==========================================
   DESTINATION DETAILS MODAL
========================================== */
.destination-modal{
    position:fixed;
    inset:0;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:30px;
    visibility:hidden;
    opacity:0;
    z-index:9999;
    transition:
        opacity .35s ease,
        visibility .35s ease;
}
/* ACTIVE */
.destination-modal.active{
    visibility:visible;
    opacity:1;
}
/* OVERLAY */
.destination-modal-overlay{
    position:absolute;
    inset:0;
    background:rgba(0,0,0,.75);
    backdrop-filter:blur(5px);
}
/* CONTENT */
.destination-modal-content{
    position:relative;
    width:100%;
    max-width:950px;
    max-height:90vh;
    background:#ffffff;
    border-radius:20px;
    overflow:hidden;
    box-shadow:
        0 25px 70px rgba(0,0,0,.35);
    transform:
        translateY(30px)
        scale(.96);
    transition:
        transform .35s ease;
    overflow-y:auto;
    z-index:2;
}

/* ACTIVE CONTENT */

.destination-modal.active
.destination-modal-content{
    transform:
        translateY(0)
       scale(1);
}
/* CLOSE BUTTON */
.destination-modal-close{
    position:absolute;
    top:15px;
    right:15px;
    width:45px;
    height:45px;
    display:flex;
    align-items:center;
    justify-content:center;
    border:none;
    border-radius:50%;
    background:
        rgba(0,0,0,.65);
    color:#ffffff;
    font-size:30px;
    line-height:1;
    cursor:pointer;
    z-index:5;
    transition:.3s;
}
.destination-modal-close:hover{
    background:
        var(--primary);
    transform:
        rotate(90deg);
}

/* IMAGE */

.destination-modal-image{
    width:100%;
    height:380px;
    overflow:hidden;
}
.destination-modal-image img{
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
}

/* BODY */
.destination-modal-body{
    padding:40px;
}
/* CATEGORY */

.destination-modal-category{
    display:inline-block;
    margin-bottom:12px;
    color:
        var(--primary);
    font-size:14px;
    font-weight:700;
    letter-spacing:2px;
    text-transform:uppercase;
}

/* TITLE */
.destination-modal-body h2{
    margin:
        0 0 15px;
    font-size:38px;
    color:
        var(--dark);
}
/* META */
.destination-modal-meta{
    display:flex;
    flex-wrap:wrap;
    gap:20px;
    margin-bottom:25px;
    color:#666;
    font-size:15px;
    line-height:1.6;
}

/* DESCRIPTION */

.destination-modal-description{
    margin-bottom:30px;
    font-size:17px;
    line-height:1.8;
    color:
        var(--text);
}
/* HIGHLIGHTS */
.destination-modal-highlights{
    margin-bottom:30px;
}
.destination-modal-highlights h3{
    margin-bottom:15px;
    font-size:22px;
}
.destination-modal-highlights ul{
    display:grid;
    grid-template-columns:
        repeat(2,1fr);
    gap:
        10px 25px;
    padding:0;
    margin:0;
    list-style:none;
}
.destination-modal-highlights li{
    position:relative;
    padding-left:25px;
    color:
        var(--text);
}
.destination-modal-highlights li::before{
    content:"✓";
    position:absolute;
    left:0;
    color:
        var(--primary);
    font-weight:bold;
}
/* FOOTER */

.destination-modal-footer{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:25px;
    padding-top:25px;
    border-top:
        1px solid #eee;
}
/* PLAN AREA */

.destination-modal-plan{
    display:flex;
    flex-direction:column;
}
.destination-modal-plan small{
    font-size:12px;
    color:#888;
    letter-spacing:1px;
}
.destination-modal-plan strong{
    font-size:23px;
    color:
        var(--primary);
}
/* MOBILE */

@media(max-width:768px){
    .destination-modal{
       padding:15px;
    }
    .destination-modal-content{
        max-height:92vh;
        border-radius:15px;
    }
    .destination-modal-image{
        height:250px;
    }
    .destination-modal-body{
     padding:25px;
    }
    .destination-modal-body h2{
        font-size:28px;
    }
    .destination-modal-highlights ul{
        grid-template-columns:1fr;
    }
    .destination-modal-footer{
        flex-direction:column;
        align-items:stretch;
    }
    .destination-modal-footer .btn{
        width:100%;
        text-align:center;
    }
}
/* ==========================================
   DESTINATION MODAL - FINAL POLISH
========================================== */

.destination-modal-image img{
    transition:transform .6s ease;
}

.destination-modal.active
.destination-modal-image img{
    transform:scale(1.02);
}

.destination-modal-body{
    background:#ffffff;
}

.destination-modal-category{
    position:relative;
}

.destination-modal-category::before{
    content:"";
    display:inline-block;
    width:30px;
    height:2px;
    background:var(--primary);
    vertical-align:middle;
    margin-right:10px;
}

.destination-modal-meta span{
    display:inline-flex;
    align-items:center;
    gap:5px;
}

.destination-modal-highlights li{
    transition:
        transform .25s ease,
        color .25s ease;
}

.destination-modal-highlights li:hover{
    transform:translateX(5px);
    color:var(--primary);
}

.destination-modal-footer .btn{
    min-width:170px;
    text-align:center;
}
/* ==========================================
   PREVENT BACKGROUND SCROLLING
   WHEN SAFARI MODAL IS OPEN
========================================== */

body.modal-open {
    overflow: hidden;
}
